# generatorSpaceControl

Implementation of a controller synthesis algorithm based on optimal control in generator space

## Contents

- Syntax
- Description
- Input Arguments
- Output Arguments
- See Also
- References

## Syntax

[objContr,res] = generatorSpaceControl(benchmark,Param)
[objContr,res] = generatorSpaceControl(benchmark,Param,Opts)
[objContr,res] = generatorSpaceControl(benchmark,Param,Opts,Post)

## Description

Offline-phase computations for the controller synthesis algorithm that is based on optimal control in generator space.

## Input Arguments

benchmark | name of the considered benchmark model (see; "aroc/benchmarks/...")
Param | a structure containing the benchmark parameters
.R0 | initial set of states (class: interval)
.xf | goal state
.tFinal | final time after which the goal state should be reached
.U | set of admissible control inputs (class:; interval)
.W | set of uncertain disturbances (class: interval; or zonotope)
.V | set of measurement errors (class: interval or; zonotope)
.X | set of state constraints (class: mptPolytope)
Opts | a structure containing the algorithm settings
.N | number of time steps [{10} / positive integer]
.Ninter | number of intermediate time steps during one time step [{4} / positive integer]
.reachSteps | number of reachability steps in one time step [{10} / positive integer]
.Q | state weighting matrix for the cost function of the optimal control problem [{eye(nx)} / positive-definite square matrix]
.R | input weighting matrix for the cost function of the optimal control problem [{zeros(nu)} / positive-definite square matrix]
.refInput | use the input from the reference trajectory as input for the center instead of optimizing [{false} / boolean]
.extHorizon.active | use extended optimization horizon for optimal control problems [{false} / true]
.extHorizon.horizon | length of the extended optimization horizon in center trajectory time steps [{`'all'`} / positive integer]
.extHorizon.decay | decay function for the objective function of the optimization problem with extended optimization horizon [{`'fall+End'`} / `'uniform'` / `'fall'` /; `'fallLinear'` / `'fallLinear+End'` /; `'fallEqDiff'` / `'fallEqDiff+End'` /; `'rise'` / `'quad'` / `'riseLinear'` /; `'riseEqDiff'` / `'end'`]
.refTraj.Q | state weighting matrix for the cost function of optimal control problem (dimension:[nx,nx])
.refTraj.R | input weighting matrix for the cost function of optimal control problem (dimension:[nu,nu])
.refTraj.x | user provided reference trajectory (dimension: [nx,Opts.N*Opts.Ninter + 1])
-.refTraj.u inputs for the user provided reference trajectory (dimension: [nu,Opts.N*Opts.Ninter])
.cora.alg | reachability algorithm that is used [{`'lin'`} / `'poly'`]
.cora.tensorOrder | taylor order for the abstraction of the nonlinear function [{2}/ 3]
.cora.taylorTerms | taylor order for computing e^At [{20} / positive integer]
.cora.zonotopeOrder | upper bound for the zonotope order [{30} / positive integer]
.cora.errorOrder | upper bound for the zonotope order before comp. the abstraction error [{5} / positive integer]
.cora.intermediateOrder | upper bound for the zonotope order during internal computations [{20} / positive integer]
Post | function handle to the postprocessing function that is used to compute the occupancy set

## Output Arguments

objContr | resulting controller storing the data computed during the offline phase (class: objContrGenSpace)
res | results object storing the computed reachable set and the center trajectory

## See Also

objContrGenSpace

## References

- [1] Schuermann et al. (2017), Guaranteeing constraints of disturbed nonlinear systems using set-based optimal control in generator space

© 2018-2023 I6 Technische Universität München `•` Website `•` License