现代控制理论实验报告word文档良心出品.docx
- 文档编号:10116027
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:37
- 大小:229.52KB
现代控制理论实验报告word文档良心出品.docx
《现代控制理论实验报告word文档良心出品.docx》由会员分享,可在线阅读,更多相关《现代控制理论实验报告word文档良心出品.docx(37页珍藏版)》请在冰豆网上搜索。
现代控制理论实验报告word文档良心出品
墜)长舂理工天学
ChangchunUniversityofSc沦neeandTechnology
现代控制理论实验报告
o—六年五月
实验一线性定常系统模型
一实验目的
1.掌握线性定常系统的状态空间表达式。
学会在MATLAB中建立状态空间模型的方法。
2.掌握传递函数与状态空间表达式之间相互转换的方法。
学会用MATLAB实现
不同模型之间的相互转换。
3.熟悉系统的连接。
学会用MATLAB确定整个系统的状态空间表达式和传递函数。
4.掌握状态空间表达式的相似变换。
掌握将状态空间表达式转换为对角标准型、
约当标准型、能控标准型和能观测标准型的方法。
学会用MATLAB进行线性变
换。
二实验内容
1.已知系统的传递函数
G(S)"s(s+1)2(s+3)
(1)建立系统的TF或ZPK模型。
(2)将给定传递函数用函数ss()转换为状态空间表达式。
再将得到的状态空间表达式用函数tf()转换为传递函数,并与原传递函数进行比较。
(3)将给定传递函数用函数jordants()转换为对角标准型或约当标准型。
再将得到的对角标准型或约当标准型用函数tf()转换为传递函数,并与原传递函数进行比较。
(4)将给定传递函数用函数ctrlts()转换为能控标准型和能观测标准型。
再将得到的能控标准型和能观测标准型用函数tf()转换为传递函数,并与原传递函数进行比较。
2.已知系统的传递函数
.「0们Jol
X=IX+IU
[-5-6」[l」
将这些状态空间表达式转换为传递函数,记录得到的传递函数和它的零极点。
比较系统的特
征值和极点是否一致,为什么?
(2)用函数canon()将给定状态空间表达式转换为对角标准型。
用函数eig()求出系统特征
值。
比较这些特征值和
(1)中的特征值是否一致,为什么?
再用函数tf()和zpk()将对角标
1)中的传递函数是否一致,为
准型或约当标准型转换为传递函数。
比较这些传递函数和(什么?
(3)用函数ctrlss()将给定的状态空间表达式转换为能控标准型和能观测标准型。
用函数
eig()求系统的特征值。
比较这些特征值和
(1)中的特征值是否一致,为什么?
再用函数tf()
将它们转换为传递函数。
比较这些传递函数和
(1)中的传递函数是否一致,为什么?
实验结果
1.已知系统的传递函数
G(s)"s(s+1)2(s+3)
>>num=4;
>>den=[15730];
>>G=tf(num,den)
Transferfunction:
s^4+5s^3+7s^2+3s
>>z=[];
>>p=[0-1-1-3];
>>k=4;
>>G=zpk(z,p,k)
Zero/pole/gain:
s(s+1)A2(s+3)
>>Gss=ss(G)
x1
x2
x3
x4
x1
x2
-1
x3
-1
x4
-3
u1
x1
x2
x3
x4
x1
x2
x3
x4
y1
u1
y1
Gtf=tf(Gss)
Transferfunction:
s^4+5s^3+7s^2+3s>>Gzpk=zpk(Gtf)
Zero/pole/gain:
s(s+3)(s+1)A2
>>A=[01;-5-6];B=[0;1];
>>C=[11];D=0;
>>G=ss(A,B,C,D)
x1
u1
x1
x2
x1
x2
yi
u1
y1
Continuous-timemodel.
>>a=[01;-5-6]
-5-6>>eig(a)ans=
-1
-5>>Gtf=tf(G)
Transferfunction:
s^2+6s+5>>Gzpk=zpk(Gtf)
Zero/pole/gain:
(s+1)(s+5)(s+1)
结论:
由上述结果可看出系统的特征值和极点是一致的。
>>A=[01;-5-6];B=[0;1];
>>C=[11];D=0;
>>G=ss(A,B,C,D);
>>G1=canon(G,'modal')
x1
x2
x1
-1
-5
x2
x1
0.559
x2
1.346
x2
x1
y1
00.7428
u1
y1
Continuous-timemodel.
>>Gtf=tf(G1)
Transferfunction:
>>Gzpk=zpk(Gtf)
Zero/pole/gain:
1(s+5)
实验二线性定常系统状态方程的解
一实验目的
1.掌握状态转移矩阵的概念。
学会用MATLAB求解状态转移矩阵。
2.掌握线性系统状态方程解的结构。
学会用MATLAB求解线性定常系统的状态响应和输出响应,并绘制相应曲线。
二实验内容
1.求下列系统矩阵A对应的状态转移矩阵
Vo]
•令初始状态为x(0)=[0]输入为零。
a)
用MATLAB求状态方程的解析解。
选择时间向量t,绘制系统的状态响
应曲线。
观察并记录这些曲线。
b)
用函数initial()计算系统在初始状态作用下状态响应和输出响应的数值解,并用函数plot()绘制系统的状态响应曲线和输出响应曲线。
观察并记录这些响应曲线,然后将这一状态响应曲线与a)中状态响应曲线进行
比较。
c)
根据b)中所得的状态响应的数值解,用命令plot(x(:
1),x(:
2))绘制系统的状态轨迹。
记录系统状态转移的过程,结合a)和b)中的状态响应曲线分析这一过程。
2.已知系统
.「011」01X=Ilx+IU
[-6-5」[1」
,输入为零。
(1)令初始状态为x(0)=I
Loj
a)用MATLAB求状态方程的解析解。
选择时间向量t,绘制系统的状态响
应曲线。
观察并记录这些曲线。
b)用函数initial()计算系统在初始状态作用下状态响应和输出响应的数值
解,并用函数plot()绘制系统的状态响应曲线和输出响应曲线。
观察并记录这些响应曲线,然后将这一状态响应曲线与a)中状态响应曲线进行
比较。
C)根据b)中所得的状态响应的数值解,用命令plot(x(:
1),x(:
2))绘制系统的状态轨迹。
记录系统状态转移的过程,结合a)和b)中的状态响应曲线分
析这一过程。
⑵令初始状态为零,输入为u(t)=1(t)。
a)用MATLAB求状态方程的解析解。
选择时间向量t,绘制系统的状态响
应曲线。
观察并记录这些曲线。
b)用函数initial()计算系统在初始状态作用下状态响应和输出响应的数值解
并用函数Plot()绘制系统的状态响应曲线和输出响应曲线。
观察并记录这些响应曲线,然后将这一状态响应曲线与a).中状态响应曲线进行
比较。
C)根据b)中所得的状态响应的数值解,用命令Plot(x(:
1),x(:
2))绘制系统的
状态轨迹。
记录系统状态转移的过程,结合a)和b)中的状态响应曲线分析这一过程。
oX
(1)当输入为u(t)=6(t)时,用函数initial()和impulse()求解系统的状态响应和
输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。
(2)当输入为u(t)=1(t)时,用函数initial()和step(求解系统的状态响应和输出
响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。
(3)当输入为u(t)=t时,用函数initial()和lsim()求解系统的状态响应和输出
响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。
(4)当输入为u(t)=sin(t)时,用函数initial()和lsim()求解系统的状态响应和
输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。
实验结果
1.
aJ01
[-2-3
>>A=[01;-2-3];symst;phet=expm(A*t)phet=
exp(-t)-exp(-2*t)]
2*exp(-2*t)-exp(-t)]
s;G=inv(s*eye(size(A))-A);phet=ilaplace(G);X0=[1
[-exp(-2*t)+2*exp(-t),
[-2*exp(-t)+2*exp(-2*t),
A=[01;-2-3];syms
-1]';Xt1=phet*X0;
>>B=[01]';Xt2=ilaplace(G*B*(1/s))
>>ex22xt1=[exp(-t)]
[-exp(-t)]
xt2=[1/2-exp(-t)+1/2*exp(-2*t)]
[exp(-t)-exp(-2*t)]
2.
已知系统为
>>A=[01;-2-3];B=[0;1];C=[11];D=0;G=ss(A,B,C,D)
x1
x2
x1
u1
x1
x2
yi
u1
y1
Continuous-timemodel.
>>t=0:
0.5:
10;x0=[1;-1];
>>[yo,t,xo]=initial(G,x0,t);plot(t,xo,':
',t,yo,'-')
>>figure('pos',[5050200150],'color','w');u=ones(size(t));
[yu,t,xu]=lsim(G,u,t);
plot(t,xu,':
',t,yu,'-')
实验三线性定常系统的能控性和能观性
一实验目的
1.掌握能控性和能观测性的概念。
2.掌握系统的结构分解。
学会用
3.掌握最小实现的概念。
学会用
学会用MATLAB判断能控性和能观测性。
MATLAB进行结构分解。
MATLAB求最小实现
实验内容
1.已知系统
x」「3
L-1
(1)判断系统状态的能控性和能观测性,以及系统输出的能控性。
说明状态能控性和输出能控性之间有无联系。
(2)令系统的初始状态为零,系统的输入分别为单位阶跃函数和单位脉冲函数。
用MATLAB函数计算系统的状态响应和输出响应,并绘制相应的响应曲线。
观察和记录这些曲线。
当输入改变时,每个状态变量的响应曲线是否随着改变?
能否根据这些曲线判断系统状态的能控性?
(3)将给定的状态空间表达式变换为对角标准型,判断系统的能控性和能观测性,与
(1)的结果是否一致?
为何?
(4)令(3)中系统的初始状态为零,输入分别为单位阶跃函数和单位脉冲函数。
用MATLAB函数计算系统的状态响应和输出响应,并绘制响应的曲线。
观察和记录这些曲线。
当输入改变时,每个状态变量曲线是否随着改变?
能否根据这些曲线判断系统以及各状态变量的能控性?
不能控和能控状态变量的响应曲线有何不同?
(5)根据
(2)和(4)所得曲线能否判断系统状态以及各状态变量的能观测性?
2.已知系统
「-1
0
0
0■
「2]
0
-3
0
0
x+
1
u
0
0
-2
0
0
L0
0
0
-4
■
[
_0”
(1)将给定的状态空间模型转换为传递函数模型。
令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,绘制和记录相应的曲线。
(2)按能控性分解给定的状态空间模型并记录所得的结果,然后再将其转换为传递函数模型。
它与
(1)中所得的传递函数模型是否一致?
为何?
令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,并绘制和记录相应曲线。
这一曲线与
(1)中的输出曲线是否一致?
为何?
(3)按能观测性分解给定的状态空间模型并记录分解所得的结果,然后再将其转换为传递函数模型。
它与
(1)中的传递函数模型是否一致?
为何?
令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,并绘制和记录相应曲线。
这一曲线与
(1)中的输出曲线是否一致?
(4)按能控性能观测性分解给定的状态空间模型并记录分解所得的结果,然后再将其转换为传递函数模型。
它与
(1)中的传递函数模型是否一致?
为何?
令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,并绘制和记录相应的曲线。
这一曲线与
(1)中的输出曲线是否一致?
为何?
三实验结果
1.
(1)
>>A=[-3-4;-10];B=[4;1];Uc=ctrb(A,B)
Uc=
4-16
1-4
>>rank(Uc)ans=
1
因为rank(Uc)=1北n=2,所以系统的状态不完全能控。
>>A=[-3-4;-10];B=[4;1];C=[-1-1];D=0;Uc=ctrb(A,B);Uy=[C*UcD]
Uy=
-5200
>>rank(Uy)
ans=
1
由于rank(Uy)=1=m,故系统是输出能控的。
A=[-3-4;-10];C=[-1-1];D=0;V=obsv(A,C)
-1
-1
>>rank(V)
ans=
由于rank(V)=1不等于n,故不能观。
按能控性分解
「00
-3」L0j
10
L01
>>A=[00-1;10-3;01-3];B=[1;1;0];C=[01-2];[AcBcCcTcKc]=ctrbf(A,B,C)
Ac=
Bc=
-1.4142
Cc=
Tc=
Kc=unction[Ak,Bk,Ck,Tk]=kalmdec(A,B,C)%按能控能观测性分解[Ac,Bc,Cc,Tc,Kc]=ctrbf(A,B,C);
nc=rank(ctrb(A,B));
n=length(A);ic=n-nc+1:
n;
[Ao1,Bo1,Co1,To1,Ko1]=obsvf(Ac(ic,ic),Bc(ic),Cc(ic));ifnc n-nc; [Ao2,Bo2,Co2,To2,Ko2]=obsvf(Ac(inc,inc),Bc(inc),Cc(inc));end[m1,n1]=size(To1);[m2,n2]=size(To2); To=[To2,zeros(m2,n1); zeros(m1,n2),To1]; T=To*Tc;n1=rank(obsv(Ac(ic,ic),Cc(ic)));n2=rank(obsv(Ac(inc,inc),Cc(inc))); K=[zeros(1,n-nc-n2),ones(1,n2),2*ones(1,nc-n1),3*ones(1,n1)];Ak1=T*A*inv(T);Bk1=T*B;Ck1=C*inv(T); Ak=rot90(Ak1,2); Bk=rot90(Bk1,2); Ck=rot90(Ck1,2); Tk=rot90(T,2); >>A=[00-1;10-3;01-3];B=[1;1;0];C=[01-2];[AkBkCkTk]=kalmdec(A,B,C)Ac= 1.2247 -1.0000 Bc= -0.7071 -1.2247 Cc= Tc= -0.57740.5774-0.5774 实验四稳定性 一实验目的 掌握系统稳定性的概念。 学会使用MATLAB确定线性定常系统和非线性定常系统的稳定性。 实验内容 1.已知线性系统 -「101 X=IX 也1」 (1)用函数eig(),Pole()和zpkdata()求出系统的特征值和极点。 用函数pzmap()绘制系统的零点和极点。 确定系统的稳定性。 (2)任意给定对称正定矩阵Q,用函数lyap()求解Lyaponov方程,确定系统的稳定性。 与 (1)的结果进行比较。 C=00】,D=0,任意给定初始状态。 用函数initial()求出 系统的零输入响应,并绘制相应的状态响应曲线。 说明稳定系统的状态响应曲线与不稳定系统的状态响应曲线的区别。 「11 (4)令B=|I,C=11】,D=0,初始状态为零。 用函数step(求出系统 L-1」 在单位阶跃信号作用下的状态响应和输出响应,并绘制相应的曲线。 分析系统的状态稳定和输出稳定是否一致。 2.已知非线性系统 IX1=—3X1+X2〔X;=X1-X2中X23 编制相应的程序,用克拉索夫斯基法确定系统在原点处的稳定性。 实验结果 1. (1)A=[10;01]; >>eig(A)ans= 2)A=[01;-2-3];Q=eye (2);P=lyap(A,Q) 1.0000-0.5000 -0.50000.5000>>s=posdef(P)matrixispositivedefinitematrix 可知系统是稳定的。 (2)functions=posdef(P)%判定矩阵的正定性r=length(P); fori=1: r pp(i)=det(P(1: i,1: i)); endk=find(pp<0);j=find(pp==0); ifisempty(j)&isempty(k) s='matrixispositivedefinitematrix';elseifisempty(k) s='matrixishalfpositivedefinitematrix';else s='non-definitematrix';end>>A=[01;-2-3];Q=eye (2);P=lyap(A,Q)s=posdef(P)返回 1.0000-0.5000 -0.50000.5000matrixispositivedefinitematrix 2.%ex43symsx1x2; x=[x1x2]; f1=-3*x1+x2; f2=x1-x2-x2^3; F1=[jacobian(f1,x1)jacobian(f1,x2);jacobian(f2,x1)jacobian(f2,x2)]; F2=[jacobian(f1,x1)jacobian(f2,x1);jacobian(f1,x2)jacobian(f2,x2)]; F=Ft+F2; n=length(x); fori=1: n ff(i)=simple(det(F(1: i,1: i))); endffv=f1*f1+f2*f2 在命令窗中运行该程序得 ff= [-6,8+36*x2A2] (-3*x1+x2)A2+(x1-x2-x2A3)A2 可见F负定,且当|x|t时, V(X)T处,所以系统大范围渐近稳定。 实验五极点配置和状态观测器 实验目的 1.掌握状态反馈和输出反馈的概念及性质。 2.掌握利用状态反馈进行极点配置的方法。 学会用MATLAB求解状态反馈矩阵。 3.掌握状态观测器的设计方法。 学会用MATLAB设计状态观测器。 4.熟悉分离定理,学会设计带有状态观测器的状态反馈系统。 实验内容 1. y=0.4 已知系统 020 1U L00 [ L 0 0 x= 0.26670.3333k (1)求解系统的零点、极点和传递函数,并判断系统的能控性和能观测性。 (2)分别选取K=[030],K=[132],K=[016/3-/3]为状态反馈矩阵,求解闭环系统的零点、极点和传递函数,判断闭环系统的能控性和能观测性。 它们是否发生改变? 为什么? (3)任选三个输出反馈矩阵,求解闭环系统的零点、极点和传递函数,并判断系统的能控性和能观测性。 它们是否发生改变? 为什么? 2.已知系统 1 01f 0 0 1 x+ L0 -2 —3. [ x= 0oX ou I (1)求解系统的极点。 绘制系统的单位阶跃响应曲线,并确定系统的超调量和上升时间。 (2)求解状态反馈矩阵K,使闭环系统的极点为-3和-『芦。 求解状态反 性能是否改善? 使观测器的极点为-5,-5,-5。 仿真状态观测器观测 馈系统的传递函数。 绘制该闭环系统的单位阶跃响应曲线,并确定系统的超调量和上升时间。 与原系统比较 (3)设计一个全维观测器, 到的状态。 (4) 使观测器的极点为-5。 设计一个降维观测器, (5)建立带全维状态观测器的状态反馈系统的状态空间表达式。 求解带全维状态观测器的状态反馈系统的极点,是否是状态反馈系统和观测器的极点的组合? 为什么? 求解该闭环系统的传递函数,与状态反馈系统的传递函数是否一致? 为什么? 绘制该闭环系统的单位阶跃响应曲线,并确定系统的超调量和上升时间。 与状态反馈系统的单位阶跃响应曲线比较,验证两种反馈是否等价。 实验结果 1.>>A=[-100;001;0-31];B=[001]';Uc=ctrb(A,B);m=rank(Uc)m= 可见系统是不完全能控的,而且其中有两个极点可以任意配置。 在命令窗中调用此函数 >>K=bfjdpz(A,B,C) 返回 Af= 0 -1 -1 -1 0 0 Bf= 0 0 -1 Cf= -1 Tf= -1 0 -1 0 0 输入能配置的极点组成的向量 由上述能控性分解可见,极点-1是不能控的,另外两个极点是能控的。 可判 断利用状态反馈第一组极点可以配置,而第二组极点不能配置。 在命令窗中输入第一组极点中能控的两个极点,即 [-2-2] 返回 Pc= -2 -2 -1 2. >>A=[-11;0-2];B=[01]';C=[20];p=[-10-10];L=(acker(A',C',p)) 返回 8.5000 32.0000 利用函数simobsv()可以仿真状态观测器所观测到的状态。 该函数的调用格式为 [Xo,X,t]=simobsv(G,L) 其中G为系统的状态空间模型,L为观测器的反馈矩阵。 Xo为重构状态的阶跃响应,x为 原系统状态的阶跃响应,t为函数自动选择的时间向量。 该函数的程序如下 function[xo,x,t]=simobsv(G,L)%仿真观测器的状态[y,t,x]=step(G); G=ss(G);A=G.a;B=G.b;C=G.c;D=G.d; [y1,xo1]=step((A-L*C),B,C,D,1,t); [y2,xo2]=lsim((A-L*C),L,C,D,y,t); xo=xo1+xo2; 现在仿真上面的求得的状态观测器的状态。 运行下列命令 >>figureCpos',[5050200150],'color','
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代 控制 理论 实验 报告 word 文档 良心 出品