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};