ADMIToptions: COMPOSE
Additional options for constructing the QP
COMPOSE.integrationMethod
['EULERFORWARD','EULER','EULEREXPLICIT','EULERBACKWARD',{'EULERIMPLICIT'}]
Set integration method used by ADMITdiscretizeDynamics
Postfix constraints
Specify how and which constraints are used and generated.
COMPOSE.constraints.useTighterBoundsOnAVs [1 | {0}]
Consider additional implicit bounds.
Can improve estimation result, however, increases problem size.
COMPOSE.constraints.useBXB [{1} | 0]
Use B'*X*B >= 0 constraints for linear inequalities in B. Usually
reduces the relaxation error significantly.
COMPOSE.constraints.useBX [{1} | 0]
Use B'*X*e1 >= 0 constraints for linear inequalities in B. Usually
reduces the relaxation error significantly.
COMPOSE.constraints.useQXQ [{1} | 0]
Use Q'*X*Q >= 0 constraints for linear equalities. Can significantly
reduce relaxation error. NOTE: theoretically, Q'*X*Q == 0 should also
be satisfied, however in some instances it leads to numerical issues
and false infeasibility.
COMPOSE.constraints.useQXB [{1} | 0]
Use Q'*X*B >= 0 constraints for linear equalities and inequalities. Can
significantly reduce relaxation error. NOTE: theoretically, Q'*X*B == 0
should also be satisfied, however in some instances it leads to
numerical issues and false infeasibility.
COMPOSE.constraints.bigMFactor [positive integer {2}]
Big-M-normalization factor for implications
COMPOSE.constraints.collapsedBounds.tolerance [positive double {2*eps}]
If bounds for a real variable collapsed to a singleton VAL and if
option COMPOSE.constraints.collapsedBoundsUseEqualities is set to 1, then
the two inequalities specifying the bounds are relaxed to
[VAL-TOL,VAL+TOL]; this can help to avoid numerical issues.
COMPOSE.constraints.collapsedBounds.useEqualities [{0} | 1]
If bounds for a binary or integer variable collapsed to a singleton,
then the two inequalities specifying the bounds are replaced by a
single equation; this reduces computational complexity
COMPOSE.constraints.removeRedundantVariables [1 | {0}]
Remove redundant variables. Can reduce problem size if e.g.
piece-wise constant inputs are used.
Postfix constructQP
Specify how the QP is constructed.
COMPOSE.constructQP.linearizeInequalities [1 | {0}]
Introduce additional variables until inequalities are linear.
Example for quadratic inequality: a*b + c >= 0
Example for linearized inequality: av1 + c >= 0 with av1 == a*b
If linear inequalities are used, the problem size is usually larger,
because more additional variables are introduced in the vector xi.
Introduce additional variables until equalities are linear.
COMPOSE.constructQP.linearizeEqualities [1 | {0}]
Introduce additional variables until equalities are linear.
See also option COMPOSE.constructQP.useLinearInequalities.
COMPOSE.constructQP.timeout [positive integer {30}]
Limits the time spent on trying to minimize the amount of additional
variables (in seconds).
COMPOSE.constructQP.replaceRationalTerms ['substitute' | {'multiply'}]
Choose method to eliminate rational terms. Currently only 'multiply' is
supported.
COMPOSE.constructQP.reduceOrder [{0} | 1]
See help text of function ADMITcompose
COMPOSE.constructQP.order [cell array of strings {'timeInvariant','all'}]
See help text of function ADMITcompose