SpaceX 首席火箭着陆工程师 MIT论文详解:非凸软着陆最优控制问题的控制边界和指向约束的无损凸化

上一篇blog翻译了 Lars Blackmore(Lars Blackmore is principal rocket landing engineer at SpaceX)的文章,SpaceX 使用 CVXGEN 生成定制飞行代码,实现超高速机载凸优化。利用地形相对导航实现了数十米量级的导航精度,着陆器在着陆过程中成像行星表面并将特征与机载地图匹配来确定自己的位置。

今天来讲解下Lars Blackmore 在MIT读博时候的成果:Non-Convex Soft Landing Optimal Control
本文禁止转载,如果对技术解读有不同见解,可以邮箱反馈:fanzexuan135@163.com

非凸软着陆最优控制问题的控制边界和指向约束的无损凸化

1. 介绍

行星软着陆是最优控制理论的基准问题之一,由于近期对探索太阳系行星(如火星)的关注增加而重新引起兴趣。软着陆问题在考虑所有相关约束的情况下,可以表述为一个有状态和控制约束的有限时域最优控制问题。实时生成到行星表面规定位置的燃料最优路径是一个具有挑战性的问题,因为存在燃料、控制输入和状态的约束。求解这个约束问题的主要困难在于控制输入上存在非凸约束,这是由于控制输入幅值的非零下界以及其方向上的非凸约束。本文引入了对控制约束的一种凸化方法,并证明它是无损的;也就是说,软着陆问题的最优解可以通过求解提出的问题的凸松弛来获得。无损凸化使得能够使用凸优化的内点法来获得原始非凸最优控制问题的最优解。

1.1 符号说明

  • R \mathbb{R} R: 实数集
  • a.e. [a,b]: 条件几乎处处成立的区间
  • R n \mathbb{R}^n Rn: n维实向量空间
  • ∥ v ∥ \|v\| v: 向量 v v v的2范数
  • 0 0 0: 零矩阵
  • I I I: 单位矩阵
  • e i e_i ei: 第 i i i个元素为1,其余为0的列向量
  • ( v 1 , … , v m ) (v_1,\dots,v_m) (v1,,vm): 由向量 v 1 , … , v m v_1,\dots,v_m v1,,vm组成的向量,即 ( v 1 , … , v m ) : = [ v 1 T v 2 T … v m T ] T (v_1,\dots,v_m):=\begin{bmatrix}v_1^T & v_2^T & \dots & v_m^T\end{bmatrix}^T (v1,,vm):=[v1Tv2TvmT]T
  • ∂ S \partial S S: 集合 S S S的边界点集
  • i n t   S int\,S intS: 集合 S S S的内部

2. 推力指向约束下的行星着陆

行星软着陆问题寻找推力(控制)剖面 T c T_c Tc和伴随的平移状态轨迹 ( r , r ˙ ) (r,\dot{r}) (r,r˙),使着陆器从初始位置 r 0 r_0 r0和速度 r ˙ 0 \dot{r}_0 r˙0导航到行星表面规定的目标位置并以零速度相对于表面,即"软着陆",同时最小化燃料消耗。该问题考虑具有恒定自转速率(角速度)、均匀重力场和忽略空气动力的行星。当从给定初始状态无法到达目标点时,考虑精确着陆问题(或最小着陆误差问题),目标是首先找到离目标最近的可达表面位置,然后获得到该最近点的最小燃料状态轨迹。我们提出了一种优先级优化方法,在统一的框架下处理这两个问题,因此称为行星软着陆问题。
在这里插入图片描述

在这个问题中,有几个状态和控制约束。主要的状态约束是位置向量上的下滑坡道约束和速度向量幅值的上界约束。下滑坡道约束如图1所示,用于确保着陆器在到达目标前与地面保持安全距离。对于有大气层的行星,需要对速度设置上限以避免超音速,因为在超音速下控制推力器可能不可靠。这两个约束都是凸的,适合本文考虑的凸优化框架。控制约束却具有挑战性,因为它们定义了一个非凸的可行控制集合。我们有三个控制约束(见图2):给定任意机动时间(飞行时间) t f t_f tf,对所有 t ∈ [ 0 , t f ] t\in[0,t_f] t[0,tf]:

  1. 推力的凸上界: ∥ T c ( t ) ∥ ≤ ρ 2 \|T_c(t)\|\le\rho_2 Tc(t)ρ2
  2. 推力的非凸下界: ∥ T c ( t ) ∥ ≥ ρ 1 > 0 \|T_c(t)\|\ge\rho_1>0 Tc(t)ρ1>0
  3. 推力指向约束: n ^ T T c ( t ) / ∥ T c ( t ) ∥ ≥ cos ⁡ θ \hat{n}^TT_c(t)/\|T_c(t)\|\ge\cos\theta n^TTc(t)/∥Tc(t)cosθ,其中 ∥ n ^ ∥ = 1 \|\hat{n}\|=1 n^=1是方向向量, 0 ≤ θ ≤ π 0\le\theta\le\pi 0θπ是相对于 n ^ \hat{n} n^给定方向的最大允许偏差角,当 θ ≤ π / 2 \theta\le\pi/2 θπ/2时它是凸的,当 θ > π / 2 \theta>\pi/2 θ>π/2时它是非凸的。

机载地形相对导航传感器通常需要特定的观测方向,这对飞行器姿态施加了约束。由于我们将飞行器建模为具有推力向量的点质量,所需的控制力通过将推力向量指向所需力的方向来施加。在这个框架下,我们可以通过简单地限制推力向量可以指向的方向来对飞行器姿态施加约束。这也避免了将飞行器的姿态动力学合并到问题公式中,否则会显著增加问题的复杂性。明确考虑姿态动力学并直接对姿态而不是推力方向施加指向约束可以成为未来研究的一部分,这可以受益于最近关于约束姿态控制的凸化结果[23]。

着陆器被建模为具有作为控制的推力矢量的集中质量,其动力学由下式描述:

x ˙ ( t ) = A ( ω ) x ( t ) + B ( g + T c ( t ) m ( t ) ) m ˙ ( t ) = − α ∥ T c ( t ) ∥ \begin{aligned} \dot{x}(t) &= A(\omega)x(t)+B\left(g+\frac{T_c(t)}{m(t)}\right)\\ \dot{m}(t) &= -\alpha\|T_c(t)\| \end{aligned} x˙(t)m˙(t)=A(ω)x(t)+B(g+m(t)Tc(t))=αTc(t)

其中 x ( t ) = ( r ( t ) , r ˙ ( t ) ) : R + → R 6 x(t)=(r(t),\dot{r}(t)):R_+\to\mathbb{R}^6 x(t)=(r(t),r˙(t)):R+R6, m ( t ) : R + → R + m(t):R_+\to R_+ m(t):R+R+是着陆器的质量,

A ( ω ) = [ 0 I − S ( ω ) 2 − 2 S ( ω ) ] , B = [ 0 I ] , S ( ω ) = [ 0 − ω 3 ω 2 ω 3 0 − ω 1 − ω 2 ω 1 0 ] A(\omega)=\begin{bmatrix}0 & I\\ -S(\omega)^2 & -2S(\omega)\end{bmatrix},\quad B=\begin{bmatrix}0\\I\end{bmatrix},\quad S(\omega)=\begin{bmatrix} 0 & -\omega_3 & \omega_2\\ \omega_3 & 0 & -\omega_1\\ -\omega_2 & \omega_1 & 0 \end{bmatrix} A(ω)=[0S(ω)2I2S(ω)],B=[0I],S(ω)= 0ω3ω2ω30ω1ω2ω10

ω = ( ω 1 , ω 2 , ω 3 ) ∈ R 3 \omega=(\omega_1,\omega_2,\omega_3)\in\mathbb{R}^3 ω=(ω1,ω2,ω3)R3是行星的恒定角速度向量, g ∈ R 3 g\in\mathbb{R}^3 gR3是恒定重力向量, α > 0 \alpha>0 α>0是描述燃料消耗(质量损耗)率的常数。这里,矢量量的时间导数在固连于行星表面的参考系中表示,该参考系具有行星的角速率,我们还使用了火箭方程,它将燃料质量消耗率与施加的推力矢量联系起来[24]。

我们使用着陆飞行器的集中质量刚体模型,其中平移动力学与旋转(姿态)动力学解耦。这是一个在实践中常用的假设,主要是因为姿态控制权限通常远高于平移控制权限的带宽。具体来说,为了使推力器指向正确的平移控制方向而需要的任何姿态机动都可以非常快速地完成,使得姿态和平移控制系统之间的相互作用最小化。因此,这是一个合理的假设,可以大大降低问题的复杂性。

给定约束、动力学方程和表面上的目标位置 ( 0 , q ) (0,q) (0,q),其中 q ∈ R 2 q\in\mathbb{R}^2 qR2表示零高度处目标的坐标,行星软着陆问题可以表述为如下的优先级优化问题。

问题1(非凸最小着陆误差问题):

min ⁡ t f , T c ∥ E r ( t f ) − q ∥ s.t. x ˙ ( t ) = A ( ω ) x ( t ) + B ( g + T c ( t ) m ) , m ˙ ( t ) = − α ∥ T c ( t ) ∥ , ∀ t ∈ [ 0 , t f ] x ( t ) ∈ X , ∀ t ∈ [ 0 , t f ] 0 < ρ 1 ≤ ∥ T c ( t ) ∥ ≤ ρ 2 , n ^ T T c ( t ) ≥ ∥ T c ( t ) ∥ cos ⁡ θ m ( 0 ) = m 0 , m ( t f ) ≥ m 0 − m f > 0 r ( 0 ) = r 0 , r ˙ ( 0 ) = r ˙ 0 e 1 T r ( t f ) = 0 , r ˙ ( t f ) = 0 \begin{aligned} \min_{t_f,T_c}\quad & \|Er(t_f)-q\|\\ \text{s.t.}\quad & \dot{x}(t)=A(\omega)x(t)+B\left(g+\frac{T_c(t)}{m}\right),\quad \dot{m}(t)=-\alpha\|T_c(t)\|,\quad \forall t\in[0,t_f]\\ & x(t)\in X,\quad \forall t\in[0,t_f]\\ & 0<\rho_1\le\|T_c(t)\|\le\rho_2,\quad \hat{n}^TT_c(t)\ge\|T_c(t)\|\cos\theta\\ & m(0)=m_0,\quad m(t_f)\ge m_0-m_f > 0\\ & r(0)=r_0,\quad \dot{r}(0)=\dot{r}_0\\ & e_1^Tr(t_f)=0,\quad \dot{r}(t_f)=0 \end{aligned} tf,Tcmins.t.Er(tf)qx˙(t)=A(ω)x(t)+B(g+mTc(t)),m˙(t)=αTc(t),t[0,tf]x(t)X,t[0,tf]0<ρ1Tc(t)ρ2,n^TTc(t)Tc(t)cosθm(0)=m0,m(tf)m0mf>0r(0)=r0,r˙(0)=r˙0e1Tr(tf)=0,r˙(tf)=0

问题2(非凸最小燃料问题):

max ⁡ t f , T c m ( t f ) − m ( 0 ) = min ⁡ t f , T c ∫ 0 t f α ∥ T c ( t ) ∥   d t s.t. 动力学方程和约束(4)-(9) ∥ E r ( t f ) − q ∥ ≤ ∥ d P 1 ∗ − q ∥ \begin{aligned} \max_{t_f,T_c}\quad & m(t_f)-m(0)=\min_{t_f,T_c}\int_0^{t_f}\alpha\|T_c(t)\|\,dt\\ \text{s.t.}\quad & \text{动力学方程和约束(4)-(9)}\\ & \|Er(t_f)-q\|\le\|d_{P1}^*-q\| \end{aligned} tf,Tcmaxs.t.m(tf)m(0)=tf,Tcmin0tfαTc(t)dt动力学方程和约束(4)-(9)Er(tf)qdP1q

其中, d P 1 ∗ = E r P 1 ∗ ( t f ) ∈ R 2 d_{P1}^*=Er_{P1}^*(t_f)\in\mathbb{R}^2 dP1=ErP1(tf)R2是通过求解问题1得到的最优成本对应的最终位置,即 d P 1 ∗ d_{P1}^* dP1是离目标位置 q q q最近的可达表面点, m f m_f mf是可用燃料, m 0 m_0 m0是着陆器的初始质量,

E = [ e 2 T e 3 T ] = [ 0 1 0 0 0 1 ] . E=\begin{bmatrix}e_2^T \\ e_3^T\end{bmatrix}=\begin{bmatrix} 0 & 1 & 0\\ 0 & 0 & 1 \end{bmatrix}. E=[e2Te3T]=[001001].

我们用 X X X来定义飞行器可行位置和速度的集合,即下滑坡道约束和最大允许速度 V m a x V_{max} Vmax的约束

X = { ( r , r ˙ ) ∈ R 6 : ∥ r ˙ ∥ ≤ V m a x , ∥ E ( r − r ( t f ) ) ∥ − c T ( r − r ( t f ) ) ≤ 0 } X=\left\{(r,\dot{r})\in\mathbb{R}^6:\|\dot{r}\|\le V_{max},\quad \|E(r-r(t_f))\|-c^T(r-r(t_f))\le 0\right\} X={(r,r˙)R6:r˙Vmax,E(rr(tf))cT(rr(tf))0}

其中 c c c指定了一个顶点在 r ( t f ) r(t_f) r(tf)处的可行锥

c : = e 1 tan ⁡ γ g s , γ g s ∈ ( 0 , π / 2 ) . c:=\frac{e_1}{\tan\gamma_{gs}},\quad\gamma_{gs}\in(0,\pi/2). c:=tanγgse1,γgs(0,π/2).

这里, γ g s \gamma_{gs} γgs是最小下滑坡道角,如图1所示。下滑坡道约束(12)确保到目标的轨迹不能太浅或进入地下。 X X X是一个凸集,为了完整起见,我们给出 X X X内部的标准定义

i n t   X : = { x ∈ X : ∃ ε > 0  使得  y ∈ X  如果  ∥ x − y ∥ < ε } . int\,X:=\{x\in X:\exists\varepsilon>0\ \text{使得}\ y\in X\ \text{如果}\ \|x-y\|<\varepsilon\}. intX:={xX:ε>0 使得 yX 如果 xy<ε}.

X X X的边界由 ∂ X : = { x ∈ X : x ∉ i n t   X } \partial X:=\{x\in X:x\notin int\,X\} X:={xX:x/intX}给出。等式(7)定义了着陆器的初始质量,并确保使用的燃料不超过可用燃料。等式(8)定义了着陆器的初始位置和速度,而(9)约束了最终高度和速度。飞行时间 t f t_f tf是一个优化变量,不是先验固定的。

软着陆问题的解通过求解问题1和问题2获得。这种两步优先级方法的动机是非常直观的。本文考虑的行星着陆问题的主要目标是使飞行器尽可能接近给定目标着陆,即像问题1中那样最小化着陆误差。这个问题可能有多个最优解,因此我们有第二步,即像问题2中那样找到消耗最少燃料的最小误差解。

备注1: 在问题2中,最终位置的约束由不等式(11)给出。这个约束也可以是以下选择之一
E r ( t f ) = d P 1 ∗ Er(t_f)=d_{P1}^* Er(tf)=dP1
∥ E r ( t f ) − q ∥ = ∥ d P 1 ∗ − q ∥ . \|Er(t_f)-q\|=\|d_{P1}^*-q\|. Er(tf)q=dP1q∥.
第三个选择是由(11)给出的约束,它是第二个选择的凸松弛,包括严格在这个圆内的终点位置(见图3)。 显然,通过这种进一步的松弛,我们永远无法计算出最终位置严格在圆内的解,因为这个圆的半径是可达到目标的最小距离。我们使用第三种选择有两个动机:(1)获得具有尽可能接近期望目标的最终位置的最小燃料解;(2)使问题2的所有约束都是凸的。为了了解我们如何实现这两个目标,令 F 1 F_1 F1表示问题2的所有可行解,其中(11)被(15)替换。 F 2 F_2 F2是相应的集合,其中(11)被(16)替换,而 F e F_e Fe是问题2的集合。那么很容易注意到 F 1 ⊆ F 2 ⊆ F e F_1\subseteq F_2\subseteq F_e F1F2Fe。此外,我们有 F 2 = F e F_2=F_e F2=Fe。这是因为不等式(11)不排除终点位置在圆上的解,而且我们不能进入圆内。现在,由于 F 1 ⊆ F 2 F_1\subseteq F_2 F1F2,上述第二种选择将产生使用最小燃料轨道并尽可能接近目标的解。所以最好的选择是使用第二种选择。但 ∥ E r ( t f ) − q ∥ = ∥ d P 1 ∗ − q ∥ \|Er(t_f)-q\|=\|d_{P1}^*-q\| Er(tf)q=dP1q是终点位置上的非凸约束。由于 F 2 = F e F_2=F_e F2=Fe,我们可以简单地用凸不等式(11)替换这个非凸约束。因此,我们通过系统地优先考虑两个成本,即可达距离和燃料,来实现两个主要目标:(1)明确优先考虑两个成本;(2)使两个问题都凸化,以便可以通过内点法算法在多项式时间内求解到全局最优。注意,我们通过系统地优先考虑成本来实现这两个目标。这种优化问题中的优先成本也称为字典式目标规划[25]。

定理1的关键挑战是(6)中对推力幅值的下界 ρ 1 > 0 \rho_1>0 ρ1>0,这意味着允许推力值的集合是非凸的(见图2中的第一个插图)。此外,当 ρ 1 = 0 \rho_1 = 0 ρ1=0时,推力边界约束是凸的;然而,由于(6)中的推力指向约束,控制约束仍然可能是非凸的,当 θ > π / 2 \theta>\pi/2 θ>π/2时它是非凸的(见图2中的第二个和第三个插图)。这些非凸控制约束阻止了直接使用凸优化技术来求解这个问题。此外,(4)中质量消耗 m ˙ ( t ) \dot{m}(t) m˙(t)的动力学定义了一个非线性微分方程,离散化后会导致非线性等式约束,这也是非凸的。
在这里插入图片描述
[1]中的关键结果包括对非凸推力边界约束的松弛以及处理质量消耗动力学的方法,提供了问题2的松弛版本。这个松弛问题的最优解被证明也是问题2的最优解。然而,[1]中的凸化结果在存在任何推力指向约束时不成立,包括 θ ∈ [ 0 , π / 2 ] \theta\in[0,\pi/2] θ[0,π/2]的情况。本文将控制约束的凸化扩展到也包含推力指向约束的情况。在凸化具有非凸推力指向约束的问题时,我们发展了问题的几何洞察,建立了与"正则系统"的联系[18]。正则线性系统是在最优控制理论的背景下定义的,如果系统在可行控制集合的唯一点处最大化Hamilton函数,则称该系统相对于一组可行控制是正则的。在可行控制集合是凸的情况下,系统正则意味着Hamilton函数在集合的极点处最大化[18]。我们的凸化结果具有类似的几何解释,因为它通过确保Hamilton函数在松弛可行控制集的投影的极点处最大化来建立无损凸化。然后证明这个集合包含在原始非凸可行控制集中,从而确立了我们可以通过求解其凸松弛来获得原始非凸问题的最优解。

软着陆问题的无损凸化的理论发展允许应用凸优化的内点法[10]-[12],[19],这些方法可以可靠地求解这些问题,并具有多项式时间收敛保证。此外,对快速实时凸优化领域的兴趣激增[20]-[22]表明,内点法的计算速度提高了几个数量级。这一领域的进步将显著提高内点法的实时计算效率,从而使其能够用于行星软着陆。

1.2 符号列表

  • R \mathbb{R} R是实数集。
  • 如果条件在 [ a , b ] [a,b] [a,b]中不成立的点集是零测度集,则称条件几乎处处成立,记为a.e. [ a , b ] [a,b] [a,b]
  • R n \mathbb{R}^n Rn是n维实向量空间。
  • ∥ v ∥ \|v\| v是向量 v v v的2范数。
  • 0 0 0是零矩阵。
  • I I I是单位矩阵。
  • e i e_i ei是第 i i i个元素为1,其余为0的列向量。
  • ( v 1 , v 2 , … , v m ) (v_1,v_2,\dots,v_m) (v1,v2,,vm)表示通过增广向量 v 1 , … , v m v_1,\dots,v_m v1,,vm得到的向量,使得 ( v 1 , v 2 , … , v m ) : = [ v 1 T v 2 T … s v m T ] T (v_1,v_2,\dots,v_m):=\begin{bmatrix}v_1^T & v_2^T & \dots & sv_m^T\end{bmatrix}^T (v1,v2,,vm):=[v1Tv2TsvmT]T
  • ∂ S \partial S S表示集合 S S S的边界点集, i n t   S int\,S intS表示 S S S的内部。

3. 无损凸化

我们提出以下问题3和4作为问题1和2的凸松弛。

问题3(凸松弛最小着陆误差问题):

min ⁡ t f , T c , σ ∥ E r ( t f ) − q ∥ s.t. (5), (7), (8), (9) , x ˙ ( t ) = A ( ω ) x ( t ) + B ( g + T c ( t ) m ) , m ˙ ( t ) = − α σ ( t ) , ∀ t ∈ [ 0 , t f ] ∥ T c ( t ) ∥ ≤ σ ( t ) , 0 < ρ 1 ≤ σ ( t ) ≤ ρ 2 n ^ T T c ( t ) ≥ cos ⁡ θ   σ ( t ) \begin{aligned} \min_{t_f,T_c,\sigma}\quad & \|Er(t_f)-q\|\\ \text{s.t.}\quad & \text{(5), (7), (8), (9)},\\ & \begin{aligned} \dot{x}(t) &= A(\omega)x(t)+B\left(g+\frac{T_c(t)}{m}\right),\\ \dot{m}(t) &= -\alpha\sigma(t),\quad\forall t\in[0,t_f] \end{aligned}\\ & \|T_c(t)\|\le \sigma(t),\quad 0<\rho_1\le\sigma(t)\le\rho_2\\ & \hat{n}^TT_c(t)\ge\cos\theta\,\sigma(t) \end{aligned} tf,Tc,σmins.t.Er(tf)q(5), (7), (8), (9),x˙(t)m˙(t)=A(ω)x(t)+B(g+mTc(t)),=ασ(t),t[0,tf]Tc(t)σ(t),0<ρ1σ(t)ρ2n^TTc(t)cosθσ(t)

问题4(凸松弛最小燃料问题):

min ⁡ t f , T c , σ ∫ 0 t f σ ( t )   d t s.t. (5), (7), (8), (9), (17), (18), (19), ∥ E r ( t f ) − q ∥ ≤ ∥ d P 3 ∗ − q ∥ \begin{aligned} \min_{t_f,T_c,\sigma}\quad & \int_0^{t_f}\sigma(t)\,dt\\ \text{s.t.}\quad & \text{(5), (7), (8), (9), (17), (18), (19),}\\ & \|Er(t_f)-q\|\le\|d_{P3}^*-q\| \end{aligned} tf,Tc,σmins.t.0tfσ(t)dt(5), (7), (8), (9), (17), (18), (19),Er(tf)qdP3q

其中 d P 3 ∗ d_{P3}^* dP3是问题3的最终最优位置。注意,问题1和2中非凸推力约束(6)已经被问题3和4中的凸约束(18)和(19)所取代。在[1]中,我们表明了对推力边界的约束松弛(18)允许将问题4的离散时间形式表述为凸优化问题;加上凸推力指向约束(19),同样的结论也成立。因此,我们不会在本文中讨论这个问题的离散化,读者可参考[1]。

定义1: F e F_e Fe F f F_f Ff分别表示问题1和2的可行解集,即如果 { t f , T c , x , m } \{t_f,T_c,x,m\} {tf,Tc,x,m}满足问题1的所有状态(5)、控制(6)、燃料(7)约束、动力学(4)和边界条件(8)和(9),则 { t f , T c , x , m } ∈ F e \{t_f,T_c,x,m\}\in F_e {tf,Tc,x,m}Fe,对 F f F_f Ff也类似。 F e ∗ F_e^* Fe F f ∗ F_f^* Ff是相应的最优解集。 F r e F_{re} Fre F r f F_{rf} Frf是问题3和4的可行解 { t f , T c , σ , x , m } \{t_f,T_c,\sigma,x,m\} {tf,Tc,σ,x,m}的集合, F r e ∗ F_{re}^* Fre F r f ∗ F_{rf}^* Frf是最优解集。

引理1: 以下结论成立:

  1. F f ⊆ F e F_f\subseteq F_e FfFe, F r f ⊆ F r e F_{rf}\subseteq F_{re} FrfFre, F f ∗ ⊆ F e ∗ F_f^*\subseteq F_e^* FfFe, 且 F r f ∗ ⊆ F r e ∗ F_{rf}^*\subseteq F_{re}^* FrfFre;
  2. 如果 { t f , T c , σ , x , m } ∈ F r f \{t_f,T_c,\sigma,x,m\}\in F_{rf} {tf,Tc,σ,x,m}Frf使得 ∥ T c ( t ) ∥ = σ ( t ) , ∀ [ 0 , t f ] \|T_c(t)\|=\sigma(t), \forall[0,t_f] Tc(t)=σ(t),[0,tf],则 { t f , T c , x , m } ∈ F f \{t_f,T_c,x,m\}\in F_f {tf,Tc,x,m}Ff;
  3. 如果 { t f ∗ , T c ∗ , σ ∗ , x ∗ , m ∗ } ∈ F r f ∗ \{t_f^*,T_c^*,\sigma^*,x^*,m^*\}\in F_{rf}^* {tf,Tc,σ,x,m}Frf使得 ∥ T c ∗ ( t ) ∥ = σ ∗ ( t ) \|T_c^*(t)\|=\sigma^*(t) Tc(t)=σ(t), a.e. [ 0 , t f ∗ ] [0,t_f^*] [0,tf],则 { t f ∗ , T c ∗ , x ∗ , m ∗ } ∈ F f ∗ \{t_f^*,T_c^*,x^*,m^*\}\in F_f^* {tf,Tc,x,m}Ff

证明:

  1. 中的前两个关系很容易证明。接下来的两个关系来自于前两个。考虑 F r f F_{rf} Frf的一个子集 F ‾ r f \overline{F}_{rf} Frf,它由所有满足 σ ( t ) = ∥ T c ( t ) ∥ , ∀ t ∈ [ 0 , t f ] \sigma(t)=\|T_c(t)\|,\forall t\in[0,t_f] σ(t)=Tc(t),t[0,tf] F r f F_{rf} Frf的解组成。由于 { t f , T c , σ , x , m } ∈ F ‾ r f \{t_f,T_c,\sigma,x,m\}\in\overline{F}_{rf} {tf,Tc,σ,x,m}Frf,其中 ∥ T c ( t ) ∥ = σ ( t ) \|T_c(t)\|=\sigma(t) Tc(t)=σ(t),满足问题2的所有动力学和约束条件, { t f , T c , x , m } ∈ F f \{t_f,T_c,x,m\}\in F_f {tf,Tc,x,m}Ff。这证明了2)。因此,由于目标函数对于 ∥ T c ∥ = σ \|T_c\|=\sigma Tc=σ的问题4和问题2是相同的,定理的最后一个陈述成立。

为了利用引理1,我们需要计算问题4的最优解并检查 σ ( t ) = ∥ T c ( t ) ∥ \sigma(t)=\|T_c(t)\| σ(t)=Tc(t)是否 ∀ t ∈ [ 0 , t f ∗ ] \forall t\in[0,t_f^*] t[0,tf]。但是在数值计算解之前,我们不知道这个条件是否会满足。下面的定理建立了这个条件通常会满足,但问题可能需要稍加修改,引入 ω ^ \hat{\omega} ω^ ε \varepsilon ε。它还提供了对[1]和[2]中早期结果的推广,以处理推力指向约束以及推力幅值的非零下界。因此,它建立了最小燃料软着陆问题(问题2,从而问题1)中控制约束的无损凸化。

定理1: 考虑在问题4中用 ω ^ \hat{\omega} ω^替换 ω \omega ω,其中 ω ^ \hat{\omega} ω^定义如下:

ω ^ : = { ω 如果  S ( ω ) n ^ = 0 ,   N T S ( ω ) 2 n ^ = 0 ω + ε n ^ ⊥ 如果  S ( ω ) n ^ = 0 ω + ε n ^ 如果  S ( ω ) n ^ = 0 ,   N T S ( ω ) 2 n ^ ≠ 0 \hat{\omega}:=\begin{cases} \omega & \text{如果}\ S(\omega)\hat{n}=0,\, N^TS(\omega)^2\hat{n}=0\\ \omega+\varepsilon\hat{n}^\perp & \text{如果}\ S(\omega)\hat{n}=0\\ \omega+\varepsilon\hat{n} & \text{如果}\ S(\omega)\hat{n}=0,\, N^TS(\omega)^2\hat{n}\ne 0 \end{cases} ω^:= ωω+εn^ω+εn^如果 S(ω)n^=0,NTS(ω)2n^=0如果 S(ω)n^=0如果 S(ω)n^=0,NTS(ω)2n^=0

其中 n ^ ⊥ \hat{n}^\perp n^是满足 n ^ T n ^ ⊥ = 0 \hat{n}^T\hat{n}^\perp=0 n^Tn^=0的单位向量, N ∈ R 3 × 2 N\in\mathbb{R}^{3\times 2} NR3×2的列张成 n ^ T \hat{n}^T n^T的零空间, ε > 0 \varepsilon>0 ε>0是一个(任意小的)实数。设 { t f ∗ , T c ∗ , σ ∗ , x ∗ , m ∗ } ∈ F r f ∗ \{t_f^*,T_c^*,\sigma^*,x^*,m^*\}\in F_{rf}^* {tf,Tc,σ,x,m}Frf使得相应的状态轨迹 x ∗ ( t ) ∈ i n t   X , ∀ t ∈ [ 0 , t f ∗ ] x^*(t)\in int\,X,\forall t\in[0,t_f^*] x(t)intX,t[0,tf]。则有 { t f ∗ , T c ∗ , x ∗ , m ∗ } ∈ F f ∗ \{t_f^*,T_c^*,x^*,m^*\}\in F_f^* {tf,Tc,x,m}Ff,其中的 ω \omega ω ω ^ \hat{\omega} ω^替换。

证明:
本证明使用了附录中的引理2和3。

q ~ : = E r ∗ ( t f ∗ ) \tilde{q}:=Er^*(t_f^*) q~:=Er(tf)。那么我们也可以考虑 { t f ∗ , T c ∗ , σ ∗ , x ∗ , m ∗ } \{t_f^*,T_c^*,\sigma^*,x^*,m^*\} {tf,Tc,σ,x,m}作为问题4的最优燃料解,其中约束 ∥ E r ( t f ) − q ∥ ≤ ∥ d P 1 ∗ − q ∥ \|Er(t_f)-q\|\le\|d_{P1}^*-q\| Er(tf)qdP1q E r ( t f ) = q ~ Er(t_f)=\tilde{q} Er(tf)=q~代替。因此,在本证明中将使用这个版本的问题4,而不失一般性。

由于 x ∗ ( t ) ∈ i n t   X x^*(t)\in int\,X x(t)intX且对所有 t ∈ [ 0 , t f ] t\in[0,t_f] t[0,tf] m ( t ) > m 0 − m f m(t)>m_0-m_f m(t)>m0mf,根据最优控制的极大值原理[见[18,第V.3节]或[26,第1章]],存在常数 β ≤ 0 \beta\le 0 β0和绝对连续函数 λ : R + → R 6 \lambda:R_+\to\mathbb{R}^6 λ:R+R6 η : R + → R \eta:R_+\to\mathbb{R} η:R+R,即余态向量,使得以下条件成立。

  1. 余态条件: ∀ t ∈ [ 0 , t f ∗ ] \forall t\in[0,t_f^*] t[0,tf]
    ( β , λ ( t ) , η ( t ) ) ≠ 0 (\beta,\lambda(t),\eta(t))\ne 0 (β,λ(t),η(t))=0
    λ ˙ ( t ) = − A ( ω ^ ) T λ ( t ) \dot{\lambda}(t)=-A(\hat{\omega})^T\lambda(t) λ˙(t)=A(ω^)Tλ(t)
    η ˙ ( t ) = λ ( t ) T B T c ( t ) m ( t ) 2 . \dot{\eta}(t)=\frac{\lambda(t)^TBT_c(t)}{m(t)^2}. η˙(t)=m(t)2λ(t)TBTc(t).

  2. 逐点极大值原理:

H ( φ ( t ) ) = M ( x ∗ ( t ) , m ∗ ( t ) , λ ( t ) , η ( t ) ) a.e.  t ∈ [ 0 , t f ∗ ] H(\varphi(t))=M(x^*(t),m^*(t),\lambda(t),\eta(t))\quad \text{a.e.}\ t\in[0,t_f^*] H(φ(t))=M(x(t),m(t),λ(t),η(t))a.e. t[0,tf]

其中 φ ( t ) = ( t , x ∗ ( t ) , m ∗ ( t ) , T c ∗ ( t ) , σ ∗ ( t ) , λ ( t ) , η ( t ) ) \varphi(t)=(t,x^*(t),m^*(t),T_c^*(t),\sigma^*(t),\lambda(t),\eta(t)) φ(t)=(t,x(t),m(t),Tc(t),σ(t),λ(t),η(t)), H H H是如下定义的Hamilton函数

H ( φ ) : = β + λ T ( A ( ω ^ ) x + B ( g + T c m ) ) − α η H(\varphi):=\beta+\lambda^T\left(A(\hat{\omega})x+B\left(g+\frac{T_c}{m}\right)\right)-\alpha\eta H(φ):=β+λT(A(ω^)x+B(g+mTc))αη

并且,通过定义$V:={(T_c,\sigma)\in\mathbb{R}4:|T_c|\le\sigma,\rho_1\le\sigma\le\rho_2,\hat{n}TT_c\证明的后续部分如下:

≥ cos ⁡ θ   σ } \ge\cos\theta\,\sigma\} cosθσ},有

M ( x ∗ , m ∗ , λ , η ) = max ⁡ ( T c , σ ) ∈ V H ( φ ) . M(x^*,m^*,\lambda,\eta)=\max_{(T_c,\sigma)\in V}H(\varphi). M(x,m,λ,η)=(Tc,σ)VmaxH(φ).

  1. 横截条件:

η ( t f ∗ ) = 0 和 H ( φ ( t f ∗ ) ) = 0. \eta(t_f^*)=0\quad\text{和}\quad H(\varphi(t_f^*))=0. η(tf)=0H(φ(tf))=0.

以上最优性的必要条件1)和2)直接来自于极大值原理的陈述。但横截条件需要进一步解释。横截条件意味着(见[18,第190页,第V.3节]),对于松弛问题的最优解,由下式定义的向量 ψ \psi ψ

ψ : = ( H ( φ ( 0 ) ) , H ( φ ( t f ∗ ) ) , − λ ( 0 ) , − η ( 0 ) , λ ( t f ∗ ) , η ( t f ∗ ) ) \psi:=\left(H(\varphi(0)),H(\varphi(t_f^*)),-\lambda(0),-\eta(0),\lambda(t_f^*),\eta(t_f^*)\right) ψ:=(H(φ(0)),H(φ(tf)),λ(0),η(0),λ(tf),η(tf))

必须正交于由初始和最终状态的可行集合描述的流形,该流形由 ( 0 , t f , x 0 , m 0 , ( 0 , q ~ , 0 ) , m ( t f ∗ ) ) (0,t_f,x_0,m_0,(0,\tilde{q},0),m(t_f^*)) (0,tf,x0,m0,(0,q~,0),m(tf))给出,为 s p a n { e 2 , e 14 } span\{e_2,e_{14}\} span{e2,e14}。上述结论来自这样一个事实,即 t f t_f tf m ( t f ) m(t_f) m(tf)是边界条件流形中唯一的自由变量。这就意味着 e 2 T ψ = 0 e_2^T\psi=0 e2Tψ=0 e 14 T ψ = 0 e_{14}^T\psi=0 e14Tψ=0,即 H ( φ ( t f ∗ ) ) = 0 H(\varphi(t_f^*))=0 H(φ(tf))=0 η ( t f ∗ ) = 0 \eta(t_f^*)=0 η(tf)=0。接下来我们证明

y ( t ) : = B T λ ( t ) = 0 a.e.  [ 0 , t f ∗ ] . y(t):=B^T\lambda(t)=0\quad\text{a.e.}\ [0,t_f^*]. y(t):=BTλ(t)=0a.e. [0,tf].

这将通过反证法来完成。假设条件(29)不成立。由于 y y y是系统(23)的输出, y ( t ) = 0 , ∀ t ∈ [ 0 , t f ∗ ] y(t)=0,\forall t\in[0,t_f^*] y(t)=0,t[0,tf],或 y ( t ) = 0 y(t)=0 y(t)=0 [ 0 , t f ∗ ] [0,t_f^*] [0,tf]中只在可数个点处出现,这来自于引理2的第一个结论。假设 y ( t ) = 0 , ∀ t ∈ [ 0 , t f ∗ ] y(t)=0,\forall t\in[0,t_f^*] y(t)=0,t[0,tf]。注意到对 [ A ( ω ) , B ] [A(\omega),B] [A(ω),B]是可控的,这来自于 [ B   A ( ω ^ ) B ] [B\ A(\hat{\omega})B] [B A(ω^)B]是可逆矩阵这一事实。因此对 ( B T , − A ( ω ^ ) T ) (B^T,-A(\hat{\omega})^T) (BT,A(ω^)T)是可观测的。因此, y ( t ) = 0 , ∀ t ∈ [ 0 , t f ∗ ] y(t)=0,\forall t\in[0,t_f^*] y(t)=0,t[0,tf]意味着 λ ( t ) = 0 , ∀ t ∈ [ 0 , t f ∗ ] \lambda(t)=0,\forall t\in[0,t_f^*] λ(t)=0,t[0,tf]。因此 η ˙ ( t ) = 0 , ∀ t ∈ [ 0 , t f ∗ ] \dot{\eta}(t)=0,\forall t\in[0,t_f^*] η˙(t)=0,t[0,tf]。由于 η ( t f ∗ ) = 0 \eta(t_f^*)=0 η(tf)=0,这就意味着 η ( t ) = 0 , ∀ t ∈ [ 0 , t f ∗ ] \eta(t)=0,\forall t\in[0,t_f^*] η(t)=0,t[0,tf]。这些都意味着 H ( φ ( t ) ) = β σ ( t ) H(\varphi(t))=\beta\sigma(t) H(φ(t))=βσ(t)。由于 H ( φ ( t f ∗ ) ) = 0 H(\varphi(t_f^*))=0 H(φ(tf))=0 σ ( t ) ≥ ρ 1 > 0 \sigma(t)\ge\rho_1>0 σ(t)ρ1>0,这表明 β = 0 \beta=0 β=0。因此, ( β , λ ( t ) , η ( t ) ) = 0 , ∀ t ∈ [ 0 , t f ∗ ] (\beta,\lambda(t),\eta(t))=0,\forall t\in[0,t_f^*] (β,λ(t),η(t))=0,t[0,tf],这与上述必要条件1)矛盾。因此,在 [ 0 , t f ∗ ] [0,t_f^*] [0,tf]中有可数个点处 y ( t ) = 0 y(t)=0 y(t)=0。由于可数集的测度为零,引理2的第二个结论意味着

y ( t ) = − α ( t ) n ^ a.e.  [ 0 , t f ∗ ] , 其中 α ( t ) > 0. y(t)=-\alpha(t)\hat{n}\quad\text{a.e.}\ [0,t_f^*], \text{其中}\alpha(t)>0. y(t)=α(t)n^a.e. [0,tf],其中α(t)>0.

由于条件(29)成立,a.e. [ 0 , t f ∗ ] [0,t_f^*] [0,tf]使得 y ( t ) ≠ 0 y(t)\ne 0 y(t)=0,且对于给定的 σ ∗ ( t ) \sigma^*(t) σ(t),最优控制推力 T c ∗ ( t ) T_c^*(t) Tc(t)必须满足

T c ∗ ( t ) = arg ⁡ max ⁡ ( T c , σ ∗ ( t ) ) ∈ V y ( t ) T T c = arg ⁡ max ⁡ T c ∈ U ( σ ∗ ) y ( t ) T T c T_c^*(t)=\arg\max_{(T_c,\sigma^*(t))\in V}y(t)^TT_c=\arg\max_{T_c\in U(\sigma^*)}y(t)^TT_c Tc(t)=arg(Tc,σ(t))Vmaxy(t)TTc=argTcU(σ)maxy(t)TTc

其中 U ( σ ) : = { T c ∈ R 3 : ∥ T c ∥ ≤ σ , n ^ T T c ≥ cos ⁡ θ   σ } U(\sigma):=\{T_c\in\mathbb{R}^3:\|T_c\|\le\sigma,\hat{n}^TT_c\ge\cos\theta\,\sigma\} U(σ):={TcR3:Tcσ,n^TTccosθσ}。此外,由于条件(30)成立,a.e. [ 0 , t f ∗ ] [0,t_f^*] [0,tf]使得 y ( t ) ≠ 0 y(t)\ne 0 y(t)=0 y ( t ) = − α ( t ) n ^ y(t)=-\alpha(t)\hat{n} y(t)=α(t)n^对某些 α ( t ) > 0 \alpha(t)>0 α(t)>0成立,(31)的最大化解必须在 U ( σ ∗ ) U(\sigma^*) U(σ)的边界点处,而且是 U ( σ ∗ ) U(\sigma^*) U(σ)的极点,这来自于引理3。该引理还意味着 U ( σ ) U(\sigma) U(σ)的所有极点满足 ∥ T c ∥ = σ \|T_c\|=\sigma Tc=σ,因此 ∥ T c ∗ ( t ) ∥ = σ ∗ ( t ) \|T_c^*(t)\|=\sigma^*(t) Tc(t)=σ(t)

∥ T c ∗ ( t ) ∥ = σ ∗ ( t ) a.e.  [ 0 , t f ∗ ] \|T_c^*(t)\|=\sigma^*(t)\quad\text{a.e.}\ [0,t_f^*] Tc(t)=σ(t)a.e. [0,tf]

这意味着松弛问题(4)的最优解满足

0 < ρ 1 ≤ ∥ T c ∗ ( t ) ∥ ≤ ρ 2 , n ^ T T c ∗ ( t ) ≥ ∥ T c ∗ ( t ) ∥ cos ⁡ θ a.e.  [ 0 , t f ∗ ] . 0<\rho_1\le\|T_c^*(t)\|\le\rho_2,\quad \hat{n}^TT_c^*(t)\ge\|T_c^*(t)\|\cos\theta\quad\text{a.e.}\ [0,t_f^*]. 0<ρ1Tc(t)ρ2,n^TTc(t)Tc(t)cosθa.e. [0,tf].

因此, ( t f ∗ , T c ∗ , x ∗ , m ∗ ) ∈ F f (t_f^*,T_c^*,x^*,m^*)\in F_f (tf,Tc,x,m)Ff。由于对任意 ( t f , T c , x , m ) ∈ F f (t_f,T_c,x,m)\in F_f (tf,Tc,x,m)Ff,有 ( t f , T c , ∥ T c ∥ , x , m ) ∈ F r f (t_f,T_c,\|T_c\|,x,m)\in F_{rf} (tf,Tc,Tc,x,m)Frf,问题4的最优解具有不大于问题2最优成本的最优成本。这意味着根据引理1, ( t f ∗ , T c ∗ , x ∗ , m ∗ ) ∈ F f ∗ (t_f^*,T_c^*,x^*,m^*)\in F_f^* (tf,Tc,x,m)Ff

上述定理指出,我们可以通过求解其在问题4中的松弛来找到问题2的最优解,其中 ω \omega ω ω ^ \hat{\omega} ω^代替。显然,对于 ω = ω ^ \omega=\hat{\omega} ω=ω^,我们可以通过求解其松弛来找到感兴趣的原始问题的精确最优解。当 ω ^ ≠ ω \hat{\omega}\ne\omega ω^=ω时,我们可以找到一个问题的最优解,该问题可以通过简单地选择 ε > 0 \varepsilon>0 ε>0接近于零而变得任意接近于感兴趣的问题。此外,当 θ = π \theta=\pi θ=π,即当没有指向约束时,我们可以使用任何单位向量作为 n ^ \hat{n} n^,使得 ω = ω ^ \omega=\hat{\omega} ω=ω^。因此,我们可以找到感兴趣的原始问题的精确最优解。

值得注意的是,我们的凸化结果依赖于对 [ A ( ω ^ ) , B ] [A(\hat{\omega}),B] [A(ω^),B]是可控的。因此,只要保持这个可控性,它仍然适用于系统参数变化的情况。这显然不是一个限制性条件,因为可以合理地期望行星着陆飞行器的设计是可控的。

另一个重要的问题是对动态模型中未知参数变化或干扰力的不确定性的鲁棒性。这里我们提供了一种计算要遵循的最优状态轨迹和相应最优控制的方法。虽然本文没有涉及,但必须考虑反馈控制作用来处理不确定性和干扰。我们可以提出几种方法来实现这一点:(1)有一个跟踪反馈控制器来跟踪最优状态轨迹;(2)随着状态知识(估计)在机动过程中更新而重新计算最优轨迹和控制;(3)跟踪反馈和最优控制重计算的组合。所有行动都将利用当前最佳的状态估计,并提供反馈作用以最小化不确定性和干扰的影响。鲁棒反馈作用的设计将是我们当前论文的另一个未来扩展。

一个自然的问题是,这里的凸化方法是否可以扩展到其他控制约束。一些针对线性系统的新结果在[27]中提供,其中这种凸化过程应用于大类控制约束。然而,那里的凸化利用了最优控制位于松弛控制集的边界点而不是极点这一事实。根据本文中获得的关于松弛集极点的见解,可以进一步推广这种凸化方法,这可以成为未来研究的主题。

3.1 变量替换

我们对推力向量和质量使用以下变量替换,以消除由 T c / m T_c/m Tc/m引起的动力学中的非线性: σ : = m f m , u : = T c m , z : = ln ⁡ m \sigma:=\frac{m_f}{m},u:=\frac{T_c}{m},z:=\ln m σ:=mmf,u:=mTc,z:=lnm
质量损耗动力学然后可以重写为

z ˙ = m ˙ ( t ) m ( t ) = − α σ ( t ) . \dot{z}=\frac{\dot{m}(t)}{m(t)}=-\alpha\sigma(t). z˙=m(t)m˙(t)=ασ(t).

因此,变量替换产生了一组状态动力学的线性方程。然而,控制约束不再是凸的。现在它们由下式给出

∥ u ( t ) ∥ ≤ σ ( t ) , n ^ T u ( t ) ≥ cos ⁡ θ   σ ( t ) , ∀ t ∈ [ 0 , t f ] \|u(t)\|\le\sigma(t),\quad \hat{n}^Tu(t)\ge\cos\theta\,\sigma(t),\quad \forall t\in[0,t_f] u(t)σ(t),n^Tu(t)cosθσ(t),t[0,tf]
ρ 1 e − z ( t ) ≤ σ ( t ) ≤ ρ 2 e − z ( t ) , ∀ t ∈ [ 0 , t f ] . \rho_1e^{-z(t)}\le\sigma(t)\le\rho_2e^{-z(t)},\quad\forall t\in[0,t_f]. ρ1ez(t)σ(t)ρ2ez(t),t[0,tf].

如同在[1]中,我们对不等式(35)使用二阶锥近似,它可以很容易地合并到SOCP解框架中,由下式给出

ρ 1 e − z 0 [ 1 − ( z ( t ) − z 0 ( t ) ) + ( z ( t ) − z 0 ( t ) ) 2 2 ] ≤ σ ( t ) ≤ ρ 2 e − z 0 [ 1 − ( z ( t ) − z 0 ( t ) ) ] , ∀ t ∈ [ 0 , t f ] \rho_1e^{-z_0}\left[1-(z(t)-z_0(t))+\frac{(z(t)-z_0(t))^2}{2}\right]\le\sigma(t)\le\rho_2e^{-z_0}[1-(z(t)-z_0(t))],\quad\forall t\in[0,t_f] ρ1ez0[1(z(t)z0(t))+2(z(t)z0(t))2]σ(t)ρ2ez0[1(z(t)z0(t))],t[0,tf]

其中 z 0 ( t ) = ln ⁡ ( m 0 − α ρ 2 t ) z_0(t)=\ln(m_0-\alpha\rho_2t) z0(t)=ln(m0αρ2t), m 0 m_0 m0是飞行器的初始质量。

在[1, 引理2]中,证明了由(36)给出的对(35)中不等式的近似总是产生松弛问题的可行解,并且通常对不等式的两部分都非常准确,并推导出近似误差的解析上界。由于本文的重点是控制约束的凸化,我们不会进一步详细讨论这个近似,读者可参考[1]了解更多细节。

4. 数值例子

本节给出一个数值例子,以演示上一节提出的算法求解行星软着陆问题。

行星软着陆中的指向约束确保平移机动不需要飞行器的姿态超出期望的指向锥,这通常会导致性能下降。例如,随着指向约束的收紧,由于推力指向能力的限制,所需的燃料和飞行时间通常会增加。这个结果将在下面的比较仿真中看到,这些仿真使用了具有以下特性的示例: m 0 = 2000 m_0=2000 m0=2000 kg, m f = 300 m_f=300 mf=300 kg, ρ 1 = 0.2 T m a x \rho_1=0.2T_{max} ρ1=0.2Tmax, ρ 2 = 0.8 T m a x \rho_2=0.8T_{max} ρ2=0.8Tmax, T m a x = 24000 T_{max}=24000 Tmax=24000 N, α = 5 × 1 0 − 4 \alpha=5\times 10^{-4} α=5×104 s/m,其中 T m a x T_{max} Tmax是最大推力幅值。推力限制对应于20%和80%的最小和最大节流水平。使用如图1所示的参考系来表示火星重力和旋转向量,以及飞行器在动力下降点火时的初始状态。仿真中飞行器的初始状态由下式给出

r 0 = ( 2400 , 450 , − 330 ) T  m , r ˙ 0 = ( − 10 , − 40 , 10 ) T  m/s r_0=(2400,450,-330)^T\text{ m},\quad \dot{r}_0=(-10,-40,10)^T\text{ m/s} r0=(2400,450,330)T m,r˙0=(10,40,10)T m/s

目标着陆点在 q = ( 0 , 0 , 0 ) T q=(0,0,0)^T q=(0,0,0)T m处,即指导框架的原点。火星引力参数也在同一坐标系中表示如下: g = ( − 3.71 , 0 , 0 ) T g=(-3.71,0,0)^T g=(3.71,0,0)T m/s 2 ^2 2, ω = ( 2.53 × 1 0 − 5 , 0 , 6.62 × 1 0 − 5 ) T \omega=(2.53\times 10^{-5},0,6.62\times 10^{-5})^T ω=(2.53×105,0,6.62×105)T rad/s。由于 S ( ω ) n ^ = 0 S(\omega)\hat{n}=0 S(ω)n^=0 N T S ( ω ) 2 n ^ = 0 N^TS(\omega)^2\hat{n}=0 NTS(ω)2n^=0,我们有 ω ^ = ω \hat{\omega}=\omega ω^=ω。进行了三次仿真,分别针对不同的指向约束限制:(1)无约束;(2) 90°约束;(3) 45°约束。这些仿真的结果如图6所示。如图所示,指向角相对于局部垂直方向,即将指向锥 n ^ \hat{n} n^向量与坐标框架的x轴对齐。姿态指向图表明松弛问题的解确保满足原问题规定的指向约束。节流图显示满足推力边界,这表明问题4中对推力幅值和指向的约束松弛对原问题[问题2]仍然有效。该图进一步提供了一些关于约束收紧时性能权衡的见解。随着指向限制的收紧,所需的飞行时间和燃料增加,如表I所总结的,这在位置轨迹中也可以看到。45°情况下沿y轴超调目标以满足指向约束。有趣的是,90°约束路径采取了更直接的路线。
在这里插入图片描述

下一个仿真(见图7)给出了一个与 X X X边界有有限次接触时凸化仍然成立的情况。在这个例子中,我们有以下参数:

r 0 = ( 2400 , 3400 , 0 ) T  m , r ˙ 0 = ( − 40 , 45 , 0 ) T  m/s r_0=(2400,3400,0)^T\text{ m},\dot{r}_0=(-40,45,0)^T\text{ m/s} r0=(2400,3400,0)T m,r˙0=(40,45,0)T m/s

下滑坡道角度 γ g s = 3 0 ∘ \gamma_{gs}=30^\circ γgs=30, θ = 12 0 ∘ \theta=120^\circ θ=120,最大速度为90 m/s。

5. 结论

本文提出了一种针对最优控制理论中的基准问题即软着陆问题的推力指向约束的无损凸化方法。这扩展和统一了我们之前在该领域的工作,使得算法可以处理推力上下界、推力指向约束、位置和速度约束以及行星自转。这种凸化使得行星软着陆问题可以通过凸优化来最优地求解,因此适合机载实现,具有先验的计算复杂度界和实时执行时间。

附录

引理2: 考虑以下线性时不变系统:

λ ˙ ( t ) = − A ( ω ^ ) T λ ( t ) \dot{\lambda}(t)=-A(\hat{\omega})^T\lambda(t) λ˙(t)=A(ω^)Tλ(t)
y ( t ) = B T λ ( t ) y(t)=B^T\lambda(t) y(t)=BTλ(t)

其中 λ ( t ) ∈ R 6 \lambda(t)\in\mathbb{R}^6 λ(t)R6, y ( t ) ∈ R 3 y(t)\in\mathbb{R}^3 y(t)R3,且 A ( ω ^ ) A(\hat{\omega}) A(ω^) B B B由(2)给出。则以下条件成立;对任意有限区间 [ 0 , t f ] [0,t_f] [0,tf]:
(i) y y y是解析函数, y ( t ) = 0 y(t)=0 y(t)=0要么在 [ 0 , t f ] [0,t_f] [0,tf]上成立,要么只在可数个时刻成立;
(ii) 在 [ 0 , t f ] [0,t_f] [0,tf]中有可数个时刻使得 y ( t ) = α ( t ) n ^ y(t)=\alpha(t)\hat{n} y(t)=α(t)n^对某些 α ( t ) > 0 \alpha(t)>0 α(t)>0成立。

证明:
λ \lambda λ,因此 y y y,是 t t t的解析函数,来自于[28,定理3,第213页]。因此 y ( t ) = 0 , ∀ t ∈ [ 0 , t f ∗ ] y(t)=0,\forall t\in[0,t_f^*] y(t)=0,t[0,tf],或 y ( t ) = 0 y(t)=0 y(t)=0 [ 0 , t f ∗ ] [0,t_f^*] [0,tf]中只在可数个点处出现([28,命题4.1,第41页])。这证明了(i)。

为证明条件(ii),假设存在一个区间 [ t 1 , t 2 ] ⊆ [ 0 , t f ∗ ] [t_1,t_2]\subseteq[0,t_f^*] [t1,t2][0,tf],使得 y ( t ) = − α ( t ) n ^ , ∀ t ∈ [ t 1 , t 2 ] y(t)=-\alpha(t)\hat{n},\forall t\in[t_1,t_2] y(t)=α(t)n^,t[t1,t2],其中 α ( t ) > 0 \alpha(t)>0 α(t)>0。令 λ = ( λ 1 , λ 2 ) \lambda=(\lambda_1,\lambda_2) λ=(λ1,λ2),其中 λ 1 , 2 ∈ R 3 \lambda_{1,2}\in\mathbb{R}^3 λ1,2R3, v 1 : = S ( ω ^ ) T n ^ v_1:=S(\hat{\omega})^T\hat{n} v1:=S(ω^)Tn^ v 2 : = S ( ω ^ ) T v 1 v_2:=S(\hat{\omega})^Tv_1 v2:=S(ω^)Tv1,该假设意味着以下动力学对 t ∈ [ t 1 , t 2 ] t\in[t_1,t_2] t[t1,t2]成立: λ ˙ 1 ( t ) = − α ( t ) v 2 \dot{\lambda}_1(t)=-\alpha(t)v_2 λ˙1(t)=α(t)v2 λ ˙ 2 ( t ) = − λ 1 ( t ) − 2 α ( t ) v 1 \dot{\lambda}_2(t)=-\lambda_1(t)-2\alpha(t)v_1 λ˙2(t)=λ1(t)2α(t)v1

由于在问题4中对 ω ^ \hat{\omega} ω^的构造,我们有 v 1 ≠ 0 v_1\ne 0 v1=0 N T v 2 = 0 N^Tv_2=0 NTv2=0。第一个不等式很容易证明。为了看到第二个,我们需要考虑(21)中的三种情况。首先考虑 S ( ω ) n ^ = 0 , N T S ( ω ) 2 n ^ = 0 S(\omega)\hat{n}=0,N^TS(\omega)^2\hat{n}=0 S(ω)n^=0,NTS(ω)2n^=0的情况。那么 ω = ω ^ \omega=\hat{\omega} ω=ω^ N T v 2 = N T S ( ω ) 2 n ^ = 0 N^Tv_2=N^TS(\omega)^2\hat{n}=0 NTv2=NTS(ω)2n^=0。第二,考虑 S ( ω ) n ^ = 0 S(\omega)\hat{n}=0 S(ω)n^=0的情况,即 ω = a n ^ \omega=a\hat{n} ω=an^对某些 a ∈ R a\in\mathbb{R} aR。那么 ω ^ = a n ^ + ε n ^ ⊥ \hat{\omega}=a\hat{n}+\varepsilon\hat{n}^\perp ω^=an^+εn^。然后 v 2 = S ( ω ^ ) T n ^ = S ( ω ^ ) 2 n ^ = S ( a n ^ + ε n ^ ⊥ ) S ( ε n ^ ⊥ ) n ^ v_2=S(\hat{\omega})^T\hat{n}=S(\hat{\omega})^2\hat{n}=S(a\hat{n}+\varepsilon\hat{n}^\perp)S(\varepsilon\hat{n}^\perp)\hat{n} v2=S(ω^)Tn^=S(ω^)2n^=S(an^+εn^)S(εn^)n^。由于 S ( ε n ^ ⊥ ) n ^ S(\varepsilon\hat{n}^\perp)\hat{n} S(εn^)n^ a n ^ a\hat{n} an^ ε n ^ ⊥ \varepsilon\hat{n}^\perp εn^都正交,它与它们的和正交,该和非零,因此 v 2 = 0 v_2=0 v2=0且它在 n ^ T \hat{n}^T n^T的零空间中。因此 N T S ( ω ^ ) T n ^ = 0 N^TS(\hat{\omega})^T\hat{n}=0 NTS(ω^)Tn^=0。最后,考虑 S ( ω ) n ^ = 0 S(\omega)\hat{n}=0 S(ω)n^=0 N T S ( ω ) T n ^ ≠ 0 N^TS(\omega)^T\hat{n}\ne 0 NTS(ω)Tn^=0的情况。那么我们有 S ( ω ^ ) 2 n ^ = S ( ω ) 2 n ^ + ε 2 S ( n ^ ) S ( ω ) n ^ S(\hat{\omega})^2\hat{n}=S(\omega)^2\hat{n}+\varepsilon^2 S(\hat{n})S(\omega)\hat{n} S(ω^)2n^=S(ω)2n^+ε2S(n^)S(ω)n^。这在 n ^ T \hat{n}^T n^T的零空间中有一个非零分量,因为 ε 2 S ( n ^ ) S ( ω ) n ^ \varepsilon^2 S(\hat{n})S(\omega)\hat{n} ε2S(n^)S(ω)n^非零且在 n ^ T \hat{n}^T n^T的零空间中,而 S ( ω ^ ) 2 n ^ S(\hat{\omega})^2\hat{n} S(ω^)2n^ n ^ T \hat{n}^T n^T的零空间正交。因此,我们有 N T v 2 = 0 N^Tv_2=0 NTv2=0。现在注意到 v 1 T n ^ = 0 v_1^T\hat{n}=0 v1Tn^=0。令 v 3 v_3 v3为非零向量使得 v 3 T n ^ = v 3 T v 1 = 0 v_3^T\hat{n}=v_3^Tv_1=0 v3Tn^=v3Tv1=0。因此 v 1 v_1 v1 v 3 v_3 v3张成 n ^ \hat{n} n^的零空间。这意味着我们可以写 v 2 = c 1 n ^ + c 2 v 3 + c 3 v 1 v_2=c_1\hat{n}+c_2v_3+c_3v_1 v2=c1n^+c2v3+c3v1对某些标量 c 1 c_1 c1 c 3 c_3 c3。由于 v 2 T v 1 = 0 v_2^Tv_1=0 v2Tv1=0 N T v 2 = 0 N^Tv_2=0 NTv2=0我们知道 c 3 = 0 c_3=0 c3=0 c 2 = 0 c_2=0 c2=0

观察到

λ ˙ 2 ( t ) = λ 1 ( t 1 ) − ∫ t 1 t α ( s ) d s   v 2 − 2 α ( t ) v 1 \dot{\lambda}_2(t)=\lambda_1(t_1)-\int_{t_1}^t\alpha(s)ds\,v_2-2\alpha(t)v_1 λ˙2(t)=λ1(t1)t1tα(s)dsv22α(t)v1

这意味着

λ ˙ 2 ( t ) = λ 1 ( t 1 ) + g 1 ( t ) n ^ + g 2 ( t ) v 3 − 2 α ( t ) v 1 \dot{\lambda}_2(t)=\lambda_1(t_1)+g_1(t)\hat{n}+g_2(t)v_3-2\alpha(t)v_1 λ˙2(t)=λ1(t1)+g1(t)n^+g2(t)v32α(t)v1

其中 g 1 ( t ) = c 1 ∫ t 1 t α ( s ) d s g_1(t)=c_1\int_{t_1}^t\alpha(s)ds g1(t)=c1t1tα(s)ds g 2 ( t ) = c 2 ∫ t 1 t α ( s ) d s = 0 g_2(t)=c_2\int_{t_1}^t\alpha(s)ds=0 g2(t)=c2t1tα(s)ds=0 t ∈ ( t 1 , t 2 ) t\in(t_1,t_2) t(t1,t2)。由于 v 1 , v 3 v_1,v_3 v1,v3 n ^ \hat{n} n^形成一组非零向量的正交集,如果 α \alpha α是关于时间的非常数函数,那么 N T λ ˙ 2 ( t ) = 0 N^T\dot{\lambda}_2(t)=0 NTλ˙2(t)=0几乎处处在 [ t 1 , t 2 ] [t_1,t_2] [t1,t2]上。如果 α \alpha α是常数,那么 g 2 g_2 g2是关于时间的非常数线性函数(因为 c 2 ≠ 0 c_2\ne 0 c2=0),因此 N T λ ˙ 2 ( t ) = 0 N^T\dot{\lambda}_2(t)=0 NTλ˙2(t)=0几乎处处在 [ t 1 , t 2 ] [t_1,t_2] [t1,t2]上。因此, N T λ ˙ 2 ( t ) = 0 N^T\dot{\lambda}_2(t)=0 NTλ˙2(t)=0几乎处处在 [ t 1 , t 2 ] [t_1,t_2] [t1,t2]上,这意味着存在 [ t 1 , t 2 ] [t_1,t_2] [t1,t2]中的一个开的有限区间使得 λ 2 \lambda_2 λ2将离开由 n ^ \hat{n} n^定义的子空间,这与假设 λ 2 ( t ) = − α ( t ) n ^ \lambda_2(t)=-\alpha(t)\hat{n} λ2(t)=α(t)n^ [ t 1 , t 2 ] [t_1,t_2] [t1,t2]上成立相矛盾。因此不存在有限区间使得 y ( t ) = λ 2 ( t ) = − α ( t ) n ^ y(t)=\lambda_2(t)=-\alpha(t)\hat{n} y(t)=λ2(t)=α(t)n^,即 κ ( t ) : = N T λ ˙ 2 ( t ) ≠ 0 \kappa(t):=N^T\dot{\lambda}_2(t)\ne 0 κ(t):=NTλ˙2(t)=0。由于 κ \kappa κ是时间的解析函数(因为 λ \lambda λ是时间的解析函数),要么它有可数个零点,要么存在它为零的时间区间[28]。由于我们证明了后者是不可能的,那么它必须有可数个零点。这就完成了证明。

下面的引理在使用Pontryagin极大值原理表明最优控制发生在凸可行控制集的极点处起着重要作用。

引理3:
以下优化问题的最优解也是可行解集 U ( σ ) U(\sigma) U(σ)的极点: max ⁡ T c y T T c \max_{T_c}y^TT_c maxTcyTTc 满足 T c ∈ U ( σ ) T_c\in U(\sigma) TcU(σ),其中 U ( σ ) : = { T c : ∥ T c ∥ ≤ σ , n ^ T T c ≥ cos ⁡ θ   σ } U(\sigma):=\{T_c:\|T_c\|\le\sigma,\hat{n}^TT_c\ge\cos\theta\,\sigma\} U(σ):={Tc:Tcσ,n^TTccosθσ},且 y ≠ 0 y\ne 0 y=0 y = − α n ^ y=-\alpha\hat{n} y=αn^对任意 α > 0 \alpha>0 α>0。因此最优解 T c ∗ T_c^* Tc满足 ∥ T c ∗ ∥ = σ \|T_c^*\|=\sigma Tc=σ

证明:
由于优化问题的目标函数是线性的,因此是凸的,最大化问题导致 U U U的边界 ∂ U \partial U U上的最优解[29]。 ∂ U \partial U U有一部分是半径为 σ \sigma σ的球面,一部分是单位法向量为 n ^ \hat{n} n^的超平面。边界的所有极点都在球面上:如果边界上的任何点不在球面上,那么它在超平面上,在边界上另外两点之间的线段上。这意味着 U U U的极点满足 ∥ T c ∥ = σ \|T_c\|=\sigma Tc=σ

注意到 y = c 1 n ^ + c 2 n ^ ⊥ y=c_1\hat{n}+c_2\hat{n}^\perp y=c1n^+c2n^对某些 c 2 ≠ 0 c_2\ne 0 c2=0和与 n ^ \hat{n} n^正交的单位向量 n ^ ⊥ \hat{n}^\perp n^。这意味着 T c ∗ = a 1 n ^ + a 2 n ^ ⊥ T_c^*=a_1\hat{n}+a_2\hat{n}^\perp Tc=a1n^+a2n^,其中 a 2 ≠ 0 a_2\ne 0 a2=0 a 1 2 + a 2 2 ≤ σ 2 a_1^2+a_2^2\le\sigma^2 a12+a22σ2。假设 n ^ T T c ∗ = cos ⁡ θ   σ \hat{n}^TT_c^*=\cos\theta\,\sigma n^TTc=cosθσ,这意味着 a 1 = cos ⁡ θ   σ a_1=\cos\theta\,\sigma a1=cosθσ。由于 y T T c ∗ = c 1 a 1 + c 2 a 2 = c 1 cos ⁡ θ   σ + c 2 a 2 y^TT_c^*=c_1a_1+c_2a_2=c_1\cos\theta\,\sigma+c_2a_2 yTTc=c1a1+c2a2=c1cosθσ+c2a2,如果 c 2 c_2 c2 a 2 a_2 a2同号且 a 1 2 + a 2 2 = σ 2 a_1^2+a_2^2=\sigma^2 a12+a22=σ2,即 ∥ T c ∗ ∥ = σ \|T_c^*\|=\sigma Tc=σ,那么代价最大。

因此最优解必须是 U U U的极点。

总结

这篇文章研究了行星软着陆问题,该问题可以表述为一个有状态和控制约束的有限时域最优控制问题。求解这个问题的主要困难在于控制输入上存在非凸约束。本文的主要贡献是引入了对这些控制约束的凸化方法,并证明它是无损的,即可以通过求解凸化松弛问题得到原问题的最优解。

论文首先给出了行星软着陆问题的数学描述,包括动力学方程、状态约束(如下滑道约束)和控制约束(如推力幅值和指向约束)。然后提出了两个优化问题的形式:最小着陆误差问题和最小燃料问题。接下来引入了这两个问题的凸松弛形式,其中非凸控制约束被凸约束代替。

论文的核心结果是定理1,它说明了在一定条件下,可以通过求解凸松弛问题得到原问题的最优解。证明过程用到了Pontryagin极大值原理,以及附录中给出的两个引理。引理2给出了余态方程的一些性质,引理3说明了最优控制发生在可行控制集的极点处。

为了方便求解,论文还引入了变量替换以消除动力学方程中的非线性,并使用了二阶锥规划对约束进行近似。最后,通过数值算例验证了所提出方法的有效性。

我给出一个简单的代码示例,演示如何使用cvxpy库在Python中求解凸化后的软着陆问题。

import cvxpy as cp
import numpy as np

# 问题参数
n = 100  # 时间步数
dt = 0.1  # 时间步长
m0 = 1000  # 初始质量
mf = 300  # 最终质量
g = 9.8  # 重力加速度
rho_1 = 1000  # 最小推力
rho_2 = 5000  # 最大推力
theta = np.pi/3  # 推力指向约束的半角
r0 = np.array([0, 0, 1000])  # 初始位置
v0 = np.array([0, 0, -50])  # 初始速度
rf = np.array([100, 100, 0])  # 目标位置

# 决策变量
r = cp.Variable((n+1, 3))  # 位置
v = cp.Variable((n+1, 3))  # 速度
u = cp.Variable((n, 3))  # 推力加速度
sigma = cp.Variable(n)  # 推力大小

# 初始条件
constr = [r[0] == r0, v[0] == v0]

# 动力学方程
for t in range(n):
    dr = v[t] * dt
    dv = (u[t] - g*np.array([0,0,1])) * dt
    constr.append(r[t+1] == r[t] + dr)
    constr.append(v[t+1] == v[t] + dv) 

# 终端状态约束
constr.append(r[-1] == rf)
constr.append(v[-1] == 0)

# 控制约束
for t in range(n):
    constr.append(cp.norm(u[t]) <= sigma[t])
    constr.append(u[t] @ np.array([0,0,1]) >= cp.norm(u[t])*np.cos(theta))
    constr.append(rho_1/m0 <= sigma[t])
    constr.append(sigma[t] <= rho_2/m0)

# 目标函数
objective = cp.Minimize(cp.sum(sigma)*dt)

# 求解优化问题
prob = cp.Problem(objective, constr)
result = prob.solve()

# 输出结果
print(f"最优燃料消耗: {result*m0}")
  1. 首先定义了问题的参数,如时间步数、初始状态、目标位置等。

  2. 然后定义了决策变量,包括各时刻的位置r、速度v、推力加速度u和推力大小sigma。

  3. 接下来是约束条件,包括初始条件、动力学方程约束、终端状态约束和控制约束。其中控制约束对应于论文中的凸化松弛形式。

  4. 目标函数是最小化总推力的积分,对应最小燃料消耗。

  5. 最后,我们构建优化问题,调用求解器,输出最优目标值。

这个示例模型与论文中的略有不同,例如使用了推力加速度而不是直接的推力作为控制变量,对质量的变化也进行了简化。但基本的思路是一致的,即将原问题转化为凸优化问题求解。
这篇论文中的参考文献列表:

[1] B. Açıkme¸se and S. R. Ploen, “Convex programming approach to powered descent guidance for mars landing,” Journal of Guidance, Control, and Dynamics, vol. 30, no. 5, pp. 1353–1366, 2007.

[2] L. Blackmore, B. Açıkme¸se, and D. P. Scharf, “Minimum-landing-error powered-descent guidance for mars landing using convex optimization,” Journal of Guidance, Control, and Dynamics, vol. 33, no. 4, pp. 1161–1171, 2010.

[3] J. S. Meditch, “On the problem of optimal thrust programming for a lunar soft landing,” IEEE Transactions on Automatic Control, vol. 9, no. 4, pp. 477–484, 1964.

[4] A. Miele, “The calculus of variations in applied aerodynamics and flight mechanics,” in Optimization Techniques, G. Leitmann, Ed. Elsevier, 1962, pp. 99–170.

[5] A. R. Klumpp, “Apollo lunar descent guidance,” Automatica, vol. 10, no. 2, pp. 133–146, 1974.

[6] U. Topcu, J. Casoliva, and K. D. Mease, “Minimum-fuel powered descent for mars pinpoint landing,” Journal of Spacecraft and Rockets, vol. 44, no. 2, pp. 324–331, 2007.

[7] R. Sostaric and J. Rea, “Powered descent guidance methods for the moon and mars,” in AIAA Guidance, Navigation, and Control Conference and Exhibit, 2005, p. 6287.

[8] F. Najson and K. D. Mease, “A computationally non-expensive guidance algorithm for fuel efficient soft landing,” in AIAA Guidance, Navigation, and Control Conference and Exhibit, 2006, p. 6438.

[9] B. A. Steinfeldt, M. J. Grant, D. A. Matz, R. D. Braun, and G. H. Barton, “Guidance, navigation, and control system performance trades for mars pinpoint landing,” Journal of Spacecraft and Rockets, vol. 47, no. 1, pp. 188–198, 2010.

[10] S. Boyd and L. Vandenberghe, Convex Optimization. Cambridge University Press, 2004.

[11] Y. Nesterov and A. Nemirovskii, Interior-Point Polynomial Algorithms in Convex Programming. SIAM, 1994.

[12] J. Peng, C. Roos, and T. Terlaky, Self-Regularity: A New Paradigm for Primal-Dual Interior-Point Algorithms. Princeton University Press, 2002.

[13] J. F. Sturm, “Using SeDuMi 1.02, a MATLAB toolbox for optimization over symmetric cones,” Optimization methods and software, vol. 11, no. 1-4, pp. 625–653, 1999.

[14] C. D’Souza, “An optimal guidance law for planetary landing,” in AIAA Guidance, Navigation, and Control Conference, 1997, pp. 1376–1381.

[15] S. R. Ploen, B. Acikmese, and A. Wolf, “A comparison of powered descent guidance laws for mars pinpoint landing,” in AIAA/AAS Astrodynamics Specialist Conference and Exhibit, 2006, p. 6676.

[16] B. A. Steinfeldt, M. J. Grant, D. A. Matz, R. D. Braun, and G. H. Barton, “Guidance, navigation, and control technology system trades for mars pinpoint landing,” in AIAA Guidance, Navigation and Control Conference and Exhibit, 2008, p. 6216.

[17] J. M. Carson III, B. Açıkme¸se, and L. Blackmore, “Lossless convexification of powered-descent guidance with non-convex thrust bound and pointing constraints,” in 2011 American Control Conference, IEEE, 2011, pp. 2651–2656.

[18] L. D. Berkovitz, Optimal Control Theory, ser. Applied Mathematical Sciences. Springer New York, 1974, vol. 12.

[19] K.-C. Toh, M. J. Todd, and R. H. Tütüncü, “SDPT3—a matlab software package for semidefinite programming, version 1.3,” Optimization methods and software, vol. 11, no. 1-4, pp. 545–581, 1999.

[20] J. Mattingley and S. Boyd, “Real-time convex optimization in signal processing,” IEEE Signal Processing Magazine, vol. 27, no. 3, pp. 50–61, 2010.

[21] ——, “Automatic code generation for real-time convex optimization,” in Convex Optimization in Signal Processing and Communications, D. P. Palomar and Y. C. Eldar, Eds. Cambridge University Press, 2010.

[22] Y. Wang and S. Boyd, “Fast model predictive control using online optimization,” IEEE Transactions on Control Systems Technology, vol. 18, no. 2, pp. 267–278, 2009.

[23] Y. Kim and M. Mesbahi, “Quadratically constrained attitude control via semidefinite programming,” IEEE Transactions on Automatic Control, vol. 49, no. 5, pp. 731–735, 2004.

[24] G. P. Sutton and O. Biblarz, Rocket Propulsion Elements. John Wiley & Sons, 2010.

[25] M. Tamiz, D. Jones, and C. Romero, “Goal programming for decision making: An overview of the current state-of-the-art,” European journal of operational research, vol. 111, no. 3, pp. 569–581, 1998.

[26] L. S. Pontryagin, Mathematical Theory of Optimal Processes. Routledge, 2018.

[27] B. Açıkme¸se and L. Blackmore, “Lossless convexification of a class of optimal control problems with non-convex control constraints,” Automatica, vol. 47, no. 2, pp. 341–347, 2011.

[28] H. Cartan, Elementary Theory of Analytic Functions of One or Several Complex Variables. Courier Corporation, 1995.

[29] L. D. Berkovitz, Convexity and Optimization in R n R^n Rn. John Wiley & Sons, 2003.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/682278.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring自带定时任务@Scheduled注解

文章目录 1. cron表达式生成器2. 简单定时任务代码示例&#xff1a;每隔两秒打印一次字符3. Scheduled注解的参数3.1 cron3.2 fixedDelay3.3 fixedRate3.4 initialDelay3.5 fixedDelayString、fixedRateString、initialDelayString等是String类型&#xff0c;支持占位符3.6 tim…

用幻灯片讲解C++手动内存管理

用幻灯片讲解C手动内存管理 1.栈内存的基本元素 2.栈内存的聚合对象 3.手动分配内存和释放内存 注意&#xff1a;手动分配内存&#xff0c;指的是在堆内存中。 除非实现自己的数据结构&#xff0c;否则永远不要手动分配内存! 即使这样&#xff0c;您也应该通过std::allocator…

gitlabcicd-k8s部署runner

一.环境信息 存储使用nfs挂载持久化 k8s环境 helm安装 建议helm 3 二.部署gitlab-runner 1.查看gitlab版本 进入容器可通过执行&#xff1a;gitlab-rake gitlab:env:info rootgitlab-647f4bd8b4-qz2j9:/# gitlab-rake gitlab:env:info System information System: Current Us…

重生之 SpringBoot3 入门保姆级学习(14、内容协商基础简介)

重生之 SpringBoot3 入门保姆级学习&#xff08;14、内容协商基础简介&#xff09; 3.3 内容协商3.3.1 基础简介3.3.2 演示效果 3.3 内容协商 3.3.1 基础简介 默认规则 基于请求头的内容协商&#xff08;默认开启&#xff09; 客户端向服务器发送请求&#xff0c;携带 HTTP 标…

php: centos+apache 启动php项目

指导文件 &#xff1a;PHP: Apache 2.x on Unix systems - Manual 下载路径 &#xff1a;Index of /httpd configure: error: APR not found. 解决方案&#xff1a; APR&#xff08;Apache Portable Runtime&#xff09;库。APR是Apache HTTP服务器的可移植运行时环境&…

51建模网3D编辑器:一键为3D模型设置特殊材质

3D设计师要对3D模型设置玻璃或者钻石材质时&#xff0c;操作比较复杂&#xff0c;但是利用51建模网的3D编辑器&#xff0c;不用下载安装软件&#xff0c;在线通过浏览器即可编辑&#xff0c;具有一键设置特殊材质的功能。目前&#xff0c;它支持钻石材质、玻璃材质和水波纹材质…

nvme-cli常见命令分析

一、背景 nvme-cli命令常常用于获取或者设置SSD参数&#xff0c;比如常见的nvme list&#xff0c;nvme id-ctrl等&#xff0c;都是获取SSD的基本信息&#xff0c;也有nvme admin-passthru用于读取或者设置自定义命令。作为使用者&#xff0c;我们并不知道nvme-cli源码怎么实现…

程序员修炼之道 07:调试

不记录&#xff0c;等于没读。 这里是我阅读《程序员修炼之道》这本书的记录。 软件缺陷以各种方式表现出来&#xff0c;从对需求的误解到编码错误。现在的计算机系统仍有局限性&#xff0c;能干你让它干的事情&#xff0c;但不一定能干你想让它干的事情。本章介绍调试中涉及的…

基于STC12C5A60S2系列1T 8051单片机实现串口调试助手软件与单片机相互发送数据的RS485通信功能

基于STC12C5A60S2系列1T 8051单片机实现串口调试助手软件与单片机相互发送数据的RS485通信功能 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机串口通信介绍STC12C5A60S2系列1T 8051单片机串口通信的结构基于STC12C5A60S2系列1T 8051单片机串口通信的特殊功…

编译原理总结

编译器构成 1. 前端分析部分 1.1 词法分析 确定词性&#xff0c;输出为token序列 1.2 语法分析 识别短语 1.3 语义分析 分析短语在句子中的成分 IR中间代码生成 2. 机器无关代码优化 3. 后端综合部分 目标代码生成 机器相关代码优化 4. 其他 全局信息表 异常输出

SOCKS 代理 和 HTTP 代理, WebSocket

SOCKS 代理 和 HTTP 代理 的区别 SOCKS 代理 和 HTTP 代理 都是代理服务器&#xff0c;它们充当客户端和目标服务器之间的中介&#xff0c;但它们的工作方式和应用场景有所不同。 1. SOCKS 代理&#xff1a; 工作原理&#xff1a; SOCKS 代理是一种更底层的代理&#xff0c;…

列存在 OceanBase 数据库架构中的应用与演进

OceanBase 4.3 版本上线了列存功能&#xff0c;以满足实时分析的需求。 本文作为《特性解读&#xff1a;列存技术》的后续&#xff0c;将详细阐述列存技术在OceanBase数据库架构中的应用、发展历程&#xff0c;以及未来的趋势。 一、前言 1970 年&#xff0c;关系模型之父 Co…

Java物业管理系统+数据库应用程序开发[JavaSE+JDBC+idea控制台+MySQL]

背景&#xff1a; 使用JavaSEJDBCMySQL技术实现一个物业管理系统&#xff0c;具体要求如下 物业管理系统需求&#xff1a; 需求分析 1.1用户需求分析 在进入系统之前&#xff0c;要进行身份确认&#xff0c;只有用户名和用户密码都相符的用户方可进入本系统&#xff0c;为…

PCL 抛物线回归拟合(Quadratic,二维)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里仍然是最小二乘法的应用,其推导过程如下所述: 1.二次函数模型: 其中,a、b 和 c 是需要确定的参数。 2.最小二乘法 假设我们有一组数据点 ( x 1 ​ , y

负压实验室设计建设方案

随着全球公共卫生事件的频发&#xff0c;负压实验室的设计和建设在医疗机构中的重要性日益凸显。负压实验室&#xff0c;特别是负压隔离病房&#xff0c;主要用于控制传染性疾病的扩散&#xff0c;保护医护人员和周围环境的安全。广州实验室装修公司中壹联凭借丰富的实验室装修…

k8s 对外服务之 Ingress(七层代理)

一 Ingress 简介 理论方面 1&#xff0c; k8s service 作用 对集群内部&#xff1a; 它不断跟踪pod的变化&#xff0c;更新endpoint中对应pod的对象&#xff0c;提供了ip不断变化的pod的服务发现机制 对集群外部&#xff1a; 对集群外部&#xff0c;他类似负载均衡器&am…

剪画小程序:AI声音克隆,只需10秒完美复制真人音色

Hello&#xff0c;大家好呀&#xff01;我是分享声音的克隆。 想象一下&#xff0c;如果你能够复制自己的声音&#xff0c;那么您可以给视频配上自己的声 音&#xff0c;那是多么的有趣啊。 ​编辑 工具&#xff1a;小程序剪画 功能简介&#xff1a;支持多种端口&#xff1…

Vuforia AR篇(七)— 二维码识别

目录 前言一、什么是Barcode &#xff1f;二、使用步骤三、点击二维码显示信息四、效果 前言 在数字化时代&#xff0c;条形码和二维码已成为连接现实世界与数字信息的重要桥梁。Vuforia作为领先的AR开发平台&#xff0c;提供了Barcode Scanner功能&#xff0c;使得在Unity中实…

【Web API DOM10】日期(时间)对象

一&#xff1a;实例化 1 获取系统当前时间即创建日期对象 const date new Date() console.log(date) 2024年6月5日周三 2 获取指定的时间 以获取2025年6月29日为例 const date new Date(2025-6-29) console.log(date) 二&#xff1a;日期对象方法 1 使用场景&#xf…

QT安装与使用

QT安装与使用 Windows QT安装 1.下载windowsQT安装包 本教程使用的QT版本是&#xff1a;https://download.qt.io/archive/qt/5.12/5.12.9/ 本教程的安装包放在阿里云盘供大家获取。 2.QT安装 如果没有梯子&#xff0c;大家登录QT官网可能会失败&#xff0c;这里可以不需要Q…