Change just the ylims of the Magnitude plot from the bode TF
26 views (last 30 days)
Show older comments
monkey_matlab
on 19 Jan 2016
Commented: Leslie Lamontagne
on 5 Apr 2023
Hello,
I am trying to change the ylims of just the magnitude of the bode TF plot but I get the error "Undefined function 'getoptions' for input arguments of type 'tf'. Can you help me change the ylims of just the magnitude response? Thanks. Here is what I have so far:
w=100;
e=0.3;
lgspA = logspace(0,5,1000);
num=[2*w*e (w^2)];
den=[1 2*w*e (w^2)];
test_sys1=1-tf(num,den);
[MAG,PHASE,W] = bode(test_sys1, lgspA);
W1 = W;
MAG1 = 20*log10(squeeze(MAG));
e=0.5;
num=[2*w*e (w^2)];
den=[1 2*w*e (w^2)];
test_sys2=1-tf(num,den);
[MAG,PHASE,W] = bode(test_sys2, lgspA);
W2 = W;
MAG2 = 20*log10(squeeze(MAG));
bode(test_sys1,test_sys2);
ylims = getoptions(test_sys1,'YLim'); % size of ylims for this plot will be 2x1 (mag; phase);
ylims{1} = [-60,10];
setoptions(test_sys1,'YLimMode','manual','YLim',ylims)
legend('e=0.3','e=0.5');
0 Comments
Accepted Answer
Star Strider
on 19 Jan 2016
Use the bodeplot function instead of bode. It will allow you to use the setoptions function.
0 Comments
More Answers (1)
Martin Hartenberger
on 7 Sep 2021
Edited: Martin Hartenberger
on 7 Sep 2021
You have to first search for all the axes objects in the figure. The third one is the axis of the magnitude plot. After setting this axis as your current one, you can edit the axis limits with ylim and xlim:
G = tf(1,[1,0]);
f1 = bode(G);
axes_handles = findall(f1, 'type', 'axes');
axes(axes_handles(3))
ylim([-60,5])
1 Comment
Leslie Lamontagne
on 5 Apr 2023
This method also works when using the margin function to plot bode. Thanks!
See Also
Categories
Find more on Response Computation and Visualization in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!