装配test_mql气动元件
This commit is contained in:
1 parent
1f47171d07
commit
33c8bfae3d
3 files changed
+220
-2
No files matched your search
@@ -0,0 +1,68 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import unittest
|
||||
|
||||
from PythonModels.components.amesim_pneumatic import HELIUM_PNEUMATIC_GAS
|
||||
from PythonModels.systems.test_mql_pneumatic import (
|
||||
build_test_mql_pneumatic_assembly,
|
||||
pressure_from_amesim_bar_parameter,
|
||||
)
|
||||
|
||||
|
||||
class TestMqlPneumaticAssemblyTests(unittest.TestCase):
|
||||
def test_assembles_expected_amesim_pneumatic_component_counts(self) -> None:
|
||||
assembly = build_test_mql_pneumatic_assembly()
|
||||
|
||||
self.assertEqual(len(assembly.fixed_chambers), 4)
|
||||
self.assertEqual(len(assembly.variable_chambers), 8)
|
||||
self.assertEqual(len(assembly.fixed_orifices), 8)
|
||||
self.assertEqual(len(assembly.variable_orifices), 8)
|
||||
self.assertEqual(assembly.component_count, 28)
|
||||
self.assertIn("pn_general_chamber", assembly.aliases)
|
||||
self.assertIn("pn_c1_8", assembly.aliases)
|
||||
self.assertIn("pn_orifice_18", assembly.aliases)
|
||||
self.assertIn("pn_morifice_11", assembly.aliases)
|
||||
|
||||
def test_uses_amesim_global_initial_pressure_convention(self) -> None:
|
||||
assembly = build_test_mql_pneumatic_assembly()
|
||||
|
||||
self.assertAlmostEqual(
|
||||
pressure_from_amesim_bar_parameter(153.0),
|
||||
15198700.0,
|
||||
)
|
||||
self.assertAlmostEqual(assembly.initial_pressure_pa, 15198700.0)
|
||||
|
||||
def test_chamber_parameters_are_resolved_in_si_units(self) -> None:
|
||||
assembly = build_test_mql_pneumatic_assembly()
|
||||
fixed_chamber = assembly.fixed_chambers["pn_general_chamber"]
|
||||
variable_chamber = assembly.variable_chambers["pn_c1_8"]
|
||||
|
||||
self.assertAlmostEqual(fixed_chamber.volume, 0.057)
|
||||
self.assertAlmostEqual(variable_chamber.volume, 0.015)
|
||||
self.assertIs(fixed_chamber.gas, HELIUM_PNEUMATIC_GAS)
|
||||
self.assertIs(variable_chamber.gas, HELIUM_PNEUMATIC_GAS)
|
||||
self.assertAlmostEqual(fixed_chamber.properties().T, 293.15)
|
||||
self.assertAlmostEqual(variable_chamber.properties().T, 293.15)
|
||||
|
||||
def test_orifice_parameters_are_resolved_in_si_units(self) -> None:
|
||||
assembly = build_test_mql_pneumatic_assembly()
|
||||
fixed_orifice = assembly.fixed_orifices["pn_orifice_18"]
|
||||
variable_orifice = assembly.variable_orifices["pn_morifice_11"]
|
||||
|
||||
self.assertAlmostEqual(fixed_orifice.area, 78.5e-6)
|
||||
self.assertAlmostEqual(fixed_orifice.flow_coefficient, 0.9)
|
||||
self.assertAlmostEqual(variable_orifice.area, 78.5e-6)
|
||||
self.assertAlmostEqual(variable_orifice.flow_coefficient, 0.45)
|
||||
self.assertAlmostEqual(variable_orifice.opening, 1.0)
|
||||
|
||||
def test_assembled_orifice_can_compute_helium_mass_flow(self) -> None:
|
||||
assembly = build_test_mql_pneumatic_assembly()
|
||||
fixed_orifice = assembly.fixed_orifices["pn_orifice_18"]
|
||||
|
||||
flow = fixed_orifice.mass_flow(15.0e6, 10.0e6, 293.15)
|
||||
|
||||
self.assertGreater(flow, 0.0)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user