OpenModelica无法定义单位为((rad/s)/((N/m)^0.5))的变量求助
错误原因说明
- 第二种写法存在语法错误:
unit属性值为字符串类型,必须用双引号包裹,你未加引号直接书写单位表达式,会直接触发编译错误。 - 第一种写法的单位字符串不符合OpenModelica单位解析规则:多层冗余嵌套括号、小数幂次写法兼容性差,导致单位无法被正确识别。
正确实现方案
方案1:使用化简后的单位(推荐,兼容性最佳)
你需要的单位((rad/s)/((N/m)^0.5))可以化简为量纲完全等价的rad*(m/N)^0.5,直接定义即可:
Real Cap_fact(quantity = "CapacityFactor", unit = "rad*(m/N)^0.5");
如果需要禁止后续修改该变量的单位属性,可以添加final修饰:
Real Cap_fact(final quantity = "CapacityFactor", final unit = "rad*(m/N)^0.5");
方案2:保留原始单位结构
如果必须保留你原始的单位书写形式,调整括号结构和幂次写法即可适配OpenModelica解析规则:
Real Cap_fact(quantity = "CapacityFactor", unit = "(rad/s)/((N/m)^(1/2))");
内容的提问来源于stack exchange,提问作者Lorenzo Tarollo
相关产品推荐
相关产品推荐

