接入test_mql PNVO阶跃控制与流量诊断

This commit is contained in:
huojiarong committed 2026-07-21 07:28:28 +00:00
1 parent 65f6d6dd87
commit 7c68caed27
7 files changed
+298 -24

No files matched your search

@@ -29,7 +29,11 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
output_dir=output_dir,
),
execution=TestMqlFullStateComparisonExecutionConfig(
data_paths=("press@pn_c1_8", "vol1@pn_brp2_8"),
data_paths=(
"press@pn_c1_8",
"vol1@pn_brp2_8",
"dm1@pneumatic_69",
),
solver=SolveIVPConfig(t_start=0.0, t_stop=0.0),
t_eval=(0.0,),
),
@@ -44,7 +48,7 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
self.assertEqual(returned_output_dir, output_dir)
self.assertEqual(run.sample_count, 1)
self.assertEqual(run.signal_count, 2)
self.assertEqual(run.signal_count, 3)
self.assertAlmostEqual(run.comparison.max_abs_error, 0.0, delta=1.0e-8)
self.assertEqual(
run.metrics_by_max_abs_error()[0].data_path,
@@ -59,6 +63,14 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
run.diagnostics_by_final_abs_error()[0].data_path,
"press@pn_c1_8",
)
flow_diagnostic = run.pnl0001_mass_flow_diagnostic()
self.assertEqual(flow_diagnostic.data_path, "dm1@pneumatic_69")
self.assertAlmostEqual(flow_diagnostic.initial_python_dm1_g_s, 0.0)
self.assertAlmostEqual(flow_diagnostic.initial_amesim_dm1_g_s, 0.0)
self.assertAlmostEqual(
flow_diagnostic.initial_python_canonical_kg_s,
-flow_diagnostic.initial_python_dm1_g_s * 1.0e-3,
)
chamber_diagnostic = run.chamber_rhs_diagnostic("pn_c1_8")
self.assertEqual(chamber_diagnostic.chamber_alias, "pn_c1_8")
self.assertEqual(chamber_diagnostic.piston_alias, "pn_brp2_8")
@@ -71,11 +83,16 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
)
self.assertTrue(csv_summary_exists)
self.assertIn("Mode: Python 132 full-state closure comparison", summary)
self.assertIn("Compared signals: 2", summary)
self.assertIn("Compared signals: 3", summary)
self.assertIn("Largest absolute error: press@pn_c1_8=", summary)
self.assertIn("Largest final endpoint error: press@pn_c1_8=", summary)
self.assertIn("Metrics by max absolute error:", summary)
self.assertIn("Endpoint diagnostics by final absolute error:", summary)
self.assertIn(
"PNL0001 canonical mass-flow diagnostic: dm1@pneumatic_69",
summary,
)
self.assertIn("equals -AMESim dm1 * 1e-3", summary)
self.assertIn("Largest endpoint chamber RHS breakdown: pn_c1_8", summary)
self.assertIn("piston_alias=pn_brp2_8", summary)
self.assertIn("mass_derivative_kg_s=", summary)
@@ -84,6 +101,7 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
self.assertIn("final_amesim=", summary)
self.assertIn("python.press@pn_c1_8", csv_header)
self.assertIn("amesim.vol1@pn_brp2_8", csv_header)
self.assertIn("python.dm1@pneumatic_69", csv_header)
def test_full_state_script_can_skip_artifact_files(self) -> None:
with tempfile.TemporaryDirectory() as tmpdir: