ClosedLoopReachability.ControlledPlantType
ControlledPlant{ST, CT, XT, DT, PT, CPRT, CPST} <: AbstractControlProblem

Struct representing a closed-loop controlled system.

Fields

  • ivp – initial-value problem
  • controller – controller
  • vars – dictionary storing state variables, input variables and control variables
  • period – control period
  • postprocessing – postprocessing of the controller output
  • preprocessing – preprocessing of the controller input

Parameters

  • ST: type of system
  • CT: type of controller
  • XT: type of initial condition
  • DT: type of variables
  • PT: type of period
  • CPRT: type of control preprocessing
  • CPST: type of control postprocessing

Notes

While typically the controller is a neural network, this struct does not prescribe the type.

ClosedLoopReachability.simulateMethod
simulate(cp::AbstractControlProblem, args...; kwargs...)

Simulate a controlled system for a family of random trajectories.

Input

  • cp – controlled problem
  • trajectories – (optional, default: 10) number of simulated trajectories

Output

An object of type EnsembleSimulationSolution.

Notes

This function uses the ensemble simulations feature from OrdinaryDiffEq.jl.

CommonSolve.solveMethod
solve(prob::AbstractControlProblem, args...; kwargs...)

Solve the control problem defined by prob.

Input

  • prob – controlled problem

Additional options are passed as arguments or keyword arguments; see the notes below for details. See the online documentation for examples.

Output

The solution of a reachability problem controlled by a periodic controller. The control signals are stored in the ext field with each flowpipe.

Notes

Mandatory arguments

  • Use the tspan keyword argument to specify the time span (start time and time

horizon); it can be a tuple, an interval, or a vector with two components. Alternatively, use the T keyword argument to specify only the time horizon, in which case the start time is assumed to be zero.

  • Use the algorithm_plant keyword argument to specify the algorithm for the

plant.

  • Use the algorithm_controller keyword argument to specify the algorithm for

the controller.

Optional arguments

  • Use the splitter and input_splitter keyword arguments to specify a

splitter.

Default: NoSplitter()

  • Use the reconstruction_method keyword arguments to specify a reconstruction

method for the interface between plant and controller.

Default: TaylorModelReconstructor()