0
\$\begingroup\$

I have the following digital plant:

\$G(z)=\cfrac{z+1}{(z-0.3)(z-1)}\$

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\$.

\$-\cfrac{1}{h}=\cfrac{z+1}{(z-0.3)(z-1)}\$

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?

\$\endgroup\$
2
  • \$\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
    Commented Jan 30, 2020 at 19:55
  • \$\begingroup\$ @jDAQ \$h\$ is a gain. I put a diagram in the post to exemplify. \$\endgroup\$ Commented Jan 30, 2020 at 20:17

1 Answer 1

1
\$\begingroup\$

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');

figure;
evans(G,10)
zgrid;

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

figure;
plot2d("ll",logspace(-2,1,1000),y')
legend('a1','a2')

//pick here your optimal gain
L = 0.5*G;
L = L/(1+L);
t = 0:21;
figure;
plot(t,dsimul(tf2ss(L),ones(1,1+max(t))),'x')

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

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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