接入test_mql机械质量状态闭包
This commit is contained in:
1 parent
7cb050d235
commit
3d1de6d5d0
4 files changed
+180
-1
No files matched your search
@@ -3865,6 +3865,7 @@ class TestMqlSystem:
|
||||
self.pnl00r_assembly = self._build_pnl00r_assembly()
|
||||
self.node3_assembly = self._build_node3_assembly()
|
||||
self.node4_assembly = self._build_node4_assembly()
|
||||
self.mechanical_assembly = self._build_mechanical_assembly()
|
||||
self.pneumatic_assembly = self._build_pneumatic_assembly()
|
||||
pneumatic_components = self._pneumatic_components_by_alias()
|
||||
for spec in COMPONENT_SPECS:
|
||||
@@ -3887,6 +3888,13 @@ class TestMqlSystem:
|
||||
|
||||
return build_test_mql_pneumatic_assembly()
|
||||
|
||||
@staticmethod
|
||||
def _build_mechanical_assembly():
|
||||
# Local import avoids a module cycle: test_mql_config reads constants from this module.
|
||||
from PythonModels.systems.test_mql_mechanical import build_test_mql_mechanical_assembly
|
||||
|
||||
return build_test_mql_mechanical_assembly()
|
||||
|
||||
def _build_pnl0001_assembly(self):
|
||||
from PythonModels.systems.test_mql_pneumatic_lines import (
|
||||
build_test_mql_pnl0001_assembly,
|
||||
@@ -4112,6 +4120,27 @@ class TestMqlSystem:
|
||||
def pneumatic_state_vector(self) -> list[float]:
|
||||
return self.network.initial_state_vector()
|
||||
|
||||
def mechanical_mass_closure(self):
|
||||
from PythonModels.systems.test_mql_mechanical import TestMqlMechanicalMassClosure
|
||||
|
||||
return TestMqlMechanicalMassClosure(self.mechanical_assembly)
|
||||
|
||||
def mechanical_state_vector(self) -> list[float]:
|
||||
return self.mechanical_mass_closure().initial_state_vector()
|
||||
|
||||
def simulate_mechanical_masses(
|
||||
self,
|
||||
config: SolveIVPConfig | None = None,
|
||||
t_eval: list[float] | None = None,
|
||||
):
|
||||
closure = self.mechanical_mass_closure()
|
||||
return integrate_ode(
|
||||
rhs=lambda t, state: closure.rhs(state),
|
||||
initial_state=closure.initial_state_vector(),
|
||||
config=config or SolveIVPConfig(),
|
||||
t_eval=t_eval,
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def pneumatic_branch_spec(
|
||||
*,
|
||||
|
||||
Reference in new issue
Block a user