💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
## **1. 为什么需要运动控制?** 要控制飞船飞行,实际上是要控制飞船的位移。 但在SE中,我们只能控制方块的出力。<br> 就拿推进器来说,编程块只能控制推进器的推力。 推力/飞船质量 = 飞船产生的加速度 加速度对时间积分 = 速度 速度对时间积分 = 飞船的位移<br> 所以在知道一个所需位移的情况下,去求解推进器所需的出力,是比较麻烦的。<br> 下面举个例子 >[success] 例:在一维情况下,要让飞船从0位置飞往100位置并停下,只能控制推进器的当前推力(假设飞船有前后两个推进器,用一个可以为负的推力值表示合推力,范围是[-5,5])。求解在时间最短的情况下,飞船推力随时间变化的函数关系? 可以由公式: > `$ S(t) = \int v_{(t)} dt $` `$ v(t) = \int a_{(t)} dt $` `$ a = f/m $` 得出位移、时间和推力的关系。 在S=100,推力范围在[-5,5]的条件下,时间t存在一个最小值,而此时推力和时间的函数关系就是我们要求解的结果。 **当然,这只是理想情况**<br> 实际情况是: * 飞船挂载了重物,无法获得精确的质量m * 飞行过程中电力不足,部分推进器损坏等原因导致推力f的范围临时发生改变 * 在某些外力影响下推力f并不准确 所以我们需要一个简单而有效的方式来计算推进器到底需要如何设置推力。