encapsulated function bode import Modelica; import Modelica.ComplexMath; import Complex; import Modelica_LinearSystems2.Internal; import Modelica_LinearSystems2.TransferFunction; import Modelica_LinearSystems2.DiscreteTransferFunction; import Modelica_LinearSystems2.Utilities.Plot; import Modelica.Units.SI; input DiscreteTransferFunction dtf "DiscreteTransfer function to be plotted"; input Integer nPoints(min = 2) = 200 "Number of points"; input Boolean autoRange = true "True, if abszissa range is automatically determined"; input SI.Frequency f_min(min = 0) = 0.1 "Minimum frequency value, if autoRange = false" annotation( Dialog(enable = not autoRange)); input SI.Frequency f_max(min = 0) = 10 "Maximum frequency value, if autoRange = false" annotation( Dialog(enable = not autoRange)); input Boolean magnitude = true "= true, to plot the magnitude of tf" annotation( choices(checkBox = true)); input Boolean phase = true "= true, to plot the phase of tf" annotation( choices(checkBox = true)); extends Internal.PartialPlotFunction(defaultDiagram = Internal.DefaultDiagramBodePlot(heading = "Bode plot: " + String(dtf))); input Boolean Hz = true "= true, to plot abszissa in [Hz], otherwise in [rad/s] (= 2*pi*Hz)" annotation( choices(checkBox = true)); input Boolean dB = false "= true, to plot magnitude in [], otherwise in [dB] (=20*log10(value))" annotation( choices(checkBox = true), Dialog(enable = magnitude)); end bode;