nicholschart Nichols chart

## Syntax

                sh = nicholschart(modules)
                sh = nicholschart(modules, args)
                sh = nicholschart(modules, args, colors)

## Arguments

modules
  vector of real numbers: modules (in dB). Default values:

  `[-30:-10:Modmin -20 -15 -12 -9 -6 -3 -2 -1 -.5 -0.2 -0.1 0 0.1 0.2 0.5 1 2 3 6 12]`

args
  vector of real numbers: phases (in degree). Default values:

  `-[1 2 5 10 20 30 50 70 90 120 140 160 180]°`

colors
  vector of 1 or 2 components specifying the colors of the isogain and isophase sets of curves. If a single color is provided, it is used for both gains and phases. colors may be specified either
  - by indices in the color map.
  - named colors among the predefined ones.
  - "#RRGGBB" hexadecimal case-insensitive strings starting with "#", like "#FA7B35".
  - A 1x3 or 2x3 matrix of [r g b] intensities such that 0 <= r,g,b <= 1.

sh
  Structure with 3 fields:
  - `.phaseLines`: vector of handles of isophase lines. `.phaseLines(i)` is the line for `args(i)`.
  - `.gainLines`: vector of handles of isogain lines. `.gainLines(i)` is the line for `modules(i)`.
  - `.gainLabels`: vector of handles of isogain labels. `.gainLabels(i)` is the label for `modules(i)`.

## Description

plot the Nichols'chart: iso-module and iso-argument contours of `y/(1+y)` in `y` phase/gain plane.

`nicholschart` may be used in conjunction with black.

To use the default value of an input argument, just skip it, as in `nicholschart(modules,,colors)`.

## Examples

        //Nichols chart
        clf
        subplot(1,2,1)
        nicholschart();
        subplot(1,2,2)
        mod = [-35:5:-10 -6 -3 -1 -0.2 1 2 3 6];
        nicholschart(mod, -[1 20 40 80 160 180],["khaki" "paleturquoise"]);

clf subplot(1,2,1) nicholschart() subplot(1,2,2) mod = [-35:5:-10 -6 -3 -1 -0.2 1 2 3 6]; nicholschart(mod, -[1 20 40 80 160 180],["khaki" "paleturquoise"]); gcf().axes_size = [700 350];

        //Black diagram with Nichols chart as a grid
        s = poly(0,'s');
        Plant = syslin('c',16000/((s+1)*(s+10)*(s+100)));

        //two degree of freedom PID
        tau = 0.2;
        xsi = 1.2;
        PID = syslin('c',(1/(2*xsi*tau*s))*(1+2*xsi*tau*s+tau^2*s^2));
        clf
        black([Plant;Plant*PID ],0.01,100,["Plant";"Plant and PID corrector"]);

        //move the caption in the lower right corner
        gca().children(1).legend_location="in_lower_right";

        // Add the Nichols frame and tune its labels color
        h = nicholschart(,,'wheat');
        h.gainLabels.font_foreground = color("orange");

//Black diagram with Nichols chart as a grid s = poly(0,'s'); Plant = syslin('c',16000/((s+1)*(s+10)*(s+100))); //two degree of freedom PID tau = 0.2; xsi = 1.2; PID = syslin('c',(1/(2*xsi*tau*s))*(1+2*xsi*tau*s+tau^2*s^2)); clf black([Plant;Plant*PID ],0.01,100,["Plant";"Plant and PID corrector"]); //move the caption in the lower right corner gca().children(1).legend_location="in_lower_right"; h = nicholschart(,,'wheat'); h.gainLabels.font_foreground = color("orange");

## See also

- hallchart
- sgrid
- zgrid
- bode
- black
- nyquist
- svplot
- color_list

## History

5.5.0 Syntax allowed: nicholschart(gains, phases, colors).
6.1.0

- The default frames color is now grey85 instead of cyan.
- Colors may now be specified by their Scilab names or their "#RRGGBB" hexadecimal code.
- Output argument `sh` added.