我已经将在C中实现的机器学习算法与在OpenModelica中运行的Modelica模型集成在一起。
机器学习算法处于闭环状态,将偏离目标状态作为输入,并提供控制信号作为输出。
我设置了一个采样周期,以便每隔X毫秒调用一次C算法。但是,我发现对于相同的时钟值,该算法被多次调用。
这让我怀疑为了解决模型,OpenModelica需要在每次模拟迭代时多次调用它。
这会影响算法的学习方式,因为它会保持关于其体验的状态。
为什么OpenModelica每个时钟滴答几次调用我的算法?我怎样才能解决这个问题,以免导致学习同时被多次调用弄糊涂?
答案 0 :(得分:3)
有两种方式:
使用不回溯的Euler求解器(默认dassl做)
使用外部C函数和您设置/检查的静态变量