资源描述:
《在MATLAB中数学模型的表示ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、§2-6在MATLAB中数学模型的表示控制系统的数学模型在系统分析和设计中是相当重要的,在线性系统理论中常用的数学模型有微分方程、传递函数、状态空间表达式等,而这些模型之间又有着某些内在的等效关系。MATLAB主要使用传递函数和状态空间表达式来描述线性时不变系统(LinearTimeInvariant简记为LTI)。2.6.1传递函数单输入单输出线性连续系统的传递函数为:其中m≤n。G(s)的分子多项式的根称为系统的零点,分母多项式的根称为系统的极点。令分母多项式等于零,得系统的特征方程:dtm+bmr(t
2、)=b0dm-1r(t)dtm-1+b1+···dmr(t)dr(t)dt+bm-1+anc(t)+···dnc(t)dtna0dn-1c(t)dtn-1+a1dc(t)dt+an-1D(s)=a0sn+a1sn-1+……+an-1s+an=0因传递函数为多项式之比,所以我们先研究MATLAB是如何处理多项式的。MATLAB中多项式用行向量表示,行向量元素依次为降幂排列的多项式各项的系数,例如多项式P(s)=s3+2s+4,其输入为:>>P=[1024]注意尽管s2项系数为0,但输入P(s)时不可缺省0。M
3、ATLAB下多项式乘法处理函数调用格式为:>>C=conv(A,B)例如给定两个多项式A(s)=s+3和B(s)=10s2+20s+3,求C(s)=A(s)B(s),则应先构造多项式A(s)和B(s),然后再调用conv()函数来求C(s)>>A=[1,3];B=[10,20,3];>>C=conv(A,B)>>C=1050639即得出的C(s)多项式为10s3+50s2+63s+9MATLAB提供的conv()函数的调用允许多级嵌套,例如>>G(s)=4(s+2)(s+3)(s+4)>>G=4*conv(
4、[1,2],conv([1,3],[1,4]))可由下列的语句来输入有了多项式的输入,系统的传递函数在MATLAB下可由其分子和分母多项式唯一地确定出来,其格式为>>sys=tf(num,den)其中num为分子多项式,den为分母多项式>>num=[b0,b1,b2,…,bm];den=[a0,a1,a2,…,an];对于其它复杂的表达式,如:>>num=conv([1,1],conv([1,2,6],[1,2,6]));可由下列语句来输入:>>den=conv([1,0,0],conv([1,3],[1
5、,2,3,4]));>>G=tf(num,den)Transferfunction:2.6.2传递函数的特征根及零极点图传递函数G(s)输入之后,分别对分子和分母多项式作因式分解,则可求出系统的零极点,MATLAB提供了多项式求根函数roots(),其调用格式为:>>roots(p)其中p为多项式。例如,多项式p(s)=s3+3s2+4>>p=[1,3,0,4];%p(s)=s3+3s2+4>>r=roots(p);%p(s)=0的根>>r=-3.3533>>0.1777+1.0773i>>0.1777-1
6、.0773i反过来,若已知特征多项式的特征根,可调用MATLAB中的poly()函数,来求得多项式降幂排列时各项的系数,如上例>>poly(r)>>p=1.00003.00000.00004.0000polyval函数用来求取给定变量值时多项式的值,其调用格式为>>polyval(p,a)其中p为多项式;a为给定变量值例如,求n(s)=(3s2+2s+1)(s+4)在s=-5时值:>>n=conv([3,2,1],[1,4]);>>value=polyval(n,-5)>>value=-66传递函数在复平面
7、上的零极点图,采用pzmap()函数来完成,零极点图上,零点用“○。”表示,极点用“×”表示。其调用格式为>>[p,z]=pzmap(num,den)其中,p─传递函数G(s)=den的极点z─传递函数G(s)=num的零点例如,传递函数用MATLAB求出G(s)的零极点,H(s)的多项式形式,及G(s)H(s)的零极点图>>numg=[6,0,1];deng=[1,3,3,1];>>z=roots(numg)>>z=0+0.4082i>>0-0.4082i;%G(s)的零点>>p=roots(deng)>
8、>p=-1.0000+0.0000i>>-1.0000+0.0000i;%G(s)的极点>>-1.0000+0.0000i>>n1=[1,1];n2=[1,2];d1=[1,2*i];>>d2=[1,-2*i];d3=[1,3];>>numh=conv(n1,n2);>>denh=conv(d1,conv(d2,d3));>>printsys(numh,denh)>>pzmap(num,den)>>title(‘