• Stars
    star
    191
  • Rank 202,877 (Top 4 %)
  • Language
    Julia
  • License
    MIT License
  • Created almost 5 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Computing reachable states of dynamical systems in Julia

ReachabilityAnalysis.jl

Documentation Status Community License
docs-dev CI codecov gitter license

โœจ What is Reachability Analysis?

Reachability analysis is concerned with computing rigorous approximations of the set of states reachable by a dynamical system. In the scope of this package are systems modeled by continuous or hybrid dynamical systems, where the dynamics changes with discrete events. Systems are modelled by ordinary differential equations (ODEs) or semi-discrete partial differential equations (PDEs), with uncertain initial states, uncertain parameters or non-deterministic inputs.

The library is oriented towards a class of numerical methods known as set propagation techniques: to compute the set of states reachable by continuous or hybrid systems, such methods iteratively propagate a sequence of sets starting from the set of initial states, according to the systems' dynamics.

See our Frequently asked questions (FAQ) section for pointers to the relevant literature, related tools and more.

๐ŸŽฏ Table of Contents

๐Ÿ’พ Installation

๐Ÿ“™ Documentation

๐ŸŽจ Features

๐Ÿ Quickstart

๐Ÿพ Examples Gallery

๐Ÿ“˜ Publications

๐Ÿ“œ Citation

๐Ÿ’พ Installation

Open a Julia session and activate the pkg mode (to activate the pkg mode in Julia's REPL, type ], and to leave it, type <backspace>), and enter:

pkg> add ReachabilityAnalysis

๐Ÿ“™ Documentation

See the Reference Manual for introductory material, examples and API reference.

๐Ÿ“Œ Need help? Have any question, or wish to suggest or ask for a missing feature? Do not hesitate to open a issue or join the JuliaReach gitter chat: join the chat at https://gitter.im/JuliaReach/Lobby, or send an email to the developers.

๐ŸŽจ Features

The following types of systems are supported (click on the left arrow to display a list of examples):

Continuous ODEs with linear dynamics โœ”๏ธ

Operational amplifier

Heat

ISS

Motor

Building

Continuous ODEs with non-linear dynamics โœ”๏ธ

Quadrotor

Brusselator

SEIR model

Robot arm

Continuous ODEs with parametric uncertainty โœ”๏ธ

Transmission line

Lotka-Volterra

Hybrid systems with piecewise-affine dynamics โœ”๏ธ

Platooning

Bouncing ball

Navigation system

Thermostat

Hybrid systems with non-linear dynamics โœ”๏ธ

Spacecraft

Cardiatic cell

Powetrain control

Spiking neuron

Bouncing ball

Hybrid systems with clocked linear dynamics โœ”๏ธ

Electromechanic break

Clocked thermostat

๐Ÿ Quickstart

In less than 15 lines of code, we can formulate, solve and visualize the set of states reachable by the Duffing oscillator starting from any initial condition with position in the interval 0.9 .. 1.1 and velocity in -0.1 .. 0.1.

using ReachabilityAnalysis, Plots

const ฯ‰ = 1.2
const T = 2*pi / ฯ‰

@taylorize function duffing!(du, u, p, t)
    local ฮฑ = -1.0
    local ฮฒ = 1.0
    local ฮด = 0.3
    local ฮณ = 0.37
    
    x, v = u
    f = ฮณ * cos(ฯ‰ * t)

    # write the nonlinear differential equations defining the model
    du[1] = u[2]
    du[2] = -ฮฑ*x - ฮด*v - ฮฒ*x^3 + f
end

# set of initial states
X0 = Hyperrectangle(low=[0.9, -0.1], high=[1.1, 0.1])

# formulate the initial-value problem
prob = @ivp(x' = duffing!(x), x(0) โˆˆ X0, dim=2)

# solve using a Taylor model set representation
sol = solve(prob, tspan=(0.0, 20*T), alg=TMJets21a())

# plot the flowpipe in state-space
plot(sol, vars=(1, 2), xlab="x", ylab="v", lw=0.5, color=:red)

๐Ÿพ Examples

quadrotor Quadrotor altitude control LVHybrid Lotka-Volterra with tangential guard crossing
LaubLoomis Laub-Loomis model PD
Production-Destruction model
vanderpol Coupled van der pol oscillator model spaccecraft Spacecraft rendez-vous model

๐Ÿ“˜ Publications

This library has been applied in a number of scientic works.

Click to see the full list of publications that use ReachabilityAnalysis.jl.

We list them in reverse chronological order.

[11] Combining Set Propagation with Finite Element Methods for Time Integration in Transient Solid Mechanics Problems. Forets, Marcelo, Daniel Freire Caporale, and Jorge M. Pรฉrez Zerpa. arXiv preprint arXiv:2105.05841. Accepted in Computers & Structures (2021).

[10] Efficient reachability analysis of parametric linear hybrid systems with time-triggered transitions. Marcelo Forets, Daniel Freire, Christian Schilling, 2020. arXiv: 2006.12325. Published in 18th ACM-IEEE International Conference on Formal Methods and Models for System Design . See conference page.

[9] ARCH-COMP20 Category Report: Continuous and Hybrid Systems with Linear Continuous Dynamics. Matthias Althoff, Stanley Bak, Zongnan Bao, Marcelo Forets, Daniel Freire, Goran Frehse, Niklas Kochdumper, Yangge Li, Sayan Mitra, Rajarshi Ray, Christian Schilling, Stefan Schupp, and Mark Wetzlinger (2020) ARCH20. 7th International Workshop on Applied Verification of Continuous and Hybrid Systems. 7th International Workshop on Applied Verification of Continuous and Hybrid Systems (ARCH20), vol 74, pages 16--48. 10.29007/7dt2.

[8] ARCH-COMP20 Category Report: Continuous and Hybrid Systems with Nonlinear Dynamics. Luca Geretti, Julien Alexandre dit Sandretto, Matthias Althoff, Luis Benet, Alexandre Chapoutot, Xin Chen, Pieter Collins, Marcelo Forets, Daniel Freire, Fabian Immler, Niklas Kochdumper, David P. Sanders and Christian Schilling (2020) ARCH20. To appear in 7th International Workshop on Applied Verification of Continuous and Hybrid Systems. 7th International Workshop on Applied Verification of Continuous and Hybrid Systems (ARCH20), vol 74, pages 49--75. 10.29007/zkf6.

[7] Case Study: Reachability Analysis of a unified Combat-Command-and-Control Model. Sergiy Bogomolov, Marcelo Forets, Kostiantyn Potomkin. International Conference on Reachability Problems (2020). Lecture Notes in Computer Science, vol 12448. (2020) doi: 10.1007/978-3-030-61739-4_4. Presented in the 14th International Conference on Reachability Problems 2020. article

[6] Reachability analysis of linear hybrid systems via block decomposition. Sergiy Bogomolov, Marcelo Forets, Goran Frehse, Kostiantyn Potomkin, Christian Schilling. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 39:11 (2020). doi: 10.1109/TCAD.2020.3012859. Presented in Embedded Systems Week 2020. Get pdf from arXiv: 1905.02458.

[5] ARCH-COMP19 Category Report: Continuous and Hybrid Systems with Linear Continuous Dynamics. Matthias Althoff, Stanley Bak, Marcelo Forets, Goran Frehse, Niklas Kochdumper, Rajarshi Ray, Christian Schilling and Stefan Schupp (2019) ARCH19. 6th International Workshop on Applied Verification of Continuous and Hybrid Systems, vol 61, pages 14--40 doi: 10.29007/bj1w.

[4] ARCH-COMP19 Category Report: Continuous and Hybrid Systems with Nonlinear Dynamics. Fabian Immler, Matthias Althoff, Luis Benet, Alexandre Chapoutot, Xin Chen, Marcelo Forets, Luca Geretti, Niklas Kochdumper, David P. Sanders and Christian Schilling (2019) ARCH19. 6th International Workshop on Applied Verification of Continuous and Hybrid Systems, vol 61, pages 41--61 doi: 10.29007/bj1w.

[3] JuliaReach: a Toolbox for Set-Based Reachability. Sergiy Bogomolov, Marcelo Forets, Goran Frehse, Kostiantyn Potomkin, Christian Schilling. Published in Proceedings of HSCC'19: 22nd ACM International Conference on Hybrid Systems: Computation and Control (HSCC'19), see ACM link here. Get pdf from arXiv: 1901.10736.

[2] ARCH-COMP18 Category Report: Continuous and Hybrid Systems with Linear Continuous Dynamics. Matthias Althoff, Stanley Bak, Xin Chen, Chuchu Fan, Marcelo Forets, Goran Frehse, Niklas Kochdumper, Yangge Li, Sayan Mitra, Rajarshi Ray, Christian Schilling and Stefan Schupp (2018) ARCH18. 5th International Workshop on Applied Verification of Continuous and Hybrid Systems, 54: 23โ€“52. doi: 10.29007/73mb.

[1] Reach Set Approximation through Decomposition with Low-dimensional Sets and High-dimensional Matrices. Sergiy Bogomolov, Marcelo Forets, Goran Frehse, Frรฉdรฉric Viry, Andreas Podelski and Christian Schilling (2018) HSCC'18 Proceedings of the 21st International Conference on Hybrid Systems: Computation and Control: 41โ€“50. See the ACM Digital Library link, or the arXiv: 1801.09526.

Note: Articles [1-7] use the former codebase Reachability.jl.

๐Ÿ“œ How to cite

Research credit and full references to the scientific papers presenting the algorithms implemented in this package can be found in the source code for each algorithm and in the References section of the online documentation.

If you use this package for your research, we kindly ask you to cite the following paper, see CITATION.bib. Moreover, please also cite the appropriate original references to the algorithms used.

More Repositories

1

LazySets.jl

Scalable symbolic-numeric set computations in Julia
Julia
226
star
2

Reachability.jl

Reachability and Safety of Nondeterministic Dynamical Systems
Julia
50
star
3

ClosedLoopReachability.jl

Reachability analysis for closed-loop control systems in Julia
Polar
44
star
4

MathematicalSystems.jl

Systems definitions in Julia
Julia
42
star
5

RangeEnclosures.jl

Enclosures of real-valued functions in Julia
Julia
22
star
6

JuliaCon-2021-Workshop-Its-All-Set

It's all Set: A hands-on introduction to JuliaReach
Jupyter Notebook
19
star
7

IntervalMatrices.jl

Matrices with interval coefficients in Julia
Julia
18
star
8

BernsteinExpansions.jl

Computing Bernstein coefficients of multivariate polynomials in Julia
Julia
10
star
9

juliareach-days-3

CSS
9
star
10

SpaceExParser.jl

Parser for the SpaceEx modeling language in Julia
Julia
7
star
11

CarlemanLinearization.jl

Carleman linearization for dynamical systems in Julia
Julia
7
star
12

ReachabilityModels.jl

JuliaReach model library
Julia
5
star
13

MathematicalSets.jl

Set definitions in Julia
Julia
5
star
14

JuliaReach-website

Website of the JuliaReach organization
Jupyter Notebook
5
star
15

LazySets-JuliaCon21

LazySets.jl article for the JuliaCon 2021 Conference Proceedings
TeX
5
star
16

JuliaCon-2021-Minisymposium-Set-Propagation

Minisymposium for JuliaCon 2021: Applications of Set Propagation Techniques in Julia
5
star
17

MathematicalPredicates.jl

Predicate definitions in Julia
Julia
4
star
18

ReachabilityBenchmarks

JuliaReach benchmark suite
Jupyter Notebook
4
star
19

SetPropagation-FEM-Examples

Repeatability Evaluation package for "Combining Set Propagation with Finite Element Methods for Time Integration in Transient Solid Mechanics Problems"
Julia
3
star
20

ARCH2020_NLN_RE

Repeatability Evaluation package for the ARCH2020 NLN Competition
Julia
3
star
21

PolynomialZonotopes.jl

Polynomial zonotopes extension for LazySets
Julia
3
star
22

Flowstar.jl

Julia wrapper for Flow*
Julia
3
star
23

RP21_RE

Repeatibility Evaluation for "Reachability of weakly nonlinear systems using Carleman linearization" (RP'21)
Julia
2
star
24

juliareach-days-3-reachathon

Jupyter Notebook
2
star
25

ReachabilityBase.jl

Base library for the JuliaReach ecosystem
Julia
2
star
26

SetPropagation-FEM-JuliaCon21

Computing Reachable Sets of Semi-Discrete Solid Dynamics Equations with ReachabilityAnalysis.jl
TeX
1
star
27

ARCH2018_RE

Repeatability Evaluation package for the ARCH2018 Competition
Julia
1
star
28

ClampedFreeBar

Benchmark problem of wave propagation in a clamped-free bar
Jupyter Notebook
1
star
29

ARCH2022_AFF_RE

Repeatability evaluation package for the ARCH2022 AFF competition
Julia
1
star
30

ARCH2019_RE

Repeatability Evaluation package for the ARCH2019 Competition
Julia
1
star
31

AAAI22_RE

Repeatibility evaluation for "Verification of Neural-Network Control Systems by Integrating Taylor Models and Zonotopes" (AAAI'22)
C++
1
star
32

ARCH2023_AINNCS_RE

Repeatability package for ARCH-COMP 2023 AINNCS
Julia
1
star
33

JuliaReachDevDocs

JuliaReach development guidelinesย and resources
Julia
1
star
34

NeuralNetworkReachability.jl

Set propagation for neural networks in Julia
Julia
1
star