【问题标题】:Error when co-simulating FMU "fmi2DoStep: Invalid currentCommunicationPoint"共同模拟 FMU 时出错“fmi2DoStep:无效的 currentCommunicationPoint”
【发布时间】:2021-09-22 21:09:39
【问题描述】:

我想在 Dymola 2022 中运行协同仿真 FMU (FMI2.0)。协同仿真 FMU 连接到在 Modelica 中建模的其他一些组件。

有时会打印以下错误消息:

[fmi2Warning]:fmu_name:fmi2DoStep:无效的 currentCommunicationPoint = 2.9500000000030000,预期为 2.9500000000000002

如果此消息出现一次,则模拟永远不会恢复,每个时间步都有这样的打印。从那时起,模拟结果无效。此错误发生在边界条件和/或系统参数的特定组合中。它发生在一组以上的组合输入值上,但也有很多模拟运行成功终止。我在输入/参数值中看不到任何可能导致该行为的模式。

有人可以向我解释这种错误信息吗?问题是主(Dymola)还是从属(FMU)? 而且 - 更重要的是 - 有人知道如何避免这个错误吗?

modelDescription.xml 文件的相关部分如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<fmiModelDescription
    fmiVersion="2.0"
    guid="{2598dff1-4f88-4838-89e2-ae8ff105e7e9}"
    modelName="xxx"
    generationTool="Simulink 8.13 (R2017b) 24-Jul-2017 with FMI Kit 2.9 (rtwsfcnfmi.tlc, FixedStepDiscrete, 0.001 s)"
    generationDateAndTime="2021-08-10T14:16:18"
    author="matlab"
    version="1.40"
    numberOfEventIndicators="0">
    
    <CoSimulation modelIdentifier="xxx" canHandleVariableCommunicationStepSize="true" canInterpolateInputs="true"/>
    
    <DefaultExperiment
        startTime="0.0"
        stopTime="500.0"
        stepSize="0.001"
      />

期待任何建议!

【问题讨论】:

  • 您能否提供有关 FMU 的更多信息?它是如何创建的?你能分享它或它的modeldescription.xml文件吗?看起来 FMU 需要一个固定的时间步长并由于数值不准确而引发警告,这似乎没有实现。
  • 很遗憾,我无法共享 FMU,但我已将 .xml 文件的相关部分添加到我的帖子中。你是对的,FMU 至少以固定的步长运行。然而,与该 FMU 协同仿真运行的 Modelica 模型只能在 Dymola 中使用可变步长求解器运行。那么有什么办法可以避免这个同步问题呢?

标签: dymola fmi


【解决方案1】:

我建议您在 https://github.com/CATIA-Systems/FMIKit-Simulink 上为此开票。 对我来说

generationTool="Simulink 8.13 (R2017b) 24-Jul-2017 with FMI Kit 2.9 (rtwsfcnfmi.tlc, FixedStepDiscrete, 0.001 s)"

<CoSimulation modelIdentifier="xxx" canHandleVariableCommunicationStepSize="true"

似乎是矛盾的。

但是,具体的警告似乎可以忽略:与预期时间步长的差异在 1e-12 的数量级。所以 FMU 会抛出警告,但会继续模拟

【讨论】:

  • 我绝对可以按照您的建议开票。但是,只是为了澄清:第一次发出此警告时,FMU 的所有输出保持不变。所以基本上,即使只发出警告,实际上也是由于 FMU 停止更新输出而发生的错误。
猜你喜欢
  • 2019-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-27
  • 1970-01-01
相关资源
最近更新 更多