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

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

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

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

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

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

实验报告

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

专业

自动化

姓名

学号

授课老师

预定时间

实验时间

实验台号

一、目的要求

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

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

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

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

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

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

2、原理简述

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软件

4、内容步骤、数据处理

题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