显式制导
总加速函数设计,F矩阵和E矩阵,还有你最爱的泰勒级数
基本知识
两个动力学常微分方程:
两点边值问题:
当时时刻的位置和速度(导航系统提供)
终端时刻的位置和速度
实际控制量:
推力矢量——幅值+方向
引力场很难计算,求导、积分等操作都很困难,所以可以直接设计加速度函数,选择“总”加速度作为控制量,先设计总角速度,然后调整推力角速度使其与重力加速度的和加速度等于总加速度,相当于分解了设计步骤
总加速度函数的设计
需要满足的条件
显然就是两点边值条件,积分后可知
速度改变=加速度一次积分
位移改变-初速度*时间=加速度二次积分
显然满足这样条件的函数有无数个,我们可以使用任意一组函数空间的基来设计相应的函数,注意,这样的基函数可以不是正交函数,比方我们下面所用的幂级数就不是正交函数,但是保证他们线性无关就行了。(糟糕,我好像嗅到了泛函的气息)
两点边值条件下的总加速度函数设计
这里我们需要满足两个方程,所以我们把方程的自由度限定为两个,也就是说用两个线性无关函数的线性组合来表示总加速度:
他的一次积分和两次积分仍然需要满足上面那个方程:
其中
即:
我们的目的是确定系数和,而现在我们已经有两点边值条件了,所以:
其中E是F的逆
本例中,令
、、、分别是p1、p2的一次积分和二次积分,且
则
即
最后的表达式为
x轴需要的加速度为
显式制导中实际上是“预测-矫正”框架,我们观察这个式子
会发现最右侧的那个矩阵,其中
- 第一行是速度在时的误差
- 第二行是位移在时的误差
所以式子实际上实在预测终端误差,并且基于E矩阵来矫正,可以料想,如果导航和控制系统完全理想的工作,那么是不变了,但是实际过程中必然要不断计算和矫正
另外,注意到E矩阵中各个元素分母都是的幂级数,所以当变小时,E矩阵各个元素会越来越来,为了避免数据溢出,实际设计的时候,动力飞行的最后几秒会停止更新矩阵及c_1、c_2
三个边值条件下的总加速度函数设计
如果约束不止是“两点”边值条件,而是三点,比方对目标点的加速度也有要求,那么就要取3个参数:
这里的三个函数仍然是互相线性无关的,因为幂级数本身是函数空间的基,他可以表示任何一个函数。至于为什么要用幂级数,也许可以理解我们在用多项式去拟合总加速度函数(?)在老师PPT第3小节还说这种选取是最优显示制导,应该也是有比较严谨的理由吧。
不过最直观的体验是,这样写出来的F和E矩阵确实很有规律也很好用,下面会计算说明
相应的,加速度的表达式变为:
系数需要满足的条件有:
比较令人欣慰的是可以直接由约束条件得到,而后面两个式子组成的二阶矩阵也与之前的情况类似,他们系数的变化非常的有规律
可以把已知的拿到等式左边,此时的等式写成矩阵形式则为
则
反解出的为
三轴运动是互相解耦的,为了简便,上面的所有公式和说明都是针对x轴来说的,其他轴其实也是一模一样
推力不可调火箭的总加速度函数设计
已知量
- 当前时刻的位置和速度
- 终端时刻的目标位置和速度
注意到此时有“推力不可调”这样一个限制条件,所以不能直接设计“总加速函数”,而是要把他写的更详细一点
下面是我们的动力学方程
这个例子中我们是在y轴上设计的制导律
观察一下,其中我们能控制的不过是这个角度而已,其他的都木得机会
所以这里我们对控制量做参数化设计
这样可以使得“总”加速度形式变得和我们原先熟悉的一样,之后的计算也就流程化了
需要注意的是,推力加速度也是时间的函数,所以积分的时候也要带上他
之后的计算虽然差不多,但是也很繁琐,这里就不多列出了,详见PPT第36面