资源描述:
《控制系统仿真应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、MATLAB在控制系统仿真中的应用从本章开始,正式进入到有关MATLAB在控制系统仿真的领域中去。我们知道,对控制系统进行仿真,首先要建立系统的数学模型,这是计算机仿真的基础。我们下面先介绍控制系统数学模型的描述方法。第一节控制系统数学模型的基本描述方法在控制系统仿真中,主要用4种形式的数学模型:传递函数.、零极点模型、结构图形式和状态方程模型。这些模型之间存在着内在的等效关系。在不同的场合下可能使用的模型形式要求不同,需要了解模型之间的转换方法。这一节主要介绍它们的MATLAB实现。一.控制系统的传递函数描述:(在MATLAB中称
2、tf模型)对系统的微分方程在零初始条件下做拉氏变换,则可得系统的传递函数(SISO系统):G(s)=对线性时不变(线性定常)系统(LTI)来说,a、b均为常数a1≠0。前面讲过多项式的表示方法。这里分子分母都为多项式,可将分子分母分别表示出来。即用分子分母的系数构成两个向量,唯一的确定出来:num=[b,b,…,b]den=[a,a,…,a]注意:构成分子,分母向量按降幂排列的顺序。这只是一个简单的特例,很多时候,传递函数的分子、分母均为多项式相乘的形式,如:不能直接写出,可借助多项式乘法运算函数conv()来处理,以便获得分子、分
3、母多项式向量。conv()函数的调用方式为:c=conv(a,b)a,b各表示一个多项式,c表示a和b的乘积多项式,此函数允许嵌套使用:c=conv(a,conv(b,e)),则上例的G(s)可用下面的语句来输入:num=4*conv([1,2],conv([1,6,6],[1,6,6]));den=conv([1,0],conv([1,1],conv([1,1],conv([1,1],[1,3,2,5]))));还可以进一步地编写一个convs()函数来一次性地求出若干个(十个)多项式的连乘积:functiona=convs(a1
4、,a2,a3,a4,a5,a6,a7,a,8,a9,a10)a=a1;58fori=2:nargin%在MATLAB中它也是一个固定变量,表示在函数调用时实际输入变量的个数。eval([‘a=conv(a,a’int2str(i)‘);’])%eval()函数执行MATLAB语句构成的字符串。end这里定义的函数,可以一次执行十个多项式的乘积。如上例可以写成:convs([1,0],[1,1],[1,1],[1,1],[1,3,2,5])注意:写完函数后一定要按函数名来保存该文件。相应地,对离散时间系统的动态模型,用脉冲传递函数描述
5、,其输入方法与此类似,不多举例。如果是MIMO系统,则用传递矩阵描述,如:则可表示为:num={[1,1];1}den={[122];[11]}二.控制系统的零极点模型:(zpk模型)是传递函数的另一种表现形式,对SISO系统:G(s)=将零点、极点及K值输入即可建立零极点模型。z=[-z,-z…,-z]p=[-p,-p…,-p]k=k对于给出的传函来说,分别对分子分母作因式分解,则可以得出系统的零极点模型。这可以通过求出分子,分母多项式的根来实现。MATLAB中提供了多项式求根的函数,roots()调用格式:z=roots(a)其
6、中:z—各个根所构成的向量a—多项式系数向量系统增益k即为原传递函数分子的最高项系数与分母最高项系数的比值。分别求出分子分母多项式的根,即可得到系统的零,极点模型。对于多输入多输出系统,应分别对每个输入求出系统的零极点模型最后才可以获得整个系统的零极点模型(为矩阵形式)。两种模型之间的转换函数:[z,p,k]=tf2zp(num,den);[num,den]=zp2tf(z,p,k)三.控制系统状态方程模型:(ss模型)LTI系统的状态方程:=Ax+BuY=Cx+Du只要将A,B,C,D几个矩阵输入进去即可。58对于离散系统来说,也
7、与上面类似。MATLAB还提供了由系统状态方程转换为系统零极点模型及传递函数模型的函数。[num,den]=ss2tf(A,B,C,D,iu)%iu—表示输入的序号(对多输入系统)[z,p,k]=ss2zp(A,B,C,D,iu)%[z,p,k]—表示对第iu个输入信号的传递函数的零极点。[A,B,C,D]=tf2ss(num,den)[A,B,C,D]=zp2ss(z,p,k)四.在MATLAB控制系统工具箱中的LTI对象:为了避免对一个系统采用多个分离变量进行描述,新版本的控制系统工具箱,将LTI系统的各种描述封装成一个对象,即
8、用一个变量来描述。在控制系统工具箱中,有以上讲述的三种对象,即ss对象,tf对象和zpk对象。每种系统模型的生成和模型间的转换均可以通过一个函数来实现。下面介绍这些函数:1.dss()函数:生成系统的状态空间模型。格式:sys=dss