The Gas library contains basic elements, such as orifices, chambers, and pneumatic-mechanical converters, as well as sensors and sources. Use these blocks to model gas systems, for applications such as:

Pneumatic actuation of mechanical systems

Natural gas transport through pipe networks

Gas turbines for power generation

Air cooling of thermal components

You specify the gas properties in the connected loop by using the Gas Properties (G) block. This block lets you choose between three idealization levels: perfect gas, semiperfect gas, or real gas (see Gas Property Models).

The Across variables are pressure and temperature, and the Through variables are mass flow rate and energy flow rate. Note that these choices result in a pseudo-bond graph, because the product of pressure and mass flow rate is not power.

The Gas library supports perfect gas, semiperfect gas, and real gas within the same gas domain in order to cover a wide range of modeling requirements. The three gas property models provide trade-offs between simulation speed and accuracy. They also enable the incremental workflow: you start with a simple model, which requires minimal information about the working gas, and then build upon the model when more detailed gas property data becomes available.

You select the gas property model by using the Gas Properties (G) block, which specifies the gas properties in the connected circuit.

The following table summarizes the different assumptions for each gas property model.

Thermal equation of state indicates the relationship of density with temperature and pressure.

Caloric equation of state indicates the relationship of specific heat capacity with temperature and pressure.

Transport properties indicate the relationship between dynamic viscosity and thermal conductivity with temperature and pressure.

Gas Property Model | Thermal Equation of State | Caloric Equation of State | Transport Properties |
---|---|---|---|

Perfect | Ideal gas law | Constant | Constant |

Semiperfect | Ideal gas law | 1-D table lookup by temperature | 1-D table lookup by temperature |

Real | 2-D table lookup by temperature and pressure | 2-D table lookup by temperature and pressure | 2-D table lookup by temperature and pressure |

The ideal gas law is implemented in the Simscape™ Foundation Gas library as

*p* = *ZρRT*

where:

*p*is the pressure.*Z*is the compressibility factor.*R*is the specific gas constant.*T*is the temperature.

The compressibility factor, *Z*, is typically
a function of pressure and temperature. It accounts for the deviation
from ideal gas behavior. The gas is ideal when *Z* =
1. In the perfect and semiperfect gas property
models, *Z* must be constant but it does not have
to be equal to 1. For example, if you are modeling a nonideal gas
(*Z* ≠ 1)
but the temperature and pressure of the system do not vary significantly,
you can use the perfect gas model and specify an appropriate value
of *Z*. The following table lists the compressibility
factor *Z* for various gases at 293.15 K and 0.101325
MPa:

Gas | Compressibility Factor |
---|---|

Dry Air | 0.99962 |

Carbon Dioxide | 0.99467 |

Oxygen | 0.99930 |

Hydrogen | 1.00060 |

Helium | 1.00049 |

Methane | 0.99814 |

Natural Gas | 0.99797 |

Ammonia | 0.98871 |

R-134a | 0.97814 |

Using the perfect gas model, with the constant value of *Z* adjusted
based on the type of gas and the operating conditions, lets you avoid
the additional complexity and computational cost of moving to the
semiperfect or real gas property model.

The perfect gas property model is a good starting choice when modeling a gas network because it is simple, computationally efficient, and requires limited information about the working gas. It is correct for monatomic gases and, typically, it is sufficiently accurate for gases such as dry air, carbon dioxide, oxygen, hydrogen, helium, methane, natural gas, and so on, at standard conditions.

When the gas network is operating near the saturation boundary or is operating over a very wide temperature range, the working gas can exhibit mild nonideal behavior. In this case, after successfully simulating the gas network with the perfect gas property model, consider switching to the semiperfect gas property model.

Finally, consider switching to the real gas property model if the working gas is expected to exhibit strongly nonideal behavior, such as heavy gases with large molecules. This model is the most expensive in terms of computational cost and requires detailed information about the working gas, because it uses 2-D interpolation for all properties.

Components in the gas domain are modeled using control volumes. The control volume encompasses the gas inside the component and separates it from the surrounding environment and other components. Gas flows and heat flows across the control surface are represented by ports. The gas volume inside the component is represented using an internal node, which provides the gas pressure and temperature inside the component. This internal node is not visible, but you can access its parameters and variables using Simscape data logging. For more information, see About Simulation Data Logging.

The following blocks in the Gas library are modeled as components with a gas volume. In the case of Controlled Reservoir (G) and Reservoir (G), the volume is assumed to be infinitely large.

Block | Gas Volume |
---|---|

2-Port Constant Volume Chamber (G) | Finite |

3-Port Constant Volume Chamber (G) | Finite |

Constant Volume Chamber (G) | Finite |

Pipe (G) | Finite |

Rotational Mechanical Converter (G) | Finite |

Translational Mechanical Converter (G) | Finite |

Reservoir (G) | Infinite |

Controlled Reservoir (G) | Infinite |

Other components have relatively small gas volumes, so that gas entering the component spends negligible time inside the component before exiting. These components are considered quasi-steady-state and they do not have an internal node.

Unlike other domains, where each topologically distinct circuit within a domain must contain at least one reference block, gas networks have different grounding rules.

Blocks with a gas volume contain an internal node, which provides the gas pressure and temperature inside the component and therefore serves as a reference node for the gas network. Each connected gas network must have at least one reference node. This means that each connected gas network must have at least one of the blocks listed in Blocks with Gas Volume. In other words, a gas network that contains no gas volume is an invalid gas network.

The Foundation Gas library contains the Absolute Reference (G) block but, unlike other domains, you do not use it for grounding gas circuits. The purpose of the Absolute Reference (G) block is to provide a reference for the Pressure & Temperature Sensor (G). If you use the Absolute Reference (G) block elsewhere in a gas network, it will trigger a simulation assertion because gas pressure and temperature cannot be at absolute zero.

This section discusses the specific initialization requirements for blocks modeled with finite gas volume. These blocks are listed in Blocks with Gas Volume.

The state of the gas volume evolves dynamically based on interactions with connected blocks via mass and energy flows. The time constants depend on the compressibility and thermal capacity of the gas volume.

The state of the gas volume is represented by differential variables
at the internal node of the block. As differential variables, they
require initial conditions to be specified prior to the start of simulation.
The dialog box of each block modeled with finite gas volume has a **Variables** tab,
which lists three variables:

**Pressure of gas volume****Temperature of gas volume****Density of gas volume**

By default, **Pressure of gas volume** and **Temperature
of gas volume** have high priority, with target values equal
to the standard condition (`0.101325 MPa`

and ```
293.15
K
```

). You can adjust the target values to represent the appropriate
initial state of the gas volume for the block. **Density of
gas volume** has the default priority `None`

because
only the initial conditions of two of the three variables are needed
to completely determine the initial state of the gas volume. If desired,
an alternative way to specify the initial conditions is to change **Density
of gas volume** to high priority with an appropriate target
value, and then change either **Pressure of gas volume** or **Temperature
of gas volume** to a priority of none.

It is important that only two of the three variables have their
priorities set to `High`

for each block with a finite
gas volume. Placing high-priority constraints on all three variables
results in over-specification, with the solver unable to find an initialization
solution that satisfies the desired initial values. Conversely, placing
high-priority constraint only on one variable makes the system under-specified,
and the solver might resolve the variables with arbitrary and unexpected
initial values. For more information on variable initialization and
dealing with over-specification, see Initialize Variables for a Mass-Spring-Damper System.

In blocks that are modeled with an infinitely large gas volume, the state of the gas volume is assumed quasisteady and there is no need to specify an initial condition.

Gas flow through Local Restriction (G), Variable Local Restriction (G), or Pipe (G) blocks can become choked. Choking occurs when the flow velocity reaches the local speed of sound. When the flow is choked, the velocity at the point of choking cannot increase any further. However, the mass flow rate can still increase if the density of the gas increases. This can be achieved, for example, by increasing the pressure upstream of the point of choking. The effect of choking on a gas network is that the mass flow rate through the branch containing the choked block depends completely on the upstream pressure and temperature. As long as the choking condition is maintained, this choked mass flow rate is independent of any changes occurring in the pressure downstream.

The following model illustrates the choked flow. In this model, the Ramp block
has a slope of 0.005 and the start time of 10. The Simulink-PS
Converter block has **Input signal unit** set
to `Mpa`

. All other blocks have default parameter values.
Simulation time is 50 s. When you simulate the model, the pressure at port A of the
Local Restriction (G) block increases linearly
from atmospheric pressure, starting at 10 s. The pressure at port B is fixed at
atmospheric pressure.

The following illustration shows the logged simulation data for the Local
Restriction (G) block. The Mach number at the restriction
(**Mach_R**) reaches 1 at around 20 s, indicating that the flow
is choked. The mass flow rate (**mdot_A**) before the flow is
choked follows the typical quadratic behavior with respect to an increasing pressure
difference. However, the mass flow rate after the flow is choked becomes linear
because the choked mass flow rate depends only on the upstream pressure and
temperature, and the upstream pressure is increasing linearly.

The fact that the choked mass flow rate depends only on the upstream conditions can cause an incompatibility with a Mass Flow Rate Source (G) or a Controlled Mass Flow Rate Source (G) connected downstream of the choked block. Consider the model shown in the next illustration, which contains the Controlled Mass Flow Rate Source (G) block instead of the Controlled Pressure Source (G).

If the source commanded an increasing mass flow rate from left to right through the Local Restriction (G), the simulation would succeed even if the flow became choked because the Controlled Mass Flow Rate Source (G) would be upstream of the choked block. However, in this model the Gain block reverses the flow direction, so that the Controlled Mass Flow Rate Source (G) is downstream of the choked block. The pressure upstream of the Local Restriction (G) is fixed at atmospheric pressure. Therefore, the choked mass flow rate in this situation is constant. As the commanded mass flow rate increases, eventually it will become greater than this constant value of choked mass flow rate. At this point, the commanded mass flow rate and the choked mass flow rate cannot be reconciled and the simulation fails. Viewing the logged simulation data in the Simscape Results Explorer shows that simulation fails just at the point when the Mach number reaches 1 and the flow becomes choked.

In general, if a model is likely to choke, use pressure sources rather than mass flow rate sources. If a model contains mass flow rate source blocks and simulation fails, use the Simscape Results Explorer to inspect the Mach number variables in all Local Restriction (G), Variable Local Restriction (G), and Pipe (G) blocks connected along the same branch as the mass flow rate source. If the simulation failure occurs when the Mach number reaches 1, it is likely that there is a downstream mass flow rate source trying to command a mass flow rate greater than the possible choked mass flow rate.

The Mach number variable for the restriction blocks is called **Mach_R**. The
Pipe (G) block has two Mach number variables,
**Mach_A** and **Mach_B**, representing the
Mach number at port A and port B, respectively.

The flow of gas through the circuit carries energy from one gas volume to another gas volume.
Therefore, the energy flow rate between two connected blocks depends on the
direction of flow. If the gas flows from block A to block B, then the energy flow
rate between the two blocks is based on the specific total enthalpy of block A.
Conversely, if the gas flows from block B to block A, then the energy flow rate
between the two blocks is based on the specific total enthalpy of block B. To smooth
the transition for simulation robustness, the energy flow rate also includes a
contribution based on the difference in the specific total enthalpies of the two
blocks at low mass flow rates. The smoothing region is controlled by the
Gas Properties (G) block parameter **Mach
number threshold for flow reversal**.

A consequence of this approach is that the temperature of a node between two connected blocks represents the temperature of the gas volume upstream of that node. If there are two or more upstream flow paths merging at the node, then the temperature at the node represents the weighted average temperature based on the ideal mixing of the merging gas flows.

Simulation robustness can be challenging for models that exhibit
quick flow reversals and large temperature differences between blocks.
Quick flow reversals may be a result of having low flow resistances
(for example, short pipes) between large gas volumes. Large temperature
differences may be a result of the energy added by sources to maintain
large pressure differences in a model with little heat dissipation.
In these models, it may be necessary to increase the **Mach
number threshold for flow reversal** parameter value to avoid
simulation failure.