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

Dymola执行simulateMultiResultsModel命令遇参数不可设置警告

解决Dymola simulateMultiResultsModel提示“freqHz is not a settable parameter after translation”的问题

问题场景

使用Dymola 2023版本,执行官方文档提供的批次仿真命令:

(ok, traj) = simulateMultiResultsModel("Modelica.Mechanics.Rotational.Examples.CoupledClutches", stopTime=1.2, numberOfIntervals=10, resultFile="CoupleCluches", initialNames={"freqHz"}, initialValues=[0.1;0.2;0.3;0.4], resultNames={"J1.w","J3.w"});

尝试通过修改freqHz参数批量获取J1.w和J3.w的仿真结果时,收到警告:Warning: freqHz is not a settable parameter after translation,且确认问题与Python接口无关,直接在Dymola中执行示例命令也会触发该警告。

原因分析

  1. 模型参数的可设置性限制:CoupledClutches模型中的freqHz是Sine组件(drive)的参数,默认情况下,Dymola在翻译模型时可能会将这类参数内联优化,使其变为不可动态修改的固定值。
  2. 库模型的参数属性:官方库中的模型参数可能未默认开启“可设置”属性,导致无法通过批次仿真命令直接调整。

解决方案

方案1:修改目标参数的可设置属性

  1. 打开Modelica.Mechanics.Rotational.Examples.CoupledClutches模型,定位到drive(即Sine类型的驱动组件)。
  2. 找到该组件的freqHz参数,右键选择Set Modification,在弹出窗口中勾选Settable选项,确保参数在模型翻译后仍允许修改。
  3. 将修改后的模型另存为自定义版本(避免改动官方库文件),再执行原仿真命令。

方案2:关闭参数内联优化选项

  1. 在Dymola中依次点击Options > Simulation > Translation。
  2. 取消勾选Inline parameters或类似的参数内联优化选项,阻止Dymola在翻译阶段固定参数值。
  3. 重新执行批次仿真命令,验证警告是否消失。

方案3:改用循环仿真替代批次命令

如果上述方案无效,可通过循环调用simulateExtendedModel实现批量仿真:

// 定义要测试的参数值列表
freqList = {0.1, 0.2, 0.3, 0.4};
// 存储所有仿真结果
resultTrajectories = {};

for freq in freqList loop
  // 动态修改参数
  setParameter("Modelica.Mechanics.Rotational.Examples.CoupledClutches.drive.freqHz", freq);
  // 执行单次仿真
  (simOk, resFile) = simulateExtendedModel("Modelica.Mechanics.Rotational.Examples.CoupledClutches", stopTime=1.2, numberOfIntervals=10, resultFile="CoupleClutches_" + String(freq));
  // 读取目标变量结果
  j1wData = readResult(resFile, "J1.w");
  j3wData = readResult(resFile, "J3.w");
  // 存入结果集合
  resultTrajectories = resultTrajectories + {{j1wData, j3wData}};
end for;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 23:26:15