轨迹优化与直接配点法

本文深入探讨了轨迹优化问题,特别是直接配点法,包括变分法求解和梯形配点法的细节。直接配点法通过离散化轨迹,将其转化为非线性规划问题求解。此外,还讨论了实现过程中如初始化、网格细化和误差分析等关键问题。

本文主要讨论轨迹优化问题中的直接配点法,希望通过此教程帮助读者理解轨迹优化问题的基本概念与直接配点法的相关理论基础,最后我们还会讨论一些具体实现问题。直接配点法最终是通过非线性规划求解器来得到最终结果,因此在阅读本文之间可以先了解NLP问题相关基础知识,当然这并不影响对本文的理解,本文仅需要一些简单的高等数学与微分方程的知识。

轨迹优化问题

问题简介

轨迹用来描述一个物体的运动过程,通常是关于时间的变量。轨迹优化一种用于寻找最佳轨迹选择的方法,通常是通过选择合适的系统输入或控制量,是系统完成期望的运动过程。在控制领域,轨迹优化近似于最优控制,但从更广的概念上来讲,轨迹优化更具一般性。

下面我们用一个例子来进一步说明轨迹优化问题。

在这里插入图片描述

如图所示,一个滑块放置在光滑地面上,并受到一个水平方向的作用力。我们想要滑块在里的作用下,在1s的时间内从开始位置运动到指定位置,并刚好停在该处。这个问题存在着无数种可能的运动轨迹,进一步,我们希望从中确定一条最优的轨迹,如图所示。

在这里插入图片描述
在这里插入图片描述
我们可以把这个问题用数学语言形式化。系统满足如下的动力学方程:
x˙=ν,ν˙=u\dot{x}=\nu, \quad \dot{\nu}=ux˙=ν,ν˙=u
并要求满足如下的边界约束:
x(0)=0,x(1)=1ν(0)=0,ν(1)=0\begin{array}{ll} x(0)=0, & x(1)=1 \\ \nu(0)=0, & \nu(1)=0 \end{array}x(0)=0,ν(0)=0,x(1)=1ν(1)=0
轨迹优化关心在一定指标下的最优轨迹,这样的指标可以用如下的目标函数来描述:
min⁡u(t),x(t),ν(t)∫01u2(τ)dτ\min _{u(t), x(t), \nu(t)} \int_{0}^{1} u^{2}(\tau) d \tauu(t),x(t),ν(t)min01u2(τ)dτ

形式化描述

一般来说,轨迹优化问题通过在一定的约束条件下优化如下的目标函数来得到最优轨迹:
min⁡t0,tF,x(t),u(t)J(t0,tF,x(t0),x(tF))⏟Mayer Term +∫t0tFw(τ,x(τ),u(τ))dτ⏟Lagrange Term \min _{t_{0}, t_{F}, \boldsymbol{x}(t), \boldsymbol{u}(t)} \underbrace{J\left(t_{0}, t_{F}, \boldsymbol{x}\left(t_{0}\right), \boldsymbol{x}\left(t_{F}\right)\right)}_{\text {Mayer Term }}+\underbrace{\int_{t_{0}}^{t_{F}} w(\tau, \boldsymbol{x}(\tau), \boldsymbol{u}(\tau)) d \tau}_{\text {Lagrange Term }}t0,tF,x(t),u(t)minMayer Term  J(t0,tF,x(t0),x(tF))+Lagrange Term  t0tFw(τ,x(τ),u(τ))dτ
其中的约束条件包含如下形式:
系统的动力学约束:
x˙(t)=f(t,x(t),u(t))\dot{\boldsymbol{x}}(t)=\boldsymbol{f}(t, \boldsymbol{x}(t), \boldsymbol{u}(t))x˙(t)=f(t,x(t),u(t))
路径约束:
h(t,x(t),u(t))≤0\boldsymbol{h}(t, \boldsymbol{x}(t), \boldsymbol{u}(t)) \leq \mathbf{0}h(t,x(t),u(t))0
边界约束:
g(t0,tF,x(t0),x(tF))≤0\boldsymbol{g}\left(t_{0}, t_{F}, \boldsymbol{x}\left(t_{0}\right), \boldsymbol{x}\left(t_{F}\right)\right) \leq \mathbf{0}g(t0,tF,x(t0),x(tF))0
和状态量与控制量边界:
xlow≤x(t)≤xuppulow≤u(t)≤uupp\begin{array}{l} \boldsymbol{x}_{\mathrm{low}} \leq \boldsymbol{x}(t) \leq \boldsymbol{x}_{\mathrm{upp}} \\ \boldsymbol{u}_{\mathrm{low}} \leq \boldsymbol{u}(t) \leq \boldsymbol{u}_{\mathrm{upp}} \end{array}xlowx(t)xuppulowu(t)uupp

由于最终我们想要求得的是控制量关于时间的具体函数形式,而非一个值或一个参数,因此轨迹优化问题也可以理解为在一定约束或大量约束下的泛函问题。

变分法求解

(对变分法不熟悉的可以跳过本部分)
针对泛函问题,可以采用变分法进行求解。以滑块移动的问题为例,由于其目标函数可以表示为如下形式:
J=∫01u2(τ)dτ=∫01x¨2(τ)dτJ=\int_{0}^{1} u^{2}(\tau) d \tau=\int_{0}^{1} \ddot{x}^{2}(\tau) d \tauJ=01u2(τ)dτ=01x¨

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值