# And to the third problem

```Sample induction machine simulation, based on Runge-Kutta algorithm.
P. T. Krein, March 2010
Parameters
Lls := 0.0008
Lm := 0.035
Ls := Lls + Lm
Rr := 0.1
Lr := Lls + Lm
Rs := 0.04
p := 2
J := 0.01
(
)
2
Tload( wm) := sign( wm) ⋅ 0.00007 ⋅ wm + 0.02⋅ wm + 0.5
Input (this case is for line start). The orthogonal Park transformation yields a vds value that
matches the line to line RMS value.
vds := 230
vqs := 0
vdr := 0
vqr := 0
ws := 120 ⋅ π
The algebraic relationships between current and flux linkage:
⎛⎜ lamds ⎞⎟ ⎛⎜ Ls
⎜ lamqs ⎟ = ⎜ 0
⎜ lamdr ⎟ ⎜ Lm
⎜ lamqr ⎟ ⎜ 0
⎝
⎠ ⎝
⎞⎟ ⎛⎜ ids ⎞⎟
Ls 0 Lm ⎟ ⎜ iqs ⎟
⋅
0 Lr 0 ⎟ ⎜ idr ⎟
⎟⎜ ⎟
Lm 0 Lr ⎠ ⎝ iqr ⎠
0
Lm
0
Define the L matrix to set up the inverse of this algebraic case, since we need current.
⎛⎜ Ls
0
lmattrix = ⎜
⎜ Lm
⎜ 0
⎝
0
Lm
Ls
0
0
Lr
Lm
0
0
⎞⎟
Lm ⎟
⎟
⎟
Lr ⎠
0
⎛⎜ Ls
0
linv = ⎜
⎜ Lm
⎜ 0
⎝
⎞⎟
Ls 0 Lm ⎟
0 Lr 0 ⎟
⎟
Lm 0 Lr ⎠
0
Lm
0
−1
Lr
Lm
⎛⎜ −
⎞⎟
0
0
2
2
⎜ Lm − Lr⋅ Ls
⎟
Lm − Lr⋅ Ls
⎜
⎟
Lr
Lm
⎜
−
0
⎟
0
2
2
⎜
Lm − Lr⋅ Ls
Lm − Lr⋅ Ls ⎟
linv := ⎜
⎟
Ls
Lm
⎜
⎟
−
0
0
2
⎜ Lm2 − Lr⋅ Ls
⎟
Lm − Lr⋅ Ls
⎜
⎟
Ls
Lm
⎜
⎟
0
−
0
2
2
⎜
⎟
Lm − Lr⋅ Ls ⎠
Lm − Lr⋅ Ls
⎝
0
−617.938
0
⎛⎜ 632.062
⎞⎟
0
632.062
0
−617.938 ⎟
linv = ⎜
⎜ −617.938
⎟
0
632.062
0
⎜ 0
⎟
−617.938
0
632.062 ⎠
⎝
Now, the current relationships:
ids( λds , λqs , λdr , λqr ) := linv
⋅ λds + linv
⋅ λqs + linv
⋅ λdr + linv
⋅ λqr
iqs( λds , λqs , λdr , λqr ) := linv
⋅ λds + linv
⋅ λqs + linv
⋅ λdr + linv
⋅ λqr
0, 0
0, 1
1, 0
0, 2
1, 1
0, 3
1, 2
1, 3
idr( λds , λqs , λdr , λqr ) := linv
⋅ λds + linv
⋅ λqs + linv
⋅ λdr + linv
⋅ λqr
iqr( λds , λqs , λdr , λqr ) := linv
⋅ λds + linv
⋅ λqs + linv
⋅ λdr + linv
⋅ λqr
2, 0
3, 0
2, 1
3, 1
2, 2
3, 2
The differential equations for flux linkage, from Krause p. 150.
2, 3
3, 3
x sub 4 is the speed.
The torque is equation 4.6-4, except that the factor of 3/2 is an artifact of a non-orthogonal Park
matrix and will not appear.
⎤
⎡
(vds − Rs⋅ids(x0 , x1 , x2 , x3)) + ws⋅x1
⎢
⎥
vqs − Rs⋅ iqs( x , x , x , x ) − ws⋅ x
⎢
⎥
0 1 2 3
0
⎢
⎥
vdr − Rr⋅ idr( x , x , x , x ) + ( ws − x ) ⋅ x
⎢
⎥
0 1 2 3
4 3
D( t , x ) := ⎢
⎥
vqr − Rr⋅ iqr( x , x , x , x ) − ( ws − x ) ⋅ x
0 1 2 3
4 2
⎢
⎥
⎢
⎥
p
⎢ ( x0⋅ iqs( x 0 , x1 , x 2 , x3) − x1⋅ ids( x 0 , x1 , x 2 , x3) ) ⋅ − Tload( x 4) ⎥
2
⎢
⎥
J
⎣
⎦
Here x0 is lambda ds, x1 is lambda qs, x2 is lambda dr, x3 is lambda qr, x4 is speed.
Initialize with zero all around:
⎛ 0.1 ⎞
⎜0 ⎟
⎜ ⎟
init := ⎜ 0.1 ⎟
⎜0 ⎟
⎜ ⎟
⎝0 ⎠
tstart := 0
tend := 1
npoints := 10000
y := rkfixed ( init , tstart , tend , npoints , D)
Redefine results to make them easier to follow
⟨0⟩
time := y
kk := 0 .. npoints
⟨1⟩
λds := y
⟨2⟩
λqs := y
⟨3⟩
λdr := y
⟨4⟩
λqr := y
⟨5⟩
wm := y
Here is speed.
400
300
wmkk
200
100
0
− 100
0
0.2
0.4
0.6
timekk
wm
9000
= 371.955
wm
⋅
30
9000 π
= 3.552 &times; 10
3
0.8
1
```