最优控制.doc_第1页
最优控制.doc_第2页
最优控制.doc_第3页
最优控制.doc_第4页
最优控制.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

登月艇软着陆过程Matlab仿真学号:姓名:指导老师:日期:2014年5月19日摘要:本文描述了登月艇简化模型,并对其登月过程做了简单介绍。因为这是控制登月艇软着陆和燃料最省问题,即是一个最优控制问题。所以对于该控制问题本文用极小值原理对登月艇控制推力进行求解。进而,依据登月艇模型和控制推力建立仿真模型。关键词:最优控制 登月艇 极小值原理 1. 引言最优控制问题可分为两类:静态最优化控制和动态最优化控制。最优控制就是要确定一组决策变量以使得某目标函数取极值。由于目标函数所依赖的决策变量不随时间变化,这类最优控制问题称为静态最优化控制或参数最优化;如果目标函数所依赖的决策变量是时间的函数,则称为动态最优化控制。所以,静态最优化控制是不考虑时间因素的最优控制,而动态最优控制是考虑时间因素的最优控制。它们的解决方法也不同。解静态最优化控制的方法有线性规划、非线性规划、爬山法和优选法等。解动态最优化控制的方法有变分法、极小值原理和动态规划等方法。本文介绍动态最优控制问题求解法极小值原理。2. 极小值原理极小值原理也叫极大值原理,没有区别是一个意思。当指标泛函中被积分函数取时,指标取极大值;当被积分函数取时,指标取极小值。二者是等价的。极大值原理是由庞特里亚金等人提出的。它是从变分法引申而来的,功能更强,应用范围更广,能解决变分法不能解决的问题。当控制作用不受限制或限制在一个开区间时,可以用古典变分法来求解最优控制问题。但是,当限制在闭区间上,或性能指标含绝对值形式时,变分法就不能胜任了。下面举个例子说明。假设一阶受控系统: 允许控制域为,初始状态,终端状态,求解控制系统从初始状态到终端状态并使指标最小的最优控制。如用变分法求解时,构造Hamilton函数:正则方程: 边界条件:控制方程:由伴随方程可求得伴随变量,为常数。代入控制方程,则得显然,这样求得不是最优控制。因为,状态不会转移。从直观上很容易看出,在允许控制范围内,当取时,系统运动速度最大,即应用初始条件可得:这就是在上述控制约束下,使系统转移到的最短时间。最优控制为。为什么用变分法求不出来呢?问题出在实际最优控制落在区间约束边界上。在边界上,它不再满足这个极值条件方程。在由些问题中,允许控制的集合甚至只是控制空间中一些离散的点,对这样的问题,古典变分法对函数,的可微性要求也很严格,特别是要求存在,在实际工程中往往不满足这个条件。例如在要求燃料最省的最优控制系统。性能指标泛函中的函数要取控制的绝对值,此时就不存在,变分法就不能求解。极小值原理放宽了对函数和的要求。具体的假设前提条件是:1) 诸如函数、存在并且连续。2) 控制为有界逐段连续函数。3) 当终端受限时,其约束及、是其定义上的连续函数,假定矩阵是满秩的,避免出现奇异情况。对于初始状态给定,终端状态自由的系统利用极小值原理,可叙述成如下定理:对于给定系统在初始状态为终端时间和终端状态自由的情况下,容许控制是分段连续的函数,其约束为 其中为闭区间。性能指标函数为 那么,成为使性能指标函数取极小值的最优控制的必要条件是存在一个向量伴随函数,使得1)和满足正则方程其中为2)和满足端点条件, 3)Hamilton函数对最优控制有极小值4)对最优控制,Hamilton函数的终值为3. 登月艇模型描述假设登月艇的高度为,垂直速度为,月球重力加速度为,发动机推力为,登月艇质量为,不带燃料的登月艇的质量为,初始燃料总质量为,初始高度为,初始速度为,则登月艇登陆模型如图1所示,并且其运动方程如下: (1)其中为推力比,是一个常数。若令状态变量为,则运动方程可以改写为: (2)初始条件为: (3)终端状态为: (4)发动机最大推力为,因此控制域为燃料最省的指标函数为可知这系统为定常非线性的,初始状态给定,终端受约束。其是一个终端受约束的最优控制问题。又知发动机推力取值是一个闭区间,因此不能用经典变分法求解。显然要用到极小值原理来求解系统最优控制方案。图1 登月艇登陆模型4. 极小值原理求解最优控制推力发动机推力应如何控制才能使登月艇在月球上实现软着陆,并且消耗的燃料最省。通过上节分析利用极小值原理求解最优控制推力。根据上面介绍的极小值原理,首先建立Hamilton函数: (5)伴随方程: (6)伴随变量满足的边界条件: (7)Hamilton函数改写为: (8)由极小值原理知,最优控制使H函数取极小值,因此有 这就是说发动机推力要么最大,要么为零,才有可能实现软着陆,同时使消耗燃料最省。这种控制为乒乓控制或开关控制。可以假设有三种情况:第一先 ,然后;第二先,然后;第三是经过多次转换。很显然,可以排除第二和第三中控制策略不能达到燃料最省。 因此,确定用第一种控制策略。该策略最优控制随时间变化曲线如图2所示,其中为发动机点火时间。 图2 最优控制随时间变化曲线根据图2 所示可以把登月艇登月过程在时间上分成两段,即时间之前和时间之后两段。在时间段,登月艇自由落体,所以状态方程的解为: (9)而在时间段,则状态方程的解为: (10)通过式(9)消去时间可以得到BC段的速度和高度的相轨迹方程: (11)通过式(10)和泰勒近似展开式:可得AO段速度和高度的相轨迹方程: (12)由(11)和(12)可以作出整个登陆过程的相轨迹图 ,如图3所示。图3 登月艇运动相轨迹曲线如图3 开关线与抛物线相交点C即为发动机点火时间点,所以最优控制规律为: 这是开环最优控制,总是在自由落体的抛物线与曲线AO相交时刻启动发动机,实行控制变量由边界到边界的转换,所以曲线AO常称为开关曲线或转换曲线。转换时刻由式(12)以及终端状态用Matlab可求得,再把它们代入式(10)中可求得终端时间。5. Simulink仿真根据登月艇系统运动方程、点火时间和终端时间可以搭建如下图4 登月艇软着陆仿真模型。 图4 登月艇软着陆仿真模型1)step模块为阶跃信号:为跳变时间即发动机点火时间,则由跳变到 。2)S-Function模块为登月艇运动模型。5.1 求解时间和终端时间首先给所有相关参数赋值:推力比,发动机最大推力,初始质量,不含燃料的质量,燃料初始质量,初始高度,初始速度,引力常数,月球质量,月球半径,月球重力加速度,最大推力持续时间。把这些参数代入(12)和终端状态用Matlab求得,进而终端时间。5.2 编写登月艇运动系统的S-FunctionS-Function即系统函数(System Function),是Simulink模块的一种计算机语言描述。它是The Math Works公司为了扩展Simulink的仿真能力而为用户提供的一种功能强大的编程机制,是用户借以创建Simlink模块所必需的、具有特殊调用格式的函数文件。它采用一种特殊的调用规则来实现用户与Simulink解算器的交互,从而允许用户将自己的模块嵌入到系统中,大大增强了Simulink仿真功能。若能成功使用S-Function,则可以在Simulink环境下对任意复杂的控制系统进行建模与仿真分析。其实S-Function由子函数mdlinitializesizes(初始化参数)、mdlderivatives(连续状态导数)、mdlupdate(离散状态)、mdloutputs(模块输出)、mdlgettimeofnextvarhit(下一个采样点)、mdlterminate(终止仿真过程)。本文登月艇为时不变非线性系统,不能用现有的仿真模块搭建,因本文用S-Function来自定义仿真模块即如图4所示。其代码如下:function sys,x0,str,ts = dengmoon_sfun(t,x,u,flag,h0,v0,m0,g,k)%h0,v0,m0,g,k分别为初始高度、初始速度、初始质量、月球重力加速度、推力比switch flag,case 0, sys,x0,str,ts=mdlInitializeSizes(h0,v0,m0);%驱动S-Function所描述模块初始化过程case 1, sys=mdlDerivatives(t,x,u,g,k);%计算连续状态导数case 3, sys=mdlOutputs(t,x,u);%计算输出case 9, sys=mdlTerminate(t,x,u); %终止仿真case 2,4, sys=;otherwise error(unhandled Flag = , num2str(flag);endfunction sys,x0,str,ts=mdlInitializeSizes(h0,v0,m0)sizes = simsizes;sizes.NumContStates = 3;%设置模块连续状态变量个数sizes.NumDiscStates = 0;%设置模块离散状态变量个数sizes.NumOutputs = 3;%设置模块输出变量个数sizes.NumInputs = 1;%设置模块输入变量个数sizes.DirFeedthrough = 0;%设置模块直通数目sizes.NumSampleTimes = 1;%设置模块采样周期个数sys = simsizes(sizes);%为系统赋初始化参数值x0 = h0,v0,m0;%模块状态初始化str = ;%保留字符串,总为空矩阵ts = 0 0;%采样周期矩阵初始化function sys=mdlDerivatives(t,x,u,g,k)%根据系统状态方程修改此处dx(1)=-x(2);dx(2)=g-u/x(3);dx(3)=-k*u;sys=dx;function sys=mdlOutputs(t,x,u)%根据输出方程修改此处sys = x; function sys=mdlTerminate(t,x,u)%终止仿真子函数sys=;S-Function 参数配置如下:其参数依次为h0,v0,m0,g,k5.3 仿真结果图5 登月艇高度h,速度v,质量m随时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论