Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for singular state matrix in ExactDiscretizationAlgorithm #131

Open
ueliwechsler opened this issue Jan 6, 2020 · 3 comments

Comments

@ueliwechsler
Copy link
Collaborator

#122 (comment)

The current implementation #122 of the exact discretization of an affine system does throw an error if the state matrix is singular.

Here is an algorithm for this special case:
https://math.stackexchange.com/questions/658276/integral-of-matrix-exponential

The implementation consists of computing the Jordan form of a matrix (see, e.g. https://discourse.julialang.org/t/jordan-form-of-a-matrix/7123/6) and the computation of the integral
image
where B is a strictly upper triangular matrix

@ueliwechsler
Copy link
Collaborator Author

@mforets did you figure out how to best compute the Jordan form?

@mforets
Copy link
Member

mforets commented Jan 8, 2020

We were interested in floating-point computations and discarded using the Jordan normal form because it is ill-advised (ref. to the comments in that thread).

However, to compute that integral for non-invertible A I would suggest to use a series expansion of the "shifted" matrix exponential of A. For the theory, see page 8 in SpaceEx: Scalable verification of hybrid systems. We have written a Julia implementation of Φ1(A, δ) and Φ2(A, δ) in Reachability/src/discretize.jl.

@ueliwechsler
Copy link
Collaborator Author

Thanks for the information! I will have a look.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants