DiscreteStateSpace.Plot.bodeSISO(dss) or DiscreteStateSpace.Plot.bodeSISO( dss, iu, iy, nPoints, autoRange, f_min, f_max, magnitude=true, phase=true, defaultDiagram=Modelica_LinearSystems2.Internal.DefaultDiagramBodePlot(), device=Modelica_LinearSystems2.Utilities.Plot.Records.Device() )
This function plots a bode-diagram of the transfer function corresponding to the behavior of the state space system from iu'th element of the input vector u to the iy'th element of the output vector y.
Modelica_LinearSystems2.DiscreteStateSpace dss=Modelica_LinearSystems2.DiscreteStateSpace(
A = [0.9048, 0.0, 0.0;
0.0, 0.8187, 0.0;
0.0, 0.0, 0.7408]
B = [0.0;
0.0906;
-0.0864],
C = [0.0, 1.0, 1.0],
D = [1.0],
B2 = [0.0;
0.0;
0.0],
Ts = 0.1);
Integer iu=1;
Integer iy=1;
algorithm
Modelica_LinearSystems2.DiscreteStateSpace.Plot.plotBodeSISO(dss, iu, iy)
// gives:
encapsulated function bodeSISO
import Modelica;
import Modelica_LinearSystems2;
import Modelica_LinearSystems2.DiscreteStateSpace;
import Modelica_LinearSystems2.DiscreteZerosAndPoles;
input DiscreteStateSpace dss "discrete state space system";
input Integer iu = 1 "index of input";
input Integer iy = 1 "index of output";
input Integer nPoints(min = 2) = 200 "Number of points";
input Boolean autoRange = true "True, if abszissa range is automatically determined";
input Modelica.Units.SI.Frequency f_min = 0.1 "Minimum frequency value, if autoRange = false";
input Modelica.Units.SI.Frequency f_max = 10 "Maximum frequency value, if autoRange = false";
input Boolean magnitude = true "= true, to plot the magnitude of dtf" annotation(
choices(checkBox = true));
input Boolean phase = true "= true, to plot the phase of tf" annotation(
choices(checkBox = true));
extends Modelica_LinearSystems2.Internal.PartialPlotFunction(defaultDiagram = Modelica_LinearSystems2.Internal.DefaultDiagramBodePlot());
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 bodeSISO;