测控现代控制理论实验报告

更新时间:2023-11-05 00:58:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中南大学 现代控制理论实验报告

学校:中南大学 学院:信息科学与工程学院 班级:测控 姓名: 学号:

指导老师:郭宇骞 时间:2015年

实验1 用MATLAB分析状态空间模型

1、实验设备

PC计算机1台,MATLAB软件1套。 2、实验目的

① 学习系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;

② 通过编程、上机调试,掌握系统状态空间表达式与传递函数相互转换方法学习系统齐次、非齐次状态方程求解的方法,计算矩阵指数,求状态响应;

③ 通过编程、上机调试,掌握求解系统状态方程的方法,学会绘制状态响应曲线;

④ 掌握利用MATLAB导出连续状态空间模型的离散化模型的方法。

3、实验原理说明

参考教材P56~59“2.7 用MATLAB分析状态空间模型” 参考教材P99~101“3.8 利用MATLAB求解系统的状态方程”

4、实验步骤

① 根据所给系统的传递函数或A、B、C矩阵,依据系统的传递函数阵和状态空间表达式之间的关系式,采用MATLAB编程。 ② 在MATLAB界面下调试程序,并检查是否运行正确。

③ 根据所给系统的状态方程,依据系统状态方程的解的表达式,采用MATLAB编程。

④ 在MATLAB界面下调试程序,并检查是否运行正确。 题1.1 已知SISO系统的传递函数为

(1) 将其输入到MATLAB工作空间;

>>num=[1,5,8];den=[1,2,6,3,9];G=tf(num,den); Transfer function: s^2 + 5 s + 8 ----------------------------- s^4 + 2 s^3 + 6 s^2 + 3 s + 9 (2) 获得系统的状态空间模型。 >>G1=ss(G) a =

x1 x2 x3 x4 x1 -2 -1.5 -0.75 -2.25 x2 4 0 0 0 x3 0 1 0 0 x4 0 0 1 0

b = u1 x1 2 x2 0 x3 0 x4 0 c =

x1 x2 x3 x4 y1 0 0.125 0.625 1 d = u1 y1 0

题1.2 已知SISO系统的状态空间表达式为 ,

(1) 将其输入到MATLAB工作空间; >> A=[0 1 0;0 0 1;-4 -3 -2];

B=[1;3;6]; C=[1,0,0]; D=0;

G=ss(A,B,C,D); a =

x1 x2 x3 x1 0 1 0 x2 0 0 1 x3 -4 -3 -2 b = u1 x1 1 x2 3 x3 6 c =

x1 x2 x3 y1 1 0 0 d =

u1 y1 0

Continuous-time model. (2)求系统的传递函数。 >>G1=tf(G)

Transfer function: s^2 + 5 s + 15 --------------------- s^3 + 2 s^2 + 3 s + 4

题1.3 已知SISO系统的状态方程为

(1),,求当t=0.5时系统的矩阵系数及状态响应; >>A=[0,1;-2,-3]; A=expm(A*0.5) A =

0.8452 0.2387 -0.4773 0.1292

>>x0=[1;-1]; x=expm(A*0.5)*x0 x =

1.3543 -1.3543

(2),,绘制系统的状态响应及输出响应曲线; >> A=[0,1;-2,-3];B=[3;0];C=[1,1];D=0; G=ss(A,B,C,D); [y,t,x]=step(G); plot(t,x) plot(t,y)

(3),,绘制系统的状态响应及输出响应曲线; >> A=[0,1;-2,-3];B=[3;0];C=[1,1];D=0; t=[0:.04:4];u=1+exp(-t).*cos(3*t); G=ss(A,B,C,D); [y,t,x]=lsim(G,u,t); plot(t,x) plot(t,y)

(4),,绘制系统的状态响应及输出响应曲线; >> A=[0,1;-2,-3];B=[3;0];C=[1,1];D=0; t=[0:.04:7];u=0;x0=[1;2] G=ss(A,B,C,D);

[y,t,x]=initial(G,x0,t); plot(t,x) plot(t,y)

(5)在余弦输入信号和初始状态下的状态响应曲线。 >> A=[0,1;-2,-3];B=[3;0];C=[1,1];D=zeros(1,1); x0=[1;1];t=[0:.04:15]; u=cos(t); G=ss(A,B,C,D); G1=tf(G);

[y,t,x]=lsim(G,u,t,x0);//第四个是初始状态 plot(t,x)

题1.4 已知一个连续系统的状态方程是

若取采样周期秒

(1) 试求相应的离散化状态空间模型; >>A=[0,1;-25,-4];B=[0;1]; [Gz,Hz]=c2d(A,B,0.05)

(2)分析不同采样周期下,离散化状态空间模型的结果。

实验2 系统的能控性、能观测性分析 1、实验设备

PC计算机1台,MATLAB软件1套。 2、实验目的

① 学习系统状态能控性、能观测性的定义及判别方法; ② 通过用MATLAB编程、上机调试,掌握系统能控性、能观测性的判别方法,掌握将一般形式的状态空间描述变换成能控标准形、能观标准形。

学习系统稳定性的定义及李雅普诺夫稳定性定理;

通过用MATLAB编程、上机调试,掌握系统稳定性的判别方法。

3、实验原理说明

参考教材P117~118“4.2.4 利用MATLAB判定系统能控性” 参考教材P P124~125“4.3.3 利用MATLAB判定系统能观测性” 4、实验步骤

① 根据系统的系数阵A和输入阵B,依据能控性判别式,对所给系统采用MATLAB编程;在MATLAB界面下调试程序,并检查是否运行正确。 ② 根据系统的系数阵A和输出阵C,依据能观性判别式,对所给系统采用MATLAB编程;在MATLAB界面下调试程序,并检查是否运行正确。 ③ 构造变换阵,将一般形式的状态空间描述变换成能控标准形、能观

标准形。

④ 参考教材P178~181“5.3.4 利用MATLAB进行稳定性分析” ⑤ 掌握利用李雅普诺夫第一方法判断系统稳定性; ⑥ 掌握利用李雅普诺夫第二方法判断系统稳定性。

题2.1 已知系数阵A和输入阵B分别如下,判断系统的状态能控性 ,

>> A=[6.666,-10.667,-0.3333;1,0,1;0,1,2]; B=[0;1;1]; Uc=[B,A*B,A^2*B]; rank(Uc) ans = 3

等于系统维数 可控的

题2.2 已知系数阵A和输出阵C分别如下,判断系统的状态能观性。 ,

A=[6.666,-10.667,-0.3333;1,0,1;0,1,2]; C=[1,0,2]; Uo=[C;C*A;C*A^2];

rank(Uo) ans = 3 可观测

题2.3 已知系统状态空间描述如下

(1) 判断系统的状态能控性; (2) 判断系统的状态能观测性; >> A=[0,2,-1;5,1,2;-2,0,0]; B=[1;0;-1]; C=[1,1,0]; Uc=[B,A*B,A^2*B]; Uo=[C;C*A;C*A^2]; a=rank(Uc) b=rank(Uo) a = 3

b = 3 可控可观测

(3) 构造变换阵,将其变换成能控标准形; >> A=[0,2,-1;5,1,2;-2,0,0]; B=[1;0;-1]; C=[1,1,0]; Uc=[B,A*B,A^2*B]; a=rank(Uc); p1=[0,0,1]*inv(Uc); P=[p1;p1*A;p1*A^2] Ac=P*A*inv(P) Bc=P*B P =

0.1364 0.0455 0.1364 -0.0455 0.3182 -0.0455 1.6818 0.2273 0.6818

Ac =

0 1.0000 0 0 0.0000 1.0000 -10.0000 12.0000 1.0000 Bc =

0 0 1.0000

(4)构造变换阵,将其变换成能观测标准形; 题2.4 某系统状态空间描述如下

(1) 利用李雅普诺夫第一方法判断其稳定性; >> A=[0,2,-1;5,1,2;-2,0,0]; B=[1;0;-1]; C=[1,1,0]; D=[0];

flag=0;

[z,p,k]=ss2zp(A,B,C,D,1);

disp('System zero-points,pole-points and gain are:'); z p k

n=length(A); for i=1:n

if real(p(i))>0 flag=1; end end if flag==1

disp('System is unstable'); else

disp('System is stable'); end

System zero-points,pole-points and gain are: z =

1.0000

-4.0000 p =

-3.3978 3.5745 0.8234 k = 1

System is unstable

(2) 利用李雅普诺夫第二方法判断其稳定性。 >> A=[0,2,-1;5,1,2;-2,0,0]; Q=eye(3,3); P=lyap(A,Q); flag=0; n=length(A); for i=1:n

det(P(1:i,1:i)) if(det(P(1:i,1:i))<=0) flag=1; end end if flag==1

disp('System is unstable'); else

disp('System is stable'); end ans =

-2.1250 ans =

-8.7812 ans =

6.1719

System is unstable

实验3 利用MATLAB实现极点配置、设计状态观测器 1、实验设备

PC计算机1台,MATLAB软件1套。 2、实验目的

① 学习闭环系统极点配置定理及算法,学习全维状态观测器设计方法;

② 通过用MATLAB编程、上机调试,掌握极点配置算法,设计全维状态观测器。 3、实验原理说明

参考教材P204~207 “6.2.5 利用MATLAB实现极点配置” P227~230 “6.4.4 利用MATLAB设计状态观测器” 4、实验步骤

(1)掌握采用直接计算法、采用Ackermann公式计算法、调用place函数法分别进行闭环系统极点配置;

(2)掌握利用MATLAB设计全维状态观测器。 题3.1 某系统状态方程如下

理想闭环系统的极点为,试

(1)采用直接计算法进行闭环系统极点配置 >> A=[0,1,0;0,0,1;-4,-3,-2]; B=[1;3;-6]; C=[1,0,0]; D=0;

%理想闭环极点 P=[-1,-2,-3]; syms k1 k2 k3 s; K=[k1 k2 k3];

eg=Simple(det(s*diag(diag(ones(size(A))))-A+B*K)) f=1; for i=1:3

f=Simple(f*(s-P(i))); end f=f-eg; [k1

k2

k3]=solve(subs(f,'s',0),subs((diff(f,'s')),'s',0),diff(f,'s',2)) eg =

s^3+(2-6*k3+3*k2+k1)*s^2+(3-13*k3+5*k1)*s+4+3*k1-4*k2-12*k3 k1 = 194/131 k2 = 98/131 k3 = -6/131

(2)采用Ackermann公式计算法进行闭环系统极点配置; >>A=[0,1,0;0,0,1;-4,-3,-2]; B=[1;3;-6]; C=[1,0,0]; %理想闭环极点 P=[-1,-2,-3];

K=acker(A,B,P) A-B*K K =

1.4809 0.7481 -0.0458 ans =

-1.4809 0.2519 0.0458 -4.4427 -2.2443 1.1374 4.8855 1.4885 -2.2748

(3) 采用调用place函数法进行闭环系统极点配置。 >> A=[0,1,0;0,0,1;-4,-3,-2]; B=[1;3;-6]; eig(A)' P=[-1,-2,-3]; K=place(A,B,P)

本文来源:https://www.bwwdw.com/article/xja2.html

Top