架构调整和敏感性分析代码附加

This commit is contained in:
ljz committed 2026-06-20 14:32:13 +08:00
1 parent 1d09599e8c
commit 469567c3db
5 files changed
+621 -429

No files matched your search

+50
View File
@@ -0,0 +1,50 @@
# -*- coding: utf-8 -*-
"""Evaluation helpers for cycle sensitivity analysis."""
from .cycles import BraytonCycle
RC_FIXED_KEYS = ("T_low", "T_high", "p_low", "p_high", "ploss")
RC_PARAM_KEYS = (
"x",
"compressor_eff",
"recompressor_eff",
"turbine_eff",
"recuperator_eff",
"highT_recuperator_eff",
)
def _require_keys(data, required_keys, data_name):
missing = [key for key in required_keys if key not in data]
if missing:
missing_text = ", ".join(missing)
raise ValueError(f"{data_name} missing required keys: {missing_text}")
def evaluate_rc_efficiency(fixed_params, params, refprop_path=None):
"""Return the recompression Brayton cycle thermal efficiency.
The returned efficiency is a decimal value, for example 0.45 means 45%.
A new cycle instance is created for each evaluation so repeated sensitivity
runs do not reuse component state from previous cases.
"""
fixed = dict(fixed_params)
cycle_params = dict(params)
_require_keys(fixed, RC_FIXED_KEYS, "fixed_params")
_require_keys(cycle_params, RC_PARAM_KEYS, "params")
cycle_kwargs = {"name": "rc efficiency evaluation"}
if refprop_path is not None:
cycle_kwargs["refprop_path"] = refprop_path
cycle = BraytonCycle(**cycle_kwargs)
return cycle.RC(
T_low=fixed["T_low"],
T_high=fixed["T_high"],
p_low=fixed["p_low"],
p_high=fixed["p_high"],
ploss=fixed["ploss"],
param=cycle_params,
)