Set-Valued Maps#
We support set-valued maps \(w \in F(z)\) that satisfy properties
maximal monotonicity,
\(\mu\)-strong-monotonicity \(\mu > 0\),
\(\mu\)-hypo-monotonicity with \(\mu > 0\),
\(\beta\)-cocoercivity with \(\beta>0\),
\(L\)-Lipschitzness with \(L > 0\),
\(R\)-Inverse-Lipschitzness with \(R > 0\).
The properties are stored in a prop cell.
As an example, an operator that is \(\mu\)-strongly monotone and \(\beta\)-cocoercive can be declared using the property structure prop = {'monotone', mu, 'cocoercive', beta}.
The order supplied to Analysis is a single integer (number of lags).
- class operator.op_gen#
Bases:
operator.operator_interfaceOP_GEN a general operator set-valued map
- Constructor Summary
- op_gen(c)#
OP_GEN Construct a general operator (possibly a set-valued map that does not have a potential function)
fill in properties by .set assignments after the constructor
- Parameters:
c – dimension of coordinate lift
- Property Summary
- cocoercive#
cocoercive constant
- inverse_lipschitz#
inverse_lipschitz constant
- lipschitz#
lipschitz constant
- monotone#
monotonicity constant
- Method Summary
- build_M(vars, order, reps)#
BUILD_M create the running cost M
- Parameters:
vars – variables of the problem
order – order of the IQC [number of lags]
reps – number of repetitions of the operator (from the bind)
- Returns:
M_out – the running cost
- build_X(vars, order, reps)#
BUILD_X create the terminal cost X
- Parameters:
vars – variables of the problem
order – order of the IQC [number of lags]
reps – number of repetitions of the operator (from the bind)
- Returns:
X_out – the terminal cost
- build_cost(var_curr)#
BUILD_COST create the matrices M and X :param vars_curr: current variables (for M or X)
- Returns:
cost – the cost matrix (M or X)
- build_loop(reps)#
BUILD_LOOP construct the signal transformation matrix
- Parameters:
reps – number of repetitions of the operator (from the bind)
- Returns:
loop_out – signal transformation matrix for the operator
- build_loop_mat(reps)#
BUILD_LOOP_MAT construct the coordinate transformation matrix in the IQCs
- Parameters:
reps – number of repetitions of the operator (from the bind)
- Returns:
loop_out – coordinate transformation matrix for the operator
- build_psi(vars, order, reps)#
BUILD_PSI construct the filter for the general operator
- Parameters:
vars – variables of the problem
order – order of the IQC [number of lags]
reps – number of repetitions of the operator (from the bind)
- Returns:
psi1 – filter on output (causal)
psi2 – filter on input (noncausal components)
- build_psi_fir(order, reps)#
- BUILD_PSI_FIR form the fir filter [1; z^-1; z^-2; z^-3..]
repeated by repetitions in reps
- Parameters:
order – order of the IQC [number of lags]
reps – number of repetitions of the operator (from the bind)
- Returns:
psi – the filter in the IQC
- create_iqc_identity(reps)#
CREATE_IQC_IDENTITY form a valid IQC satisfied by the general operator. This is used as a warm start in synthesis.
- Parameters:
reps – number of repetitions of the operator (from the bind)
- Returns:
iqc (iqc_loop_split) – a valid IQC with no dynamics
- create_vars(order, reps)#
CREATE_VARS form the variables in an IQC
- Parameters:
order – order of the IQC [number of lags]
reps – number of repetitions of the operator (from the bind)
- Returns:
vars – variables of the problem
- csum_psi(vars)#
A proxy to normalize the filter coefficients, reducing degrees of freedom in the Analysis problem
- Parameters:
vars – variables of the problem
- Returns:
cs – the sum of nonnegative variables
- filter_constraints(cons, order, vars, rho_sched, iqc_out)#
constraints on the filter coefficients (variables)
- Parameters:
cons – accumulated constraints
vars – variables of the problem
rho_sched – which times should be discounted
iqc_out – the IQC under consideration
- Returns:
cons – accumulated constraints
- get_mu()#
GET_MU get the (strong) monotonicity parameter
- Returns:
mu – strong monotonicity parameter
- prop_count()#
PROP_COUNT count the number of properties
- Returns:
pc – number of properties
- prop_report()#
PROP_REPORT get list of all properties