How can I set linewidth directly in bode command?
165 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I can draw a bode plot as below
sys = tf(4,[1 0.5 4]);
figure(1), bode(sys), grid on;
Now, I would like to change some options in the Bode plot.
I can set the options through 'bodeoptions' as below.
sys = tf(4,[1 0.5 4]);
options = bodeoptions;
options.FreqUnits = 'Hz';
options.Title.FontSize = 14;
options.XLabel.FontSize = 14;
options.YLabel.FontSize = 14;
options.TickLabel.FontSize = 14;
figure(2), bode(sys, options), grid on;
But I can't find the option to set the linewidth of the bode plot.
How can I do that?
0 Commenti
Risposte (4)
Birdman
il 25 Mar 2020
You can try semilogx. See the following code:
sys=tf(4,[1 0.5 4]);
[mag,phase,wout] = bode(sys);
Mag=20*log10(mag(:));Phase=phase(:);
figure(1);semilogx(wout,Mag,'LineWidth',5);grid on;
figure(2);semilogx(wout,Phase,'LineWidth',1);grid on;
Star Strider
il 25 Mar 2020
It is possible to do this without getting the outputs from bode and doing separate plots, however it requires some fairly extensive ‘handle diving’:
sys = tf(4,[1 0.5 4]);
figure(1)
bode(sys)
grid
Fh = gcf; % Handle To Current Figure
Kids = Fh.Children; % Children
AxAll = findobj(Kids,'Type','Axes'); % Handles To Axes
Ax1 = AxAll(1); % First Set Of Axes
LinesAx1 = findobj(Ax1,'Type','Line'); % Handle To Lines
LinesAx1(2).LineWidth = 5; % Set ‘LineWidth’
Ax2 = AxAll(2); % Second Set Of Axes
LinesAx2 = findobj(Ax2,'Type','Line'); % Handle To Lines
LinesAx2(2).LineWidth = 5; % Set ‘LineWidth’
Experiment to get different results.
2 Commenti
Star Strider
il 26 Mar 2020
My pleasure.
This is the only way I am aware of to change the linewidths (or any other options) in the Control System Toolbox and System Identification Toolbox graphics functions.
Marcelo Moraes
il 17 Apr 2023
fig = gcf;
obj = findobj(fig,'Type','hggroup');
for idx = 1:numel(obj)
for jdx = 1:numel(obj(idx).Children)
obj(idx).Children(jdx).LineWidth = 2;
end
end
0 Commenti
Siddharth Jawahar
il 19 Giu 2024
Hello Byungkeuk,
Here is an example script to demonstrate how you can adjust the linewidth of a bode plot.
sys = tf([4, 1], [0.5, 4]); % Define the system transfer function
figure(1);
[mag,phase,wout] = bode(sys); % Store Bode plot data
h = bodeplot(sys); % Plot Bode diagram
grid on;
% Get the line handles
hline = findall(gcf, 'type', 'line');
% Set the linewidth
set(hline, 'LineWidth', 2); % Change 2 to your desired linewidth
Hope this helps,
Sid
0 Commenti
Vedere anche
Categorie
Scopri di più su Get Started with Control System Toolbox in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!