补充test_mql PNL0003中心流反算诊断

This commit is contained in:
huojiarong committed 2026-07-28 10:07:13 +00:00
1 parent 8b9f229b80
commit fc46c4272a
2 files changed
+70

No files matched your search

@@ -443,6 +443,10 @@ class TestMqlPnl0003EnergyDiagnostic:
amesim_center_flow_python_sign_equivalent_g_s: float
amesim_center_flow_python_sign_error_g_s: float
python_center_mass_flow_g_s: float
python_amesim_state_darcy_center_mass_flow_g_s: float
python_amesim_state_darcy_center_mass_flow_error_g_s: float
python_amesim_state_pn2pipefr_center_mass_flow_g_s: float
python_amesim_state_pn2pipefr_center_mass_flow_error_g_s: float
amesim_center_real_gas_reference_port_1_estimate_w: float
amesim_center_real_gas_reference_port_1_error_w: float
python_center_ideal_reference_port_1_estimate_w: float
@@ -1682,6 +1686,42 @@ def _pnl0003_energy_diagnostic(
amesim_center_mass_flow_python_sign_kg_s = (
amesim_center_python_sign_equivalent_g_s * 1.0e-3
)
def current_darcy_center_flow_for_state(
port_1_pressure_pa: float,
port_1_temperature_k: float,
port_2_pressure_pa: float,
port_2_temperature_k: float,
) -> float:
pressure_difference = port_1_pressure_pa - port_2_pressure_pa
if pressure_difference == 0.0:
return 0.0
upstream_pressure = (
port_1_pressure_pa if pressure_difference > 0.0 else port_2_pressure_pa
)
upstream_temperature = (
port_1_temperature_k if pressure_difference > 0.0 else port_2_temperature_k
)
upstream_density = line.gas.density(upstream_pressure, upstream_temperature)
magnitude = line._mass_flow_for_pressure_drop(
abs(pressure_difference),
density=upstream_density,
temperature=upstream_temperature,
)
return magnitude if pressure_difference > 0.0 else -magnitude
amesim_state_darcy_center_flow = current_darcy_center_flow_for_state(
amesim_p1,
amesim_t1,
amesim_p2,
amesim_t2,
)
amesim_state_pn2pipefr_center_flow = line.pn2pipefr_mass_flow(
port_1_pressure_pa=amesim_p1,
port_1_temperature_k=amesim_t1,
port_2_pressure_pa=amesim_p2,
port_2_temperature_k=amesim_t2,
)
amesim_center_real_port_1 = (
-amesim_center_mass_flow_python_sign_kg_s
* line.gas.pressure_reference_enthalpy(
@@ -1926,6 +1966,20 @@ def _pnl0003_energy_diagnostic(
python_center_mass_flow_g_s - amesim_center_python_sign_equivalent_g_s
),
python_center_mass_flow_g_s=python_center_mass_flow_g_s,
python_amesim_state_darcy_center_mass_flow_g_s=(
amesim_state_darcy_center_flow * 1.0e3
),
python_amesim_state_darcy_center_mass_flow_error_g_s=(
amesim_state_darcy_center_flow * 1.0e3
- amesim_center_python_sign_equivalent_g_s
),
python_amesim_state_pn2pipefr_center_mass_flow_g_s=(
amesim_state_pn2pipefr_center_flow * 1.0e3
),
python_amesim_state_pn2pipefr_center_mass_flow_error_g_s=(
amesim_state_pn2pipefr_center_flow * 1.0e3
- amesim_center_python_sign_equivalent_g_s
),
amesim_center_real_gas_reference_port_1_estimate_w=amesim_center_real_port_1,
amesim_center_real_gas_reference_port_1_error_w=(
amesim_center_real_port_1 - amesim_dhctr
@@ -2640,6 +2694,14 @@ def format_test_mql_pnvo_event_window_summary(
f"amesim_dmctr_py_sign={pnl0003_energy.amesim_center_flow_python_sign_equivalent_g_s}, "
f"python_center_dm={pnl0003_energy.python_center_mass_flow_g_s}, "
f"python_center_dm_error={pnl0003_energy.amesim_center_flow_python_sign_error_g_s}, "
f"python_amesim_state_darcy_center_dm="
f"{pnl0003_energy.python_amesim_state_darcy_center_mass_flow_g_s}, "
f"python_amesim_state_darcy_center_dm_error="
f"{pnl0003_energy.python_amesim_state_darcy_center_mass_flow_error_g_s}, "
f"python_amesim_state_pn2pipefr_center_dm="
f"{pnl0003_energy.python_amesim_state_pn2pipefr_center_mass_flow_g_s}, "
f"python_amesim_state_pn2pipefr_center_dm_error="
f"{pnl0003_energy.python_amesim_state_pn2pipefr_center_mass_flow_error_g_s}, "
f"amesim_center_real_p1="
f"{pnl0003_energy.amesim_center_real_gas_reference_port_1_estimate_w}, "
f"amesim_center_real_p1_error="