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

Dyuman Joshi
Dyuman Joshi 2024년 4월 2일
Use hold on and add points. Works with both nichols and nicholsplot.
What seems to be the problem/issue?
Amaan Mahmood
Amaan Mahmood 2024년 4월 2일
편집: Amaan Mahmood 2024년 4월 2일
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);

댓글을 달려면 로그인하십시오.

 채택된 답변

Paul
Paul 2024년 4월 2일
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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Mathematics에 대해 자세히 알아보기

제품

릴리스

R2023b

질문:

2024년 4월 1일

답변:

2024년 4월 2일

Community Treasure Hunt

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

Start Hunting!

Translated by