% Lo que sigue explica c'omo obtener las respuesta correctas con Matlab 'o
% verificarlas dependiendo del caso. No se indica c'omo se obtendr'ian "a
% mano".

% Problema 1: basta usar comando "roots"
%==========================================================================

roots([1 4 5 2])
roots([1 2 3 4 1 1 ])
roots([5 3 2 1 2 3])
roots([2 3 2 3])


% Problema 2: basta usar "rlocus" y "rlocfind"
%==========================================================================

s = tf('s')

%1)

figure
rlocus( 1/((s+1)*(s-2)) ) %K>0.  Note que F es m'onico!
rlocfind( 1/((s+1)*(s-2)) )
% Siempre inestable para K>0, aunque "a mano" no es tan claro pues, antes de irse a
% las as'intotas, las ra'ices podr'ian estar ambas en el plano izquierdo.
% Usando Routh se descarta ese caso.

figure
rlocus( -1/((s+1)*(s-2)) ) %K<0 
% Siempre inestable para K<0 y no vale la pena usar "rlocfind"

%2)

figure
rlocus( (s-1)/((s+1)*(s+2)) ) %K>0. Note que F es m'onico!
rlocfind( (s-1)/((s+1)*(s+2)) )
% Estable para 0<K<2.  De hecho Acl(s, K=2) = s(s+5).

figure
rlocus( -(s-1)/((s+1)*(s+2)) ) %K<0
rlocfind( -(s-1)/((s+1)*(s+2)) )
% Estable para 0>K>-3.  De hecho Acl(s, K=-3) = s^2+5.

%3)

figure
rlocus( (s+3)/(s*(s+1)*(s+2)) ) %K>0. Note que F es m'onico!
% Siempre estable para K>0, aunque "a mano" no es tan claro pues, antes de irse a
% las as'intotas, las ra'ices podr'ian pasar al plano derecho.
% Usando Routh se descarta ese caso.  No vale la pena usar rlocfind

figure
rlocus( -(s+3)/(s*(s+1)*(s+2)) ) %K<0
% Siempre inestable para K<0 y no vale la pena usar "rlocfind"

%4)

figure
rlocus( (s^2+s+1)/(s^2*(s+3)) ) %K>0. Note que F es m'onico!
% Siempre estable para K>0, aunque "a mano" no es tan claro pues, antes de
% irse hacia los ceros complejos conjugados, las ra'ices podr'ian pasar al plano derecho.
% Usando Routh se descarta ese caso.  No vale la pena usar rlocfind

figure
rlocus( -(s^2+s+1)/(s^2*(s+3)) ) %K<0
% Siempre inestable para K<0 y no vale la pena usar "rlocfind"


% Problema 3: basta usar "rlocus" y "rlocfind"
%==========================================================================

figure
rlocus( (s+3)^2/(s*(s+1)*(s+5)) ) %K>0. Note que F es m'onico!
% Siempre estable para K>0, aunque "a mano" no es tan claro pues, antes de
% irse hacia los ceros en s=-3, las ra'ices podr'ian pasar al plano derecho.
% Usando Routh se descarta ese caso.  No es posible que hayan raices en
% s=-4. No vale lapena usar rlocfind

figure
rlocus( -(s+3)^2/(s*(s+1)*(s+5)) ) %K<0
rlocfind( -(s+3)^2/(s*(s+1)*(s+5)) )
% Siempre inestable para K<0 y no vale la pena usar "rlocfind" para
% analizar estabilidad.  Hay una ra'iz en s=-4 cuando K=-12 (para verificar 
% esto, agregue al lugar geom'etrico una grilla con paso unitario en el eje 
% "x" antes de ejecutar rlocfind).  De hecho, en ese
% caso, Acl(s, K=-12) = (s-12.21) (s+4) (s+2.211).


% Problema 4: basta usar "rlocus" y "rlocfind"
%==========================================================================

figure
rlocus( (s-1)*(s+5)/(s*(s+1)^2*(s-3)) ) %K>0. Note que F es m'onico!
% Siempre inestable para K<0 y no vale la pena usar "rlocfind".


% Problema 5: basta usar "rlocus" y "rlocfind"
%==========================================================================

% En primer lugar hay que escribir el problema en la forma est'andar.
% Haciendo eso se llega a que F = (s+1)/( s*(s+4)*(s-1) ) y K = 8\alpha

figure
rlocus( -(s+1)/( s*(s+4)*(s-1) ) ) %K<0 <=> \alpha<0. 
% Siempre inestable para K<0 y no vale la pena usar "rlocfind".  El lazo
% tiene ra'ices en s=-1 para \alpha = -\infty y \alpha = +\infty (note que \infty =
% infinito).  Del LGR para \alpha < 0 se ve que no hay valor negativo que haga que
% las ra'ices est'en el -1+j.  Si \alpha>0,

figure
rlocus( (s+1)/( s*(s+4)*(s-1) ) ) %K>0 <=> \alpha>0. 

% y se ve que no hay valor que haga que las ra'ices est'en en -1 + j.  A
% mano, basta dividir Acl (como funci'on de \alpha) entre (s+1-j)(s+1+j) y
% verificar que no existe alpha que haga al resto cero.


% Problema 6:
%==========================================================================

% 1) No hay valor de K que estabilice (LGR siempre tiene ramas completas en
% el plano derecho. Para K>0 no hay valor que origine un modo natural
% exp(-5t).  Si K<0 si lo hay.

% 2) Si K>0, hay estabilidad para K<0.5.


% Problema 7:
%==========================================================================

% 1) S'i, existe controlador de primer orden que estabiliza.  Basta un controlador con un
% polo estable de gran magnitud y un cero estable moderado de modo que las
% as'intotas (paralelas al eje vertical) se junten en el plano izquierdo.
% As'i, para K suficientemente grande y positivo, el lazo ser'a estable.
% (USE SISOTOOL!)

% 2) Idem arriba.  Note que un PID siempre estabiliza una planta de segundo
% orden y es un controlador de segundo orden.

% 3) S'i, existe controlador estable que estabiliza.  El argumento es el
% mismo que en la parte 1. (USE SISOTOOL!)

% 4) No, no existe controlador estable que estabiliza.  Siempre habr'a una
% rama en el plano derecho, sin importar donde se posicionen los ceros y
% polos (estables) del controlador. (USE SISOTOOL!)



