Channel Memory

Channel Memory#

This example continues the channel memory simulation example.

An optimization problem

\[\beta^* \in \argmin_{\norm{\beta}_1 \leq 100 } f(\beta)\]

must be solved, where memory effects are present in the communication link to and from evaluation of \(\partial f\). The network effects with forgetting factor \(\alpha > 0\) are

\[\begin{split}\begin{align*} z^1_k &= u_k^1 - \alpha z^1_{k-1}, & y_k^1 &= w_k^1 - \alpha y_{k-1}^1, \\ z^2_k &= u_k^2, & y_k^2 &= w_k^2, & & \forall k \in \N. \end{align*}\end{split}\]

Three rounds of Synthesis/Analysis alternation are performed using order = {1, 1} and parameter \(\alpha = 0.4\). Upper-bounds on the convergence rate \(\rho\) over the course of this alternation are

Round

1

2

3

Synthesis

0.6931

0.6233

0.5701

Analysis

0.6237

0.5703

0.5348

In contrast, the algorithm from channel memory simulation is certified as convergent with \(\rho < 0.9448\) under the same order={1, 1} Analysis method.

Code for Repeated Synthesis#
%% describe the operators
%define the quadratic
m = 1; L = 5;

op1 = op_sml(m, L);
op2 = op_pcc();
ops = {op1, op2};

%% describe the network
%use a transfer function representation 
%to model the channel memory
z = tf('z', 1);
alpha = 0.4; %channel memory effect
ascale = (2*(alpha+1));

P = [0, 0, z/(z+alpha), 0;
    0 , 0, 0, 1;
    z/(z+alpha), 0, 0, 0;
    0, 1, 0, 0];

%partition the input and output channels
network = genplant(P);
network.nw = 2; network.nu = 2;
network.nz = 2; network.ny = 2;

%% form the system
sys = opt_system(ops, network);

%% solve the problem
config =opt_config();
config.syn.elimination = true;
config.syn.elimination_type = 0;
config.syn.reduced_order = 1;
config.gen.same_rho = true;
man = opt_synthesis(sys, config);
order = {1, 1};