3-body Problem and orbit transfer, from MIT6.832 Underactuated Robotics

problem set 4 另外一部分。

牛顿曾经说过,我从未感到过头疼,直到遇到三体问题。三体问题之复杂。。。不说了,我连两体问题还没搞透呢。

做完这道题的感觉就是,optimization真的是工程上绕开数学难解问题的强大工具。 然后似乎就觉得,好像上个月球也没那么难嘛。。。

先来看看无控制情况下,三体问题在平面上的几个特例,几个初值是example 和test里面给的:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
为了代码简单(其实是题目自带的),仿真一律采用了欧拉一步向前法,所以精度什么的你懂的。其实在一般工业控制中,欧拉法完全胜任。然而在天体问题中数值精度及其敏感!!这里几个图其实月亮引力都还没用上力,都还是二体问题仿真,上面的图是步长0.0001出的图,如果是0.001的话,就变成了下面的图
在这里插入图片描述
连能量守恒定律都保不住了。。。也就是某时刻高速冲向近地点时,下一时刻已经跑到另一方向极远点了,而且速度方向还没变,地球引力还没来得及往回扯就已经用不上力了,然后就冲出地球走向宇宙了。还记得曾经第一次见Tudor的时候,他和高老师在讨论数值问题,Tudor说:数值求解太难了。。。 我当时觉得自己做了这么多年的仿真还有点底气的,上去说我天天都用欧拉法很好用的啊,他们俩停下来费了好大劲来给我解释。。。
在这里插入图片描述在这里插入图片描述
这几个图图还真是好看,不过花瓣展开越来越大这件事情,是欧拉法不稳定的锅,看来保辛算法还是很有必要啊,以后有空要瞅一眼。下面来看,怎么把三体问题直接无脑扔给optimizer。。。控制问题我就不改步长了,因为要改的地方不止一处实在不方便。而且由于控制量的存在,甚至改不改意思也不大了

说起来比把三体问题扔给optimizer更无脑的是,连线性规划都懒得变换,直接非线性约束就扔出来了,所以我也没指望能寻到全局最优解,然后自己把非线性规划的初值做成随机的,多运行几次看看不同效果。。。当然这样也居然通过全部测试了,总能量90单位还是很宽松的上限。

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述(最后三幅图是同一个初值,奇怪的是最后一个才是耗能量最小的那个)

在地球附近的轨迹,由于仿真精度的关系,又出现了违反物理常识的行为,所以轨线诡异。其实即便这样也可以控制的更好,然而我并没有在地球附近做有价值的代码。

其实我的代码显然不是出题人的期望,因为我没有转化成LP problem, 但是之前在这道题上的时间花的有点多了(没有早点想到节省能量的简单处理方式), 又拿到了满分,所以暂时先放一放。以后有时间把这里优化一下代码还是很有趣味的。这道题是整个课程唯一一道出题人建议大家多去plaza讨论的,可见其难度,虽然拿到test满分并不难.

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值