You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Dymola中运行VirtualFCS模型遇翻译错误,求排查方向

Dymola运行VirtualFCS库示例模型时出现emptySlot翻译错误的排查方向

问题描述

我在Dymola中测试GitHub上的VirtualFCS库,完成代码质检后确认示例模型VirtualFCS.Examples.VehicleExamples.RangeExtenderHybridVehicle无语法问题,但运行时触发翻译错误,疑似来自FuelCellSystem组件,错误提示:

The function emptySlot should only be found in left hand side of multiple output, but found:

目前存在以下疑点:

  • 未在该库及Modelica标准库(MSL)中找到emptySlot函数;
  • 错误提示不完整,未显示具体检测到的内容;
  • 未提供错误发生的行号或组件/函数名称。
    该模型在OpenModelica中可正常运行。

排查方向

1. 检查FuelCellSystem组件的多输出函数调用逻辑

emptySlot是Dymola内部处理多输出函数时的隐式机制(OpenModelica采用了不同的处理逻辑),出现这类错误通常是多输出函数的调用方式不符合Dymola的语法规范,重点排查:

  • 是否存在将多输出函数的结果直接赋值给单个变量的情况(正确写法应为(var1, var2) = multiOutputFunc());
  • 是否在表达式中直接嵌套调用多输出函数(比如x = calcValue(getMultiOutputData()),其中getMultiOutputData是多输出函数);
  • 检查组件内所有函数调用,确认多输出函数的返回值都被完整接收,没有遗漏输出变量。

2. 开启Dymola详细翻译日志获取上下文

通过以下步骤获取更完整的错误信息:

  • 点击菜单栏Tools > Options > Simulation,在Translation标签下勾选Generate detailed translation log;
  • 重新运行模型,在日志窗口中查找错误的完整上下文,通常能定位到具体的组件、函数或代码行。

3. 对比OpenModelica与Dymola的语法兼容差异

虽然遵循Modelica标准,但不同工具对语法细节的处理存在差异,重点排查:

  • FuelCellSystem中是否使用了OpenModelica支持但Dymola严格限制的语法,比如非标准的多输出函数返回值处理;
  • 将FuelCellSystem组件单独提取出来,构建最小测试模型逐步验证,定位具体出错的代码段。

4. 排查库内的隐式依赖与继承链

部分库会通过partial组件或extends引入隐式依赖,可能间接触发emptySlot相关逻辑:

  • 检查FuelCellSystem的继承关系,查看是否有未显式导入的函数或组件;
  • 搜索库内所有.mo文件,查找是否存在与emptySlot相关的注释、宏定义或隐式调用痕迹。

内容的提问来源于stack exchange,提问作者AngeliqueR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 23:22:04