EE544 Matlab/Simulink Example 3: Root-Locus Plot

M-file:

% Filename:     example3.m
%
% Description:  M-file demonstrating the use of matlab's 
%               rlocus() and rlocfind() functions on the
%               example characteristic equation
%               1 + K(s+2)/(s(s+1)).
%

% clear matlab memory and close all open figures
clear all; close all;

% define numerator and denominator of L(s) and print to check
numL = [1 2];
denL = [1 1 0];
disp(['L(s) = ', poly2str(numL,'s'), '/', poly2str(denL, 's')]);
disp(' ');

% define transfer function object for L(s)
sysL = tf(numL, denL);

% plot closed-loop system's root locus
rlocus(sysL);
title('Example 3:  Root Locus for Characteristic Equation 1 + K(s+2)/(s(s+1))');

% loop a user-specified number of times to find poles and corresponding
% gains from root-locus plot
nK = input('Enter number of CL-poles on which you wish to click to find corresponding gain, K:  ');
n  = 0;
while(n < nK)
    [K, poles] = rlocfind(sysL)
    n = n + 1;
end;

Matlab Response Generated:

L(s) =    s + 2/   s^2 +  s
 
Enter number of CL-poles on which you wish to click to find corresponding gain, K:  3
Select a point in the graphics window
selected_point =
  -0.5612 - 0.0021i
K =
    0.1712
poles =
   -0.6098
   -0.5613

Select a point in the graphics window
selected_point =
  -3.4020 + 0.0021i
K =
    5.8285
poles =
   -3.4263
   -3.4022

Select a point in the graphics window
selected_point =
  -1.9857 + 1.4158i
K =
    2.9715
poles =
  -1.9857 + 1.4141i
  -1.9857 - 1.4141i

Root-Locus Plot Generated: