新增test_mql气动组件原语
This commit is contained in:
1 parent
cdead78977
commit
a598fcd5c3
3 files changed
+314
-1
No files matched your search
@@ -0,0 +1,92 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import unittest
|
||||
|
||||
from PythonModels.components.amesim_pneumatic import (
|
||||
HELIUM_PNEUMATIC_GAS,
|
||||
AmesimPneumaticOrifice,
|
||||
AmesimPneumaticVolume,
|
||||
compressible_orifice_mass_flow,
|
||||
diameter_mm_to_area_m2,
|
||||
liters_to_m3,
|
||||
mm2_to_m2,
|
||||
)
|
||||
|
||||
|
||||
class AmesimPneumaticComponentsTest(unittest.TestCase):
|
||||
def test_unit_conversions(self) -> None:
|
||||
self.assertAlmostEqual(liters_to_m3(15.0), 0.015)
|
||||
self.assertAlmostEqual(mm2_to_m2(78.5), 78.5e-6)
|
||||
self.assertAlmostEqual(diameter_mm_to_area_m2(10.0), 7.853981633974483e-5)
|
||||
|
||||
def test_volume_initial_state_matches_requested_pressure_temperature(self) -> None:
|
||||
volume = AmesimPneumaticVolume.from_liters(
|
||||
name="pn_general_chamber",
|
||||
volume_liters=57.0,
|
||||
p0=15.3e6,
|
||||
T0=293.15,
|
||||
)
|
||||
props = volume.properties()
|
||||
|
||||
self.assertAlmostEqual(props.p, 15.3e6, delta=15.3e6 * 1.0e-12)
|
||||
self.assertAlmostEqual(props.T, 293.15)
|
||||
self.assertGreater(props.rho, 20.0)
|
||||
self.assertLess(props.rho, 30.0)
|
||||
|
||||
def test_orifice_returns_signed_mass_flow(self) -> None:
|
||||
orifice = AmesimPneumaticOrifice.from_mm2(
|
||||
name="pn_orifice_18",
|
||||
area_mm2=78.5,
|
||||
flow_coefficient=0.9,
|
||||
)
|
||||
|
||||
forward = orifice.mass_flow(15.3e6, 1.0e6, 293.15)
|
||||
reverse = orifice.mass_flow(1.0e6, 15.3e6, 293.15)
|
||||
|
||||
self.assertGreater(forward, 0.0)
|
||||
self.assertAlmostEqual(reverse, -forward)
|
||||
self.assertEqual(orifice.mass_flow(1.0e6, 1.0e6, 293.15), 0.0)
|
||||
|
||||
def test_choked_flow_is_independent_of_lower_downstream_pressure(self) -> None:
|
||||
base = compressible_orifice_mass_flow(
|
||||
upstream_pressure=15.3e6,
|
||||
downstream_pressure=1.0e6,
|
||||
upstream_temperature=293.15,
|
||||
area=78.5e-6,
|
||||
flow_coefficient=0.9,
|
||||
gas=HELIUM_PNEUMATIC_GAS,
|
||||
)
|
||||
lower_back_pressure = compressible_orifice_mass_flow(
|
||||
upstream_pressure=15.3e6,
|
||||
downstream_pressure=0.1e6,
|
||||
upstream_temperature=293.15,
|
||||
area=78.5e-6,
|
||||
flow_coefficient=0.9,
|
||||
gas=HELIUM_PNEUMATIC_GAS,
|
||||
)
|
||||
|
||||
self.assertGreater(base, 0.0)
|
||||
self.assertAlmostEqual(lower_back_pressure, base)
|
||||
|
||||
def test_subcritical_flow_decreases_as_back_pressure_rises(self) -> None:
|
||||
low_back_pressure = compressible_orifice_mass_flow(
|
||||
upstream_pressure=1.0e6,
|
||||
downstream_pressure=0.6e6,
|
||||
upstream_temperature=293.15,
|
||||
area=78.5e-6,
|
||||
flow_coefficient=0.9,
|
||||
)
|
||||
high_back_pressure = compressible_orifice_mass_flow(
|
||||
upstream_pressure=1.0e6,
|
||||
downstream_pressure=0.9e6,
|
||||
upstream_temperature=293.15,
|
||||
area=78.5e-6,
|
||||
flow_coefficient=0.9,
|
||||
)
|
||||
|
||||
self.assertGreater(low_back_pressure, high_back_pressure)
|
||||
self.assertGreater(high_back_pressure, 0.0)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user