ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:199.29KB ,
资源ID:7069420      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7069420.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(现代控制理论实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

现代控制理论实验报告.docx

1、现代控制理论实验报告 现代控制理论实验报告二一六年五月 实验一 线性定常系统模型一 实验目的1. 掌握线性定常系统的状态空间表达式。学会在MATLAB中建立状态空间模型的方法。2. 掌握传递函数与状态空间表达式之间相互转换的方法。学会用MATLAB实现不同模型之间的相互转换。3. 熟悉系统的连接。学会用MATLAB确定整个系统的状态空间表达式和传递函数。4. 掌握状态空间表达式的相似变换。掌握将状态空间表达式转换为对角标准型、约当标准型、能控标准型和能观测标准型的方法。学会用MATLAB进行线性变换。二 实验内容1.已知系统的传递函数(1)建立系统的TF或ZPK模型。(2)将给定传递函数用函数

2、ss( )转换为状态空间表达式。再将得到的状态空间表达式用函数tf( )转换为传递函数,并与原传递函数进行比较。(3)将给定传递函数用函数jordants( )转换为对角标准型或约当标准型。再将得到的对角标准型或约当标准型用函数tf( )转换为传递函数,并与原传递函数进行比较。(4)将给定传递函数用函数ctrlts( )转换为能控标准型和能观测标准型。再将得到的能控标准型和能观测标准型用函数tf( )转换为传递函数,并与原传递函数进行比较。2. 已知系统的传递函数 (1)建立给定系统的状态空间模型。用函数eig( ) 求出系统特征值。用函数tf( ) 和zpk( )将这些状态空间表达式转换为传

3、递函数,记录得到的传递函数和它的零极点。比较系统的特征值和极点是否一致,为什么?(2)用函数canon( )将给定状态空间表达式转换为对角标准型。用函数eig( )求出系统特征值。比较这些特征值和(1)中的特征值是否一致,为什么? 再用函数tf( )和zpk( )将对角标准型或约当标准型转换为传递函数。比较这些传递函数和(1)中的传递函数是否一致,为什么?(3)用函数ctrlss( )将给定的状态空间表达式转换为能控标准型和能观测标准型。用函数eig( )求系统的特征值。比较这些特征值和(1)中的特征值是否一致,为什么?再用函数tf( )将它们转换为传递函数。比较这些传递函数和(1)中的传递函

4、数是否一致,为什么?三 实验结果1.已知系统的传递函数 num=4; den=1 5 7 3 0; G=tf(num,den) Transfer function: 4-s4 + 5 s3 + 7 s2 + 3 s z=; p=0 -1 -1 -3; k=4; G=zpk(z,p,k) Zero/pole/gain: 4-s (s+1)2 (s+3) Gss=ss(G) a = x1 x2 x3 x4 x1 0 1 0 0 x2 0 -1 1 0 x3 0 0 -1 1 x4 0 0 0 -3 b = u1 x1 0 x2 0 x3 0 x4 2 c = x1 x2 x3 x4 y1 2 0

5、0 0 d = u1 y1 0 Gtf=tf(Gss) Transfer function: 4-s4 + 5 s3 + 7 s2 + 3 s Gzpk=zpk(Gtf) Zero/pole/gain: 4-s (s+3) (s+1)22. A=0 1; -5 -6 ;B=0;1; C=1 1;D=0; G=ss(A,B,C,D) a = x1 x2 x1 0 1 x2 -5 -6 b = u1 x1 0 x2 1 c = x1 x2 y1 1 1 d = u1 y1 0 Continuous-time model. a=0 1 ;-5 -6a = 0 1 -5 -6 eig(a)ans =

6、-1 -5 Gtf=tf(G) Transfer function: s + 1-s2 + 6 s + 5 Gzpk=zpk(Gtf) Zero/pole/gain: (s+1)-(s+5) (s+1) 结论:由上述结果可看出系统的特征值和极点是一致的。 A=0 1; -5 -6 ;B=0;1; C=1 1;D=0; G=ss(A,B,C,D); G1=canon(G,modal) a = x1 x2 x1 -1 0 x2 0 -5 b = u1 x1 0.559 x2 1.346 c = x1 x2 y1 0 0.7428 d = u1 y1 0 Continuous-time model.

7、 Gtf=tf(G1) Transfer function: 1-s + 5 Gzpk=zpk(Gtf) Zero/pole/gain: 1-(s+5)实验二 线性定常系统状态方程的解一 实验目的1. 掌握状态转移矩阵的概念。学会用MATLAB求解状态转移矩阵。2. 掌握线性系统状态方程解的结构。学会用MATLAB求解线性定常系统的状态响应和输出响应,并绘制相应曲线。二 实验内容1.求下列系统矩阵A对应的状态转移矩阵 .令初始状态为,输入为零。a)用MATLAB求状态方程的解析解。选择时间向量t,绘制系统的状态响应曲线。观察并记录这些曲线。b)用函数initial( )计算系统在初始状态作用下

8、状态响应和输出响应的数值解, 并用函数plot( ) 绘制系统的状态响应曲线和输出响应曲线。观察并记录这些响应曲线,然后将这一状态响应曲线与a)中状态响应曲线进行比较。c)根据b)中所得的状态响应的数值解,用命令plot(x(:,1), x(:,2)绘制系统的状态轨迹。记录系统状态转移的过程,结合a)和b)中的状态响应曲线分析这一过程。2.已知系统 (1)令初始状态为,输入为零。a)用MATLAB求状态方程的解析解。选择时间向量t,绘制系统的状态响应曲线。观察并记录这些曲线。b)用函数initial( )计算系统在初始状态作用下状态响应和输出响应的数值解, 并用函数plot( ) 绘制系统的状

9、态响应曲线和输出响应曲线。观察并记录这些响应曲线,然后将这一状态响应曲线与a)中状态响应曲线进行比较。c)根据b)中所得的状态响应的数值解,用命令plot(x(:,1), x(:,2)绘制系统的状态轨迹。记录系统状态转移的过程,结合a)和b)中的状态响应曲线分析这一过程。(2) 令初始状态为零,输入为。a) 用MATLAB求状态方程的解析解。选择时间向量t,绘制系统的状态响应曲线。观察并记录这些曲线。b) 用函数initial( )计算系统在初始状态作用下状态响应和输出响应的数值解, 并用函数plot( ) 绘制系统的状态响应曲线和输出响应曲线。观察并记录这些响应曲线,然后将这一状态响应曲线与

10、a).中状态响应曲线进行比较。c) 根据b)中所得的状态响应的数值解,用命令plot(x(:,1), x(:,2)绘制系统的状态轨迹。记录系统状态转移的过程,结合a)和b)中的状态响应曲线分析这一过程。(3)令初始状态为,输入为。求系统状态响应和输出响应的数值解,绘制系统的状态响应曲线、输出响应曲线和状态轨迹。观察和分析这些响应曲线和状态轨迹是否是(1)和(2)中的响应曲线和状态轨迹的叠加。(4) 令初始状态为零,输入为。用函数lsim( )计算状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。3.已知系统 且初始状态为。(1)当输入为时,用函数initial( )

11、和impulse( )求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。(2)当输入为时,用函数initial( )和step( )求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。(3)当输入为时,用函数initial( )和lsim( )求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。(4)当输入为时,用函数initial( ) 和lsim( )求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。三 实验结果1. A=0 1;-2 -3;s

12、yms t; phet=expm(A*t) phet = -exp(-2*t)+2*exp(-t), exp(-t)-exp(-2*t) -2*exp(-t)+2*exp(-2*t), 2*exp(-2*t)-exp(-t)A=0 1;-2 -3;syms s;G=inv(s*eye(size(A)-A);phet=ilaplace(G);X0=1 -1;Xt1=phet*X0; B=0 1;Xt2=ilaplace(G*B*(1/s) ex22 xt1 = exp(-t) -exp(-t)xt2 = 1/2-exp(-t)+1/2*exp(-2*t) exp(-t)-exp(-2*t)2.

13、已知系统为 A=0 1;-2 -3; B=0;1; C=1 1; D=0; G=ss(A,B,C,D) a = x1 x2 x1 0 1 x2 -2 -3 b = u1 x1 0 x2 1 c = x1 x2 y1 1 1 d = u1 y1 0 Continuous-time model. t=0:0.5:10; x0=1;-1; yo,t,xo=initial(G,x0,t); plot(t,xo,:,t,yo,-)figure(pos,50 50 200 150,color,w);u=ones(size(t);yu,t,xu=lsim(G,u,t);plot(t,xu,:,t,yu,-)

14、实验三 线性定常系统的能控性和能观性一 实验目的1. 掌握能控性和能观测性的概念。学会用MATLAB判断能控性和能观测性。2. 掌握系统的结构分解。学会用MATLAB进行结构分解。3. 掌握最小实现的概念。学会用MATLAB求最小实现二 实验内容1. 已知系统 (1)判断系统状态的能控性和能观测性,以及系统输出的能控性。说明状态能 控性和输出能控性之间有无联系。(2)令系统的初始状态为零,系统的输入分别为单位阶跃函数和单位脉冲函数。用MATLAB函数计算系统的状态响应和输出响应,并绘制相应的响应曲线。观察和记录这些曲线。当输入改变时, 每个状态变量的响应曲线是否随着改变?能否根据这些曲线判断系

15、统状态的能控性?(3) 将给定的状态空间表达式变换为对角标准型,判断系统的能控性和能观测性,与(1)的结果是否一致?为何?(4)令(3)中系统的初始状态为零, 输入分别为单位阶跃函数和单位脉冲函数。用MATLAB函数计算系统的状态响应和输出响应,并绘制响应的曲线。观察和记录这些曲线。当输入改变时, 每个状态变量曲线是否随着改变?能否根据这些曲线判断系统以及各状态变量的能控性?不能控和能控状态变量的响应曲线有何不同?(5)根据(2)和(4)所得曲线能否判断系统状态以及各状态变量的能观测性?2. 已知系统 (1)将给定的状态空间模型转换为传递函数模型。令初始状态为零,用MATLAB计算系统的单位阶

16、跃输出响应,绘制和记录相应的曲线。(2)按能控性分解给定的状态空间模型并记录所得的结果,然后再将其转换为传递函数模型。它与(1)中所得的传递函数模型是否一致?为何?令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,并绘制和记录相应曲线。这一曲线与(1)中的输出曲线是否一致?为何?(3)按能观测性分解给定的状态空间模型并记录分解所得的结果,然后再将其转换为传递函数模型。它与(1)中的传递函数模型是否一致?为何?令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,并绘制和记录相应曲线。这一曲线与(1)中的输出曲线是否一致?(4)按能控性能观测性分解给定的状态空间模型并记录分解所得的结

17、果,然后再将其转换为传递函数模型。它与(1)中的传递函数模型是否一致?为何?令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,并绘制和记录相应的曲线。这一曲线与(1)中的输出曲线是否一致?为何?三 实验结果1. (1) A=-3 -4;-1 0; B=4;1; Uc=ctrb(A,B)Uc = 4 -16 1 -4 rank(Uc) ans = 1因为rank(Uc)=1n=2,所以系统的状态不完全能控。 A=-3 -4;-1 0;B=4;1;C=-1 -1;D=0;Uc=ctrb(A,B);Uy=C*Uc DUy = -5 20 0 rank(Uy)ans = 1由于rank(Uy)

18、=1=m, 故系统是输出能控的。A=-3 -4;-1 0;C=-1 -1;D=0;V=obsv(A,C)V = -1 -1 4 4 rank(V)ans = 1 由于rank(V)=1不等于n,故不能观。按能控性分解 A=0 0 -1;1 0 -3;0 1 -3; B=1;1;0; C=0 1 -2; Ac Bc Cc Tc Kc=ctrbf(A,B,C)Ac = -1.0000 0.0000 -0.0000 -2.1213 -2.5000 0.8660 -1.2247 -2.5981 0.5000Bc = 0 0 -1.4142Cc = 1.7321 1.2247 -0.7071Tc = -

19、0.5774 0.5774 -0.5774 0.4082 -0.4082 -0.8165 -0.7071 -0.7071 0Kc = 1 1 02.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);if nc A=0 0 -1;1 0 -3;0 1 -3; B=1;1;0; C=0 1 -2; Ak Bk Ck

20、 Tk=kalmdec(A,B,C)Ac = -1.0000 0 1.2247 3.4641 -1.0000 -2.1213 -0.0000 0.0000 -1.0000Bc = -0.7071 -1.2247 0Cc = -1.4142 -0.0000 1.7321Tc = 0.7071 -0.0000 -0.7071 -0.4082 -0.8165 -0.4082 -0.5774 0.5774 -0.5774实验四 稳定性一 实验目的掌握系统稳定性的概念。学会使用MATLAB确定线性定常系统和非线性定常系统的稳定性。二 实验内容1. 已知线性系统 (1)用函数eig( ),pole( )和

21、zpkdata( )求出系统的特征值和极点。用函数pzmap( )绘制系统的零点和极点。确定系统的稳定性。(2)任意给定对称正定矩阵Q,用函数lyap( )求解Lyaponov方程,确定系统的稳定性。与(1)的结果进行比较。(3)令, ,任意给定初始状态。用函数initial( )求出系统的零输入响应,并绘制相应的状态响应曲线。说明稳定系统的状态响应曲线与不稳定系统的状态响应曲线的区别。(4)令, ,初始状态为零。 用函数step( )求出系统在单位阶跃信号作用下的状态响应和输出响应, 并绘制相应的曲线。分析系统的状态稳定和输出稳定是否一致。2. 已知非线性系统 编制相应的程序,用克拉索夫斯基

22、法确定系统在原点处的稳定性。三 实验结果1.(1) A=1 0 ;0 1; eig(A)ans = 1 1(2)A=0 1;-2 -3;Q=eye(2);P=lyap(A,Q)P = 1.0000 -0.5000 -0.5000 0.5000 s=posdef(P)s =matrix is positive definite matrix可知系统是稳定的。(2) function s=posdef(P) %判定矩阵的正定性r=length(P);for i=1:rpp(i)=det(P(1:i,1:i);endk=find(pp A=0 1;-2 -3;Q=eye(2);P=lyap(A,Q)

23、 s=posdef(P)返回P = 1.0000 -0.5000 -0.5000 0.5000s =matrix is positive definite matrix2. %ex43syms x1 x2;x=x1 x2;f1=-3*x1+x2;f2=x1-x2-x23;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);for i=1:

24、nff(i)=simple(det(F(1:i,1:i); endffv=f1*f1+f2*f2 在命令窗中运行该程序得ff =-6, 8+36*x22v =(-3*x1+x2)2+(x1-x2-x23)2可见F负定, 且当时,所以系统大范围渐近稳定。实验五 极点配置和状态观测器一 实验目的1. 掌握状态反馈和输出反馈的概念及性质。2. 掌握利用状态反馈进行极点配置的方法。学会用MATLAB求解状态反馈矩阵。3. 掌握状态观测器的设计方法。学会用MATLAB设计状态观测器。4. 熟悉分离定理,学会设计带有状态观测器的状态反馈系统。二 实验内容1. 已知系统 (1)求解系统的零点、极点和传递函数

25、,并判断系统的能控性和能观测性。(2)分别选取K=0 3 0,K=1 3 2,K=0 16 /3 1/3为状态反馈矩阵,求解闭环系统的零点、极点和传递函数,判断闭环系统的能控性和能观测性。它们是否发生改变?为什么?(3)任选三个输出反馈矩阵,求解闭环系统的零点、极点和传递函数,并判断系统的能控性和能观测性。它们是否发生改变? 为什么?2. 已知系统 (1)求解系统的极点。绘制系统的单位阶跃响应曲线,并确定系统的超调量和上升时间。(2)求解状态反馈矩阵K,使闭环系统的极点为和。求解状态反馈系统的传递函数。绘制该闭环系统的单位阶跃响应曲线,并确定系统的超调量和上升时间。与原系统比较, 性能是否改善

26、?(3)设计一个全维观测器,使观测器的极点为-5,-5,-5。仿真状态观测器观测到的状态。(4)设计一个降维观测器,使观测器的极点为-5。(5)建立带全维状态观测器的状态反馈系统的状态空间表达式。求解带全维状态观测器的状态反馈系统的极点,是否是状态反馈系统和观测器的极点的组合?为什么?求解该闭环系统的传递函数,与状态反馈系统的传递函数是否一致?为什么?绘制该闭环系统的单位阶跃响应曲线,并确定系统的超调量和上升时间。与状态反馈系统的单位阶跃响应曲线比较,验证两种反馈是否等价。三 实验结果1. A=-1 0 0;0 0 1;0 -3 1;B=0 0 1;Uc=ctrb(A,B);m=rank(Uc) m =可见系统是不完全能控的,而且其中有两个极点可以任意配置。在命令窗中调用此函数 K=bfjdpz(A,B,C) 返回Af = -1 0 0 0 0 -1 0 3 1Bf = 0 0 -1Cf = -1 1 -1Tf = -1 0 0 0 1 0 0 0 -1输入能配置的极点组成的向量由上述能控性分解可见,极点-1是不能控的,另外两个极点是能控的。可判断利用状态反馈第一组极点

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1