Clear Filters
Clear Filters

Plot Specific Points on Nichols Chart

6 views (last 30 days)
I am currently trying to plot specfic points onto a Nichols chart so that I can find the limit cycle for the original system.
The gain and phase co-ords have been included below:
I am trying to add these to this Nichols plot:
Any help would be appreciated.
  2 Comments
Dyuman Joshi
Dyuman Joshi on 2 Apr 2024
Use hold on and add points. Works with both nichols and nicholsplot.
What seems to be the problem/issue?
Amaan Mahmood
Amaan Mahmood on 2 Apr 2024
Edited: Amaan Mahmood on 2 Apr 2024
I've been trying to plot these co-ordinates using the nichols and nicholsplot function but I cannot seem to make it work. I've used the hold command with little success. I've attached the code I've been using, it gets them on the same plot, however the second plot is no correct I've checked this by completing the nichols plot by hand and I get different results.
clear all, close all, clc
AbsN = [-4.609, -13.9794, -17.5012, -18.8897, -19.5545, -19.8245, -15.4170, -7.6042, -1.5836]; % Absolute Value -1/N
AngN = [-123, -150, -166, -173, -177, -179, -179, -180, -180]; % Angle of -1/N in degrees
K = 0.528;
T = 1.5;
Gc = 1;
PwrAmp = 10;
Mtr = 5;
Grs = 0.2;
Flp = tf(K, [T 1 0]);
OpenLoop = (Gc*PwrAmp*Mtr*Grs*Flp);
hold on
nichols(OpenLoop)
nichols (AbsN, AngN)
hold off
CloseLoop = feedback(OpenLoop, 1);

Sign in to comment.

Accepted Answer

Paul
Paul on 2 Apr 2024
Hi Amaan,
The input to nichols has to be an a dynamic system model. So either you have to convert AbsN and AngN to such a model and then call nichols, or just plot the dat on the Nichols chart. The code below does both just to illustratre. I assumed that AbsN is already in dB. I assigned an arbiitrary frequency vector to create the frd object for purposes of the Nichols plot, but it would be better to use the actualy frequency vector, if you have it, in case you want to use the frd object for other purposes.
AbsN = [-4.609, -13.9794, -17.5012, -18.8897, -19.5545, -19.8245, -15.4170, -7.6042, -1.5836]; % Absolute Value -1/N
AngN = [-123, -150, -166, -173, -177, -179, -179, -180, -180]; % Angle of -1/N in degrees
K = 0.528;
T = 1.5;
Gc = 1;
PwrAmp = 10;
Mtr = 5;
Grs = 0.2;
Flp = tf(K, [T 1 0]);
OpenLoop = (Gc*PwrAmp*Mtr*Grs*Flp);
hold on
nichols(OpenLoop)
%nichols(AbsN,AngN)
nichols(frd(10.^(AbsN/20).*exp(1j*AngN*pi/180),0:8))
plot(AngN,AbsN,'o')
hold off

More Answers (0)

Products


Release

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!