TransferFunction.Plot.polesAndZeros(tf); or TransferFunction.Plot.polesAndZeros( tf, poles=true, zeros=true, plot=true, defaultDiagram=Modelica_LinearSystems2.Internal.DefaultDiagramPolesAndZeros(), device=Modelica_LinearSystems2.Utilities.Plot.Records.Device());
This function plots a pole-zero-map of the poles and zeros of a transfer function. The Boolean inputs "poles" and "zeros" define what to plot. If Boolean input "plot = true", the pole-zero-map is plotted. If false, only the diagram is generated and returned as output argument. The records "defaultDiagram" and "device" allow to set various layout options and the size and location of the diagram on the screen.
The example Modelica_LinearSystems2.Examples.TransferFunction.plotPolesAndZeros defines two transfer functions. The second one is defined as:
TransferFunction s = TransferFunction.s(); TransferFunction tf2 = (s^3 + 4*s + 1)/(s^4 + 2*s^3 + 3*s^2 + 4*s); Modelica_LinearSystems2.TransferFunction.Plot.polesAndZeros( tf=tf2, defaultDiagram=Modelica_LinearSystems2.Internal.DefaultDiagramPolesAndZeros( heading="Poles and zeros of " + String(tf2)));
and results in
encapsulated function polesAndZeros import Modelica; import Modelica_LinearSystems2; import Modelica_LinearSystems2.StateSpace; import Modelica_LinearSystems2.TransferFunction; import Modelica_LinearSystems2.Utilities.Plot; input TransferFunction tf "Linear system in transfer function form"; input Boolean poles = true "= true, to plot the poles of tf" annotation( choices(checkBox = true)); input Boolean zeros = true "= true, to plot the zeros of tf" annotation( choices(checkBox = true)); extends Modelica_LinearSystems2.Internal.PartialPlotFunction(defaultDiagram = Modelica_LinearSystems2.Internal.DefaultDiagramPolesAndZeros()); end polesAndZeros;