Periodic-Orbit Systems#

A Periodic-orbit 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 an integer \(h\) and \(h\)-periodic \((M_x, M_w, M_z)\) such that for all \(k \in \N\), we have

\[\begin{split} \mat{c|c}{\Acl_k & \Bcl_k \hl \Ccl_k & \Dcl_k } = \mat{c c}{M_x & 0 \\ 0 & M_y}^{-k} \mat{c|c}{\Acl_{0} & \Bcl_{0} \hl \Ccl_{0} & \Dcl_{0} } \mat{c c}{M_x & 0 \\ 0 & M_u}^k.\end{split}\]

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_orbit.opt_system_periodic_orbit#

Bases: system.lti.opt_system

OPT_SYSTEM_PERIODIC_ORBIT interconnection of network and operators

Constructor Summary
opt_system_periodic_orbit(op, P, K, M, bind, tracking)#

OPT_SYSTEM_PERIODIC constructor

Property Summary
M#

symmetry matrix, should be orthogonal

order#

M^order = M

Method Summary
build_plant(iqc_data, rho)#

BUILD_PLANT: form the plant to be used for analysis or synthesis

Parameters:
  • iqc_data – from manager.iqc_op_all, information about the operator iqc descriptions

  • rho – exponential weighting

Returns:
  • alg_psi – plant with filters (psi)

  • iqc_op – iqcs for the robust uncertainties

  • alg_loop – plant without filters, but after loop transformation (should be stable)

create_iqc(index, cons, order)#

CREATE_IQC form the iqc for the current operator in the system description

Parameters:
  • index (int) – index of the operator

  • cons – accumulated constraints

  • order (or scalar for causal) – order of the operator: [causal order, noncausal order],

  • order

  • reps – number of repeated evaluations (in bind)

Returns:
  • iqc – a valid iqc for the operator

  • vars – variables of the problem

  • cons – constraints in the problem (in terms of the variables directly)

export_periodic()#

EXPORT_PERIODIC export the periodic-orbit as a periodic system explicitly list all subsystems

Returns:

sys_per (opt_system_periodic) – a periodic system

get_K(param)#

GET_K get the controller K

get_P(param)#

GET_P get the network P

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 create an equivalent LTI system

Returns:

sys_lift (opt_system) – an LTI system

rotate_plant(plant, direction)#

rotate_plant: apply the periodic-orbit rotation to the time-varying system, producing an LTI system

Regulator#

An open periodic-orbit 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 regulator equations for this system are to find matrices \((\Pi, \Gamma, \Phi)\) satisfying

\[\begin{split}\begin{align} \mat{c}{\Pi M_d S \hl 0 \\ \Phi} &= \mat{c|cc}{M_x A_k & M_x B_{k, d} & M_x 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 \hl I \\ \Gamma}. \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_orbit.regulator_periodic_orbit#

Bases: system.lti.regulator_lti

REGULATOR_PERIODIC_ORBIT Regulator for periodic-orbit systems. Use routines directly from regulator_lti.

Constructor Summary
regulator_periodic_orbit(sys)#

REGULATOR_PERIODIC_ORBIT constructor

Method Summary
exosystem(param)#

get the exosystem at each mode/internal model

get_K(param)#

get the controller

ss_zy_wu(param)#

get plant matrices for the system

LMI Analysis#

class system.periodic_orbit.lmi_analysis_periodic_orbit#

Bases: system.lti.lmi_analysis_lti

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

Note: this calls routines from lmi_analysis_lti with no extra functionality

Constructor Summary
lmi_analysis_periodic_orbit(sys, config)#

LMI_ANALYSIS_PERIODIC_ORBIT Construct or. use the LTI analysis code w.r.t. the periodic-rotated system and IQCs for the time-varying nonlinearities

Property Summary
M#

periodicity in the state in dynamics

LMI Synthesis#

class system.periodic_orbit.lmi_synthesis_periodic_orbit#

Bases: system.lti.lmi_synthesis_lti

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

Constructor Summary
lmi_synthesis_periodic_orbit(sys, config)#

LMI_SYNTHESIS_PERIODIC constructor undefined

Method Summary
process_recovery(sol, lmi_out, alg_psi, diss)#

recover the controller

Parameters:
  • sol – solution structure

  • lmi_out – output from solver

  • alg_psi – the filtered algorithmic interconnection

  • diss (diss_data) – structure describing the dissipation constraint

Returns:

sol – solution structure

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

LMI Synthesis, Reduced-Order Control#

LTI systems allow for reduced-order control synthesis

class system.periodic_orbit.lmi_synthesis_periodic_orbit_reduced_order#

Bases: system.lti.lmi_synthesis_lti_reduced_order

LMI_SYNTHESIS_PERIODIC_ORBIT_REDUCED_ORDER reduced-order synthesis LMIs for algorithmic interconnections involving periodic linear networks and controllers

Constructor Summary
lmi_synthesis_periodic_orbit_reduced_order(sys, config)#

LMI_SYNTHESIS_PERIODIC_ORBIT_REDUCED_ORDER constructor

Method Summary
cons_dynamic(vars, cons, diss)#

CONS_DYNAMIC 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

process_recovery(sol, lmi_out, alg_psi, diss)#

recover the controller :param sol: solution structure :param lmi_out: output from solver :param alg_psi: the filtered algorithmic interconnection :param diss: structure describing the dissipation constraint :type diss: diss_data

Returns:

sol – solution structure

recover_subcontroller(alg_psi, P_aug, 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

rotate_plant(plant, direction)#

rotate_plant, apply the periodic-orbit rotation to the time-varying system, producing an LTI system

Parameters:
  • plant – original system

  • direction (bool) – forwards (true) or backwards (false)

Returns:

plant_rot – rotated LTI plant