From cd2fa800b9e0a6a7ac077509a700ee4be396ab57 Mon Sep 17 00:00:00 2001 From: huojiarong Date: Wed, 29 Jul 2026 08:04:30 +0000 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85test=5Fmql=20pneumatic=5F96?= =?UTF-8?q?=E5=8F=82=E8=80=83=E5=AF=BC=E6=95=B0=E5=8F=8D=E4=BA=8B=E5=AE=9E?= =?UTF-8?q?=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 | 173 +++++++++++++++++- ...test_run_test_mql_full_state_comparison.py | 43 +++++ 2 files changed, 212 insertions(+), 4 deletions(-) diff --git a/PythonModels/scripts/run_test_mql_full_state_comparison.py b/PythonModels/scripts/run_test_mql_full_state_comparison.py index 2d9fb8e..f73890d 100644 --- a/PythonModels/scripts/run_test_mql_full_state_comparison.py +++ b/PythonModels/scripts/run_test_mql_full_state_comparison.py @@ -624,6 +624,24 @@ class TestMqlPneumatic96InletLineDiagnostic: python_pressure_derivative_temperature_component_pa_s: float python_pressure_derivative_eos_sum_pa_s: float python_pressure_derivative_eos_error_pa_s: float + python_reference_port_1_enthalpy_flow_w: float + python_reference_port_2_enthalpy_flow_w: float + python_reference_port_1_dtemp_component_k_s: float + python_reference_port_2_dtemp_component_k_s: float + python_reference_mass_offset_dtemp_component_k_s: float + python_reference_temperature_derivative_k_s: float + python_reference_temperature_derivative_error_k_s: float + python_reference_pressure_derivative_mass_component_pa_s: float + python_reference_pressure_derivative_temperature_component_pa_s: float + python_reference_pressure_derivative_eos_sum_pa_s: float + python_reference_pressure_derivative_eos_error_pa_s: float + python_reference_amesim_storage_mass_offset_dtemp_component_k_s: float + python_reference_amesim_storage_temperature_derivative_k_s: float + python_reference_amesim_storage_temperature_derivative_error_k_s: float + python_reference_amesim_storage_pressure_derivative_mass_component_pa_s: float + python_reference_amesim_storage_pressure_derivative_temperature_component_pa_s: float + python_reference_amesim_storage_pressure_derivative_eos_sum_pa_s: float + python_reference_amesim_storage_pressure_derivative_eos_error_pa_s: float python_chamber_pressure_error_pa: float python_chamber_temperature_error_k: float @@ -2618,6 +2636,10 @@ def _pneumatic_96_inlet_line_diagnostic( python_current_dtemp = ( python_port_1_dtemp + python_port_2_dtemp + python_heat_dtemp ) + python_density_derivative = ( + (snapshot.inlet_node_to_line_flow - snapshot.inlet_line_to_chamber_flow) + / line.volume + ) ( python_pressure_mass_component, python_pressure_temperature_component, @@ -2626,13 +2648,90 @@ def _pneumatic_96_inlet_line_diagnostic( gas=line.gas, density_kg_m3=line.state.m / line.volume, temperature_k=snapshot.inlet_line.T, - density_derivative_kg_m3_s=( - (snapshot.inlet_node_to_line_flow - snapshot.inlet_line_to_chamber_flow) - / line.volume - ), + density_derivative_kg_m3_s=python_density_derivative, temperature_derivative_k_s=python_current_dtemp, ) + python_reference_port_1_dh = _actual_reference_enthalpy_flow( + gas=line.gas, + port_m_flow=python_port_1_flow, + connected_pressure_pa=snapshot.inlet_node.p, + connected_temperature_k=snapshot.inlet_node.T, + internal_pressure_pa=snapshot.inlet_line.p, + internal_temperature_k=snapshot.inlet_line.T, + reference_temperature_k=amesim_reference_temperature_k, + ) + python_reference_port_2_dh = _actual_reference_enthalpy_flow( + gas=line.gas, + port_m_flow=python_port_2_flow, + connected_pressure_pa=snapshot.chamber.p, + connected_temperature_k=snapshot.chamber.T, + internal_pressure_pa=snapshot.inlet_line.p, + internal_temperature_k=snapshot.inlet_line.T, + reference_temperature_k=amesim_reference_temperature_k, + ) + python_reference_mass_offset_flow = ( + line.gas.cp * amesim_reference_temperature_k + - line.gas.cv * snapshot.inlet_line.T + ) * (python_port_1_flow + python_port_2_flow) + + def python_reference_dtemp_component(flow_w: float) -> float: + return flow_w / (line.state.m * line.gas.cv) + + python_reference_port_1_dtemp = python_reference_dtemp_component( + python_reference_port_1_dh + ) + python_reference_port_2_dtemp = python_reference_dtemp_component( + python_reference_port_2_dh + ) + python_reference_mass_offset_dtemp = python_reference_dtemp_component( + python_reference_mass_offset_flow + ) + python_reference_dtemp = ( + python_reference_port_1_dtemp + + python_reference_port_2_dtemp + + python_reference_mass_offset_dtemp + + python_heat_dtemp + ) + ( + python_reference_pressure_mass_component, + python_reference_pressure_temperature_component, + python_reference_pressure_eos_sum, + ) = _pressure_derivative_components_from_density_temperature( + gas=line.gas, + density_kg_m3=line.state.m / line.volume, + temperature_k=snapshot.inlet_line.T, + density_derivative_kg_m3_s=python_density_derivative, + temperature_derivative_k_s=python_reference_dtemp, + ) + + python_reference_amesim_storage_mass_offset_flow = ( + line.gas.cp * amesim_reference_temperature_k + - line.gas.cv * snapshot.inlet_line.T + ) * amesim_storage_kg_s + python_reference_amesim_storage_mass_offset_dtemp = ( + python_reference_dtemp_component( + python_reference_amesim_storage_mass_offset_flow + ) + ) + python_reference_amesim_storage_dtemp = ( + python_reference_port_1_dtemp + + python_reference_port_2_dtemp + + python_reference_amesim_storage_mass_offset_dtemp + + python_heat_dtemp + ) + ( + python_reference_amesim_storage_pressure_mass_component, + python_reference_amesim_storage_pressure_temperature_component, + python_reference_amesim_storage_pressure_eos_sum, + ) = _pressure_derivative_components_from_density_temperature( + gas=line.gas, + density_kg_m3=line.state.m / line.volume, + temperature_k=snapshot.inlet_line.T, + density_derivative_kg_m3_s=amesim_storage_kg_s / line.volume, + temperature_derivative_k_s=python_reference_amesim_storage_dtemp, + ) + return TestMqlPneumatic96InletLineDiagnostic( line_alias=line_alias, node_alias=node_alias, @@ -2711,6 +2810,54 @@ def _pneumatic_96_inlet_line_diagnostic( python_pressure_derivative_eos_error_pa_s=( python_pressure_eos_sum - amesim_line_pressure_fd ), + python_reference_port_1_enthalpy_flow_w=python_reference_port_1_dh, + python_reference_port_2_enthalpy_flow_w=python_reference_port_2_dh, + python_reference_port_1_dtemp_component_k_s=( + python_reference_port_1_dtemp + ), + python_reference_port_2_dtemp_component_k_s=( + python_reference_port_2_dtemp + ), + python_reference_mass_offset_dtemp_component_k_s=( + python_reference_mass_offset_dtemp + ), + python_reference_temperature_derivative_k_s=python_reference_dtemp, + python_reference_temperature_derivative_error_k_s=( + python_reference_dtemp - amesim_line_temperature_fd + ), + python_reference_pressure_derivative_mass_component_pa_s=( + python_reference_pressure_mass_component + ), + python_reference_pressure_derivative_temperature_component_pa_s=( + python_reference_pressure_temperature_component + ), + python_reference_pressure_derivative_eos_sum_pa_s=( + python_reference_pressure_eos_sum + ), + python_reference_pressure_derivative_eos_error_pa_s=( + python_reference_pressure_eos_sum - amesim_line_pressure_fd + ), + python_reference_amesim_storage_mass_offset_dtemp_component_k_s=( + python_reference_amesim_storage_mass_offset_dtemp + ), + python_reference_amesim_storage_temperature_derivative_k_s=( + python_reference_amesim_storage_dtemp + ), + python_reference_amesim_storage_temperature_derivative_error_k_s=( + python_reference_amesim_storage_dtemp - amesim_line_temperature_fd + ), + python_reference_amesim_storage_pressure_derivative_mass_component_pa_s=( + python_reference_amesim_storage_pressure_mass_component + ), + python_reference_amesim_storage_pressure_derivative_temperature_component_pa_s=( + python_reference_amesim_storage_pressure_temperature_component + ), + python_reference_amesim_storage_pressure_derivative_eos_sum_pa_s=( + python_reference_amesim_storage_pressure_eos_sum + ), + python_reference_amesim_storage_pressure_derivative_eos_error_pa_s=( + python_reference_amesim_storage_pressure_eos_sum - amesim_line_pressure_fd + ), python_chamber_pressure_error_pa=( snapshot.chamber.p - amesim_chamber_pressure ), @@ -3398,6 +3545,24 @@ def format_test_mql_pnvo_event_window_summary( f"python_dP_T={inlet_line.python_pressure_derivative_temperature_component_pa_s}, " f"python_dP_sum={inlet_line.python_pressure_derivative_eos_sum_pa_s}, " f"python_dP_error={inlet_line.python_pressure_derivative_eos_error_pa_s}, " + f"python_ref_dh1={inlet_line.python_reference_port_1_enthalpy_flow_w}, " + f"python_ref_dh2={inlet_line.python_reference_port_2_enthalpy_flow_w}, " + f"python_ref_dT_p1={inlet_line.python_reference_port_1_dtemp_component_k_s}, " + f"python_ref_dT_p2={inlet_line.python_reference_port_2_dtemp_component_k_s}, " + f"python_ref_dT_m_offset={inlet_line.python_reference_mass_offset_dtemp_component_k_s}, " + f"python_ref_dT={inlet_line.python_reference_temperature_derivative_k_s}, " + f"python_ref_dT_error={inlet_line.python_reference_temperature_derivative_error_k_s}, " + f"python_ref_dP_m={inlet_line.python_reference_pressure_derivative_mass_component_pa_s}, " + f"python_ref_dP_T={inlet_line.python_reference_pressure_derivative_temperature_component_pa_s}, " + f"python_ref_dP_sum={inlet_line.python_reference_pressure_derivative_eos_sum_pa_s}, " + f"python_ref_dP_error={inlet_line.python_reference_pressure_derivative_eos_error_pa_s}, " + f"python_ref_amesim_storage_dT_m_offset={inlet_line.python_reference_amesim_storage_mass_offset_dtemp_component_k_s}, " + f"python_ref_amesim_storage_dT={inlet_line.python_reference_amesim_storage_temperature_derivative_k_s}, " + f"python_ref_amesim_storage_dT_error={inlet_line.python_reference_amesim_storage_temperature_derivative_error_k_s}, " + f"python_ref_amesim_storage_dP_m={inlet_line.python_reference_amesim_storage_pressure_derivative_mass_component_pa_s}, " + f"python_ref_amesim_storage_dP_T={inlet_line.python_reference_amesim_storage_pressure_derivative_temperature_component_pa_s}, " + f"python_ref_amesim_storage_dP_sum={inlet_line.python_reference_amesim_storage_pressure_derivative_eos_sum_pa_s}, " + f"python_ref_amesim_storage_dP_error={inlet_line.python_reference_amesim_storage_pressure_derivative_eos_error_pa_s}, " f"python_chamber_p_error={inlet_line.python_chamber_pressure_error_pa}, " f"python_chamber_t_error={inlet_line.python_chamber_temperature_error_k}" ) diff --git a/tests/test_run_test_mql_full_state_comparison.py b/tests/test_run_test_mql_full_state_comparison.py index e8a0592..68ecf2f 100644 --- a/tests/test_run_test_mql_full_state_comparison.py +++ b/tests/test_run_test_mql_full_state_comparison.py @@ -545,6 +545,44 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase): python_pressure_derivative_temperature_component_pa_s=650331.8, python_pressure_derivative_eos_sum_pa_s=-17267169.5, python_pressure_derivative_eos_error_pa_s=568762.8, + python_reference_port_1_enthalpy_flow_w=0.0, + python_reference_port_2_enthalpy_flow_w=-710.0, + python_reference_port_1_dtemp_component_k_s=0.0, + python_reference_port_2_dtemp_component_k_s=-65.3, + python_reference_mass_offset_dtemp_component_k_s=-382.2, + python_reference_temperature_derivative_k_s=-447.5, + python_reference_temperature_derivative_error_k_s=-597.0, + python_reference_pressure_derivative_mass_component_pa_s=( + -17917501.3 + ), + python_reference_pressure_derivative_temperature_component_pa_s=( + -22045000.0 + ), + python_reference_pressure_derivative_eos_sum_pa_s=-39962501.3, + python_reference_pressure_derivative_eos_error_pa_s=( + -21955100.0 + ), + python_reference_amesim_storage_mass_offset_dtemp_component_k_s=( + -351.0 + ), + python_reference_amesim_storage_temperature_derivative_k_s=( + -416.3 + ), + python_reference_amesim_storage_temperature_derivative_error_k_s=( + -565.8 + ), + python_reference_amesim_storage_pressure_derivative_mass_component_pa_s=( + -25407051.3 + ), + python_reference_amesim_storage_pressure_derivative_temperature_component_pa_s=( + -20500000.0 + ), + python_reference_amesim_storage_pressure_derivative_eos_sum_pa_s=( + -45907051.3 + ), + python_reference_amesim_storage_pressure_derivative_eos_error_pa_s=( + -27999648.2 + ), python_chamber_pressure_error_pa=11.9, python_chamber_temperature_error_k=0.1, ), @@ -724,6 +762,11 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase): self.assertIn("python_current_dT=261.9", summary) self.assertIn("python_dT_error=112.4", summary) self.assertIn("python_dP_error=568762.8", summary) + self.assertIn("python_ref_dT=-447.5", summary) + self.assertIn("python_ref_dT_error=-597.0", summary) + self.assertIn("python_ref_dP_error=-21955100.0", summary) + self.assertIn("python_ref_amesim_storage_dT=-416.3", summary) + self.assertIn("python_ref_amesim_storage_dP_error=-27999648.2", summary) self.assertIn("pnl0003_energy@pneumatic_87", summary) self.assertIn("amesim_sdm1=-462.7", summary) self.assertIn("amesim_sdh2=3028.0", summary)