- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
控制系统的动态数学模型控制系统数学模型的MATLAB实现.ppt
《控制工程基础》 第2章 控制系统的动态数学模型 2.9 控制系统数学模型的MATLAB实现 2.9.1 MATLAB简介 2.9.2 控制系统在MATLAB中的描述 2.9.3 计算闭环传递函数 2.9.4 展开部分分式 * MATLAB简介: ? 1980年前后,美国Moler博士构思并开发; ? 最初的MATLAB版本是用FORTRAN语言编写,现在的版本用C语言改写; ? 1992年推出了具有重要意义的MATLAB4.0版本;并于1993年推出了其Windows平台下的微机版。 (1)如果描述n阶线性定常系统的传递函数为 在MATLAB中,多项式采用系数行向量表示,系数按降序排列。用num和den分别表示G(s)的分子和分母多项式,即: num=[b0 b1 … bm] den=[a0 a1 … an] 然后利用下面的语句就可以表示该系统: sys=tf(num,den) 其中tf()代表传递函数形式的描述。 例1: num=[3 2 1] den=[4 3 2 1] sys=tf(num,den) Transfer function: 3 s^2 + 2 s + 1 ----------------------- 4 s^3 + 3 s^2 + 2 s + 1 MATLAB程序: 运行结果: 用z, p和k分别表示G(s)的零点、极点和增益: z=[z1 z2 … zm] p=[p1 p2 … pn] k=[k1] 则可以用零极点形式来描述,语句为 sys=zpk(z,p,k) 其中zpk ()代表零极点形式的描述。 (2)如果传递函数为零极点的形式 例2: z=[-1 -2] p=[-3 -4 -5] k=[10] sys=zpk(z,p,k) Zero/pole/gain: 10 (s+1) (s+2) ----------------- (s+3) (s+4) (s+5) MATLAB程序: 运行结果: (3)传递函数形式的描述和零极点形式的描述可以相互转化,语句分别为 [z p k]=tf2zp(num,den) [num,den]=zp2tf(z,p,k) 例3:MATLAB程序(tf to zp) num=[3 2 1] den=[4 3 2 1] [z p k]=tf2zp(num,den) 例4:MATLAB程序(zp to tf) z=[-1;-2] p=[-3 -4 -5] k=[10] sys_zpk=zpk(z,p,k) [num,den]=zp2tf(z,p,k) sys_tf=tf(num,den) (4)当传递函数复杂时,可以用多项式乘法函数conv()来实现。 (复数域为多项式乘法,时间域为卷积) 例5:MATLAB程序 den1=[1,2,2] den2=[2,3,3,2] den3=conv(den1,den2) 系统的基本连接方式有3种: 串连、并联和反馈。 MATLAB语句: 串连:sys=series(sys1,sys2) 并联:sys=parallel(sys1,sys2) 反馈:sys=feedback(sys1,sys2,-1) 如果是单位反馈系统,则可使用cloop()函数:sys=cloop(sys1,-1) 例6: num=[3 2 1];den=[4 3 2 1];g1=tf(num,den) z=[-1 -2];p=[-3 -4 -5];k=[10];g2=zpk(z,p,k) sys1=series(g1,g2) sys2=parallel(g1,g2) sys3=feedback(g1,g2,-1) MATLAB提供函数residue用于实现部分分式展开,其句法为: [r, p, k] = residue(num, den) 其中r, p分别为展开后的留数及极点构成的列向量,k为余项多项式行向量。 函数residue 也可用于将部分分式合并,其句法为: [num, den] = residue(r, p, k) 例7:计算下式的部分分式展开式 num=[1 11 39 52 26] den=[1 10 35 50 24] [r, p, k]=residue (num,den) 运行结果: r = 1.0000 2.5000 -3.0000 0.5000 p = -4.0000 -3.0000 -2.0000 -1.0000 k = 1 得上式的部分分式展开式为: 例8:计算下式的部分分式合并式 r=[1;2.5;-3;0.5];p=[-4;-3;-2;-1];k=1; [num,den]=residue(r,p,k); sys=tf(num,den) 运行结果,得上式的
文档评论(0)