资源描述:
《控制系统的计算机仿真应用课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章控制系统的计算机仿真应用9.1控制系统的MATLAB仿真基础9.1.1控制系统的模型表示在MATLAB里,可用4种数学模型表示控制系统,即:传递函数模型、零极点增益模型、状态空间模型以及动态结构图。其中前3种是用数学表达式描述的,每种模型都有连续系统的及离散系统的两种类别;而动态结构图是基于传递函数的图形化形式,就是MATLAB里的SIMULINK结构图。(1)传递函数模型不论是连续还是离散时间系统,传递函数分子/分母均按s或z的降幂排列。在MATLAB里,都可直接用分子/分母多项式系数构成的两个向量num与den表示系统,即:num=[c0,c1,
2、…,cm];den=[a1,a2,…,an];在MATLAB中,用函数命令tf()来建立控制系统的传递函数模型,tf()函数命令常用的调用格式为:sys=tf(num,den)sys=tf(num,den,Ts)sys=tf(M)tfsys=tf(sys)sys=tf(num,den)函数返回的变量sys为连续系统的传递函数模型。函数输入参量num与den分别为系统的分子与分母多项式系数向量。sys=tf(num,den,Ts)函数返回的变量sys为离散系统的传递函数模型。Ts为采样周期,当Ts=-1或者Ts=[]时,则系统的采样周期未定义,num与den
3、的定义同前。sys=tf(M)函数定义一个增益为M的静态系统。tfsys=tf(sys)函数将任意的LTI对象转换成传递函数模型,缺省时使用tzero()函数将状态空间模型转换成传递函数模型,使用poly()函数将零极点增益模型转换成传递函数模型。(2)零极点增益模型在MATLAB中,用函数命令zpk()来建立控制系统的零极点增益模型,zpk()函数的调用格式为:sys=zpk(num,den)sys=zpk(num,den,Ts)sys=zpk(M)tfsys=zpk(sys)其中:sys=zpk(num,den)函数返回的变量sys为连续系统的零极点增
4、益模型。函数输入参量的含义同tf()函数命令的解释。(3)状态空间模型在MATLAB中,用函数ss()来建立控制系统的状态空间模型,或者将传递函数模型与零极点增益模型转换为系统状态空间模型。ss()函数的调用格式为:sys=ss(a,b,c,d)sys=ss(a,b,c,d,Ts)sys=ss(d)sys_ss=ss(sys)sys=ss(a,b,c,d)函数返回的变量sys为连续系统的状态空间模型。函数输入参量a,b,c,d分别对应于系统的A,B,C,D参数矩阵。sys=ss(a,b,c,d,Ts)函数返回的变量sys为离散系统的状态空间模型。Ts为采样
5、周期,当Ts=-1或者Ts=[]时,则系统的采样周期未定义,a,b,c,d的定义同前。。sys=ss(d)函数等价于sys=ss([],[],[],d)。sys_ss=ss(sys)函数是将任意的LTI对象sys转换成状态空间模型。解决实际问题时,常常需要对自控系统的数学模型进行转换。MATLAB6.提供了前三种数学表达式数学模型(传递函数模型、零极点增益模型与状态空间模型)之间转换的函数:ss2tf(),ss2zp(),tf2ss(),tf2zp(),zp2ss(),zp2tf()。这些函数之间的转换功能可用表9-1说明。函数名函数功能ss2tf将系统状
6、态空间模型转换为传递函数模型ss2zp将系统状态空间模型转换为零极点增益模型tf2ss将系统传递函数模型转换为状态空间模型tf2zp将系统传递函数模型转换为零极点增益模型zp2ss将系统零极点增益模型转换为状态空间模型zp2tf将系统零极点增益模型转换为传递函数模型9.1.2环节方框图模型的化简系统是由多个环节组成。每个环节又是由多个元件构成的。环节在MATLAB里又叫模块。以下介绍环节方框图模型的化简。1.环节串联连接的化简使用series()函数命令,不必做多项式的乘除运算即可实现两个环节传递函数(sys1与sys2)串联连接。如果sys1=tf(nu
7、m1,den1),sys2=tf(num2,den2),其命令格式为:sys=series(sysl,sys2)如果已知两个环节状态空间模型的矩阵组分别为:(a1,b1,c1,d1)与(a2,b2,c2,d2),则求两个环节串联连接等效系统状态空间模型[a,b,c,d]矩阵组的命令格式为:[a,b,c,d]=series(a1,bl,cl,dl,a2,b2,c2,d2)需要特别指出,series()函数命令还可以将多个环节按两两串联的形式多次递归调用加以连接,进行等效化简。实际上sys=series(sysl,sys2)命令现在很少用,已由命令sys=sy
8、s1*sys2*...*sysn所取代,这样命令中不仅省掉了“se