from tespy.connections import connection, bus, ref from tespy.tools import char_line from tespy.networks import network from tespy.components import (heat_exchanger, pump, turbine, source, sink, cycle_closer, splitter, merge, condenser, drum, valve, heat_exchanger_simple) from tespy.tools import logger from fluprodia import FluidPropertyDiagram from CoolProp.CoolProp import PropsSI as PSI import pandas as pd import numpy as np import logging logger.define_logging(screen_level=logging.ERROR) class PowerPlant(): def __init__(self, working_fluid): self.working_fluid = working_fluid fluids = ['water', self.working_fluid, 'air'] self.nw = network(fluids=fluids) self.nw.set_attr(p_unit='bar', T_unit='C', h_unit='kJ / kg') # geo parameters geo_mass_flow = 210 geo_steam_share = 0.1 T_brine_in = 144.8
@author: witte """ # %% imports import numpy as np import os import logging from tespy.networks import load_network from tespy.tools import logger from tespy.tools.helpers import TESPyNetworkError import json logger.define_logging(log_version=True, file_level=logging.DEBUG, screen_level=logging.INFO) # %% power plant model class def load_models(cd): power_plant_path = os.path.join( cd.working_dir, cd.powerplant_path, cd.scenario + '.powerplant_ctrl.json') power_plant_models = {} with open(power_plant_path) as f: power_plant_models.update(json.load(f)) for key, val in power_plant_models['power_plant_models'].items(): power_plant_models['power_plant_models'][key]['plant'] = model( cd, val, key)
""" # %% imports import pandas as pd import numpy as np import json from scipy import interpolate import logging from tespy.networks import load_network from tespy.tools import logger from tespy.connections import ref from tespy.tools.helpers import TESPyNetworkError logger.define_logging( log_path=True, log_version=True, screen_level=logging.WARNING, file_level=logging.WARNING ) # %% power plant model class class model: """ Creates the model for the power plant. Parameters are loaded from coupling data object cd. Parameters ---------- cd : coupling_data Generel data for the interface handling. min_well_depth : float
from tespy.connections import connection from tespy.networks import network from tespy.components import evaporator, heat_exchanger, pump, turbine, source, sink, cycle_closer, splitter, merge, condenser from CoolProp.CoolProp import PropsSI import numpy as np from tespy.tools import logger import logging mypath = logger.define_logging(log_path=True, log_version=True, timed_rotating={'backupCount': 4}, screen_level=logging.WARNING, screen_datefmt="no_date") # define basic cycle fluids = ['water', 'Isopentane', 'Air'] nw = network(fluids=fluids) nw.set_attr(p_unit='bar', T_unit='C', h_unit='kJ / kg') # input parameters (the mass flow rate of cooling air should be adjusted # based on the temperature of the geo-fluid for stable calculation) # geo-fluid part mass_flow_rate_brine = 190.1 mass_flow_rate_steam = 20.4 T_brine_in = 146.6 T_reinjection = 69.1 # cooling air part mass_flow_rate_air = 6142 T_air = -4.7 p_air = 0.61 # calculation secondary variables p_before_turbine = PropsSI('P', 'T', T_brine_in + 273.15 - 28, 'Q', 1, 'Isopentane') / 1e5 p_steam_in = PropsSI('P', 'T', T_brine_in + 273.15, 'Q', 1, 'water') / 1e5