9/2/2017 Control Tutorials for MATLAB and Simulink - Extras: MATLAB Tips & Tricks
Tips Effects Search Control Tutorials
TIPS ABOUT BASICS HARDWARE INDEX NEXT
INTRODUCTION CRUISE CONTROL MOTOR SPEED
SYSTEM
MODELING Extras: MATLAB Tips & Tricks
ANALYSIS
Matlab and Simulink are remarkably powerful tools, and once you're familiar
with them, most tasks are for the most part straightforward and intuitive.
CONTROL
Recent versions of the software provide many usesful toolboxes and GUI
PID interfaces to simplify your work. However, there are still a few things that
can be tricky to accomplish. This page provides a list of helpful tips and
ROOT LOCUS
tricks that should come in handly as you work through these control tutorials
FREQUENCY and elsewhere.
STATE-SPACE
Contents
DIGITAL
Changing the Frequency Units on the Bode Plots
Getting Magnitude and Phase Data for a System
SIMULINK
Changing Font Size and Line Width in Figures
MODELING
CONTROL
Changing the Frequency Units on the Bode Plots
To change between Hertz (Hz) and radians per second (rad/s) on the bode
plot, use the following commands:
s = tf('s');
G = 1/(s+1);
options = bodeoptions;
options.FreqUnits = 'Hz'; % or 'rad/second', 'rpm', etc.
figure(1)
bode(G,options);
http://ctms.engin.umich.edu/CTMS/index.php?aux=Extras_Tips 1/4
9/2/2017 Control Tutorials for MATLAB and Simulink - Extras: MATLAB Tips & Tricks
Please refer to the Matlab help page on bodeoptions for more details and
optional parameters.
Getting Magnitude and Phase Data for a System
The Bode plot of a system, , shows the magnitude, (in dB), and
phase (degrees) over a range of fregencies. Often it is neccesary
to access this frequency response data directly, which is accomplished
easily using the following commands:
win = logspace(-2,2,5)
[mag,phase,wout] = bode(G,win);
size(wout)
size(mag)
size(phase)
win =
0.0100 0.1000 1.0000 10.0000 100.0000
ans =
5 1
ans =
1 1 5
ans =
1 1 5
where win is the input frequency vector in rad/s, mag is the magnitude in
absolute units (i.e. not in dB), phase is the phase in degrees, and wout is
the output frequencies at which the response was evaulated, useful for
http://ctms.engin.umich.edu/CTMS/index.php?aux=Extras_Tips 2/4
9/2/2017 Control Tutorials for MATLAB and Simulink - Extras: MATLAB Tips & Tricks
instance if you let MATLAB automatically choose the frequency vector by
specifying only the range, win = {wmin, wmax}.
You'll notice that though wout is a standard (n x 1) column vector, the
magnitude and phase are actually (1 x 1 x n). This is because the bode
command accepts transfer function matrices in which case the (i,j,k)
element of magnitude and phase corresponds to the jth input and ith output.
For the SISO systems we most often encounter, i = j =1, these singleton
dimensions are an inconvenience for matrix operatione, etc. Fortunately
MATLAB offers the function, squeeze, to fix just this problem:
mag = squeeze(mag)
phase = squeeze(phase)
mag =
1.0000
0.9950
0.7071
0.0995
0.0100
phase =
-0.5729
-5.7106
-45.0000
-84.2894
-89.4271
Changing Font Size and Line Width in Figures
MATLAB is a wonderful tool for visualizing data and generating figures for
papers and presentations; however, the default appearance of these figures
is not always sufficient for your needs. Fortunately, MATLAB allows you to
change nearly every property of the figure to your liking. Here we
demonstrate two possible changes that are commonly required.
To change the font size of all text in a figure (titles, axis labels, legends,
etc.) we need to search for all axes and text objects using findall and
change their properties using set. This is the easiest way since figures may
containt multiple axes, e.g. bode, each with their own font size properties
and furthermore MATLAB handles titles and axes labels separately from tick
marks. Changing line width is treated in a similar fashion, and other
properties (e.g. color) can be changed at the same time as shown:
http://ctms.engin.umich.edu/CTMS/index.php?aux=Extras_Tips 3/4
9/2/2017 Control Tutorials for MATLAB and Simulink - Extras: MATLAB Tips & Tricks
figure(2)
bode(G)
% Set title, axes labels, and legend font size
set(findall(gcf,'Type','text'),'FontSize',11)
% Set data line width and color
set(findall(gcf,'Type','line'),'LineWidth',2,'Color','red')
% Set axes tick label font size, color, and line width
set(findall(gcf,'Type','axes'),'FontSize',11,'LineWidth',2,'XColor'
Please refer to the following pages to see all properties that can be modified
for figures and axes.
Published with MATLAB 7.14
All contents licensed under a Creative Commons Attribution-ShareAlike 4.0
International License.
http://ctms.engin.umich.edu/CTMS/index.php?aux=Extras_Tips 4/4