Está en la página 1de 17

UNIVERSIDAD TECNOLÓGICA DEL PERÚ

FACULTAD DE INGENIERÍA DE SISTEMAS Y ELECTRÓNICA


CARRERA DE INGENIERÍA ELECTRÓNICA - MECATRÓNICA

Laboratorio de
Sistemas de control moderno

Laboratorio N°1
ANÁLISIS DE ESTABILIDAD Y RESPUESTA EN EL TIEMPO Y
FRECUENCIA
Laboratorio N°1

ÍNDICE

1. OBJETIVO 3
2. FUNDAMENTO TEÓRICO 3
2.1. ANÁLISIS DE ESTABILIDAD 3
2.1.1. Introducción 3
2.1.2. Método de Routh-Hurwitz en MATLAB 3
2.1.3. Ejercicios Propuestos 6
2.2. LUGAR GEOMÉTRICO DE LAS RAÍCES 7
2.2.1. Introducción 7
2.2.2. Construcción de LGR 7
2.2.3. Ejercicios Propuestos 9
2.3. RESPUESTA EN FRECUENCIA 11
2.3.1. Introducción 11
2.3.2. Diagrama de Bode 11
2.3.3. Traza de Nyquist 13
2.3.4. Carta de Nichols 14
2.3.5. Ejercicios propuestos 16
Laboratorio N°1

1. OBJETIVO

Estudiar la estabilidad de sistemas SISO mediante el criterio de Routh-Hurwitz.


Utilizar MATLAB para construir y analizar el lugar geométrico de raíces de sistemas
lineales descritos por funciones de transferencia.

2. FUNDAMENTO TEÓRICO

2.1. ANÁLISIS DE ESTABILIDAD


2.1.1. Introducción
El criterio de Routh-Hurwitz es un método que permite evaluar la estabilidad
absoluta de sistemas lineales continuos mediante el análisis del polinomio
característico (sin encontrar directamente los polos del sistema). De manera
general, dado un polinomio, se requiere sólo realizar algunos cálculos sobre los
coeficientes del mismo para determinar su estabilidad [1]. Este criterio establece una
metodología sistemática basada en un arreglo matricial para determinar si los polos
del sistema se encuentran en el semiplano izquierdo.
2.1.2. Método de Routh-Hurwitz en MATLAB
Si bien es cierto no existe una instrucción que realice el criterio de Routh en la lista
actual de programas de MATLAB, es posible encontrar un desarrollo en MATLAB
Central en la web aprobado por Mathworks (Rivera-Santos E., 2007) para aplicar el
criterio de estabilidad. Se lista a continuación:
function RA=routh(poli,epsilon);

%ROUTH Routh array.


% RA=ROUTH(R,EPSILON) returns the symbolic Routh array RA for
% polynomial R(s). The following special cases are considered:
% 1) zero first elements and 2) rows of zeros. All zero first
% elements are replaced with the symbolic variable EPSILON
% which can be later substituted with positive and negative
% small numbers using SUBS(RA,EPSILON,...). When a row of
% zeros is found, the auxiliary polynomial is used.
%
% Examples:
%
% 1) Routh array for s^3+2*s^2+3*s+1
%
% >>syms EPS
% >>ra=routh([1 2 3 1],EPS)
% ra =
Laboratorio N°1

%
% 1.0000 3.0000
% 2.0000 1.0000
% 2.5000 0
% 1.0000 0
%
% 2) Routh array for s^3+a*s^2+b*s+c
%
% >>syms a b c EPS;
% >>ra=routh([1 a b c],EPS);
% ra =
%
% [ 1, b]
% [ a, c]
% [ (-c+b*a)/a, 0]
% [ c, 0]
%
%
% Author:Rivera-Santos, Edmundo J.
% E-mail:edmundo@alum.mit.edu
%

if(nargin<2),
fprintf('\nError: Not enough input arguments given.');
return
end

dim=size(poli); %get size of poli

coeff=dim(2); %get number of coefficients


RA=sym(zeros(coeff,ceil(coeff/2))); %initialize symbolic Routh array

for i=1:coeff,
RA(2-rem(i,2),ceil(i/2))=poli(i); %assemble 1st and 2nd rows
end

rows=coeff-2; %number of rows that need determinants


Laboratorio N°1

index=zeros(rows,1); %initialize columns-per-row index vector

for i=1:rows,
index(rows-i+1)=ceil(i/2); %form index vector from bottom to top
end

for i=3:coeff, %go from 3rd row to last


if(all(RA(i-1,:)==0)), %row of zeros
fprintf('\nSpecial Case: Row of zeros detected.');
a=coeff-i+2; %order of auxiliary equation
b=ceil(a/2)-rem(a,2)+1; %number of auxiliary
coefficients
temp1=RA(i-2,1:b); %get auxiliary polynomial
temp2=a:-2:0; %auxiliry polynomial powers
RA(i-1,1:b)=temp1.*temp2; %derivative of
auxiliary
elseif(RA(i-1,1)==0), %first element in row is zero
fprintf('\nSpecial Case: First element is zero.');
RA(i-1,1)=epsilon; %replace by epsilon
end
%compute the Routh array elements
for j=1:index(i-2),
RA(i,j)=-det([RA(i-2,1) RA(i-2,j+1);RA(i-1,1)
RA(i-1,j+1)])/RA(i-1,1);
end
end

Este código está implementado como una función con argumentos y debe ser
guardada en la carpeta de trabajo de MATLAB con el nombre “routh.m”. Para esto
debe crear una hoja nueva: File/New/Script o click en , copiar el código y
guardarlo como se indica.
En el código se indica la forma como debe usarse esta función con un par de
ejemplos (numéricos y con componente simbólica). Tomando el ejemplo
desarrollado en clase:
>> %Dado P(s) = s3+6s2+11s+6+Kc = 0
>> syms EPS Kc
>> P = [1 6 11 6+Kc];
>> ra= routh(P,EPS) %Ejecuta función routh
ra =
Laboratorio N°1

[ 1, 11]
[ 6, Kc + 6]
[ 10 - Kc/6, 0]
[ ((Kc + 6)*(Kc - 60))/(6*(Kc/6 - 10)), 0]
Esta expresión de la tabla de Routh puede ser simplificada:
>> ra2 = simplify (routh_array) %Simplifica
expression simbólica

ra2 =

[ 1, 11]
[ 6, Kc + 6]
[ 10 - Kc/6, 0]
[ Kc + 6, 0]

De donde, se puede concluir que la condición de estabilidad es -6 < Kc < 60 (la


primera columna debe tener elementos mayores a cero).

2.1.3. Ejercicios Propuestos


a. Considere el sistema de la figura 1:

Figura 1. Lazo cerrado para ejercicios propuestos

Con:
𝑠+1
𝐺(𝑠) = 𝑠(𝑠−1)(𝑠+6)

Analice la estabilidad del sistema en lazo cerrado en función de la ganancia K


(controlador proporcional) usando el criterio de Routh.

b. Para el mismo sistema de la Figura 1, considerando que:


100
𝐺(𝑠) = (𝑠−0.5)(𝑠+4)
Laboratorio N°1

𝑠+3
𝐾(𝑠) = λ 2
𝑠 +4𝑠+5

Analice la estabilidad del sistema en lazo cerrado en función del parámetro λ del
controlador usando el criterio de Routh.

2.2. LUGAR GEOMÉTRICO DE LAS RAÍCES


2.2.1. Introducción
El paquete Control System Toolbox de MATLAB contiene algoritmos y herramientas
sofisticadas para la construcción y el análisis del lugar geométrico de raíces (LGR)
de sistemas LTI SISO. La curva LGR se usa para analizar el efecto que tiene aplicar
ganancias de realimentación variable en la ubicación de los polos del sistema en
lazo cerrado. Esta curva de polos provee información importante sobre la respuesta
transitoria del sistema y sobre su estabilidad.
2.2.2. Construcción de LGR
MATLAB permite construir curvas LGR por medio de la instrucción “rlocus” tal como
se muestra en el siguiente código de ejemplo:

>> s = tf('s');
>> G = 2/(3*s+1)/(s+1); %Define FdT
>> H = 0.5;
>> sys_ol = G*H; %FdT del sistema en lazo abierto
>> figure; %Abre una figura nueva
>> rlocus(sys_ol) %Grafica LGR para sys_ol

Este código construye la curva LGR para el sistema de control de la figura 1:

Figura 2. Sistema de Lazo Cerrado con Controlador Proporcional

Para mejorar la claridad de la gráfica, se pueden emplear los siguientes comandos


de manera opcional:

>> grid %Curvas de nivel para ζ y ωn constantes


Laboratorio N°1

>> axis([-1.2 0.2 -1.8 1.8]) %axis[xi xf yi yf] establece el cuadro de visión en el
%rectángulo definido por (xi, yi) y (xf, yf)
>> axis('equal') %Iguala escala en direcciones X e Y
>> dseta = 0.707; %Factor de amortiguamiento ζ = 0.707
>> omega = 1.33; %Frecuencia natural ωn = 1.33
>> sgrid(dseta,[]); %sgrid(ζ, ωn) permite especificar una curva de nivel
>> sgrid([], omega); %específica para un cierto ζ y/o ωn
>> sgrid(dseta, omega);

En la figura 2 se puede observar un LGR compuesto por dos ramas (en color azul y
verde) rectas por tramos. Las curvas de nivel para el factor de amortiguamiento son
rectas diagonales, mientras que las curvas para la frecuencia natural son
circunferencias.
Haciendo click sobre cualquier punto del LGR se puede mostrar un pequeño cuadro
con información sobre el valor de ganancia, polo señalado, amortiguamiento, entre
otros.

Figura 3. Curva LGR del Sistema de Control

Adicionalmente, la instrucción rlocus se puede utilizar también para encontrar el


valor numérico de los polos en lazo cerrado del sistema si es que se incluye la
ganancia de interés como argumento adicional:
Laboratorio N°1

>> Pk = rlocus(sys_ol,2.5) %Encuentra los polos en lazo cerrado cuando Kc = 2.5


Por otro lado, MATLAB brinda herramientas gráficas de interfaz de usuario (GUI)
para trabajar con LGR, tales como “rlocfind” y “rltool”. La instrucción “rlocfind” nos
permite encontrar la ganancia Kc asociada a un cierto punto de la curva
(seleccionado de manera interactiva por el usuario).
>> rlocfind(sys_ol)
La instrucción “rltool” abre la ventana “SISO Design Tool”, la cual es una
herramienta usada para diseño de controladores, y la configura para el modo “root
locus”.
>> rltool(sys_ol)
Esta herramienta gráfica permite encontrar la curva LGR tras agregar al sistema de
control original un compensador.
Una vez ejecutada la instrucción “rltool” se debe hacer click derecho sobre la
ventana para elegir el tipo de compensador que se desee agregar (ver figura 3).
Luego de esto, se selecciona el lugar donde se desea colocar sus polos/ceros (esto
se puede modificar posteriormente). Tras agregar el compensador la curva LGR
cambia automáticamente para considerar el efecto del nuevo bloque. En la parte
inferior se indica el cambio realizado.
Adicionalmente, en Design/Edit Compensato, se puede ver/editar los parámetros de
los compensadores agregados.

Figura 4. Herramienta rtool para el análisis de LGR


Laboratorio N°1

2.2.3. Ejercicios Propuestos


a. Considere la siguiente función de transferencia de lazo abierto:
(𝑠+1)
𝐺𝐻(𝑠) = 𝐾 2
𝑠(𝑠+4)(𝑠 +2𝑠+2)

Obtenga el LGR para el rango completo de valores de K∈<-∞,∞>. Presente sus


resultados en dos gráficas distintas: una para la parte negativa y otra para la
parte positiva de K.

b. Para el siguiente sistema de control:

Grafique su LGR y determine el valor de K tal que se consiga tener un factor de


amortiguamiento ζ = 0.5 en un par de polos complejos dominantes. Verifique
sus resultados encontrando la respuesta en el tiempo ante un escalón
unitario.
c. Al compensador de la figura 1 se le ha agregado la parte derivativa para
formar un PD. Se le pide determinar el valor de Kc para el cual el sistema se
vuelve inestable.

Verifique sus resultados mediante una simulación en Simulink.

d. La función de transferencia en lazo abierto de un sistema de control es:


(𝑠+1)
𝐺𝐻(𝑠) = 𝐾 2
𝑠(𝑠+3)(𝑠 +6𝑠+64)

Grafique el LGR y encuentre la ganancia que permite conseguir un factor ζ = 0.707.


Pregunta: ¿El sistema se comporta como se espera? Esto es, ¿se comporta como
un sistema de segundo orden puro con ζ = 0.707? Explique su respuesta.
Laboratorio N°1

2.3. RESPUESTA EN FRECUENCIA


2.3.1. Introducción
El paquete Control System Toolbox de MATLAB contiene funciones para el análisis
de la respuesta en el dominio de la frecuencia de sistemas LTI SISO mediante las
curvas estándar de Bode, Nyquist y Nichols. La respuesta en frecuencia es una
representación de la respuesta del sistema en estado estacionario ante entradas de
tipo seno en un rango apreciable de frecuencias de interés y se determina por la
magnitud y diferencia de fase encontradas a la salida.
2.3.2. Diagrama de Bode
El diagrama de Bode es la herramienta más comúnmente utilizada para visualizar la
respuesta en frecuencia de un sistema. En esta gráfica se muestra las curvas de
magnitud y diferencia de fase respecto a la frecuencia en escala logarítmica. Para la
construcción del diagrama de Bode en MATLAB se emplea la instrucción “bode”
como se muestra a continuación:

>> sys_ol1 = 1/(0.3*s+1); %Define FdT de primer orden en lazo abierto


>> sys ol2 = 2/(s+12)*5/(2*s+1); %Define FdT de segundo orden en lazo abierto

>> figure; %Abre figura nueva


>> bode(sys_ol1) %Muestra diagrama de Bode
>> figure;
>> bode(sys_ol1,'r', sys_ol2,'k') %D. Bode de los dos sistemas (r: rojo, k: negro)
>> grid %Habilita grilla

El diagrama de Bode de los dos sistemas se muestra en la figura 4. Como se


observa, la magnitud se expresa en unidades de decibelios (dB: 20log(M)), la
diferencia de fase en grados sexagesimales y la frecuencia en rad/s en escala
logarítmica.
Laboratorio N°1

Figura 5. Diagrama de Bode

Adicionalmente, es importante conocer los siguientes parámetros de la respuesta en


frecuencia de un sistema:
>> sys_ol3 = 3e4 * (0.05*s + 1)^2 / ((s+1)^3 * (0.01*s + 1));
>> [MG, MF, Wcg, Wcf] = margin(sys_ol3) % Margen de Ganancia (MG)
% Margen de Fase (MF)
% Frecuencias asociadas Wcg y Wcf
>> margin(sys_ol3) % Margen de manera gráfica
>> BW = bandwidth(sys_ol3) % Ancho de banda
>> Gdc = dcgain(sys_ol3) % Ganancia en continua GH(0)

El diagrama de Bode del sistema sys_ol3 se presenta en la figura 5. Sobre el


diagrama se indica los parámetros de margen de fase y ganancia. Los márgenes de
fase y ganancia son utilizados en el diseño de compensadores en el dominio de la
frecuencia y pueden ser empleados para determinar la estabilidad de un sistema.
Laboratorio N°1

Figura 6. Margen de Fase y Ganancia

2.3.3. Traza de Nyquist


La traza de Nyquist grafica la función de transferencia en el plano complejo,
tomando a la frecuencia como un parámetro de entrada. El uso más común de esta
traza es para evaluar la estabilidad de sistemas lineales. Para la construcción de la
traza de Nyquist en
MATLAB se emplea la instrucción “nyquist” como se muestra a continuación:
>> H1 = tf([2 5 1], [1 2 3]);
>> nyquist(H1); %Traza de Nyquist
>> grid %Curvas de nivel para magnitud en lazo cerrado

La traza de Nyquist para el ejemplo se muestra en la figura 6. Sobre esta gráfica se


muestra de manera opcional curvas de magnitud de la FdT en lazo cerrado para un
cierto valor establecido. Al hacer click sobre los puntos de la traza de Nyquist, se
puede mostrar los valores real e imaginario de la función de transferencia para una
frecuencia dada.
Laboratorio N°1

Figura 7. Traza de Nyquist

2.3.4. Carta de Nichols


La carta de Nichols muestra la curva de magnitud (en dB) contra la fase de la
respuesta del sistema. Se utiliza principalmente para determinar la estabilidad y
robustez de sistemas lineales. Para la construcción de la carta de Nichols en
MATLAB se emplea la instrucción “nichols” como se muestra a continuación:

>> num = [-4 48 -18 250 600];


>> den = [1 30 282 525 60];
>> H2 = tf(num,den) %Define FdT
>> nichols(H2); ngrid %Carta de Nichols

La carta de Nichols para el ejemplo se muestra en la figura 7. En la gráfica se


muestra de manera análoga al caso anterior, curvas de contorno de magnitud
constante para la FdT en lazo cerrado.
Laboratorio N°1

Figura 8. Carta de Nichols


Laboratorio N°1

2.3.5. Ejercicios propuestos


a. Se le pide plantear una forma alternativa de graficar el diagrama de Bode
utilizando la instrucción “freqs”. Compare sus resultados al utilizar la instrucción
“bode” para una cierta FdT.
Sugerencia: Revise la ayuda que provee MATLAB sobre esta instrucción.
>> help freqs

b. En una misma figura, grafique los diagramas de Bode para los sistemas
descritos por:
1+𝑠
𝐺1(𝑠) = 1+2𝑠

1−𝑠
𝐺2(𝑠) = 1+2𝑠

Indique sus observaciones.

c. Dada la siguiente función de transferencia en lazo abierto:


𝐾
𝐺𝐻(𝑠) = 𝑠(𝑠+1)(2𝑠+1)

Encuentre el valor crítico de la ganancia K usando el diagrama de Bode a fin de


mantener el sistema estable en lazo cerrado. Verifique sus resultados
encontrando los polos del sistema en lazo cerrado para el valor encontrado de K.

d. Para el sistema de control mostrado en la figura 8:

Figura 9. Sistema de Controla para una planta con retardo de tiempo

Encuentre el máximo valor de K para el cual el sistema es estable.

e. Considere un sistema con realimentación unitaria con la siguiente FdT de lazo


abierto:
2
20(𝑠 +𝑠+0.5)
𝐺(𝑠) = 𝑠(𝑠+1)(𝑠+10)

Dibuje su traza de Nyquist y examine la estabilidad del sistema en lazo cerrado.

f. Según el diagrama de la figura 5, ¿podría concluir que el sistema es estable o


inestable? Explique su respuesta.
Laboratorio N°1

g. La figura 9 muestra un diagrama de bloques de un sistema de control de un


vehículo espacial. Determine la ganancia K tal que el margen de fase sea 50º.
¿Cuál es el margen de ganancia en este caso?

Figura 10. Sistema de Control de un vehículo espacial

h. Considere el sistema de control mostrado en la figura 10. Grafique las trazas de


Nyquist para los casos K = 1, 7.5 y 20. Analice el efecto de K en la estabilidad
del sistema.

Figura 11. Sistema de Control de Nivel de una Planta

i. Considere el sistema en lazo cerrado de la figura 11. Grafique los diagramas de


Bode y de Nyquist para los valores K = 0.2, 0.5, 1 y 2. También se le pide graficar
el LGR y ubicar los polos en lazo cerrado del sistema para los valores
mencionados de K. Analice sus resultados.

Figura 12. Sistema de Control de una planta inestable

También podría gustarte