Lesson 23 Nyquist Stability Criteria 1 ET 438
Lesson 23: Nyquist Stability Criteria 1 ET 438 A AUTOMATIC CONTROL SYSTEMS TECHNOLOGY lesson 23 et 438 a. pptx
Learning Objectives 2 After this presentation you will be able to: Ø Ø List the control stability criteria for a Nyquist Plot. Construct a Nyquist plot using MATLAB. Identify if a system is stable by plotting system response on a Nyquist plot. Use MATLAB to generate system Bode, Error and Nyquist plots given the script file. lesson 23 et 438 a. pptx
Nyquist Stability Criterion 3 Plot complex numbers that result when s=jw for a number of frequencies. Plot the real and imaginary parts on rectangular coordinates or make polar plots. Method used to determine if characteristic equation, 1+G(s)H(s), has positive real parts. Gain Stability Pt. -1+j 0 +j -Re Margin Pt. -0. 5+j 0 +Re Unit Circle Increasing w -j lesson 23 et 438 a. pptx Phase Margin Pt. -0. 766 -j 0. 6428
Nyquist Stability Criterion 4 1) system is unstable if the plot encircles the stability point (-1+j 0). 2) system is marginally stable if the stability point is not encircled but does encircle the gain point (0. 5+j 0) or the phase point (-0. 7660 -j 0. 6228), or both of these points 3) The system is stable if the plot does not encircle stability point, the gain margin point, and the phase margin point. lesson 23 et 438 a. pptx
Nyquist Stability Criterion 5 Example 23 -1: Identify the if the system plots A and B are stable from the given Nyquist plot. Plot A +j -Re System A is marginally stable since the plot encircles both the gain and phase margin points but not the overall stability point of -1+j 0. +Re System B is stable since neither of the gain and phase margin points are encircled -j lesson 23 et 438 a. pptx Plot B
Nyquist Stability Criterion 6 Example 23 -2: A Proportional controller is used to control a 1 st order lag process with dead time delay. The transfer functions are given as: a) find the open-loop transfer function. b) use MATLAB to create a Bode data table. c) Use MATLAB to construct an open loop Bode diagram and error ratio graph. d) determine the gain and phase margins of the system and state whether or not the system is stable. e) find the maximum frequency limit. f) Use MATLAB to construct a Nyquist diagram of the system and state whether of not it meets the Nyquist stability criteria. lesson 23 et 438 a. pptx
Example 23 -2 Solution (1) 7 a) find the open-loop transfer function c) Use MATLAB to construct an open loop Bode diagram and error ratio graph lesson 23 et 438 a. pptx
Example 23 -2 Solution (2) 8 MATLAB code: Enter this into a script file and run to get desired results % Example 22 -3 calculations clear all; close all; % input and define the forward gain numerator and denominator coefficients numgh=input('Enter the numerator coefficients for the open-loop transfer function: '); demgh=input('Enter the denominator coefficients for the open-loop transfer function: '); td=input('Enter the dead-time delay of the transfer function. If no delay enter 0: '); upperw=input('Enter the upper frequency limit in rad/s: '); lowerw=input('Enter the lower frequency limit in rad/s: '); Gh=tf(numgh, demgh); % construct the transfer function Gh % display the transfer function as a check % Use the bode function with its arguments so that it returns the % magnitude, m, the phase shift, p and the frequencies so that % the effect of the dead time delay can be added to the system [m p w]=bode(Gh, {lowerw, upperw}); lesson 23 et 438 a. pptx
Example 23 -2 Solution (3) 9 % now compute the values of phase shift for the time delay using the formula -2*w*57. 6 pd=-td*w*57. 6; phase=p(: ); % take the phase shift out of the 3 column array [d p w] mag=m(: ); % take the magnitude out of the 3 column array pt=pd+phase; % add the phase shift of the transfer function to the dead-time delay db=20. *log 10(mag); % compute the gain in db figure; % create a figure window subplot(2, 1, 1); % divide the plot area in two parts N=length(mag); %determine the length of the arrays phase 180(1: N)=-180; % use this to plot a 180 degree line gain 0(1: N)=0; % use this to plot a zero d. B line semilogx(w, db, 'g-', w, gain 0, 'b-'); %plot the magnitude plot and annotate it xlabel('Frequency (rad/sec)'); ylabel('Gain (db)'); title('Example Bode Plot'); grid on; lesson 23 et 438 a. pptx
Example 23 -2 Solution (4) 10 subplot(2, 1, 2); % create the phase plot and annotate it semilogx(w, pt, 'g-', w, phase 180, 'r-'); xlabel('Frequency (rad/sec)'); ylabel('Phase Shift (Degrees)'); grid on; % Convert the magnitude and phase into real and imaginary parts for the Nyquist plot ptradians=(pi. /180). *pt; % convert phase in degrees into radians for cos and sin realpart(1: N)=mag(1: N). *cos(ptradians(1: N)); imaginarypart(1: N)=mag(1: N). *sin(ptradians(1: N)); figure; % create a figure and build the Nyquist plot(realpart, imaginarypart, 'b-', -1, 0, 'rx', -0. 5, 0, 'rx', -0. 766, -0. 643, 'rx') % plot results axis([-2 2]); % set the axis limits and annotate title('Nyquist Plot of System'); xlabel('Real Part of Open Loop TF'); ylabel('Imaginary Part of Open Loop TF'); grid on; lesson 23 et 438 a. pptx
Example 23 -2 Solution (5) 11 %compute the error ratio z=realpart+i. *imaginarypart; %build a complex number for the error ratio calc one_array=ones(1, N); % need array of ones for parallel calculations er 1=(one_array-z). *(one_array+z); % compute the denominator of ER er=abs(1. /er 1); % compute the magnitude of the ER and then scale to d. B erdb=20. *log 10(er); f=w(: ); % get the frequency array from the bode output figure; % create a new figure for the error ratio plot semilogx(f, erdb, 'r-'); % plot the results on a semilog graph and annotate title('Error Ratio Plot'); xlabel('Frequency (rad/s)'); ylabel('Error Ratio d. B'); grid on; lesson 23 et 438 a. pptx
Example 23 -2 Solution (6) 12 % print the results to the screen using the fprintf command % transpose (exchange columns to rows) to allow printing w=w'; %these are the transpose commands pt=pt'; db=db'; % print header line fprintf(1, 'f (rad/sec)t. Gain (db)t. Phase (deg)n'); % print formatted data [w; db; pt] assembles data in n columns % with w db and pt on each row fprintf(1, '%8. 2 ft%8. 2 fn', [w; db; pt]); % print line return to reposition cursor fprintf(1, 'n'); lesson 23 et 438 a. pptx
Example 23 -2 Solution (7) 13 m=+4 d. B Need -6 d. B b=+20° Need -40° System is unstable w 180 wod. B lesson 23 et 438 a. pptx
Example 23 -2 Solution (8) 14 The frequency limit is the frequency at which the controller on longer has an effect on the error. Error ratio of 0 d. B w=18 rad/sec f=(18 rad/sec)/2 p f=2. 9 Hz 18 rad/sec lesson 23 et 438 a. pptx
Example 23 -2 Solution (9) 15 f) Construct a Nyquist diagram of the system and state whether of not it meets the Nyquist stability criteria. System is not stable because the plot encircles the point (-1+j 0) -1+j 0 lesson 23 et 438 a. pptx
Example 23 -2 Solution (10) 16 b) use MATLAB to create a Bode data table. f (rad/sec) 0. 10 0. 12 0. 14 0. 17 0. 20 0. 23 0. 27 0. 33 0. 38 0. 46 0. 54 0. 64 0. 76 0. 89 1. 06 1. 25 1. 48 1. 75 2. 08 2. 46 2. 91 3. 44 lesson 23 et 438 a. pptx Gain (db) 24. 84 24. 83 24. 82 24. 80 24. 78 24. 75 24. 70 24. 64 24. 56 24. 44 24. 28 24. 07 23. 79 23. 43 22. 96 22. 39 21. 69 20. 87 19. 93 8. 89 17. 75 16. 54 Phase (deg) -4. 46 -5. 28 -6. 25 -7. 38 -8. 72 -10. 30 -12. 15 -14. 32 -16. 85 -19. 79 -23. 16 -27. 01 -31. 34 -36. 15 -41. 39 -47. 00 -52. 87 -58. 91 -65. 02 -71. 13 -77. 22 -83. 30 f (rad/sec) 4. 07 4. 82 5. 70 6. 75 7. 99 9. 45 11. 19 13. 24 15. 67 18. 55 21. 95 25. 98 30. 75 36. 39 43. 07 50. 97 60. 32 71. 39 84. 49 100. 00 Gain (db) 15. 26 13. 93 12. 57 11. 18 9. 77 8. 35 6. 91 5. 47 4. 02 2. 57 1. 11 -0. 35 -1. 81 -3. 27 -4. 73 -6. 19 -7. 65 -9. 12 -10. 58 -12. 04 Phase (deg) -89. 43 -95. 69 -102. 22 -109. 15 -116. 67 -124. 97 -134. 28 -144. 86 -157. 01 -171. 06 -187. 43 -206. 57 -229. 02 -255. 43 -286. 55 -323. 27 -366. 61 -417. 83 -478. 38 -549. 98
End Lesson 23: Nyquist Stability Criteria 17 ET 438 A AUTOMATIC CONTROL SYSTEMS TECHNOLOGY lesson 23 et 438 a. pptx
- Slides: 17