Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CODIGO: AA 4030
LABORATORIO N° 15
“ANÁLISIS DE ESTABILIDAD”
ROUTH HURWITZ Y LGR
:
Grupo A Profesor: Nota:
Ing. Rodrigo Amésquita
Semestre : IV
Fecha de entrega : 16 12 2023 Hora: 21:00
Nro. DD-109-2
Procesos y Control
Página 1 / 11
I. OBJETIVOS:
II. RECURSOS:
▪ PC con Matlab.
▪ Librería Simulink.
V. BASE TEÓRICA:
El teorema de Routh–Hürwitz sirve para analizar la estabilidad de los sistemas dinámicos. Este
teorema proporciona un criterio capaz de determinar en cuál semiplano (izquierdo o derecho) del
plano complejo están localizadas las raíces del denominador de la función de transferencia de un
sistema y en consecuencia, conocer si dicho sistema es estable o no. Si tras aplicar el criterio nos da
como resultado que todos los polos están en el semiplano izquierdo, el sistema es estable, y si hay
un mínimo de un polo en el semiplano derecho, el sistema es inestable.
Criterio De R-H
Tabla R-H
Los coeficientes del polinomio deben ordenarse en filas y columnas, según el siguiente arreglo:
Nro. DD-109-2
Procesos y Control
Página 3 / 11
Análisis de Estabilidad
Un sistema será estable si y sólo si todos los elementos de la primera columna del Arreglo de Routh
son positivos.
A continuación se muestra un script para poder determinar la estabilidad de un sistema mediante el
criterio de RH
%% Initialization Criterio de Estabilidad de Routh Hurwitz
clear ; close all; clc
% Taking coefficients vector and organizing the first two rows
coeffVector = input('input vector of your system coefficients: \n i.e. [an an-1 an-2 ... a0] = ');
ceoffLength = length(coeffVector);
rhTableColumn = round(ceoffLength/2);
% Initialize Routh-Hurwitz table with empty zero array
rhTable = zeros(ceoffLength,rhTableColumn);
% Compute first row of the table
rhTable(1,:) = coeffVector(1,1:2:ceoffLength);
% Check if length of coefficients vector is even or odd
if (rem(ceoffLength,2) ~= 0)
% if odd, second row of table will be
rhTable(2,1:rhTableColumn - 1) = coeffVector(1,2:2:ceoffLength);
else
% if even, second row of table will be
rhTable(2,:) = coeffVector(1,2:2:ceoffLength);
end
%% Calculate Routh-Hurwitz table's rows
% Set epss as a small value
epss = 0.01;
% Calculate other elements of the table
for i = 3:ceoffLength
% special case: row of all zeros
if rhTable(i-1,:) == 0
order = (ceoffLength - i);
cnt1 = 0;
cnt2 = 1;
for j = 1:rhTableColumn - 1
rhTable(i-1,j) = (order - cnt1) * rhTable(i-2,cnt2);
cnt2 = cnt2 + 1;
cnt1 = cnt1 + 2;
end
end
for j = 1:rhTableColumn - 1
% first element of upper row
firstElemUpperRow = rhTable(i-1,1);
% compute each element of the table
rhTable(i,j) = ((rhTable(i-1,1) * rhTable(i-2,j+1)) - ....
(rhTable(i-2,1) * rhTable(i-1,j+1))) / firstElemUpperRow;
end
% special case: zero in the first column
if rhTable(i,1) == 0
rhTable(i,1) = epss;
end
end
%% Compute number of right hand side poles(unstable poles)
% Initialize unstable poles with zero
unstablePoles = 0;
% Check change in signs
for i = 1:ceoffLength - 1
Nro. DD-109-2
Procesos y Control
Página 4 / 11
if sign(rhTable(i,1)) * sign(rhTable(i+1,1)) == -1
unstablePoles = unstablePoles + 1;
end
end
% Print calculated data on screen
fprintf('\n Routh-Hurwitz Table:\n')
rhTable
% Print the stability result on screen
if unstablePoles == 0
fprintf('~~~~~> it is a stable system! <~~~~~\n')
else
fprintf('~~~~~> it is an unstable system! <~~~~~\n')
end
fprintf('\n Number of right hand side poles =%2.0f\n',unstablePoles)
reply = input('Do you want roots of system be shown? Y/N ', 's');
if reply == 'y' || reply == 'Y'
sysRoots = roots(coeffVector);
fprintf('\n Given polynomial coefficients roots :\n')
sysRoots
end
La función: rlocus(Función de transferencia), ejemplo:
---------------------------------------------------
>> polos = rlocus(Gs,a) %posición de los polos para K=a
---------------------------------------------------
>> rlocus(Gs,[a,b]) %Lugar de las raíces para valores de K entre a y b
Nro. DD-109-2
Procesos y Control
Página 5 / 11
VI. DESARROLLO:
a) Utilizando el código de Matlab brindado, responda si es sistema propuesto es: Estable o
Inestable, Cuantos Polos en la zona de inestabilidad existen, cuáles son sus raíces y el LGR:
Analice y explique para cada caso.
a.1) s4 + 10 s 3+35 s2 +50 s+24
En resumen:
● El sistema es estable.
Nro. DD-109-2
Procesos y Control
Página 6 / 11
a.2) s3 +5 s 2 +10
Nro. DD-109-2
Procesos y Control
Página 7 / 11
a.4) s5 +2 s 4 + 4 s3 +6 s2 +8 s+12
Nro. DD-109-2
Procesos y Control
Página 9 / 11
¿=Y(s)
¿=Y (s) [ kp . G(s )+ 1 ]
Y ( s) kp . G(s)
=
X (s) kp . G(s )+1
Kp
❑
Y ( s) 3 2
4 s +3 s +2 s +1
=
X (s) Kp
+1
4 s +3 s 2+ 2 s❑+1
3
Y ( s) kp
= 3
X (s) 4 s +3 s +2 s❑+ 1+ kp
2
CASO 1:Para un valor entrada tipo escalón de amplitud 1,realizaremos una prueba con un
valor de kp=0.1 (valor que se encuentra dentro del rango determinado anteriormente)
Nro. DD-109-2
Procesos y Control
Página 13 / 11
CASO 2:Para un valor entrada tipo escalón de amplitud 1,realizaremos una prueba con un
valor de kp=0.5 (valor límite máximo de kp determinado anteriormente)
Nro. DD-109-2
Procesos y Control
Página 14 / 11
CASO 3:Para un valor entrada tipo escalón de amplitud 1,realizaremos una prueba con un
valor de kp=0.8 (valor superior al límite máximo de kp)
Nro. DD-109-2
Procesos y Control
Página 15 / 11
b.4).- Obtenga y analice el lugar de las raíces de acuerdo al rango de k evaluados en b.3
Nro. DD-109-2
Procesos y Control
Página 16 / 11