版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于MATLAB的控制系统运动响应分析 第三章13.1 零输入响应分析3.2 脉冲输入响应分析3.3 阶跃输入响应分析 3.4 高阶系统响应分析3.5 任意输入响应分析 3.6 根轨迹分析方法 3.7 控制系统的频率特性 23.1 零输入响应分析系统的输出响应由零输入响应和零状态响应组成。零输入响应是指系统的输入信号为零,系统的输出由初始状态产生的响应。在MATLAB中,使用函数initial( )和dinitial( )分别来计算线性定常连续时间系统状态空间模型和离散时间状态空间模型的零输入响应。其主要功能和格式如下: 3(1)函数initial( ):求线性连续时间系统状态空间模型的零输入
2、响应initial(sys1,sysN,x0)%同一个图形窗口内绘制多个系统sys1,sysN在初始条件x0作用下的零输入响应。initial(sys1,sysN,x0,T)% 指定响应时间T。Initial(sys1,PlotStyle1,sysN, PlotStyleN,x0)%在同一个图形窗口绘制多个连续系统的零输入响应曲线,并指定曲线的属性PlotStyle。y,t,x=initial(sys,x0)%不绘制曲线,得到输出向量、时间和状态变量响应的数据值。4说明:(1)线性定常连续系统sys必须是状态空间模型。(2)x0为初始条件。(3)T为终止时间点,由t=0开始,至T秒结束。可省略
3、,缺省时由系统自动确定。(4)y为输出向量;t为时间向量,可省略;x为状态向量,可省略。5【例3.1.1】已知单位负反馈控制系统的开环传递函数为 ,应用MATLAB求其初始条件为【1 2】时的零输入响应。【解】在MATLAB命令窗口中输入: G1=tf(100,1 10 0); G=feedback(G1,1,-1); %使用函数feedback( )进行反馈连接 GG=ss(G); %将传递函数模型转换为状态空间模型 initial(GG,1 2)6运行结果为:【例3.1.1】的零输入响应曲线7注意:使用initial( )函数时,系统sys必须是状态空间模型,否则MATLAB会提示以下错误
4、:? Error using = rfinputsOnly available for state-space models.8(1)函数dinitial( ): 求线性离散时间状态空间模型的零输入响应 dinitial(a,b,c,d,x0,N)%绘制系统(a,b,c,d)在初始条件x0作用下的响应曲线。y,x,N=dinitial(a,b,c,d,x0)%不绘制曲线,返回输出向量、状态向量和相应点数的数据值。9说明:(1)系统的数学模型只能以离散时间状态空间模型的形式给出。(2)a、b、c、d分别对应系统系统矩阵、输入矩阵、输出矩阵和前馈矩阵。(3)y为输出向量;t为时间向量,可省略;x为
5、状态向量,可省略。10【例3.1.2】已知线性离散时间系统的状态空间模型和初始条件分别为: 采样周期Ts=0.1s,试绘制其零输入响应曲线。 11【解】在MATLAB命令窗口中输入: a=0.9429 -0.07593;0.07593 0.997;b=0;0; c=1.969 6.449;d=0; dinitial(a,b,c,d,1 0) 运行结果为:123.2 脉冲输入响应分析在MATLAB中,可使用函数impulse( )和dimpulse( )分别来计算和显示线性连续系统和离散系统的单位脉冲响应。其主要功能和格式如下: 13(1)函数impulse( ):求连续系统的单位脉冲响应。im
6、pulse(sys1,sysN)%在同一个图形窗口中绘制N个系统sys1,sysN的单位脉冲响应曲线。impulse(sys1,sysN,T)%指定响应时间T。impulse(sys1,PlotStyle1,sysN,PlotStyleN)%指定曲线属性PlotStyley,t,x= impulse(sys)%得到输出向量、状态向量以及相应的时间向量。14说明:(1)a、b、c、d分别对应系统系统矩阵、输入矩阵、输出矩阵和前馈矩阵。(2)响应点数N可缺省,缺省时由系统自动确定。(3)y为输出向量; x为状态向量,可省略。15【例3.2.2】已知线性定常离散系统的脉冲传递函数为 计算并绘制其脉冲
7、响应曲线。 【解】在MATLAB命令窗口中输入: G1=tf(100,1 10 100); G2=tf(3 2,2 7 2); impulse(G1,-,G2,-.,7) %指定曲线属性和终止时间 16运行结果为【例3.2.1】的脉冲响应曲线 G1按实线显示,G2按点划线显示终止时间T=7s 17(2)函数dimpulse( ):求离散系统的单位脉冲响应 dimpulse(num,den,N)%绘制SISO系统的单位脉冲响应曲线,且响应点数N由用户定义。dimpulse(a,b,c,d,iu,N)%绘制MIMO系统第iu个输入信号作用下的单位脉冲响应曲线,且响应点数N由用户定义。y,x= di
8、mpulse(num,den)%得到SISO系统的单位脉冲响应数据值。y,x= dimpulse(a,b,c,d)%得到MIMO系统的单位脉冲响应数据值18说明:(1)a、b、c、d分别对应系统系统矩阵、输入矩阵、输出矩阵和前馈矩阵。(2)响应点数N可缺省,缺省时由系统自动确定。(3)y为输出向量; x为状态向量,可省略。 19【例3.2.2】已知线性定常离散系统的脉冲传递函数为 ,计算并绘制其脉冲响应曲线。【解】在MATLAB命令窗口中输入: num=1 -1;den=1 1 0. 3; dimpulse(num,den,12) ;20运行结果为:【例3.2.2】的脉冲响应曲线 213.3
9、阶跃输入响应分析 在MATLAB中,可使用函数step( )和dstep( )来实现线性定常连续系统和离散系统的单位阶跃响应。其格式和功能如下。 22(1)函数step( ):求线性定常连续系统的单位阶跃响应。step(sys1,sysN)%在同一个图形窗口中绘制N个系统sys1,sysN的单位阶跃响应。step(sys1,sysN,T)%指定终止时间T。step(sys1,PlotStyle1,sysN,PlotStyleN)%定义曲线属性PlotStyle。y,x,t=step(sys)%得到输出向量、状态向量以及相应的时间向量。23说明:(1)线性定常连续系统sys1,sysN可以是连续
10、时间传递函数、零极点增益及状态空间等模型形式。(2)系统为状态空间模型时,只求其零状态响应。(3)T为终止时间点,由t=0开始,至T秒结束。可省略,缺省时由系统自动确定。(4)y为输出向量;t为时间向量,可省略;x为状态向量,可省略。 24【例3.3.1】已知典型二阶系统的传递函数为 。其中自然频率n=6,绘制当阻尼比=0.1,0.2,0.707,1.0,2.0时系统的单位阶跃响应。 【解】在MATLAB命令窗口中输入: wn=6; kosi=0.1 0.2 0.707 1 2; hold on; %保持曲线坐标不被刷新 for kos=kosi25num=wn.2;den=1,2*kos*w
11、n,wn.2;step(num,den)end 运行结果为:单位阶跃响应曲线26(2)函数dstep( ):求线性定常离散系统的单位阶跃响应。 dstep(num,den,N)%绘制SISO系统的单位阶跃响应曲线,且响应点数N由用户指定。dstep(a,b,c,d,iu,N)%绘制MIMO系统第iu个输入信号作用下的单位阶跃响应曲线,且响应点数N由用户指定。y,x= dstep(num,den)%求SISO系统的单位阶跃响应数据值。y,x= dstep(a,b,c,d)%求MIMO系统的单位阶跃响应数据值。27说明:(1)a、b、c、d分别对应系统系统矩阵、输入矩阵、输出矩阵和前馈矩阵。(2)
12、响应点数N可缺省,缺省时由系统自动确定。(3)y为输出向量; x为状态向量,可省略。 28【例3.3.2】已知线性定常离散系统的状态空间模型为绘制其单位阶跃响应曲线。29【解】在MATLAB命令窗口中输入: a=-0.5571 -0.7814;0.7814 0; b=1 -1;0 2; c=1.969 6.449; d=0; dstep(a,b,c,d) 运行结果为:单位阶跃响应曲线 303.4 高阶系统响应分析 直接应用Matlab/Simulink软件进行高阶系统分析,如以下的系统结构图: 图3.4.1控制系统框图31在simulink中的仿真图Simulink的仿真模型 32执行结果:(
13、1)input signal的输出 (2)displacement的输出 (3)velocity的输出 33零极点对消是指,当开环系统传递函数分子分母中包含有公因子,则相应的开环零点和开环极点将出现对消,在这种情况下会出现系统内部不稳定,外部稳定的情况,如以下系统图:控制系统框图 34因为:此系统出现了零极点对消的情况 35绘制其Simulink图 :Simulink的仿真模型 36执行后的得到 :Simulink的仿真输出曲线 从图中可以清楚、直观得看到,系统内部不稳定,而外部稳定。37(2)采用闭环主导极点对高阶系统近似分析 在高阶系统中,若按求解微分方程得到响应曲线的办法去分析系统的特性
14、,将是十分困难的。在工程中,常用低阶近似的方法来分析高阶系统。闭环主导极点的概念就是在这种情况下提出的。若系统距虚轴最近的闭环极点周围无闭环零点,而其余的闭环极点距虚轴很远。我们称这个距虚轴最近的极点为闭环主导极点。 38共轭复数极点P1和P2距虚轴最近,而P3和P4,P5这3个极点距虚轴的距离比P1,P2距虚轴的距离大于5倍以上,因此可以把P1,P2选为闭环主导极点,把一个5阶系统近似成二阶系统。 一个选择闭环主导极点的例子 39【例3.4.1】已知具有零点的三阶系统 ,使用闭环主导极点的概念,在同一坐标下,绘制出它的近似二阶系统,并分析对比他们的性能。 40【解】在Matlab中输入以下代
15、码:sys1 =zpk(-1,-5 -1+j -1-j,10);sys2 = feedback(sys3,1); step(sys1,sys2) 执行程序后,得到如图: 阶跃响应比较图 41【例3.4.2】已知具有零点的三阶系统 ,用闭环主导极点的概念,在同一坐标下,绘制出它的近似二阶系统 ,并分析对比它们的性能。42【解】在Matlab中输入以下代码:sys1=zpk(-1,-1.05 -4+j -4-j,10);sys2=tf(10/1.05,1 8 17);step(sys1,sys2) 阶跃响应比较图 433.5 任意输入响应分析在MATLAB中,连续系统和离散系统对任意输入信号的响应
16、用函数lsim( )和dlsim( )来实现。其主要功能和格式如下:(1)函数gensig( ):产生用于函数lsim( )的试验输入信号。 u,t= gensig(type,tau)%产生以tau(单位:秒)为周期并由type确定形式的标量信号u,t为采样周期组成的矢量u,t= gensig(type,tau,Tf,Ts)% Tf为信号的持续时间,Ts为采样周期t之间的时间间隔。44说明:(1)type定义的信号形式包括:(a) sin,正弦波;(b) square,方波;(c) pulse,周期性脉冲。(2)返回值为数据,并不绘制图形。(3)函数lsim( ):求线性定常系统在任意输入信号
17、作用下的时间响应。45(2)函数lsim( ):求线性定常系统在任意输入信号作用下的时间响应。 lsim(sys,u,t,x0)%绘制系统在给定输入信号和初始条件x0同时作用下的响应曲线lsim(sys,u,t,x0,method)%指定采样点之间的差值方法为methodlsim(sys1,sysN,u,t,x0)%绘制N个系统在给定输入信号和初始条件x0同时作用下的响应曲线lsim(sys1,PlotStyle1,sysN,PlotStyleN)%定义曲线属性PlotStyley,t,x= lsim(sys,u,t,x0)%不绘制曲线,得到输出向量、时间和状态变量响应的数据值。46说明:(1
18、)u为输入序列,每一列对应一个输入;t为时间点。u的行数和t相对应。u、t可以由函数gensig( )产生。(2)字符串method可以指定:(a) zoh,零阶保持器;(b) foh,一阶保持器。(3)字符串method缺省时,函数lsim( )根据输入信号u的平滑度自动选择采样点之间的差值方法。(4)y为输出向量;t为时间向量,可省略;x为状态向量,可省略。 47【例3.5.1】已知线性定常连续系统的传递函数为 ,求其在指定方波信号作用下的响应。 【解】在MATLAB命令窗口中输入: u,t=gensig(square,4,10,0.1); % 用函数gensig( )产生周期为4s,持续
19、时间为10s,每0.1s采样一次的正弦波。 G=tf(100,1 10 100); lsim(G,-.,u,t) 48运行结果为:在MATLAB命令中,指定了曲线以点划线的形式显示,图中的方波即为用函数gensig( )产生的方波。49(3)函数dlsim( ):求线性定常离散系统在任意输入下的响应。 dlsim(a,b,c,d,u)%绘制系统(a,b,c,d)在输入序列u作用下的响应曲线。dlsim(num,den,u)%绘制系统在输入序列u作用下的响应曲线。y,x= dlsim(a,b,c,d,u)y,x= dlsim(num,den,u)说明:(1)a、b、c、d分别对应系统系统矩阵、输
20、入矩阵、输出矩阵和前馈矩阵。(2)y为输出向量; x为状态向量,可省略。50【例3.5.2】已知线性定常离散系统的脉冲传递函数为 ,试绘制其在正弦序列输入下的响应曲线。【解】在MATLAB命令窗口中输入: u,t=gensig(sin,4,6,0.2); num=2 -2;den=1 1 0.3; dlsim(num,den,u) 51运行结果为:【例3.5.2】的响应曲线 523.6 根轨迹分析方法根轨迹是开环系统某一参数(如开环增益)由0变换至+时,闭环系统特征方程式的根在s平面上变化的轨迹。根轨迹与系统性能之间存在着比较密切的联系。根轨迹图不仅可以直接给出闭环系统时间响应的全部信息,而且
21、还可以指明开环零点和极点应该怎么变化才能满足给定闭环系统的性能指标要求。MATLAB控制系统工具箱提供了用于根轨迹分析的相关函数。 53(1)函数rlocus( ):用于计算并绘制根轨迹图 rlocus(sys,k)%绘制开环系统sys的闭环根轨迹,增益k由用户指定。rlocus(sys1,sys2,sysN)%在同一个窗口中绘制多个系统的根轨迹。r,k= rlocus(sys)%不绘制图形,计算并返回系统sys的根轨迹值。r= rlocus(sys,k)%不绘制图形,计算并返回系统的根轨迹值,增益k由用户指定。说明:系统sys为开环系统。增益k可以省略。缺省情况下,k由系统自动确定。函数同时
22、适用于连续时间系统和离散时间系统。54【例3.6.1】已知负反馈控制系统的结构框图如图3.6.1所示,其中,绘制其闭环系统的根轨迹。 【例3.6.1】负反馈控制系统框图 55【解】在MATLAB命令窗口中输入: G=tf(10,1 -1 0); H=tf(0.2 1,1); sys=G*H; rlocus(sys) 运行结果为:根轨迹图 56可以使用鼠标对根轨迹图作简单的操作,比如使用鼠标右键菜单添加网格线;使用鼠标左键单击图上任意一点,得到当前点的信息。如图3.6.3所示。 图3.6.3 添加网格线并显示系统性能参数 57(2)函数sgrid( ):用于为连续时间系统的根轨迹图添加网格线。
23、sgrid(z,wn)%为根轨迹图添加网格线,等阻尼比范围和等自然频率范围分别由向量z和wn确定。说明:网格线包括等阻尼比线和等自然频率线。向量z和wn可缺省。缺省情况下,等阻尼比z步长为0.1,范围为01。等自然频率wn步长为1,范围为010。58【例3.6.2】在MATLAB中,使用函数sgrid( )为【例3.5.1】中根轨迹添加网格线。 【解】在MATLAB命令窗口中输入: sgrid运行结果为:添加网格线的根轨迹图 59(3)函数zgrid( ):用于为离散时间系统的根轨迹图添加网格线。 zgrid(z,wn)%为根轨迹图添加网格线,等阻尼比范围和等自然频率范围分别由向量z和wn确定
24、。因为使用函数zgrid( )和sgrid( )的方法相同,所以不作赘述。另外无论使用函数sgrid( )还是zgrid( ),在它们缺省z和wn情况下,和使用鼠标右键添加网格线的结果是完全相同的。60(4)函数damp( ):计算自然频率和阻尼比 wn,z= damp(sys)%计算系统的自然频率和阻尼比。说明:系统sys为闭环系统传递函数。返回值wn表示自然频率值,z表示阻尼比。61【例3.6.3】计算开环传递函数为 的单位负反馈系统的阻尼比和自然振荡频率n。【解】在MATLAB命令窗口中输入: G=tf(130,1 10 130); wn,z=damp(G)运行结果为: Pole Dam
25、ping Frequency(Rad/s) Time Constant(s) -5.00e+00 +1.02e+01i 4.39e-01 1.14e+01 2.00e-01 -5.00e+00 - 1.02e+01i 4.39e-01 1.14e+01 2.00e-01 即阻尼比=0.4,自然频率n为11.4。 623.7 控制系统的频率特性常用的频率特性曲线有三种:对数频率特性曲线(Bode图)、幅相频率特性曲线(Nyquist曲线)和对数幅相曲线(Nichols曲线)。频域分析方法的基本内容之一就是绘制这三种曲线。这里仅介绍Bode图和Nyquist曲线。63Bode图由对数幅频特性曲线和
26、对数相频特性曲线组成,是工程中广泛使用的一组曲线。两条曲线的横坐标相同,均按照lg分度(单位:rad/s)。对数幅频特性曲线的纵坐标按照线性分度(单位:dB);对数相频特性曲线的纵坐标按照线性分度(单位:度)。64(1)函数bode( ):计算并绘制线性定常连续系统的对数频率特性曲线。bode(sys1,sysN)%在同一个图形窗口中绘制N个系统sys1,sysN的Bode图。bode(sys1,sysN,w)%指定频率范围w。bode(sys1,PlotStyle1,sysN,PlotStyleN)%定义曲线属性PlotStyle。mag,phase,w= bode(sys)%不绘制曲线,得
27、到幅值向量、相位向量和频率向量。说明:频率范围w可缺省,缺省情况下由MATLAB根据数学模型自动确定;用户指定w用法为w=wmin,wmax。系统sys即可为SISO系统,也可以是MIMO系统;其形式可以是传递函数模型、状态空间模型或零极点增益模型等多种形式。 65【例3.7.1】已知线性定常连续系统的零极点增益模型为,试绘制其Bode图。【解】在MATLAB命令窗口中输入: G=zpk(-0.1,-5,-0.01,5); bode(G) 66运行结果为:【例3.7.1】的Bode图 67在Bode图中可以对其一些属性进行操作。(a)曲线上任意一点参数值的确定 用鼠标左键单击曲线上任意一点,可
28、得到这一点的对数幅频(或相频)值以及相应的频率值。如图3.7.2所示。68(b)曲线显示属性的设置 用鼠标右键单击图中任意处,会弹出菜单,在菜单“Show”中可以选取显示或隐藏对数幅频特性曲线(Magnitude)和对数相频特性曲线(Phase)。 (c)添加网格线 与上述相同,须添加网格线可以在弹出菜单中选择“Grid”。图3.7.3为添加网格线后只显示对数幅频特性曲线的Bode图。 69图3.7.3 对数幅频特性曲线 70(2)函数dbode( ):绘制线性定常离散系统的对数频率特性曲线。dbode(a,b,c,d,Ts,iu,w)%绘制系统(a,b,c,d)第iu个输入信号至全部输出的B
29、ode图,Ts为采样周期。频率范围由w指定。dbode(num,den,Ts,w)%绘制传递函数的Bode图,频率范围由w指定。mag,phase,w= dbode(a,b,c,d,Ts)%计算幅值向量、相位向量和频率向量。mag,phase,w= dbode(num,den,Ts)%计算幅值向量、相位向量和频率向量。说明:频率范围w可缺省,缺省情况下由MATLAB根据数学模型自动确定;用户指定w用法为w=wmin,wmax。 71【例3.7.2】某离散时间系统的开环脉冲传递函数为 ,采样周期为0.5s,试绘制其Bode图。 【解】在MATLAB命令窗口中输入: dbode(1 0.1 7.5
30、,1 0.12 9 0 0,0.5)72运行结果为:【例3.7.2】的Bode图 73(3)函数bodeasym( ):绘制SISO线性定常连续系统的对数幅频特性渐近线 。bodeasym(sys)%绘制系统sys的对数幅频特性渐近线。bodeasym(sys,PlotStr)%定义曲线属性PlotStr。说明:每次只能绘制一个系统的对数幅频特性渐近线。字符串PlotStr可定义的曲线属性详见函数plot( )。 74【例3.7.3】系统的传递函数为 ,绘制其对数幅频特性渐近线。 【解】在MATLAB命令窗口中输入: G=tf(27,1 2 0); bodeasym(G) grid 75运行结果为:【例3.7.3】的对数幅频特性渐近线 76Nyquist曲线以横轴为实轴,以纵轴为虚轴构成复平面。当输入信号的频率由-变化至+时,向量G(j)的幅值和相位也随之变化,其端点在复平面上移动的轨迹就是幅相曲线。 注意:由于幅频特性为的偶函数,相频特性为的奇函数,则从0变化至+和从0变化至-的幅相曲线关于实轴对称,因而一般只绘制从0变化至
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论