Verifying Robust Stability via Different Overapproximation Techniques - Example
This example shows how to compare multiple overapproximation techniqies when analyzing the robust stability of a decentralized networked control system.
Contents
Define the Network Control System
The plant is taken from [Heemels et. al. HSCC 2010] and is given by
where
A=[0 1; 0 -0.1]; B=[0; 0.1]; K= [3.75 11.5];
where K is a decentralized state feedback gain.
The network that the decentralized NCS is operating on has the following characteristics
txIntvls = [1 1]; % [min,max] bounds on the sampling time delays = [0 0.3]; % [min,max] bounds on the delay
Create 'ncs' Object
Now we are ready to create a ncs class variable. To do so, we will first initialize an ncs object by specifying the number of inputs and outputs the plant has. Then we will specifiy the plant, controller and network properties using the variables defined above.
dncs = ncs(1,2);
dncs = dncs.setPlant(A,B,eye(2));
dncs = dncs.setController(K);
dncs = dncs.setNetwork('tPoly',[txIntvls delays]);
NOTE: When an NCS vairable is initialized, quanitzation, network sharing and packet dropouts effects are disabled by default.
NOTE: Creating an NCS variable be also 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.
Generate Stability Data
Now, using the NCS object dncs in the workspace, we can determine if out system is stable for the GNB, JNF and CH overapproximation techniques. First, we will input the ncs|object into the |isNcsStable function, specifying the approximation tehique as 'JNF'
dncs.isNcsStable('JNF',[]);
OVERAPPROXIMATION DATA: JNF *OVERAPPROXIMATION USING MIN, MAX TIMING BOUNDS* varying alfa terms = 2 alpha1 = -10*exp(tk/10 - 1/10) alpha2 = 1 - tk Number of Polytopic Vertices = 4 STABILITY DATA: Number of LMIs needed to verify stability = 4 Solving LMIs... Numerical problems (SeDuMi-1.3) Stability: Not Guaranteed --------------------------------------------------------------
We can see from the output that the JNF technique is NOT able to prove robust stability. Moreover, the text displayed to the user contains information regarding the overapproximation and LMI analysis. We can see that there are a total of 2 varying alpha terms, which results in 4 LMI conditions which were checked.
Next, we will input the ncs object into the isNcsStable function, specifying the approximation tehnique as 'CH'
dncs.isNcsStable('CH',[]);
OVERAPPROXIMATION DATA: CH *OVERAPPROXIMATION USING MIN, MAX TIMING BOUNDS* varying alfa terms = 2 alpha1 = 1 - tk alpha2 = 100*exp(tk/10 - 1/10) - 10*tk + 10 Number of Polytopic Vertices = 4 STABILITY DATA: Number of LMIs needed to verify stability = 4 Solving LMIs... Successfully solved (SeDuMi-1.3) Stability: Guaranteed --------------------------------------------------------------
We can see from the output that the CH technique is able to prove robust stability. Moreover, the text displayed to the user contains information regarding the overapproximation and LMI analysis. We can see that there are a total of 2 varying alpha terms (different to those generated by the JNF technique), which results in again 4 LMI conditions which were checked.
Lastly, we will input the ncs object into the isNcsStable function, specifying the approximation tehique as 'GNB'. The GNB technique requires two extra input parameters than the JNF and CH techniques. To create the overapproximation, the GNB algorithm itertively adds gridpoints until either the desired tightness is obtained or the max number of gridpoints is reached. Here, we specify the desired tightness paramter epsU=1e-12 and the max number of gridpoints gridPointMax = 10. Since the epsU parameter is very small, the algorithm will terminate when 10 gridpoints is reached.
dncs.isNcsStable('GNB',[],1e-12,2);
OVERAPPROXIMATION DATA: GNB *OVERAPPROXIMATION USING TIMING UNCERTAINTY POLYGON* Iteration 1, Gridpoints 2 ... eps = 0.067335 -------------------------------------- The maximum value of epsilon = 6.733e-02 Total amount of gridpoints = 2 STABILITY DATA: Number of LMIs needed to verify stability = 2 Solving LMIs... Successfully solved (SeDuMi-1.3) Stability: Guaranteed --------------------------------------------------------------
We can conclude from the output that the GNB technique is able to prove robust stability of this NCS. From the output it can be seen that this technique does not depend on varying alpha terms, but gridpoints instead. Specifying 2 gridpoints, results in an overappoximation tightness of 6.733e-02. The GNB has the advantage of only needing to solve 2 LMIs whereas both the JNF and CH techniques need to solve 4 LMIs. This illustrates one advantage GNB has, that being that the number of gridpoints does not depend on the state dimension.
The above analysis can also be done via the ncsEditor GUI by loading the NCS from ncsExamples.mat into the GUI and clicking on the 'Verify Stability' button.