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

Dymola中「kn」(节)单位识别异常及非SI单位使用疑问

关于Dymola中自定义「kn」(节)单位识别失败的问题

我原本以为切换到Dymola 2024x Refresh 1版本后,软件不再识别「kn」或「knot」(海里/小时)单位,此前2024x版本可正常识别。

我定义新单位的Modelica代码如下:

type Velocity_knots = Real (final unit="kn",final quantity="Velocity");

同时运行了包含如下代码的displayunit.mos脚本:

defineUnitConversion("m/s", "kn", 1/(1852/3600));

在2024x Refresh 1中检查时收到警告:

/!\ Could not decode the unit symbol "kn" appearing in the unit string "kn"

后来经进一步测试发现问题与版本无关,是我没注意到的代码变更导致的,在此致歉。


补充测试详情

测试代码如下:

package TestPackage
  model ATest
    type NewType = Real (final unit="kn", final quantity="Velocity");
    parameter NewType v_nt=4;
    parameter TestPackage.NewType v_ntp=5;
  end ATest;

  type NewType = Real (final unit="kn", final quantity="Velocity");
end TestPackage;

经Dymola检查得到以下结果:

  • 模型ATest内定义的NewType可通过检查,但包TestPackage内直接定义的NewType会触发上述警告,原因不明。
  • 参数声明v_nt和v_ntp均触发警告Could not decode the unit symbol "kn" appearing in the unit string "kn",无论是否运行displayunit.mos脚本。

额外需求与最佳实践提问

我定义unit="kn"的原因是:模型方程均采用SI单位,但用户在表格(如MSL CombiTables模型中的z=f(x,y)映射表)输入数据时,找不到合适的非SI单位显示输入方式。因此让用户用常用非SI单位输入,再通过硬编码转换函数转回SI单位,通过定义带unit="kn"的新Type确保清晰性和质量。请问有没有替代的最佳实践?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 14:55:00