补充test_mql pneumatic_96导数分项诊断
This commit is contained in:
1 parent
bd7c8c99e9
commit
532fdb4e6b
2 files changed
+200
No files matched your search
@@ -590,6 +590,17 @@ class TestMqlPneumatic96InletLineDiagnostic:
|
|||||||
amesim_storage_mass_derivative_residual_g_s: float
|
amesim_storage_mass_derivative_residual_g_s: float
|
||||||
amesim_chamber_pressure_pa: float
|
amesim_chamber_pressure_pa: float
|
||||||
amesim_chamber_temperature_k: float
|
amesim_chamber_temperature_k: float
|
||||||
|
amesim_line_temperature_derivative_fd_k_s: float
|
||||||
|
amesim_line_pressure_derivative_fd_pa_s: float
|
||||||
|
amesim_port_1_enthalpy_dtemp_component_k_s: float
|
||||||
|
amesim_port_2_enthalpy_dtemp_component_k_s: float
|
||||||
|
amesim_mass_offset_dtemp_component_k_s: float
|
||||||
|
amesim_reference_temperature_derivative_sum_k_s: float
|
||||||
|
amesim_reference_temperature_derivative_residual_k_s: float
|
||||||
|
amesim_pressure_derivative_mass_component_pa_s: float
|
||||||
|
amesim_pressure_derivative_temperature_component_pa_s: float
|
||||||
|
amesim_pressure_derivative_eos_sum_pa_s: float
|
||||||
|
amesim_pressure_derivative_eos_residual_pa_s: float
|
||||||
python_line_pressure_pa: float
|
python_line_pressure_pa: float
|
||||||
python_line_temperature_k: float
|
python_line_temperature_k: float
|
||||||
python_line_mass_g: float
|
python_line_mass_g: float
|
||||||
@@ -604,6 +615,15 @@ class TestMqlPneumatic96InletLineDiagnostic:
|
|||||||
python_storage_mass_derivative_error_g_s: float
|
python_storage_mass_derivative_error_g_s: float
|
||||||
python_chamber_pressure_pa: float
|
python_chamber_pressure_pa: float
|
||||||
python_chamber_temperature_k: float
|
python_chamber_temperature_k: float
|
||||||
|
python_current_temperature_derivative_k_s: float
|
||||||
|
python_port_1_current_dtemp_component_k_s: float
|
||||||
|
python_port_2_current_dtemp_component_k_s: float
|
||||||
|
python_heat_dtemp_component_k_s: float
|
||||||
|
python_temperature_derivative_error_k_s: float
|
||||||
|
python_pressure_derivative_mass_component_pa_s: float
|
||||||
|
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_chamber_pressure_error_pa: float
|
python_chamber_pressure_error_pa: float
|
||||||
python_chamber_temperature_error_k: float
|
python_chamber_temperature_error_k: float
|
||||||
|
|
||||||
@@ -2516,6 +2536,103 @@ def _pneumatic_96_inlet_line_diagnostic(
|
|||||||
snapshot.inlet_node_to_line_flow - snapshot.inlet_line_to_chamber_flow
|
snapshot.inlet_node_to_line_flow - snapshot.inlet_line_to_chamber_flow
|
||||||
) * 1.0e3
|
) * 1.0e3
|
||||||
|
|
||||||
|
amesim_line_temperature_fd = _series_finite_difference_at(
|
||||||
|
times=amesim_results.times,
|
||||||
|
values=amesim_results.series(f"t2@{line_alias}"),
|
||||||
|
time_s=time_s,
|
||||||
|
)
|
||||||
|
amesim_line_pressure_fd = _series_finite_difference_at(
|
||||||
|
times=amesim_results.times,
|
||||||
|
values=amesim_results.series(f"p2@{line_alias}"),
|
||||||
|
time_s=time_s,
|
||||||
|
)
|
||||||
|
amesim_dh1 = amesim_value(f"dh1@{line_alias}")
|
||||||
|
amesim_dh2 = amesim_value(f"dh2@{orifice_alias}")
|
||||||
|
amesim_line_mass_kg = amesim_line_mass * 1.0e-3
|
||||||
|
amesim_storage_kg_s = amesim_storage_from_ports * 1.0e-3
|
||||||
|
amesim_reference_temperature_k = 298.15
|
||||||
|
amesim_mass_offset_flow = (
|
||||||
|
line.gas.cp * amesim_reference_temperature_k
|
||||||
|
- line.gas.cv * amesim_line_temperature
|
||||||
|
) * amesim_storage_kg_s
|
||||||
|
|
||||||
|
def amesim_dtemp_component(flow_w: float) -> float:
|
||||||
|
return flow_w / (amesim_line_mass_kg * line.gas.cv)
|
||||||
|
|
||||||
|
amesim_port_1_dtemp = amesim_dtemp_component(-amesim_dh1)
|
||||||
|
amesim_port_2_dtemp = amesim_dtemp_component(amesim_dh2)
|
||||||
|
amesim_mass_offset_dtemp = amesim_dtemp_component(amesim_mass_offset_flow)
|
||||||
|
amesim_reference_dtemp_sum = (
|
||||||
|
amesim_port_1_dtemp + amesim_port_2_dtemp + amesim_mass_offset_dtemp
|
||||||
|
)
|
||||||
|
(
|
||||||
|
amesim_pressure_mass_component,
|
||||||
|
amesim_pressure_temperature_component,
|
||||||
|
amesim_pressure_eos_sum,
|
||||||
|
) = _pressure_derivative_components_from_density_temperature(
|
||||||
|
gas=line.gas,
|
||||||
|
density_kg_m3=amesim_line_mass_kg / line.volume,
|
||||||
|
temperature_k=amesim_line_temperature,
|
||||||
|
density_derivative_kg_m3_s=amesim_storage_kg_s / line.volume,
|
||||||
|
temperature_derivative_k_s=amesim_line_temperature_fd,
|
||||||
|
)
|
||||||
|
|
||||||
|
python_port_1_flow = snapshot.inlet_node_to_line_flow
|
||||||
|
python_port_2_flow = -snapshot.inlet_line_to_chamber_flow
|
||||||
|
python_heat_flow = (
|
||||||
|
line.heat_transfer_coefficient
|
||||||
|
* line.heat_transfer_area
|
||||||
|
* (line.external_temperature - snapshot.inlet_line.T)
|
||||||
|
)
|
||||||
|
python_port_1_u = (
|
||||||
|
snapshot.inlet_node.h / line.gas.gamma
|
||||||
|
if python_port_1_flow > 0.0
|
||||||
|
else snapshot.inlet_line.u
|
||||||
|
)
|
||||||
|
python_port_2_u = (
|
||||||
|
snapshot.chamber.h / line.gas.gamma
|
||||||
|
if python_port_2_flow > 0.0
|
||||||
|
else snapshot.inlet_line.u
|
||||||
|
)
|
||||||
|
|
||||||
|
def python_current_dtemp_component(
|
||||||
|
*,
|
||||||
|
mass_flow_kg_s: float,
|
||||||
|
inlet_u_j_kg: float,
|
||||||
|
) -> float:
|
||||||
|
return (
|
||||||
|
mass_flow_kg_s
|
||||||
|
* (inlet_u_j_kg - snapshot.inlet_line.u)
|
||||||
|
/ (line.state.m * line.gas.cv)
|
||||||
|
)
|
||||||
|
|
||||||
|
python_port_1_dtemp = python_current_dtemp_component(
|
||||||
|
mass_flow_kg_s=python_port_1_flow,
|
||||||
|
inlet_u_j_kg=python_port_1_u,
|
||||||
|
)
|
||||||
|
python_port_2_dtemp = python_current_dtemp_component(
|
||||||
|
mass_flow_kg_s=python_port_2_flow,
|
||||||
|
inlet_u_j_kg=python_port_2_u,
|
||||||
|
)
|
||||||
|
python_heat_dtemp = python_heat_flow / (line.state.m * line.gas.cv)
|
||||||
|
python_current_dtemp = (
|
||||||
|
python_port_1_dtemp + python_port_2_dtemp + python_heat_dtemp
|
||||||
|
)
|
||||||
|
(
|
||||||
|
python_pressure_mass_component,
|
||||||
|
python_pressure_temperature_component,
|
||||||
|
python_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=(
|
||||||
|
(snapshot.inlet_node_to_line_flow - snapshot.inlet_line_to_chamber_flow)
|
||||||
|
/ line.volume
|
||||||
|
),
|
||||||
|
temperature_derivative_k_s=python_current_dtemp,
|
||||||
|
)
|
||||||
|
|
||||||
return TestMqlPneumatic96InletLineDiagnostic(
|
return TestMqlPneumatic96InletLineDiagnostic(
|
||||||
line_alias=line_alias,
|
line_alias=line_alias,
|
||||||
node_alias=node_alias,
|
node_alias=node_alias,
|
||||||
@@ -2534,6 +2651,27 @@ def _pneumatic_96_inlet_line_diagnostic(
|
|||||||
),
|
),
|
||||||
amesim_chamber_pressure_pa=amesim_chamber_pressure,
|
amesim_chamber_pressure_pa=amesim_chamber_pressure,
|
||||||
amesim_chamber_temperature_k=amesim_chamber_temperature,
|
amesim_chamber_temperature_k=amesim_chamber_temperature,
|
||||||
|
amesim_line_temperature_derivative_fd_k_s=amesim_line_temperature_fd,
|
||||||
|
amesim_line_pressure_derivative_fd_pa_s=amesim_line_pressure_fd,
|
||||||
|
amesim_port_1_enthalpy_dtemp_component_k_s=amesim_port_1_dtemp,
|
||||||
|
amesim_port_2_enthalpy_dtemp_component_k_s=amesim_port_2_dtemp,
|
||||||
|
amesim_mass_offset_dtemp_component_k_s=amesim_mass_offset_dtemp,
|
||||||
|
amesim_reference_temperature_derivative_sum_k_s=(
|
||||||
|
amesim_reference_dtemp_sum
|
||||||
|
),
|
||||||
|
amesim_reference_temperature_derivative_residual_k_s=(
|
||||||
|
amesim_reference_dtemp_sum - amesim_line_temperature_fd
|
||||||
|
),
|
||||||
|
amesim_pressure_derivative_mass_component_pa_s=(
|
||||||
|
amesim_pressure_mass_component
|
||||||
|
),
|
||||||
|
amesim_pressure_derivative_temperature_component_pa_s=(
|
||||||
|
amesim_pressure_temperature_component
|
||||||
|
),
|
||||||
|
amesim_pressure_derivative_eos_sum_pa_s=amesim_pressure_eos_sum,
|
||||||
|
amesim_pressure_derivative_eos_residual_pa_s=(
|
||||||
|
amesim_pressure_eos_sum - amesim_line_pressure_fd
|
||||||
|
),
|
||||||
python_line_pressure_pa=snapshot.inlet_line.p,
|
python_line_pressure_pa=snapshot.inlet_line.p,
|
||||||
python_line_temperature_k=snapshot.inlet_line.T,
|
python_line_temperature_k=snapshot.inlet_line.T,
|
||||||
python_line_mass_g=line.state.m * 1.0e3,
|
python_line_mass_g=line.state.m * 1.0e3,
|
||||||
@@ -2556,6 +2694,23 @@ def _pneumatic_96_inlet_line_diagnostic(
|
|||||||
),
|
),
|
||||||
python_chamber_pressure_pa=snapshot.chamber.p,
|
python_chamber_pressure_pa=snapshot.chamber.p,
|
||||||
python_chamber_temperature_k=snapshot.chamber.T,
|
python_chamber_temperature_k=snapshot.chamber.T,
|
||||||
|
python_current_temperature_derivative_k_s=python_current_dtemp,
|
||||||
|
python_port_1_current_dtemp_component_k_s=python_port_1_dtemp,
|
||||||
|
python_port_2_current_dtemp_component_k_s=python_port_2_dtemp,
|
||||||
|
python_heat_dtemp_component_k_s=python_heat_dtemp,
|
||||||
|
python_temperature_derivative_error_k_s=(
|
||||||
|
python_current_dtemp - amesim_line_temperature_fd
|
||||||
|
),
|
||||||
|
python_pressure_derivative_mass_component_pa_s=(
|
||||||
|
python_pressure_mass_component
|
||||||
|
),
|
||||||
|
python_pressure_derivative_temperature_component_pa_s=(
|
||||||
|
python_pressure_temperature_component
|
||||||
|
),
|
||||||
|
python_pressure_derivative_eos_sum_pa_s=python_pressure_eos_sum,
|
||||||
|
python_pressure_derivative_eos_error_pa_s=(
|
||||||
|
python_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
|
||||||
),
|
),
|
||||||
@@ -3223,6 +3378,26 @@ def format_test_mql_pnvo_event_window_summary(
|
|||||||
f"python_storage_dm_error={inlet_line.python_storage_mass_derivative_error_g_s}, "
|
f"python_storage_dm_error={inlet_line.python_storage_mass_derivative_error_g_s}, "
|
||||||
f"python_chamber_p_abs={inlet_line.python_chamber_pressure_pa}, "
|
f"python_chamber_p_abs={inlet_line.python_chamber_pressure_pa}, "
|
||||||
f"python_chamber_t={inlet_line.python_chamber_temperature_k}, "
|
f"python_chamber_t={inlet_line.python_chamber_temperature_k}, "
|
||||||
|
f"amesim_fd_dT={inlet_line.amesim_line_temperature_derivative_fd_k_s}, "
|
||||||
|
f"amesim_dT_p1_h={inlet_line.amesim_port_1_enthalpy_dtemp_component_k_s}, "
|
||||||
|
f"amesim_dT_p2_h={inlet_line.amesim_port_2_enthalpy_dtemp_component_k_s}, "
|
||||||
|
f"amesim_dT_m_offset={inlet_line.amesim_mass_offset_dtemp_component_k_s}, "
|
||||||
|
f"amesim_ref_dT_sum={inlet_line.amesim_reference_temperature_derivative_sum_k_s}, "
|
||||||
|
f"amesim_ref_dT_residual={inlet_line.amesim_reference_temperature_derivative_residual_k_s}, "
|
||||||
|
f"python_current_dT={inlet_line.python_current_temperature_derivative_k_s}, "
|
||||||
|
f"python_dT_p1={inlet_line.python_port_1_current_dtemp_component_k_s}, "
|
||||||
|
f"python_dT_p2={inlet_line.python_port_2_current_dtemp_component_k_s}, "
|
||||||
|
f"python_dT_heat={inlet_line.python_heat_dtemp_component_k_s}, "
|
||||||
|
f"python_dT_error={inlet_line.python_temperature_derivative_error_k_s}, "
|
||||||
|
f"amesim_fd_dP={inlet_line.amesim_line_pressure_derivative_fd_pa_s}, "
|
||||||
|
f"amesim_dP_m={inlet_line.amesim_pressure_derivative_mass_component_pa_s}, "
|
||||||
|
f"amesim_dP_T={inlet_line.amesim_pressure_derivative_temperature_component_pa_s}, "
|
||||||
|
f"amesim_dP_sum={inlet_line.amesim_pressure_derivative_eos_sum_pa_s}, "
|
||||||
|
f"amesim_dP_residual={inlet_line.amesim_pressure_derivative_eos_residual_pa_s}, "
|
||||||
|
f"python_dP_m={inlet_line.python_pressure_derivative_mass_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_error={inlet_line.python_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}"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -511,6 +511,17 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
|
|||||||
amesim_storage_mass_derivative_residual_g_s=0.0,
|
amesim_storage_mass_derivative_residual_g_s=0.0,
|
||||||
amesim_chamber_pressure_pa=15131788.1,
|
amesim_chamber_pressure_pa=15131788.1,
|
||||||
amesim_chamber_temperature_k=291.9,
|
amesim_chamber_temperature_k=291.9,
|
||||||
|
amesim_line_temperature_derivative_fd_k_s=149.5,
|
||||||
|
amesim_line_pressure_derivative_fd_pa_s=-17835932.3,
|
||||||
|
amesim_port_1_enthalpy_dtemp_component_k_s=1234.0,
|
||||||
|
amesim_port_2_enthalpy_dtemp_component_k_s=-724.0,
|
||||||
|
amesim_mass_offset_dtemp_component_k_s=-351.0,
|
||||||
|
amesim_reference_temperature_derivative_sum_k_s=159.0,
|
||||||
|
amesim_reference_temperature_derivative_residual_k_s=9.5,
|
||||||
|
amesim_pressure_derivative_mass_component_pa_s=-30562435.9,
|
||||||
|
amesim_pressure_derivative_temperature_component_pa_s=12794597.7,
|
||||||
|
amesim_pressure_derivative_eos_sum_pa_s=-17767838.2,
|
||||||
|
amesim_pressure_derivative_eos_residual_pa_s=68094.1,
|
||||||
python_line_pressure_pa=14257000.0,
|
python_line_pressure_pa=14257000.0,
|
||||||
python_line_temperature_k=290.1,
|
python_line_temperature_k=290.1,
|
||||||
python_line_mass_g=3.52,
|
python_line_mass_g=3.52,
|
||||||
@@ -525,6 +536,15 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
|
|||||||
python_storage_mass_derivative_error_g_s=0.0,
|
python_storage_mass_derivative_error_g_s=0.0,
|
||||||
python_chamber_pressure_pa=15131800.0,
|
python_chamber_pressure_pa=15131800.0,
|
||||||
python_chamber_temperature_k=292.0,
|
python_chamber_temperature_k=292.0,
|
||||||
|
python_current_temperature_derivative_k_s=261.9,
|
||||||
|
python_port_1_current_dtemp_component_k_s=0.0,
|
||||||
|
python_port_2_current_dtemp_component_k_s=261.9,
|
||||||
|
python_heat_dtemp_component_k_s=0.0,
|
||||||
|
python_temperature_derivative_error_k_s=112.4,
|
||||||
|
python_pressure_derivative_mass_component_pa_s=-17917501.3,
|
||||||
|
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_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,
|
||||||
),
|
),
|
||||||
@@ -699,6 +719,11 @@ class RunTestMqlFullStateComparisonScriptTests(unittest.TestCase):
|
|||||||
self.assertIn("python_line_to_node_dm=453.0", summary)
|
self.assertIn("python_line_to_node_dm=453.0", summary)
|
||||||
self.assertIn("python_line_to_node_dm_error=0.8", summary)
|
self.assertIn("python_line_to_node_dm_error=0.8", summary)
|
||||||
self.assertIn("python_storage_dm_error=0.0", summary)
|
self.assertIn("python_storage_dm_error=0.0", summary)
|
||||||
|
self.assertIn("amesim_fd_dT=149.5", summary)
|
||||||
|
self.assertIn("amesim_dT_m_offset=-351.0", summary)
|
||||||
|
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("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