# combinedControl

Implementation of the combined controller

## Contents

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

## Syntax

[objContr,res] = combinedControl(benchmark,Param,Opts)

## Description

Offline-phase computations for the controller that combines initial state dependent feed-forward part with a feedback controller.

## Input Arguments

benchmark | name of the considered benchmark model (see; "aroc/benchmarks/dynamics/...")
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)
.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]
.feedForward | type of feed-forward controller used [{`'genSpace'`} / `'poly'`]
.reachSteps | number of reachability steps in one time step [{10} / positive integer]
.reachStepsFin | number of reachability steps during one time step (final reachable set computation) [{50} / positive integer]
.scale | scaling factor for the tightend input constraints [{0.9} / scalar between 0 and 1]
.Q | state weighting matrix for the cost function of the optimal control problem [{eye(nx)} / pos.-definite square matrix]
.R | input weighting matrix for the cost function of the optimal control problem [{zeros(nu)} / pos.-definite square matrix]
.Qff | state weighting matrix for feed-forward control [{eye(nx)} / pos.-definite square matrix]
.Rff | input weighting matrix for feed-forward control [{zeros(nu)} / pos.-definite square matrix]
.finStateCon | use constraint that the final reachable set is inside the shifted initial set [{false} / boolean]
.maxIter | maximum number of iterations for optimization with fmincon [{5} / 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 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]

## Output Arguments

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

## See Also

`objCombinedContr`

## References

- [1] Schuermann et al. (2020)*, Optimizing Sets of Solutions for Controlling Constrained Nonlinear Systems
- [2] Gassmann et al. (2021)*, Verified Polynomial Controller Synthesis for Disturbed, Nonlinear Systems

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