[最优控制实验报告..x]
实验报告
课程名称:
现代控制工程与理论
实验课题:
最优控制
学 号:
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的选取非常重要,必须根据实际情况确定。
相关热词搜索: 实验报告 最优 实验 控制上一篇:2021年经典励志标语集锦89条
下一篇:2021年通用励志标语集锦83条