抽象test_mql固定气室段流量计算

This commit is contained in:
huojiarong committed 2026-07-20 03:38:17 +00:00
1 parent cdd17d29c8
commit be1eec1348
1 file changed
+132 -76
+132 -76
View File
@@ -280,6 +280,14 @@ class TestMqlPn3P4NodeChamberSegmentComponents:
spec: TestMqlPneumaticChamberSegmentSpec spec: TestMqlPneumaticChamberSegmentSpec
@dataclass(frozen=True)
class TestMqlFixedChamberSegmentFlows:
inlet_node_to_line_flow: float
inlet_line_to_chamber_flow: float
outlet_node_to_line_flow: float
outlet_line_to_chamber_flow: float
@dataclass(frozen=True) @dataclass(frozen=True)
class TestMqlPn3NodeBalancePort: class TestMqlPn3NodeBalancePort:
flow_kg_s: float flow_kg_s: float
@@ -716,24 +724,21 @@ class TestMqlPn3P4NodeChamberSegmentClosure:
resistance_boundary = self.resistance_boundary.properties( resistance_boundary = self.resistance_boundary.properties(
self.components.node_resistance.gas self.components.node_resistance.gas
) )
inlet_node_to_line_flow = self.components.inlet_line.resistance_mass_flow( chamber_segment_flows = self._fixed_chamber_segment_flows(
port_1_pressure_pa=p4_port3_remote_orifice_line_port_1.p, chamber_properties=chamber,
port_1_temperature_k=p4_port3_remote_orifice_line_port_1.T, inlet_line=self.components.inlet_line,
) inlet_line_properties=inlet_line,
outlet_node_to_line_flow = self.components.outlet_line.resistance_mass_flow( inlet_node_properties=p4_port3_remote_orifice_line_port_1,
port_1_pressure_pa=node_line_port_1.p, inlet_orifice=self.components.inlet_orifice,
port_1_temperature_k=node_line_port_1.T, outlet_line=self.components.outlet_line,
) outlet_line_properties=outlet_line,
inlet_line_to_chamber_flow = self._line_to_chamber_flow( outlet_node_properties=node_line_port_1,
line=inlet_line, outlet_orifice=self.components.outlet_orifice,
chamber=chamber,
orifice=self.components.inlet_orifice,
)
outlet_line_to_chamber_flow = self._line_to_chamber_flow(
line=outlet_line,
chamber=chamber,
orifice=self.components.outlet_orifice,
) )
inlet_node_to_line_flow = chamber_segment_flows.inlet_node_to_line_flow
inlet_line_to_chamber_flow = chamber_segment_flows.inlet_line_to_chamber_flow
outlet_node_to_line_flow = chamber_segment_flows.outlet_node_to_line_flow
outlet_line_to_chamber_flow = chamber_segment_flows.outlet_line_to_chamber_flow
node_to_resistance_flow = self.components.node_resistance.mass_flow( node_to_resistance_flow = self.components.node_resistance.mass_flow(
port_1_pressure_pa=node_line_port_1.p, port_1_pressure_pa=node_line_port_1.p,
port_1_temperature_k=node_line_port_1.T, port_1_temperature_k=node_line_port_1.T,
@@ -846,12 +851,43 @@ class TestMqlPn3P4NodeChamberSegmentClosure:
port_1_temperature_k=p4_bridge_primary_chamber.T, port_1_temperature_k=p4_bridge_primary_chamber.T,
) )
) )
p4_port1_next_orifice_resistance_chamber_inlet_node_to_line_flow = ( p4_port1_next_orifice_resistance_chamber_flows = (
self.components.p4_port1_next_orifice_resistance_chamber_inlet_line.resistance_mass_flow( self._fixed_chamber_segment_flows(
port_1_pressure_pa=p4_port1_remote_orifice_line_port_1.p, chamber_properties=p4_port1_next_orifice_resistance_chamber,
port_1_temperature_k=p4_port1_remote_orifice_line_port_1.T, inlet_line=(
self.components.p4_port1_next_orifice_resistance_chamber_inlet_line
),
inlet_line_properties=(
p4_port1_next_orifice_resistance_chamber_inlet_line
),
inlet_node_properties=p4_port1_remote_orifice_line_port_1,
inlet_orifice=(
self.components.p4_port1_next_orifice_resistance_chamber_inlet_orifice
),
outlet_line=(
self.components.p4_port1_next_orifice_resistance_chamber_outlet_line
),
outlet_line_properties=(
p4_port1_next_orifice_resistance_chamber_outlet_line
),
outlet_node_properties=p4_port1_next_orifice_resistance_line_port_1,
outlet_orifice=(
self.components.p4_port1_next_orifice_resistance_chamber_outlet_orifice
),
) )
) )
p4_port1_next_orifice_resistance_chamber_inlet_node_to_line_flow = (
p4_port1_next_orifice_resistance_chamber_flows.inlet_node_to_line_flow
)
p4_port1_next_orifice_resistance_chamber_inlet_line_to_chamber_flow = (
p4_port1_next_orifice_resistance_chamber_flows.inlet_line_to_chamber_flow
)
p4_port1_next_orifice_resistance_chamber_outlet_node_to_line_flow = (
p4_port1_next_orifice_resistance_chamber_flows.outlet_node_to_line_flow
)
p4_port1_next_orifice_resistance_chamber_outlet_line_to_chamber_flow = (
p4_port1_next_orifice_resistance_chamber_flows.outlet_line_to_chamber_flow
)
p4_port1_remote_orifice_node_balance = self._pn3_node_balance( p4_port1_remote_orifice_node_balance = self._pn3_node_balance(
node=self.components.p4_port1_remote_orifice_node, node=self.components.p4_port1_remote_orifice_node,
primary_properties=p4_port1_remote_orifice_line_port_1, primary_properties=p4_port1_remote_orifice_line_port_1,
@@ -947,27 +983,28 @@ class TestMqlPn3P4NodeChamberSegmentClosure:
port_temperature_k=p4_port3_next_primary_line.T, port_temperature_k=p4_port3_next_primary_line.T,
) )
) )
p4_port3_next_chamber_inlet_node_to_line_flow = ( p4_port3_next_chamber_flows = self._fixed_chamber_segment_flows(
self.components.p4_port3_next_chamber_inlet_line.resistance_mass_flow( chamber_properties=p4_port3_next_chamber,
port_1_pressure_pa=p4_port3_next_orifice_line_port_1.p, inlet_line=self.components.p4_port3_next_chamber_inlet_line,
port_1_temperature_k=p4_port3_next_orifice_line_port_1.T, inlet_line_properties=p4_port3_next_chamber_inlet_line,
) inlet_node_properties=p4_port3_next_orifice_line_port_1,
inlet_orifice=self.components.p4_port3_next_chamber_inlet_orifice,
outlet_line=self.components.p4_port3_next_chamber_outlet_line,
outlet_line_properties=p4_port3_next_chamber_outlet_line,
outlet_node_properties=p4_port3_remote_resistance_node_line_port_1,
outlet_orifice=self.components.p4_port3_next_chamber_outlet_orifice,
) )
p4_port3_next_chamber_inlet_line_to_chamber_flow = self._line_to_chamber_flow( p4_port3_next_chamber_inlet_node_to_line_flow = (
line=p4_port3_next_chamber_inlet_line, p4_port3_next_chamber_flows.inlet_node_to_line_flow
chamber=p4_port3_next_chamber, )
orifice=self.components.p4_port3_next_chamber_inlet_orifice, p4_port3_next_chamber_inlet_line_to_chamber_flow = (
p4_port3_next_chamber_flows.inlet_line_to_chamber_flow
) )
p4_port3_next_chamber_outlet_node_to_line_flow = ( p4_port3_next_chamber_outlet_node_to_line_flow = (
self.components.p4_port3_next_chamber_outlet_line.resistance_mass_flow( p4_port3_next_chamber_flows.outlet_node_to_line_flow
port_1_pressure_pa=p4_port3_remote_resistance_node_line_port_1.p,
port_1_temperature_k=p4_port3_remote_resistance_node_line_port_1.T,
)
) )
p4_port3_next_chamber_outlet_line_to_chamber_flow = self._line_to_chamber_flow( p4_port3_next_chamber_outlet_line_to_chamber_flow = (
line=p4_port3_next_chamber_outlet_line, p4_port3_next_chamber_flows.outlet_line_to_chamber_flow
chamber=p4_port3_next_chamber,
orifice=self.components.p4_port3_next_chamber_outlet_orifice,
) )
p4_port3_next_resistance_node_to_next_flow = ( p4_port3_next_resistance_node_to_next_flow = (
self.components.p4_port3_next_orifice_resistance.mass_flow( self.components.p4_port3_next_orifice_resistance.mass_flow(
@@ -1007,31 +1044,36 @@ class TestMqlPn3P4NodeChamberSegmentClosure:
p4_port3_next_orifice_output_to_p4_flow = ( p4_port3_next_orifice_output_to_p4_flow = (
p4_port3_next_orifice_to_output_line_flow p4_port3_next_orifice_to_output_line_flow
) )
p4_port3_next_resistance_chamber_inlet_node_to_line_flow = ( p4_port3_next_resistance_chamber_flows = (
self.components.p4_port3_next_resistance_chamber_inlet_line.resistance_mass_flow( self._fixed_chamber_segment_flows(
port_1_pressure_pa=p4_port1_next_orifice_line_port_1.p, chamber_properties=p4_port3_next_resistance_chamber,
port_1_temperature_k=p4_port1_next_orifice_line_port_1.T, inlet_line=self.components.p4_port3_next_resistance_chamber_inlet_line,
inlet_line_properties=p4_port3_next_resistance_chamber_inlet_line,
inlet_node_properties=p4_port1_next_orifice_line_port_1,
inlet_orifice=(
self.components.p4_port3_next_resistance_chamber_inlet_orifice
),
outlet_line=(
self.components.p4_port3_next_resistance_chamber_outlet_line
),
outlet_line_properties=p4_port3_next_resistance_chamber_outlet_line,
outlet_node_properties=p4_port3_next_resistance_node_line_port_1,
outlet_orifice=(
self.components.p4_port3_next_resistance_chamber_outlet_orifice
),
) )
) )
p4_port3_next_resistance_chamber_inlet_node_to_line_flow = (
p4_port3_next_resistance_chamber_flows.inlet_node_to_line_flow
)
p4_port3_next_resistance_chamber_inlet_line_to_chamber_flow = ( p4_port3_next_resistance_chamber_inlet_line_to_chamber_flow = (
self._line_to_chamber_flow( p4_port3_next_resistance_chamber_flows.inlet_line_to_chamber_flow
line=p4_port3_next_resistance_chamber_inlet_line,
chamber=p4_port3_next_resistance_chamber,
orifice=self.components.p4_port3_next_resistance_chamber_inlet_orifice,
)
) )
p4_port3_next_resistance_chamber_outlet_node_to_line_flow = ( p4_port3_next_resistance_chamber_outlet_node_to_line_flow = (
self.components.p4_port3_next_resistance_chamber_outlet_line.resistance_mass_flow( p4_port3_next_resistance_chamber_flows.outlet_node_to_line_flow
port_1_pressure_pa=p4_port3_next_resistance_node_line_port_1.p,
port_1_temperature_k=p4_port3_next_resistance_node_line_port_1.T,
)
) )
p4_port3_next_resistance_chamber_outlet_line_to_chamber_flow = ( p4_port3_next_resistance_chamber_outlet_line_to_chamber_flow = (
self._line_to_chamber_flow( p4_port3_next_resistance_chamber_flows.outlet_line_to_chamber_flow
line=p4_port3_next_resistance_chamber_outlet_line,
chamber=p4_port3_next_resistance_chamber,
orifice=self.components.p4_port3_next_resistance_chamber_outlet_orifice,
)
) )
p4_port1_next_orifice_resistance_node_to_next_flow = ( p4_port1_next_orifice_resistance_node_to_next_flow = (
self.components.p4_port1_next_orifice_resistance.mass_flow( self.components.p4_port1_next_orifice_resistance.mass_flow(
@@ -1041,26 +1083,6 @@ class TestMqlPn3P4NodeChamberSegmentClosure:
port_2_temperature_k=p4_port1_next_orifice_line_port_1.T, port_2_temperature_k=p4_port1_next_orifice_line_port_1.T,
) )
) )
p4_port1_next_orifice_resistance_chamber_inlet_line_to_chamber_flow = (
self._line_to_chamber_flow(
line=p4_port1_next_orifice_resistance_chamber_inlet_line,
chamber=p4_port1_next_orifice_resistance_chamber,
orifice=self.components.p4_port1_next_orifice_resistance_chamber_inlet_orifice,
)
)
p4_port1_next_orifice_resistance_chamber_outlet_node_to_line_flow = (
self.components.p4_port1_next_orifice_resistance_chamber_outlet_line.resistance_mass_flow(
port_1_pressure_pa=p4_port1_next_orifice_resistance_line_port_1.p,
port_1_temperature_k=p4_port1_next_orifice_resistance_line_port_1.T,
)
)
p4_port1_next_orifice_resistance_chamber_outlet_line_to_chamber_flow = (
self._line_to_chamber_flow(
line=p4_port1_next_orifice_resistance_chamber_outlet_line,
chamber=p4_port1_next_orifice_resistance_chamber,
orifice=self.components.p4_port1_next_orifice_resistance_chamber_outlet_orifice,
)
)
p4_port1_next_orifice_node_balance = self._pn3_node_balance( p4_port1_next_orifice_node_balance = self._pn3_node_balance(
node=self.components.p4_port1_next_orifice_node, node=self.components.p4_port1_next_orifice_node,
primary_properties=p4_port1_next_orifice_line_port_1, primary_properties=p4_port1_next_orifice_line_port_1,
@@ -1752,6 +1774,40 @@ class TestMqlPn3P4NodeChamberSegmentClosure:
connected_h=connected_h, connected_h=connected_h,
) )
def _fixed_chamber_segment_flows(
self,
*,
chamber_properties: ThermodynamicProperties,
inlet_line: AmesimPnl0001Pipe,
inlet_line_properties: ThermodynamicProperties,
inlet_node_properties: ThermodynamicProperties,
inlet_orifice: AmesimPneumaticOrifice,
outlet_line: AmesimPnl0001Pipe,
outlet_line_properties: ThermodynamicProperties,
outlet_node_properties: ThermodynamicProperties,
outlet_orifice: AmesimPneumaticOrifice,
) -> TestMqlFixedChamberSegmentFlows:
return TestMqlFixedChamberSegmentFlows(
inlet_node_to_line_flow=inlet_line.resistance_mass_flow(
port_1_pressure_pa=inlet_node_properties.p,
port_1_temperature_k=inlet_node_properties.T,
),
inlet_line_to_chamber_flow=self._line_to_chamber_flow(
line=inlet_line_properties,
chamber=chamber_properties,
orifice=inlet_orifice,
),
outlet_node_to_line_flow=outlet_line.resistance_mass_flow(
port_1_pressure_pa=outlet_node_properties.p,
port_1_temperature_k=outlet_node_properties.T,
),
outlet_line_to_chamber_flow=self._line_to_chamber_flow(
line=outlet_line_properties,
chamber=chamber_properties,
orifice=outlet_orifice,
),
)
def _pn3_node_balance( def _pn3_node_balance(
self, self,
*, *,