Set-Valued Maps

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_interface

OP_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