最优控制实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称:现代控制工程与理论实验课题:最优控制
学号:12014001070
姓名:陈龙
授课老师:施心陵
最优控制
一、最优控制理论中心问题:
给定一个控制系统(已建立的被控对象的数学模型),选择一个容许的控制律,使被控对象按预定要求运行,并使给定的某一性能指标达到极小值(或极大值)
二、最优控制动态规划法
对离散型控制系统更为有效,而且得出的是综合控制函数。这种方法来源于多决策过程,并由贝尔曼首先提出,故称贝尔曼动态规划。
最优性原理:在一个多级决策问题中的最优决策具有这样的性质,不管初始级、初始状态和初始决策是什么,当把其中任何一级和状态做为初始级和初始状态时,余下的决策对此仍是最优决策
三、线性二次型性能指标的最优控制
用最大值原理求最优控制,求出的最优控制通常是时间的函数,这样的控制为开环控制当用开环控制时,在控制过程中不允许有任何干扰,这样才能使系统以最优状态运行。在实际问题中,干扰不可能没有,因此工程上总希望应用闭环控制,即控制函数表示成时间和状态的函数。
求解这样的问题一般来说是很困难的。但对一类线性的且指标是
二次型的动态系统,却得了完全的解决。不但理论比较完善,数学处理简单,而且在工际中又容易实现,因而在工程中有着广泛的应用。
一.实验目的
1.熟悉Matlab的仿真及运行环境;
2.掌握系统最优控制的设计方法;
3.验证最优控制的效果。
二.实验原理
对于一个给定的系统,实现系统的稳定有很多途径,所以我们需要一个评价的指标,使系统在该指标下达到最优。如果给定指标为线性二次型,那么我们就可以利用MATLAB快速的计算卡尔曼增益。
三.实验器材
PC机一台,Matlab仿真平台。
四.实验步骤
例题1 (P269)考虑液压激振系统简化后的传递函数方框图如下,其中K a为系统前馈增益,K f为系统反馈增益,w h为阻尼固有频率。(如图5-5所示)
将系统传递函数变为状态方程的形式如下:
,
确定二次型指标为: . 求最优控制使性能指标J最小。
首先将(t)代入二次型指标,得到
进行系统辨识后可以得到:ζ=0.2,w h=88, K a=2, 所以
A=,
B=,
C=
设计线性二次型最优控制器的关键是选择加权矩阵Q。一般来说,Q 越大,系统达到的稳态时间越短,当然,要实际的系统允许。
首先选取M=5,R=0.01,则,在MATLAB中运用care语句,求出卡尔曼增益K。
执行optimumcontron1.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;
[P,L,K]=care(A,B,Q,R)
得到结果
K = 22.3607 0.2100 0.0034
为了看到控制效果,我们进行simulink仿真,搭建平台如下图
图1.1
仿真结果如下:
图1.2 最优控制曲线(M=5)
图1.3 阶跃响应曲线(M=5)
由图看出,系统达到稳定所用时间要0.14秒,如果我们想更快使系统稳定可以增大M的值,我们另M=100,可以算出
K=100.0000 1.1530 0.0101
图1.4 最优控制曲线(M=100)
图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).希望该系统极点在s1=-0.5+j,s2=-0.5-j,s3=-3.
极点配置法设计过程
1.搭建原系统的simulink模型并观察其单位阶跃响应
图2.0 原系统simulink模型
图2.1 原系统单位阶跃响应
由原系统单位阶跃响应图可知原系统不稳定。
2.利用matlab计算系统的状态空间模型的标准型
>> a=[10];
>> b=[1 5 6 0];
>> [A B C D]=tf2ss(a,b)
A =
-5 -6 0
1 0 0
0 1 0
B =
1
C =
0 0 10
D =
3.系统能控性矩阵
>> uc=ctrb(A,B)
uc =
1 -5 19
0 1 -5
0 0 1
>> rank(uc)
ans =
3
所以系统完全能控。
4.系统能观性矩阵
>> vo=obsv(A,C)
vo =
0 0 10
0 10 0
10 0 0
>> rank(vo)
ans =
3
所以系统完全能观。所以可以用极点配置法设计状态反馈控制器。
5.求系统反馈矩阵
>> p=[-3 -0.5+j -0.5-j];
>> k=acker(A,B,p)
k =
-1.0000 -1.7500 3.7500
6. 搭建加入反馈控制器系统后的simulink模型