I have the following digital plant:


enter image description here

I want to use root locus to design a system with:

(1) position error=0;

(2) overshoot \$\leq 10\%\$

(3) settling time \$\leq\$ 5 seconds

(4) rise time as small as possible

I made the design manually:

Calculations done so far:

The overshoot requirement leads to \$ \zeta \geq 0.6 \$,

\$t_s=\cfrac{4.5}{|\sigma|}\Rightarrow |\sigma|\geq \cfrac{4.5}{5}=0.9\$

Unitary circle centered in the origin with radius of \$e^{-0.9T}\$. If T=1, the radius is \$e^{-0.9}\approx 0.41\$.


Zero: z=-1

Poles: z=0.3; z=1

Break point:

\$N'D-ND'=0 \Leftrightarrow -z^2-2z+1.6=0\leftrightarrow z\approx 0.612 \vee z=-2.612\$

enter image description here

I need to determine \$h\$, so I have to determine \$z_h\$. How could I determine \$h\$ in Scilab?

  • \$\begingroup\$ Sorry, but I could not follow at all. How can this be \$ -\cfrac{1}{h}=\cfrac{z+1}{(z-0.3)(z-1)}\$ ? I mean the is no real number \$ h \$ to get this result. Is \$ h\$ some sort of gain? Are you looking for the gain that makes the root locus position the poles at a certain position? \$\endgroup\$
    – jDAQ
    Jan 30 '20 at 19:55
  • \$\begingroup\$ @jDAQ \$h\$ is a gain. I put a diagram in the post to exemplify. \$\endgroup\$ Jan 30 '20 at 20:17

Using the following code we can obtain the path the poles go as you change k.

G = poly([-1],'z')/poly([0.3 1],'z');


y = [];
for k = logspace(-2,1,1000)
    y = [y abs(roots((k*G/(1+k*G)).den))];


//pick here your optimal gain
L = 0.5*G;
L = L/(1+L);
t = 0:21;

module of the poles in function of k

module of the poles in function of k.

root locus

root locus of the system.

If you manually/algorithmically search the path in \$ y\$ you will be able to find the \$ k \$ that minimizes the time, for that you don't have to just to minimize \$ |\sigma|\$ but also get it to be near the minimum damping \$ \zeta = 0.6\$. And get a result similar to

discrete step response


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.