控制系统的仿真精选PPT.ppt

上传人:石*** 文档编号:70027599 上传时间:2023-01-14 格式:PPT 页数:100 大小:3.69MB
返回 下载 相关 举报
控制系统的仿真精选PPT.ppt_第1页
第1页 / 共100页
控制系统的仿真精选PPT.ppt_第2页
第2页 / 共100页
点击查看更多>>
资源描述

《控制系统的仿真精选PPT.ppt》由会员分享,可在线阅读,更多相关《控制系统的仿真精选PPT.ppt(100页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、控制系统的仿真第1页,此课件共100页哦1本章教学目的及要求本章教学目的及要求熟悉熟悉MATLAB的基本应用的基本应用掌握利用掌握利用MATLAB建立数学模型的方法建立数学模型的方法熟悉控制系统的时域和频域分析熟悉控制系统的时域和频域分析掌握掌握MATLAB的仿真编程应用的仿真编程应用第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真第2页,此课件共100页哦2 7.1 控制系统的模型表示 MATLAB 提供了数学模型的建立函数和各模型之间的转换功能函数,可以分别采用传递函数、零极点增益、状态空间以及动态结构图等4种数学模型来表示控制系统,前3种是用数学表达式描述的系统模型,每种

2、模型都有连续系统及离散系统两种类别的表示;而动态结构图是基于传递函数的图形化形式,是采用MATLAB中提供的SIMULINK结构图来实现的。MATLAB中使用的数学模型之间的转换也很方便,使得采用MATLAB编制的程序更加简单、精炼而高效。第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真第3页,此课件共100页哦3 7.1.1 系统的传递函数模型表示系统的传递函数模型表示 传递函数模型通常表示线性定常时不变系统(LTI),可以是连续的时间系统,也可以是离散的时间系统。对于离散的时间系统,其脉冲传递函数可表示为:第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真 不

3、论是连续的还是离散的时间系统,其传递函数的分子/分母多项式均按s或z的降幂来排列。在MATLAB中可直接采用分子/分母多项式系数构成的两个向量num与den来表示系统,即:第4页,此课件共100页哦4 在MATLAB中,可用函数命令tf()来建立控制系统的传递函数模型,其调用格式和功能分别为:(1)sys=tf(num,den);(2)sys=tf(num,den,Ts);。(3)sys=tf(M);(4)tfsys=tf(sys);第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真第5页,此课件共100页哦5第第7章章7.1.2 零极点增益模型零极点增益模型 当连续系统的传递函

4、数表达式采用系统增益、系统零点与系统极点来表示时,称之为系统零极点增益模型。系统零极点增益模型是传递函数模型的一种特殊形式。离散系统的传递函数零极点增益模型:控制系统的控制系统的M MATLABATLAB仿真仿真第6页,此课件共100页哦6第第7章章 在MATLAB里,连续与离散系统都可直接用向量z、p、k构成的矢量组z,p,k来表示系统,即:控制系统的控制系统的M MATLABATLAB仿真仿真第7页,此课件共100页哦7第第7章章 在MATLAB中,可用函数命令zpk()来建立控制系统的零极点增益模型,其调用格式和功能分别为:(1)sys=zpk(num,den);(2)sys=zpk(n

5、um,den,Ts);(3)sys=zpk(M);(4)tfsys=zpk(sys);控制系统的控制系统的M MATLABATLAB仿真仿真第8页,此课件共100页哦8 7.1.3 状态空间模型 控制系统在主要工作区域内的一定条件下可近似为线性时不变(LTI)模型,连续LTI对象系统总是能用一阶微分方程组来表示,写成矩阵形式即为状态空间模型:第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真其中:式(a)系统的状态方程,是由n个一阶微分方程组成的微分方程组;式(b)系统的输出方程,是由1个线性代数方程组成的;第9页,此课件共100页哦9第第7章章离散系统的状态空间模型可表示为:控

6、制系统的控制系统的M MATLABATLAB仿真仿真式中:U系统的控制输入向量;X系统的状态向量;Y系统的输出向量;k特定时刻的采样点;A状态矩阵,由控制对象的参数决定;B控制矩阵;C输出矩阵;D直接传输矩阵。第10页,此课件共100页哦10 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章章控制系统的控制系统的M

7、 MATLABATLAB仿真仿真第11页,此课件共100页哦11第第7章章【例7.1】已知某系统的状态空间表达式为:控制系统的控制系统的M MATLABATLAB仿真仿真试采用MATLAB语言求出该系统的状态空间模型。第12页,此课件共100页哦12解:采解:采用状态空间模型表示时,可在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

8、 1 0 x4 -1 -5 0 -2第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真第13页,此课件共100页哦13第第7章章 b=u1 x1 0 x2 0 x3 0 x4 1 c=x1 x2 x3 x4 y1 3 2 1 0 d=u1 y1 0 Continuous-time model.控制系统的控制系统的M MATLABATLAB仿真仿真第14页,此课件共100页哦14 7.1.4 系统不同模型间的相互转换 在MATLAB 6.1的信号处理工具箱与控制系统工具箱中,提供了传递函数模型、零极点增益模型与状态空间模型之间转换的函数:ss2tf(),ss2zp(),tf2ss(

9、),tf2zp(),zp2ss(),zp2tf()。这些函数之间的转换功能如表7-1所示。第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真第15页,此课件共100页哦15第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真n表7-1 数学模型之间的转换函数及其功能函 数 名函 数 功 能ss2tf将系统状态空间模型转换为传递函数模型ss2zp将系统状态空间模型转换为零极点增益模型tf2ss将系统传递函数模型转换为状态空间模型tf2zp将系统传递函数模型转换为零极点增益模型zp2ss将系统零极点增益模型转换为状态空间模型zp2tf将系统零极点增益模型转换为传递函数模型

10、第16页,此课件共100页哦16【例7.2】已知某系统的传递函数为:第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真 试用MATLAB语言求出该系统的传递函数模型、状态空间模型和零极点增益模型。解:解:(1)求系统的传递函数模型在MATLAB命令窗口输入以下命令:num=12 24 12 20;den=2 4 6 2 2;sys=tf(num,den)第17页,此课件共100页哦17第第7章章执行以上语句后可得系统的传递函数模型为:12 s3+24 s2+12 s+20-2 s4+4 s3+6 s2+2 s+2(2)求系统的状态空间模型该系统的状态空间模型可以通过MATLAB的

11、模型转换函数来完成。在MATLAB命令窗口输入以下命令:a,b,c,d=tf2ss(num,den);sys=ss(a,b,c,d)控制系统的控制系统的M MATLABATLAB仿真仿真第18页,此课件共100页哦18执行完上述语句后,可得系统的状态空间模型的状态矩阵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章章控制系统的控制系统的M MATLABATLAB仿真仿真第19页,此课件共100页哦19第第7章章 b=u1 x1 1 x2 0 x3 0

12、x4 0 c=x1 x2 x3 x4 y1 6 12 6 10 d=u1 y1 0 Continuous-time model.控制系统的控制系统的M MATLABATLAB仿真仿真第20页,此课件共100页哦20由以上数据可写出系统的状态空间模型为:第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真第21页,此课件共100页哦21第第7章章(3)求系统的零极点增益模型该系统的零极点增益模型也可以通过MATLAB的模型转换函数来完成。在MATLAB命令窗口输入以下命令:z,p,k=tf2zp(num,den);sys=zpk(z,p,k)执行以上语句后可得系统的零极点增益模型为:

13、Zero/pole/gain:6(s+1.929)(s2+0.07058s+0.8638)-(s2+0.08663s+0.413)(s2+1.913 s+2.421)控制系统的控制系统的M MATLABATLAB仿真仿真第22页,此课件共100页哦227.2 环节方框图模型的化简环节方框图模型的化简 7.2.1 环节串联连接的化简 多个环节串联的连接形式是控制系统最基本的组成结构形式之一。控制系统的环节串联及其化简就是模块方框图模型的串联及其化简。可以用MATLAB的函数命令series()将串联模块进行等效变换。使用series()函数命令不必做多项式的乘除运算即可实现两个环节传递函数的串联

14、连接。如果令sys1=tf(num1,den1),sys2=tf(num2,den2),其命令格式为:sys=series(sysl,sys2)第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真第23页,此课件共100页哦23如果已知两个环节的状态空间模型矩阵组分别为:(a1,b1,c1,d1)与(a2,b2,c2,d2),则求两个环节串联连接等效系统状态空间模型a,b,c,d矩阵组的命令格式为:a,b,c,d=series(a1,bl,cl,dl,a2,b2,c2,d2)series()函数命令还可以将多个环节按两两串联的形式多次递归调用加以连接,进行等效化简。sys=seri

15、es(sysl,sys2)命令可以用命令sys=sys1*sys2*sysn取代,不仅省掉“series()”字符,且可以实现多个环节的串联等效传递函数的求取。第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真第24页,此课件共100页哦24第第7章章【例7.3】已知双闭环调速系统电流环内的前向通道3个模块传递函数分别为:控制系统的控制系统的M MATLABATLAB仿真仿真试求串联连接的等效传递函数及其等效状态空间模型。第25页,此课件共100页哦25解:解:(1)根据MATLAB程序设计的基本方法和函数命令series(),可以编写出MATLAB程序如下:n1=0.0128

16、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);s3=ss(sys3);sys12=series(s1,s2);sys123=series(sys12,s3)第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真第26页,此课件共100页哦26第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真(2)在MATLAB命令窗口输入程序名,程序运行后得到如

17、下电流环内前向通道的等效传递函数及等效状态空间模型: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 第27页,此课件共100页哦27 b=u1 x1 0 x2 40.96 x3 4 c=x1 x2 x3 y1 12.21 0 0 d=u1 y1 0Continuous-time model.第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真第28页,此课件共100页哦28第第7章章 7.2.2 环节并联

18、连结的化简 环节并联是指多个环节的输入信号相同,所有环节输出的代数和为其总输出。采用parallel()函数命令可以等效化简两个环节的并联连接。parallel()函数命令调用格式为:num,den=parallel(numl,denl,num2,den2)该命令已由命令sys=sysl+sys2+sysn所取代,省掉了“parallel()”字符,且可以实现多个环节的并联等效处理。parallel()函数命令调用格式还有:a,b,c,d=parallel(a1,bl,cl,dl,a2,b2,c2,d2)控制系统的控制系统的M MATLABATLAB仿真仿真第29页,此课件共100页哦29第第

19、7章章【例7.4】已知两个环节的传递函数分别为:试求两环节并联连接等效传递函数的num与den向量及等效的状态空间模型。控制系统的控制系统的M MATLABATLAB仿真仿真第30页,此课件共100页哦30第第7章章解:解:(1)采用函数命令parallel(),给出MATLAB程序如下:num1=1;den1=1 2;sys1=tf(num1,den1);num2=2 1;den2=1 1 2;sys2=tf(num2,den2);s1=ss(sys1);s2=ss(sys2);sys=sys1+sys2sys12=parallel(s1,s2)(2)在MATLAB命令窗口运行程序后得到等效

20、传递函数及等效状态空间模型为:Transfer function:3 s2+6 s+4-s3+3 s2+4 s+4 控制系统的控制系统的M MATLABATLAB仿真仿真第31页,此课件共100页哦31第第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控制系统的控制系统的M MATLABATLAB仿真仿真第32页,此课件共100页哦32 7.2.3 环节反馈连结的化简 利用MATLAB中的feedback()函数命令可将两个环节按反馈形式进行连接后求其等效

21、传递函数。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章章控制系统的控制系统的M MATLABATLAB仿真仿真第33页,此课件共100页哦33第第7章章 【例7.5】已知晶闸管-直流电机单闭环调速系统的动态结构图如图7-4所示,求该闭环系统的传递函数。控制系统的控制系统的M MATLABATLAB仿真仿真图7-4 直流单闭环调速系统第34页,此课件共100页

22、哦34第第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(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)控制系统的控制系统的M MATLABATLAB仿真仿真第

23、35页,此课件共100页哦35第第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 s+0.5183 控制系统的控制系统的M MATLABATLAB仿真仿真第36页,此课件共100页哦36第第7章章由以上运算数据可得单闭环系统的小闭环的传递函数为:单闭环系统的闭环的传递函数(略去分母的项)为:控制系统的控制系统的M MATLABATLAB仿真仿真第37页,此课件共100页哦37第

24、第7章章7.3 控制系统时域分析的MATLAB实现7.3.1 概述1系统时域响应仿真的主要问题时域分析法是根据系统微分方程用拉普拉斯变换求解系统的动态响应。典型的动态过程响应有单位阶跃响应、单位斜坡响应、单位加速度响应与单位脉冲响应等。时域分析的另外一个目的是求解响应的性能指标。通常将控制系统跟踪或复现阶跃输入信号响应的指标作为系统控制性能的指标。阶跃响应的一般性能指标有:峰值时间tp、超调量%、调节时间ts、及稳态误差ess。控制系统的控制系统的M MATLABATLAB仿真仿真第38页,此课件共100页哦38第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真 2时域分析的MA

25、TLAB实现 时域响应的MATLAB仿真方法有两种,一种是在MATLAB的函数指令方式下进行时域仿真;另一种是在SIMULINK窗口菜单操作方式下进行时域仿真。对于连续系统,可利用MATLAB提供的求取单位阶跃响应函数step()、单位脉冲响应函数impulse()、零输入响应函数initial()等处理系统的响应。对于离散系统,可利用MATLAB提供的单位阶跃响应函数dstep()、单位脉冲响应函数dimpulse()、零输入响应函数dinitial()等来处理。第39页,此课件共100页哦39第第7章章 7.3.2 连续系统的单位阶跃响应 利用step()函数可求出连续系统的单位阶跃响应,

26、该命令的调用格式和功能如下:(1)step(sys);(2)step(sys,t);(3)step(sysl,sys2,,sysn);(4)y,t,x=step(sys);求出了系统的阶跃响应曲线,要分析系统的稳定性能,还需要计算系统的性能指标。包括峰值时间tp、超调量%、调节时间ts、及稳态误差ess等。这些参数可以直接从图上读取,也可通过MABLAB的M函数来求取。控制系统的控制系统的M MATLABATLAB仿真仿真第40页,此课件共100页哦40第第7章章下面介绍利用M函数来计算性能指标。定义该指标函数为terg函数,其程序语句如下:function mp,tp,ess,b1,b2,s

27、igma,n,pusi,T,f=targ(y,t)mp,tf=max(y);ct=length(t);mp;tp=t(tf);tm=max(tf);yss=(ct);q=1;m=q-1;while m3,控制系统的控制系统的M MATLABATLAB仿真仿真第41页,此课件共100页哦41第第7章章 for a=(tm/100):0.01:tm j=0:a:tm;for i=1:length(j);if(y(i+1)-y(i)0 m=m+1;pm(m)=y(i);tp(m)=t(i);end end endendyss=y(ct);ess=1-yss;控制系统的控制系统的M MATLABATL

28、AB仿真仿真第42页,此课件共100页哦42第第7章章 b1=pm(1)-yss;b2=pm(2)-yss;sigma=100*b1/yss;n=b1/b2;pusi=(b1-b2)/b1;T=(tp(2)-tp(1);f=1/Ttp=tp(1);上述程序中:mp为曲线的峰值;tp为峰值时间;ess 为阶跃响应的余差;b1为第一峰值的超调量;b2为第二峰值的超调量;sigma为阶跃响应的超调量;n为阶跃响应的衰减比;pusi为阶跃响应的衰减率;T为衰减振荡周期;f振荡频率。控制系统的控制系统的M MATLABATLAB仿真仿真第43页,此课件共100页哦43第第7章章7.3.3 连续系统的单位

29、脉冲响应求连续系统单位脉冲响应的函数为impulse(),该函数命令的调用格式和功能如下:(1)impulse(sys);(2)impulse(sys,t);(3)impulse(sysl,sys2,,sysN);(4)y,t,x=impulse(sys);【例7.6】已知单位负反馈系统前向通道的传递函数为:,试绘出系统的单位阶跃响应和脉冲响应曲线。并计算系统的阶跃响应性能指标。控制系统的控制系统的M MATLABATLAB仿真仿真第44页,此课件共100页哦44第第7章章解:解:(1)求阶跃响应曲线在命令窗口输入:num=4;den=1 1 0;sys=tf(num,den);closys=

30、feedback(sys,1);%求闭环传递函数step(closys)可得如图7-5所示的阶跃响应曲线。控制系统的控制系统的M MATLABATLAB仿真仿真第45页,此课件共100页哦45第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真图7-5 系统的阶跃响应曲线第46页,此课件共100页哦46第第7章章 (2)求脉冲响应曲线在命令窗口继续输入:impulse(closys);可得如图7-6所示的脉冲响应曲线。控制系统的控制系统的M MATLABATLAB仿真仿真图7-6 系统的脉冲响应曲线第47页,此课件共100页哦47第第7章章 (3)求系统的阶跃响应性能指标 首先在M

31、ATLAB程序编辑窗口编辑前面给出的targ函数,并保存函数名为targ.m。然后继续在MATLAB命令窗口输入以下语句:y,t=step(slosys);mp,tp,ess,b1,b2,sigma,n,pusi,T,f=targ(y,t)运行完上述语句后,可得以下性能指标:mp=1.4441 ;tp=1.6062ess=-0.0017 ;b1=0.4425b2=0.0857 ;sigma=44.1728n=5.1651 ;pusi=0.8064T=3.2125 ;f=0.3113控制系统的控制系统的M MATLABATLAB仿真仿真第48页,此课件共100页哦48第第7章章7.3.4 连续系

32、统的零输入响应求连续系统零输入响应的函数为initial(),该函数命令的格式如下:(1)y,t,x=initial(sys);(2)initial(sys,x0);(3)initial(sys,x0,t);(4)initial(sysl,sys2,,sysN,x0)。控制系统的控制系统的M MATLABATLAB仿真仿真第49页,此课件共100页哦49第第7章章 7.4 控制系统频域分析的MATLAB实现7.4.1 概述1控制系统频域响应仿真的主要问题 对于频域分析,MATLAB仿真就是用先进的计算机仿真技术来精确绘制Bode图、Nyquist曲线图、Nichols曲线图等三种曲线,并计算系

33、统的频域性能指标:剪切频率(也叫截止频率)、-穿越频率、相角稳定裕度、幅值稳定裕度,以便研究系统控制过程的稳定性、快速性及稳态精度等性能。控制系统的控制系统的M MATLABATLAB仿真仿真第50页,此课件共100页哦50第第7章章 2MATLAB中频域分析的实现方法 频域分析在经典控制里占有重要的地位。借助于MATLAB软件,运行它所提供的频率分析函数,能够方便、简单、快捷地绘制Bode图、Nyquist曲线和Nichols图,并计算出频域性能指标,还可以借助于这些曲线对系统进行分析。应用MATLAB提供的上述频域仿真函数与其他函数命令、语句,编制成MATLAB程序,这种在MATLAB的指

34、令方式下进行频域仿真同样是最常用的实现方法。控制系统的控制系统的M MATLABATLAB仿真仿真第51页,此课件共100页哦51第第7章章 7.4.2 求连续系统的Bode图1求连续系统Bode图的函数 在MATLAB中求连续系统Bode图的函数为bode(),该函数命令的调用格式和功能为:(1)mag,phase,w=bode(sys);(2)bode(sys);(3)bode(sys,w);(4)bode(sysl,sys2,sysn)或bode(sysl,sys2,,sysn,w);控制系统的控制系统的M MATLABATLAB仿真仿真第52页,此课件共100页哦52第第7章章 2求离

35、散系统Bode图的函数dbode()求离散系统Bode图的函数为dbode(),该函数命令的调用格式为:(1)mag,phase,w=dbode(a,b,c,d,Ts)(2)mag,phase,w=dbode(a,b,c,d,Ts,iu)(3)mag,phase,w=dbode(a,b,c,d,Ts,iu,w)或 mag,phase,w=dbode(num,den,Ts,w)(4)mag,phase,w=dbode(num,den,Ts)控制系统的控制系统的M MATLABATLAB仿真仿真第53页,此课件共100页哦53第第7章章 7.4.3 绘制系统Nyquist曲线的函数 计算或绘制系统

36、Nyquist曲线的函数为nyquist(),该函数命令的调用格式为:(1)re,im,w=nyquist(sys)(2)nyquist(sys)(3)nyquist(sys,w)(4)nyquist(sysl,sys2,sysn)(5)nyquist(sysl,sys2,sysn,w)控制系统的控制系统的M MATLABATLAB仿真仿真第54页,此课件共100页哦54第第7章章 如果系统为离散系统,则相应的nyquist函数为 dnyquist(),函数命令调用为:(1)re,im,w=dnyquist(a,b,c,d,Ts)(2)re,im,w=dnyquist(a,b,c,d,Ts,i

37、u)(3)re,im,w=dnyquist(a,b,c,d,Ts,iu,w)(4)re,im,w=dnyquist(num,den,Ts)(5)re,im,w=dnyquist(num,den,Ts,w)控制系统的控制系统的M MATLABATLAB仿真仿真第55页,此课件共100页哦55第第7章章 7.4.4 求连续系统Nichols曲线的函数 求连续系统Nichols曲线的函数为nichols(),该函数命令的调用格式为:(1)mag,phase,w=nichols(sys)(2)nichols(sys)(3)nichols(sys,w)(4)nichols(sysl,sys2,sysn)

38、(5)nichols(sysl,sys2,,sysn,w)控制系统的控制系统的M MATLABATLAB仿真仿真第56页,此课件共100页哦56第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真 7.4.5 求系统幅值裕度与相位裕度 求系统幅值裕度与相位裕度的函数为margin(),该函数命令的调用格式为:(1)Gm,Pm,Wcp,Wcg=margin(sys);(2)Gm,Pm,Wcp,Wcg=margin(mag,phase,w)(3)margin(sys);(4)margin(mag,phase,w);对于离散时间系统,可以先用函数dbode()计算频率响应,然后再调用ma

39、rgin()函数,即用margin(mag,phase,w)函数命令,再求系统性能指标或绘制Bode图。第57页,此课件共100页哦57第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真 7.5 利用MATLAB语言进行编程仿真的应用7.5.1 面向传递函数的线性系统仿真 对线性连续系统进行单输入、单输出的仿真,可以将用户输入的系统传递函数模型转化为仿真计算模型,再应用数值积分法进行处理。采用四阶龙格库塔法保证系统仿真过程中具备一定的精度和性能指标要求,并可实现重复运行,便于研究参数的变化对系统动态性能的影响,且运行过程直观、形象,修改参数容易。第58页,此课件共100页哦58第

40、第7章章控制系统的控制系统的M MATLABATLAB仿真仿真 1仿真系统的典型结构框图如图7-11所示的典型闭环系统结构,有:图7-11 典型闭环系统结构图 第59页,此课件共100页哦59第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真 2仿真程序框图与实现(1)程序框图的描述 如图7-12所示。(2)程序设计的实现 用MATLAB语言编写的面向传递函数的线性系统仿真程序定义为CSS1(Control System Simulation 1)。第60页,此课件共100页哦60第第7章章图7-12 面向传递函数的线性系统仿真框图第61页,此课件共100页哦61第第7章章控制系

41、统的控制系统的M MATLABATLAB仿真仿真设源程序名为CSS1.m,保存为M文件。1)输入数据a=;%n+1维分母系数向量c=;%m+1维分子系数向量 X0=;%状态向量初值V=;%反馈系数n=;%系统阶次T0=;%起始时间Tf=;%终止时间h=;%计算步长R=r;%阶跃输入函数幅值 第62页,此课件共100页哦62第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真 2)形成开、闭环系数阵c=c/a(1);%首一化处理a=a/a(1);A=a(2:n+1);A=rot90(rot90(eye(n-1,n);-fliplr(A);%形成能控标准形B=zeros(1,n-1),

42、1;%形成输入阵Bm1=length(c);%分子系数向量维数m+1C=fliplr(c),zeros(1,n-m1);%形成输出阵CAb=A-B*C*V;%形成闭环系数阵AbX=X0;y=0;t=T0;%设初值,准备递推运算第63页,此课件共100页哦63第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真 3)运算求解N=round(Tf-T0)/h;%确定输出点数for i=1:N%四阶龙格-库塔法K1=Ab*X+B*R;K2=Ab*(X+h*K1/2)+B*R;K3=Ab*(X+h*K2/2)+B*R;K4=Ab*(X+h*K3)+B*R;%求各次斜率KX=X+h*(K1+

43、2*K2+2*K3+K4)/6;%求状态y=y,C*X;%求输出并以向量形式保存 t=t,t(i)+h;%输出对应时刻以向量形式保存end第64页,此课件共100页哦64第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真 4)输出结果t,y%输出数据形式结果plot(t,y)%输出曲线形式结果 以上即为采用MATLAB语言实现面向典型闭环系统数字仿真的程序,可编辑为CSS1.m文件存储起来。使用时,只要进入到MATLAB命令窗口,按要求输入系统参数和运行参数,再调用该文件,即可得到系统的仿真结果。第65页,此课件共100页哦65第第7章章控制系统的控制系统的M MATLABATL

44、AB仿真仿真 该程序中用到了几个MATLAB特殊功能函数,简要说明如下:eye(m,n)产生mn型I阵,即主对角元素均为1,其余元素为零的长方阵length()求取括号内向量的维数zeros(m,n)产生mn型零阵rot90()将括号内矩阵左旋90fliplr()将括号内矩阵或向量左右翻转round()对括号内运算取整plot(t,y)打印以t为横轴,y为纵轴的y(t)曲线 第66页,此课件共100页哦66第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真 7.5.2 面向结构图的线性系统仿真1仿真程序框图与程序实现(1)程序框图的描述 当控制系统的数学模型以动态结构图的形式给出

45、时,可以用以下的方法处理,如图7-15所示。(2)程序设计的实现 采用MATLAB语言编程,程序名为CSS2.M,保存为M文件。第67页,此课件共100页哦67图7-15 面向结构图的线性系统的仿真框图第第7章章第68页,此课件共100页哦68第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真输入系统原始数据:P%输入各环节参数WIJ=%输入连接阵非零元素n=;%环节个数(系统阶次)Y0=;%阶跃输入幅值Yt0=%各环节输出初值h=;%计算步长L1=;%每隔L1个点打印一次 T0=;%起始时间 Tf=;%终止时间nout=Nout;%输出环节编号 第69页,此课件共100页哦69

46、第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真程序处理开始:A=diag(P(:,1);B=diag(P(:,2);%求开环系统系数阵C=diag(P(:,3);D=diag(P(:,4);m=length(WIJ(:,1);%求非零元素个数W0=zeros(n,1);W=zeros(n,n);%建立初始W、W0阵for k=1:mif(WIJ(k,2)=0);W0(WIJ(k,1)=WIJ(k,3);%求W0阵else W(WIJ(k,1),WIJ(k,2)=WIJ(k,3);%求W阵endend第70页,此课件共100页哦70第第7章章控制系统的控制系统的M MATLAB

47、ATLAB仿真仿真 Q=B-D*W;Qn=inv(Q);%求Q和Q逆阵R=C*W-A;V1=C*W0;%求R,V1阵Ab=Qn*R;b1=Qn*V1;%形成闭环系数阵Y=Yt0;y=Y(nout);t=T0;%置初值N=round(Tf-T0)/(h*L1);%总输出点数for i=1:N;%每循环一次,输出一点数据for j=1:L1;%每输出点之间计算L1次K1=Ab*Y+b1*Y0;K2=Ab*(Y+h*K1/2)+b1*Y0;K3=Ab*(Y+h*K2/2)+b1*Y0;K4=Ab*(Y+h*K3)+b1*Y0;Y=Y+h*(K1+2*K2+2*K3+K4)/6;%龙格库塔法求解方程e

48、nd第71页,此课件共100页哦71第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真y=y,Y(nout);%保存输出环节动态响应值t=t,t(i)+h*L1;%保存时间向量endt,y%输出响应数据plot(t,y)%输出响应图形 程序中用到MATLAB特殊功能函数diag(),其作用是产生以括号内向量元素为主对角元素的对角阵;P(:,I)用于取P阵中第I列的所有元素作为单独列向量。第72页,此课件共100页哦72第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真7.5.3 线性系统的离散相似法仿真1仿真框图描述 离散相似法仿真线性系统的程序框图如图7-18所示

49、。2仿真程序设计 本程序定义为CSS3.M,输入系统各环节参数阵P,连接阵WIJ,运行参数n,h,L1,T0,Tf,阶跃输入幅值Y0,输出环节编号nout等,方法同CSS2程序。第73页,此课件共100页哦73图7-18 离散相似法仿真线性系统程序框图第第7章章第74页,此课件共100页哦74第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真CSS3仿真程序设计如下:A=diag(P(:,1);B=diag(P(:,2);%求开环系统系数阵C=diag(P(:,3);D=diag(P(:,4);m=length(WIJ(:,1);%求非零元素个数W0=zeros(n,1);W=z

50、eros(n,n);%建立初始W、W0阵for k=1:mif(WIJ(k,2)=0);W0(WIJ(k,1)=WIJ(k,3);%求W0阵else W(WIJ(k,1),WIJ(k,2)=WIJ(k,3);%求W阵endend第75页,此课件共100页哦75第第7章章控制系统的控制系统的M MATLABATLAB仿真仿真for i=1:nif(A(i,i)=0);%求积分或积分比例环节各系数FI(i)=1;FIM(i)=h*C(i,i)/B(i,i);FIJ(i)=h*h*C(i,i)/B(i,i)/2;FIC(i)=1;FID(i)=0;%求积分环节系数if(D(i,i)=0);%若为积分

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 资格考试

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁