自动控制原理2实验三状态空间分析

更新时间:2024-03-08 12:04:01 阅读量: 综合文库 文档下载

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

实验三 用Matlab进行状态空间分析及设计

一、实验目的:

掌握使用MATLAB进行及状态空间分析及状态反馈控制系统的设计。 二、实验内容

实验内容一:系统状态空间模型如下:

10??0??0?;B??0?;C?100

A??001?????????1????6?11?6??(1) 求其传递函数,由传递函数求系统的极点;

(2) 由上述状态空间模型,求系统的特征值; (3) 求上述系统状态转移矩阵;

(4) 求其在x0=[2; 1; 2], u为单位阶跃输入时x及y的响应; (5) 分析上述系统的可控性、可观性;

(6) 将上述状态空间模型转换为其他标准形式;

(7) 取T=[1 2 4;0 1 0;0 0 1] 对上述状态空间模型进行变换,分析变换后的系统。 实验matlab程序:

A=[0 1 0;0 0 1;-6 -11 -6];

B=[0 0 1]';C=[1 0 0];D=0; %输入矩阵ABCD

sys1=ss(A,B,C,D) %显示ABCD构成的状态空间模型

[num,den]=ss2tf(A,B,C,D) %实现状态空间模型到传递函数模型的转换 sys2=tf(num,den) %得到系统按分子分母多项式降幂排列的传递函数 P=roots(den) %求出系统的极点

eig(sys1) % 由状态空间模型得到系统的特征值 syms t1

expm(A*t1) %求系统状态转移矩阵 x0=[2;1;2] %系统的初始状态 t=[0:0.1:20]'; %定义时间t u(1,1:201)=1*ones(1,201); %输入单位阶跃

[y t x]=lsim(sys1,u,t,x0); %计算系统的单位阶跃响应 figure(1)

plot(t,x(:,1),'-',t,x(:,2),'-',t,x(:,3),'-') %绘制系统单位输入响应状态曲线 xlabel('t/秒');ylabel('x(t)');title('单位阶跃输入响应状态曲线') grid

text(6,0.3,'x_1(t)') text(6,-1.5,'x_2(t)') text(6,1.8,'x_3(t)') figure(2)

plot(t,y);grid; %绘制系统单位输入响应输出曲线 xlabel('t/秒');ylabel('y(t)');title('系统单位输入响应输出曲线')

s=ctrb(A,B) %计算可控性矩阵S

f=rank(s) %通过rank命令求可控矩阵的秩 n=length(A) %计算矩阵A的维数

if f==n %判断系统的可控性 disp('system is controlled') else

disp('system is no controlled') end

v=obsv(A,C) %计算可观性矩阵v

m=rank(v) %通过rank命令求可控矩阵的秩 if m==n %判断系统的可观性 disp('system is observable') else

disp('system is no observable') End

sys3=canon(sys1,'modal') %将系统转化成对角线的标准形式

sys4=canon(sys1,'companion') %将系统转化成为A为伴随矩阵的标准形式 T=[1 2 4;0 1 0;0 0 1] %输入变换矩阵

sys5=ss2ss(sys1,T) %得到变换后的状态空间模型 实验结果:

(1)传递函数及由此得到的系统的极点

极点p =[-3.0000 -2.0000 -1.0000]

(2)根据状态空间模型得到的系统的特征值(由语句eig(sys1)求出) ans =[-1.0000 -2.0000 -3.0000]

系统的特征值全部位于s平面的左半部分,由此判断出系统是一个稳定系统 (3)求系统的状态转移矩阵(由语句syms t1 ; expm(A*t1)求出)

(4)求系统在x0=[2; 1; 2], u为单位阶跃输入时x及y的响应 记录曲线如下:

A:单位阶跃输入时状态变量X的响应曲线:

B:单位阶跃输入时系统输出y响应曲线

(5)系统的可控性,可观性分析 A.系统的可控性矩阵s为: s = 0 0 1 0 1 -6

1 -6 25 则系统可控性矩阵的秩f=3,矩阵A的维数为n=3 得到系统的结果是system is controlled即系统是可控的 B.系统的可观性矩阵v为:

v = 1 0 0 0 1 0

0 0 1 则系统可观性矩阵的秩m=3,矩阵A的维数为n=3 得到系统的结果是system is observable即系统是可观测的 实验结论:由运行结果可知该系统既可控也可观

(6)将原来的系统状态空间模型转化为以下俩种标准形式

A.转化为对角线的标准形式(由语句sys3=canon(sys1,'modal')求出)

B.转化成为A为伴随矩阵的标准形式(由语句sys4=canon(sys1,'companion')求出)

(6)T=[1 2 4;0 1 0;0 0 1] 对上述状态空间模型进行变换,分析变换后的系统的空间模型为 (有语句T=[1 2 4;0 1 0;0 0 1] ;sys5=ss2ss(sys1,T) 实现 )

对变换后的系统的空间模型进行可控可观性分析得到的结果是 系统的可控性矩阵s为 s=

1 0 0 0 1 0 0 0 1 可控性矩阵的秩f=3

得到系统的结果是system is controlled即系统是可控的 系统的可观性矩阵v为 v =

0 0 1 0 1 -6 1 -6 25

系统的可观测矩阵的秩m =3

得到系统的结果是system is observable即系统是可观测的 系统的特征根ans=[ -1.0000 -2.0000 -3.0000 ] 综上实验结果分析:

对变换后的系统进行可控性,可观性分析得到可控性矩阵的秩f=n-=3,可观测性矩阵的秩m=n=3由此经过变换后的系统仍即可控也可观,变换后系统的特征根仍为:ans =[1.0000 -2.0000 -3.0000] 与原来系统相同。为了便于研究系统的一些固有的特性,常常需要引进线性变换,例如在实验内容(5)中将A阵对角化,但是通过实验内容(6)知道经过线性变换后系统的一些固有特性:系统的特征值,传递矩阵,可控性,可观性等重要性质保持不变。特征值不变也说明系统的稳定性也不会发生变化。 实验内容二:分析下列系统的可控性、可观性

?0?0A???0(1)

??1实验程序如下:

200??1?01?20??,B???0031???000??10?0??;C??0100??0010?1???

?0?A=[0 2 0 0;0 1 -2 0;0 0 3 1;1 0 0 0];

B=[1 0;0 0;0 1;1 0];C=[0 1 0 0;0 0 1 0];D=0; sys1=ss(A,B,C,D) s=ctrb(A,B) f=rank(s) n=length(A) if f==n

disp('system is controlled') else

disp('system is no controlled') end

v=obsv(A,C) m=rank(v) if m==n

disp('system is observable') else

disp('system is no observable') End

实验结果如下:

系统的可控性矩阵s为: s =

1 0 0 0 0 -4 -4 -16 0 0 0 -2 -2 -8 -10 -26 0 1 1 3 4 9 12 27 1 0 1 0 0 0 0 -4 可控性矩阵的秩f = 4 系统的维数n =4

得到系统的结果是system is controlled即系统是可控的 系统的可观性矩阵v为: v =

0 1 0 0 0 0 1 0 0 1 -2 0 0 0 3 1 0 1 -8 -2 1 0 9 3 -2 1 -26 -8 3 2 27 9 系统的可观性矩阵秩m =4

得到系统的结果是system is observable即系统是可观测的 综上说明该系统即是可控的也是可观测的

00000??31?0?300000??00?41000?000?4000(2)A???0000?110?0000?10?0?000000?5?000000??00??1?50???0??4??0?0B???10???0??0?91???5???0?3?7??3??0? ?6?0?2??0???31050036?C???14020071??

实验程序如下:

A=[-3 1 0 0 0 0 0 0;0 -3 0 0 0 0 0 0;0 0 -4 1 0 0 0 0;0 0 0 -4 0 0 0 0; 0 0 0 0 -1 1 0 0;0 0 0 0 0 -1 0 0;0 0 0 0 0 0 -5 1;0 0 0 0 0 0 0 5] B=[1 3;5 7;4 3;0 0;1 6;0 0;9 2;0 0] C=[3 1 0 5 0 0 3 6;1 4 0 2 0 0 7 1]

D=0

sys1=ss(A,B,C,D) s=ctrb(A,B) f=rank(s) n=length(A) if f==n

disp('system is controlled') else

disp('system is no controlled') end

v=obsv(A,C) m=rank(v) if m==n

disp('system is observable') else

disp('system is no observable') End

实验结果如下:

系统的可控性矩阵s为: 可控性矩阵的秩 f=5 系统的维数n =8

得到系统的结果是system is no controlled即系统是不可控的 系统的可观性矩阵v为: 系统的可观性矩阵秩m =5

得到系统的结果是system is no observable即系统是不可观测的 综上说明该系统即是不可控的也是不可观测的

00???10?0??2?30??0?0?;B???;C??3010? (3)A???1?1?0?20?????4?12?4???2?实验程序如下:

A=[-1 0 0 0;2 -3 0 0;1 0 -2 0;4 -1 2 -4] B=[0 0 1 2]';C=[3 0 1 0];D=0; sys1=ss(A,B,C,D) s=ctrb(A,B) f=rank(s) n=length(A) if f==n

disp('system is controlled') else

disp('system is no controlled') end

v=obsv(A,C)

m=rank(v) if m==n

disp('system is observable') else

disp('system is no observable') End

实验结果如下:

系统的可控性矩阵s为: s =

0 0 0 0 0 0 0 0 1 -2 4 -8 2 -6 20 -72 可控性矩阵的秩f = 2 系统的维数n =4

得到系统的结果是system is no controlled即系统是不可控的 系统的可观性矩阵v为: v =

3 0 1 0 -2 0 -2 0 0 0 4 0 4 0 -8 0 系统的可观性矩阵秩m =2

得到系统的结果是system is no observable即系统是不可观测的 综上说明该系统即是不可控的也是不可观测的 实验内容三:系统状态空间模型如下,(1)判别系统的可控性;(2)设计状态反馈控制器使闭环极点为p=[-1,-10,-12];(3)求出闭环系统的传递函数和动态方程;(4)比较反馈前后系统的阶跃响应。

实验程序如下:

A=[0 1 0;0 0 1;-50 -25 -12];

B=[0 0 1]';C=[1 0 0];D=0; %输入矩阵ABCD

sys1=ss(A,B,C,D) %显示ABCD构成的状态空间模型 s=ctrb(A,B) %计算可控性矩阵S

f=rank(s) %通过rank命令求可控矩阵的秩 n=length(A) %计算矩阵A的维数 if f==n %判断系统的可控性 disp('system is controlled') else

10??0?0??;B??0?;C?100A??001?? ????????50?25?12???1?? disp('system is no controlled') end

v=obsv(A,C) %计算可观性矩阵v

m=rank(v) %通过rank命令求可控矩阵的秩 if m==n %判断系统的可观性 disp('system is observable') else

disp('system is no observable') End

p=[-1,-10,-12] %希望配置的闭环极点 k=place(A,B,p) %求状态反馈矩阵

A1=A-B*k %求状态反馈控制系统闭环状态矩阵

[num,den]=ss2tf(A,B,C,D) %实现原来状态空间模型到传递函数模型的转换 sys2=tf(num,den) %求原来状态空间模型的传递函数

[num1,den1]=ss2tf(A1,B,C,D) %实现配置后状态空间模型到传递函数模型的转换 sys3=tf(num1,den1) %求配置后状态空间模型的传递函数 sys4=ss(A,B,C,D) %原来系统的动态方程即状态空间模型 Sys5=ss(A1,B,C,D) %重新配置后的动态方程即状态空间模型 t=0:0.1:20 %定义时间t

[y1,t,x1]=step(sys1,t) %计算原来系统的单位阶跃响应 figure(1)

subplot(2,1,1)

plot(t,x1); %绘制系统的单位阶跃响应状态曲线 grid

xlabel('t/秒');ylabel('x1(t)');title('before change step response')

[y2,t,x2]=step(sys2,t) %计算重新配置后系统的单位阶跃响应 subplot(2,1,2)

plot(t,x2); %绘制重新配置后系统的单位阶跃响应状态曲线 grid

xlabel('t/秒');ylabel('x2(t)');title('after change step response') figure(2) subplot(2,1,1)

plot(t,y1); %绘制系统的单位阶跃响应输出曲线 grid

xlabel('t/秒');ylabel('y1(t)');title('before change step response') subplot(2,1,2)

plot(t,y2); %绘制重新配置后系统的单位阶跃响应输出曲线 grid

xlabel('t/秒');ylabel('y2(t)');title('after change step response') 实验结果

(1)判别系统的可控性 系统的可控性矩阵s为: s =

0 0 1 0 1 -12 1 -12 119 可控性矩阵的秩f = 3 系统的维数n =3

得到系统的结果是system is controlled即系统是可控的 系统的可观性矩阵v为: v =

1 0 0 0 1 0 0 0 1

系统的可观性矩阵秩m =3

得到系统的结果是system is observable即系统是可观测的 综上说明该系统即是可控的也是可观测的

(2)设计状态反馈控制器使闭环极点为p=[-1,-10,-12];

所求状态反馈增益矩阵为k=[70.0000 117.0000 11.0000] 状态反馈控制系统闭环状态矩阵: A1 =

0 1 0 0 0 1 -120 -142 -23

(3)求出闭环系统的传递函数和动态方程

改变前系统传递函数 改变后系统传递函数

改变前系统的动态方程

改变后系统动态方程

(4)比较反馈前后系统的阶跃响应 A.系统的单位阶跃响应状态曲线

B.系统的单位阶跃响应输出曲线

实验分析:

下面对系统进行理论分析:通过终值定理 有s→0时有Y(∞)=lim[s*G(S)U(S)] 其中U为单位阶跃U(s)=1/s 即 : s*1 Y(∞)=lim[s*G(S)U(S)]=lim[ -------------------------- * 1/s ]

s^3 + 23 s^2 + 142 s + 120

Y(∞)=1/120=0.00833

在分析系统的极点配置问题上首先要判断原来的系统是完全可控,如果系统不是完全可控的,则不能进行极点的配置,所谓的极点配置就是利用状态反馈或输出反馈使系统的极点位于所希望的极点位置,通过对原来系统的传递函数和动态方程及在单位阶跃输入下,加状态反馈后系统更容易稳定,即系统抗干扰性提高。

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

Top