Borrar filtros
Borrar filtros

Add reference line to a Bode Plot

46 visualizaciones (últimos 30 días)
Leandro  Cavalheiro
Leandro Cavalheiro el 21 de Dic. de 2017
Comentada: am el 25 de Feb. de 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.

Respuesta aceptada

Star Strider
Star Strider el 21 de Dic. de 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 comentarios
Leandro  Cavalheiro
Leandro Cavalheiro el 23 de Dic. de 2017
Thanks. I'll try that.
Star Strider
Star Strider el 24 de Dic. de 2017
It will work.
Remember to use semilogx for the subplots, and 20*log10(mag) for the y-axis of the magnitude plot.

Iniciar sesión para comentar.

Más respuestas (1)

Rick Giovanini
Rick Giovanini el 28 de Mzo. de 2018
Editada: Rick Giovanini el 28 de Mzo. de 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 comentarios
Mirza  Sajjad Hussain
Mirza Sajjad Hussain el 14 de Mzo. de 2019
very thanks
am
am el 25 de Feb. de 2021
Lol @Rick Giovanini, thanks it helped!

Iniciar sesión para comentar.

Categorías

Más información sobre Plot Customization en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by