最小拍控制器设计matlab实验
[实验目的]
了解和掌握有纹波和无纹波最小拍控制器的原理和设计方法。
利用Matlab仿真,观察系统的输入输出曲线。
[实验内容]
系统如图所示,
G(s)?-R(
G(s)
?
-
R(s)
Y(s)
ZOH
D(z)
A、阶跃输入信号作用下,有纹波最小拍控制器、无纹波最小拍控制器设计;
最小拍有纹波控制器设计:
最小拍无纹波控制器设计:
matlab代码:
% 有纹波
T=1;gz=c2d(tf(10,[1 1 0]),T)
dz=tf([0.1*exp(1) -0.1],[1 exp(1)-2],T)
sys=feedback(gz*dz,1)
step(sys)
% 无纹波
T=1;gz=c2d(tf(10,[1 1 0]),T);
dz=tf([0.1*exp(1) -0.1],[exp(1)-1 exp(1)-2],T)
sys=feedback(gz*dz,1)
step(sys)
matlab结果:
% 有纹波
gz =
3.679 z + 2.642
----------------------
z^2 - 1.368 z + 0.3679
dz =
0.2718 z - 0.1
--------------
z + 0.7183
sys =
z^2 + 0.3504 z - 0.2642
----------------------------------------
z^3 + 0.3504 z^2 - 0.2642 z + 3.331e-016
% 无纹波
dz =
0.2718 z - 0.1
----------------
1.718 z + 0.7183
sys =
z^2 + 0.3504 z - 0.2642
--------------------------------------------------
1.718 z^3 - 0.6321 z^2 - 6.661e-016 z + 3.331e-016
B、使A中采样点间增加4个点进行显示,观察有纹波、无纹波控制器的区别;
在采样点间增加4个点相当于T=0.2s;
最小拍有纹波控制器设计:
最小拍无纹波控制器设计:
matlab代码:
% 有纹波
T=0.2;gz=c2d(tf(10,[1 1 0]),T)
dz=tf([1 -exp(-0.2)],[10*exp(-0.2)-8 10-12*exp(-0.2)],T)
sys=feedback(gz*dz,1)
step(sys)
% 无纹波
T=0.2;gz=c2d(tf(10,[1 1 0]),T);
dz=tf([1 -exp(-0.2)],[2-2*exp(-0.2) 10-12*exp(-0.2)],T)
sys=feedback(gz*dz,1)
step(sys)
matlab结果:
% 有纹波
gz =
0.1873 z + 0.1752
----------------------
z^2 - 1.819 z + 0.8187
dz =
z - 0.8187
-----------------
0.1873 z + 0.1752
sys =
0.1873 z^2 + 0.02188 z - 0.1435
------------------------------------------------
0.1873 z^3 + 0.02188 z^2 - 0.1435 z - 5.551e-017
% 无纹波
dz =
z - 0.8187
-----------------
0.3625 z + 0.1752
sys =
0.1873 z^2 + 0.02188 z - 0.1435
---------------------------------------------------
0.3625 z^3 - 0.2968 z^2 + 1.943e-016 z - 5.551e-017
二、当时
A、阶跃输入信号作用下,无纹波最小拍控制器设计D1(z);
最小拍无纹波控制器设计:
matlab代码:
% 无纹波
T=1;gz=c2d(tf(1,[1 0]),T)
dz=tf(1,1,T)
sys=feedback(gz*dz,1)
step(sys)
matlab结果:
% 无纹波
gz =
1
-----
z - 1
dz =
1
sys =
1
-
z
B、斜坡输入信号作用下,无纹波最小拍控制器设计D2(z);
最小拍无纹波控制器设计:
matlab代码:
% 无纹波
T=1;gz=c2d(tf(1,[