版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB
与控制系统仿真实践第1章基于MATLAB的控制系统数学建模本章主要内容原理要点1.1控制系统的传递函数模型
1.1.1系统传递函数模型简述1.1.2传递函数的MATLAB相关函数1.1.3建立传递函数模型实例1.2控制系统的零极点函数模型1.2.1零极点函数模型简述1.2.2零极点函数的MATLAB相关函数1.2.3建立零极点函数模型实例1.3控制系统的状态空间函数模型1.3.1状态空间函数模型简述1.3.2状态空间函数的MATLAB相关函数1.3.3建立状态空间函数模型实例1.4系统模型之间的转换1.4.1系统模型转换的MATLAB相关函数1.4.2系统模型之间转换实例1.5方框图模型的连接化简1.5.1方框图模型的连接化简简述1.5.2系统模型连接化简的MATLAB相关函数1.5.3系统模型连接化简实例
1.1控制系统的传递函数模型
1.1.1系统传递函数模型简述1.1.2传递函数的MATLAB相关函数1.1.3建立传递函数模型实例1.1.1系统传递函数模型简述
连续系统一般由微分方程来描述。而线性系统又是以线性常微分方程来描述的。设系统的输入信号为u(t),且输出信号为y(t),则系统的微分方程可写成:
在零初始条件下,经Laplace变换后,线性系统的传递函数模型:MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num(numerator,分子)和den(denominator,分母)表示。1.1.2传递函数的MATLAB相关函数
用不同向量分别表示分子和分母多项式,就可以利用控制系统工具箱的函数表示传递函数变量G:
tf函数的具体用法见表1.1。sys=tf(num,den)返回变量SYS为连续系统传递函数模型sys=tf(num,den,ts)返回变量SYS为离散系统传递函数模型。TS为采样周期,当TS=-1或者TS=[]时,表示系统采样周期未定义s=tf('s')定义Laplace变换算子(Laplacevariable),以原形式输入传递函数z=tf('z',ts)定义Z变换算子及采样时间TS,以原形式输入传递函数
表1.1tf函数的具体用法
printsys(num,den,'s')将系统传递函数以分式的形式打印出来,'s'表示传递函数变量printsys(num,den,'z')将系统传递函数以分式的形式打印出来,'z'表示传递函数变量get(sys)可获得传递函数模型对象sys的所有信息set(sys,'property',value,...)为系统不同属性设定值[num,den]=tfdata(sys,'v')以行向量的形式返回传递函数分子分母多项式c=conv(a,b)多项式A,B以系数行向量表示,进行相乘。结果C仍以系数行向量表示
1.1.3建立传递函数模型实例
例1:12s+15------------------------s^3+16s^2+64s+192输入到MATLAB工作空间中。方式1>>
num=[1215];>>den=[11664192];>>G=tf(num,den)
方式2:>>s=tf(‘s’);%先定义Laplace算子
%直接给出系统传递函数表达式>>G=(12*s+15)/(s^3+16*s^2+64*s+192)
Transferfunction:12s+15-------------------------s^3+16s^2+64s+192分析:可以采用不同方法得到系统传递函数。第一种方式需先求出分子分母多项式,再将其作为tf函数的参数使用。第二种方式需先定义Laplace算子,将传递函数直接赋值给对象G。例2:已知传递函数模型将其输入到MATLAB工作空间中。方式1:>>num=conv(10,[2,1]);
%计算分子多项式>>den=conv([100],[1713]);
%计算分母多项式>>G=tf(num,den)
%求系统传递函数Transferfunction:20s+10--------------------s^4+7s^3+13s^2方式2:>>s=tf(‘s’)
%定义Laplace算子
Transferfunction:s>>G=10*(2*s+1)/s^2/(s^2+7*s+13)
%直接给出系统传递函数表达式
Transferfunction:20s+10--------------------s^4+7s^3+13s^2
分析:
当传递函数不是以标准形式给出时,在应用sys=tf(num,den)前,需将传递函数分子分母转化成多项式。为此可以手工将多项式展开或借助conv函数完成多项式相乘后,再使用tf函数。第2种方式对多项式形式不做要求。这样在得到Laplace算子后,可以直接按照原格式输入传递函数,从而得到系统函数的MATLAB表示。可见第2种方式在处理非标准格式的传递函数时更方便。例3:设置传递函数模型时间延迟常数为e-4s,即系统模型在已有MATLAB模型基础上,设置时间延迟常数。接例2所得系统G。方式1:>>set(G,‘ioDelay’,4)
%为传递函数设置时间延迟>>G
%显示传递函数Transferfunction:
20s+10exp(-4*s)*--------------------
s^4+7s^3+13s^2方式2:>>G.ioDelay=4
%设置G的延时
Transferfunction:
20s+10exp(-4*s)*--------------------
s^4+7s^3+13s^2分析:在得到系统的传递函数之后,可以进一步对其参数进行设置。可通过set函数设定属性值,也可直接给属性赋值。例4:已知系统传递函数模型为
提取系统的分子和分母多项式。>>s=tf('s');
%定义Laplace算子>>G=(s^2+2*s+3)/(s^3+3*s+4)/(s+2)
%直接给出系统传递
函数表达式
Transferfunction:s^2+2s+3------------------------------s^4+2s^3+3s^2+10s+8>>[num1,den1]=tfdata(G,‘v’)
%得到系统的分子和分母多项式num1=00123den1=123108>>get(G)
%查看所得系统的所有参数%参数的具体含义请参阅帮助文档中tf的相关内容num:{[00123]}den:{[123108]}
ioDelay:0Variable:'s'Ts:0
InputDelay:0
OutputDelay:0
InputName:{''}
OutputName:{''}
InputGroup:[1x1struct]
OutputGroup:[1x1struct]Name:''Notes:{}
UserData:[]>>num2=G.num{1,1}
%取出G中具体单元值num2=00123>>den2=G.den{1,1}
%取出G中具体单元值den2=123108>>G.num
%num是以单元数组表示的,这种方式只能看到其结构ans=[1x5double]分析:可以利用tfdata函数取出传递函数的分子分母向量,注意参数'v'表示以行向量的形式表示。也可通过操作传递函数对象G的参数来获取分子分母向量,此时要注意分子分母在G结构体中是以单元数组的形式存在的,需以操作单元数组的方式获取。
1.2控制系统的零极点函数模型
1.2.1零极点函数模型简述1.2.2零极点函数的MATLAB相关函数1.2.3建立零极点函数模型实例
1.2.1零极点函数模型简述
零极点模型实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子、分母进行分解因式处理,以获得系统的零点和极点的表示形式。
K为系统增益,zi为零点,pj为极点。显然,对实系数的传递函数模型来说,系统的零极点或者为实数,或者以共轭复数的形式出现。离散系统的传递函数也可表示为零极点模式:
1.2.2零极点函数的MATLAB相关函数
在MATLAB中零极点增益模型用[z,p,K]矢量组表示。即:然后调用zpk(
)函数就可以输入这个零极点模型了。zpk函数的具体用法见表1.2。表1.2ZPK函数的具体用法sys=zpk(z,p,k)得到连续系统的零极点增益模型sys=zpk(z,p,k,Ts)得到连续系统的零极点增益模型,采样时间为Tss=zpk('s')得到Laplace算子,按原格式输入系统,得到系统zpk模型z=zpk('z',Ts)得到Z变换算子和采样时间Ts,按原格式输入系统,得到系统zpk模型与零极点增益模型相关的函数见表1.3。[z,p,k]=zpkdata(sys,'v')得到系统的零极点和增益,参数'v'表示以向量形式表示[p,z]=pzmap(sys)返回系统零极点pzmap(sys)得到系统零极点分布图
1.2.3建立零极点函数模型实例
例5:将零极点模型输入MATLAB工作空间方式1:>>z1=[-5;-5];>>p1=[-1;-2;-2-2*j;-2+2*j];>>k=4;>>G1=zpk(z1,p1,k)Zero/pole/gain:4(s+5)^2---------------------------(s+1)(s+2)(s^2+4s+8)方式2:>>s=zpk(‘s’);%高版本MatLab中符号运算不支持复数零极点%下面的形式在高版本MatLab中不能通过>>G2=4*(s+5)^2/(s+1)/(s+2)/(s+2+2*j)/(s+2-2*j)Zero/pole/gain:4(s+5)^2--------------------------(s+1)(s+2)(s^2+4s+8)分析:
和传递函数的表示一样,可以用不同方法得到系统零极点模型。一种是直接将零极点向量和增益值赋给zpk函数,一种是先定义零极点形式的Laplace算子,再输入零极点模型。另外在低版本MATLAB的零极点模型显示中,如果存在复数零极点,则用二阶多项式来表示这两个因式,而不直接展开成一阶复数因式。例中第二种方式求零极点传递函数时的警告提示了这一点。例6:已知一系统的传递函数求取其零极点向量和增益值,并得到系统的零极点增益模型。>>Gtf=tf([728],[41242])
%得到系统传递函数
Transferfunction:7s^2+2s+8------------------------4s^3+12s^2+4s+2>>[z,p,k]=zpkdata(Gtf,'v')%得到系统零极点向量和增益值z=-0.1429+1.0595i-0.1429-1.0595ip=-2.6980-0.1510+0.4031i-0.1510-0.4031ik=1.7500>>Gzpk=zpk(z,p,k)
%求系统零极点增益模型Zero/pole/gain:1.75(s^2+0.2857s+1.143)----------------------------------(s+2.698)(s^2+0.302s+0.1853)>>[p1,z1]=pzmap(Gtf)
%求取系统零极点p1=-2.6980-0.1510+0.4031i-0.1510-0.4031iz1=-0.1429+1.0595i-0.1429-1.0595i
分析:系统零极点可以由不同方式求取。zpkdata函数需指定参数'v',否则得到的是单元数组形式的零极点。pzmap函数带返回值使用时只返回系统的零极点向量,而不绘制零极点分布图。例7:已知一系统的传递函数求其零极点及增益,并绘制系统零极点分布图。>>num=[1411];>>den=conv([163],[120]);>>G=tf(num,den)
%得到系统传递函数
Transferfunction:s^2+4s+11--------------------------s^4+8s^3+15s^2+6s>>[z,p,k]=zpkdata(G,‘v’)%得到系统零极点向量和增益值z=-2.0000+2.6458i-2.0000-2.6458ip=0-5.4495-2.0000-0.5505k=1>>pzmap(G)
%得到系统零极点分布图例7得到的系统零极点分布图见图1.1。分析:由MATLAB既可以求得系统的零极点向量,也可以由图形的方式显示其分布状态。pzmap函数不带返回值使用时,显示系统零极点分布图。当在图上点击各点时,将显示该点的各属性及其值。图1.1例7系统零极点分布图1.3控制系统的状态空间函数模型本节主要内容1.3.1状态空间函数模型简述1.3.2状态空间函数的MATLAB相关函数1.3.3建立状态空间函数模型实例
1.3.1状态空间函数模型简述
系统的状态空间模型。这种方式是基于系统的内部的状态变量的,所以又往往称为系统的内部描述方法。和传递函数模型不同,状态方程可以描述更广的一类控制系统模型,包括非线性系统。具有n个状态、m个输入和p个输出的线性时不变系统,用矩阵符号表示的状态空间模型是:
1.3.2状态空间函数的MATLAB相关函数
sys=ss(A,B,C,D)由A,B,C,D矩阵直接得到连续系统状态空间模型sys=ss(A,B,C,D,Ts)由A,B,C,D矩阵和采样时间Ts直接得到离散系统状态空间模型[A,B,C,D]=ssdata(sys)得到连续系统参数[A,B,C,D,Ts]=ssdata(sys)得到离散系统参数
1.3.3建立状态空间函数模型实例
例8:将以下系统的状态方程模型输入
MATLAB工作空间中。>>A=[654;100;010];>>B=[100]';>>C=[067];>>D=[0];>>G=ss(A,B,C,D)
%输入并显示系统状态空间模型a=x1x2x3
x1654x2100x3010b=u1x11x20x30c=x1x2x3
y1067d=u1y10
例9:已知系统求系统参数。>>A=[01;-3-4];>>B=[01]';>>C=[52];>>D=1;>>Gss=ss(A,B,C,D)
%得到系统状态空间模型a=x1x2x101x2-3-4b=u1x10x21c=x1x2y152d=u1y11
>>[aa,bb,cc,dd]=ssdata(Gss)%得到系统模型参数aa=01-3-4bb=01cc=52dd=1>>get(Gss)
%得到对象Gss所有参数列表
a:[2x2double]b:[2x1double]
c:[52]d:1e:[]StateName:{2x1cell}
InternalDelay:[0x1double]Ts:0
InputDelay:0
OutputDelay:0
InputName:{''}
OutputName:{''}
InputGroup:[1x1struct]
OutputGroup:[1x1struct]Name:''Notes:{}
UserData:[]>>Gss.a
%求取一个系统模型参数ans=01-3-4
分析:系统状态空间模型参数可由不同方式得到。与tf模型和zpk模型相比不同的一点是,状态空间模型参数A,B,
C,D是矩阵形式,可直接由Gss.a的方式,此时无需按照单元数组格式获得其参数。
1.4系统模型之间的转换
本节主要内容1.4.1系统模型转换的MATLAB相关函数1.4.2系统模型之间转换实例10.4.1系统模型转换的
MATLAB相关函数
系统的线性时不变(LTI)模型有传递函数(tf)模型、零极点增益(zpk)模型和状态空间(ss)模型,它们之间可以相互转换。转换形式如图1.2所示。
模型之间的转换函数可分成2类:第一类是把其它类型的模型转换为函数表示的模型自身
见表1.6。
表1.6第一类函数(把其它类型的模型转换为函数表示的模型自身)tfsys=tf(sys)将其它类型的模型转换为多项式传递函数模型zsys=zpk(sys)将其它类型的模型转换为zpk模型sys_ss=ss(sys)将其它类型的模型转换为ss模型表1.7第二类函数(将本类型传递函数参数转换为其它类型传递函数参数)[A,B,C,D]=tf2ss(num,den)tf模型参数转换为ss模型参数[num,den]=ss2tf(A,B,C,D,iu)ss模型参数转换为tf模型参数,iu表示对应第i路传递函数[z,p,k]=tf2zp(num,den)tf模型参数转换为zpk模型参数[num,den]=zp2tf(z,p,k)zpk模型参数转换为tf模型参数[A,B,C,D]=zp2ss(z,p,k)zpk模型参数转换为ss模型参数[z,p,k]=ss2zp(A,B,C,D,iu)ss模型参数转换为zpk模型参数,iu表示对应第i路传递函数
1.4.2系统模型之间转换实例
例10:已知系统传递函数模型试求其零极点模型及状态空间模型。>>num=[5];>>den=conv([12],[121]);>>Gtf=tf(num,den)
%得到系统多项式传递函数表示Transferfunction:5---------------------s^3+4s^2+5s+2>>Gzpk=zpk(Gtf)
%将多项式传递函数模型转换为zpk模型
Zero/pole/gain:5-------------(s+2)(s+1)^2>>Gss=ss(Gtf)
%将多项式传递函数模型转换为ss模型a=x1x2x3x1-4-2.5-1x2200x3010b=u1x12x20x30c=x1x2x3y1001.25d=u1y10Continuous-timemodel.分析:采用第一类函数进行传递函数类型的转换,可直接得到转换后的函数表示。例11:已知一系统的零极点模型求其tf模型及状态空间模型。>>z=[-2-4]';>>p=[-1-3]';>>k=5;>>Gzpk=zpk(z,p,k)
%得到系统zpk模型Zero/pole/gain:5(s+2)(s+4)-------------(s+1)(s+3)>>[a,b,c,d]=zp2ss(z,p,k)
%由系统zpk模型转换得到ss模型参数a=-4.0000-1.73211.73210b=10c=10.000014.4338d=5>>[num,den]=zp2tf(z,p,k)
%得到tf模型分子分母参数num=53040den=143>>[num,den]=zp2tf(Gzpk)
%错误调用,注意应传递参数z,p,k???Inputargument"p"isundefined.Errorin==>zp2tfat24den=real(poly(p(:)));>>Gtf=zp2tf(z,p,k)
%错误调用,注意应返回分子分母两个参数Gtf=53040分析:采取第二类函数进行传递函数类型,只得到转换后的系统参数。这一点与第一类函数调用有很大差别。此外,在第二类函数的调用中要特别注意传入参数和返回参数的使用,否则会报错或得到错误结果。例12:将双输入单输出的系统模型转换为多项式传递函数模型。>>a=[01;-2-3];>>b=[10;01];>>c=[10];>>d=[00];>>[num,den]=ss2tf(a,b,c,d,1)
%得到第1路输入对应的传递函数参数num=01.00003.0000den=132>>[num2,den2]=ss2tf(a,b,c,d,2)
%得到第2路输入对应的传递函数参数num2=00.00001.0000den2=132>>Gss=ss(a,b,c,d);
>>Gtf=tf(Gss)
%直接得到各路传递函数
Transferfunctionfrominput1tooutput:s+3-------------s^2+3s+2
Transferfunctionfrominput2tooutput:
1-------------s^2+3s+2分析:系统传递函数矩阵为对以上双输入单输出的系统模型,在使用ss2tf函数时需要使用参数iu来指定输入输出对应关系。从例题结果知,对于输入1和输入2(考虑输入1时,设输入2为0。反之亦然),传递函数分别为:例13:系统传递函数为将其转换为状态空间模型。>>num=[12];>>den=[112];>>[a,b,c,d]=tf2ss(num,den)
%转换方式1a=-1-210b=10c=12d=0>>Gss=ss(tf(num,den))
%转换方式2a=
x1x2x1-1-2x210
b=u1x12x20c=x1x2y10.51d=u1y10Continuous-timemodel.分析:使用不同方法得到系统的不同状态空间模型。这也表明具有同一传递函数的系统具有不同的状态空间模型。事实上,状态空间模型是无穷多的。
1.5方框图模型的连接化简
本节主要内容1.5.1方框图模型的连接化简简述1.5.2系统模型连接化简的MATLAB相关函数1.5.3系统模型连接化简实例
1.5.1方框图模型的连接化简简述
在实际应用中,整个控制系统由受控对象和控制装置组成的,有多个环节。由多个单一的模型组合而成。每个单一的模型都可以用一组微分方程或传递函数来描述。基于模型不同的连接和互连信息,合成后的模型有不同的结果。模型间连接主要有串联连接、并联连接、串并联连接和反馈连接等。对系统的不同连接情况,我们可以进行模型的化简。1.5.1方框图模型的连接化简简述
——串联连接的化简
图1.3是一般情况下模型串联连接的结构框图。
1.5.1方框图模型的连接化简简述
—并联连接的化简
图1.4是一般情况下模型并联连接的结构框图。单输入单输出(SISO)系统G1(s)和G2(s)并联连接时,合成系统G:G(s)=G1(s)+G2(s)
图1.4并联连接结构框图
1.5.1方框图模型的连接化简简述
—反馈连接的化简
(a)正反馈连接结构框图(b)负反馈连接结构构图对于如图1.5的正反馈连接负反馈连接
表1.8系统模型连接化简函数
系统模型连接化简函数功能说明sys=parallel(sys1,sys2)sys=parallel(sys1,sys2,inp1,inp2,out1,out2)并联两个系统,等效于sys=sys1+sys2对MIMO系统,表示sys1的输入inp1与sys2的输入inp2相连,sys1的输出out1与sys2的输出out2相连sys=series(sys1,sys2)串联两个系统,等效于sys=sys2*sys1MATLAB提供了系统模型连接化简的不同函数,其中主要函数及功能说明见表1.8。sys=series(sys1,sys2,outputs1,inputs2)对MIMO系统,表示sys1的输出outputs1与sys2的输入inputs2相连sys=feedback(sys1,sys2)两系统负反馈连接,默认格式sys=feedback(sys1,sys2,sign)sign=-1表示负反馈,sign=1表示正反馈。等效于sys=sys1/(1±sys1*sys2)sys=feedback(sys1,sys2,feedin,feedout,sign)对MIMO系统,部分反馈连接。sys1的指定输出feedout连接到sys2的输入,而sys2的输出连接到sys1的指定输入feedin,以此构成闭环系统。sign标识正负反馈,意义同上
1.5.3系统模型连接化简实例
例13:已知系统
求G1(s)和G2(s)分别进行串联、并联和反馈连接后的系统模型。
>>clear>>num1=1;>>den1=[1523];>>num2=1;>>den2=[14];>>G1=tf(num1,den1);%得到G1>>G2=tf(num2,den2);%得到G2>>Gs=G2*G1%进行串联,串联方式1Transferfunction:1-----------------------s^3+9s^2+43s+92
>>Gs1=series(G1,G2)%进行串联,串联方式2,结果与串联方式1相同
Transferfunction:1-----------------------s^3+9s^2+43s+92>>Gp=G1+G2%进行并联,方式1Transferfunction:s^2+6s+27-----------------------s^3+9s^2+43s+92>>Gp1=parallel(G1,G2)%进行并联,并联方式2,结果与并联方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度关于解除企业合规审查律师代理协议书2篇
- 二零二五年度高科技温室大棚出租服务协议3篇
- 2025年度文化公司股份转让协议书范本3篇
- 二零二五年度租赁合同租赁物租赁期满续租条件协议范本
- 二零二五年度2025年商业地产租赁管理服务合同3篇
- 2025年度员工股权激励与公司员工福利待遇提升的专项合同3篇
- 二零二五年度太阳能光伏系统定期检修与维修合同3篇
- 2025年度养殖场地承包与农业废弃物资源化利用合作协议3篇
- 二零二五年度竞业禁止协议期限及竞业限制解除程序3篇
- 二零二五年度回迁房更名与教育资源共享合同3篇
- 江西省吉安市2023-2024学年高一上学期1月期末考试政治试题(解析版)
- 国内外航空安全形势
- 零售业发展现状与面临的挑战
- 2024年版汽车4S店商用物业租赁协议版B版
- 《微观经济学》习题(含选择题)
- 微信小程序云开发(赤峰应用技术职业学院)知到智慧树答案
- 2024-2025学年上学期福建高二物理期末卷2
- 2024-2025年第一学期小学德育工作总结:点亮德育灯塔引领小学生全面成长的逐梦之旅
- 2024四川阿坝州事业单位和州直机关招聘691人历年管理单位遴选500模拟题附带答案详解
- 麻醉科工作计划
- 2024年新进员工试用期考核标准3篇
评论
0/150
提交评论