types.linearization.ObservationLinearization
types.linearization.ObservationLinearization
Observation/output linearization: (C, D).
Linearizes output equation y = h(x, u).
Result: y ≈ Cδx + Dδu + y_eq
where:
C = ∂h/∂x at (x_eq, u_eq) (ny, nx)
D = ∂h/∂u at (x_eq, u_eq) (ny, nu)
y_eq = h(x_eq, u_eq)
Typically D = 0 (no direct feedthrough).
Examples
>>> # Linearize output
>>> C, D = system.linearized_observation(x_eq, u_eq)
>>> print(C.shape) # (ny, nx)
>>> print(D.shape) # (ny, nu)
>>>
>>> # For Kalman filter
>>> # Prediction: ŷ = C @ x̂_pred
>>> # Innovation: v = y - ŷ
>>> # Update: x̂ = x̂_pred + L @ v
>>>
>>> # Full state observation (common case)
>>> C_full = np.eye(nx) # y = x
>>> D_full = np.zeros((nx, nu)) # No feedthrough