问题描述
我在 python 中使用 do_mpc 工具箱。我想为估算器(MHE)设置我自己的初始条件,但文档不是很清楚我如何做到这一点。有没有人做过? 这里是工具箱和特定类的链接 https://www.do-mpc.com/en/latest/api/do_mpc.estimator.MHE.opt_x_num.html#do_mpc.estimator.MHE.opt_x_num
非常感谢您的回复
解决方法
您现在可能已经找到了答案,但估算器的 set_initial_guess
函数表明您可以直接为 opt_x_num
变量赋值:
def set_initial_guess(self):
"""..."""
assert self.flags['setup'] == True,'mhe was not setup yet. Please call mhe.setup().'
self.opt_x_num['_x'] = self._x0.cat/self._x_scaling
self.opt_x_num['_u'] = self._u0.cat/self._u_scaling
self.opt_x_num['_z'] = self._z0.cat/self._z_scaling
self.opt_x_num['_p_est'] = self._p_est0.cat/self._p_est_scaling
self.flags['set_initial_guess'] = True
特别是,上面的代码示例将每个 opt_x_num
组件设置为 DM
的一个实例(来自 casadi
)。这些值是使用 x0
、u0
等变量计算的。正如文档字符串所暗示的那样:
使用当前类属性 :py:obj:x0
,:py:obj:z0
和 :py:obj:u0
,:py:obj:{{1} } 为 MHE 创建一个初始猜测。
您可以通过设置p_est0
、x0
等变量来设置初始猜测内容。例如,您可以调用以下内容:
u0
最后,您可以通过打开 GitHub 讨论寻求进一步帮助 - https://github.com/do-mpc/do-mpc/discussions