From fc46c4272a77a4c77fa9482da4eb1b9487e51951 Mon Sep 17 00:00:00 2001 From: huojiarong Date: Tue, 28 Jul 2026 10:07:13 +0000 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85test=5Fmql=20PNL0003=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E6=B5=81=E5=8F=8D=E7=AE=97=E8=AF=8A=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../run_test_mql_full_state_comparison.py | 62 +++++++++++++++++++ ...test_run_test_mql_full_state_comparison.py | 8 +++ 2 files changed, 70 insertions(+) diff --git a/PythonModels/scripts/run_test_mql_full_state_comparison.py b/PythonModels/scripts/run_test_mql_full_state_comparison.py index 2fed13e..1b54b79 100644 --- a/PythonModels/scripts/run_test_mql_full_state_comparison.py +++ b/PythonModels/scripts/run_test_mql_full_state_comparison.py @@ -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=" diff --git a/tests/test_run_test_mql_full_state_comparison.py b/tests/test_run_test_mql_full_state_comparison.py index 7a36de6..2b2ad65 100644 --- a/tests/test_run_test_mql_full_state_comparison.py +++ b/tests/test_run_test_mql_full_state_comparison.py @@ -388,6 +388,10 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase): amesim_center_flow_python_sign_equivalent_g_s=454.2, amesim_center_flow_python_sign_error_g_s=-0.2, 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_error_w=-123.7, 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_dmctr_py_sign=454.2", 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("python_center_ideal_p2=16200.0", summary) self.assertIn("python_center_dm_error=-0.2", summary)