types.symbolic.SymbolicStateEquations

types.symbolic.SymbolicStateEquations

Symbolic state equations: f(x, u, params).

Column vector representing dx/dt (continuous) or x[k+1] (discrete). Each row is one state derivative or next-state equation.

Shape: (nx, 1)

Continuous systems: dx/dt = f(x, u) where each element is dxᵢ/dt

Discrete systems: x[k+1] = f(x[k], u[k]) where each element is xᵢ[k+1]

Examples

>>> import sympy as sp
>>> 
>>> # Simple pendulum
>>> theta, omega = sp.symbols('theta omega', real=True)
>>> u = sp.symbols('u', real=True)
>>> m, l, g, b = sp.symbols('m l g b', positive=True)
>>> 
>>> # Continuous dynamics: [dθ/dt, dω/dt]
>>> f: SymbolicStateEquations = sp.Matrix([
...     omega,
...     -(g/l)*sp.sin(theta) - (b/m)*omega + u/(m*l**2)
... ])
>>> 
>>> # Compile to callable function
>>> from sympy import lambdify
>>> f_func = lambdify(
...     ([theta, omega], u, [m, l, g, b]),
...     f,
...     'numpy'
... )
>>> 
>>> # Linear system
>>> x1, x2, u = sp.symbols('x1 x2 u')
>>> A11, A12, A21, A22 = sp.symbols('A11 A12 A21 A22')
>>> B1, B2 = sp.symbols('B1 B2')
>>> 
>>> f_linear: SymbolicStateEquations = sp.Matrix([
...     A11*x1 + A12*x2 + B1*u,
...     A21*x1 + A22*x2 + B2*u
... ])