我想运行一个共同模拟FMU (FMI2.0)在Dymola 2022年.协同仿真FMU连接到Modelica中建模的其他组件。
有时会打印以下错误消息:
fmi2Warning: fmu_name: fmi2DoStep:无效currentCommunicationPoint = 2.9500000000030000,预期为2.9500000000000002
如果这条消息发生过一次,那么模拟就永远不会恢复,在每个时间步骤中都会有这样的打印。从这一点上说,仿真结果是无效的。这种错误发生在一定的边界条件和/或系统参数的组合中。它发生在一个以上的组合输入值集合,但也有许多模拟运行成功地结束。在输入/参数值中,我看不到任何可能导致这种行为的模式。
有人能给我解释一下这种错误信息吗?问题是主人(戴莫拉)还是奴隶(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"
/>期待任何建议!
发布于 2021-09-25 19:26:37
我建议你在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抛出一个警告,但是继续模拟。
https://stackoverflow.com/questions/69291305
复制相似问题