1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
4
<LANGUAGE>eng</LANGUAGE>
8
<TYPE>Scilab Function</TYPE>
10
<DATE>April 1993</DATE>
12
<SHORT_DESCRIPTION name="evans">Evans root locus</SHORT_DESCRIPTION>
15
<CALLING_SEQUENCE_ITEM>evans(H [,kmax])</CALLING_SEQUENCE_ITEM>
21
<PARAM_NAME>H</PARAM_NAME>
24
<SP>: list (linear system <VERB>syslin</VERB>)</SP>
29
<PARAM_NAME>kmax</PARAM_NAME>
32
<SP>: real (maximum gain desired for the plot )</SP>
39
<P>Gives the Evans root locus for a linear system in state-space or
40
transfer form H(s) (<VERB>syslin</VERB> list). This is the locus of the
41
roots of <VERB>1+k*H(s)=1+k*N(s)/D(s)</VERB>, in the complex plane. For a
42
selected sample of gains <VERB>k <= kmax</VERB>, the imaginary part of
43
the roots of <VERB>D(s)+k*N(s)</VERB> is plotted vs the real part.</P>
45
<P>To obtain the gain at a given point of the locus you can simply execute
46
the following instruction :
47
<VERB>k=-1/real(horner(h,[1,%i]*locate(1)))</VERB> and click the desired
48
point on the root locus. If the coordinates of the selected point are in
49
the real 2 x 1 vector <VERB>P=locate(1)</VERB> this <VERB>k</VERB> solves
50
the equation <VERB> k*N(w) + D(w) =0</VERB> with
51
<VERB>w=P(1)+%i*P(2)=[1,%i]*P</VERB>.</P>
56
H=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
58
P=3.0548543 - 8.8491842*%i; //P=selected point
59
k=-1/real(horner(H,P));
60
Ns=H('num');Ds=H('den');
61
roots(Ds+k*Ns) //contains P as particular root
63
clf();s=poly(0,'s');n=1+s;
64
d=real(poly([-1 -2 -%i %i],'s'));
67
clf();n=real(poly([0.1-%i 0.1+%i,-10],'s'));
b'\\ No newline at end of file'