将有状态C计算与Modelica集成

时间:2015-03-31 12:22:08

标签: c modelica openmodelica

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

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

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

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

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

为什么OpenModelica每个时钟滴答几次调用我的算法?我怎样才能解决这个问题,以免导致学习同时被多次调用弄糊涂?

1 个答案:

答案 0 :(得分:3)

有两种方式:

  1. 使用不回溯的Euler求解器(默认dassl做)

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