주요 콘텐츠

iopzplot

Plot pole-zero map for input-output pairs of dynamic system

    Description

    The iopzplot function plots the pole-zero map for input-output pairs of a dynamic system model. To customize the plot, you can return an IOPZPlot object and modify it using dot notation. For more information, see Customize Linear Analysis Plots at Command Line (Control System Toolbox).

    To obtain pole and zero locations, use the iopzmap function.

    iopzplot(sys) plots the poles and zeros of each input/output pair of the dynamic system model sys. In the plot, x and o represent poles and zeros, respectively.

    example

    iopzplot(sys1,sys2,...,sysN) displays the poles and zeros of multiple models on a single plot.

    example

    iopzplot(sys1,ColorSpec1,...,sysN,ColorSpecN) sets the line style, marker type, and color for the plot of each system.

    example

    iopzplot(___,plotoptions) plots the poles and zeros with the plotting options specified in plotoptions. Settings you specify in plotoptions override the plotting preferences for the current MATLAB® session. You can use plotoptions with any of the input argument combinations in previous syntaxes.

    example

    iopzplot(___,Name=Value) specifies response properties using one or more name-value arguments. For example, iopzplot(sys,MarkerSize=10) sets the pole and zero marker sizes to 10. (since R2026a)

    When plotting responses for multiple systems, the specified name-value arguments apply to all responses.

    The Color name-value argument overrides specified using the ColorSpec argument.

    iopzplot(parent,___) plots the poles and zeros in the specified parent graphics container, such as a Figure or TiledChartLayout, and sets the Parent property. Use this syntax when you want to create a plot in a specified open figure or when creating apps in App Designer.

    iopzp = iopzplot(___) plots the plots and zeros and returns the corresponding chart object. To customize the appearance and behavior of the response plot, modify the chart object properties using dot notation.

    Examples

    collapse all

    Create a pole/zero map of a two-input, two-output dynamic system.

    sys = rss(3,2,2);
    ip = iopzplot(sys);

    MATLAB figure

    By default, the plot displays the poles and zeros of each I/O pair on its own axis. Modify the chart object to view all I/Os on a single axis.

    ip.IOGrouping = "all";

    MATLAB figure

    View the poles and zeros of a sixth-order state-space model estimated from input-output data. Use the plot handle to display the confidence intervals of the identified model's pole and zero locations.

    load iddata1
    sys = ssest(z1,6,ssestOptions('focus','simulation'));
    h = iopzplot(sys);
    showConfidence(h)

    MATLAB figure

    There is at least one pair of complex-conjugate poles whose locations overlap with those of a complex zero, within the 1-σ confidence region. This suggests their redundancy. Hence, a lower (4th) order model might be more robust for the given data.

    sys2 = ssest(z1,4,ssestOptions('focus','simulation'));
    h = iopzplot(sys,sys2);
    showConfidence(h)
    legend('6th-order','4th-order')
    axis([-20, 10 -30 30])

    MATLAB figure

    The fourth-order model sys2 shows less variability in the pole-zero locations.

    Input Arguments

    collapse all

    Dynamic system, specified as a SISO or MIMO dynamic system model or array of dynamic system models. You can use these types of dynamic systems:

    • Continuous-time or discrete-time numeric LTI models, such as tf (Control System Toolbox), zpk (Control System Toolbox), or ss (Control System Toolbox) models.

    • Sparse state-space models, such as sparss (Control System Toolbox) or mechss (Control System Toolbox) models.

    • Generalized or uncertain LTI models such as genss (Control System Toolbox) or uss (Robust Control Toolbox) models. Using uncertain models requires Robust Control Toolbox™ software.

      • For tunable control design blocks, the function evaluates the model at its current value to plot the response.

      • For uncertain control design blocks, the function plots the nominal value and random samples of the model.

    • Identified LTI models, such as idtf, idss, or idproc models.

    If sys is an array of models, the plot shows responses of all models in the array on the same axes.

    Color, specified as one of the following values.

    ColorDescription
    "r"red
    "g"green
    "b"blue
    "c"cyan
    "m"magenta
    "y"yellow
    "k"black
    "w"white

    Pole-zero plot options, specified as a pzoptions object. You can use these options to customize the PZ plot appearance. Settings you specify in plotoptions override the preference settings for the current MATLAB session.

    Parent graphics container, specified as one of these objects:

    • Figure

    • TiledChartLayout

    • UIFigure

    • UIGridLayout

    • UIPanel

    • UITab

    Name-Value Arguments

    collapse all

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Example: iopzplot(sys,LegendDisplay="off") hides the response of sys from the plot legend.

    Response name, specified as a string or character vector and stored as a string.

    Response visibility, specified as one of these logical on/off values:

    • "on", 1, or true — Display the response in the plot.

    • "off", 0, or false — Do not display the response in the plot.

    The value is stored as an on/off logical value of type matlab.lang.OnOffSwitchState.

    Option to list the response in the legend, specified as one of these logical on/off values:

    • "on", 1, or true — List the response in the legend.

    • "off", 0, or false — Do not list the response in the legend.

    The value is stored as an on/off logical value of type matlab.lang.OnOffSwitchState.

    Plot color, specified as an RGB triplet or a hexadecimal color code and stored as an RGB triplet. Specifying a color using a name-value argument overrides any color that you specify using LineSpec.

    You can also specify some common colors by name. This table lists these colors and their corresponding RGB triplets and hexadecimal color codes.

    Color NameRGB TripletHexadecimal Color Code

    "red" or "r"

    [1 0 0]#FF0000

    "green" or "g"

    [0 1 0]#00FF00

    "blue" or "b"

    [0 0 1]#0000FF

    "cyan" or "c"

    [0 1 1]#00FFFF

    "magenta" or "m"

    [1 0 1]#FF00FF

    "yellow" or "y"

    [1 1 0]#FFFF00

    "black" or "k"

    [0 0 0]#000000

    "white" or "w"

    [1 1 1]#FFFFFF

    Marker size, specified as a positive scalar.

    Line width, specified as a positive scalar.

    Series index, specified as a positive integer or "none".

    By default, the SeriesIndex property is a number that corresponds to the order in which the response was added to the chart, starting at 1. MATLAB uses the number to calculate indices for automatically assigning color, line style, or markers for responses. Any responses in the chart that have the same SeriesIndex number also have the same color, line style, and markers.

    A SeriesIndex value of "none" indicates that a response does not participate in the indexing scheme.

    Output Arguments

    collapse all

    Chart object, returned as a IOPZPlot object. To customize your plot appearance and behavior, modify the properties of this object using dot notation. For more information, see IOPZPlot Properties (Control System Toolbox).

    More About

    collapse all

    Tips

    • Plots created using iopzplot do not support multiline titles or labels specified as string arrays or cell arrays of character vectors. To specify multiline titles and labels, use a single string with a newline character.

      iopzplot(sys)
      title("first line" + newline + "second line");

    Version History

    Introduced in R2012a

    expand all