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

如何修改Modelica.Media.Water的参考状态?寻求替代源码修改的方案

修改Modelica.Media.Water参考状态的可行方案

方案1:自定义介质包装类(无需修改源码)

创建一个继承自Modelica.Media.Water.Water的新介质类,通过偏移焓值重新定义参考状态:

  1. 先计算原参考状态(273.15K、1bar)与目标参考状态(298.15K、1bar)之间的焓差Δh;
  2. 在新类中重写焓的计算函数,将原介质返回的焓值减去Δh,使目标状态下焓为0。

示例代码:

model CustomWater "Water with reference state at 298.15K, 1bar"
  extends Modelica.Media.Water.Water;
  // 预计算298.15K、1bar下的焓值(基于原参考状态的数值)
  constant Real h_ref_target = enthalpy(p=1e5, T=298.15);
protected
  // 重写焓计算函数,添加偏移量
  function enthalpy
    extends Modelica.Media.Water.Water.enthalpy;
    algorithm
      return super.enthalpy(p, T, X) - h_ref_target;
  end enthalpy;
end CustomWater;

使用时直接调用这个自定义类即可,完全不用改动原库源码。

方案2:利用replaceable组件动态调整

在你的模型中声明介质时,通过replaceable关键字替换原介质的焓计算逻辑,直接在模型内调整参考状态:

model MyModel
  replaceable package Medium = Modelica.Media.Water.Water
    constrainedby Modelica.Media.Interfaces.PartialMedium;
  // 计算目标参考状态的焓偏移量
  constant Real h_offset = Medium.enthalpy(p=1e5, T=298.15);
  
  // 使用时对获取的焓值做偏移处理
  Real h = Medium.enthalpy(p=my_p, T=my_T) - h_offset;
end MyModel;

这种方式更灵活,无需额外创建介质类,直接在业务模型内完成调整。

方案3:基于PartialMedium封装通用可配置介质

如果需要频繁切换参考状态,可以基于Modelica.Media.Interfaces.PartialMedium重新封装水介质,添加参考状态配置参数。核心逻辑是将参考温度、压力作为可配置参数,在焓、内能等热力学函数中自动计算偏移量,实现一键切换参考状态的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:57:11