模型预测控制

模型预测控制

  • 对于MPC的应用,建模是很关键的部分

  • 文献[33]分析了预测制导方法在火星着陆系统的应用,安全着陆要求 着陆器能够达到期望的终端状态。
    [33]Analysis of predictive entry guidance for a Mars lander under high model uncertainties

  • *预测制导的基本原理可概括为:

首先,根据飞行器当前飞行状态,快速预测再入轨迹;然后,比较预测信息与期望值,根据误差信息修正制导参数, 使飞行器飞向预定目标。预测校正制导的基本过程为:预先存储目标落点或目标 轨道特征参数,利用导航系统实时测量实际飞行参数,预报落点,与存储目标位 置进行比较,获得落点误差;根据误差信号计算制导指令,经姿态系统调整姿态, 飞行预定目标。预测制导的最大优点是不用预先存储跟踪轨迹,可以根据当前状 态和终端条件在线生成轨迹。

  • MPC定义和优缺点

也被 称为滚动 时域控制(Receding Herizon Control, RHC),是一种这样的控制策略,在每个采样时刻,把当前的状态作为系统的初始状态,然后求解一个有限时域最优控制问题,获得当前的控制作用;对优化产生的一些列控制序列,仅采用当前时刻的控制量作用于系统,产生下一时刻的状态量。传统的控制作用采用离线控制律,而 MPC 是一种在线控制作用。

MPC 是一种反馈控制策略,在 80 年代开始流行起来。利用 RHC 求解过程为
[52]:我们在每一步求解一个优化问题,在一个有限时段内求出系统的控制作用,
然后在控制作用实施上仅利用第一个控制作用;到下一个采样时刻,我们重复求
解过程,求解一个新的优化问题,时域向前推移一步。基于每一步的可测量及数
据,优化问题考虑未来量的估计。这样控制策略包含了反馈,利用实时测量量确
定控制作用。

模型预测控制是一种非线性最优控制策略,它的突出优点是能够有效处理控
制量和状态量硬约束的能力,还能处理多种类型的目标函数。利用 MPC,系统能
够在接近其物理限制的边界上控制,获得优于线性控制的效果。MPC 已经被广泛
成功应用于许多生产实践中,主要包括工业和化学处理过程[53]、供应链管理[54]、
财经中的随机控制[55]、收入管理中[56]等。

模型预测控制的最大缺点是在每一步必须求解一个优化问题,因此计算量大,
不利于快时变系统的在线实施。使用传统的数值优化方法求解 MPC 问题所用的时
间要比求解线性控制器的控制作用长得多。这就意味着 MPC 的应用被局限于采样
时间以秒、分钟和小时计的大采样周期慢时变系统。因此,对于快时变实时应用
系统,许多控制工程人员不考虑 MPC 方法.

  • MPC 基本原理

首先指出,模型预测控制以计算机为实现手段,因此 MPC 采用采样(或离散)
控制算法。通常来说,不管该算法有何种表现方式,都遵循以下基本原理[58]。
(1) 预测模型 MPC 是以模型为基础的控制算法,此模型称作预测模型。
预测模型的作用是利用对象未来输入和历史信息预测未来输出。预测模型的形式
可以是状态方程、传递函数,甚至非参数模型阶跃响应和脉冲响应可作为线性稳
定对象的预测模型。
(2) 反馈校正 MPC 是闭环控制算法,经过优化作用确定一系列未来控制
作用,考虑环境干扰、模型失陪会导致控制作用对期望状态的较大偏差,一般不
将控制作用全部实施,只利用本时刻的控制作用。到下一采样时刻,通过检测对
象实际输出修正基于模型的预测作用,之后开始新时刻的优化,反馈校正都把优
化作用建立在系统实际基础上。因此,MPC 中优化不仅基于模型,也利用反馈信
息,因而构成了闭环优化。
(3) 滚动优化 MPC 是一种通过计算某一性能指标的极值求取未来控制作
用的优化控制算法。性能指标的选取通常取为在未来采样点上跟踪某一期望轨迹
方差最小:
$$minJ=\sum_{i=1}{p}[x(k+i|k)]{T}Q[x(k+i|k)-x_r(k+i|k)]$$
其中,x 表示优化值,xr 表示参考轨迹,Q 表示权系数,表示对跟踪误差的抑制,
P 表示优化时域,k 表示第 k 个采样时刻。MPC 中的优化形式与一般的离散优化相
比有很大的不同,不同点主要在于 MPC 优化方式是一种有限时域滚动形式的优化。
在采样时刻 k,性能指标时间区域只涉及到从 k 时刻到未来(k+P) 的有限时刻,到
下一采样时刻(k+1) ,优化时段随之向前滚动,如图 1-1。所以,MPC 不采用全局
的性能指标,在每个采样时刻对应一个优化性能指标。不同时刻优化性能指标具

有相同的形式,但包含不同的时间区域。MPC 中优化是不断反复在线进行,传统
最优控制优化是一次离线进行,这是两者的最大不同点。
从上可以看出,MPC 鲜明特征是基于模型、滚动优化且包含反馈校正的计算
机控制算法。这种控制算法能顾及到模型误差、环境干扰不确定影响并及时校正,
比一次优化更能适应实际过程,有更强鲁棒性。


文献check

摘要

  • 开发和比较了几种用于小行星软着陆的自主控制策略
  • 这些策略利用预测和车载优化?
  • 非线性模型预测控制器可以直接处理航天器动力学和约束的非线性模型?
  • 基于线性化模型的凸模型预测控制器(CMPC)和与内环反馈控制器( inner loop feedback controller)组合的扩展命令调速器(ECG)

CMPC+ inner loop feedback controller=ECG

  • 使用输入观测器( input observer)来补偿估计和实际重力模型之间的误差。
  • 将分析过程分为:环绕阶段和着陆阶段?
  • 显示了所有三种控制方案的成功着陆

ECG CMPC NMPC

发展背景

  • Ruoyan研究了使用模型预测控制器(MPC)跟踪这种参考轨迹的可行性
  • 如果重力场和小行星的形状不为人所知, 开环轨迹可能无法保证航天器的安全有效的轨迹
  • 用恒重密度椭球近似作为重力模型,用线性二次调节器(LQR)来稳定目标点,扩展命令控制器(ECG),用于通过改变对LQR的引用进行约束执行, 以及输入观测器用于模型误差干扰的??。使用旋转超平面的方法来加强碰撞避免约束.

Model predictive control and Extended Command Governor for improving robustness of relative motion guidance and control

  • 由于超平面阻挡了航天器的潜在路径,这种方法可能导致次优轨迹

本文内容

  • 三种不同的预测控制策略在航天器自主降落在爱神号的问题上的应用
  • 控制器是一个扩展命令调速器(ECG),用于监控内环(iner loop)LQR控制器, 凸模型预测控制(CMPC)方法, 它使用线性模型, 和非线性模型预测控制器(NMPC)(沿用文献9的做法)

[9]Constrained Control for Soft Landing on an Asteroid with Gravity Model Uncertainty

  • CMPC和NMPC的约束重新设计,所有这三种技术都利用输入观测来补偿重力模型误差。这与其他没有明确考虑不确定的扰动力的约束邻近操作相反?(whats meaning?)

<font color=red>建模</font>

  • 斯托克斯系数是从NEAR-Shoemaker任务报告的测量获得的

<font color=red>着陆任务设计</font>

环绕飞行段

  • 为了实现降落在小行星表面的目标区域的目标,我们力求将航天器稳定在一个点上,在小行星表面上方五米$r_L$
  • 为了避免与表面碰撞,引入了包围小行星的排除约束椭圆体:
    $$c_{sc}=1-(\frac{x(t)}{a_s})2+(\frac{y(t)}{b_s})2+(\frac{z(t)}{c_s})^2$$
    该非凸碰撞避免约束由非线性MPC控制器直接处理,并且通过在ECG和CMPC方法中使用旋转超平面方法来凸起
  • 循环阶段的目标点是$r_e$,其位于目标点$r_L$正上方的安全椭圆上方一百米处,在着陆点表面法线与安全椭圆相交的点处.
  • CG和CMPC的旋转超平面约束(设置旋转超平面的目的?)(一系列的先转超平面的公式)(文献【12】这样做过,看了下没什么收获)

着陆段

  • 到达$d_switch$,从循环阶段结束。然后航天器控制器切换到着陆阶段,新的目标变成$r_L$
  • 为了防止在着陆时碰撞,航天器被限制留在预定义的抛物面内,CMPC和NMPC直接用非线性约束
  • 在ECG情况下,着陆抛物线由四边形金字塔近似,以便用与二次规划求解器兼容的线性约束来替代非线性约束
  • $F_o=O_{na}F_a$(省略抛物面约束具体公式)
  • 金字塔面约束:$c_{no}=-n\cdot(r-r_T)\leq0$

<font color=red>控制器设计</font>

抵消模型误差干扰的输入观测器

文献[20]Disturbance canceling control based on simple input observers with constraint enforcement for aerospace applications

ECG

problem

  • 二次规划:最经典的优化控制器?

  • input observer?输入观测器??

  • F Gravitational force exerted by the aster
    oid
    G Gravitational potential of the asteroid?区别?

  • 环绕阶段和着陆阶段

  • convex and nonlinear programming solvers 凸非线性规划求解器?

  • through the use of light curve analysis?光线曲线分析

  • 所受的引力和重力梯度是两回事?一个是力另一个是力矩?year

  • potential?

  • Rotating hyperplane constraint旋转超平面约束?
  • $j^{*}$is the horizon length是地平面长度
  • 真值,估计值,标称值,测量值?


备注

  • a,b,c Constant density ellipsoid model semi-major axes 一个,b,c恒定椭圆模型半长轴。
  • $C_{l,m} ,S_{l,m}$ Stokes Coefficients斯托克斯系数
  • 超平面:

no

  • 超调?

在控制器调节过程中超过期望的段,超调量越大,稳定时间越短。

<font color=red>fuck</font>

mpc简单解释

   首先,模型预测控制不仅仅是追求“控制”,而且追求“优化控制”。传统PID控制器的“控制”是没问题的,但它是否能够用最节约的方式进行控制,则得打上一个问号。最经典的优化控制器是二次规划控制器。

   模型预测控制(MPC)是一种致力于将更长时间跨度、甚至于无穷时间的最优化控制问题,分解为若干个更短时间跨度,或者有限时间跨度的最优化控制问题,并且在一定程度上仍然追求最优解(注意,MPC的最优解很可能并非全局最优解,当MPC的最优解是全局最优解时,它的复杂度与原问题相等。MPC的核心目的在于降低问题的复杂度)。

先区分一下MPC和动态规划。它与动态规划(DP)的区别在于:DP所解决的问题,可以被划分为与全局无关的若干个小问题。而MPC划分问题时,必须解决的一个问题是:各个小问题与全局之间的关联是什么。

   举两个简单的例子:

   动态规划问题:设想有一张地图为正方形点阵(0,0)到(2,2),可选路径平行于坐标轴。每条路径的“代价”不同(联系实际生活,就是可能从(0,0)走到(0,1)是国道,从(0,0)走到(1,0)是翻山越岭一样)。要求从(0,0)走到(2,2),代价最低的路径。

动态规划的思想是这样的:从(0,0)走到(2,2),有两种走法:要么是从(1,2)走到(2,2),付出代价5;要么是从(2,1)走到(2,2),付出代价3。那么我们现在先分析问题:从(0,0)走到(2,1)至少要付出多少代价$x_1$;而从(0,0)走到(1,2)最少要付出多少代价$x_2$。这里我们打个比方,如果我们求出$x_1=7;x_2=10$。则我们可以知道,我们应该选择从(0,0)走到(2,1),再从(2,1)走到(2,2)。根据这种分析,我们把原本的一个大问题拆分成了无论它之外的问题怎么变,它本身不会变的两个小问题。(亦即,即使你把问题改成了从(0,0)走到(3,3)的最小代价,从(0,0)走到(2,1)的最小代价也仍然不会变)。如此不断拆分,再重新组合,就最终解决了从(0,0)走到(2,2)的最小代价这个大问题。

   而MPC问题是什么呢?MPC问题是类似于这样的问题:假设你有一个任务量N,我要你在100天内把它完成掉。你每天的最大作业量是n。同时,我和你之间存在这样的一个矛盾:你觉得每天干得越少越轻松,尽可能地想偷懒;而我看到任务多被拖着一天我就蛋疼一天。于是有了最优解的判定式:$C=\sum_{m=1}^{100}(x_m^2+X_m^2)$ 。其中$x_m\in[0,n],X_m=X_{m-1}-x_m,X_{0}=N,X_{100}==0$ 。对于这个问题,一下子要解决一百天内的工作计划,怎么办?感觉很头疼吧?

   MPC提出了一个解决方法:我们每天重新做一次“从今天开始的十天计划”:$$C_{10}=\sum_{m=1}^{10}(x_{m_0+m}^2+X_{m_0+m}^2)+P。其中,P=f(X_{m_0+10})$$ 。这里的P是个什么龟呢?在理想状况下,P要可以反映当十天计划结束后,剩下的工作量,至少需要多少代价才可以完成。在理想状况下,MPC问题与原问题完全等价,转换了跟没转换似的。解决难度一点点都没有降低。换言之,如果你求得出理想的P,那么你也就求得出原问题的最优解。既然你求得出原问题的最优解,那你还要MPC顶个屁用?使用MPC就是为了绕开求原问题的最优解这件事的。

   那么,既然使用了MPC,我们就不打算去求原问题的理想的P函数$P_{opt}$ ,我们咋办嘞?我们自己随便取个P函数。你可能要问了,这都可以?可以,不过有条件。你所求得的P函数要确定大于理想P函数。即

条件1:$P\geq P_{opt}$。

   为什么?因为如果小于了,就有可能达不到,或者在最后的几天不得不付出惨痛的代价以求达到最终要求(第一百天的时候保证完成任务)。形象化地说,$P<P_{opt}$其实就是“低估剩余作业量”。 那么只要大于理想P函数就没问题吗?哎,还真是这样。最偷懒的一种确保稳定性(确保可以完成任务)的MPC算法是:只要剩余任务量不为0,P就等于无穷大(咦?这都可以?)。这种策略得出的方法是什么呢?就是你每次制定十天计划的时候,都是以“在最偷懒的状态下十天内完成任务”为目标去干的。不过你每天都会变一次心意:昨天是下定决心要在从昨天开始的接下来十天内,以最偷懒的方式完成任务;而今天则是下定决心从今天开始的接下来十天。直到最后十天,已经拖得没法再拖了,你才切实地完成“最后十天计划”。

   但是这种“拖”策略和之前的“拖”策略是不一样的。我们做个很简单的假设好了(虽然用这种方法求出来的答案并不是这样的),如果你每次做十天计划的时候,都规定今天要完成剩余任务量的1/10的话,那么最后10天剩余的任务量比起刚开始每天完成的任务量而言,对你来讲已经是微不足道的了。有人会说,如果10天内根本完不成任务怎么办?那么假设你最快20天能完成任务吧,那就每天重做一次t天计划,t大于等于20。

   但是,这种策略其实是很不值的:因为它会让你刚开始每天累死累活,到后期却闲得没事干,并不是一种良好的策略。所以把P设作无穷大,可以说是一种在做计划的时候偷懒,在执行的时候受罪的方案。

   为了让自己不那么受罪,做计划的时候也要适当地下功夫的。MPC的目标是:求出满足条件1的最小的P。而神奇的是,在满足一定条件的时候,可以通过将C_{10} 的格式写得和原有的C 不一样,来使得MPC问题不需要P,也仍然能够反映全局特性。在这个方面,更进一步的分析请参看鄙人拙答:模型预测控制(MPC)渐进稳定性问题? - 知乎用户的回答 - 知乎

   MPC非常常见的应用领域是复杂的,带约束(constraints)的控制系统。这里我懒得太过细致地介绍,大致说一下,简单的,带约束的控制系统是可以使用Bang Bang Control(中文名叫起停式控制)配合二次规划来解决的。比如单输入单状态量的最优控制,像在100米内把车刹停之类的问题,都可以BBC+QP用来解决。 这种控制的核心理念是:如果理论最优解大于上限,就以上限作为最优解;而如果在约束范围内,就用理论最优解。但对于许多复杂的约束问题,比如说有两三个输入,A输入增大可以改善状态量a,但却会导致状态量b恶化这样的最优化问题,BBC常常会失去可用性(举个土逼的例子来说,你过分努力学习就会冷淡了女友,过分和女友卿卿我我,学业成绩就会hold 不住,这时候就不能用BBC来控制了)。一个问题能否使用BBC来解决,其判据为Pontryagin's Maximum Principle(PMP)。

   复杂的、带约束的、时间无穷的最优化问题,目前就我所知没有求全局最优解的方法。在这种情况下,MPC则成为了一种无可替代的控制方法。

    原文作者:擦擦擦大侠
    原文地址: https://www.jianshu.com/p/26f9c1673a53
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞