how to plot multiple bode plots in one figure ?

107 views (last 30 days)
Hi,
I am using matlab/simulink 2012. Is there any way to plotting several bode diagrams into same figure. For example i have system with parameters and i am using generating gain in matlab file and using this gain in simulink model. I do a bode plot for parameters and then i changes some parameters in matlab file again generating gain and again do bode plot using bode block in simulink.
but for comparison reasons i would like those two plots in same figure. how should i do this ?
Thank you
  1 Comment
Bal Krishna Poudel
Bal Krishna Poudel on 3 May 2015
Edited: Bal Krishna Poudel on 3 May 2015
Hi Aniket,
Each time when you simulate the frequency response in simulink using linearization tool, systems named linsys1, linsys2, linsys3 etc. will be created in the linear analysis workspace. Simply drag these systems in to the MATLAB workspace located just above the linear analysis tool. Then, go to the command window and write;
bode(linsys1); hold on; bode(linsys2); hold on; bode(linsys3); and so on.
you will get bode plot of all the systems(linsys1, linsys2, linsys3 etc.) in the same axes.

Sign in to comment.

Accepted Answer

Arkadiy Turevskiy
Arkadiy Turevskiy on 25 Apr 2013
When you open the dialog for Bode Plot block, the third tab, called "logging" lets you save the linear system into MATLAB workspace.
Once you have the system in MATLAB workspace you can just use bode command to plot multiple systems on the same plot, i.e.,
bode(sys1),
hold on;
bode(sys2,'r');
  2 Comments
Aniket
Aniket on 25 Apr 2013
I have done as you are saying but its showing me error of "not enough arguments" and the at matlab workspace when i am saving data its saving in structure format and it contains time , values and block name.
for error i have tried to give arguments like frequency ,
so i declare frequency
w = 2*pi*(0:500)
bode (sys1,w)
but this also gives me error
""Invalid syntax for the "tf" command. Type "help tf" for more information.
Error in bode (line 96) sys = tf(a,b);""
my model is follwing blocks
Arkadiy Turevskiy
Arkadiy Turevskiy on 26 Apr 2013
For the model you get from Simulink you need to do
bode(sys.values)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!