[最优控制实验报告..x]

时间:2021-10-24 16:23:11  来源:网友投稿

实验报告

课程名称:

现代控制工程与理论

实验课题:

最优控制

学 号:

12014001070

姓 名:

陈龙

授课老师:

施心陵

最优控制

一、 最优控制理论中心问题:

给定一个控制系统(已建立的被控对象的数学模型),选择一 个容许的控制律,使被控对象按预定要求运行,并使给定的某一性能 指标达到极小值(或极大值)

二、 最优控制动态规划法

对离散型控制系统更为有效,而且得出的是综合控制函数。这种 方法来源于多决策过程,并由贝尔曼首先提出,故称贝尔曼动态规划。

最优性原理:在一个多级决策问题中的最优决策具有这样的性 质,不管初始级、初始状态和初始决策是什么,当把其中任何一级和 状态做为初始级和初始状态时,余下的决策对此仍是最优决策

三、 线性二次型性能指标的最优控制

用最大值原理求最优控制,求出的最优控制通常是时间的函数, 这样的控制为开环控制当用开环控制时, 在控制过程中不允许有任何 干扰,这样才能使系统以最优状态运行。在实际问题中,干扰不可能 没有,因此工程上总希望应用闭环控制,即控制函数表示成时间和状 态的函数。

求解这样的问题一般来说是很困难的。

 但对一类线性的且指标是 二次型的动态系统,却得了完全的解决。不但理论比较完善,数学处 理简单,而且在工际中又容易实现,因而在工程中有着广泛的应用。

实验目的

熟悉Matlab的仿真及运行环境;

掌握系统最优控制的设计方法;

验证最优控制的效果。

实验原理

对于一个给定的系统,实现系统的稳定有很多途径,所以 我们需要一个评价的指标,使系统在该指标下达到最优。如果 给定指标为线性二次型,那么我们就可以利用 MATLAB快速的

计算卡尔曼增益。

实验器材

PC机一台,Matlab仿真平台。

实验步骤

例题1 (P269)考虑液压激振系统简化后的传递函数方框图如 下,其中Ka为系统前馈增益,Kf为系统反馈增益,Wh为阻尼固 有频率。(如图5-5所示)

将系统传递函数变为状态方程的形式如下:

确定二次型指标为:丨—「id」】.求最

2 u

优控制使性能指标J最小

首先将…l (t)代入二次型指标,得到

J = ^^]xT(t)CTMCx(t) + ur/?u(t)]dt

1 fr

=-I [zT(t)Qx(t) + nrfet(t)]cft

L丿o

进行系统辨识后可以得到:Z =0.2, Wh=88, Ka=2,所以

;15488]

;15488]

0

A= 0

_0

1 o

0 1 ,

—7744 — 35,2.

叩0 0]

设计线性二次型最优控制器的关键是选择加权矩阵 Q。一般来说,Q

越大,系统达到的稳态时间越短,当然,要实际的系统允许。

[5

0

01

首先选取M=5, R=0.01,贝SQ =

0

0

0

,在 MATLAB

lo

0

oJ

中运用care语句,求出卡尔曼增益K。

执行optimumcontronl.m 程序,代码如下:

A=[0 1 0;0 0 1;0 -7744 -35.2];

B=[0;0;15488];

C=[1 0 0];

Q=[5 0 0;0 0 0; 0 0 0]

R=0.01;

[PL,K]=care(A,B,Q,R)

得到结果

K = 22.3607 0.2100 0.0034

为了看到控制效果,我们进行 simuli nk仿真,搭建平台如下图

隸岂1 Gsinl Kj

图1.1

仿真结果如下:

孚自P P P昨逼田匣鈕榨

Tlnw OflM-

Tlnw OflM- q

图1.2最优控制曲线(M=5)& B Q

图1.2最优控制曲线(M=5)

& B Q倉炉越園冈I曰鼻垢

由图看出,系统达到稳定所用时间要 0.14秒,如果我们

K=1000.0101想更快使系统稳定可以增大 M的值,我们另M=100,可以算出

K=100.0000

1530 0.0101

图1.4最优控制曲线(M=100)

H^S2

图1.5阶跃响应曲线(M=100)

从图1.4,可以观察看到系统到0.1秒稳定,明显快于图1.2。

 但从图1.5又可以发现,系统的稳态定在 0.01,显然稳态误差 并没有得到改善。

可以通过增大参考输入的方法解决稳态误差的问题, MATLAB

提供函数rscale可以求出参考输入倍数 Nbar。

添加代码 Nbar二rscale(A,B,C,D,K)当 M=100 时求出

Nbar=100,在信号输入端添加放大器,得到实验结果如下:

我们发现系统稳定到了 1.00,稳态误差问题得到了解决

状态反馈设计

练习:极点配置法状态控制器和最优控制设计状态控制器效果分析 假设某系统的传递函数为匚三=10/^-+5- +6s )希望该系统极点 在 s仁-0.5+j,s2=-0.5-j,s3=-3.

极点配置法设计过程

搭建原系统的simulink模型并观察其单位阶跃响应

Gain

图2.0原系统simulink模型

14

12

10

8

6

2

0

2

G

10

8

Time offset: 0

i d

fl

图2.1原系统单位阶跃响应

由原系统单位阶跃响应图可知原系统不稳定

利用matlab计算系统的状态空间模型的标准型

>> a=[10];

>> b=[1 5 6 0];

>> [A B C D]=tf2ss(a,b)

-6-5

-6

图2.2加入反馈控制器后系统的 simulink模型

1 0 0

0 1 0

B =

1

0

0

C =

0 0 10

D =

0

系统能控性矩阵

>> uc=ctrb(A,B)

uc =

TOC \o "1-5" \h \z 1 -5 19

0 1 -5

0 0 1

>> rank(uc)

ans =

3

所以系统完全能控。

系统能观性矩阵

>> vo=obsv(A,C)

VO =

0 0 10

0 10 0

10 0 0

>> ran k(vo)

ans =

3

所以系统完全能观。所以可以用极点配置法设计状态反馈控制器。

求系统反馈矩阵

>> p=[-3 -0.5+j -0.5-j];

>> k=acker(A,B,p)

k =

-1.0000 -1.7500 3.7500

搭建加入反馈控制器系统后的simulink模型

Gain 5

%

图2.3加入反馈控制器后系统的单位阶跃响应

综上可知,希望极点在S平面的左半平面,所以由此求出的反馈 矩阵K能够使不稳定的系统变得稳定,达到了实验前的预期效果。

 最优控制法设计过程

1 ?将系统传递函数变为状态方程的形式如下:

r;=^ux(o)=o

确定二次型指标为:-■ . :求最优控

2 u

制使性能指标J最小。

首先将l?:(t)代入二次型指标,得到

| =-(r[xr(tXTMCx(t) +

2 u

12计算后可以得到:0 1A= 0 0.0 — 601

-5.

1

2

计算后可以得到:

0 1

A= 0 0

.0 — 6

0

1

-5.

B=H[,

C=

D=0

5 0

2.选取 M=100, R=1,则(2= 0 0

卫 0

0

0 ,在 MATLAB 中

0

运用care语句,求出卡尔曼增益

K和参考输入放大倍数Nbar

执行optimumcontronl.m 程序,代码如下:

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

B=[0;0;1];

C=[1 0 0]

Q二[100 0 0;0 0 0; 0 0 0]

R=1

N二rscale(A,B,C,0,K)

[PL,K]=care(A,B,Q,R)

得到结果:K=9.0499 7.5131 1.1433 Nbar =101.0000

simulink仿真结果如下:

图2.4当M=5时,两种控制器响应曲线(红色为最优控制)

改变M的值我们可以得到更多信息

图2.5当M=50时,两种控制器响应曲线(红色为最优控制)

图2.7当M=100时,两种控制器响应曲线(红色为最优控制)

图2.6当M=200时 两种控制器效果比较

EJl ScopT

曲團蠱昭医@ A

Tme oltwl: 0-

图2.7当M=500时,两种控制器效果比较

图2.8当M=10000时,两种控制效果比较

总结

五.实验总结

通过这次任务,基本了解了 matlab的使用方法,对最优控制有 了更加深刻的认识,并得出一下结论:

最优控制器只是给定指标下的最优,实际效果不一定好 于极点配置法设计的控制器。

比较图2.4-2.8我们可以发现加权矩阵 Q的选取会直接影响 到最优控制器的稳定时间,一般来说,Q越大,系统达到的稳态时间 越短,然而,Q过大 会产生严重振铃现象。因而设计线性二次型最 优控制器时加权矩阵Q的选取非常重要,必须根据实际情况确定。

推荐访问:实验报告 最优 实验 控制