自动控制原理实验一——离散控制系统建模和仿真

1.采用双线性变换法将传递函数离散化
已知一个模拟控制器的传递函数为:


用双线性变换法(Tustin)法,求出与之等价的离散表达式 D(z),采样周期 T=1s:

num = [11 1];
den = [3 1];
sys = tf(num,den);
% bode(sys);
dsys = c2d(sys, 1, 'tustin')  % 用双线性变换法进行离散,第二个参数为采样周期
% dsys = c2d(sys, 1, 'zoh')  % 用零阶保持法进行离散,第二个参数为采样周期
figure; bode(sys,'b', dsys, 'r');

手动计算,则将s=2(z-1)/(z+1) 代入。

2.离散化方法比较试验
在这里插入图片描述
(1)绘制该系统的阶跃响应、脉冲响应和频率响应。

num = [1 0.5 100];
den = [1 5 100];
figure;
subplot(2,2,1); step(num,den); title('阶跃响应');
subplot(2,2,2); impulse(num,den); title('脉冲响应');
subplot(2,2,3); bode(num,den); title('频率响应');

(2)若采样周期 T=0.1s,分别采用 ZOH 方法和 FOH 方法将 H(s)离散化,并将连续系统、离散系统(ZOH 法)和离散系统(FOH 法)的阶跃响应绘制于同一幅图中。

num = [1 0.5 100];
den = [1 5 100];
sys = tf(num,den);
dsys_zoh = c2d(sys, 0.1, 'zoh');
dsys_foh = c2d(sys, 0.1, 'foh');
figure;
step(sys,'r',dsys_zoh,'b',dsys_foh,'g');
legend('连续曲线','zoh曲线','foh曲线');

(3)若采样周期 T=0.1s,采用脉冲响应不变法将 H(s)离散化,并将连续系统、离散系统(脉冲响应不变法)的脉冲响应绘制于同一幅图中。

num = [1 0.5 100];
den = [1 5 100];
sys = tf(num,den)
dsys = c2d(sys, 0.1, 'imp');
impulse(sys,'r',dsys,'b');
legend('连续曲线','脉冲响应不变曲线');

(4)若采样周期 T=0.05s,分别采用双线性变化法、零极点匹配法和 ZOH 法将 H(s)离散化,并将连续系统、离散系统(双线性变化法)、离散系统(零极点匹配法)和离散系统(ZOH 法)的频率响应绘制于同一幅图中。

num = [1 0.5 100];
den = [1 5 100];
sys = tf(num,den);
dsys_tustin = c2d(sys, 0.05, 'tustin');
dsys_matched = c2d(sys, 0.05, 'matched');
dsys_zoh = c2d(sys, 0.05, 'zoh');
bode(sys,'r',dsys_tustin,'b',dsys_matched,'y',dsys_zoh,'g');
legend('连续曲线','双线性变化法','零极点匹配法','ZOH法');

(5)采用零极点匹配法,分别设采样周期 T 为 0.1s,0.15s 和 0.3s,将连续系统、离散系统(T=0.1s)、离散系统(T=0.15s)和离散系统(T=0.3s)的频率响应绘制于同一幅图中。

num = [1 0.5 100];
den = [1 5 100];
sys = tf(num,den);
dsys_1 = c2d(sys, 0.1, 'matched');
dsys_15 = c2d(sys, 0.15, 'matched');
dsys_3 = c2d(sys, 0.3, 'matched');
bode(sys,'r',dsys_1,'b',dsys_15,'y',dsys_3,'g');
legend('连续曲线','T=0.1','T=0.15','T=0.3');

附:构建闭环单位负反馈系统

num0 = [0.81 0.162];
den0 = [1 2 0 0];
[num, den] = cloop(num0, den0);  % 单位闭环负反馈
sys = tf(num, den);
dsys = c2d(sys, 0.1, 'tustin')
step(sys,'r', dsys, 'b');
legend('连续系统','离散系统');

你可能感兴趣的:(#,自动控制原理,MATLAB,自动控制原理)