Approximating the Convergence Rate of a NCS - Example
This example shows how to find an upperbound on the convergence rate of a given NCS modeled as discrete-time linear parameter varying (DLPV) system. Specifically we mean solving for an lower bound on such that the state of the NCS
satisfies
when the NCS has delays and transmission intervals bounded in a continuous range.
Contents
Define the Network Control System
The plant is a divided into two subsystems which are given as
with decentralized state feedback
The plant subsystem matrices with corresponding feedback gains are defined as
A1=[0.6 -4.2; 0.1 -2.1]; B1=[0.7 1.9; 0 1]; K1= [1.94 -1.40; -0.56 -0.86]; A2=[-3.2 0.2; 5.3 -0.2]; B2=[0.8; -0.4]; K2 = [1.36 0.81];
and the coupling matrices are given as
Ac1 = [0.1 2.1; 0.01 0]; Ac2 = [0 0; 0 -0.03]; Bc1 = [-0.02; -0.01]; Bc2=[0 0; 0 0];
We can express these two coupled systems as one system with the expression
where
A=[A1 Ac1; Ac2 A2]; B=[B1 Bc1; Bc2 B2]; K= [K1 zeros(2); 0 0 K2];
where K is a decentralized state feedback gain.
The network that the decentralized NCS is operating on has the following characteristics
h=[0.9, 1.1]; % [hmin,hmax] bounds on the sampling time tau=[0, 1e-3]; % [taumin,taumax] bounds on the delay delta = 0; % integer bound on the number of subsequent dropouts
Create 'ncs' Object
Now we are ready to create a ncs class variables. This is done using the ncsEditor. To open the ncsEditor simply type 'ncsEditor' into the command prompt. Since the matrix variables are defined in the workspace, we can directly input the matrix names into the fields of the ncsEditor GUI. We do not consider communication constraints in this example so leave that box unchecked.
load exampleNcs
Generate Stability Data
Finally, to determine if out system is stable with a given gamma, we simply plug the ncs object into the following function:
gamma = 0; stable = dncs.isNcsStable('JNF','explicit','pardep',gamma); % where |explicit| is the dropout modeling approach we will use. % Alternatively one could use the |lngtrans| dropout modeling approach. % Also, 'CH' or 'GNB' are alternative overapproximation choices.
SYSTEM DATA: states = 4 h = [0.9, 1.1] tau = [0, 0.001] max drops = 0 OVERAPPROXIMATION DATA: unique alfa terms = 9 Mode: Packet Received Number of varying alfa terms = 8 Number of Polytopic Vertices = 256 STABILITY DATA: Lyapunov function type: Switched Quadratic Number of LMIs needed to verify stabiliy = 257 No problems detected (SeDuMi-1.3) Stability: Guaranteed --------------------------------------------------------------
We chose gamma=0 since it is the slowest decay rate and it is the most general way to verify system stability. We also chose the Lyapunov function to be parameter dependent (pardep) and the overapproximation to be the Jordan Normal Form (JNF).
Now since the above command results in a stable system, we can simply write a loop around this function to gradually increase gamma until stability cannot be gauranteed, which will provide an upper bound on the convervence rate when the loop terminates. A simple example of this loop is the following:
if stable == 1 while stable == 1 && gamma <= 1 stable = dncs.isNcsStable('JNF','explicit','pardep',gamma); gamma = gamma +0.1; if stable == 1 disp(['lower bound on gamma is ' num2str(gamma)]) disp(' ') end end end
SYSTEM DATA: states = 4 h = [0.9, 1.1] tau = [0, 0.001] max drops = 0 OVERAPPROXIMATION DATA: unique alfa terms = 9 Mode: Packet Received Number of varying alfa terms = 8 Number of Polytopic Vertices = 256 STABILITY DATA: Lyapunov function type: Switched Quadratic Number of LMIs needed to verify stabiliy = 257 No problems detected (SeDuMi-1.3) Stability: Guaranteed -------------------------------------------------------------- lower bound on gamma is 0.1 SYSTEM DATA: states = 4 h = [0.9, 1.1] tau = [0, 0.001] max drops = 0 OVERAPPROXIMATION DATA: unique alfa terms = 9 Mode: Packet Received Number of varying alfa terms = 8 Number of Polytopic Vertices = 256 STABILITY DATA: Lyapunov function type: Switched Quadratic Number of LMIs needed to verify stabiliy = 257 Infeasible problem (SeDuMi-1.3) Stability: Guaranteed -------------------------------------------------------------- lower bound on gamma is 0.2 SYSTEM DATA: states = 4 h = [0.9, 1.1] tau = [0, 0.001] max drops = 0 OVERAPPROXIMATION DATA: unique alfa terms = 9 Mode: Packet Received Number of varying alfa terms = 8 Number of Polytopic Vertices = 256 STABILITY DATA: Lyapunov function type: Switched Quadratic Number of LMIs needed to verify stabiliy = 257 Infeasible problem (SeDuMi-1.3) Stability: Guaranteed -------------------------------------------------------------- lower bound on gamma is 0.3 SYSTEM DATA: states = 4 h = [0.9, 1.1] tau = [0, 0.001] max drops = 0 OVERAPPROXIMATION DATA: unique alfa terms = 9 Mode: Packet Received Number of varying alfa terms = 8 Number of Polytopic Vertices = 256 STABILITY DATA: Lyapunov function type: Switched Quadratic Number of LMIs needed to verify stabiliy = 257 Infeasible problem (SeDuMi-1.3) Stability: Not Guaranteed --------------------------------------------------------------
Therefore our NCS is stable for h=[0.9, 1.1] and tau=[0, 1e-3]. Furthermore, decay of the state of our discrete-time system is upperbounded by the expression