2

我已经将用 C 语言实现的机器学习算法与在 OpenModelica 中运行的 Modelica 模型集成在一起。

机器学习算法是闭环的,将与目标状态的偏差作为输入,并提供控制信号作为输出。

我已经设置了一个采样周期,以便 C 算法仅每 X 毫秒调用一次。但是,我看到对于相同的时钟值,该算法被多次调用。

这让我怀疑为了求解模型,OpenModelica 需要在每次模拟迭代中调用它多次。

这会影响算法的学习方式,因为它会保持有关其经验的状态。

为什么 OpenModelica 每个时钟周期都会多次调用我的算法?我该如何解决这个问题,以免导致学习同时被多次调用弄糊涂?

4

1 回答 1

3

有2种方式:

  1. 使用不回溯的欧拉求解器(默认 dassl 会)

  2. 使用带有您设置/检查的静态变量的外部 C 函数

于 2015-03-31T16:35:35.723 回答