Example ORC - Nouman090/ThermoSim GitHub Wiki

Description

An ORC uses an organic working fluid (e.g., R245fa) to generate power from low-temperature heat sources (100–300°C).

Complete Code


from ThermoSim import (
    ThermodynamicModel, Turbine, Pump, HeatExchanger,
)
from ThermoSim.plotting import CyclePlotter

Model = ThermodynamicModel()
Model.set_dead_state()

wf     = 'R245fa'
T_hot  = 150 + 273.15     # heat source temperature
m_dot  = 1.0
eta_t  = 0.80
eta_p  = 0.75
P_evap = 10e5              # 10 bar
P_cond = 1.5e5             # 1.5 bar

# State points
Model.add_point(wf, '1', P=P_evap, T=T_hot - 10, Mass_flowrate=m_dot)
Model.add_point(wf, '2', P=P_cond)
Model.add_point(wf, '3', P=P_cond, Q=0)
Model.add_point(wf, '4', P=P_evap)

# Components
Turbine(Model, 'ORC_Turbine', '1', '2', n_isen=eta_t)

HeatExchanger(Model, 'ORC_Condenser', PPT=5, HEX_type='SimpleHEX',
              HeatAdded=False,
              Hot_In_state='2', Hot_Out_state='3',
              Cold_In_state=None, Cold_Out_state=None)

Pump(Model, 'ORC_Pump', '3', '4', n_isen=eta_p)

HeatExchanger(Model, 'ORC_Evaporator', PPT=5, HEX_type='SimpleHEX',
              HeatAdded=True,
              Hot_In_state=None, Hot_Out_state=None,
              Cold_In_state='4', Cold_Out_state='1')

Model.Solve(verbose=1)
Model.ModelSummary()

plotter = CyclePlotter(Model)
plotter.plot_Ts_diagram(['1', '2', '3', '4', '1'],
                        fluid='R245fa',
                        title='ORC with R245fa')