共同仿真dymola fmu文件无法通过fmuchecker进行仿真

Med*_*aif 4 dymola fmi

我们正在尝试测试Dymola的协同仿真选项,并创建了一个fmu文件。我们从www.fmi-standard.org安装/构建了FMILibrary-2.0b2和FMUChecker-2.0b1。

尝试运行我的同事用Dymola创建的fmu文件的FMUChecker(fmuCheck.linux32)时遇到问题。我用我的Dymola许可证从同一Dymola模型创建了一个fmu文件,此问题无法重现。因为fmuCheck.linux32运行正常,没有任何错误消息。我的同事可以同时运行两个文件!

由于我们的目标是使用此选项进行协同仿真,因此我尝试在没有Dymola的PC上运行fmu文件,并且我的fmu复制件和我的同事创建的同一个错误再次出现。

这是错误消息

    fmuCheck.linux32 PemFcSysLib_Projects_Modl_SimCoolCirc.fmu 
[INFO][FMUCHK] Will process FMU PemFcSysLib_Projects_Modl_SimCoolCirc.fmu
[INFO][FMILIB] XML specifies FMI standard version 1.0
[INFO][FMI1XML] Processing implementation element (co-simulation FMU detected)
[INFO][FMUCHK] Model name: PemFcSysLib.Projects.Modl.SimCoolCirc
[INFO][FMUCHK] Model identifier: PemFcSysLib_Projects_Modl_SimCoolCirc
[INFO][FMUCHK] Model GUID: {6eba096a-a778-4cf1-a7c2-3bd6121a1a52}
[INFO][FMUCHK] Model version: 
[INFO][FMUCHK] FMU kind: CoSimulation_StandAlone
[INFO][FMUCHK] The FMU contains:
18 constants
1762 parameters
26 discrete variables
281 continuous variables
0 inputs
0 outputs
2087 internal variables
0 variables with causality 'none'
2053 real variables
0 integer variables
0 enumeration variables
34 boolean variables
0 string variables

[INFO][FMUCHK] Printing output file header
time
[INFO][FMILIB] Loading 'linux32' binary with 'standard32' platform types
[INFO][FMUCHK] Version returned from FMU:   1.0
    [FMU][FMU status:OK] 
    ...
    [FMU][FMU status:OK] 
    [FMU][FMU status:Error] fmiInitialize: dsblock_ failed, QiErr = 1
    [FMU][FMU status:Error] Unless otherwise indicated by error messages, possible errors are (non-exhaustive):
1. The license file was not found. Use the environment variable "DYMOLA_RUNTIME_LICENSE" t
[FATAL][FMUCHK] Failed to initialize FMU for simulation (FMU status: Error)
[FATAL][FMUCHK] Simulation loop terminated  at time 0 since FMU returned status: Error
FMU check summary:
FMU reported:
    2 warning(s) and error(s)
Checker reported:
    0 Warning(s)
    0 Error(s)
    Fatal error occured during processing
Run Code Online (Sandbox Code Playgroud)

我认为fmu文件不需要模拟Dymola许可证,因此我看不到模拟失败的原因。这种奇怪行为的原因可能是什么?

部分原因是此问题与Simulink中Dymola FMU初始化的问题相同

任何建议,不胜感激。谢谢。

Med*_*aif 5

似乎dymola尚未在ubuntu中将路径变量设置为许可证文件。我们通过在.bashrc中添加以下行来手动完成此操作

# Dymola runtime license, path
DYMOLA_RUNTIME_LICENSE=$HOME/.dynasim/dymola.lic
export DYMOLA_RUNTIME_LICENSE
Run Code Online (Sandbox Code Playgroud)

现在我们可以互相模拟fmu文件了!