Frama-C API - Lti_system
This module aims to provide overapproximations of the behaviors of linear time-invariant systems, for both the transition and the permanent phases.
A LTI system corresponds to the following recursive equation :
X[t + 1] = AX[t] + Bε[t] + S
where :
šis a field ;nis the system's state dimension, or order ;mis the system's input space dimension ;X[t] ā š^nis the system's state vector at iterationt;μ[t] ā š^mis an input vector at iterationt;A ā š^{n Ć n}is the state matrix ;B ā š^{n Ć m}is the input matrix ;S ā š^nis the system's shift.
Several notes here :
- The only hypothesis on
Ais that its eigenvalues are all lower than one in absolute value. It is a sufficient condition for the filter to converge. Conversely, there is no hypothesis onB. If the procedure cannot prove easily that this hypothesis is satisfied, it will simply returnNone. - All input vectors are supposed belonging to a box in
š^m. - Most presentations of LTI systems describe them using two equations, a recursive one equivalent to the one presented here and focused on the hidden state vector, and an output non recursive equation focused on transforming the hidden state vector into a usable output. However, as the two equations can be easily combined into one, it is not considered in this module.
- Usually, the shift is not present, as it makes the system kind of affine instead of linear. However, the theory underlying this module can easily take it into account, and thus make it more general.
A complete documentation on the underlying theory will be added in a near future. For an example using this module, one can check its tests, located in ./test/lti_system.
