总结一下最近学习的一篇文章。
关键词:凸优化、序列凸优化、行星进入、带约束的轨迹优化
基于序列凸优化的行星进入约束轨迹优化
题目 | Constrained Trajectory Optimization for Planetary Entry via Sequential Convex Programming |
---|---|
期刊 | JOURNAL OF GUIDANCE,CONTROL, AND DYNAMICS |
作者,时间 | Zhenbo Wang, 2017 |
解决问题 | 此类序列凸优化方法主要解决的就是优化中收敛性和快速求解的问题,因为无论是上升、还是EDL,其动力学和约束都比较复杂且面临着较强的非线性,因此也衍生出很多针对于特定的问题或者方程求解的方法。本文研究的重点是滑翔入轨轨迹优化问题。 1. 动力学高度非线性,并且状态和控制量耦合,当应用连续线性化时,可能会产生高频抖动。 2. 将非凸问题一步步近似为可以用凸优化方法解决的凸问题,在近似之后要证明变换前后的等价性,并且证明了收敛性和最优解的存在性问题。 3. 问题经过变换之后仍然是无限维的优化控制问题,需要进行离散化。 |
所用方法 | 1. 针对于上述提到的问题1,本文的一个亮点就在于新的控制量的选取上。如果为了解耦控制量和状态量选取新的控制量
u
1
=
cos
α
u _{1}=\cos\alpha
u1=cosα,
u
2
=
sin
α
u _{2}=\sin\alpha
u2=sinα,那么相应就会产生一个二阶非凸等式约束
u
1
2
+
u
2
2
=
1
u _{1}^{2}+u _{2}^{2}=1
u12+u22=1,但是这里利用了一种更简单的方法,是通过定义了一个新的控制量输入
σ
˙
=
u
\dot{\sigma}=u
σ˙=u,并添加一个新的状态方程,从而使状态量和控制量解耦。 2. 利用连续线性近似的方法将目标函数和动力学方程进行线性化。 3. 采用梯形离散化方法将无限维问题转换为有限维问题进行求解。 |
创新点 | 1. 选取新控制量的方法较为简单,没有使用松弛方法,在相同的收敛速度下得到更精确的解。问题的等价性较容易证明。论文中提到“这种方法不需要正则化项来保证控制约束的满足和序列方法的收敛性。因此,本文所提出的新方法可能更精确地用于弹道优化”,不是很懂这句话具体的含义,希望可以帮忙解释一下。 2. 求解速度较快,几步十几步就能得到结果。 3. 没有采用基于能量的运动方程,使用原始的运动方程,没有做任何假设或近似来计算速度。 |
存在问题 | 1. 引入新的控制变量后,相应地就会产生一个非凸约束abs
(
σ
)
≥
σ
min
(\sigma) \ge {{\sigma }_{\min }}
(σ)≥σmin,没有很好地处理这个问题。 2. 凸化过程中对成本函数进行了线性化,但是后续并没有用到这一点,另外,也是我自己疑惑的一个点,比如将最终速度作为成本函数,那在编程的过程中就直接将速度这个状态量表示上去就可以了,但是此时速度这个量是否是凸的呢?如果不是凸的是否能直接用呢? 再说几个我再编程中遇到的几个问题: 1. 对于初值要求真的很高,不知道文中所说的初值生成过程中采用的“specific constant control”是否能够实现。 2. 自己在实际仿真的时候发现即使添加了信赖域约束,最终收敛的成本函数仍然在两个值中间跳,没有很好地解决SCP面临的这个问题。可以考虑采用变信赖域约束方法。 |
参考文献
[1] Wang Z, Grant M J. Constrained trajectory optimization for planetary entry via sequential convex programming[J]. Journal of Guidance, Control, and Dynamics, 2017, 40(10): 2603-2615.