Mu Analysis and Synthesis Toolbox | ![]() ![]() |
Plot multiple VARYING matrices on the same graph
Syntax
vplot('plot_type',vmat1,vmat2,...) vplot('plot_type',vmat1,'linetype1',...) vplot('bode_l',top_axis_limits,bottom_axis_limits,vmat1,vmat2,...)
Description
The vplot
command calls the standard MATLAB plot
command for plotting. The optional plot_type
argument specifies the type of graph, and selects between the various logarithmic or linear graph types. The plot_type
specification choices are
If no plot_type
specification is given the default is 'iv,d'
.
The bode_l
and bode_gl
plot_type
specifications require that the second and third arguments are the desired axis limits for the top and bottom plots. These are simply the 1x 4 vectors to be used as arguments for the axis
command.
The remaining arguments of vplot
take the same form as the MATLAB plot
command. Line types (for example,'+', 'g-.', or '*r'
) can be optionally specified after any VARYING matrix argument.
There is a subtle distinction between CONSTANT and VARYING matrices with only one independent variable. A CONSTANT is treated as such across all independent variables, and consequently shows up as a line on any graph with the independent variable as an axis. A VARYING matrix with only one independent variable will always show up as a point. You may need to specify one of the more obvious point types in order to see
it (e.g
., '+'
, 'x
', etc.).
Examples
Two SISO second-order systems are created, and their frequency responses are calculated for each over different frequency ranges.
a1 = [-1,1;-1,-0.5]; b1 = [0;2]; c1 = [1,0]; d1 = 0; sys1 = pck(a1,b1,c1,d1); minfo(sys1) system:2 states1 outputs1 inputs a2 = [-.1,1;-1,-0.05]; b2 = [1;1]; c2 = [-0.5,0]; d2 = 0.1; sys2 = pck(a2,b2,c2,d2); minfo(sys2) system:2 states1 outputs1 inputs omega = logspace(-2,2,100); sys1_g = frsp(sys1,omega); omega2 = [ [0.05:0.1:1.5] [1.6:.5:20] [0.9:0.01:1.1] ]; omega2 = sort(omega2); sys2_g2 = frsp(sys2,omega2);
'liv,lm' plot_type
specification. Note that the CONSTANT matrix is see
n over all values of the independent variable. This is only true because it is displayed as a line type. If it were displayed as a point, then one would see
points only on each of the side axes. The single valued VARYING matrix (rspot)
is shown only at the appropriate independent variable value.
vplot('liv,lm',sys1_g,'b-.',[1+i;0.5-0.707*i],'g--',... rspot,'r*',sys2_g2); xlabel('log independent variable') ylabel('log magnitude') title('plot_type specification: liv,lm')
vplot
to select the type of axis uses for log magnitude and phase plots. The default is to plot the log magnitude on a base 10 scale and plot phase in radians. It is a simple modification to select a dB scale and phase in degrees. Documentation of the modification is provided in the M-file vplot
. You can copy the command vplot
to a private directory (for example, matlab/toolboxes/mu_cmds
on UNIX systems) and make the appropriate modifications.
Several control design plot functions are also provided. These are bode
, nic
, and nyq
, for Bode, Nichols, and Nyquist, respectively. The following three plots demonstrate each of these commands.
vplot
.
vplot('nic',sys1_g,'b-.',[1+i;0.5-0.707*i],'go',rspot,... rspot,'r*',sys2_g2); title('plot_type specification: nic') xlabel('phase (degrees)') ylabel('log magnitude (dB)') title('plot_type specification: nic (Nichols Chart)')
bode
, liv
, lm
, liv
, p
, etc. Again you can change this if required.
vplot('nyq',sys1_g,'b-.',[1+i;0.5-0.707*i],'go',rspot,... xlabel('nyquist diagram (real)') vplot('liv,lm',sys1_g,'b-.',[1+i;0.5-0.707*i],'g--',... rspot,'r*',sys2_g2); ylabel('imaginary') title('plot_type specification: nyq')
![]() | vpck, vunpck, var2con | vpoly, vroots | ![]() |