应用MATLAB进行模型处理.docx
- 文档编号:5207667
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:13
- 大小:105.85KB
应用MATLAB进行模型处理.docx
《应用MATLAB进行模型处理.docx》由会员分享,可在线阅读,更多相关《应用MATLAB进行模型处理.docx(13页珍藏版)》请在冰豆网上搜索。
应用MATLAB进行模型处理
2.6应用MATLAB进行模型处理
线性系统理论中常用的数学模型有微分方程模型、传递函数模型等,而这些模型之间又有某些内在的等效关系。
在MATLAB中,与传递函数的具体形式相对应,又有tf对象和zpk对象之分,我们分别称为有理分式模型和零极点模型。
在本节,就线性定常时不变系统(LTI)数学模型分析中用到的MATLAB方法作一简要介绍,主要有拉氏变换、传递函数的转换、控制系统的特征根及零极点图、方框图模型的传递函数、符号模型的运算等。
2.6.1拉氏变换与反变换
在MATLAB中,可以采用符号运算工具箱(SymbolicMathToolbox)进行拉氏变换和反变换,通过函数“Laplace”和“iLaplace”来实现。
1.拉氏变换
“Laplace”的调用格式如下:
L=Laplace(F):
是缺省独立变量t的关于符号向量F的拉氏变换,缺省返回关于s的函数。
L=Laplace(F,t):
是一个关于t代替缺省s项的拉氏变换。
L=Laplace(F,w,z):
是一个关于z代替缺省s项的拉氏变换。
例2-15求时域函数f(t)=6cos(3t)+e-3tcos(2t)-5sin(2t)的拉氏变换。
解程序如下:
MATLABProgram2-1
%---------------Laplacetransforms-----------------
symsty;
y=laplace(6*cos(3*t)+exp(-3*t)*cos(2*t)-5*sin(2*t))
运行结果:
y=
6*s/(s^2+9)+1/4*(s+3)/(1/4*(s+3)^2+1)-10/(s^2+4)
即
2.拉氏反变换
“iLaplace”的调用格式如下:
F=iLaplace(L):
是缺省独立变量s的关于符号向量L的拉氏反变换,缺省返回关于t的函数。
F=iLaplace(L,y):
是一个关于y代替缺省t项的拉氏变换。
F=iLaplace(L,y,x):
是一个关于x代替缺省t项的拉氏变换。
例2-17求函数
的拉氏反变换。
解程序如下:
MATLABProgram2-2
%---------------in-Laplacetransforms-----------------
symssF
F=ilaplace(16/(s^2+4)+(s+5)/((s+4)^2+16))
运行结果:
F=
8*sin(2*t)+exp(-4*t)*cos(4*t)+1/4*exp(-4*t)*sin(4*t)
例2-17求函数
的拉氏反变换。
解程序如下:
MATLABProgram2-3
%---------------InverseLaplacetransforms-----------------
symssabcF
F=ilaplace((s+a)/((s+b)^2*(s+c)))
运行结果:
F=
((-(b-c)*(-b+a)*t-a+c)*exp(-b*t)+(a-c)*exp(-c*t))/(b-c)^2
2.6.2传递函数
1.有理分式模型
传递函数的分子和分母均为多项式的形式称为有理分式模型,如下式所示。
在MATLAB中,传递函数分子和分母多项式系数用行向量表示。
例如多项式P(s)=s3+2s+4,其输入为
P=[1024]
传递函数分子或分母为因式时,调用conv()函数来求多项式向量。
例如P(s)=5(s+2)(s+3)(10s2+20s+3),其输入为
P=5*conv([12],conv([13],[10203]))
调用函数“tf”可建立传递函数的有理分式模型,其调用格式如下:
G=tf(num,den)
例2-19已知某一系统的微分方程如下,试求其传递函数。
解程序如下:
MATLABProgram2-4
%---------------Transferfunction-----------------
num=[171220];
den=[1612203625];
G=tf(num,den)
运行结果:
Transferfunction:
s^3+7s^2+12s+20
-----------------------------------------
s^5+6s^4+12s^3+20s^2+36s+25
例2-20将传递函数
转换为有理分式模型。
解程序如下:
MATLABProgram2-5
%---------------Transferfunction-----------------
num=conv([14],[14]);
den=conv([100],conv([15],[1526]));
G=tf(num,den)
运行结果:
Transferfunction:
s^2+8s+16
---------------------------------------
s^6+10s^5+27s^4+16s^3+30s^2
2.零极点模型
传递函数的分子和分母均为因式的形式称为零极点模型,如下式所示。
MATLAB控制工具箱提供了零极点模型与有理分式模型之间的转换函数,调用格式分别为
[z,p,k]=tf2zp(num,den)
[num,den]=zp2tf(z,p,k)
其中,前一个函数可将有理分式模型转换为零极点模型,而后一个函数可将零极点模型转换为有理分式模型。
例2-21将传递函数
转换为零极点模型。
解程序如下:
MATLABProgram2-6
%---------------TransferfunctionofZero-pole-----------------
num=[61812];den=[1526];
[z,p,k]=tf2zp(num,den)%得到零极点及其增益
运行结果:
z=-2
-1
p=-4.8428
-0.0786+1.1103i
-0.0786-1.1103i
k=6
即变换后的零极点模型为
验证:
调用zp2tf()函数,可得到原传递函数模型,如
[num,den]=zp2tf(z,p,k);%由零极点形式转换为传递函数形式
G=tf(num,den)%形成传递函数表达式
运行结果:
Transferfunction:
6s^2+18s+12
---------------------
s^3+5s^2+2s+6
3.部分分式展开
进行拉氏变换或z变换的分析计算时,有时希望对传递函数进行形如下式所示的部分分式展开,然后再做其他处理。
MATLAB有一个命令可用于求传递函数的部分分式展开,直接求出展开式中的留数、极点和余数。
调用格式如下:
[r,p,k]=residue(num,den)
其中,num是分子多项式系数行向量,den是分母多项式系数行向量。
例2-22设传递函数如下,试进行部分分式展开。
解程序如下:
MATLABProgram2-7
num=[2536];
den=[16116];
[r,p,k]=residue(num,den)
运行结果:
r=-6.0000
-4.0000
3.0000
p=-3.0000
-2.0000
-1.0000
k=2
其中,留数变成列向量r,极点变成列向量p,而余数变成行向量k。
由此可得出进行部分分式展开式:
2.6.3控制系统的特征根及零极点图
闭环系统的特征根和开环传递函数的零极点分布图是控制系统分析中经常碰到的。
1.系统的特征根
MATLAB提供了多项式求根函数roots(),其调用格式为
r=roots(P)
其中,P为多项式。
例如,特征方程
,其根可由下面语句求得
>>r=roots([1304])
>>r=-3.3553
0.1777+1.0773i
0.1777-1.0773i
反过来,若已知特征多项式的特征根,可调用MATLAB中的poly()函数来求得多项式降幂排列时各项的系数。
如上例
>>poly(r)
p=1.00003.00000.00004.0000
函数polyval()可用来求取给定变量值时多项式的值,其调用格式为
polyval(p,a)
其中,P为多项式,a为给定变量值。
例如,求
在s=-4时的值,语句如下
>>d=conv([1304],[16]);
>>value=polyval(d,-4)
value=
-24
2.零极点图
传递函数在复平面上的零、极点图,采用pzmap()函数来完成,零点用“°”表示,极点用“×”表示。
其调用格式为
[p,z]=pzmap(num,den)
其中,p为传递函数
的极点,z为
的零点。
例2-23某系统开环传递函数如下,试求其零、极点图。
解程序如下:
MATLABProgram2-8
%---------------pole-ZeroMap-----------------
num=10*[0.51];
den=conv([10],conv([0.251],[0.511]));
pzmap(num,den)%得到零极点图
grid
零、极点图如图2-42所示。
图2-42系统开环零极点图
2.6.4控制系统的方框图模型
若已知控制系统的方框图,使用MATLAB函数可实现方框图的转换。
1.串联
如图2-43所示,两个系统G1(s)和G2(s)相串联,在MATLAB中可用串联函数series()来求合成系统,其调用格式为
[num,den]=series(num1,den1,num2,den2)
其中,
,
,
。
也可直接采用以下方式:
G(s)=G2(s)*G1(s)
提示:
对于单输入单输出(SISO)系统,G=G2*G1=G1*G2;对于多输入多输出(MIMO)系统,只有部分信号串联连接时,采用以下调用格式:
G=series(G1,G2,y1,u2)%G1的输出y1与G2的输入u2直接连接
例2-24两个系统的传递函数如下,求它们串联后系统总的传递函数。
解程序如下:
MATLABProgram2-9
num1=[265];
den1=[1452];
G1=tf(num1,den1)
num2=[1712];
den2=[132];
G2=tf(num2,den2)
G=G2*G1
运行后分别得G1、G2、G如下:
Transferfunction:
2s^2+6s+5
---------------------
s^3+4s^2+5s+2
Transferfunction:
s^2+7s+12
--------------
s^2+3s+2
Transferfunction:
2s^4+20s^3+71s^2+107s+60
----------------------------------------
s^5+7s^4+19s^3+25s^2+16s+4
2.并联
如图2-44所示,两个系统G1(s)和G2(s)相并联,在MATLAB中可用并联函数parallel()来实现合成系统,其调用格式为
[num,den]=parallel(num1,den1,num2,den2)
式中,
,
,
。
提示:
对于SISO系统,可直接采用G=G1+G2得到并联连接的合成系统:
对于MIMO系统,当需要指定信号并联连接关系时,采用以下调用格式:
G=parallel(G1,G2,u1,u2,y1,y2)%u1,u2,y1,y2分别为第一系统G1和第二系统G2的输入和输出编号
例2-25两个系统的传递函数如下,求它们并联后系统总的传递函数。
解程序如下:
MATLABProgram2-10
G1=tf([65],[452]);
G2=tf([113],[2182]);
G=G1+G2
运行结果:
Transferfunction:
4s^4+21s^3+137s^2+119s+16
-------------------------------------
8s^4+82s^3+102s^2+46s+4
3.反馈
反馈连接如图2-45所示,前向通路传递函数为G(s),反馈通路传递函数为H(s),在MATLAB中可用feedback()函数来实现反馈连接,其调用格式为
[num,den]=feedback(numg,deng,numh,denh,sign)
其中,
,
,
,sign为反馈极性,若为正反馈其值为1,若为负反馈其值为-1。
例2-26在图2-45的系统中,已知
求闭环传递函数。
解程序如下:
MATLABProgram2-11
numg=[11];deng=[152];
numh=[1];denh=[10];
[num,den]=feedback(numg,deng,numh,denh,-1);
P=tf(num,den)
运行结果:
Transferfunction:
s^2+s
-----------------------------
s^4+4s^3+5s^2+3s+1
2.6.5符号模型的运算
当控制系统的微分方程、传递函数、方框图等模型中的参数为符号而非数字时,数学模型的运算和变换可借助MATLAB中的符号运算工具箱(SymbolicMathToolbox)进行。
例2-27RLC电路的结构图如图2-46所示,求此系统的传递函数。
解程序如下:
MATLABProgram2-12
symsLRCs
s=tf('s');
G1='1/(Ls+R)';%建立传递函数G1
G2='1/Cs';%建立传递函数G2
G=sym(G2)*sym(G1);%建立G1和G2串联的传递函数
H=sym
(1);%将反馈传递函数的数值化为符号表达式
GH=sym(G)*sym(H);%建立开环传递函数GH
P=sym(GH)/sym(1+GH)%建立反馈系统闭环传递函数P
Simple(P)%简化传递函数的表达式
提示:
如果结果显示是一较为复杂的表达式,可用函数“simple([变量名])”对结果进行简化处理,从而得到较为简单的表达式。
求得系统的传递函数为:
P=
1/Cs/(Ls+R)/(1+1/Cs/(Ls+R))
简化后得:
1/(Cs*Ls+Cs*R+1)
故可得到系统的闭环传递函数为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用 MATLAB 进行 模型 处理