- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
控制系统仿真应用控制系统仿真应用
MATLAB在控制系统仿真中的应用
从本章开始,正式进入到有关MATLAB在控制系统仿真的领域中去。我们知道,对控制系统进行仿真,首先要建立系统的数学模型,这是计算机仿真的基础。我们下面先介绍控制系统数学模型的描述方法。
控制系统数学模型的基本描述方法
在控制系统仿真中,主要用4种形式的数学模型:传递函数.、零极点模型、结构图形式和状态方程模型。这些模型之间存在着内在的等效关系。
在不同的场合下可能使用的模型形式要求不同,需要了解模型之间的转换方法。
这一节主要介绍它们的MATLAB实现。
一.控制系统的传递函数描述:(在MATLAB中称tf模型)
对系统的微分方程在零初始条件下做拉氏变换,则可得系统的传递函数(SISO系统):
G(s)=
对线性时不变(线性定常)系统(LTI)来说,a、b均为常数a1≠0。前面讲过多项式的表示方法。这里分子分母都为多项式,可将分子分母分别表示出来。即用分子分母的系数构成两个向量,唯一的确定出来:
num=[b,b,…,b]
den=[a,a,…,a]
注意:构成分子,分母向量按降幂排列的顺序。
这只是一个简单的特例,很多时候,传递函数的分子、分母均为多项式相乘的形式,如:
不能直接写出,可借助多项式乘法运算函数conv( )来处理,以便获得分子、分母多项式向量。
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( )函数来一次性地求出若干个(十个)多项式的连乘积:
function a=convs(a1,a2,a3,a4,a5,a6,a7,a,8,a9,a10)
a=a1;
for i=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])
注意:写完函数后一定要按函数名来保存该文件。
相应地,对离散时间系统的动态模型,用脉冲传递函数描述,其输入方法与此类似,不多举例。
如果是MIMO系统,则用传递矩阵描述,如:
则可表示为:
num= {[1,1];1}
den={[1 2 2 ];[1 1]}
二.控制系统的零极点模型:(zpk模型)
是传递函数的另一种表现形式,对SISO系统:
G(s)=
将零点、极点及K值输入即可建立零极点模型。
z=[-z,-z …,-z]
p=[-p,-p …,-p]
k=k
对于给出的传函来说,分别对分子分母作因式分解,则可以得出系统的零极点模型。这可以通过求出分子,分母多项式的根来实现。MATLAB中提供了多项式求根的函数,roots ( )
调用格式: z=roots(a)
其中:z — 各个根所构成的向量 a — 多项式系数向量
系统增益k即为原传递函数分子的最高项系数与分母最高项系数的比值。
分别求出分子分母多项式的根,即可得到系统的零,极点模型。
对于多输入多输出系统,应分别对每个输入求出系统的零极点模型最后才可以获得整个系统的零极点模型(为矩阵形式)。
两种模型之间的转换函数:
[z ,p ,k]=tf2zp(num , den);
[num , den ]=zp2tf(z ,p ,k)
三. 控制系统状态方程模型:( ss 模型)
LTI系统的状态方程: = Ax + Bu
Y = Cx + Du
只要将A,B,C,D几个矩阵输入进去即可。
对于离散系统来说,也与上面类似。
MATLAB还提供了由系统状态方程转换为系统零极点模型及传递函数模型的函数。
[num , den]=ss2tf(A ,B ,C ,D , iu ) %iu—表示输入的序号(对多输入系统)
[z, p ,k]=ss2zp(A ,B ,C ,D , iu ) %[z ,p ,k]— 表示对第iu个输入信号的传递函数的零极
您可能关注的文档
- 捧着一颗心来.doc
- 捷易通自动充值软件.doc
- 据结构》课程建设规划.doc
- 捷达车等特殊故障.doc
- 掀翻世界足联的记者.doc
- 授 权 书.doc
- 授信业务培训(五).doc
- 授导型教案设计.doc
- 捷多邦晒单分享.doc
- 捷而精的单反入门.doc
- 2024年高考物理考前冲刺试卷及答案 (五).pdf
- 单位人事管理制度集合大全.docx
- 2025至2030年中国安全快换钻孔攻丝多用夹头行业投资前景及策略咨询研究报告.docx
- 专题08 金属和金属矿物(练习)(原卷版).docx
- 数学推理能力提升的有效策略研究教学研究课题报告.docx
- 学习共同体在高中数学中的实践探索教学研究课题报告.docx
- 学生身体素质提升与体育教学实践的实际应用和未来发展趋势的前瞻性调查研究教学研究课题报告.docx
- 高中生职业规划与社会责任拓展教育策略研究教学研究课题报告.docx
- 德育培养对学生自我认知的影响研究教学研究课题报告.docx
- 调查学生创新精神培养的有效途径教学研究课题报告.docx
文档评论(0)