# optimizationBasedControl

Implementation of a optimazation based control algorithm

## Contents

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

## Syntax

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

## Description

Offline-phase computations for a control algorithm that is based on the optimization over reachable sets

## 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 [{5} / positive integer]
.reachSteps | number of reachability steps during one time step (optimization) [{10} / positive integer]
.reachStepsFin | number of reachability steps during one time step (final reachable set computation) [{100} / positive integer]
.maxIter | maximum number of iterations for optimization with fmincon [{15} / positive integer]
.bound | scaling factor between upper and lower bound of the weigthing matrices [{1000} / positive scalar]
.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 + 1])
-.refTraj.u inputs for the user provided reference trajectory (dimension: [nu,Opts.N])
.cora.alg | reachability algorithm (nonlinear) [{`'lin'`} / `'poly'`]
.cora.linAlg | reachability algorithm (linear) [{`'standard'`} / `'fromStart'` /; `'wrapping-free'` / `'adap'`]
.cora.tensorOrder | taylor order for the abstraction of the nonlinear function [{2} / 3]
.cora.taylorTerms | taylor order for computing e^At [{10} / positive integer]
.cora.zonotopeOrder | upper bound for the zonotope order [{50} / 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 [{30} / positive integer]
.cora.error | uppper-bound for Hausdorff distance (for cora.linAlg = `'adap'` only)
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: objOptBasedContr)
res | results object storing the computed reachable set and the center trajectory

## See Also

`objOptBasedContr`

## References

- [1] Schuermann et al. (2017), Optimal Control of Sets of Solutions to Formally Guarantee Constraints of Disturbed Linear Systems

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