9.3.1. CONTROL.l
MATLAB , (ToolBox) (Control System Toolbox).
T (ToolBox) , - , () .
() Control System Toolbox CONTROL TOOLBOX MatLab:
MatLab\ TOOLBOX\ CONTROL.
:
- () LTI (Linear Time-Invariant System , ) ();
- (), .. LTI, :
- TF (Transfer Function) );
- ZPK (Zero-Pole-Gain , , );
- SS (State Spae ).
:
- TF - ;
- ZPK , , ;
- SS , .
( TF ):
num
( U Y) - -;
( ) - nY nU.
den
( U Y) - -;
( ) - nY nU.
Variable () .
ZPK :
z
- -;
- nY nU.
p
- -;
- nY nU.
k
- ;
nY nU.
SS ( ):
a, b, c, d A, B, C, D , :
x = Ax + Bu,
y = Cx + Du.
e - E Descriptor (). E= eye (size(A)).
StateName ( ). nX 1 .
, LTI-:
Ts ( ).
Ts = -1 ;
Ts = 0 .
Td ( ).
InputName .
- .
nX 1 .
|
|
OutpuName .
- .
nX 1 .
Notes .
Userdata .
9.3.2.
() CONTROL :
- ;
- ;
- , .
LTI- :
ss A, B, C, D .
dss , .
tf .
zpk , .
filt , z-1.
set () LTI- ( , ..).
get .
, .
Ts , ( tf zpk), - ( ss dss).
filt , z-1.
ss, dss, tf zpk .
, , , c2d :
sysd=c2d(sys, Ts, method).
sys ;
sysd ;
Ts ;
method , . :
zoh : , ;
foh - : , .
d2c .
d2d , :
sys1=d2d(sys, Ts).
, .
.
( ), .
|
|
, , , .
MatLab :
- , ,
- .
, , :
plus (minus) ;
parallel - , ;
mtimes ( * ) ; ;
series - ;
feedback - , ;
append - ( );
connect , append;
inv , , .. , .
() , .
:
-
.
:
, K;
- , , - W3.
, ,
M ;
ω - ;
ψ ( ).
M , .
.
:
>> W1=tf(25,[100 50])
Transfer function:
---------------
100 s + 50
>> W2=tf(1, [1 0])
Transfer function:
---.
s
:
series:
>> W0=series(W1, W2)
Transfer function:
---------------------;
100 s^2 + 50 s
- :
>> W01=W1*W2
Transfer function:
----------------------.
100 s^2 + 50 s
, ψ, M, .
:
>> K=tf(2,1)
Transfer function:
- W3:
>> W3=tf([100 0], [1 10 100])
Transfer function:
100 s
-----------------------.
s^2 + 10 s + 100
:
- parallel
>> U1=parallel(K,W3)
Transfer function:
2 s^2 + 120 s + 200
-------------------
s^2 + 10 s + 100
-
>> U=K+W3
Transfer function:
2 s^2 + 120 s + 200
------------------------.
s^2 + 10 s + 100
, , feedback:
|
|
>> sys=feedback(W01,U)
Transfer function:
25 s^2 + 250 s + 2500
-------------------------------------------------------------------.
100 s^4 + 1050 s^3 + 10550 s^2 + 8000 s + 5000
, , set . , .
>> set(sys,'InputName',' ', 'OutputName',' ')
>> set(sys,'Notes',' ')
>> get(sys)
num: {[0 0 25 250 2.5e+003]}
den: {[100 1.05e+003 1.06e+004 8e+003 5e+003]}
Variable: 's'
Ts: 0
ioDelay: 0
InputDelay: 0
OutputDelay: 0
InputName: {' '}
OutputName: {' '}
InputGroup: [1x1 struct]
OutputGroup: [1x1 struct]
Notes: {' '}
UserData: []
9.3.3.
CONTROL , , , .
:
impulse .
step .
initial .
lsim , .
:
bode ( ) .
nyquist .
nichols , .. .
sigma ; .
margin .
, .
pole .
zpkdata , .
pzmap .
1. step ,
>> step(sys)
2. , impulse
>> impulse(sys)
, :
3. initial , -, , , -, .
>> sssys=ss(sys)
>> initial(sssys,[0 0 0 1],20)
4. lsim t , , u
>> t=0:0.01:40; u=sin(t); lsim(sssys,u,t);grid
:
1. >> bode(sys)
2. >> nyquist(sys)
3. >> nichols(sys)
4. >> sigma(sys)
|
|
5. >> margin(sys);grid
.
1. >> pole(sys)
ans =
-4.8653 + 8.5924i
-4.8653 - 8.5924i
-0.3847 + 0.6040i
-0.3847 - 0.6040i
2. >> sysz=zpk(sys)
Zero/pole/gain from input " " to output " ":
0.25 (s^2 + 10s + 100)
------------------------------------------------
(s^2 + 0.7693s + 0.5128) (s^2 + 9.731s + 97.5)
3. >> [z,p,k]=zpkdata(sysz,'v')
z =
-5.0000 + 8.6603i
-5.0000 - 8.6603i
p =
-4.8653 + 8.5924i
-4.8653 - 8.5924i
-0.3847 + 0.6040i
-0.3847 - 0.6040i
k =
0.2500
4. >> pzmap(sys); grid