Compute or plot sector index as function of frequency
the relative sector indices for the dynamic system
a given sector matrix
Q. These indices measure
by how much the sector bound is satisfied (index less than 1) or violated
(index greater than 1) at a given frequency. (See About Sector Bounds and Sector Indices for
more information about the meaning of the sector index.)
chooses the frequency range and number of points based on the dynamics
Let the following be an orthogonal decomposition of the symmetric
Q into its positive and negative parts.
The sector index plot is only meaningful if has a proper stable inverse. In that case, the sector indices are the singular values of:
H is a model with complex coefficients, then
Log frequency scale, the plot shows two branches, one for positive frequencies and one for negative frequencies. The arrows indicate the direction of increasing frequency values for each branch.
Linear frequency scale, the plot shows a single branch with a symmetric frequency range centered at a frequency value of zero.
wis a cell array of the form
sectorplotplots the sector index at frequencies ranging between
wis a vector of frequencies, then
sectorplotplots the sector index at each specified frequency. The vector
wcan contain both negative and positive frequencies.
plots the sector index with the options set specified in
plotoptions. You can use these options to customize the
plot appearance using the command line. Settings you specify in
plotoptions override the preference settings in the
MATLAB® session in which you run
this syntax is useful when you want to write a script to generate multiple plots
that look the same regardless of the local preferences.
Plot Sector Index Versus Frequency
Plot the sector index to visualize the frequencies at which the I/O trajectories of lie within the sector defined by:
In U/Y space, this sector is the shaded region of the following diagram.
The Q matrix for this sector is given by:
a = 0.1; b = 10; Q = [1 -(a+b)/2 ; -(a+b)/2 a*b];
A trajectory lies within the sector S when for all T > 0,
In the frequency domain, this same condition can be expressed as:
To check whether
G satisfies or violates this condition at any frequency, plot the sector index for
H = [G;1].
G = tf([1 2],[1 1]); sectorplot([G;1],Q)
The plot shows that the sector index is less than 1 at all frequencies. Therefore, the trajectories of G(s) fit within in the specified sector Q at all frequencies.
Sector Plot with MIMO System
Examine the sector plot of a 2-output, 2-input system for a particular sector. Load the system,
H1, and define the sector,
load("sectorExampleSystem.mat","H1") Q = [-5.12 2.16 -2.04 2.17 2.16 -1.22 -0.28 -1.11 -2.04 -0.28 -3.35 0.00 2.17 -1.11 0.00 0.18];
Create the plot.
H is 2-by-2, there are two lines on the sector plot. The largest value of the sector index exceeds 1 below about 0.5 rad/s and in a narrow band around 3 rad/s. Therefore,
H does not satisfy the sector bound represented by
Plot Sector Index of Model with Complex Coefficients
Plot the relative sector indices of a model with complex coefficients and a model with real coefficients on the same plot.
A = [-3.50,-1.25-0.25i;2,0]; B = [1;0]; C = [-0.75-0.5i,0.625-0.125i]; D = 0.5; Hc = [ss(A,B,C,D);1]; % create system with complex coefficients load("sectorExampleSystem.mat","Hr") % load system with real coefficients Q = [1 0.1;0.1 -1]; sectorplot(Hc,Hr,Q) legend('Complex-coefficient model','Real-coefficient model','Location','southwest')
In log frequency scale, the plot shows two branches for models with complex coefficients, one for positive frequencies, with a right-pointing arrow, and one for negative frequencies, with a left-pointing arrow. In both branches, the arrows indicate the direction of increasing frequencies. The plots for models with real coefficients always contain a single branch with no arrows.
Set the plotting frequency scale to linear.
opt = sectorplotoptions; opt.FreqScale = 'Linear';
Plot the indices.
sectorplot(Hc,Hr,Q,opt) legend('Complex-coefficient model','Real-coefficient model','Location','southwest')
In linear frequency scale, the plots show a single branch with a symmetric frequency range centered at a frequency value of zero. The plot also shows the negative-frequency response of a model with real coefficients when you plot the response along with a model with complex coefficients.
H — Model to analyze
dynamic system model | model array
Model to analyze against sector bounds, specified as a dynamic
system model such as a
H can be continuous or discrete. If
H is a generalized model with tunable or uncertain
sectorplot analyzes the current, nominal value
To analyze whether all I/O trajectories (u(t),y(t) of a linear system G lie in a
particular sector, use
H = [G;I], where
nu is the number of inputs of
H is a model array, then
sectorplot plots the sector index of all models in
the array on the same plot. When you use output arguments to get
H must be a single model.
plotoptions — Sector index plot options set
Sector index plot options set, specified as a
SectorPlotOptions object. You can use this option set
to customize the plot appearance. Use
sectorplotoptions to create the option set. Settings you
plotoptions overrides the preference
settings in the MATLAB session in which you run
plotoptions is useful when you want to write
a script to generate multiple plots that look the same regardless of the
For the list of available options, see
index — Sector indices
Sector indices as a function of frequency, returned as a matrix.
the sector indices computed at the frequencies
you supplied them, or
wout if you did not.
as many columns as there are values in
and as many rows as
H has inputs. Thus the value
the sector indices in descending order at the frequency
For example, suppose that
G is a 3-input,
Q is a suitable sector matrix,
w is a 1-by-30 vector of frequencies, then
the following syntax returns a 3-by-30 matrix
H = [G;eyes(3)] index = sectorplot(H,Q,w);
index(:,k) contains the three sector
H, in descending order, at the frequency
For more information, see About Sector Bounds and Sector Indices.
Introduced in R2016a