当前位置:文档之家› 现代控制理论实验

现代控制理论实验

华北电力大学
实验报告|
|
实验名称状态空间模型分析
课程名称现代控制理论
|
|
专业班级:自动化1201 学生姓名:马铭远
学号:2 成绩:
指导教师:刘鑫屏实验日期:4月25日
状态空间模型分析
一、实验目的
1.加强对现代控制理论相关知识的理解;
2.掌握用 matlab 进行系统李雅普诺夫稳定性分析、能控能观性分析;
二、实验仪器与软件
1. MATLAB7.6 环境
三、实验内容
1 、模型转换
图 1、模型转换示意图及所用命令
传递函数一般形式:
MATLAB 表示为: G=tf(num,den),,其中 num,den 分别是上式中分子,分母系数矩阵。

零极点形式:
MATLAB 表示为:G=zpk(Z,P,K) ,其中 Z,P ,K 分别表示上式中的零点矩阵,极点矩阵和增益。

传递函数向状态空间转换:[A,B,C,D] = TF2SS(NUM,DEN);
状态空间转换向传递函数:[NUM,DEN] = SS2TF(A,B,C,D,iu)---iu 表示对系统的第 iu 个输入量求传递函数;对单输入 iu 为 1。

例1:已知系统的传递函数为G(S)=
2
2
3
24
11611
s s
s
s s
++
+++
,利用matlab将传递函数
和状态空间相互转换。

解:1.传递函数转换为状态空间模型:
NUM=[1 2 4];DEN=[1 11 6 11];
[A,B,C,D] = tf2ss(NUM,DEN)
2.状态空间模型转换为传递函数:
A=[-11 -6 -11;1 0 0;0 1 0];B=[1;0;0];C=[1 2 4];D=[0];iu=1;
[NUM,DEN] = ss2tf(A,B,C,D,iu);
G=tf(NUM,DEN)
2 、状态方程状态解和输出解
单位阶跃输入作用下的状态响应:
G=ss(A,B,C,D);[y,t,x]=step(G);plot(t,x).
零输入响应
[y,t,x]=initial(G,x0)其中,x0 为状态初值。

例二:仍然使用一中的状态空间模型,绘制单位阶跃输入作用下的状态响应和零输入响应,其中零输入响应的初始值x0=[1 2 1]。

解:1.绘制单位阶跃输入作用下的状态响应:
A=[-11 -6 -11;1 0 0;0 1 0];B=[1;0;0];C=[1 2 4];D=[0];
G=ss(A,B,C,D);[y,t,x]=step(G);plot(t,x)
2.绘制零输入响应:
A=[-11 -6 -11;1 0 0;0 1 0];B=[1;0;0];C=[1 2 4];D=[0];
G=ss(A,B,C,D);
x0=[1 2 1];[y,t,x]=initial(G,x0);plot(t,x)
3 、系统能控性和能观性
能控性判断:
首先求能控性判别矩阵:co=ctrb(A ,B)。

然后求 rank(co)并比较与 A 的行数 n 的大小,若小于 n 则不可控,等于为可控。

也可以求 co 的行列式,不等于 0,系统可控,否则不可控。

能观测性判断:
首先求能观测性阵 ob=obsv(A ,C),或者 ob=ctrb(A' ,C');
然后求 rank(ob)并比较与 A 的行数大小,若小于,为不可观测,等于则为可观测。

也可以求 co 的行列式,不等于 0,系统能观,否则不能观
例三:判断下列系统的能控能观性:
51010
05000
00310
101
110
x x u
y x
⎧-⎡⎤⎡⎤
⎪⎢⎥⎢⎥
=-+
⎪⎢⎥⎢⎥
⎪⎢⎥⎢⎥
-
⎨⎣⎦⎣⎦

⎡⎤
⎪=
⎢⎥
⎪-⎣⎦

&
解:A=[-5 1 0;0 -5 0;0 0 -3];B=[1 0;0 0;1 0];C=[1 0 1;-1 1 0];
co=ctrb(A ,B);
rank(co)
因为2<3(A的行数),所以不能控
ob=obsv(A ,C);
rank(ob)
是满秩的
显然,该系统是能观测的。

综上,该系统能观不能控。

4 、线性变换
一个系统可以选用不同的状态变量,所以状态方程是不唯一的。

但是这些方程之间是可以相互转换的。

[At ,Bt ,Ct ,Dt]=ss2ss(A ,B ,C ,D ,T)
变换矩阵 T 不同,可得到不同的状态方程表示形式,如可控型,可观测型,Jordan标准型表示。

matlab 变换与控制书上讲的变换略有差别。

这里是z = Tx,其中 x 是原来的变量,z 是现在的变量。

书上则是x = Tz 。

因此线性变换时,首先要对给定的变换矩阵进行逆变换,然后将其代入上面指令的 T 中。

求对角阵(或约当阵):
MATLAB 提供指令:
[At ,Bt ,Ct ,Dt ,T]=canon(A ,B ,C ,D ,'modal')
它可将系统完全对角化,不会出现经典控制中的约当块。

求可观测标准型:
[At ,Bt ,Ct ,Dt ,T]=canon(A ,B ,C ,D ,'companion') 求可控标准型:
首先需要求可观测标准型,然后根据对偶关系求[At',Ct',Bt',Dt']
例四:
[]⎪⎪

⎪⎪⎨⎧=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=x y u x x 0011006116100010&
(1)将状态方程转化为对角标准型
解:A=[0 1 0;0 0 1;-6 -11 -6];B=[1;1;0];
C=[0 0 0];D=[0];
[At ,Bt ,Ct ,Dt ,T]=canon(A ,B ,C ,D ,'modal')
(2)求该系统的能观标准型并得变换阵T 。

解:A=[0 1 0;0 0 1;-6 -11 -6];B=[0;0;1];C=[1 0 0];D=[0];
[At ,Bt ,Ct ,Dt ,T]=canon(A ,B ,C ,D ,'companion')
5 、线性定常系统的结构分解
当系统是不可控的,可以进行可控性规范分解。

使用
[a1,b1,c1,t,k]=ctrbf(A,B,C)命令。

验证 P497 例题 9-21。

当系统是不可观测的,可以进行可观测性规范分解。

使用[a2,b2,c2,t,k]=obsvf(A,B,C) 命令。

例五:(1)将下列系统进行可控性分解。

510100500000310101110x x u y x
⎧-⎡⎤⎡⎤⎪⎢⎥⎢⎥=-+⎪⎢⎥⎢⎥⎪⎢⎥⎢⎥-⎨⎣⎦⎣⎦⎪
⎡⎤⎪=⎢⎥⎪-⎣⎦⎩
&
该系统不可控
A=[-5 1 0;0 -5 0;0 0 -3];B=[1 0;0 0;1 0];C=[1 0 1;-1 1 0]; [a1,b1,c1,t,k]=ctrbf(A,B,C)
(2)将以下系统进行可观测性分解:
[]
1002
0201
0041
012
x x u
y x u
⎧-
⎡⎤⎡⎤
⎪⎢⎥⎢⎥
=-+
⎪⎢⎥⎢⎥
⎨⎢⎥⎢⎥
-
⎣⎦⎣⎦

⎪=+

&
A=[-1 0 0;0 -2 0;0 0 -4];B=[2;2;1];C=[0 1 2]; ob=obsv(A ,C);%求能观判别阵
rank(ob)
[a2,b2,c2,t,k]=obsvf(A,B,C)
6 、极点配置算法
调用命令格式为 K=acker(A,B,P),或者 K=place(A,B,P)。

A,B 为系统系数矩阵,P 为配置极点,K 为反馈增益矩阵。

用下列编码对状态反馈前后的输出响应进行比较(附带文件 control.m)。

t = 0:0.01:5;
U = 0.025*ones(size(t));%幅值为 0.025 输入阶跃信号
[Y1,X1]=lsim(A,B,C,D,U,t);
[Y2,X2]=lsim(A-B*K,B,C,D,U,t);
figure(1)
plot(t,Y1); grid; title('反馈前');
对状态反馈前后的输出响应进行比较
7 、线性定常系统稳定判据
函数 lyap(A,Q)求如下式的李氏方程:AP+PA T =-Q
注意与教材的区别,应将给定 A 矩阵转置后再代入 lyap 函数。

例七:设系统的状态方程如下,其平衡状态在坐标原点处,试判断该系统的稳定性:
11220123x x x x ⎡⎤⎡⎤⎡⎤=⎢⎥⎢⎥⎢⎥--⎣⎦⎣⎦⎣⎦&&
解:A=[0 -2;1 -3];Q=[1 0;0 1];
lyap(A,Q)。

相关主题