Periodic Systems

Periodic Systems#

A Periodic system has a representation

\[\begin{split}\mat{c}{x_{k+1} \\ z_k} = \mat{c|c}{\Acl_k & \Bcl_k \hl \Ccl_k & \Dcl_k } \mat{c}{x_k \\ w_k}.\end{split}\]

in which there exists a period \(h\) such that

\[ \mat{c|c}{\Acl_k & \Bcl_k \hl \Ccl_k & \Dcl_k } = \mat{c|c}{\Acl_{k+h} & \Bcl_{k+h} \hl \Ccl_{k+h} & \Dcl_{k+h} } \]

A periodic system is a switched system restricted to switching in a ring graph.

System#

The algorithmic interconnection for a periodic system is

\[\begin{split}\begin{align*} w_k & \in F_k(z_k), \, \\ \mat{c}{x^N_{k+1} \hl z_k \\ y_k} &= \mat{c|cc}{A_{k} & B_{k, \, z} & B_{k, \, u} \hl C_{k, \, z} & D_{k, \, zd} & D_{k, \, zu} \\ C_{k, \, y} & D_{k, \, yd} & D_{k, \, yu}} \mat{c}{x_k^N \hl w_k \\ u_k}, \\ \mat{c}{\xi_{k+1} \\ y_k} &= \mat{c|c}{A_{K, k} & B_{K, k} \hl C_{K, k} & D_{K, k} } \mat{c}{\xi_k \\ y_k} \end{align*}\end{split}\]
class system.periodic.opt_system_periodic#

Bases: system.switched.opt_system_switched

OPT_SYSTEM_PERIODIC interconnection of periodic network and operators

Constructor Summary
opt_system_periodic(op, P, K, bind, tracking)#

OPT_SYSTEM_PERIODIC constructor

Method Summary
get_tracked_opt(param)#

GET_TRACKED_OPT get the tracked position of the optimal solution. allow for time-varying exosystems (periodic), represented by a cell

get_type()#

get the type of the switched system is periodic.

next_mode(mode)#

next mode in the switching sequence

periodic_lift()#

PERIODIC_LIFT form a periodic LTI lift of the system

Returns:

sys_lift (opt_system) – an LTI system

Regulator#

An open periodic system with disturbance \(d\) and regulated error \(e\) is

\[\begin{split}\begin{align} d_{k+1} &= S_k d_{k}, \, \\ \mat{c}{x_{k+1} \hl e_k \\ y_k} &= \mat{c|cc}{A_k & B_{k, d} & B_{k, u} \hl C_{k, e} & D_{k, ed} & D_{k, eu} \\ C_{k, y} & D_{k, yd} & D_{k, yu}} \mat{c}{x_k \hl d_k \\ u_k}. \end{align}\end{split}\]

The one-step regulator equations for this system are to find \(h\)-periodic matrices \((\Pi_h, \Gamma_h, \Phi_h)_{h\in \N}\) satisfying

\[\begin{split}\begin{align} \mat{c}{\Pi_{k+1} S_k \hl 0 \\ \Phi} &= \mat{c|cc}{A_k & B_{k, d} & B_{k, u} \hl C_{k, e} & D_{k, ed} & D_{k, eu} \\ C_{k, y} & D_{k, yd} & D_{k, yu}} \mat{c}{\Pi_k \hl I \\ \Gamma_k}. \end{align}\end{split}\]

If these regulator equations fail, then there does not exist a well-posed and convergent optimization algorithm for this network.

class system.periodic.regulator_periodic#

Bases: system.switched.regulator_switched

REGULATOR_PERIODIC Regulator for periodic systems. This is an alias for the regulator_switched()

Constructor Summary
regulator_periodic(sys)#

REGULATOR_PERIODIC constructor

LMI Analysis#

class system.periodic.lmi_analysis_periodic#

Bases: system.generic.lmi_analysis_interface

LMI_ANALYSIS_PERIODIC analysis LMIs for algorithmic interconnections involving periodic linear networks and controllers

Constructor Summary
lmi_analysis_periodic(sys, config)#

LMI_DISPATCH_LTI Constructor

Method Summary
Nss()#

NSS: Number of subsystems

cons_dynamic(vars, cons, diss)#

CONS form the dissipation and sign constraints

Parameters:
  • vars – variables of the problem

  • cons – accumulated constraints

  • diss (diss_data) – structure describing the dissipation constraint

Returns:
  • cons – accumulated constraints

  • objective – term to be minimized

create_vars_spec(cons, specs)#

CREATE_VARS_SPEC declare variables for the specifications :param cons: accumulated constraints :param specs: performance specifications

Returns:

vars_spec – variables for performance specification cons: accumulated constraints

create_vars_storage(cons, alg_psi, name)#

create_vars_storage create variables for the dissipation constraints. One for each subsystem

Parameters:
  • cons – accumulated constraints

  • alg_psi – the filtered algorithmic interconnection

  • name – a name for the variable

Returns:
  • vars_diss – variables of the problem in the dissipation constraints

  • cons – accumulated constraints

h2(vars, cons, diss)#

H2: certificate of stochastic performance

Parameters:
  • vars – variables of the problem

  • cons – accumulated constraints

  • diss (diss_data) – structure describing the dissipation constraint

Returns:
  • cons – accumulated constraints

  • objective – term to be minimized

  • con_M – PSD blocks for the dynamics constraint

quad(vars, cons, diss)#

QUAD: certificate of quadratic performance

Parameters:
  • vars – variables of the problem

  • cons – accumulated constraints

  • diss (diss_data) – structure describing the dissipation constraint

Returns:
  • cons – accumulated constraints

  • objective – term to be minimized

LMI Synthesis#

class system.periodic.lmi_synthesis_periodic#

Bases: system.switched.lmi_synthesis_switched

LMI_SYNTHESIS_PERIODIC synthesis LMIs for algorithmic interconnections involving periodic linear networks and controllers

Constructor Summary
lmi_synthesis_periodic(sys, config)#

LMI_SYNTHESIS_PERIODIC constructor

Method Summary
cons_dynamic(vars, cons, diss)#

CONS form the dissipation and sign constraints

Parameters:
  • vars – variables of the problem

  • cons – accumulated constraints

  • diss (diss_data) – structure describing the dissipation constraint

Returns:
  • cons – accumulated constraints

  • objective – term to be minimized

create_vars_storage(cons, alg_psi, name)#

create_vars_storage create variables for the dissipation constraints. One for each subsystem :param cons: accumulated constraints :param specs: performance specifications

Returns:

vars_spec – variables for performance specification cons: accumulated constraints

get_vars_involved(vars, ind)#

GET_VARS_INVOLVED get variables involved in the current mode :param vars: variables of the problem :param ind: index of subsystem/mode

Returns:

vars_inv – variables (diss, reg) at subsystem ind

h2(vars, cons, diss)#

H2: certificate of stochastic performance

Parameters:
  • vars – variables of the problem

  • cons – accumulated constraints

  • diss (diss_data) – structure describing the dissipation constraint

Returns:
  • cons – accumulated constraints

  • objective – term to be minimized

  • con_M – PSD blocks for the dynamics constraint

quad(vars, cons, diss)#

QUAD: certificate of infinite-horizon quadratic performance

Parameters:
  • cons – accumulated constraints

  • specs – performance specifications

Returns:

vars_spec – variables for performance specification cons: accumulated constraints

recover_subcontroller(alg_psi, P_trans, sol)#

RECOVER_SUBCONTROLLER recover the subcontroller of the current mode/control

Parameters:
  • alg_psi – the filtered algorithmic interconnection

  • P_trans – the transformed generalized plant before IQC

  • sol – solution structure

Returns:

sol – solution structure

recover_subcontroller_warp(P_trans, vars_rec)#

RECOVER_SUBCONTROLLER_WARP recover the nonlinearly warped controller dynamics and indexers :param alg_psi: the filtered algorithmic interconnection :param P_trans: the transformed generalized plant before IQC :param sol: solution structure

Output:

K_nofeed: subcontroller without direct feedthrough Gcl: closed-loop storage matrix (original) Ycl: similarity transformation/nonlinear warping

validate_recovery_gain(alg_trans, iqc_op_all)#

VALIDATE_RECOVERY validate that the system obeys the stability :param alg_trans: the plant with confirmed performance by LMIs :param iqc_op_all: all IQCs

Return:

gain – [Passivity index, H-infinity index].