Bode diagram to Nichols curve

4 views (last 30 days)
Simon
Simon on 1 Dec 2011
Hi,
I want to tune a machine we are experimenting on using the Nychols-curve. In the machine-software it's possible to measure some Bode-plots of the machine itself. With these results (magnitude and phase at different frequencies) i want to plot a Nichols-curve. I know it's possible with the SISOTOOL to make a Nychols-curve using a systemmodel, but i want a direct link between the bode and nichols curve using a tool like sisotool.
Any help? Simon

Answers (2)

Hin Kwan Wong
Hin Kwan Wong on 2 Dec 2011
Since you have the mag and phase data for bode plot is open loop You can just plot a Nichols plot yourself by transforming the coordinates for a Nichols by using the formula
H(i*w)/(1+H(i*w))
basically you just plot: plot(PHASE, db(ComplexData./(1+ComplexData)));ngrid;
where ComplexData is complex open loop response in cartesian form
PHASE is in degrees = 180*angle(ComplexData)/pi

Craig
Craig on 2 Dec 2011
Hi Simon,
You can create an FRD (frequency response data object) using the mag and phase information
>> m = [1;2;3]; % mag in abs
>> ph = [10;15;30]; % phase in deg
>> w = [10;20;30]; % frequency rad/sec
>> sys = frd(m.*exp(1i*pi/180*ph),w);
Then use the plotting commands to view it. Note FRD objects can be imported into SISOTool as well.
>> figure;
>> bode(sys)
>> figure;
>> nichols(sys)
or
>> ltiview({'bode','nichols'},sys)

Community Treasure Hunt

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

Start Hunting!