types.control_advanced.LMIResult

types.control_advanced.LMIResult()

Linear Matrix Inequality (LMI) solver result.

LMIs enable convex formulation of many control problems: - Lyapunov stability (P > 0, A’P + PA < 0) - H∞ synthesis, polytopic systems, etc.

Fields

decision_variables : Dict[str, ArrayLike] Solved matrix variables (P, Y, etc.) objective_value : float Optimal objective function value feasible : bool Whether LMI constraints are feasible solver : str Solver used (‘cvxpy’, ‘mosek’, ‘sedumi’, etc.) solve_time : float Computation time in seconds condition_number : float Condition number of solution (numerical health)

Examples

>>> # Lyapunov stability LMI: find P > 0 s.t. A'P + PA < 0
>>> import cvxpy as cp
>>> P = cp.Variable((2, 2), symmetric=True)
>>> constraints = [
...     P >> 0,  # P positive definite
...     A.T @ P + P @ A << 0  # Lyapunov inequality
... ]
>>> problem = cp.Problem(cp.Minimize(0), constraints)
>>> problem.solve()
>>>
>>> result: LMIResult = {
...     'decision_variables': {'P': P.value},
...     'objective_value': problem.value,
...     'feasible': problem.status == 'optimal',
...     'solver': 'cvxpy',
...     'solve_time': problem.solver_stats.solve_time,
...     'condition_number': np.linalg.cond(P.value),
... }
>>>
>>> if result['feasible']:
...     P_lyap = result['decision_variables']['P']
...     print("System is stable")