补充test_mql pneumatic_96参考导数反事实诊断
This commit is contained in:
1 parent
532fdb4e6b
commit
cd2fa800b9
2 files changed
+212
-4
No files matched your search
@@ -624,6 +624,24 @@ class TestMqlPneumatic96InletLineDiagnostic:
|
|||||||
python_pressure_derivative_temperature_component_pa_s: float
|
python_pressure_derivative_temperature_component_pa_s: float
|
||||||
python_pressure_derivative_eos_sum_pa_s: float
|
python_pressure_derivative_eos_sum_pa_s: float
|
||||||
python_pressure_derivative_eos_error_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_pressure_error_pa: float
|
||||||
python_chamber_temperature_error_k: float
|
python_chamber_temperature_error_k: float
|
||||||
|
|
||||||
@@ -2618,6 +2636,10 @@ def _pneumatic_96_inlet_line_diagnostic(
|
|||||||
python_current_dtemp = (
|
python_current_dtemp = (
|
||||||
python_port_1_dtemp + python_port_2_dtemp + python_heat_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_mass_component,
|
||||||
python_pressure_temperature_component,
|
python_pressure_temperature_component,
|
||||||
@@ -2626,13 +2648,90 @@ def _pneumatic_96_inlet_line_diagnostic(
|
|||||||
gas=line.gas,
|
gas=line.gas,
|
||||||
density_kg_m3=line.state.m / line.volume,
|
density_kg_m3=line.state.m / line.volume,
|
||||||
temperature_k=snapshot.inlet_line.T,
|
temperature_k=snapshot.inlet_line.T,
|
||||||
density_derivative_kg_m3_s=(
|
density_derivative_kg_m3_s=python_density_derivative,
|
||||||
(snapshot.inlet_node_to_line_flow - snapshot.inlet_line_to_chamber_flow)
|
|
||||||
/ line.volume
|
|
||||||
),
|
|
||||||
temperature_derivative_k_s=python_current_dtemp,
|
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(
|
return TestMqlPneumatic96InletLineDiagnostic(
|
||||||
line_alias=line_alias,
|
line_alias=line_alias,
|
||||||
node_alias=node_alias,
|
node_alias=node_alias,
|
||||||
@@ -2711,6 +2810,54 @@ def _pneumatic_96_inlet_line_diagnostic(
|
|||||||
python_pressure_derivative_eos_error_pa_s=(
|
python_pressure_derivative_eos_error_pa_s=(
|
||||||
python_pressure_eos_sum - amesim_line_pressure_fd
|
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=(
|
python_chamber_pressure_error_pa=(
|
||||||
snapshot.chamber.p - amesim_chamber_pressure
|
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_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_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_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_p_error={inlet_line.python_chamber_pressure_error_pa}, "
|
||||||
f"python_chamber_t_error={inlet_line.python_chamber_temperature_error_k}"
|
f"python_chamber_t_error={inlet_line.python_chamber_temperature_error_k}"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -545,6 +545,44 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
|
|||||||
python_pressure_derivative_temperature_component_pa_s=650331.8,
|
python_pressure_derivative_temperature_component_pa_s=650331.8,
|
||||||
python_pressure_derivative_eos_sum_pa_s=-17267169.5,
|
python_pressure_derivative_eos_sum_pa_s=-17267169.5,
|
||||||
python_pressure_derivative_eos_error_pa_s=568762.8,
|
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_pressure_error_pa=11.9,
|
||||||
python_chamber_temperature_error_k=0.1,
|
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_current_dT=261.9", summary)
|
||||||
self.assertIn("python_dT_error=112.4", summary)
|
self.assertIn("python_dT_error=112.4", summary)
|
||||||
self.assertIn("python_dP_error=568762.8", 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("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)
|
||||||
|
|||||||
Reference in new issue
Block a user