控制系统仿真[教学目的]掌握数字仿真基本原理控制系统的数学模型建立掌握控制系统分析[教学内容]一、控制系统的数学模型sys=tf(num,den)%多项式模型,num为分子多项式的系数向量,den为分母多项式的系%数向量,函数tf()创建一个TF模型对象。
sys=zpk(z,p,k)%z为系统的零点向量,p为系统的极点向量,k为增益值,函数zpk()创建一个ZPK模型对象。
(一)控制系统的参数模型1、TF模型传递函数num=[b m b m-1b m-2…b1b0]den=[a m a m-1a m-2…a1a0]sys=tf(num,den)【例1】系统的传递函数为。
>>num=[01124448];>>den=[11686176105];>>sys=tf(num,den);>>sysTransfer function:s^3+12s^2+44s+48-------------------------------------s^4+16s^3+86s^2+176s+105>>get(sys)>>set(sys)>>set(sys,'num',[212])>>sysTransfer function:2s^2+s+2-------------------------------------s^4+16s^3+86s^2+176s+105【例2】系统的传递函数为。
>>num=conv([20],[11]);>>numnum=2020>>den=conv([100],conv([12],[1610]));>>sys=tf(num,den)Transfer function:20s+20-------------------------------s^5+8s^4+22s^3+20s^2【例3】系统的开环传递函数为,写出单位负反馈时闭环传递函数的TF模型。
>>numo=conv([5],[11]);>>deno=conv([100],[13]);>>syso=tf(numo,deno);>>sysc=feedback(syso,1)Transfer function:5s+5----------------------s^3+3s^2+5s+5【例4】反馈系统的结构图为:R(s)C(s)-写出闭环传递函数的TF模型。
>>num1=[10];den1=[110];sys1=tf(num1,den1);>>num2=[0.21];den2=[0.011];sys2=tf(num2,den2);>>sysc=feedback(sys1,sys2)Transfer function:0.1s+10-------------------------------0.01s^3+1.01s^2+3s+102、ZPK模型z=[z1z2…z m-1z m];p=[p1p2…p n-1p n];k=k0sys=zpk(z,p,k)【例5】系统的传递函数为,写出其ZPK模型。
>>z=[-4];>>p=[-1-2-3];>>k=5>>sys=zpk(z,p,k)Zero/pole/gain:5(s+4)-----------------------------(s+1)(s+2)(s+3)3、TF模型与ZPK模型之间的转换格式:[z,p,k]=tf2zp(num,den)%TF模型→ZPK模型[num,den]=zp2tf(z,p,k)%ZPK模型→TF模型【例6】已知系统的TF模型,求ZPK模型。
>>num=[01124448];>>den=[11686176105];>>sys=tf(num,den)Transfer function:s^3+12s^2+44s+48-----------------------------------s^4+16s^3+86s^2+176s+105>>[z,p,k]=tf2zp(num,den)z=-6.0000-4.0000-2.0000p=-7.0000-3.0000-1.0000k=1>>sys=zpk(z,p,k)Zero/pole/gain:(s+6)(s+4)(s+2)-----------------------(s+7)(s+5)(s+3)(s+1)(二)系统模型的连接1、输出反馈格式:[numc,denc]=cloop(num,den,sign)%输入开环系统的多项式模型参数向量num,den与%馈极性sign,返回闭环系统多项式模型参数向量%numc,denc。
【例7】单位反馈系统结构图如图所示,求闭环系统的数学模型。
>>num=[10];>>den=[120];>>[nc,dc]=cloop(num,den,-1);>>printsys(nc,dc);num/den=10--------------s^2+2s+102、反馈连接sys=feedback(sys1,sys2,sign)【例8】反馈系统结构图如例4图所示,求闭环系统的数学模型。
>>n1=[10];>>d1=[110];>>n2=[0.21];>>d2=[0.011];>>sys1=tf(n1,d1);>>sys2=tf(n2,d2);>>sys=feedback(sys1,sys2)Transfer function:0.1s+10------------------------------0.01s^3+1.01s^2+3s+103、串联连接格式:sys=series(sys1,sys2,output1,input2)【例9】系统结构图如下图所示,求闭环系统的数学模型。
>>n1=[0.51];>>d1=[0.11];>>n2=[10];>>d2=[120];>>sys1=tf(n1,d1);>>sys2=tf(n2,d2);>>syso=series(sys1,sys2);>>sys=feedback(syso,1)Transfer function:5s+10----------------------------0.1s^3+1.2s^2+7s+104、并联连接格式:sys=parallel(sys1,sys2,in1,in2,out1,out2)【例10】系统结构图如下图所示,求系统的数学模型。
>>n1=[2];>>d1=[12];>>n2=[5];>>d2=[13];>>sys1=tf(n1,d1);>>sys2=tf(n2,d2);>>sys=parallel(sys1,sys2)Transfer function:7s+16-------------s^2+5s+6二、控制系统分析(一)控制系统时间响应分析1、阶跃响应函数格式:step(sys)%给定系统对象sys,求系统的阶跃响应并作图。
%模型对象类型:sys=tf(num,den)TF模型sys=zpk(z,p,k)ZPK模型step(sys,tf)%增加响应终止时间变量tfstep(sys,t)%给定时间向量tstep(sys1,sys2,…,t)%多系统阶跃响应绘图[y,t]=step(sys)%返回响应变量y和时间向量t[y,t,x]=step(sys)%返回响应变量y、时间向量t以及状态变量x【例11】系统传递函数为,求阶跃响应,并作系统性能分析。
>>num=[4];den=[114];>>sys=tf(num,den);step(sys)>>[y,t,x]=step(sys);>>max(y)tp=spline(y,t,max(y))ans=1.4441tp=1.60622、脉冲响应函数格式:impulse(sys)%给定系统对象sys,求系统的单位脉冲响应并作图。
impulse(sys,tf)%增加响应终止时间变量tf。
impulse(sys,t)%给定时间向量t。
impulse(sys1,sys2,…,t)%多系统单位脉冲响应绘图[y,t]=impulse(sys)%返回响应变量y和时间向量t[y,t,x]=impulse(sys)%返回响应变量y、时间向量t以及状态变量x【例12】系统传递函数为,求脉冲响应,并作系统性能分析。
>>num=[4];>>den=[114];>>sys=tf(num,den);>>impulse(sys)>>max(y)ans=1.44413、给定输入的响应函数格式:lsim(sys,u,t)%给定系统对象sys,控制输入向量u和等间隔时间向%量t,求系统的单位脉冲响应并作图。
lsim(sys,u,t,x0)%计算带初始条件x0的时间响应并作图。
lsim(sys1,sys2,…u,t,x0)%多系统任意输入时间响应并绘图。
y=lsim(sys,u,t)%返回娈量格式,不作图。
[y,t,x]=lsim(sys,u,t,x0)【例13】系统传递函数为,输入正弦信号时,观察输出信号的相位差能分析。
>>num=[1];>>den=[11];>>sys=tf(num,den);>>t=0:0.01:10;>>u=sin(2*t);>>lsim(sys,u,t)>>hold on>>plot(t,u,':')(二)控制系统频率响应分析1、Bode图绘图函数格式:bode(sys)%给定开环系统的数学模型对象sys作bode图。
bode(sys,{wmin,wmax})%给定变量w的绘图区间为{wmin,wmax}。
bode(sys,w)%变量w由人工给出。
[m,p,w]=bode(sys)%返回变量格式,不作图。
【例14】系统开环传递函数为,作Bode图,并确定谐振峰值的大小mr与谐振频率wr。