利用MATLAB实现极点配置设计状态观测器现代控制.docx

上传人:b****8 文档编号:10112358 上传时间:2023-02-08 格式:DOCX 页数:12 大小:47.37KB
下载 相关 举报
利用MATLAB实现极点配置设计状态观测器现代控制.docx_第1页
第1页 / 共12页
利用MATLAB实现极点配置设计状态观测器现代控制.docx_第2页
第2页 / 共12页
利用MATLAB实现极点配置设计状态观测器现代控制.docx_第3页
第3页 / 共12页
利用MATLAB实现极点配置设计状态观测器现代控制.docx_第4页
第4页 / 共12页
利用MATLAB实现极点配置设计状态观测器现代控制.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

利用MATLAB实现极点配置设计状态观测器现代控制.docx

《利用MATLAB实现极点配置设计状态观测器现代控制.docx》由会员分享,可在线阅读,更多相关《利用MATLAB实现极点配置设计状态观测器现代控制.docx(12页珍藏版)》请在冰豆网上搜索。

利用MATLAB实现极点配置设计状态观测器现代控制.docx

利用MATLAB实现极点配置设计状态观测器现代控制

实验报告

实验名称利用MATLAB实现极点配置、设计状态观测器

专业

自动化

学号

授课教师

预定时间

实验时间

实验台号

一、目的要求

1、掌握状态反应和输出反应的概念及性质。

2、掌握利用状态反应进展极点配置的方法。

学会用MATLAB求解状态反应矩阵。

3、掌握状态观测器的设计方法。

学会用MATLAB设计状态观测器。

4、熟悉别离定理,学会设计带有状态观测器的状态反应系统。

二、原理简述

1、状态反应和输出反应

设线性定常系统的状态空间表达式为

如果采用状态反应控制规律u=r-Kx,其中r是参考输入,那么状态反应闭环系统的传递函数为:

2、极点配置

如果SISO线性定常系统完全能控,那么可通过适当的状态反应,将闭环系统极点配置到任意期望的位置。

MATLAB提供的函数acker()是用Ackermann公式求解状态反应阵K。

该函数的调用格

式为

K=acker(A,B,P)

其中A和B分别为系统矩阵和输入矩阵。

P是期望极点构成的向量。

MATLAB提供的函数place()也可求出状态反应阵K。

该函数的调用格式为

K=place(A,B,P)

函数place()还适用于多变量系统极点配置,但不适用含有多重期望极点的问题。

函数acker()不适用于多变量系统极点配置问题,但适用于含有多重期望极点问题。

三、仪器设备

PC计算机,MATLAB软件

四、容步骤、数据处理

题5-1 某系统状态方程如下

理想闭环系统的极点为

,试

〔1〕采用直接计算法进展闭环系统极点配置;

〔2〕采用Ackermann公式计算法进展闭环系统极点配置;

〔3〕采用调用place函数法进展闭环系统极点配置。

>>A=[010;001;-4-3-2];

B=[1;3;6];

C=[100];

D=0;

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

[Q,D]=eig(A)

结果:

Q=

0.29950.3197-0.0731i0.3197+0.0731i

-0.49440.0573+0.5074i0.0573-0.5074i

0.8160-0.7948-0.7948

D=

-1.650600

0-0.1747+1.5469i0

00-0.1747-1.5469i

那么矩阵A的特征根为:

-1.6506,-0.1747+1.5469i,-0.1747-1.5469i

程序:

>>A=[010;001;-4-3-2];

B=[1;3;-6];

C=[100];

D=0;

p=[-1-2-3];

k=acker(A,B,p)

结果:

k=1.48090.7481-0.0458

验证:

>>A=[010;001;-4-3-2];

B=[1;3;6];

C=[100];

D=0;

k=[0.50530.70520.2299];

A1=A-B*k;

sys=ss(A1,B,C,D);

G1=zpk(sys)

结果:

Zero/pole/gain:

(s^2+5s+15)

-------------------------

(s+1)(s+1.999)(s+3.001)

那么其极点为-1,-2,-3

(2)

程序:

>>A=[010;001;-4-3-2];

B=[1;3;-6];

C=[100];

D=0;

p=[-1-2-3];

k=place(A,B,p)

结果:

k=1.48090.7481-0.0458

验证:

程序:

>>A=[010;001;-4-3-2];

B=[1;3;-6];

C=[100];

D=0;

p=[-1-2-3];

k=place(A,B,p);

A1=A-B*k;

sys=ss(A1,B,C,D);

G1=zpk(sys)

结果:

Zero/pole/gain:

(s+4.303)(s+0.6972)

--------------------

(s+3)(s+2)(s+1)

那么其极点为-1,-2,-3

题5-2某控制系统的状态方程描述如下:

y=[172424]x

通过状态反应使系统的闭环极点配置在[-30-1.2

]位置上,求出状态反应矩阵K,验证闭环极点,并绘制闭环系统的阶跃响应曲线进展比照。

程序>>A=[-10-35-50-24;1000;0100;0010];

B=[1;0;0;0];

C=[172424];

D=0;

p=[-30-1.2-2.4+4i-2.4-4i];

k=place(A,B,p)

结果:

k=26.0000172.5200801.7120759.3600

验证:

程序:

>>A=[-10-35-50-24;1000;0100;0010];

B=[1;0;0;0];

C=[172424];

D=0;

p=[-30-1.2-2.4+4i-2.4-4i];

k=place(A,B,p);

A1=A-B*k;

sys=ss(A1,B,C,D);

G1=zpk(sys)

结果:

Zero/pole/gain:

(s+1.539)(s^2+5.461s+15.6)

------------------------------------

(s+30)(s+1.2)(s^2+4.8s+21.76)

>>A=[-10-35-50-24;1000;0100;0010];

B=[1;0;0;0];

C=[172424];

D=0;

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

p=[-30-1.2-2.4+4i-2.4-4i];

k=place(A,B,p);

A1=A-B*k;

G1=ss(A1,B,C,D);

t=0:

0.5:

20;

u=ones(size(t));

y2=lsim(G1,u,t);

y1=lsim(G,u,t);

plot(t,y1,':

',t,y2,'-')

蓝色为配置前,绿色为配置后

题5-3 某系统状态空间描述如下

设计全维状态观测器,要求状态观测器的极点为

程序>>A=[010;001;-4-3-2];

B=[1;3;-6]';

C=[100];

D=0;

p=[-1-2-3];

L=(acker(A',C',p))'

结果:

L=4

0

-10

题5-4系统

y=[660]x

(1)求系统的零点,极点和传递函数,并判断系统的能控性和能观测性。

(2)分别选取K=[030].K=[132],K=[031]为状态反应矩阵,求解闭环系统的零点,极点和传递函数,并判断系统的能控性和能观测性。

它们是否发生改变?

为什么?

〔1〕

程序

>>A=[010;001;-12-16-7];

B=[0;0;1];

C=[660];

D=0;

sys=ss(A,B,C,D);

G=zpk(sys)

结果:

Zero/pole/gain:

6(s+1)

-------------

(s+2)^2(s+3)

那么系统的零点为:

-1

那么系统的极点为:

-2,-2,-3

程序

>>A=[010;001;-12-16-7];

B=[0;0;1];

C=[660];

D=0;

Uc=ctrb(A,B);rank(Uc)

结果:

ans=3

那么系统能控

程序:

>>A=[010;001;-12-16-7];

B=[0;0;1];

C=[660];

D=0;

Vo=obsv(A,C);

rank(Vo)

结果:

ans=3

那么系统能观

〔2〕

当k=[030]时:

程序>>A=[010;001;-12-16-7];

B=[0;0;1];

C=[660];

D=0;

k=[030];

A1=A-B*k;

sys=ss(A1,B,C,D);

G=zpk(sys)

结果:

Zero/pole/gain:

6(s+1)

---------------------------------

(s+0.8821)(s^2+6.118s+13.6)

那么零点为-1

>>pole(G)

ans=

-0.8821

-3.0589+2.0606i

-3.0589-2.0606i

>>Uc=ctrb(A,B);rank(Uc)

ans=

3

>>Vo=obsv(A,C);

rank(Vo)

ans=

3

当k=[132]时:

程序>>A=[010;001;-12-16-7];

B=[0;0;1];

C=[660];

D=0;

k=[132];

A1=A-B*k;

sys=ss(A1,B,C,D);

G=zpk(sys)

结果:

Zero/pole/gain:

6(s+1)

---------------------------------

(s+6.319)(s^2+2.681s+2.057)

那么闭环系统的零点为:

-1

>>pole(G)

ans=

-6.3186

-1.3407+0.5099i

-1.3407-0.5099i

>>Uc=ctrb(A,B);rank(Uc)

ans=

3

那么系统具有能控性

>>Vo=obsv(A,C);

rank(Vo)

ans=

3

那么系统具有能观测性

当k=[013]时:

>>A=[010;001;-12-16-7];

B=[0;0;1];

C=[660];

D=0;

k=[013];

A1=A-B*k;

sys=ss(A1,B,C,D);

G=zpk(sys)

Zero/pole/gain:

6(s+1)

-------------------------------

(s+8.08)(s^2+1.92s+1.485)

>>Uc=ctrb(A,B);rank(Uc)

ans=

3

那么系统具有能控性

>>Vo=obsv(A,C);

rank(Vo)

ans=

3

那么系统具有能观测性

分析:

系统完全能控那么可以任意配置极点,配置极点不改变系统的能控性,但可能改变系统的能观测性。

不存在零极相消的情况下,那么不改变系统的能观测性。

五、分析讨论

通过本次试验,掌握了状态反应和输出反应的概念及性质。

掌握了利用状态反应进展极点配置的方法。

学会了用MATLAB求解状态反应矩阵。

掌握了状态观测器的设计方法。

学会了用MATLAB设计状态观测器。

熟悉了别离定理,学会了设计简单的带有状态观测器的状态反应系统。

原本通过平常的上课,对于一些概念我还是没有完全掌握,比方极点配置,状态反应,输出反应。

通过实验的验证,翻阅书籍,使我对于书本上的概念产生了更深的理解,学会了分析验证书本上的定理而不是盲目学习。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 法语学习

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

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