I need help understanding how the conversion explained in Problems with bode diagram (representing an image) is done.

Here it is explained that the transfer function is needed on a specific form, namely one that fits into one of the amp/phase functions as described within the bodegraph.sty package:

Also here is a link to the description of the package itself (OBS: contains french with minimal english)

My question herein lies, how would i convert the following 2nd order transfer function into something that bodegraph can take as an argument for plotting both the magnitude and phase.

Transfer function

Which has the following bodeplot

Bode plot

After trying myself by utilizing the following (taken from bodegraph package description)

Second order transform

I get the following parameters for my transfer function after normalization:


These parameters together with the following output from tikz produce the wrong bodeplot, i've tried using the same function as described in the first link, however i still find the output to be wrong.



    ref lines/.style={thin, blue!60},
    ref points/.style={circle, black, opacity=0.7, fill, minimum size= 3pt, inner sep=0},
    every node/.style={font=\small},
    bode lines/.style={very thick, blue},
    gnuplot def/.style={samples=50,id=\arabic{idGnuplot},prefix=gnuplot/\jobname },
    semilog lines/.style={thin, black!100},
    semilog lines 2/.style={thin, black!20, dashed},
    semilog half lines/.style={semilog lines 2, dashed },
    Black lines/.style={very thick, blue},
    Black grid/.style={ultra thin,brown},
    Black abaque mag/.style={gray,ultra thin,dashed,smooth},
    Black abaque phase/.style={gray,ultra thin,smooth},
    Black label points/.style={font=\tiny},
    Black label axes/.style={Black grid, font=\tiny},
    Nyquist lines/.style={very thick, blue},
    Nyquist grid/.style={ultra thin,brown},
    Nyquist label axes/.style={Nyquist grid,font=\tiny},
    Nyquist label points/.style={font=\tiny},
    Temp lines/.style={very thick, blue},
    Temp grid/.style={ultra thin,brown},
    Temp label axes/.style={Temp grid, font=\tiny},
    Temp label points/.style={font=\tiny},
    Abaque grid/.style={ultra thin,brown!80},
    Abaque lines/.style={thick, blue,smooth}
{ \SOArg{59.37351685}{1.538057009}{45.90206967}}


Which produces the following output

enter image description here

  • You can find the needed arguments by comparing your transfer function to the form in the question you are referring to. Do you know how to do this?
    – Karlo
    Apr 6, 2016 at 11:08
  • Not sure if it is helpful, but see also this question.
    – Karlo
    Apr 6, 2016 at 11:25
  • 1
    Thanks for the answer, i've already looked at that question and didnt really get a better clue. However i do think i've understood how i should compare the transfer functions after further reading, it would still be nice with some clarification however.
    – smazda
    Apr 6, 2016 at 11:54
  • Your first example is wrong, see the plot by WolframAlpha (Mathematica) (copy and paste all the link ======== wolframalpha.com/input/…*s%2Bs%5E2)%22&rawformassumption=%7B%22C%22,+%22bodeplot%22%7D+-%3E+%7B%22Formula%22%7D&rawformassumption=%7B%22MC%22,%22%22%7D-%3E%7B%22Formula%22%7D ========
    – rpapa
    Apr 6, 2016 at 17:51
  • the first example of the transfer function is the same type as the latter H (s) = (1 + s * 100) / (s ^ 2 * (1 + 10 * s)) ========== wolframalpha.com/input/…*s)%2F(s%5E2*(1%2B10*s))%22&rawformassumption=%7B%22C%22,+%22bodeplot%22%7D+-%3E+%7B%22Formula%22%7D&rawformassumption=%7B%22MC%22,%22%22%7D-%3E%7B%22Formula%22%7D ================
    – rpapa
    Apr 6, 2016 at 18:01


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.