Skip to content

Commit 48ec076

Browse files
committed
Adds pretext pointer to the submitted paper and improve comments in the non-minimum phase and LPV examples
1 parent 349266d commit 48ec076

4 files changed

Lines changed: 114 additions & 26 deletions

File tree

LPV_Uncertain_system_example/main_LPV_example.m

Lines changed: 45 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
1-
% This script is used to plot the robustness of the source-seeking
2-
% algorithms to fields with increasing condition number
1+
%---------------------------------------------------------------------------------------------------
2+
% For Paper
3+
% "Robust Performance Analysis of Source-Seeking Dynamics with Integral Quadratic Constraints"
4+
% by Adwait Datar and Herbert Werner
5+
% Copyright (c) Institute of Control Systems, Hamburg University of Technology. All rights reserved.
6+
% Licensed under the GPLv3. See LICENSE in the project root for license information.
7+
% Author(s): Adwait Datar
8+
%---------------------------------------------------------------------------------------------------
9+
% This script is used to generate data and plot the results for the LPV
10+
% examples presented in Fig. 8 and Fig. 9 in the above paper.
11+
12+
313
close all
414
clear
515
clc
@@ -11,9 +21,9 @@
1121
m=1; % lower bound on the sector
1222

1323
% Optimization tolerences
14-
tolerences.cvx_tol=1e-3;
15-
tolerences.bisect_tol=1e-3;
16-
tolerences.cond_tol=1e8;
24+
tolerences.cvx_tol=1e-3; % Tolerence for definiteness in LMIs
25+
tolerences.bisect_tol=1e-3; % Tolerence in alpha for the bisect-algorithm
26+
tolerences.cond_tol=1e8; % Tolerence for bounding the cond no of positive def variables
1727

1828

1929
for eg=1:2
@@ -46,8 +56,7 @@
4656
% Quadrotor dynamics
4757
addpath(genpath('..\vehicles\quadrotor'))
4858
addpath(genpath('..\vehicles\LPV_models'))
49-
kp=[1,1];
50-
kd=[5,5];
59+
kp=[1,1]; kd=[5,5]; % Pre-filter gains
5160
mass=[0.2,2];
5261
L=1:0.5:10; % Upper bound on the sector
5362
n_L=length(L);
@@ -58,11 +67,34 @@
5867
save_folder='.\data_quadrotor';
5968
end
6069

61-
% Multiplier class
62-
% Select a multiplier class from the following choices
63-
% 1. Circle criterion
64-
% 2. Full block circle criterion
65-
% 3. Zames Falb multipliers
70+
% Run the analysis for different cases defined in the multiplier structure
71+
% with the following properties:
72+
73+
% id:
74+
% This determines the kind of multiplier used with the following choices
75+
% 1. Circle criterion
76+
% 6. Zames Falb multipliers with analysis LMIs for LTI systems
77+
% 7. Zames Falb multipliers with analysis LMIs for LPV systems
78+
79+
% rho:
80+
% This is valid only for Zames Falb multipliers and is the pole location
81+
% for the basis functions parameterizing the multiplier
82+
83+
% psi_order:
84+
% This is valid only for Zames Falb multipliers and is the order of the
85+
% multiplier that is being searched over
86+
87+
% odd_flag:
88+
% This is valid only for Zames Falb multipliers and is set to one if the
89+
% non-linearity under consideration is odd and is set to 0 otherwise
90+
91+
% causal_flag:
92+
% This is valid only for Zames Falb multipliers. It should be set to 1 if
93+
% restricting the search to causal multipliers, set to -1 is restricting
94+
% the search to anti-causal multipliers and set to 0 is searching over
95+
% general non-causal multipliers which includes causal and non-causal
96+
% parts.
97+
6698
multiplier_flag=[70,71,69,702,703,704,705];
6799
for i=1:7
68100
switch multiplier_flag(1,i)
@@ -137,9 +169,9 @@
137169
plot_data
138170
end
139171
%% Functions
172+
function [alpha_best]=sweep_L(G_veh,m,L,alpha_lims,tolerences,multiplier_class)
140173
% This functions sweeps L and finds the best covergence rate estimate by
141174
% running a bisection algorithm for each fixed L
142-
function [alpha_best]=sweep_L(G_veh,m,L,alpha_lims,tolerences,multiplier_class)
143175
n_L=size(L,2);
144176
alpha_best=zeros(1,n_L);
145177
for j=1:n_L

LPV_Uncertain_system_example/plot_data.m

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
1+
%---------------------------------------------------------------------------------------------------
2+
% For Paper
3+
% "Robust Performance Analysis of Source-Seeking Dynamics with Integral Quadratic Constraints"
4+
% by Adwait Datar and Herbert Werner
5+
% Copyright (c) Institute of Control Systems, Hamburg University of Technology. All rights reserved.
6+
% Licensed under the GPLv3. See LICENSE in the project root for license information.
7+
% Author(s): Adwait Datar
8+
%---------------------------------------------------------------------------------------------------
9+
% This script is used to plot the data generated by the
10+
% main_LPV_example.m to produce Fig. 8 and Fig. 9 from the above paper
11+
112
%% Plot results
13+
% Uncomment the following when using this script to plot generated data
14+
% from the different folders
15+
216
% save_folder='.\data_mass_friction';
317
% fig_name=' LPV mass with varying kd';
418

non_minimum_phase_example/main_non_minimum_phase_example.m

Lines changed: 45 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
1-
% This script is used to plot the robustness of the source-seeking
2-
% algorithms to fields with increasing condition number
1+
%---------------------------------------------------------------------------------------------------
2+
% For Paper
3+
% "Robust Performance Analysis of Source-Seeking Dynamics with Integral Quadratic Constraints"
4+
% by Adwait Datar and Herbert Werner
5+
% Copyright (c) Institute of Control Systems, Hamburg University of Technology. All rights reserved.
6+
% Licensed under the GPLv3. See LICENSE in the project root for license information.
7+
% Author(s): Adwait Datar
8+
%---------------------------------------------------------------------------------------------------
9+
% This script is used to generate data and plot the results for the LTI
10+
% non-minimum phase example presented in Fig.7 in the above paper.
11+
312
close all
413
clear
514
clc
@@ -13,18 +22,41 @@
1322
n_L=length(L);
1423

1524
% Optimization tolerences
16-
tolerences.cvx_tol=1e-3;
17-
tolerences.bisect_tol=1e-3;
18-
tolerences.cond_tol=1e8;
25+
tolerences.cvx_tol=1e-3; % Tolerence for definiteness in LMIs
26+
tolerences.bisect_tol=1e-3; % Tolerence in alpha for the bisect-algorithm
27+
tolerences.cond_tol=1e8;% Tolerence for bounding the cond no of positive def variables
1928

20-
% Quadrotor dynamics
29+
% Non-minimum phase example
2130
G_veh=-5*tf([1,-1],[1,1,25,0]);
2231

23-
% Multiplier class
24-
% Select a multiplier class from the following choices
25-
% 1. Circle criterion
26-
% 2. Full block circle criterion
27-
% 3. Zames Falb multipliers
32+
% Run the analysis for different cases defined in the multiplier structure
33+
% with the following properties:
34+
35+
% id:
36+
% This determines the kind of multiplier used with the following choices
37+
% 1. Circle criterion
38+
% 6. Zames Falb multipliers with analysis LMIs for LTI systems
39+
% 7. Zames Falb multipliers with analysis LMIs for LPV systems
40+
41+
% rho:
42+
% This is valid only for Zames Falb multipliers and is the pole location
43+
% for the basis functions parameterizing the multiplier
44+
45+
% psi_order:
46+
% This is valid only for Zames Falb multipliers and is the order of the
47+
% multiplier that is being searched over
48+
49+
% odd_flag:
50+
% This is valid only for Zames Falb multipliers and is set to one if the
51+
% non-linearity under consideration is odd and is set to 0 otherwise
52+
53+
% causal_flag:
54+
% This is valid only for Zames Falb multipliers. It should be set to 1 if
55+
% restricting the search to causal multipliers, set to -1 is restricting
56+
% the search to anti-causal multipliers and set to 0 is searching over
57+
% general non-causal multipliers which includes causal and non-causal
58+
% parts.
59+
2860
multiplier_flag=[1,60,61,59];
2961
for i=1:4
3062
alpha_best=zeros(1,size(L,2));
@@ -60,6 +92,7 @@
6092
save(save_path);
6193
end
6294
end
95+
6396
% Generate example quadratic fields (Linear feedback) to test conservatism
6497
alpha_best=zeros(1,n_L);
6598
for i=1:n_L
@@ -71,9 +104,9 @@
71104
plot_data
72105

73106
%% Functions
107+
function [alpha_best]=sweep_L(G_veh,m,L,alpha_lims,tolerences,multiplier_class)
74108
% This functions sweeps L and finds the best covergence rate estimate by
75109
% running a bisection algorithm for each fixed L
76-
function [alpha_best]=sweep_L(G_veh,m,L,alpha_lims,tolerences,multiplier_class)
77110
n_L=size(L,2);
78111
alpha_best=zeros(1,n_L);
79112
for j=1:n_L

non_minimum_phase_example/plot_data.m

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
1-
%% Plot results for Example 7 20 from Scherer and Weilands LMI notes
1+
%---------------------------------------------------------------------------------------------------
2+
% For Paper
3+
% "Robust Performance Analysis of Source-Seeking Dynamics with Integral Quadratic Constraints"
4+
% by Adwait Datar and Herbert Werner
5+
% Copyright (c) Institute of Control Systems, Hamburg University of Technology. All rights reserved.
6+
% Licensed under the GPLv3. See LICENSE in the project root for license information.
7+
% Author(s): Adwait Datar
8+
%---------------------------------------------------------------------------------------------------
9+
% This script is used to plot the data generated by the
10+
% main_non_minimum_phase_example.m to produce Fig. 7 from the above paper
211
clear
312
clc
413
%% Convergence rate estimates for different multiplier

0 commit comments

Comments
 (0)