对齐Amesim氦气PR物性与PNVO流量
This commit is contained in:
1 parent
18d9802f03
commit
046aa49814
13 files changed
+730
-73
No files matched your search
@@ -16,6 +16,7 @@ from app.simulation.components.experimental.storage.tank import Tank
|
||||
from app.simulation.core.medium import IdealGasMedium
|
||||
from app.simulation.core.state import VolumeState
|
||||
from app.simulation.solvers.algebraic import AlgebraicSolveError, PressureFlowSolver
|
||||
from app.simulation.systems.generic import GenericFluidSystem
|
||||
from app.simulation.systems.network import SimulationNetwork
|
||||
|
||||
|
||||
@@ -59,10 +60,40 @@ class PressureFlowSolverInitializationTests(unittest.TestCase):
|
||||
mass = medium.density(pressure, temperature) * component.V
|
||||
component.state = VolumeState(
|
||||
m=mass,
|
||||
U=mass * medium.specific_internal_energy(temperature),
|
||||
U=mass
|
||||
* medium.specific_internal_energy_at_pressure(
|
||||
pressure,
|
||||
temperature,
|
||||
),
|
||||
)
|
||||
component.refresh_thermodynamic_ports()
|
||||
|
||||
def test_stream_enthalpy_refreshes_explicit_orifice_flow(self) -> None:
|
||||
network, medium, high, low, valve = self._near_equal_pressure_network()
|
||||
self._set_pressure_temperature(
|
||||
high,
|
||||
medium,
|
||||
15_201_996.778497815,
|
||||
292.3997890954483,
|
||||
)
|
||||
self._set_pressure_temperature(
|
||||
low,
|
||||
medium,
|
||||
405_072.8123335606,
|
||||
393.46713105173205,
|
||||
)
|
||||
|
||||
system = GenericFluidSystem(network)
|
||||
system.consistent_initial_state_vector()
|
||||
|
||||
self.assertLess(valve._connected_h["port_2"], 0.0)
|
||||
self.assertAlmostEqual(
|
||||
valve.port_2.m_flow,
|
||||
valve.mass_flow(valve.port_2.p, valve.port_3.p),
|
||||
places=12,
|
||||
)
|
||||
self.assertAlmostEqual(valve.port_3.m_flow, -valve.port_2.m_flow, places=12)
|
||||
|
||||
def test_current_storage_pressure_reseeds_stale_orifice_ports_and_flow(self) -> None:
|
||||
network, medium, high, low, valve = self._near_equal_pressure_network()
|
||||
solver = PressureFlowSolver(network, max_evaluations=10)
|
||||
|
||||
Reference in new issue
Block a user