Continuous-Time Deterministic (ct-DS)¶
Functions for computing barrier certificates for continuous-time deterministic systems over an infinite time horizon using Lie derivative conditions.
ct_DS¶
from src.functions.ct_DS import ct_DS
result = ct_DS(b_degree, dim, L_initial, U_initial, L_unsafe, U_unsafe,
L_space, U_space, x, f, solver="mosek", gam=None, lam=None,
l_degree=None)
Parameters:
Parameter |
Type |
Description |
|---|---|---|
|
int |
Degree of the barrier polynomial. |
|
int |
Dimension of the state space. |
|
np.ndarray |
Lower bounds of the initial set. Shape: |
|
np.ndarray |
Upper bounds of the initial set. Shape: |
|
np.ndarray |
Lower bounds of unsafe set(s). Shape: |
|
np.ndarray |
Upper bounds of unsafe set(s). Shape: |
|
np.ndarray |
Lower bounds of the state space. Shape: |
|
np.ndarray |
Upper bounds of the state space. Shape: |
|
tuple |
SymPy symbols for state variables, e.g. |
|
np.ndarray |
Array of SymPy expressions defining the dynamics \(\dot{x} = f(x)\). |
|
str |
|
|
float or None |
Fixed value for \(\gamma\). If |
|
float or None |
Fixed value for \(\lambda\). If |
|
int or None |
Degree of Lagrangian multipliers. Defaults to |
Returns: dict with keys b_degree, Barrier, gamma, lambda, solver_status, or None if infeasible.
parallel_ct_DS¶
from src.functions.parallel_ct_DS import parallel_ct_DS
result = parallel_ct_DS(b_degree, dim, L_initial, U_initial, L_unsafe,
U_unsafe, L_space, U_space, x, f, solver="mosek",
gam=None, lam=None, l_degree=None)
Searches barrier polynomial degrees 2, 4, …, b_degree in parallel.
Parameters are identical to ct_DS except b_degree is the maximum
degree to search.
Note
Must be called inside if __name__ == '__main__': due to Python multiprocessing.
Returns: The result dict from the first successful degree, or None.