# Compressor

## Physical Model

For a compressor between from_junction i and to_junction j, the pressure lift is calculated based on the absolute pressure (i.e., relative pressure as shown in pandapipes + ambient pressure) and the pressure_ratio $$\Pi$$.

$\begin{split}p_j = \begin{cases} (p_i + p_{amb}) \cdot \Pi - p_{amb}, & \text{if } \dot{m}_{ij} > 0 \text{ kg/s} \\ p_i, & \text{otherwise} \end{cases}\end{split}$

The required compression power for compressors with $$\dot{m}_{ij} > 0$$ in Megawatt is estimated by the ideal adiabatic change in enthalpy by applying this equation [SSW15]:

$\begin{equation} \label{eq:compr_power} P_{\text{compr},ij} = \dot{m}_{ij}\frac{\kappa}{\kappa - 1} R_\text{s} z(p_i) T_i \cdot \left(\Pi ^{\frac{\kappa -1}{\kappa}}-1\right)\cdot 10^{-6} \end{equation}$

Where $$\kappa$$ is the isentropic exponent (assumed as 1.4), $$R_\text{s}$$ is the specific gas constant, $$z(p)$$ the compressibility and $$T_i$$ the temperature.

## Create Function

create_compressor(net, from_junction, to_junction, pressure_ratio, name=None, index=None, in_service=True, **kwargs)

Adds a compressor with relative pressure lift to net[“compressor”].

The outlet (absolute) pressure is calculated by (p_in + p_ambient) * pressure_ratio. For reverse flow, bypassing is assumed (no pressure lift).

Parameters
• net (pandapipesNet) – The net within this compressor should be created

• from_junction (int) – ID of the junction on one side which the compressor will be connected with

• to_junction (int) – ID of the junction on the other side which the compressor will be connected with

• pressure_ratio (float) – enforced ratio of outlet to inlet absolute pressures

• name (str, default None) – A name tag for this compressor

• index (int, default None) – Force a specified ID if it is available. If None, the index one higher than the highest already existing index is selected.

• in_service (bool, default True) – True for in_service or False for out of service

• kwargs (dict) – Additional keyword arguments will be added as further columns to the net[“compressor”] table

Returns

index - The unique ID of the created element

Return type

int

EXAMPLE:
>>> create_compressor(net, 0, 1, pressure_ratio=1.3)


## Component Table Data

net.compressor

 Parameter Datatype Value Range Explanation net pandapipesNet pandapipes net to which the compressor will be added from_junction integer $$>$$ 0 index of junction at the inlet to_junction integer $$>$$ 0 index of junction at the outlet pressure_ratio float $$>$$ 0 relative pressure ratio name string name of the compressor index int > 0 Force a specified ID if it is available in_service boolean True/ False True for in service or False for out of service

## Result Table Data

net.res_compressor

 Parameter Datatype Explanation deltap_bar float The pressure lift caused by the compressor [bar] compr_power_mw float The estimated adiabatic compression power [MW]