types.control_advanced.AdaptiveControlResult
types.control_advanced.AdaptiveControlResult()Adaptive control result.
Adaptive controllers adjust gains online to handle unknown or time-varying parameters.
Fields
current_gain : GainMatrix Current adapted controller gain K(t) (nu, nx) parameter_estimate : ParameterVector Current parameter estimate θ̂(t) (nθ,) parameter_covariance : CovarianceMatrix Parameter uncertainty P_θ(t) (nθ, nθ) adaptation_rate : float Current learning rate Γ tracking_error : float Output tracking error ‖y - y_ref‖ parameter_error : Optional[ParameterVector] True error θ̂ - θ (if θ known, for testing)
Examples
>>> # Model Reference Adaptive Control (MRAC)
>>> adaptive_ctrl = AdaptiveController(
... reference_model, adaptation_rate=0.1
... )
>>>
>>> # Update at each time step
>>> result: AdaptiveControlResult = adaptive_ctrl.update(
... x_current, y_measured, y_reference
... )
>>>
>>> # Apply adapted control
>>> K = result['current_gain']
>>> u = -K @ x_current
>>>
>>> # Monitor adaptation
>>> theta_hat = result['parameter_estimate']
>>> tracking_err = result['tracking_error']
>>> print(f"Tracking error: {tracking_err:.3f}")
>>> print(f"Parameter estimate: {theta_hat}")
>>>
>>> # Check convergence (if true parameters known)
>>> if result['parameter_error'] is not None:
... param_err_norm = np.linalg.norm(result['parameter_error'])
... print(f"Parameter error: {param_err_norm:.3f}")