Filter löschen
Filter löschen

Add reference line to a Bode Plot

46 Ansichten (letzte 30 Tage)
Leandro  Cavalheiro
Leandro Cavalheiro am 21 Dez. 2017
Kommentiert: am am 25 Feb. 2021
Greetings!
I used the command
h = bodeplot(Gol,{0.1 0.5});
to plot Bode diagrams (Magnitude x Frequency and Phase Angle x Frequency) to analyze the stability of the closed-loop system. Hence, I need to draw a horizontal reference line at y = 1 on the first graph (Mag. x Freq.) so as to find out if my system stable or not.
How do I do that? Were it a simple plot, I'd use refline but it doesn't work for the bodeplot function, since it generates two plots (like subplot(2,1,1) and subplot(2,1,2)). Thank you.

Akzeptierte Antwort

Star Strider
Star Strider am 21 Dez. 2017
It is not worthwhile to attempt to do anything with the plots that bode and most — if not all — of the other Control System Toolbox plots. They do not allow modifications.
Instead, get the outputs from the bode function:
[mag,phase,wout] = bode(sys);
and plot them using subplot. Remember to use the squeeze command to remove singleton dimensions from the ‘mag’ and ‘phase’ results for simple models.
  2 Kommentare
Leandro  Cavalheiro
Leandro Cavalheiro am 23 Dez. 2017
Thanks. I'll try that.
Star Strider
Star Strider am 24 Dez. 2017
It will work.
Remember to use semilogx for the subplots, and 20*log10(mag) for the y-axis of the magnitude plot.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Rick Giovanini
Rick Giovanini am 28 Mär. 2018
Bearbeitet: Rick Giovanini am 28 Mär. 2018
check this out. Bodes want LTI - Linear Time invariant objects. You can plot many bode's on one plot if you have many LTI objects. What's the LTI transfer function of a horizontal line? Well it's simply
k*tf([1],[1]), where k is the y value I desire. In other works, k*(1/1), or k. We know it's just k that we want, but matlab wants a transfer function.
so, if I want my bode with some horizontal lines, simply do...
bode(mybode, yourbode, NowIfWe_reTalkingBodes_YouGotAPerfectOneSoPutItOnMe, k*tf([1],[1]), r*tf([1],[1]), s*tf([1],[1]))
which simply produces some bodes and lines at y=k, r, and s.
First ever post. Like if it helps you.
  2 Kommentare
Mirza  Sajjad Hussain
Mirza Sajjad Hussain am 14 Mär. 2019
very thanks
am
am am 25 Feb. 2021
Lol @Rick Giovanini, thanks it helped!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Plot Customization finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by