types.protocols.ContinuousSystemProtocol

types.protocols.ContinuousSystemProtocol()

Minimal interface for continuous-time dynamical systems.

Add continuous protocols if you have: - Trajectory optimization for continuous systems - Continuous-time verification algorithms - Reachability analysis - Generic continuous control design

Implementations

  • ContinuousSymbolicSystem
  • ContinuousStochasticSystem
  • NeuralODE (future)

Use Cases

  • Trajectory optimization
  • Safety verification
  • Reachability analysis
  • Discretization utilities

Examples

>>> def discretize_any(
...     system: ContinuousSystemProtocol,
...     dt: float
... ) -> DiscretizedSystem:
...     '''Discretize any continuous system.'''
...     return DiscretizedSystem(system, dt, method='rk4')
>>>
>>> # Works with any continuous system:
>>> discrete1 = discretize_any(ContinuousSymbolicSystem(...), dt=0.01)
>>> discrete2 = discretize_any(ContinuousStochasticSystem(...), dt=0.01)

Attributes

Name Description
nu Number of control inputs
nx Number of state variables

Methods

Name Description
integrate Numerically integrate continuous system.

integrate

types.protocols.ContinuousSystemProtocol.integrate(
    x0,
    u,
    t_span,
    method='RK45',
    **kwargs,
)

Numerically integrate continuous system.

Parameters

Name Type Description Default
x0 StateVector Initial state required
u Union[ControlVector, Callable, None] Control input required
t_span TimeSpan Integration interval (t_start, t_end) required
method str Integration method 'RK45'
**kwargs Additional integrator options {}

Returns

Name Type Description
IntegrationResult Integration result with trajectory data