Simulation of a Reciprocating Compressor in HYSYS
The standard compressor model in HYSYS requires that suction pressure, discharge pressure and flowrate be specified or calculated from elsewhere in the flowsheet. However, if you have reciprocating compressor curves which provide a relationship between flowrate and pressure, then how can these curves be used in a HYSYS model?
This figure is an example of reciprocating compressor curves – providing the relationship between capacity (MMSCFD) and suction pressure (psig) at three discharge pressures.
First it is noted that HYSYS does provide some advanced capabilities in the compressor model:
Ability to add centrifugal compressor curve information – it is possible to add multiple curves relating head to actual volume flow for different speeds. However, this method is not well-suited to the format of the reciprocating curves shown here.
Reciprocating Compressor mode –this option provides the ability to specify details for the compressor – cylinder dimensions, bore, stroke, clearance volumes, etc. If this detailed information is available, then the option could be useful. However, even if that information is available, it can be difficult to replicate even the simple relationship shown in the graph.
One of the difficulties is the requirement to properly set the pockets when the compressor is horsepower limited. The reciprocating compressor functionality does not automatically set pocket position to meet the horsepower.
Our recommendation then is to use the powerful spreadsheet capability in HYSYS which allows the use of these reciprocating curves.
We would like to have HYSYS calculate the capacity (flowrate) assuming that the suction and discharge pressures are known. In refrigerated gas plants, it is common for suction pressure to be controlled, while the discharge pressure is known (i.e., the backpressure to the plant).
First we set up the HYSYS case – this particular compressor is a two-stage compressor, so the PFD appears as follows:
The suction drums and inter/after stage coolers are also included in the model. We specify the suction and discharge pressures/temperatures, but leave the flowrate to be calculated by the spreadsheet.
Next we create the spreadsheet and add the curve data. We assume that the relationship between capacity and suction pressure can be expressed as two linear segments which is quite reasonable in this case. The first segment at lower pressure represents the capacity increase in the region where the compressor is not horsepower limited. The second segment at higher pressures has a smaller slope (i.e., the flowrate does not increase as quickly with suction pressure) – this is the region where the compressor is horsepower limited. It is possible to see more complexity in these curves – for example, if a cylinder changes from double-acting to single-acting we can see a discontinuity, but many reciprocating compressors can be well-represented with this simple linear relationship.
The data is shown below:
We have three suction pressure-capacity data pairs for each of the three discharge pressures to represent the endpoints of each linear segment. Here all three discharge pressure curves have the same suction pressures (100, 120 and 140 psig), but this doesn’t necessarily need to be the case.
Now we need to import the suction and discharge pressures, and interpolate and/or extrapolate the capacity from this data.
The calculations are summarized here:
- The Suction pressure has been imported to cell B13
- The Discharge pressure has been imported to cell B14
- In row 18, the capacity at 1000 psig for the imported suction pressure is calculated (either interpolated or extrapolated). The same is done in row 19 for 1400 psig and in row 20 for 1600 psig. It is possible to do the calculation for each row in one cell, but this would require four nested IF statements which would be quite unreadable and impossible to troubleshoot. Thus four statements were created depending on where the suction pressure fit into the compressor curve range. For example, the formula in cell B18 is:
@if(B13<=B9,C9-(B9-B13)/(B10-B9)*(C10-C9),0)
That is, if the suction pressure is lower than or equal to the lowest given suction pressure, the capacity is estimated based on a linear extrapolation of the low pressure section of the curve.
- Similar functions are provided in columns C, D and E, then column F simply sums the capacities in the row (only one will be non-zero).
- In row 22, the interpolation / extrapolation is now done on discharge pressure, yielding the calculated capacity in cell F22.
- Given the complexity of the formulas, it is not practical to summarize all of them here. However, you may download the attached HYSYS case which may be used as a template.
- The contents of cell F22 are exported to stream “Suction”.
Lastly, the interstage pressure is estimated – assuming the same compression ratio (PDISCHARGE / PSUCTION) for each stage. This is calculated in cell E13, and exported to stream “AC1”.
Now, as suction and/or discharge pressures change, the flowrate in the compressor will also change. The calculated HYSYS flowsheet is shown below:
Do you have questions or comments regarding this article? Click here to contact us.