最优控制实验报告

上传人:206****923 文档编号:91103084 上传时间:2019-06-22 格式:DOC 页数:17 大小:2.76MB
返回 下载 相关 举报
最优控制实验报告_第1页
第1页 / 共17页
最优控制实验报告_第2页
第2页 / 共17页
最优控制实验报告_第3页
第3页 / 共17页
最优控制实验报告_第4页
第4页 / 共17页
最优控制实验报告_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《最优控制实验报告》由会员分享,可在线阅读,更多相关《最优控制实验报告(17页珍藏版)》请在金锄头文库上搜索。

1、 实 验 报 告课程名称: 现代控制工程与理论实验课题: 最优控制 学 号: 12014001070 姓 名: 陈龙 授课老师: 施心陵 最优控制一、最优控制理论中心问题: 给定一个控制系统(已建立的被控对象的数学模型),选择一个容许的控制律,使被控对象按预定要求运行,并使给定的某一性能指标达到极小值(或极大值)二、最优控制动态规划法对离散型控制系统更为有效,而且得出的是综合控制函数。这种方法来源于多决策过程,并由贝尔曼首先提出,故称贝尔曼动态规划。最优性原理:在一个多级决策问题中的最优决策具有这样的性质,不管初始级、初始状态和初始决策是什么,当把其中任何一级和状态做为初始级和初始状态时,余下

2、的决策对此仍是最优决策三、线性二次型性能指标的最优控制用最大值原理求最优控制,求出的最优控制通常是时间的函数,这样的控制为开环控制当用开环控制时,在控制过程中不允许有任何干扰,这样才能使系统以最优状态运行。在实际问题中,干扰不可能没有,因此工程上总希望应用闭环控制,即控制函数表示成时间和状态的函数。求解这样的问题一般来说是很困难的。但对一类线性的且指标是二次型的动态系统,却得了完全的解决。不但理论比较完善,数学处理简单,而且在工际中又容易实现,因而在工程中有着广泛的应用。一 实验目的1. 熟悉Matlab的仿真及运行环境;2. 掌握系统最优控制的设计方法;3. 验证最优控制的效果。二 实验原理

3、对于一个给定的系统,实现系统的稳定有很多途径,所以我们需要一个评价的指标,使系统在该指标下达到最优。如果给定指标为线性二次型,那么我们就可以利用MATLAB快速的计算卡尔曼增益。三 实验器材PC机一台,Matlab仿真平台。四 实验步骤例题1 (P269)考虑液压激振系统简化后的传递函数方框图如下,其中Ka为系统前馈增益,Kf为系统反馈增益,wh为阻尼固有频率。(如图5-5所示) 将系统传递函数变为状态方程的形式如下: x=Ax+Buy=Cx,x0=0确定二次型指标为: J=120TyTtMyt+uTRu(t)dt. 求最优控制使性能指标J最小。首先将y=Cx(t)代入二次型指标,得到 J=1

4、20TxTtCTMCxt+uTRu(t)dt=120TxT(t)Qxt+uTRu(t)dt进行系统辨识后可以得到:=0.2,wh=88, Ka=2, 所以A=0 1 00 0 1 0 -7744 -35.2,B=0 ; 0 ; 15488, C=1 0 0设计线性二次型最优控制器的关键是选择加权矩阵Q。一般来说,Q越大,系统达到的稳态时间越短,当然,要实际的系统允许。首先选取M=5,R=0.01,则Q=5 0 00 0 0 0 0 0,在MATLAB中运用care语句,求出卡尔曼增益K。 执行optimumcontron1.m程序,代码如下:A=0 1 0;0 0 1;0 -7744 -35.

5、2; B=0;0;15488; C=1 0 0;Q=5 0 0;0 0 0; 0 0 0R=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,可

6、以观察看到系统到0.1秒稳定,明显快于图1.2。但从图1.5又可以发现,系统的稳态定在0.01,显然稳态误差并没有得到改善。可以通过增大参考输入的方法解决稳态误差的问题,MATLAB提供函数rscale可以求出参考输入倍数Nbar。添加代码Nbar=rscale(A,B,C,D,K),当M=100时求出Nbar=100,在信号输入端添加放大器,得到实验结果如下:我们发现系统稳定到了1.00,稳态误差问题得到了解决。状态反馈设计练习:极点配置法状态控制器和最优控制设计状态控制器效果分析假设某系统的传递函数为Y(s)U(s)=10/(s3+5s2+6s).希望该系统极点在s1=-0.5+j,s2=

7、-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 0B = 1 0 0C = 0 0 10D = 03. 系统能控性矩阵 uc=ctrb(A,B)uc = 1 -5 19 0 1 -5 0 0 1 rank(uc)ans = 3 所以系统完全能控。4. 系统能观性矩阵 vo=

8、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.75006. 搭建加入反馈控制器系统后的simulink模型图2.2 加入反馈控制器后系统的simulink模型图2.3加入反馈控制器后系统的单位阶跃响应综上可知,希望极点在S平面的左半平面,所以由此求出的反馈矩阵K能够使不稳定的系统变得稳定,达到了实验前的预期效果。最优控制法设计过程1将系统传递函数变为状

9、态方程的形式如下: x=Ax+Buy=Cx,x0=0确定二次型指标为: J=120TyTtMyt+uTRu(t)dt. 求最优控制使性能指标J最小。首先将y=Cx(t)代入二次型指标,得到 J=120TxTtCTMCxt+uTRu(t)dt=120TxT(t)Qxt+uTRu(t)dt计算后可以得到:A=0 1 00 0 1 0 -6 -5,B=0 ; 0 ; 10, C=1 0 0, D=02.选取M=100,R=1,则Q=5 0 00 0 0 0 0 0,在MATLAB中运用care语句,求出卡尔曼增益K和参考输入放大倍数Nbar 执行optimumcontron1.m程序,代码如下:A=

10、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 0R=1N=rscale(A,B,C,0,K)P,L,K=care(A,B,Q,R)得到结果:K= 9.0499 7.5131 1.1433 Nbar =101.0000simulink仿真结果如下:图2.4 当M=5时,两种控制器响应曲线(红色为最优控制)改变M的值我们可以得到更多信息图2.5 当M=50时,两种控制器响应曲线(红色为最优控制) 图2.7 当M=100时,两种控制器响应曲线(红色为最优控制)改 图2.6当M=200时 两种控制器效果比较图2.7 当M=500时,两种控制器效果比较图2.8 当M=10000时,两种控制效果比较总结:五 实验总结通过这次任务,基本了解了matlab的使用方法,对最优控制有了更加深刻的认识,并得出一下结论:1.最优控制器只是给定指标下的最优,实际效果不一定好于极点配置法设计的控制器。2.比较图2.4-2.8我们可以发现加权矩阵Q的选取会直接影响到最优控制器的稳定时间,一般来说,Q越大,系统达到的稳态时间越短,然而,Q过大 会产生严重振铃现象。因而设计线性二次型最优控制器时加权矩阵Q的选取非常重要,必须根据实际情况确定。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号