Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How can I read a *.mat file as values {Float64} ? #410

Open
Stephen77777 opened this issue Nov 6, 2021 · 0 comments
Open

How can I read a *.mat file as values {Float64} ? #410

Stephen77777 opened this issue Nov 6, 2021 · 0 comments

Comments

@Stephen77777
Copy link

I am trying to read "fig8_30.mat" (from Electric Machinery and Power Systems by S.J. Chapman) from a Julia file. I need the values to be {Float64} and not as Strings!
How can I do this using Julia v1.6 ?

Julia file: shunt_ts_curve.jl

Create a plot of the torque-speed curve of the

DC motor with armature reaction in Example 8-3.

using Plots, MAT, Interpolations, Dierckx

Get the magnetisation curve. This file contains the

three variables if_value, ea_value, and n_0.

#if_values, ea_values, n_0 = matread(fig8_30.mat)
#if_values = matopen("fig8_30.mat", if_values)
#varnames = names(file)
#close(file)
fileIn = matopen("fig8_30.mat") ### Here is where the file is read.
if_values,ea_values,n_0 = read(fileIn) ###
close(fileIn) ###

#=

First, initialise the values needed in this program.

v_t = 250 # Terminal voltage (V)
r_f = 50 # Field resistance (ohms)
r_a = 0.06 # Armature resistance (ohms)
i_l = collect(10:10:300) # Line currents (A)
n_f = 1200 # Number of turns on Field
f_ar0 = 600 # Armature reaction @ 200 A (A-t/m)

Calculate the armature current for each load.

i_a = i_l .- v_t / r_f

Now calculate the internal generated voltage for

each armature current

e_a = v_t .- i_a * r_a

Calculate the armature reaction MMF for each armature

current.

f_ar = (i_a / 200) * f_ar0

Calculate the effective field current.

i_f = v_t / r_f .- f_ar / n_f

Calculate the resulting internal generated voltage at

1200 rpm by interpolating the motor's magnetisation

curve.

itp_cubic = CubicSplineInterpolation(if_values,ea_values)
e_a0 = itp_cubic(i_f)

Calculate the resulting speed from Equation (8-42)

n = ( e_a ./ e_a0 ) * n_0
=#

The values of the variables if_values, ea_values, and n_0 produced are:-

julia> if_values
Pair{String, Any}("ea_values", [0.0; 21.0; … ; 289.0; 289.25])

julia> ea_values
Pair{String, Any}("n_0", 1200.0)

julia> n_0
Pair{String, Any}("if_values", [0.0; 0.3333; … ; 9.6666; 10.0])

How should I make them be {Float64} ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant