补充test_mql气动支路配置接口

This commit is contained in:
huojiarong committed 2026-07-16 09:31:12 +00:00
1 parent 2cea81739e
commit 95ebca89f6
3 files changed
+102

No files matched your search

+66
View File
@@ -3896,6 +3896,34 @@ class TestMqlSystem:
def pneumatic_state_vector(self) -> list[float]:
return self.network.initial_state_vector()
@staticmethod
def pneumatic_branch_spec(
*,
name: str,
upstream_volume_alias: str,
orifice_alias: str,
downstream_volume_alias: str,
source: str = "manual",
):
from PythonModels.systems.test_mql_closure import TestMqlPneumaticBranchSpec
return TestMqlPneumaticBranchSpec(
name=name,
upstream_volume_alias=upstream_volume_alias,
orifice_alias=orifice_alias,
downstream_volume_alias=downstream_volume_alias,
source=source,
)
def pneumatic_branch_closure_from_spec(self, spec):
return self.pneumatic_branch_closure(
name=spec.name,
upstream_volume_alias=spec.upstream_volume_alias,
orifice_alias=spec.orifice_alias,
downstream_volume_alias=spec.downstream_volume_alias,
spec=spec,
)
def pneumatic_branch_closure(
self,
*,
@@ -3903,6 +3931,7 @@ class TestMqlSystem:
upstream_volume_alias: str,
orifice_alias: str,
downstream_volume_alias: str,
spec=None,
):
from PythonModels.components.amesim_pneumatic import (
AmesimPneumaticOrifice,
@@ -3910,6 +3939,7 @@ class TestMqlSystem:
)
from PythonModels.systems.test_mql_closure import (
TestMqlPneumaticBranchComponents,
TestMqlPneumaticBranchSpec,
TestMqlPneumaticClosure,
)
@@ -3935,12 +3965,19 @@ class TestMqlSystem:
upstream_volume.set_state_vector(values[:2])
downstream_volume.set_state_vector(values[2:])
branch_spec = spec or TestMqlPneumaticBranchSpec(
name=name,
upstream_volume_alias=upstream_volume_alias,
orifice_alias=orifice_alias,
downstream_volume_alias=downstream_volume_alias,
)
return TestMqlPneumaticClosure(
components=TestMqlPneumaticBranchComponents(
name=name,
upstream_volume=upstream_volume,
orifice=orifice,
downstream_volume=downstream_volume,
spec=branch_spec,
),
initial_state_vector=initial_state_vector,
apply_state_vector=apply_state_vector,
@@ -3970,6 +4007,35 @@ class TestMqlSystem:
t_eval=t_eval,
)
def simulate_pneumatic_branch_from_spec(
self,
spec,
*,
config: SolveIVPConfig | None = None,
t_eval: list[float] | None = None,
):
return self.simulate_pneumatic_branch(
name=spec.name,
upstream_volume_alias=spec.upstream_volume_alias,
orifice_alias=spec.orifice_alias,
downstream_volume_alias=spec.downstream_volume_alias,
config=config,
t_eval=t_eval,
)
def evaluate_pneumatic_branch_solution_from_spec(
self,
solution: object,
spec,
) -> dict[str, list[float]]:
return self.evaluate_pneumatic_branch_solution(
solution,
name=spec.name,
upstream_volume_alias=spec.upstream_volume_alias,
orifice_alias=spec.orifice_alias,
downstream_volume_alias=spec.downstream_volume_alias,
)
def evaluate_pneumatic_branch_solution(
self,
solution: object,
+10
View File
@@ -11,12 +11,22 @@ from PythonModels.core.medium import ThermodynamicProperties
from PythonModels.core.state import VolumeState
@dataclass(frozen=True)
class TestMqlPneumaticBranchSpec:
name: str
upstream_volume_alias: str
orifice_alias: str
downstream_volume_alias: str
source: str = "manual"
@dataclass(frozen=True)
class TestMqlPneumaticBranchComponents:
name: str
upstream_volume: AmesimPneumaticVolume
orifice: AmesimPneumaticOrifice
downstream_volume: AmesimPneumaticVolume
spec: TestMqlPneumaticBranchSpec | None = None
@dataclass(frozen=True)