Rename Matlab files
This commit is contained in:
1 parent
7f03d4c2ac
commit
2fc62f5deb
11 files changed
No files matched your search
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,39 @@
|
||||
function [W] = createWeight(args)
|
||||
% createWeight -
|
||||
%
|
||||
% Syntax: [in_data] = createWeight(in_data)
|
||||
%
|
||||
% Inputs:
|
||||
% - n - Weight Order
|
||||
% - G0 - Low frequency Gain
|
||||
% - G1 - High frequency Gain
|
||||
% - Gc - Gain of W at frequency w0
|
||||
% - w0 - Frequency at which |W(j w0)| = Gc
|
||||
%
|
||||
% Outputs:
|
||||
% - W - Generated Weight
|
||||
|
||||
arguments
|
||||
args.n (1,1) double {mustBeInteger, mustBePositive} = 1
|
||||
args.G0 (1,1) double {mustBeNumeric, mustBePositive} = 0.1
|
||||
args.G1 (1,1) double {mustBeNumeric, mustBePositive} = 10
|
||||
args.Gc (1,1) double {mustBeNumeric, mustBePositive} = 1
|
||||
args.w0 (1,1) double {mustBeNumeric, mustBePositive} = 1
|
||||
end
|
||||
|
||||
mustBeBetween(args.G0, args.Gc, args.G1);
|
||||
|
||||
s = tf('s');
|
||||
|
||||
W = (((1/args.w0)*sqrt((1-(args.G0/args.Gc)^(2/args.n))/(1-(args.Gc/args.G1)^(2/args.n)))*s + (args.G0/args.Gc)^(1/args.n))/((1/args.G1)^(1/args.n)*(1/args.w0)*sqrt((1-(args.G0/args.Gc)^(2/args.n))/(1-(args.Gc/args.G1)^(2/args.n)))*s + (1/args.Gc)^(1/args.n)))^args.n;
|
||||
|
||||
end
|
||||
|
||||
% Custom validation function
|
||||
function mustBeBetween(a,b,c)
|
||||
if ~((a > b && b > c) || (c > b && b > a))
|
||||
eid = 'createWeight:inputError';
|
||||
msg = 'Gc should be between G0 and G1.';
|
||||
throwAsCaller(MException(eid,msg))
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,38 @@
|
||||
function [p] = plotMagUncertainty(W, freqs, args)
|
||||
% plotMagUncertainty -
|
||||
%
|
||||
% Syntax: [p] = plotMagUncertainty(W, freqs, args)
|
||||
%
|
||||
% Inputs:
|
||||
% - W - Multiplicative Uncertainty Weight
|
||||
% - freqs - Frequency Vector [Hz]
|
||||
% - args - Optional Arguments:
|
||||
% - G
|
||||
% - color_i
|
||||
% - opacity
|
||||
%
|
||||
% Outputs:
|
||||
% - p - Plot Handle
|
||||
|
||||
arguments
|
||||
W
|
||||
freqs double {mustBeNumeric, mustBeNonnegative}
|
||||
args.G = tf(1)
|
||||
args.color_i (1,1) double {mustBeInteger, mustBePositive} = 1
|
||||
args.opacity (1,1) double {mustBeNumeric, mustBeNonnegative} = 0.3
|
||||
args.DisplayName char = ''
|
||||
end
|
||||
|
||||
% Get defaults colors
|
||||
colors = get(groot, 'defaultAxesColorOrder');
|
||||
|
||||
p = patch([freqs flip(freqs)], ...
|
||||
[abs(squeeze(freqresp(args.G, freqs, 'Hz'))).*(1 + abs(squeeze(freqresp(W, freqs, 'Hz')))); ...
|
||||
flip(abs(squeeze(freqresp(args.G, freqs, 'Hz'))).*max(1 - abs(squeeze(freqresp(W, freqs, 'Hz'))), 1e-6))], 'w', ...
|
||||
'DisplayName', args.DisplayName);
|
||||
|
||||
p.FaceColor = colors(args.color_i, :);
|
||||
p.EdgeColor = 'none';
|
||||
p.FaceAlpha = args.opacity;
|
||||
|
||||
end
|
||||
@@ -0,0 +1,43 @@
|
||||
function [p] = plotPhaseUncertainty(W, freqs, args)
|
||||
% plotPhaseUncertainty -
|
||||
%
|
||||
% Syntax: [p] = plotPhaseUncertainty(W, freqs, args)
|
||||
%
|
||||
% Inputs:
|
||||
% - W - Multiplicative Uncertainty Weight
|
||||
% - freqs - Frequency Vector [Hz]
|
||||
% - args - Optional Arguments:
|
||||
% - G
|
||||
% - color_i
|
||||
% - opacity
|
||||
%
|
||||
% Outputs:
|
||||
% - p - Plot Handle
|
||||
|
||||
arguments
|
||||
W
|
||||
freqs double {mustBeNumeric, mustBeNonnegative}
|
||||
args.G = tf(1)
|
||||
args.color_i (1,1) double {mustBeInteger, mustBePositive} = 1
|
||||
args.opacity (1,1) double {mustBeNumeric, mustBePositive} = 0.3
|
||||
args.DisplayName char = ''
|
||||
end
|
||||
|
||||
% Get defaults colors
|
||||
colors = get(groot, 'defaultAxesColorOrder');
|
||||
|
||||
% Compute Phase Uncertainty
|
||||
Dphi = 180/pi*asin(abs(squeeze(freqresp(W, freqs, 'Hz'))));
|
||||
Dphi(abs(squeeze(freqresp(W, freqs, 'Hz'))) > 1) = 360;
|
||||
|
||||
% Compute Plant Phase
|
||||
G_ang = 180/pi*angle(squeeze(freqresp(args.G, freqs, 'Hz')));
|
||||
|
||||
p = patch([freqs flip(freqs)], [G_ang+Dphi; flip(G_ang-Dphi)], 'w', ...
|
||||
'DisplayName', args.DisplayName);
|
||||
|
||||
p.FaceColor = colors(args.color_i, :);
|
||||
p.EdgeColor = 'none';
|
||||
p.FaceAlpha = args.opacity;
|
||||
|
||||
end
|
||||
Reference in new issue
Block a user