types.reachability.ROAResult
types.reachability.ROAResult()Region of Attraction (ROA) analysis result.
Estimates basin of attraction for equilibrium point via Lyapunov analysis.
Fields
region_of_attraction : SafeSet ROA estimate (level set of Lyapunov function) lyapunov_function : Callable V(x) Lyapunov function lyapunov_matrix : CovarianceMatrix P matrix if V(x) = x’Px (quadratic) level_set : float c where {x : V(x) ≤ c} defines ROA volume_estimate : float Estimated volume of ROA verification_samples : int Number of samples used for verification certification_method : str Method used (‘SOS’, ‘sampling’, ‘LMI’, ‘bisection’)
Examples
>>> # Quadratic Lyapunov function
>>> P = np.array([[2, 0], [0, 1]])
>>> V = lambda x: x.T @ P @ x
>>>
>>> result: ROAResult = compute_roa(
... system=pendulum,
... equilibrium=np.array([0, 0]),
... lyapunov_function=V,
... method='SOS'
... )
>>>
>>> # Extract ROA
>>> roa = result['region_of_attraction']
>>> c = result['level_set']
>>>
>>> # Check if state in ROA
>>> x_test = np.array([0.5, 0.1])
>>> if V(x_test) <= c:
... print("State in ROA - will converge to equilibrium")
>>>
>>> print(f"ROA volume: {result['volume_estimate']:.3f}")
>>> print(f"Certified by: {result['certification_method']}")