补充test_mql PNL0003质量导数链路诊断

This commit is contained in:
huojiarong committed 2026-07-29 07:09:11 +00:00
1 parent 200d4593e8
commit bf4dc0af3d
2 files changed
+136

No files matched your search

@@ -435,6 +435,10 @@ class TestMqlPnl0003EnergyDiagnostic:
amesim_port_1_storage_enthalpy_sum_w: float amesim_port_1_storage_enthalpy_sum_w: float
amesim_port_2_storage_mass_derivative_g_s: float amesim_port_2_storage_mass_derivative_g_s: float
amesim_port_2_storage_enthalpy_sum_w: float amesim_port_2_storage_enthalpy_sum_w: float
python_pn3_node_port_1_mass_flow_g_s: float
python_pn3_node_port_3_mass_flow_g_s: float
python_pn3_node_to_line_mass_flow_g_s: float
python_pn3_node_to_line_mass_flow_error_g_s: float
amesim_port_1_mass_estimate_g: float amesim_port_1_mass_estimate_g: float
amesim_port_2_mass_estimate_g: float amesim_port_2_mass_estimate_g: float
python_port_1_mass_g: float python_port_1_mass_g: float
@@ -449,6 +453,20 @@ 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
amesim_port_1_center_mass_derivative_g_s: float
amesim_port_2_center_mass_derivative_g_s: float
python_port_1_external_mass_flow_g_s: float
python_port_1_external_mass_flow_error_g_s: float
python_port_1_center_mass_derivative_g_s: float
python_port_1_center_mass_derivative_error_g_s: float
python_port_1_storage_mass_derivative_g_s: float
python_port_1_storage_mass_derivative_error_g_s: float
python_port_2_external_mass_flow_g_s: float
python_port_2_external_mass_flow_error_g_s: float
python_port_2_center_mass_derivative_g_s: float
python_port_2_center_mass_derivative_error_g_s: float
python_port_2_storage_mass_derivative_g_s: float
python_port_2_storage_mass_derivative_error_g_s: float
python_amesim_state_darcy_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_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_g_s: float
@@ -1719,6 +1737,10 @@ def _pnl0003_energy_diagnostic(
amesim_p2 = amesim_value(f"p2@{line_alias}") + AMESIM_REFERENCE_PRESSURE_PA amesim_p2 = amesim_value(f"p2@{line_alias}") + AMESIM_REFERENCE_PRESSURE_PA
amesim_dm1 = amesim_value("dm2@pn_node3_8") amesim_dm1 = amesim_value("dm2@pn_node3_8")
amesim_dh1 = amesim_value("dh2@pn_node3_8") amesim_dh1 = amesim_value("dh2@pn_node3_8")
python_node_dm1 = snapshot.p4_port3_remote_orifice_node_balance.port_1_mass_flow_g_s
python_node_dm3 = snapshot.p4_port3_remote_orifice_node_balance.port_3_mass_flow_g_s
python_node_dm2_sum = python_node_dm1 + python_node_dm3
python_node_to_line_dm = -python_node_dm2_sum
amesim_dm2 = amesim_value("dm3@pn_morifice_1") amesim_dm2 = amesim_value("dm3@pn_morifice_1")
amesim_dh2 = amesim_value("dh3@pn_morifice_1") amesim_dh2 = amesim_value("dh3@pn_morifice_1")
amesim_dmctr = amesim_value(f"dmctr@{line_alias}") amesim_dmctr = amesim_value(f"dmctr@{line_alias}")
@@ -1749,6 +1771,20 @@ 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
) )
amesim_port_1_center_mass_derivative_g_s = amesim_dmctr
amesim_port_2_center_mass_derivative_g_s = -amesim_dmctr
python_port_1_external_mass_flow_g_s = port_1_flow * 1.0e3
python_port_1_center_mass_derivative_g_s = -center_flow * 1.0e3
python_port_1_storage_mass_derivative_g_s = (
python_port_1_external_mass_flow_g_s
+ python_port_1_center_mass_derivative_g_s
)
python_port_2_external_mass_flow_g_s = port_2_flow * 1.0e3
python_port_2_center_mass_derivative_g_s = center_flow * 1.0e3
python_port_2_storage_mass_derivative_g_s = (
python_port_2_external_mass_flow_g_s
+ python_port_2_center_mass_derivative_g_s
)
def current_darcy_center_flow_for_state( def current_darcy_center_flow_for_state(
port_1_pressure_pa: float, port_1_pressure_pa: float,
@@ -2146,6 +2182,12 @@ def _pnl0003_energy_diagnostic(
amesim_port_1_storage_enthalpy_sum_w=amesim_sdh1, amesim_port_1_storage_enthalpy_sum_w=amesim_sdh1,
amesim_port_2_storage_mass_derivative_g_s=amesim_sdm2_kg_s * 1.0e3, amesim_port_2_storage_mass_derivative_g_s=amesim_sdm2_kg_s * 1.0e3,
amesim_port_2_storage_enthalpy_sum_w=amesim_sdh2, amesim_port_2_storage_enthalpy_sum_w=amesim_sdh2,
python_pn3_node_port_1_mass_flow_g_s=python_node_dm1,
python_pn3_node_port_3_mass_flow_g_s=python_node_dm3,
python_pn3_node_to_line_mass_flow_g_s=python_node_to_line_dm,
python_pn3_node_to_line_mass_flow_error_g_s=(
python_node_to_line_dm - amesim_dm1
),
amesim_port_1_mass_estimate_g=amesim_mass_1 * 1.0e3, amesim_port_1_mass_estimate_g=amesim_mass_1 * 1.0e3,
amesim_port_2_mass_estimate_g=amesim_mass_2 * 1.0e3, amesim_port_2_mass_estimate_g=amesim_mass_2 * 1.0e3,
python_port_1_mass_g=line.state_1.m * 1.0e3, python_port_1_mass_g=line.state_1.m * 1.0e3,
@@ -2176,6 +2218,46 @@ 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,
amesim_port_1_center_mass_derivative_g_s=(
amesim_port_1_center_mass_derivative_g_s
),
amesim_port_2_center_mass_derivative_g_s=(
amesim_port_2_center_mass_derivative_g_s
),
python_port_1_external_mass_flow_g_s=python_port_1_external_mass_flow_g_s,
python_port_1_external_mass_flow_error_g_s=(
python_port_1_external_mass_flow_g_s - amesim_dm1
),
python_port_1_center_mass_derivative_g_s=(
python_port_1_center_mass_derivative_g_s
),
python_port_1_center_mass_derivative_error_g_s=(
python_port_1_center_mass_derivative_g_s
- amesim_port_1_center_mass_derivative_g_s
),
python_port_1_storage_mass_derivative_g_s=(
python_port_1_storage_mass_derivative_g_s
),
python_port_1_storage_mass_derivative_error_g_s=(
python_port_1_storage_mass_derivative_g_s - amesim_sdm1_kg_s * 1.0e3
),
python_port_2_external_mass_flow_g_s=python_port_2_external_mass_flow_g_s,
python_port_2_external_mass_flow_error_g_s=(
python_port_2_external_mass_flow_g_s - amesim_dm2
),
python_port_2_center_mass_derivative_g_s=(
python_port_2_center_mass_derivative_g_s
),
python_port_2_center_mass_derivative_error_g_s=(
python_port_2_center_mass_derivative_g_s
- amesim_port_2_center_mass_derivative_g_s
),
python_port_2_storage_mass_derivative_g_s=(
python_port_2_storage_mass_derivative_g_s
),
python_port_2_storage_mass_derivative_error_g_s=(
python_port_2_storage_mass_derivative_g_s - amesim_sdm2_kg_s * 1.0e3
),
python_amesim_state_darcy_center_mass_flow_g_s=( python_amesim_state_darcy_center_mass_flow_g_s=(
amesim_state_darcy_center_flow * 1.0e3 amesim_state_darcy_center_flow * 1.0e3
), ),
@@ -2972,6 +3054,10 @@ def format_test_mql_pnvo_event_window_summary(
f"amesim_sdh1={pnl0003_energy.amesim_port_1_storage_enthalpy_sum_w}, " f"amesim_sdh1={pnl0003_energy.amesim_port_1_storage_enthalpy_sum_w}, "
f"amesim_sdm2={pnl0003_energy.amesim_port_2_storage_mass_derivative_g_s}, " f"amesim_sdm2={pnl0003_energy.amesim_port_2_storage_mass_derivative_g_s}, "
f"amesim_sdh2={pnl0003_energy.amesim_port_2_storage_enthalpy_sum_w}, " f"amesim_sdh2={pnl0003_energy.amesim_port_2_storage_enthalpy_sum_w}, "
f"python_node_dm1={pnl0003_energy.python_pn3_node_port_1_mass_flow_g_s}, "
f"python_node_dm3={pnl0003_energy.python_pn3_node_port_3_mass_flow_g_s}, "
f"python_node_to_line_dm={pnl0003_energy.python_pn3_node_to_line_mass_flow_g_s}, "
f"python_node_to_line_dm_error={pnl0003_energy.python_pn3_node_to_line_mass_flow_error_g_s}, "
f"amesim_m1={pnl0003_energy.amesim_port_1_mass_estimate_g}, " f"amesim_m1={pnl0003_energy.amesim_port_1_mass_estimate_g}, "
f"amesim_m2={pnl0003_energy.amesim_port_2_mass_estimate_g}, " f"amesim_m2={pnl0003_energy.amesim_port_2_mass_estimate_g}, "
f"python_m1={pnl0003_energy.python_port_1_mass_g}, " f"python_m1={pnl0003_energy.python_port_1_mass_g}, "
@@ -2986,6 +3072,20 @@ 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"amesim_sdm1_center={pnl0003_energy.amesim_port_1_center_mass_derivative_g_s}, "
f"amesim_sdm2_center={pnl0003_energy.amesim_port_2_center_mass_derivative_g_s}, "
f"python_sdm1_ext={pnl0003_energy.python_port_1_external_mass_flow_g_s}, "
f"python_sdm1_ext_error={pnl0003_energy.python_port_1_external_mass_flow_error_g_s}, "
f"python_sdm1_center={pnl0003_energy.python_port_1_center_mass_derivative_g_s}, "
f"python_sdm1_center_error={pnl0003_energy.python_port_1_center_mass_derivative_error_g_s}, "
f"python_sdm1={pnl0003_energy.python_port_1_storage_mass_derivative_g_s}, "
f"python_sdm1_error={pnl0003_energy.python_port_1_storage_mass_derivative_error_g_s}, "
f"python_sdm2_ext={pnl0003_energy.python_port_2_external_mass_flow_g_s}, "
f"python_sdm2_ext_error={pnl0003_energy.python_port_2_external_mass_flow_error_g_s}, "
f"python_sdm2_center={pnl0003_energy.python_port_2_center_mass_derivative_g_s}, "
f"python_sdm2_center_error={pnl0003_energy.python_port_2_center_mass_derivative_error_g_s}, "
f"python_sdm2={pnl0003_energy.python_port_2_storage_mass_derivative_g_s}, "
f"python_sdm2_error={pnl0003_energy.python_port_2_storage_mass_derivative_error_g_s}, "
f"python_amesim_state_darcy_center_dm=" f"python_amesim_state_darcy_center_dm="
f"{pnl0003_energy.python_amesim_state_darcy_center_mass_flow_g_s}, " f"{pnl0003_energy.python_amesim_state_darcy_center_mass_flow_g_s}, "
f"python_amesim_state_darcy_center_dm_error=" f"python_amesim_state_darcy_center_dm_error="
@@ -380,6 +380,10 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
amesim_port_1_storage_enthalpy_sum_w=15908.7, amesim_port_1_storage_enthalpy_sum_w=15908.7,
amesim_port_2_storage_mass_derivative_g_s=-2.6, amesim_port_2_storage_mass_derivative_g_s=-2.6,
amesim_port_2_storage_enthalpy_sum_w=3028.0, amesim_port_2_storage_enthalpy_sum_w=3028.0,
python_pn3_node_port_1_mass_flow_g_s=-333.0,
python_pn3_node_port_3_mass_flow_g_s=-119.9,
python_pn3_node_to_line_mass_flow_g_s=452.9,
python_pn3_node_to_line_mass_flow_error_g_s=461.4,
amesim_port_1_mass_estimate_g=1.12, amesim_port_1_mass_estimate_g=1.12,
amesim_port_2_mass_estimate_g=1.05, amesim_port_2_mass_estimate_g=1.05,
python_port_1_mass_g=1.11, python_port_1_mass_g=1.11,
@@ -394,6 +398,20 @@ 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,
amesim_port_1_center_mass_derivative_g_s=-454.2,
amesim_port_2_center_mass_derivative_g_s=454.2,
python_port_1_external_mass_flow_g_s=337.0,
python_port_1_external_mass_flow_error_g_s=15.1,
python_port_1_center_mass_derivative_g_s=-454.0,
python_port_1_center_mass_derivative_error_g_s=0.2,
python_port_1_storage_mass_derivative_g_s=-117.0,
python_port_1_storage_mass_derivative_error_g_s=345.7,
python_port_2_external_mass_flow_g_s=-456.4,
python_port_2_external_mass_flow_error_g_s=0.4,
python_port_2_center_mass_derivative_g_s=454.0,
python_port_2_center_mass_derivative_error_g_s=-0.2,
python_port_2_storage_mass_derivative_g_s=-2.4,
python_port_2_storage_mass_derivative_error_g_s=0.2,
python_amesim_state_darcy_center_mass_flow_g_s=453.5, 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_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_g_s=455.0,
@@ -640,6 +658,10 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
self.assertIn("pnl0003_energy@pneumatic_87", summary) self.assertIn("pnl0003_energy@pneumatic_87", summary)
self.assertIn("amesim_sdm1=-462.7", summary) self.assertIn("amesim_sdm1=-462.7", summary)
self.assertIn("amesim_sdh2=3028.0", summary) self.assertIn("amesim_sdh2=3028.0", summary)
self.assertIn("python_node_dm1=-333.0", summary)
self.assertIn("python_node_dm3=-119.9", summary)
self.assertIn("python_node_to_line_dm=452.9", summary)
self.assertIn("python_node_to_line_dm_error=461.4", summary)
self.assertIn("amesim_m2=1.05", summary) self.assertIn("amesim_m2=1.05", summary)
self.assertIn("python_m2=1.04", summary) self.assertIn("python_m2=1.04", summary)
self.assertIn("python_m2_error=-0.01", summary) self.assertIn("python_m2_error=-0.01", summary)
@@ -650,6 +672,20 @@ 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("amesim_sdm1_center=-454.2", summary)
self.assertIn("amesim_sdm2_center=454.2", summary)
self.assertIn("python_sdm1_ext=337.0", summary)
self.assertIn("python_sdm1_ext_error=15.1", summary)
self.assertIn("python_sdm1_center=-454.0", summary)
self.assertIn("python_sdm1_center_error=0.2", summary)
self.assertIn("python_sdm1=-117.0", summary)
self.assertIn("python_sdm1_error=345.7", summary)
self.assertIn("python_sdm2_ext=-456.4", summary)
self.assertIn("python_sdm2_ext_error=0.4", summary)
self.assertIn("python_sdm2_center=454.0", summary)
self.assertIn("python_sdm2_center_error=-0.2", summary)
self.assertIn("python_sdm2=-2.4", summary)
self.assertIn("python_sdm2_error=0.2", summary)
self.assertIn("python_amesim_state_darcy_center_dm=453.5", 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_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=455.0", summary)