Stochastic Reachability Toolbox for MATLAB

Recent posts

See our complete list of blog posts.

What does SReachTools do?

Given a discrete-time linear system with an additive stochastic disturbance, SReachTools constructs a set of safe initial states that satisfy some reachability/safety specification with at least a desired likelihood (verification). It can also synthesize controllers for these specifications under soft/hard control bounds.

Illustration of stochastic reachability of a target tube problem SReachTools can design controllers that maximize the probability of staying within the target tube, and characterize the set of initial states \(\mathcal{L}_\mathrm{SR}(\cdot)\) that satisfy a minimum reach probability. Image licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.


SReachTools exploits convex optimization, Fourier transforms, and computational geometry to obtain scalable results, without relying on any abstractions.

Illustration
    of the scalability of SReachTools Scalability of SReachTools for verification of a chain of integrators (Intel Xeon CPU with 3.4GHz clock rate and 32 GB RAM running MATLAB R2017a).


See this page for a detailed description of SReachTools.

Can you show me some examples of SReachTools working?

See the examples page. They are also available in SReachTools code base, see the examples/ folder.

How do I install this toolbox? What are the dependencies?

See the installation page.

How can I use this toolbox?

SReachTools is licensed under GNU General Public License v3, or (at your option) any later version. See our License. Please cite our toolpaper, if it helps you in your research.

  • IEEE citation style

    Abraham P. Vinod, Joseph D. Gleason, and Meeko M. K. Oishi. 2019. SReachTools: a MATLAB stochastic reachability toolbox. In Proceedings of the International Conference on Hybrid Systems: Computation and Control (HSCC ‘19), Montreal, Canada, 33-38. Available online: https://sreachtools.github.io.

  • BibTeX entry for use in LaTeX with \usepackage{url}:

    @misc{SReachTools,
      author    = {Vinod, Abraham P. and Gleason, Joseph D. and Oishi, Meeko M. K.},
      title     = {{S}{R}each{T}ools: A {MATLAB} {S}tochastic {R}eachability {T}oolbox},
      booktitle = {Proceedings of the International Conference on Hybrid Systems: Computation and Control},
      year      = {2019},
      address   = {Montreal, Canada},
      month     = {April 16--18},
      pages     = { 33 -- 38},
      note      = {\url{https://sreachtools.github.io}}
    }
    

    The paper is available online in the ACM Digital Library.

Where do I ask questions or give feedback?

For better documentation, use our Github issues page. Alternatively, see our Google groups page.

Can I contribute to this toolbox?

Of course, we welcome contributions. See Contributing guidelines.

Credits

The authors of this toolbox are Abraham P. Vinod and Joseph D. Gleason. The authors are PhD advisees of Prof. Meeko Oishi. SReachTools leverages several existing toolboxes and third-party codes:

  1. MPT3 developed by M. Herceg, M. Kvasnica, C.N. Jones, and M. Morari, along with their dependencies.
  2. CVX developed by Michael Grant and Stephen Boyd.
  3. GeoCalcLib developed by Rainer Schaich.
  4. An algorithm for numerical computation of multivariate normal distribution values developed by Alan Genz (Distributed with SReachTools under the license.
  5. allcomb.m developed by Jos van der Geest (Distributed with SReachTools under the license).

When available, we also use commercial toolboxes from MATLAB and Gurobi.