如何将 heatPorts.T 传递给动态管道流模型?

How to pass heatPorts.T to DynamicPipe flowModel?

在使用 Modelica 标准库 DynamicPipe(或从 PartialTwoPortFlow 构建的类似模型)运行的流动模型的实现中,有一些流动模型示例发生在需要壁属性的传热环境中(例如, heatPorts.T and/or heatPorts.Q_flow) 为了计算压降。

例如,压降模型可能需要根据介质压力和壁温计算新的粘度或普朗特数,以捕获 cooling/heating 效应等。

传热模型通过传递 "states" 获取介质的属性,但是 DynamicPipe 或 PartialTwoPortFlow 中没有现有的连接。

我尝试了多种想法但都没有成功,包括创建一个新的 PartialTwoPortFlow,其中包含 DynamicPipe 中存在的所有传热调用。

我对 post 这个问题犹豫不决,因为我很惊讶我在这方面遇到了如此多的困难,并且找到一个直接的解决方案也不会感到惊讶。尽管如此,我还是需要这种能力,并且好奇其他人是否已经解决了这个问题,因为我 运行 缺乏想法。

所以我的问题是:

将 heatPorts.T 值传递给 flowModel 的 proper/efficient 方法是什么?

对于那些熟悉 MSL 流体库,更具体地说是熟悉所提供的管道模型的人来说,这个答案应该(希望)有意义。

旁白:

似乎可以通过不将传热面积限制为周长 x 长度来稍微改进动态管道,而是引入一个允许用户定义的参数(例如,heatTransferArea)它默认为周长 x 长度。见下文

  parameter SI.Area heatTransferArea = perimeter*lengths "Total heat transfer area";
  HeatTransfer heatTransfer(
    ...
    final surfaceAreas=heatTransferArea , //perimeter*lengths <- replaced
    ...

结束:

为了与 flowModel 通信 heatPorts.T 并且在检查每个模型时不出现错误,我必须执行以下操作:

  1. 在 Ts_w 的 flowModel 中创建一个 "input"。不是参数(看看mediums.state是怎么传的)!可能需要像 "diameters"(参见 DetailedPipeFlow)那样对其进行一些欺骗,以使其按照您认为的方式使用。
  2. 复制 PartialTwoPortFlow 并将最终的 Ts_w = Ts_wFM 添加到 flowModel。在 PartialTwoPortFlow 中另外定义变量 SI.Temperature[nFM+1] Ts_wFM 并在等式部分建立类似于 statesFM 的定义。 这将需要添加一个 HeatPorts 模型。
  3. 复制 DynamicPipe 并将扩展名更改为新的 PartialTwoPortFlow。将 use_HeatTransfer 设置为 true(正如我已经设置的那样,现在必须为 true 才能正常工作,这不是理想的但可管理的)。将其作为最终参数可能会很好,因此无法更改。 不要忘记将 heatPorts 连接到步骤 2 中添加的 heatports。

我相信这捕获了我如何能够将壁温传递给 flowModel 的快速版本。也许有一种更优雅的方式,但我认为这是非常有用的。我现在只是多了一个部分模型和一个名为 PartialTwoPort_wTemp 和 GenericDynamicPipe 的管道模型(我还在新管道中加入了我的表面积校正)。