Flowpipes
Abstract interface
ReachabilityAnalysis.AbstractFlowpipe — TypeAbstractFlowpipeAbstract type representing a flowpipe.
Notes
A flowpipe is the set union of an array of reach-sets.
The following functions are available at the interface level.
LazySets.API.ρ — MethodLazySets.ρ(d::AbstractVector, fp::AbstractFlowpipe)Input
d– directionfp– flowpipe
Output
The support function of the flowpipe along the given direction d.
Notes
In this fallback implementation, the flowpipe behaves like the union of the reach-sets, i.e. the implementation is analogue to that of a LazySet.UnionSetArray.
LazySets.API.σ — MethodLazySets.σ(d::AbstractVector, fp::AbstractFlowpipe)Input
d– directionfp– flowpipe
Output
The support vector of the flowpipe along the given direction d.
Notes
In this fallback implementation, the flowpipe behaves like the union of the reach-sets, i.e. the implementation is analogue to that of a LazySet.UnionSetArray.
LazySets.API.dim — MethodLazySets.dim(fp::AbstractFlowpipe)Input
fp– flowpipe
Output
An integer representing the ambient dimension of the flowpipe.
LazySets.set — Methodset(fp::AbstractFlowpipe, ind::Integer)Return the geometric set represented by this flowpipe at the given index.
Input
fp– flowpipeind– index (from1tolength(flowpipe))
Output
The set wrapped by the flowpipe at the given index.
LazySets.set — Methodset(fp::AbstractFlowpipe, ind::AbstractVector)Return the union of set represented by this flowpipe at the given indices.
Input
fp– flowpipeind– vector of indices
Output
The set union stored in the flowpipe at the given indices.
LazySets.set — Methodset(fp::AbstractFlowpipe)Return the geometric set represented by this flowpipe as the union of reach-sets.
Input
fp– flowpipe
Output
The set union of the array of reach-sets of the flowpipe.
Notes
To retrieve the array of sets stored in the flowpipe use array(fp). To get a set at a particular index, use set(F[ind]) or set(F, ind).
ReachabilityAnalysis.tstart — Methodtstart(fp::AbstractFlowpipe)Return the initial time of this flowpipe.
Input
fp– flowpipe
Output
A float representing the initial time of the given flowpipe. The fallback is computed by taking the initial time of the first reach-set.
ReachabilityAnalysis.tend — Methodtend(fp::AbstractFlowpipe)Return the final time of this flowpipe.
Input
fp– flowpipe
Output
A float representing the initial time of the given flowpipe. The fallback is computed by taking the final time of the last reach-set.
ReachabilityAnalysis.tspan — Methodtspan(fp::AbstractFlowpipe)Return time span of this flowpipe.
Input
fp– flowpipe
Output
The interval representing the time span of the given flowpipe. The fallback is computed as (tstart(fp), tend(fp)), see tstart(::AbstractFlowpipe) and tend(::AbstractFlowpipe) for details.
ReachabilityAnalysis.vars — Methodvars(fp::AbstractFlowpipe)Return the tuple of variable indices of the flowpipe.
Input
fp– flowpipe
Output
Tuple of integers with the variable indices of the flowpipe, typically $1, 2, …, n$ where $n$ is the dimension of the flowpipe.
Notes
The fallback implementation assumes first reach-set is representative.
Flowpipe
ReachabilityAnalysis.Flowpipe — TypeFlowpipe{N, RT<:AbstractReachSet{N}, VRT<:AbstractVector{RT}} <: AbstractFlowpipeType that wraps a flowpipe, which is an iterable collection of reach-sets that behaves like their set union.
Fields
Xk– array of reach-setsext– extension dictionary; field used by extensions
Notes
The dimension of the flowpipe corresponds to the dimension of the underlying reach-sets; in this type, it is is assumed that the dimension is the same for the different reach-sets.
ReachabilityAnalysis.location — Methodlocation(F::Flowpipe)Return the location of a flowpipe within a hybrid system, or missing if it is not defined.
Input
F– flowpipe
Output
The :loc_id value of stored in the flowpipe's extension field.
The following methods are available.
ReachabilityAnalysis.shift — Functionshift(R::AbstractReachSet, t0::Number)Perform a time-shift of the given reach-set.
Input
R– reach-sett0– number that corresponds to the time-shift
Output
A new reach-set of the same type of R such that its time-span has been shifted by t0.
shift(fp::Flowpipe{N, <:AbstractReachSet}, t0::Number) where {N}Return the time-shifted flowpipe by the given number.
Input
fp– flowpipet0– time shift
Output
A new flowpipe such that the time-span of each constituent reach-set has been shifted by t0.
Hybrid flowpipe
ReachabilityAnalysis.HybridFlowpipe — TypeHybridFlowpipe{N,RT<:AbstractReachSet{N},FT<:AbstractFlowpipe} <: AbstractFlowpipeType that wraps a vector of flowpipes of the same type, such that they are contiguous in time.
Fields
Fk– vector of flowpipesext– (optional, default: empty) dictionary for extensions
Notes
The evaluation functions (in time) for this type do not assume that the flowpipes are contiguous in time. That is, the final time of the i-th flowpipe does not match the start time of the i+1-th flowpipe.
Mixed flowpipe
ReachabilityAnalysis.MixedFlowpipe — TypeMixedFlowpipe{N,RT<:AbstractReachSet{N},FT<:AbstractFlowpipe} <: AbstractFlowpipeType that wraps a vector of flowpipes of the same time, such that they are not necessarily contiguous in time.
Fields
Fk– vector of flowpipesext– (optional, default: empty) dictionary for extensions
Notes
This type does not assume that the flowpipes are contiguous in time.
Shifted flowpipe
ReachabilityAnalysis.ShiftedFlowpipe — TypeShiftedFlowpipe{FT<:AbstractFlowpipe, NT<:Number} <: AbstractFlowpipeType that lazily represents a flowpipe that has been shifted in time.
Fields
F– original flowpipet0– time shift
Notes
This type can wrap any concrete subtype of AbstractFlowpipe, and the extra field t0 is such that the time spans of each reach-set in F are shifted by the amount t0 (which should be a subtype of Number).
Mapped flowpipe
ReachabilityAnalysis.MappedFlowpipe — TypeMappedFlowpipe{FT<:AbstractFlowpipe, ST} <: AbstractFlowpipeFields
F– flowpipefunc– function representing the map