System

This folder contains different ways to define systems, for instance to encode a controller.

Control system

Each control system should be implemented as a ControlSystem.

So far, we have implemented a few examples of control systems:

Dionysos.System.ControlSystemGrowthType
ControlSystemGrowth{N, T, F1 <: Function, F2 <: Function, F3 <: Function} <: ControlSystem{N, T}

is one implementation of the ControlSystem type for which we have a growth bound function.

source
Dionysos.System.ControlSystemLinearizedType
ControlSystemLinearized{N, T, F1 <: Function, F2 <: Function, F3 <: Function, F4 <: Function, } <: ControlSystem{N, T}

is one implementation of the ControlSystem type for which we have linearized the system map.

source

Controller

So far, the abstraction-based methods that we use define either piecewise-constant or piecewise-affine controllers.

Trajectories

Dionysos.System.ContinuousTrajectoryType
ContinuousTrajectory{T, XVT<:AbstractVector{T}, UVT<:AbstractVector{T}}

x is a sequence of points in the state space and u is a sequence of points in the input space.

source
Dionysos.System.HybridTrajectoryType
HybridTrajectory{T, TT, XVT <: AbstractVector{T}, UVT <: AbstractVector{T}}

discrete is the discrete trajectory of type DiscreteTrajectory and continuous is a the continuous trajectory of type ContinuousTrajectory.

source

Approximation

Dionysos.System.get_under_approximation_mapFunction
get_under_approximation_map(approx::DiscreteTimeSystemUnderApproximation) -> Function

Returns a function that computes the underapproximation (list of points) of the system's evolution. f(rect::UT.HyperRectangle{N,T}, u::SVector{M,T}) -> SVector{N,T}[]

source
get_under_approximation_map(approx::ContinuousTimeSystemUnderApproximation) -> Function

Returns a function that computes the underapproximation (list of points) of the system's evolution. f(rect::UT.HyperRectangle{N,T}, u::SVector{M,T}, tstep::T) -> SVector{N,T}[]

source
Dionysos.System.get_over_approximation_mapFunction
get_over_approximation_map(approx::DiscreteTimeSystemOverApproximation) -> Function

Returns a function that computes the overapproximation of the system's evolution. f(rect::UT.HyperRectangle{N,T}, u::SVector{M,T}) -> UT.HyperRectangle{N,T}

source
get_over_approximation_map(overApprox::ContinuousTimeSystemOverApproximation) -> Function

Returns a function that computes the overapproximation of the system's evolution. f(rect::UT.HyperRectangle{N,T}, u::SVector{M,T}, tstep::T) -> UT.HyperRectangle{N,T}

source