基于Simscape Fluids模型的环控系统建模与仿真

描述

我在之前的总述部分给出过下面这张示意图,描述了 Simscape 的流体系统建模所适用的场景。现在再把它放在这里,稍微修改了描述,希望能更清楚的表达各个子库所适用的场景。

本篇展开介绍其中的 Moist Air 子库,看是否能契合您当前的建模需求。

建模

本文使用的模型均为帮助文档内置模型。

建模

湿空气 Moist Air

和其它流体系统不同的是,Moist Air 系统的流体是多组分气体。

从下面的 Moist Air 属性模块可以看出来,它可以包括三种气体组分:【Dry Air】, 【Water Vapor】 以及 【Trace Gas】。模型会跟踪计算三种气体组分的变化,以及【Water Vapor】随着腔体饱和状态而产生的液化与汽化。但自有的 Moist Air 子库模块不考虑化学反应。

建模

它最常见用于汽车、飞机、建筑等暖通空调系统建模,同时也适用于其它不考虑化学反应的空间一维气体传输/动力模型。

比如下图是一个飞机环控系统(environmental control system,ECS),该系统通过调节客舱压力、温度、湿度和臭氧(O 3 )以维持一个舒适和安全的客舱环境。

建模

1. 仿真信息

通过仿真,我们可以得到任意端口节点处的温度、压力以及气体组分信息。

比如上图环控系统乘客舱模块的端口 A:

建模

建模

这些信息是该物理域定义文件里描述的,比如下图就是内置的 moist_air.ssc 文件里定义了刚刚这些物理量。(对,物理域其实也是 ssc 源文件定义出来的。)

建模

如果你看这个文件,其实还有流过这个端口节点处的能量流、物质流信息:

建模

这些“流”信息在模块层级里也提供了,分别以下标和各自端口名区分。

建模

另外,如果该模块还有腔体属性(如管路),还将给出腔体内部的平均气体状态信息(尾标 I),如温度、比焓、压力、密度。

建模

以及容腔内的相对湿度、各个气体组分(无量纲)以及腔体内汽化/液化的速率(kg/s):

建模

2. 气体组分

我们通过 Moist Air Properties 模块来定义气体属性,默认值分别是干空气、水蒸气以及二氧化碳。

建模

其实这里的各种气体成分到底是什么气体,完全取决于我们在这里定义的气体属性。我们可以把【Dry Air】和 【Trace Gas】替换为其它的气体,把 【Water Vapor】 替换为其它需要考虑液化的气体。当然,如果把 【Water Vapor】的饱和压力设置的足够高,那么也可以当作第三种不会液化的气体成分。

因此除了环控系统, Moist Air 其实可以用于更多的场景。

比如在下图这个基于 Moist Air 的燃料电池系统模型里,左右两侧是两个独立的气体回路,其中左侧是供氢系统,右侧是供氧系统。

建模

在供氢系统里,三种气体组分 Dry Air, Water Vapor 以及 Trace Gas 分别被定义为【氮气、水蒸气以及氢气】。

建模

而右侧供氧系统里,三种气体组分 Dry Air, Water Vapor 以及 Trace Gas 分别被定义为【氮气、水蒸气以及氧气】。

建模

在刚刚的飞机环控系统模型里,按照功能需求把 Trace Gas 设置为臭氧。

建模

3. 液化与汽化

所以实际上 Dry Air 可以是任意气体,它之所以叫 Dry Air,是相对于 Water Vapor 来说的。在这个 Moist Air 物理域里,所定义的 Dry Air 不会液化,而 Water Vapor 会液化。

建模

比如当具有一定体积的气体容腔内压力升高或者温度降低,可能会导致混合气体中的水蒸气含量超过了能容纳的最大值(过饱和),此时多余的水蒸气就会凝结成液体。所以,Water Vapor 的属性定义里需要给出水蒸气与此相关的属性,如下图。

建模

当然,这个过程并不是瞬间发生。因此在具有体积的模块里,需要给定液化的时间常数 condensation time constant,也就是描述这个多余的水蒸气液化过程的快慢。

建模

在刚刚的环控模型里,Mixing Chamber 模块的相对湿度和冷凝速率如下。

建模

Moist Air 里有体积属性的模块如下表。但实际上也很好分辨,具有有限体积的模块都有一个 W 端口。

建模

在以前(2024a 及以前)的模型里这种过程是单向的,凝结的液态水的质量从总的湿空气网络中减去,而不考虑液化的水在一定条件下再汽化回来。因此,通常会使用液化速率信息 W 来搭建排水模型。

比如下图:

通过 Tank 表征当前湿空气腔体留存的液态水;

通过 Controlled Mass Flow Rate Source 表达产生的液态水的速率;

通过 Controlled Reservoir 表达产生的液态水的温度;

Local Restriction 则模拟通过管路排出冷凝水。

建模

而从目前正在公测的 2024b 版本开始,气-液过程是双向的。

R2024b 版本开始,气体属性设置模块( Moist Air Properties) 的选项:【Enable entrained water droplets】,也就是说,

空气中的水蒸气凝结后可以留在腔体里;

可以跟踪计算它的扩散;

当水蒸气处于欠饱和态时,它可以再汽化成水蒸气;

建模

4. 组分控制

在环控系统里,经常会有加湿或者除湿环节,从 Moist Air 的仿真角度来说其实就是增加或者减少某一个气体组分的量。

因此 Moist Air 子库里除了提供理想压力源与流量源之外,还提供了 Moisture Source 与 Trace Gas Source,用于实现刚刚提到的功能。

建模

刚刚提到的飞机环控系统里有一个 Catalytic Converter,它在这里的作用是除去臭氧。

在这个模型里,就用到了 Trace Gas Source 模块,并指定速率为负值,则表示与它相连的管路里的臭氧组分按照自定的速率被去除。

建模

而为了表达乘客舱里的乘客模型呼出的湿气则使用了 Moisture Source 模块:

建模

5. 壅塞

Moist Air 子库也模拟一种称为 Choke(壅塞) 的现象。也就是说,当局部流速到达音速(马赫数=1)之后,就会发生壅塞现象,此处的流速不再会增加,此时质量流量和下游压力无任何关系。

下图模拟的是引擎吸气中通过控制阀门引流一部分到飞机的环控系统,用于调节客舱温度、压力、湿度等等。这里用了一个 PI 模块来调节节流口 Flow Control Valve,以获得指定流量。

建模

可以看到:

a. 仿真时当节流口处马赫数为 1 后(第三行);

b. 且节流口面积 AR 不变时(第二行);

c. 背压波动并不会影响质量流量,此处背压为下游 B 端压力(第一行红线),此时上游密度不变;

d. 质量流量第四行。

建模

但我们的很多日常气体系统的流速可能没这么高,所以,如果发现系统某个环节的流量压差关系和预期的不相符合,可以检查以下模块的马赫数,看是否因为不恰当的参数设置而产生了 Choke(壅塞)。

建模

另外,相连的端口建议使用相同的横截面积,尤其是气体高速流动的场合。

6. 其它

Moist Air 也可以和其它物理域网络耦合,比如下图模拟的呼吸机系统,它通过提供预设的低气体流量来帮助患者呼吸。

这里使用了一个类似液压缸模块(图中 Lungs 模块)来模拟肺部的呼吸动作。

当然,这里并不关注气体组分,所以还没有模拟肺部氧气和二氧化碳的交换过程。

建模

另外,湿空气也是气体,它也可以用来搭建气动系统,如果需要考虑系统里的冷凝及其带走的热量对气动系统的热力学的影响的话。

建模

只不过一般情况下,都不需要考虑这些,所以通常使用 Gas 库来搭建气动系统,减少模型运算量。

当然,物理世界有万千系统,我们视野有限,不一定接触到。因此在这里单方向的介绍 Moist Air 子库的功能,或许它能帮助您解决此刻所面临的问题,也欢迎您提出和我们讨论。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分