types.protocols.LinearizableContinuousProtocol
types.protocols.LinearizableContinuousProtocol()
Continuous system with linearization capability.
Implementations
- ContinuousSymbolicSystem
- ContinuousStochasticSystem (returns A, B, G)
Use Cases
- Continuous LQR/LQG design
- H2/H-infinity control
- Continuous Kalman filter
- Lyapunov stability analysis
Examples
>>> def continuous_lqr(
... system: LinearizableContinuousProtocol,
... Q: np.ndarray,
... R: np.ndarray
... ):
... '''Design continuous-time LQR.'''
... A, B = system.linearize(np.zeros(system.nx), np.zeros(system.nu))
... from scipy.linalg import solve_continuous_are
... P = solve_continuous_are(A, B, Q, R)
... K = np.linalg.inv(R) @ B.T @ P
... return {"K": K, "P": P}
Methods
| linearize |
Compute continuous-time linearization: A = ∂f/∂x, B = ∂f/∂u. |
linearize
types.protocols.LinearizableContinuousProtocol.linearize(x_eq, u_eq=None)
Compute continuous-time linearization: A = ∂f/∂x, B = ∂f/∂u.
Parameters
| x_eq |
StateVector |
Equilibrium state |
required |
| u_eq |
Optional[ControlVector] |
Equilibrium control |
None |
Returns
|
LinearizationResult |
Tuple (A, B) or (A, B, G) for stochastic systems |