首页 文章

Dymola / Modelica实时仿真进展太快

提问于
浏览
2

我想实时模拟Dymola中的模型以供HiL使用 . 在结果中,我看到模拟的速度提高了约5% .

集成在T = 691200成功终止CPU时间进行集成:6.57e 005秒一个GRID间隔的CPU时间:951毫秒

我已经尝试增加网格间隔以减少相对误差,但模拟进展仍然太快 . 我只阅读有关降低模型复杂性的方法,以便在规定的时间步骤内进行模拟 .

请注意,Simulation确实可以实现并且速度更快 . 我怎么能在这种情况下匹配模拟时间和实时?

编辑1:

我使用Lsodar求解器并在实时选项卡中选中了“与实时时间同步”选项 . 我有实时模拟许可选项 . 我在Windows 7上使用Dymola 2013.这里的结果是15秒的步长:

集成在T = 691200成功终止CPU时间进行集成:6.6e 005秒一个GRID间隔的CPU时间:1.43e 004毫秒

偏差仍约为4.5% .

但我没有使用内联集成 .

我是否需要硬实时或内联集成来改善这些结果?使用软实时或不可以获得低于4.5%的偏差?

编辑2:
relative difference between real time and Simulation advance in %

我从Berkeley Buildings库中获取了Python27块以读取系统时间并将其与Simulation advance进行比较 . 结果显示,在模拟开始后36小时,模拟稍微减慢(与实时相比) . 模拟开始后约72小时开始比实时快约10% . 此外,在72小时后,结果中的抖动增加 .

有什么解释吗?

接下来的步骤将是: - 改为固定步骤求解器(可能这是解决方案的一个重要部分) - 从DDE服务器改为OPC服务器,然而在Dymola 2013中似乎并不可能 .

编辑3:
Relative Simulation time deviation with fixed step solver

没有......使用固定步骤求解器似乎解决了这个问题 . 在模拟时间的前48小时内,偏差似乎等于使用具有可变步长的求解器的偏差 . 在这个例子中,我使用了Rkfix 3求解器,积分器步长为0.1 .

没有人知道如何摆脱那些巨大的偏差?

3 回答

  • 2

    如果我没记错的话,Dymola有一个特殊的编译选项用于实时性能 . 但是,我认为这是一个许可选项(不确定) .

  • 2

    我怀疑Dymola正在提高错误的时钟速度 .

    您可以在“与实时同步”下方的实时选项卡上使用模拟设置中的“减速因子” . 将其设置为1 / 0.95 .

    Dymola中有一个参数可用于设置CPU速度但我现在无法找到它,我稍后会再次查看 .

  • 1

    我解决了切换到嵌入式OPC服务器的问题 . 在这种情况下,实时和模拟时间之间的误差如下所示 .
    Timing error for Simulation with embedded OPC-Server

    使用嵌入式OPC服务器编译Dymola问题需要管理员权限(之前我没有) . Dymola的活动文件夹不得写保护 .

相关问题