我在 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
非常感谢您的回复
我在 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
特别是,上面的代码示例将每个组件设置为(from )opt_x_num
的一个实例。这些值是使用 、 等变量计算的。正如文档字符串所建议的:DM
casadi
x0
u0
使用当前类属性 :py:obj:
x0
, :py:obj:z0
和 :py:obj:u0
, :py:obj:p_est0
创建 MHE 的初始猜测。
您可以通过设置 、 等变量来设置初始猜测x0
内容u0
。例如,您可以调用如下内容:
self._controller.x0 = np.array([100, 200, 0, 0])
self._controller.set_initial_guess()
最后,您可以通过打开 GitHub 讨论来寻求进一步的帮助 - https://github.com/do-mpc/do-mpc/discussions