Add turbine throttle mapping and back-pressure penalty
This commit is contained in:
@@ -6,10 +6,11 @@ from reactor_sim.turbine import Turbine
|
||||
|
||||
def test_turbine_spools_toward_target_output():
|
||||
turbine = Turbine()
|
||||
turbine.throttle = 1.0
|
||||
loop = CoolantLoopState(
|
||||
temperature_in=600.0,
|
||||
temperature_out=650.0,
|
||||
pressure=6.0,
|
||||
pressure=0.02,
|
||||
mass_flow_rate=20_000.0,
|
||||
steam_quality=0.9,
|
||||
)
|
||||
@@ -20,14 +21,15 @@ def test_turbine_spools_toward_target_output():
|
||||
condenser_temperature=300.0,
|
||||
)
|
||||
target_electric = min(
|
||||
turbine.rated_output_mw, 300.0 * turbine.mechanical_efficiency * turbine.generator_efficiency
|
||||
turbine.rated_output_mw,
|
||||
300.0 * turbine.mechanical_efficiency * turbine.generator_efficiency,
|
||||
)
|
||||
|
||||
dt = 5.0
|
||||
dt = 1.0
|
||||
turbine.step(loop, state, steam_power_mw=300.0, dt=dt)
|
||||
assert 0.0 < state.electrical_output_mw < target_electric
|
||||
|
||||
for _ in range(5):
|
||||
for _ in range(60):
|
||||
turbine.step(loop, state, steam_power_mw=300.0, dt=dt)
|
||||
|
||||
assert state.electrical_output_mw == pytest.approx(target_electric, rel=0.05)
|
||||
|
||||
Reference in New Issue
Block a user