补充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_equivalent_g_s: float
amesim_center_flow_python_sign_error_g_s: float amesim_center_flow_python_sign_error_g_s: float
python_center_mass_flow_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_estimate_w: float
amesim_center_real_gas_reference_port_1_error_w: float amesim_center_real_gas_reference_port_1_error_w: float
python_center_ideal_reference_port_1_estimate_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_mass_flow_python_sign_kg_s = (
amesim_center_python_sign_equivalent_g_s * 1.0e-3 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_real_port_1 = (
-amesim_center_mass_flow_python_sign_kg_s -amesim_center_mass_flow_python_sign_kg_s
* line.gas.pressure_reference_enthalpy( * 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 - amesim_center_python_sign_equivalent_g_s
), ),
python_center_mass_flow_g_s=python_center_mass_flow_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_estimate_w=amesim_center_real_port_1,
amesim_center_real_gas_reference_port_1_error_w=( amesim_center_real_gas_reference_port_1_error_w=(
amesim_center_real_port_1 - amesim_dhctr 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"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={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_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"amesim_center_real_p1="
f"{pnl0003_energy.amesim_center_real_gas_reference_port_1_estimate_w}, " f"{pnl0003_energy.amesim_center_real_gas_reference_port_1_estimate_w}, "
f"amesim_center_real_p1_error=" f"amesim_center_real_p1_error="
@@ -388,6 +388,10 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
amesim_center_flow_python_sign_equivalent_g_s=454.2, amesim_center_flow_python_sign_equivalent_g_s=454.2,
amesim_center_flow_python_sign_error_g_s=-0.2, amesim_center_flow_python_sign_error_g_s=-0.2,
python_center_mass_flow_g_s=454.0, python_center_mass_flow_g_s=454.0,
python_amesim_state_darcy_center_mass_flow_g_s=453.5,
python_amesim_state_darcy_center_mass_flow_error_g_s=-0.7,
python_amesim_state_pn2pipefr_center_mass_flow_g_s=455.0,
python_amesim_state_pn2pipefr_center_mass_flow_error_g_s=0.8,
amesim_center_real_gas_reference_port_1_estimate_w=15700.0, amesim_center_real_gas_reference_port_1_estimate_w=15700.0,
amesim_center_real_gas_reference_port_1_error_w=-123.7, amesim_center_real_gas_reference_port_1_error_w=-123.7,
python_center_ideal_reference_port_1_estimate_w=16100.0, python_center_ideal_reference_port_1_estimate_w=16100.0,
@@ -605,6 +609,10 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
self.assertIn("amesim_storage_dmgas_residual=4.7", summary) self.assertIn("amesim_storage_dmgas_residual=4.7", summary)
self.assertIn("amesim_dmctr_py_sign=454.2", summary) self.assertIn("amesim_dmctr_py_sign=454.2", summary)
self.assertIn("python_center_dm=454.0", summary) self.assertIn("python_center_dm=454.0", summary)
self.assertIn("python_amesim_state_darcy_center_dm=453.5", summary)
self.assertIn("python_amesim_state_darcy_center_dm_error=-0.7", summary)
self.assertIn("python_amesim_state_pn2pipefr_center_dm=455.0", summary)
self.assertIn("python_amesim_state_pn2pipefr_center_dm_error=0.8", summary)
self.assertIn("amesim_center_real_p1_error=-123.7", summary) self.assertIn("amesim_center_real_p1_error=-123.7", summary)
self.assertIn("python_center_ideal_p2=16200.0", summary) self.assertIn("python_center_ideal_p2=16200.0", summary)
self.assertIn("python_center_dm_error=-0.2", summary) self.assertIn("python_center_dm_error=-0.2", summary)