🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## **2. 什么是过程控制** 在SE中,我们控制方块是通过在编程块中设置方块的某些属性。 编程块中的代码,运行一次就结束。 如果你想一次性的把所有推进器推力设为10,那事情就到此结束了。 但我们最终目的是实时的控制推进器的出力,这样才能让飞船有起步有减速的精确停在我们指定的位置。 所以我们要让编程块不停的运行,最快频率是每秒60次(和SE的物理运算频率相同),下文中统一将编程块的一次运行称为一帧 在这种情况下,应该用瞬时性的角度去编写程序。 `$ 推进器出力 = 目标位置 - 飞船当前位置 $` 这就是一个瞬时性的观念。<br> 我们把 (目标位置 - 飞船当前位置) 看做误差。 `$ 推进器出力 = 误差 $` 在编程块中,只要飞船运动了,每一帧获取到的误差值是不同的。 当误差大,推进器推力就大,误差减小以后,推进器的推力就减小,越过目标以后,推进器推力就为负数(反向)。 而让推进器的推力与误差相关,就是一种瞬时性的概念。 简而言之就是这个关系不需要考虑**时间**这个变量。<br> 其实这个公式已经可以解决一部分问题了。但是它还不够好,原因是它会不可避免的产生**震荡**。