MATLAB在离散控制系统中起着重要作用。无论将连续系统离散化、离散控制系统的离散输出响应、连续输出响应、离散控制系统设计等方面,都可以用MATLAB进行研究。下面举例介绍MATLAB在离散控制系统分析和设计中的应用。
8.8.1连续系统的离散化
连续系统离散化,在MATLAB中应用c2d() 函数实现,其调用格式为 c2d(num,den,T,’zoh’) 其中:num—传递函数分子多项式系数;den--传递函数分母多项式系数;T—采样周期;‘zoh’—零阶保持。
例8-20 已知采样系统的结构图如图8-43所示,求开环脉冲传递函数。采样周期T=1s。
C(s) R(s) 1eTs1 ss(s1)
解:可用解析法求出G(z)
图8-43 例8-20 系统结构图
G(z)z110.368z0.264Z2z21.368z0.368 zs(s1)用MATLAB可以方便地求出上述结果,程序如下:
num=[1]; den=[1,1,0]; T=1;
[numz,denz]=c2d(num,den,T, 'Zoh'); printsys(numz,denz, 'Z')
改为: num=[1]; den=[1,1,0]; G=tf(num, den) T=1;
Gd=c2d(G, T, 'Zoh')
打印结果为
0.368z0.264
z21.368z0.368第8章 离散控制系统
8.8.2 采样系统的响应
在MATLAB中,求系统的响应可以应用dstep(),dimpulse(),dlsim()函数来实现。分别用于求采样系统的阶跃、脉冲、任意输入时的响应。
(1) dstep()函数的调用格式为: dstep(num,den,n)
其中:num—脉冲传递函数分子多项式系数;den--传递函数分母多项式系数;n—用户指定的采样点数。
例8-21 已知离散系统结构图如图8-44所示,输入为单位阶跃信号,采样周期T=1s,求输出响应。
C(s) R(s) 1eTs 1ss(s1) -
图8-44 例8-21 系统结构图
解:由(z)G(z)0.368z0.2642
1G(z)zz0.63212可得C(z)(z)R(z)0.368zz1.4z31.4z41.14z5...
用MATLAB中的dstep()函数可很容易得到输出响应,如图8-45所示。程序如下 %此段程序求在例题给定采样周期的采样时刻系统单位阶跃响应数据c(kt) num=[0.368 0.264]; den=[1 -1 0.632]; dstep(num,den)
%下面计算例题连续系统单位阶跃响应 numg=[1]; deng=[1 1 0];
[nd,dd]=pade(1,2); numd=dd-nd;
dend=conv([1 0],dd);
[numdm,dendm]=minreal(numd,dend); [nl,dl]=series(numdm,dendm,numg,deng); [num,den]=cloop(nl,dl); t=[0:0.1:20]; step(num,den,t)
8-2
第8章 离散控制系统
输出结果如图8-46所示。
Step Response1.4Step Response1.51.211AmplitudeAmplitude0.80.60.50.40.200510Time (sec)15202500246810Time (sec)1214161820
图8-45离散系统阶跃响应 图8-46连续系统跃响应
(2)dimpulse()函数的调用格式同dstep()函数。 例8-21系统在采样时刻的单位脉冲响应为: num=[0.368 0.264]; den=[1 -1 0.632]; dimpulse(num,den) 结果如图8-47所示
Impulse Response0.70.60.50.40.3Amplitude0.20.10-0.1-0.2-0.30510Time (sec)152025
图8-47离散系统脉冲响应
(3)dslim()函数的调用格式为: dslim(num,den,u)
其中:num—脉冲传递函数分子多项式系数;den--传递函数分母多项式系数;u—输入。
8-3
因篇幅问题不能全部显示,请点此查看更多更全内容