MATLAB应用介绍

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB应用介绍
一、控制系统模型的建立
(一)系统模型
系统的表示可用三种模型:传递函数、零极 点增益、状态空间。
1、传递函数模型
H (s)
num(s) den(s)
b1s m a1s n
b2 s m1 a2 s n1
bm1 an1
在MATLAB中,直接用分子/分母的系数表示,即
num=[b1,b2,…,bm]
线(即 Bode图)。Bode图可用于分析系统的增益 裕度、相位裕度、直接增益、带宽扰动抑制及其稳定 性等特性。
(2)当缺省输出变量时,bode函数可在当前图形 窗口中直接绘制出系统的Bode图。
(3)当带输出量引用函数时,可得到系统Bode图 相应的幅值,相位及频率点 。
例6 :有一二阶系统,其 自然频率ωn=1,阻尼因子 ξ=0.2,要绘制出系统的幅 频和相频曲线。 解:编写M程序如下: [num,den]=ord2(1,0.2); bode(num,den)
3、feedback 功能:两个系统的反馈连接。
格式:[num,den]=feedback(num1,den1,num2,den2)
[num,den]=feedback(num1,den1,num2,den2,sign) 说明:feedback函数可将两个系统按反馈形式进行连接,
sign缺省时,默认为负 4、cloop 功能:系统的闭环形式。
执行后得
num= 0 0 6 18
den = 0 8 17 1
6s 18 H(s)
s3 8s2 17s 10
(三)系统建模
1、parallel 功能:系统的并联连接。 格式: [num,den]=parallel(num1,den1,num2,
den2) 说明:parallel函数按并联方式连接两个系统。 2、series 功能:系统的串联连接。 格式:[num,den]=series(num1,den1,num2,den2) 说明:series函数可将两个系统按串联方式进行连接。
3、状态空间模型
x ax bu
y
cx
du
在MATLAB中,系统可用(a,b,c,d)矩阵 组表示。
(二)模型建立及转换
1、tf 功能:建立传递函数形式 格式:sys=tf(num,den) 说明:可将分子、分母系数为矩阵num、den表示
的传递函数模型,以直接的传递函数形式表示 出来。
例1:写出下面Baidu Nhomakorabea递函数模型的标准形式。
格式:[numc,denc]=cloop(num,den,sign) 说明:cloop函数可通过将系统输出反馈到系统输入构成闭
环系统。
当sign=1时采用正反馈; 当sign=-1时采用负反馈; sign缺省时,默认为负反馈。
5、ord2 功能:产生二阶系统。
格式:[num,den]=ord2(ωn,ξ)
s3
0.2s2 0.3s 1 0.9s2 1.2s 0.5
2、tf2zp 功能:变系统传递函数形式为零极点增益形式。
格式:[z,p,k]=tf2zp(num,den) 说明:tf2zp函数将多项式传递函数形式的系统转
换为零点、极点和增益。
3、zp2tf 功能:变系统零极点增益形式为传递函数形式。
说明:[num,den]=ord2(ωn,ξ)可得到二阶系统的传递 函数表示。
例3 :要产生ξ=0.4,ωn=2.4弧度/秒的二阶系统的传递函数, 可输入
则得
[num,den]=ord2(2.4,0.4) H=tf(num,den) num=1
因此有
den =1 1.9200 5.7600
h(s)
H (s) 0.2s2 0.3s 1 (s2 0.4s 1)(s 0.5)
解:在MATLAB中,可直接利用tf函数求出
num=[0.2,0.3,1];
p1=[1,0.4,1];
p2=[1,0.5];
den=conv(p1,p2); %p1(s)*p2(s)
H=tf(num,den)
执行后
H
(s)
格式:[num,den]=zp2tf(z,p,k) 说明:zp2tf可将以z,p,k表示的零极点增益形
式变换成传递函数形式。
例2:设系统的零极点增益模型为
H (s)
6(s 3)
(s 1)(s 2)(s 5)
求系统的传递函数。
解 :在MATLAB中,可直接利用zp2tf函数求出, MATLAB程序为: k=6;z=[-3];p=[-1,-2,-5]; [num,den]=zp2tf(z,p,k) H=tf(num,den)
例4:求二阶系统
h(s)
1
s2 1.92s 5.76
的 单位阶跃响应。 解:编写M程序如下:
num=1; den=[1,1.92,5.76]; G=tf(num,den) step(G)
例5:求P.16页一阶惯性 环节的单位阶跃响应。
解:编写M程序如下: R1=100;R=100; C=[0.1,0.33,1,10]; figure(1) for j=C
num=R/R1; %K=R/R1 den=[R*j*10^-3,1]; %T=R*C hold on step(num,den,1) end hold off
三、控制系统的频域分析
1、bode 功能:求连续系统的Bode(波特)频率响应。 格式:bode(num,den)
[mag,phase,w]=bode(num,den) 说明:(1)bode函数可计算出系统的幅频和相频响应曲
den =[a1,a2,…, an]
2、零极点增益模型
H (s) k (s z1 )(s z2 ) (s zm ) (s p1 )(s p2 ) (s pn )
在MATLAB中,用[z,p,k]矢量组表示,即 z=[z1,z2,…,zm]; p=[p1,p2,…,pn]; k=[k];
1
s2 1.92s 5.76
二、控制系统的时域分析
step 功能:求连续系统的单位阶跃响应。 格式:step(num,den)
step(num,den,t) [ y,x,t ]=step(num,den) 说明(1)step函数可计算出线性系统的单位阶跃响应。 (2)当不带输出变量引用时,step函数可在当前图形窗口中绘 出系统的阶跃响应曲线。 (3)当带有输出变量引用函数时,可得到系统阶跃响应的输出 数据,而不直接绘制出曲线。 (4)step(num,den,t)可利用用户指定的时间矢量t来绘 制阶跃响应。
相关文档
最新文档