Catalog of contractors for dynamical systems
We now focus on time-related constraints. The following contractors provide a way to apply them on various domains including tubes, intervals and boxes.
- CtcDeriv: \(\dot{x}(t)=v(t)\)
- CtcEval: \(y_i=x(t_i)\)
- CtcLohner: \(\dot{\mathbf{x}}(t)=\mathbf{f}\big(\mathbf{x}(t)\big)\)
- CtcPicard: \(\dot{\mathbf{x}}(t)=\mathbf{f}\big(\mathbf{x}(t)\big)\)
- CtcDelay: \(x(t)=y(t+a)\)
- CtcLinobs: \(\dot{\mathbf{x}}=\mathbf{Ax+Bu}\)
- CtcChain: \(\dot{x_1}=x_2,~\dot{x_2}=x_3\)
See also: codac-unsupported.
How a contractor is implemented
Contractors are C++/Python objects. Some of them can be instantiated according to the problem to deal with. All of them will contract domains with the .contract()
method.
Pre-defined contractors
For ease of use, some contractor objects that do not require parameters are predefined in the namespace ctc
.
They can be used directly without instantiation.
Contractor |
Type |
Code |
Doc |
---|---|---|---|
\(\mathcal{C}_{\textrm{polar}}\) |
Static |
ctc::polar for C++ctc.polar for Python |
|
\(\mathcal{C}_{\textrm{dist}}\) |
Static |
ctc::dist for C++ctc.dist for Python |
|
\(\mathcal{C}_{\frac{d}{dt}}\) |
Dynam. |
ctc::deriv for C++ctc.deriv for Python |
|
\(\mathcal{C}_{\textrm{eval}}\) |
Dynam. |
ctc::eval for C++ctc.eval for Python |
|
\(\mathcal{C}_{\textrm{delay}}\) |
Dynam. |
ctc::delay for C++ctc.delay for Python |
– |
Methods common to dynamic contractor objects
In the following table, ctc
is an instantiation of a Ctc
class.
Code |
Meaning |
---|---|
|
Specifies whether the contractor can impact the tube’s slicing or not |
|
Limits the temporal domain of the contractions |