0

我在 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

非常感谢您的回复

4

1 回答 1

0

您现在可能已经找到了答案,但是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的一个实例。这些值是使用 、 等变量计算的。正如文档字符串所建议的:DMcasadix0u0

使用当前类属性 :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

于 2021-05-14T19:25:39.310 回答