3

我想在一个真正的机器人上做一些轨迹跟踪,我想使用 MPC,所以我找到了这个 gekko。我可以对我的机器人和其他东西进行模拟,但是是否可以实时使用它,因为我认为计算最佳解决方案需要一些时间,而且我不太确定如何编写明智的代码,如果你只需获取第一个输入并将其提供给真实系统,然后使用传感器读数更新状态值,然后再次使用 m.solve() 函数,依此类推。

提前致谢

4

1 回答 1

0

是的,Gekko 当然可以进行实时控制,但您需要注意以下几点:

  • 周期时间:应用程序必须读取传感器,计算模型的更新(估计),优化未来的移动计划(控制),并在指定的周期时间内实施移动计划。如果您的循环时间快于 10 Hz,您可能需要查看 LQR 控制器或其他更快的方法。
  • 模型形式:非线性模型计算时间较长或可能不收敛。线性模型通常用于许多行业,因为它快速且可靠。
  • 视野长度:您需要足够长的视野长度来预测影响当前移动的未来约束
  • 地平线分辨率:控制器的第一步需要与循环时间一致。未来的预测步骤可以是任何步长。
  • 本地求解:如果您在 Raspberry Pi 等嵌入式硬件上实现 MPC,则本地求解可能比远程求解慢。您可以对公共服务器使用远程求解 ( remote=True),在 Windows 或 Linux 中设置自己的本地服务器 ( remote=True server='http://10.0.0.10'),或者在嵌入式硬件上本地求解 ( remote=False)。在创建 gekko 对象 ( )时设置remoteand 。serverm=GEKKO(remote=False)

机器学习和动态优化课程中有很多实时 MPC 代码和温度控制实验室 (TCLab)的应用程序。下面是 MPC 的实际应用。

TCLab MPC

这是设备:

TC实验室

于 2020-03-18T17:01:28.060 回答