控制系统的matlab仿真..ppt
- 文档编号:14668695
- 上传时间:2023-06-26
- 格式:PPT
- 页数:101
- 大小:906.01KB
控制系统的matlab仿真..ppt
《控制系统的matlab仿真..ppt》由会员分享,可在线阅读,更多相关《控制系统的matlab仿真..ppt(101页珍藏版)》请在冰点文库上搜索。
第第7章章本章主要教学内容本章主要教学内容在在MATLAB中描述控制系统的数学模中描述控制系统的数学模型型系统方框图模型的简化及应用系统方框图模型的简化及应用控制系统的时域分析控制系统的时域分析控制系统的频域分析控制系统的频域分析利用利用MATLAB语言进行仿真编程的具语言进行仿真编程的具体应用体应用控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章本章教学目的及要求本章教学目的及要求熟悉熟悉MATLAB的基本应用的基本应用掌握利用掌握利用MATLAB建立数学模型的方法建立数学模型的方法熟悉控制系统的时域和频域分析熟悉控制系统的时域和频域分析掌握掌握MATLAB的仿真编程应用的仿真编程应用控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章7.1控制系统的模型表示MATLAB提供了数学模型的建立函数和各模型之间的转换功能函数,可以分别采用传递函数、零极点增益、状态空间以及动态结构图等4种数学模型来表示控制系统,前3种是用数学表达式描述的系统模型,每种模型都有连续系统及离散系统两种类别的表示;而动态结构图是基于传递函数的图形化形式,是采用MATLAB中提供的SIMULINK结构图来实现的。
MATLAB中使用的数学模型之间的转换也很方便,使得采用MATLAB编制的程序更加简单、精炼而高效。
控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章7.1.1系统的传递函数模型表示系统的传递函数模型表示传递函数模型通常表示线性定常时不变系统(LTI),可以是连续的时间系统,也可以是离散的时间系统。
对于离散的时间系统,其脉冲传递函数可表示为:
控制系统的控制系统的MATLABMATLAB仿真仿真)()()()()(11101110zdenznumazazazaczczczczUzYzGnnnnmmmm不论是连续的还是离散的时间系统,其传递函数的分子/分母多项式均按s或z的降幂来排列。
在MATLAB中可直接采用分子/分母多项式系数构成的两个向量num与den来表示系统,即:
第第7章章在MATLAB中,可用函数命令tf()来建立控制系统的传递函数模型,其调用格式和功能分别为:
(1)sys=tf(num,den);
(2)sys=tf(num,den,Ts);。
(3)sys=tf(M);(4)tfsys=tf(sys);控制系统的控制系统的MATLABMATLAB仿真仿真,2010nmaaadencccnum第第7章章7.1.2零极点增益模型零极点增益模型当连续系统的传递函数表达式采用系统增益、系统零点与系统极点来表示时,称之为系统零极点增益模型。
系统零极点增益模型是传递函数模型的一种特殊形式。
离散系统的传递函数零极点增益模型:
控制系统的控制系统的MATLABMATLAB仿真仿真)()()()()(2121nmpzpzpzzzzzzzkzG第第7章章在MATLAB里,连续与离散系统都可直接用向量z、p、k构成的矢量组z,p,k来表示系统,即:
控制系统的控制系统的MATLABMATLAB仿真仿真,2121kpppzzznmkpz第第7章章在MATLAB中,可用函数命令zpk()来建立控制系统的零极点增益模型,其调用格式和功能分别为:
(1)sys=zpk(num,den);
(2)sys=zpk(num,den,Ts);(3)sys=zpk(M);(4)tfsys=zpk(sys);控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章7.1.3状态空间模型控制系统在主要工作区域内的一定条件下可近似为线性时不变(LTI)模型,连续LTI对象系统总是能用一阶微分方程组来表示,写成矩阵形式即为状态空间模型:
控制系统的控制系统的MATLABMATLAB仿真仿真)()()()()()()()(btttatttDUCXYBUAXX其中:
式(a)系统的状态方程,是由n个一阶微分方程组成的微分方程组;式(b)系统的输出方程,是由1个线性代数方程组成的;第第7章章离散系统的状态空间模型可表示为:
控制系统的控制系统的MATLABMATLAB仿真仿真)1()1()1()()()1(kkkkUkkDUCXYBAXX式中:
U系统的控制输入向量;X系统的状态向量;Y系统的输出向量;k特定时刻的采样点;A状态矩阵,由控制对象的参数决定;B控制矩阵;C输出矩阵;D直接传输矩阵。
第第7章章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);控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章【例7.1】已知某系统的状态空间表达式为:
控制系统的控制系统的MATLABMATLAB仿真仿真)(0123)()(1000)(2051010000100001)(tttttXYUXX试采用MATLAB语言求出该系统的状态空间模型。
第第7章章解:
采解:
采用状态空间模型表示时,可在MATLAB命令窗口中输入以下命令:
A=1000;0100;0010;-1-50-2;B=0;0;0;1;C=3210;D=0;sys=ss(A,B,C,D)上述指令执行后可得指定系统的状态空间模型为:
a=x1x2x3x4x11000x20100x30010x4-1-50-2控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章b=u1x10x20x30x41c=x1x2x3x4y13210d=u1y10Continuous-timemodel.控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章7.1.4系统不同模型间的相互转换在MATLAB2011b的信号处理工具箱与控制系统工具箱中,提供了传递函数模型、零极点增益模型与状态空间模型之间转换的函数:
ss2tf(),ss2zp(),tf2ss(),tf2zp(),zp2ss(),zp2tf()。
这些函数之间的转换功能如表7-1所示。
控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真表7-1数学模型之间的转换函数及其功能函数名函数功能ss2tf将系统状态空间模型转换为传递函数模型ss2zp将系统状态空间模型转换为零极点增益模型tf2ss将系统传递函数模型转换为状态空间模型tf2zp将系统传递函数模型转换为零极点增益模型zp2ss将系统零极点增益模型转换为状态空间模型zp2tf将系统零极点增益模型转换为传递函数模型第第7章章【例7.2】已知某系统的传递函数为:
控制系统的控制系统的MATLABMATLAB仿真仿真2264220122412)(23423ssssssssG试用MATLAB语言求出该系统的传递函数模型、状态空间模型和零极点增益模型。
解:
解:
(1)求系统的传递函数模型在MATLAB命令窗口输入以下命令:
num=12241220;den=24622;sys=tf(num,den)第第7章章执行以上语句后可得系统的传递函数模型为:
12s3+24s2+12s+20-2s4+4s3+6s2+2s+2
(2)求系统的状态空间模型该系统的状态空间模型可以通过MATLAB的模型转换函数来完成。
在MATLAB命令窗口输入以下命令:
a,b,c,d=tf2ss(num,den);sys=ss(a,b,c,d)控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章执行完上述语句后,可得系统的状态空间模型的状态矩阵a,系统控制矩阵b,系统输出矩阵c,系统直接传输矩阵d分别为:
a=x1x2x3x4x1-2-3-1-1x21000x30100x40010控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章b=u1x11x20x30x40c=x1x2x3x4y1612610d=u1y10Continuous-timemodel.控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章由以上数据可写出系统的状态空间模型为:
控制系统的控制系统的MATLABMATLAB仿真仿真)(106126)()(0001)(0100001000011132)(tttttXYUXX第第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.913s+2.421)控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章7.2环节方框图模型的化简环节方框图模型的化简7.2.1环节串联连接的化简多个环节串联的连接形式是控制系统最基本的组成结构形式之一。
控制系统的环节串联及其化简就是模块方框图模型的串联及其化简。
可以用MATLAB的函数命令series()将串联模块进行等效变换。
使用series()函数命令不必做多项式的乘除运算即可实现两个环节传递函数的串联连接。
如果令sys1=tf(num1,den1),sys2=tf(num2,den2),其命令格式为:
sys=series(sys1,sys2)控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章如果已知两个环节的状态空间模型矩阵组分别为:
(a1,b1,c1,d1)与(a2,b2,c2,d2),则求两个环节串联连接等效系统状态空间模型a,b,c,d矩阵组的命令格式为:
a,b,c,d=series(a1,b1,c1,d1,a2,b2,c2,d2)series()函数命令还可以将多个环节按两两串联的形式多次递归调用加以连接,进行等效化简。
sys=series(sys1,sys2)命令可以用命令sys=sys1*sys2*sysn取代,不仅省掉“series()”字符,且可以实现多个环节的串联等效传递函数的求取。
控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章【例7.3】已知双闭环调速系统电流环内的前向通道3个模块传递函数分别为:
控制系统的控制系统的MATLABMATLAB仿真仿真sssG04.010128.0)(1100167.030)(2ssG10128.05.2)(3ssG试求串联连接的等效传递函数及其等效状态空间模型。
第第7章章解:
解:
(1)根据MATLAB程序设计的基本方法和函数命令series(),可以编写出MATLAB程序如下:
n1=0.01281;d1=0.040;sys1=tf(n1,d1);n2=30;d2=0.001671;sys2=tf(n2,d2);n3=2.5;d3=0.01281;sys3=tf(n3,d3);sys=sys1*sys2*sys3s1=ss(sys1);s2=ss(sys2);s3=ss(sys3);sys12=series(s1,s2);sys123=series(sys12,s3)控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真
(2)在MATLAB命令窗口输入程序名,程序运行后得到如下电流环内前向通道的等效传递函数及等效状态空间模型:
Transferfunction:
0.96s+75-8.55e-007s3+0.0005788s2+0.04sa=x1x2x3x1-78.1322460x20-598.8800x3000第第7章章b=u1x10x240.96x34c=x1x2x3y112.2100d=u1y10Continuous-timemodel.控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章7.2.2环节并联连结的化简环节并联是指多个环节的输入信号相同,所有环节输出的代数和为其总输出。
采用parallel()函数命令可以等效化简两个环节的并联连接。
parallel()函数命令调用格式为:
num,den=parallel(num1,den1,num2,den2)该命令已由命令sys=sys1+sys2+sysn所取代,省掉了“parallel()”字符,且可以实现多个环节的并联等效处理。
parallel()函数命令调用格式还有:
a,b,c,d=parallel(a1,b1,c1,d1,a2,b2,c2,d2)控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章【例7.4】已知两个环节的传递函数分别为:
试求两环节并联连接等效传递函数的num与den向量及等效的状态空间模型。
控制系统的控制系统的MATLABMATLAB仿真仿真21)(1ssG212)(22ssssG第第7章章解:
解:
(1)采用函数命令parallel(),给出MATLAB程序如下:
num1=1;den1=12;sys1=tf(num1,den1);num2=21;den2=112;sys2=tf(num2,den2);s1=ss(sys1);s2=ss(sys2);sys=sys1+sys2sys12=parallel(s1,s2)
(2)在MATLAB命令窗口运行程序后得到等效传递函数及等效状态空间模型为:
Transferfunction:
3s2+6s+4-s3+3s2+4s+4控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章a=x1x2x3x1-200x20-1-1x3020b=u1x11x22x30c=x1x2x3y1110.25d=u1y10控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章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);控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章【例7.5】已知晶闸管-直流电机单闭环调速系统的动态结构图如图7-4所示,求该闭环系统的传递函数。
控制系统的控制系统的MATLABMATLAB仿真仿真+-ss088.01049.0100167.044s+-1017.01ss075.011925.01101178.01给定信号信号综合1信号综合2比例积分调节器传递函数整流器传递函数电机电枢传递函数传动装置电势系数转速测速反馈系数图7-4直流单闭环调速系统第第7章章解:
解:
(1)给出MATLAB程序如下:
n1=1;d1=0.0171;s1=tf(n1,d1);n2=1;d2=0.0750;s2=tf(n2,d2);sys1=feedback(s1*s2,1)n3=0.0491;d3=0.0880;s3=tf(n3,d3);n4=44;d4=0.001671;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仿真仿真第第7章章
(2)程序运行结果为:
Transferfunction:
1-0.001275s2+0.075s+1Transferfunction:
2.156s+44-3.607e-008s4+2.372e-005s3+0.001299s2+0.04234s+0.5183控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章由以上运算数据可得单闭环系统的小闭环的传递函数为:
单闭环系统的闭环的传递函数(略去分母的项)为:
控制系统的控制系统的MATLABMATLAB仿真仿真1075.0001275.01)(21sss5183.004234.0001299.000002392.044156.2)(23sssss第第7章章7.3控制系统时域分析的MATLAB实现7.3.1概述1系统时域响应仿真的主要问题时域分析法是根据系统微分方程用拉普拉斯变换求解系统的动态响应。
典型的动态过程响应有单位阶跃响应、单位斜坡响应、单位加速度响应与单位脉冲响应等。
时域分析的另外一个目的是求解响应的性能指标。
通常将控制系统跟踪或复现阶跃输入信号响应的指标作为系统控制性能的指标。
阶跃响应的一般性能指标有:
峰值时间tp、超调量%、调节时间ts、及稳态误差ess。
控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真2时域分析的MATLAB实现时域响应的MATLAB仿真方法有两种,一种是在MATLAB的函数指令方式下进行时域仿真;另一种是在SIMULINK窗口菜单操作方式下进行时域仿真。
对于连续系统,可利用MATLAB提供的求取单位阶跃响应函数step()、单位脉冲响应函数impulse()、零输入响应函数initial()等处理系统的响应。
对于离散系统,可利用MATLAB提供的单位阶跃响应函数dstep()、单位脉冲响应函数dimpulse()、零输入响应函数dinitial()等来处理。
第第7章章7.3.2连续系统的单位阶跃响应利用step()函数可求出连续系统的单位阶跃响应,该命令的调用格式和功能如下:
(1)step(sys);
(2)step(sys,t);(3)step(sys1,sys2,,sysn);(4)y,t,x=step(sys);求出了系统的阶跃响应曲线,要分析系统的稳定性能,还需要计算系统的性能指标。
包括峰值时间tp、超调量%、调节时间ts、及稳态误差ess等。
这些参数可以直接从图上读取,也可通过MABLAB的M函数来求取。
控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章下面介绍利用M函数来计算性能指标。
定义该指标函数为targ函数,其程序语句如下:
functionmp,tp,ess,b1,b2,sigma,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;whilem3,控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章fora=(tm/100):
0.01:
tmj=0:
a:
tm;fori=1:
length(j);if(y(i+1)-y(i)0m=m+1;pm(m)=y(i);tp(m)=t(i);endendendendyss=y(ct);ess=1-yss;控制系统的控制系统的MATLABMATLAB仿真仿真第第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振荡频率。
控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章7.3.3连续系统的单位脉冲响应求连续系统单位脉冲响应的函数为impulse(),该函数命令的调用格式和功能如下:
(1)impulse(sys);
(2)impulse(sys,t);(3)impulse(sys1,sys2,,sysN);(4)y,t,x=impulse(sys);【例7.6】已知单位负反馈系统前向通道的传递函数为:
,试绘出系统的单位阶跃响应和脉冲响应曲线。
并计算系统的阶跃响应性能指标。
控制系统的控制系统的MATLABMATLAB仿真仿真sssG24)(第第7章章解:
解:
(1)求阶跃响应曲线在命令窗口输入:
num=4;den=110;sys=tf(num,den);closys=feedback(sys,1);%求闭环传递函数step(closys)可得如图7-1所示的阶跃响应曲线。
控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章控制系统的控制系统的MATLABMATLAB仿真仿真图7-1系统的阶跃响应曲线02468101200.511.5StepResponseTime(seconds)Amplitude第第7章章
(2)求脉冲响应曲线在命令窗口继续输入:
impulse(closys);可得如图7-2所示的脉冲响应曲线。
控制系统的控制系统的MATLABMATLAB仿真仿真图7-2系统的脉冲响应曲线024681012-1-0.500.511.5ImpulseResponseTime(seconds)Amplitude第第7章章(3)求系统的阶跃响应性能指标首先在MATLAB程序编辑窗口编辑前面给出的targ函数,并保存函数名为targ.m。
然后继续在MATLAB命令窗口输入以下语句:
y,t=step(closys);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控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章7.3.4连续系统的零输入响应求连续系统零输入响应的函数为initial(),该函数命令的格式如下:
(1)y,t,x=initial(sys);
(2)initial(sys,x0);(3)initial(sys,x0,t);(4)initial(sys1,sys2,,sysN,x0)。
控制系统的控制系统的MATLABMATLAB仿真仿真第第7章章7.4控制系统频域分析的MATLAB实现7.4.1概述1控制系统频域响应仿真的主
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制系统 matlab 仿真