实验二控制系统建模与分析doc 2.docx
- 文档编号:10880291
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:17
- 大小:108.96KB
实验二控制系统建模与分析doc 2.docx
《实验二控制系统建模与分析doc 2.docx》由会员分享,可在线阅读,更多相关《实验二控制系统建模与分析doc 2.docx(17页珍藏版)》请在冰豆网上搜索。
实验二控制系统建模与分析doc2
实验二控制系统建模与分析
一、实验目的
熟悉MATLAB对控制系统的建模以及时域和频域的分析函数。
二、实验题目以及程序解答
1.表示下列传递函数模型,并转化成其他的数学模型
建立shiyan21.m文件语句如下
n1=conv([4,8],conv([1,6,6],[1,6,6]));
d1=conv([1,1],conv(conv([1,0],[1,1]),conv([1,1],[1,3,2,5])));
G1=tf(n1,d1)%建立G1传递函数模型
G1Z=zpk(G1)%转化为零极点模型
G1S=ss(G1)%转化为状态空间模型
n2=[4,-2];d2=[1,0,2,5];
G2=tf(n2,d2)%建立G2传递函数模型
G2Z=zpk(G2)%转化为零极点模型
G2S=ss(G2)%转化为状态空间模型
n3=[1];d3=conv([2,1],[1,2]);
G3=tf(n3,d3)%建立G3传递函数模型
G3Z=zpk(G3)%转化为零极点模型
G3S=ss(G3)%转化为状态空间模型
a=[0,1;-1,-2];b=[0;1];c=[0,1];d=0;
G4=ss(a,b,c,d)%建立G4状态空间模型
G4Z=zpk(G4)%转化为零极点模型
G4T=tf(G4)%转化为传递函数模型
所得结果如下
Transferfunction:
G1传递函数
4s^5+56s^4+288s^3+672s^2+720s+288
-----------------------------------------------------
s^7+6s^6+14s^5+21s^4+24s^3+17s^2+5s
Zero/pole/gain:
G1零极点模型
4(s+4.732)^2(s+2)(s+1.268)^2
--------------------------------------------
s(s+2.904)(s+1)^3(s^2+0.09584s+1.722)
a=G1状态空间模型
x1x2x3x4x5x6x7
x1-6-3.5-2.625-1.5-1.063-0.31250
x24000000
x30200000
x40020000
x50001000
x60000100
x7000000.50
b=
u1
x116
x20
x30
x40
x50
x60
x70
c=
x1x2x3x4x5x6x7
y100.06250.43751.1252.6252.8132.25
d=
u1
y10
Continuous-timemodel.
Transferfunction:
G2传递函数模型
4s-2
-------------
s^3+2s+5
Zero/pole/gain:
G2零极点函数模型
4(s-0.5)
--------------------------------
(s+1.328)(s^2-1.328s+3.764)
a=G2状态空间模型
x1x2x3
x10-1-1.25
x2200
x3020
b=
u1
x12
x20
x30
c=
x1x2x3
y101-0.25
d=
u1
y10
Continuous-timemodel.
Transferfunction:
G3传递函数模型
1
---------------
2s^2+5s+2
Zero/pole/gain:
G3零极点函数模型
0.5
-------------
(s+2)(s+0.5)
a=G3状态空间模型
x1x2
x1-2.5-1
x210
b=
u1
x10.5
x20
c=
x1x2
y101
d=
u1
y10
Continuous-timemodel.
a=G4状态空间模型
x1x2
x101
x2-1-2
b=
u1
x10
x21
c=
x1x2
y101
d=
u1
y10
Continuous-timemodel.
Zero/pole/gain:
G4零极点函数模型
s
-------
(s+1)^2
Transferfunction:
G4传递函数模型
s-2.22e-016
-------------
s^2+2s+1
2.一个系统的结构框图如下所示。
(1)试绘出系统闭环的根轨迹图;并在根轨迹图上任选一点,试计算该点的增益k及其所有极点的位置;
(2)试绘出系统的bode图,并计算系统的幅值裕量和相角裕量,并给出几种方法判断系统的稳定性。
建立shiyan22.m文件语句如下
G4=feedback(G3,1);
G=G4*1.5%构造闭环传递函数
rlocus(G)
[k1,p1]=rlocfind(G)
Gk=G/(1-G)%求出等效开环传函
bode(Gk)
[gm,pm,wcg,wcp]=margin(Gk)%通过观察幅值和相角裕量判断稳定性
Gs=ss(G)
eig(Gs.a)%求系统矩阵的特征值判断稳定性
Gz=zpk(Gs);
Gz.p{1};%求闭环极点的值
在命令窗口中可得
Selectapointinthegraphicswindow
selected_point=
-11.6351-0.0932i
k1=
5.6756
p1=
-11.6376
0.0267+3.9807i
0.0267-3.9807i
-0.5159
gm=
0.3333
pm=
24.9888
wcg=
0
wcp=
1.0406
pm>0可得系统是稳定的
ans=
-0.8195
-0.5261+0.9572i
-0.5261-0.9572i
-10.2283
特征值全部有负实部,则系统稳定
ans=
-0.8195
-0.5261+0.9572i
-0.5261-0.9572i
-10.2283
闭环传函极点全部有负实部,系统稳定
3.已知系统传递函数为:
(1)绘出系统在阶跃信号为0.11(t)时的响应曲线,并求系统性能指标:
稳态值、上升时间、调节时间、超调量。
(2)绘出离散化系统在阶跃信号为0.11(t)时的响应曲线,采样周期为T=0.3秒。
步骤1建立lsimchar.m文件语句如下
function[pos,tr,ts,tp,yss]=lsimchar(u,g0,delta)%求pos为超调量,tr上升时间(第一次到达稳态值的时间)
[y,t]=step(g0);%ts调节时间tp超调时间
y1=u*y;
[mp,ind]=max(y1);
dimt=length(t);
yss=y1(dimt);
pos=100*(mp-yss)/yss;
tp=t(ind);
fori=1:
dimt
ify(i)>=u
tr=t(i);
break;
end
end;
fori=1:
length(y)
ify(i)<=(1-delta)*yss|y(i)>=(1+delta)*yss
ts=t(i);
end
end
步骤2建立shiyan23.m文件与语句如下
t=0:
0.01:
20;
t1=length(t);
u=0.1*ones(t1,1);
num=20;den=[1,8,36,40,20];
G=tf(num,den);
lsim(G,u,t)
gridon;
[pos,tr,ts,tp,yss]=lsimchar(0.1,G,0.02)
G1=c2d(G,0.3)
tz=0:
0.3:
20;%当对指定时间向量的响应时间进行模拟,时间步长应与采样时间相匹配
t1z=length(tz);
uz=ones(t1z,1)*0.1;
[yz,tz]=lsim(G1,uz,tz);
figure
plot(tz,yz)
gridon;axistight;
执行shiyan23.m得出结果
4.对于教材例9.4.3中引用了构造Routh判据的列表程序,在运行时发现当劳斯表出现全零行和第一列元素为零时,程序有错误。
改正并完善此程序。
原routh函数见教材p374.
function[routh_list,conclusion]=Routh(chara_equ)
%=======================================================
%自编劳斯判据求解系统稳定性函数
%输入:
%chara_equ=特征方程向量
%输出:
%routh_list=劳斯表
%conclusion=给出系统是否稳定或存在多少个不稳定的根的结论%author:
xianfa110%example:
%[routh_list,con]=Routh([12345]);
%return:
%routh_list=
%
%135
%240
%150
%-600
%500
%con=
%
%Thereis2unstableroots!
%=========================================================
n=length(chara_equ);
chara_equ=reshape(chara_equ,1,n);
ifmod(n,2)==0
n1=n/2;
else
n1=(n+1)/2;
chara_equ=[chara_equ,0];
end
routh=reshape(chara_equ,2,n1);
routh_list=zeros(n,n1);
routh_list(1:
2,:
)=routh;
i=3;
while1;
%=========特殊情况1(第一列为0,其余列不为0)=====================
ifrouth_list(i-1,1)==0&sum(routh_list(i-1,2:
n1))~=0
chara_equ=conv(chara_equ,[13]);
n=length(chara_equ);
ifmod(n,2)==0
n1=n/2;
else
n1=(n+1)/2;
chara_equ=[chara_equ,0];
end
routh=reshape(chara_equ,2,n1);
routh_list=zeros(n,n1);
routh_list(1:
2,:
)=routh;
i=3;
end
%==========计算劳斯表===========================================
ai=routh_list(i-2,1)/routh_list(i-1,1);
forj=1:
n1-1
routh_list(i,j)=routh_list(i-2,j+1)-ai*routh_list(i-1,j+1);
end
%==========特殊情况2(全0行)======================================
ifsum(routh_list(i,:
))==0
k=0;
l=1;
F=zeros(1,n1);
whilen-i-k>=0
F(l)=n-i+1-k;
k=k+2;
l=l+1;
end
routh_list(i,:
)=routh_list(i-1,:
).*F(1,:
);
end
%=========更新==================================================
i=i+1;
ifi>n
break;
end
end
%=============outhput===========
r=find(routh_list(:
1)<0);
ifisempty(r)==1
conclusion='Thesystemisstable!
';
else
n2=length(r);
m=n2;
fori=1:
n2-1
ifr(i+1)-r(i)==1
m=m-1;
end
end
str1='Thereis';
ifr(n2)==n
str2=num2str(m*2-1);
else
str2=num2str(m*2);
end
str3='unstableroots!
';
conclusion=[str1,str2,str3];
end
三实验收获
1学会了系统数学模型的建立,各模型之间的相互转化,模型属性之间的转化
2对系统稳定分析判据有了更深刻的认识和更灵活的运用。
3学会了离散传递函数的建立和分析
4学会利用运行结果求取系统时域、频域参数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验二 控制系统建模与分析doc 实验 控制系统 建模 分析 doc