第7章-控制系统的MATLAB仿真课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第7章-控制系统的MATLAB仿真课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制系统 MATLAB 仿真 课件
- 资源描述:
-
1、1 本章主要教学内容本章主要教学内容在在MATLAB中描述控制系统的数学模型中描述控制系统的数学模型系统方框图模型的简化及应用系统方框图模型的简化及应用控制系统的时域分析控制系统的时域分析控制系统的频域分析控制系统的频域分析利用利用MATLAB语言进行仿真编程的具体语言进行仿真编程的具体应用应用第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真2本章教学目的及要求本章教学目的及要求熟悉熟悉MATLAB的基本应用的基本应用掌握利用掌握利用MATLAB建立数学模型的方法建立数学模型的方法熟悉控制系统的时域和频域分析熟悉控制系统的时域和频域分析掌握掌握MATLAB的仿真编程应用的仿真编程
2、应用第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真3 7.1 控制系统的模型表示 MATLAB 提供了数学模型的建立函数和各模型之间的转换功能函数,可以分别采用传递函数、零极点增益、状态空间以及动态结构图等4种数学模型来表示控制系统,前3种是用数学表达式描述的系统模型,每种模型都有连续系统及离散系统两种类别的表示;而动态结构图是基于传递函数的图形化形式,是采用MATLAB中提供的SIMULINK结构图来实现的。MATLAB中使用的数学模型之间的转换也很方便,使得采用MATLAB编制的程序更加简单、精炼而高效。第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真4 7.
3、1.1 系统的传递函数模型表示系统的传递函数模型表示 传递函数模型通常表示线性定常时不变系统(LTI),可以是连续的时间系统,也可以是离散的时间系统。对于离散的时间系统,其脉冲传递函数可表示为:第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真)()()()()(11101110zdenznumazazazaczczczczUzYzGnnnnmmmm 不论是连续的还是离散的时间系统,其传递函数的分子/分母多项式均按s或z的降幂来排列。在MATLAB中可直接采用分子/分母多项式系数构成的两个向量num与den来表示系统,即:5 在MATLAB中,可用函数命令tf()来建立控制系统的传
4、递函数模型,其调用格式和功能分别为:(1)sys=tf(num,den);(2)sys=tf(num,den,Ts);。(3)sys=tf(M);(4)tfsys=tf(sys);第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真,2110amaaadencccnum6第第7章章7.1.2 零极点增益模型零极点增益模型 当连续系统的传递函数表达式采用系统增益、系统零点与系统极点来表示时,称之为系统零极点增益模型。系统零极点增益模型是传递函数模型的一种特殊形式。离散系统的传递函数零极点增益模型:控制系统的控制系统的MATLABMATLAB仿真仿真)()()()()(2121nmpzp
5、zpzzzzzzzkzG7第第7章章 在MATLAB里,连续与离散系统都可直接用向量z、p、k构成的矢量组z,p,k来表示系统,即:控制系统的控制系统的MATLABMATLAB仿真仿真,2121kpppzzznmkpz8第第7章章 在MATLAB中,可用函数命令zpk()来建立控制系统的零极点增益模型,其调用格式和功能分别为:(1)sys=zpk(num,den);(2)sys=zpk(num,den,Ts);(3)sys=zpk(M);(4)tfsys=zpk(sys);控制系统的控制系统的MATLABMATLAB仿真仿真9 7.1.3 状态空间模型 控制系统在主要工作区域内的一定条件下可近
6、似为线性时不变(LTI)模型,连续LTI对象系统总是能用一阶微分方程组来表示,写成矩阵形式即为状态空间模型:第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真)()()()()()()()(btttatttDUCXYBUAXX其中:式(a)系统的状态方程,是由n个一阶微分方程组成的微分方程组;式(b)系统的输出方程,是由1个线性代数方程组成的;10第第7章章离散系统的状态空间模型可表示为:控制系统的控制系统的MATLABMATLAB仿真仿真)1()1()1()()()1(kkkkUkkDUCXYBAXX式中:U系统的控制输入向量;X系统的状态向量;Y系统的输出向量;k特定时刻的采样
7、点;A状态矩阵,由控制对象的参数决定;B控制矩阵;C输出矩阵;D直接传输矩阵。11 MATLAB中的函数ss()可用来建立控制系统的状态空间模型,或者将传递函数模型与零极点增益模型转换为系统状态空间模型。ss()函数的调用格式为:(1)sys=ss(a,b,c,d);(2)sys=ss(a,b,c,d,Ts);(3)sys=ss(d);该函数等价于sys=ss(,d)。(4)sys_ss=ss(sys);第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真12第第7章章【例7.1】已知某系统的状态空间表达式为:控制系统的控制系统的MATLABMATLAB仿真仿真)(0123)()(1
8、000)(2051010000100001)(tttttXYUXX试采用MATLAB语言求出该系统的状态空间模型。13解:采解:采用状态空间模型表示时,可在MATLAB命令窗口中输入以下命令:A=1 0 0 0;0 1 0 0;0 0 1 0;-1-5 0-2;B=0;0;0;1;C=3 2 1 0;D=0;sys=ss(A,B,C,D)上述指令执行后可得指定系统的状态空间模型为:a=x1 x2 x3 x4 x1 1 0 0 0 x2 0 1 0 0 x3 0 0 1 0 x4 -1 -5 0 -2第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真14第第7章章 b=u1 x1 0
9、 x2 0 x3 0 x4 1 c=x1 x2 x3 x4 y1 3 2 1 0 d=u1 y1 0 Continuous-time model.控制系统的控制系统的MATLABMATLAB仿真仿真15 7.1.4 系统不同模型间的相互转换 在MATLAB 6.1的信号处理工具箱与控制系统工具箱中,提供了传递函数模型、零极点增益模型与状态空间模型之间转换的函数:ss2tf(),ss2zp(),tf2ss(),tf2zp(),zp2ss(),zp2tf()。这些函数之间的转换功能如表7-1所示。第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真16第第7章章控制系统的控制系统的MAT
10、LABMATLAB仿真仿真n表7-1 数学模型之间的转换函数及其功能函 数 名函 数 功 能ss2tf将系统状态空间模型转换为传递函数模型ss2zp将系统状态空间模型转换为零极点增益模型tf2ss将系统传递函数模型转换为状态空间模型tf2zp将系统传递函数模型转换为零极点增益模型zp2ss将系统零极点增益模型转换为状态空间模型zp2tf将系统零极点增益模型转换为传递函数模型17【例7.2】已知某系统的传递函数为:第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真2264220122412)(23423ssssssssG 试用MATLAB语言求出该系统的传递函数模型、状态空间模型和零
11、极点增益模型。解:解:(1)求系统的传递函数模型在MATLAB命令窗口输入以下命令:num=12 24 12 20;den=2 4 6 2 2;sys=tf(num,den)18第第7章章执行以上语句后可得系统的传递函数模型为:12 s3+24 s2+12 s+20-2 s4+4 s3+6 s2+2 s+2(2)求系统的状态空间模型该系统的状态空间模型可以通过MATLAB的模型转换函数来完成。在MATLAB命令窗口输入以下命令:a,b,c,d=tf2ss(num,den);sys=ss(a,b,c,d)控制系统的控制系统的MATLABMATLAB仿真仿真19执行完上述语句后,可得系统的状态空间
12、模型的状态矩阵a,系统控制矩阵b,系统输出矩阵c,系统直接传输矩阵d分别为:a=x1 x2 x3 x4 x1 -2 -3 -1 -1 x2 1 0 0 0 x3 0 1 0 0 x4 0 0 1 0第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真20第第7章章 b=u1 x1 1 x2 0 x3 0 x4 0 c=x1 x2 x3 x4 y1 6 12 6 10 d=u1 y1 0 Continuous-time model.控制系统的控制系统的MATLABMATLAB仿真仿真21由以上数据可写出系统的状态空间模型为:第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真
13、)(106126)()(0001)(0100001000011132)(tttttXYUXX22第第7章章(3)求系统的零极点增益模型该系统的零极点增益模型也可以通过MATLAB的模型转换函数来完成。在MATLAB命令窗口输入以下命令:z,p,k=tf2zp(num,den);sys=zpk(z,p,k)执行以上语句后可得系统的零极点增益模型为:Zero/pole/gain:6(s+1.929)(s2+0.07058s+0.8638)-(s2+0.08663s+0.413)(s2+1.913 s+2.421)控制系统的控制系统的MATLABMATLAB仿真仿真237.2 环节方框图模型的化简环
14、节方框图模型的化简 7.2.1 环节串联连接的化简 多个环节串联的连接形式是控制系统最基本的组成结构形式之一。控制系统的环节串联及其化简就是模块方框图模型的串联及其化简。可以用MATLAB的函数命令series()将串联模块进行等效变换。使用series()函数命令不必做多项式的乘除运算即可实现两个环节传递函数的串联连接。如果令sys1=tf(num1,den1),sys2=tf(num2,den2),其命令格式为:sys=series(sysl,sys2)第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真24如果已知两个环节的状态空间模型矩阵组分别为:(a1,b1,c1,d1)与
15、(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=sys1*sys2*sysn取代,不仅省掉“series()”字符,且可以实现多个环节的串联等效传递函数的求取。第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真25第第7章章【例7.3】已知双闭环调速系统电流环内的前向通道3个模块传递函数分别为:控制
16、系统的控制系统的MATLABMATLAB仿真仿真sssG04.010128.0)(1100167.030)(2ssG10128.05.2)(3ssG试求串联连接的等效传递函数及其等效状态空间模型。26解:解:(1)根据MATLAB程序设计的基本方法和函数命令series(),可以编写出MATLAB程序如下:n1=0.0128 1;d1=0.04 0;sys1=tf(n1,d1);n2=30;d2=0.00167 1;sys2=tf(n2,d2);n3=2.5;d3=0.0128 1;sys3=tf(n3,d3);sys=sys1*sys2*sys3s1=ss(sys1);s2=ss(sys2)
17、;s3=ss(sys3);sys12=series(s1,s2);sys123=series(sys12,s3)第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真27第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真(2)在MATLAB命令窗口输入程序名,程序运行后得到如下电流环内前向通道的等效传递函数及等效状态空间模型:Transfer function:0.96 s+75-8.55e-007 s3+0.0005788 s2+0.04 s a=x1 x2 x3 x1 -78.13 2246 0 x2 0 -598.8 800 x3 0 0 0 28 b=u1 x1 0
18、 x2 40.96 x3 4 c=x1 x2 x3 y1 12.21 0 0 d=u1 y1 0Continuous-time model.第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真29第第7章章 7.2.2 环节并联连结的化简 环节并联是指多个环节的输入信号相同,所有环节输出的代数和为其总输出。采用parallel()函数命令可以等效化简两个环节的并联连接。parallel()函数命令调用格式为:num,den=parallel(numl,denl,num2,den2)该命令已由命令sys=sysl+sys2+sysn所取代,省掉了“parallel()”字符,且可以实现
19、多个环节的并联等效处理。parallel()函数命令调用格式还有:a,b,c,d=parallel(a1,bl,cl,dl,a2,b2,c2,d2)控制系统的控制系统的MATLABMATLAB仿真仿真30第第7章章【例7.4】已知两个环节的传递函数分别为:试求两环节并联连接等效传递函数的num与den向量及等效的状态空间模型。控制系统的控制系统的MATLABMATLAB仿真仿真21)(1ssG212)(22ssssG31第第7章章解:解:(1)采用函数命令parallel(),给出MATLAB程序如下:num1=1;den1=1 2;sys1=tf(num1,den1);num2=2 1;de
20、n2=1 1 2;sys2=tf(num2,den2);s1=ss(sys1);s2=ss(sys2);sys=sys1+sys2sys12=parallel(s1,s2)(2)在MATLAB命令窗口运行程序后得到等效传递函数及等效状态空间模型为:Transfer function:3 s2+6 s+4-s3+3 s2+4 s+4 控制系统的控制系统的MATLABMATLAB仿真仿真32第第7章章a=x1 x2 x3 x1 -2 0 0 x2 0 -1 -1 x3 0 2 0b=u1 x1 1 x2 2 x3 0c=x1 x2 x3 y1 1 1 0.25d=u1 y1 0控制系统的控制系统的
21、MATLABMATLAB仿真仿真33 7.2.3 环节反馈连结的化简 利用MATLAB中的feedback()函数命令可将两个环节按反馈形式进行连接后求其等效传递函数。feedback()函数命令形式:(1)G=feedback(G1,G2,sign);(2)a,b,c,d=feedback(a1,b1,c1,d1,a2,b2,c2,d2,sign)(3)num,den=feedback(num1,den1,num2,den2,sign);第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真34第第7章章 【例7.5】已知晶闸管-直流电机单闭环调速系统的动态结构图如图7-4所示,求该
22、闭环系统的传递函数。控制系统的控制系统的MATLABMATLAB仿真仿真+-ss088.01049.0100167.044s+-1017.01ss075.011925.01101178.01给定信号信号综合1信号综合2比例积分调节器传递函数整流器传递函数电机电枢传递函数传动装置电势系数转速测速反馈系数图7-4 直流单闭环调速系统35第第7章章解:解:(1)给出MATLAB程序如下:n1=1;d1=0.017 1;s1=tf(n1,d1);n2=1;d2=0.075 0;s2=tf(n2,d2);sys1=feedback(s1*s2,1)n3=0.049 1;d3=0.088 0;s3=tf(
23、n3,d3);n4=44;d4=0.00167 1;s4=tf(n4,d4);n5=1;d5=0.1925;s5=tf(n5,d5);n6=0.01178;d6=1;s6=tf(n6,d6);sysq=sys1*s3*s4*s5;sys=feedback(sysq,s6)控制系统的控制系统的MATLABMATLAB仿真仿真36第第7章章 (2)程序运行结果为:Transfer function:1-0.001275 s2+0.075 s+1 Transfer function:2.156 s+44-3.607e-008 s4+2.372e-005 s3+0.001299 s2+0.04234
24、s+0.5183 控制系统的控制系统的MATLABMATLAB仿真仿真37第第7章章由以上运算数据可得单闭环系统的小闭环的传递函数为:单闭环系统的闭环的传递函数(略去分母的项)为:控制系统的控制系统的MATLABMATLAB仿真仿真1075.0001275.01)(21sss5183.004234.0001299.000002392.044156.2)(23sssss38第第7章章7.3 控制系统时域分析的MATLAB实现7.3.1 概述1系统时域响应仿真的主要问题时域分析法是根据系统微分方程用拉普拉斯变换求解系统的动态响应。典型的动态过程响应有单位阶跃响应、单位斜坡响应、单位加速度响应与单位
25、脉冲响应等。时域分析的另外一个目的是求解响应的性能指标。通常将控制系统跟踪或复现阶跃输入信号响应的指标作为系统控制性能的指标。阶跃响应的一般性能指标有:峰值时间tp、超调量%、调节时间ts、及稳态误差ess。控制系统的控制系统的MATLABMATLAB仿真仿真39第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真 2时域分析的MATLAB实现 时域响应的MATLAB仿真方法有两种,一种是在MATLAB的函数指令方式下进行时域仿真;另一种是在SIMULINK窗口菜单操作方式下进行时域仿真。对于连续系统,可利用MATLAB提供的求取单位阶跃响应函数step()、单位脉冲响应函数impu
展开阅读全文