Tutorial
Tutorial
______________________________________________________
d2 d
M⋅ y ( t) + d ⋅ y ( t) + k ⋅ y ( t) = v ( t)
2 dt
dt
y ( 0) = 0
y' ( 0) = 0
(
y := Odesolve t , tfinal , steps )
( )
y tfinal = −1.685 × 10 − 3
tfinal
t := 0 , .. tfinal
steps
0.005
y ( t) 0
0.005
0 0.02 0.04 0.06 0.08 0.1
t
d
v ( t) := y ( t)
dt
v ( t)
0 0.02 0.04 0.06 0.08 0.1
⎛ 1000 ⎞ k
b := denom ( Gp ( s) ) coeffs , s → ⎜ .1e-2 ⎟ d
⎜ ⎟
⎝ .1e-2 ⎠ M
______________________________________________________
Zeros (none) and Poles: (polyroots can handle large polynomials)
⎛ −0.5 − 1000i ⎞
X := polyroots ( b) X= ⎜ ⎟
⎝ − 0.5 + 1000i ⎠
______________________________________________________
Pole-Zero Map:
1000
Im ( X) 0
1000
0.6 0.5 0.4
Re ( X)
1
Y ( s) := Gp ( s) ⋅ U ( s) →
(.1e-2 ⋅ s2 + .1e-2 ⋅ s + 1000) ⋅ s
invlaplace , s , t ( − .50000) ⋅ t
y ( t) := Y ( s) → .10000e-2 − .10000e-2 ⋅ e ⋅ cos ( 10
float , 5
0.002
y ( t) 0.001
0
0 0.02 0.04 0.06 0.08 0.1
t
Response to v(t): t := t
v ( t) := sin ( ω ⋅ t)
800
V ( s) := v ( t) laplace , t , s →
2
s + 640000
800
Y ( s) := Gp ( s) ⋅ V ( s) →
(.1e-2 ⋅ s2 + .1e-2 ⋅ s + 1000) ⋅ (s2 + 640000)
invlaplace , s , t
y ( t) := Y ( s) expand , s → .61728e-5 ⋅ e
( − .50000) ⋅ t
⋅ cos ( 1000.0 ⋅ t) − .2
simplify
float , 5
0.005
y ( t) 0
0.005
0 0.02 0.04 0.06 0.08 0.1
t
( )
y tfinal = −1.685 × 10 − 3
k := 1 .. n
0 1000
50
( (
20 ⋅ log Gp ω k ⋅ j )) 100
150
200
1 .10 1 .10 1 .10 1 .10
3 4 5 6
100
ωk
0 1000
50
⎛ 360 ⎞
( (
arg Gp ω k ⋅ j ⋅ ⎜ )) ⎟ 100
⎝ 2⋅ π ⎠
150
200
1 .10 1 .10 1 .10 1 .10
3 4 5 6
100
ωk
Nyquist Plot:
1
Gp ( s) →
2
.1e-2 ⋅ s + .1e-2 ⋅ s + 1000
( ( )
ω := stack −logspace 10 6 , 10 2 , 200000 , logspace 10 2 , 10 6 , 200000 ( ))
k := 1 .. rows ( ω )
1
1
−
2
0.5
( (
Im Gp ω k ⋅ j )) 1 0.5 0 0.5 1
0.5
( (
Re Gp ω k ⋅ j ))
1
Gp ( s) →
2
.1e-2 ⋅ s + .1e-2 ⋅ s + 1000
Ki
( )
Gc s , Ki := 1 +
s
+ 0.001 ⋅ s
H ( s) := 1
______________________________________________________
Gp ( s) ⋅ Gc s , Ki ( )
(
G s , Ki :=) ( )
1 + Gp ( s) ⋅ Gc s , Ki ⋅ H ( s) (
G s , Ki )
⎛ 1000. ⋅ Ki ⎞
⎜ ⎟
( )
a Ki := numer Y s , Ki ( ( )) coeffs , s → ⎜ 1000. ⎟
⎜ ⎟
⎝ 1 ⎠
⎛ 0 ⎞
⎜ ⎟
⎜ 1000. ⋅ Ki ⎟
( )
b Ki := denom Y s , Ki ( ( )) coeffs , s → ⎜ 1001000. ⎟
⎜ ⎟
⎜ 2. ⎟
⎜ ⎟
⎝ 1 ⎠
__________________________________________________________
( )
O Ki := polyroots a Ki ( ( )) O := O
( )
X Ki := polyroots b Ki ( ( )) X := X
⎛ a ( Ki) 3 ⎞ k =
∏ (s − O (Ki)k) O
Y ( s , Ki) := ⎜
1
⎟⋅ 4 convert , parfrac , s →
b ( Ki) 5 ⎡⎣( −X ( Ki) 4)
⎝ ⎠
∏ (s − X (Ki)k)
k= 1
( ) ( ) ( ) ( )
−⎡O Ki 1 ⋅ X Ki 1 − O Ki 1 ⋅ O Ki 2 −
⎣
( ) ( )
y t , Ki := Y s , Ki invlaplace , s , t →
( ( )) ( ) ( ( ))
⎡⎣ −X Ki 4 + X Ki 1⎤⎦ ⋅ ⎡⎣ −X Ki 3 + X
0.1 1
y ( t1 , 1) 0.05 y ( t2 , 1) 0.5
y ( t1 , 500) y ( t2 , 500)
y ( t1 , 1000) y ( t2 , 1000)
0 0.05 0.1 0 5 10
0.05 0.5
t1 t2
n := 1001
(
ω := logspace 10 − 4 , 10 4 , n )
k := 1 .. n
( (
20 ⋅ log G ω k ⋅ j , 1 )) 20
20 ⋅ log ( G ( ω k ⋅ j , 500) ) 40
20 ⋅ log ( G ( ω k ⋅ j , 1000) )
60
80
1 .10 1 .10 0.01 100 1 .10 1 .10
4 3 3 4
0.1 1 10
ωk
Nyquist Plot:
2
expand , s 1000. ⋅ s + 1000. ⋅ Ki + s
(
G s , Ki ) simplify
→
3 2
s + 2. ⋅ s + 1001000. ⋅ s + 1000. ⋅ Ki
( ( )
ω := stack −logspace 10 4 , 10 − 1 , 50000 , logspace 10 − 1 , 10 4 , 50000( ))
k := 1 .. rows ( ω )
− 0.5 1
0.5
( (
Im G ω k ⋅ j , 1 ))
Im ( G ( ω k ⋅ j , 500) )
1 0.5 0 0.5 1
Im ( G ( ω k ⋅ j , 1000) )
0.5
( ( )) ( ( )) ( ( ))
Re G ω k ⋅ j , 1 , Re G ω k ⋅ j , 500 , Re G ω k ⋅ j , 1000
Root-Locus Plot:
Ki := 1 , 11 .. 1001
1500
1000
( ( ))
Im O Ki 1
Im ( O ( Ki) 2)
500
Im ( X ( Ki) 1)
Im ( X ( Ki) 2)
1000 900 800 700 600 500 400 300 200 100
Im ( X ( Ki) 3)
Im ( X ( Ki) 4) 500
1000
1500
( ( )) ( ( )) ( ( )) ( ( )) ( ( ))
Re O Ki 1 , Re O Ki 2 , Re X Ki 1 , Re X Ki 2 , Re X Ki 3 , Re X (