实验十四MATLAB的线性控制系统分析与设计说明.docx
- 文档编号:25358883
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:16
- 大小:92.85KB
实验十四MATLAB的线性控制系统分析与设计说明.docx
《实验十四MATLAB的线性控制系统分析与设计说明.docx》由会员分享,可在线阅读,更多相关《实验十四MATLAB的线性控制系统分析与设计说明.docx(16页珍藏版)》请在冰豆网上搜索。
实验十四MATLAB的线性控制系统分析与设计说明
实验十四:
MATLAB的线性控制系统分析与设计
一.实验目的
1.熟练掌握线性系统的各种模型描述。
2.熟练掌握模型之间的转换。
2.实验容与步骤
在控制系统分析与设计中,常用状态方程模型来描述一个控制系统,状态方程通常为一阶微分方程
例如,二阶系统
可用状态方程描述如下
其中:
MATLAB的控制系统工具箱(ControlSystemToolbox)可以提供对线性系统分析、设计和建模的各种算法。
1.1状态空间描述法
状态空间描述法是使用状态方程模型来描述控制系统,MATLAB中状态方程模型的建立使用ss和dss命令。
语法:
G=ss(a,b,c,d)%由a、b、c、d参数获得状态方程模型
G=dss(a,b,c,d,e)%由a、b、c、d、e参数获得状态方程模型
【例1】写出二阶系统
,当
=0.707,
=1时的状态方程。
zeta=0.707;wn=1;
A=[01;-wn^2-2*zeta*wn];
B=[0;wn^2];
C=[10];
D=0;
G=ss(A,B,C,D)%建立状态方程模型
a=
x1x2
x101
x2-1-1.414
b=
u1
x10
x21
c=
x1x2
y110
d=
u1
y10
Continuous-timemodel.
1.2传递函数描述法
MATLAB中使用tf命令来建立传递函数。
语法:
G=tf(num,den)%由传递函数分子分母得出
说明:
num为分子向量,num=[b1,b2,…,bm,bm+1];den为分母向量,den=[a1,a2,…,an-1,an]。
【例1续】将二阶系统描述为传递函数的形式。
num=1;
den=[11.4141];
G=tf(num,den)%得出传递函数
Transferfunction:
1
-----------------
s^2+1.414s+1
1.3零极点描述法
MATLAB中使用zpk命令可以来实现由零极点得到传递函数模型。
语法:
G=zpk(z,p,k)%由零点、极点和增益获得
说明:
z为零点列向量;p为极点列向量;k为增益。
【例1续】得出二阶系统的零极点,并得出传递函数。
num=1;
den=[11.4141];
z=roots(num)
p=roots(den)
zpk(z,p,1)
z=
Emptymatrix:
0-by-1
p=
-0.7070+0.7072i
-0.7070-0.7072i
Zero/pole/gain:
1
-------------------
(s^2+1.414s+1)
程序分析:
roots函数可以得出多项式的根,零极点形式是以实数形式表示的。
部分分式法是将传递函数表示成部分分式或留数形式:
【例1续】将传递函数转换成部分分式法,得出各系数
num=1;
den=[11.4141];
[r,p,k]=residue(num,den)
r=
0-0.7070i
0+0.7070i
p=
-0.7070+0.7072i
-0.7070-0.7072i
k=
[]
1.4离散系统的数学描述
1.状态空间描述法
状态空间描述离散系统也可使用ss和dss命令。
语法:
G=ss(a,b,c,d,Ts)%由a、b、c、d参数获得状态方程模型
G=dss(a,b,c,d,e,Ts)%由a、b、c、d、e参数获得状态方程模型
说明:
Ts为采样周期,为标量,当采样周期未指明可以用-1表示。
【例2】用状态空间法建立离散系统。
a=[-1.5-0.5;10];
b=[1;0];
c=[00.5];
d=0;
G=ss(a,b,c,d,0.2)%采样周期为0.2s
a=
x1x2
x1-1.5-0.5
x210
b=
u1
x11
x20
c=
x1x2
y100.5
d=
u1
y10
Samplingtime:
0.2
Discrete-timemodel.
2.脉冲传递函数描述法
脉冲传递函数也可以用tf命令实现。
语法:
G=tf(num,den,Ts)%由分子分母得出脉冲传递函数
说明:
Ts为采样周期,为标量,当采样周期未指明可以用-1表示,自变量用'z'表示。
【例2续】创建离散系统脉冲传递函数
。
num1=[0.50];
den=[1-1.50.5];
G1=tf(num1,den,-1)
Transferfunction:
0.5z
-----------------
z^2-1.5z+0.5
Samplingtime:
unspecified
MATLAB中还可以用filt命令产生脉冲传递函数。
语法:
G=filt(num,den,Ts)%由分子分母得出脉冲传递函数
说明:
Ts为采样周期,当采样周期未指明Ts可以省略,也可以用-1表示,自变量用'z-1'表示。
【例2续】使用filt命令产生脉冲传递函数。
num2=[00.5];
G2=filt(num2,den)
Transferfunction:
0.5z^-1
-----------------------
1-1.5z^-1+0.5z^-2
Samplingtime:
unspecified
程序说明:
用filt命令生成的脉冲传递函数的自变量不是z而是z-1,因此分子应改为“[00.5]”。
3.零极点增益描述法
离散系统的零极点增益用zpk命令实现。
语法:
G=zpk(z,p,k,Ts)%由零极点得出脉冲传递函数
【例2续】使用zpk命令产生零极点增益传递函数。
G3=zpk([0],[0.51],0.5,-1)
Zero/pole/gain:
0.5z
-------------
(z-0.5)(z-1)
Samplingtime:
unspecified
2线性系统模型之间的转换
在MATLAB5.3版及以前的控制系统工具箱中有各种不同模型转换的函数,如下表6.1所示为线性系统模型转换的函数。
线性系统模型转换函数表
函数
调用格式
功能
tf2ss
[a,b,c,d]=tf2ss(num,den)
传递函数转换为状态空间
tf2zp
[z,p,k]=tf2zp(num,den)
传递函数转换为零极点描述
ss2tf
[num,den]=ss2tf(a,b,c,d,iu)
状态空间转换为传递函数
ss2zp
[z,p,k]=ss2zp(a,b,c,d,iu)
状态空间转换为零极点描述
zp2ss
[a,b,c,d]=zp2ss(z,p,k)
零极点描述转换为状态空间
zp2tf
[num,den]=zp2tf(z,p,k)
零极点描述转换为传递函数
1.系统模型的转换
(1)状态空间模型的获得
由命令ss和dss实现将传递函数和零极点增益转换为状态空间模型。
语法:
G=ss(传递函数)%由传递函数转换获得
G=ss(零极点模型)%由零极点模型转换获得
【例3】将系统传递函数转换为状态空间描述。
num=[125];
den=[3521];
G1=tf(num,den)
G=ss(G1)
Transferfunction:
s^2+2s+5
-----------------------
3s^3+5s^2+2s+1
a=
x1x2x3
x1-1.667-0.3333-0.1667
x2200
x3010
b=
u1
x11
x20
x30
c=
x1x2x3
y10.33330.33330.8333
d=
u1
y10
Continuous-timemodel.
(2)传递函数的获得
由tf命令实现将系统的状态空间法和零极点增益模型转换为传递函数。
语法:
G=tf(状态方程模型)%由状态空间转换
G=tf(零极点模型)%由零极点模型转换
【例3续】由状态空间描述转换为传递函数。
num=[125];
den=[3521];
G1=tf(num,den);
G=ss(G1);
G2=tf(G)
Transferfunction:
0.3333s^2+0.6667s+1.667
-----------------------------------
s^3+1.667s^2+0.6667s+0.3333
(3)零极点模型的获得
由zpk命令实现将状态空间法、传递函数转换为零极点模型。
语法:
G=zpk(状态方程模型)%由状态方程模型转换
G=zpk(传递函数)%由传递函数转换
【例3续】由状态方程模型转换零极点模型。
num=[125];
den=[3521];
G1=tf(num,den);
G=ss(G1);
G3=zpk(G)
Zero/pole/gain:
0.33333(s^2+2s+5)
-----------------------------------
(s+1.356)(s^2+0.3103s+0.2458)
2.模型参数的获取
语法:
[a,b,c,d]=ssdata(G)%获取状态空间参数
[a,b,c,d,e]=dssdata(G)%获取状态空间参数
[num,den]=tfdata(G)%获取传递函数参数
[z,p,k]=zpkdata(G)%获取零极点参数
【例3续】获取各模型的参数
num=[125];
den=[3521];
G1=tf(num,den);
G=ss(G1);
[a,b,c,d]=ssdata(G)%获取状态方程参数
a=
-1.6667-0.3333-0.1667
2.000000
01.00000
b=
1
0
0
c=
0.33330.33330.8333
d=
0
2.2.使用各种分析方法分析系统
已知系统的传递函数为
(1)当
时在同一窗口脉冲响应曲线
>>wn=1;T=0;
>>forzeta=[0.20.41]
G=tf(wn^2,[12*zeta*wn,wn^2])
impulse(G)
holdon
end
Transferfunction:
1
---------------
s^2+0.4s+1
Transferfunction:
1
---------------
s^2+0.8s+1
Transferfunction:
1
-------------
s^2+2s+1
(2)当时,在同一窗口绘制阶跃响应曲线。
>>wn=1;zeta=0.4;
figure
(1)
forT=[0.512]
>>G1=tf(wn^2,[12*zeta*wn,wn^2]);
G2=tf([T1],1);
G=G1*G2
step(G)
holdon
end
从上图可以看出增加零点后系统响应的变化,T越大,零点越小,则阶跃响应的超调量加大,上升时间减小,暂态响应速度加快。
绘制零-极点图形,并获得零点和极点:
>>figure
(2)
>>pzmap(G)
>>pole(G)
ans=
-0.4000+0.9165i
-0.4000-0.9165i
>>tzero(G)
ans=
-0.5000
思考题
1.系统的零极点增益模型为,求系统的传递函数模型和状态空间模型。
2.已知系统的传递函数为,当,T=0.5时画出脉冲响应曲线和绘制零极点图形。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 十四 MATLAB 线性 控制系统 分析 设计 说明
![提示](https://static.bdocx.com/images/bang_tan.gif)