Está en la página 1de 13

Proyecto no.

1: PID autosintonizable
Control Computacional
Profesor: Luis Ismael Minchala Avila

15/09/2023
Curso MR2007.550
Equipo
Integrantes:
Isai Dali Pérez Nava A01423912

Gustavo Eduardo Ruiz Martinez A01383547

Luis Antonio Ortiz Sandoval A01423822


1. Introducción

1.1. Contexto del Proyecto


El proyecto elaboración de sintonización automática de controladores PID se
enmarca en el curso de Control Computarizado, que tiene como objetivo principal
formar a los estudiantes en temas relacionados con la ingeniería de control
moderna en tiempo discreto y sistemas de automatización. Este proyecto
reemplaza el examen del primer parcial y busca integrar los conceptos estudiados
a lo largo del curso en una aplicación práctica.

1.2. Justificación Problemática


Para entender el por qué es importante saber aplicarlo, primero debemos partir de
la definición.
Un PID autosintonizado es un tipo de controlador proporcional-integral-derivativo
(PID) que tiene la capacidad de ajustar automáticamente sus parámetros de
ganancia (proporcional, integral y derivativa) sin intervención humana. Su principal
objetivo es mejorar el control de un proceso o sistema de manera eficiente y
precisa sin que los operadores tengan que realizar ajustes manuales constantes.
¿Por qué elaborar este tipo de PID´s y no solo uno convencional?
En la industria, es esencial contar con sistemas de control que puedan adaptarse
a condiciones variables y mantener un rendimiento óptimo. Los controladores PID
son ampliamente utilizados, pero su rendimiento tiende a disminuir con el tiempo
debido a cambios en la dinámica del sistema.
En un ambiente industrial es indispensable contar con un sistema de control que
no solo sea capaz de controlar, estabilizar y manejar señales o variables en un
proceso.Es indispensable que nuestro sistema de control sea capaz de leerlas,
manejarlas y controlarlas, a pesar de los cambios en las condiciones o ambiente
de la industria. Este proceso con un PID convencional se realiza de forma manual
y constante.
En este proyecto aborda esta problemática al desarrollar un algoritmo de
sintonización automática basado en el método del relevador, que ajusta los
parámetros del controlador en tiempo real para adaptarse a las condiciones
cambiantes del proceso.
1.3. Referencias Bibliográficas
Del Busto Y Ezeta, R. F., & Mendoza, R. A. R. (2014). Sistemas de control

Moderno. Volumen II: Sistemas de tiempo discreto. Editorial Digital

del Tecnológico de Monterrey.

Hernández, H. G. G. (2013). Sistemas de control en tiempo continuo y

discreto. Editorial Digital del Tecnológico de Monterrey.

Ogata, K. (1996). Sistemas de control en tiempo discreto. Pearson

Educación.

__________________________________________________________________

2. Descripción Metodológica
2.1. Diagrama de Bloque del Proyecto
2.2. Diagrama de Flujo de Trabajo
2.3. Descripción Metodológica
Utilizamos un software de cálculos numéricos para ir determinando cada una de
nuestras variables en nuestras funciones.
Tenemos nuestra función de transferencia dada :

Dicha función de transferencia tiene una K=Ganancia del sistema, Tau=constante


de tiempo (dicha variable se debe multiplicar por 5 al momento que nosotros
queramos obtener su gráfica ya que es cuando se estabiliza la función) y
Theta=Tiempo muerto (Ya no hay ningún tipo de cambio).
Después tenemos la fórmula de discretización

La cual permite pasar de la primera ecuación a tiempo discreto.


En este paso, una vez que hacemos eso ponemos nuestro tiempo de muestreo lo
más cercano a 5 para multiplicar lo que haya salido en Tau.

Después a continuación se muestran los datos que se necesitan para poder sacar
la función o modelo teóricamente escrito (sin números) de lo que se tiene que
sacar.

Posteriormente tenemos lo que es el algoritmo controlado por tiempo muerto.


Cabe resaltar que utilizamos las 2 últimas funciones para que al dividir
una con la otra y obtener la equivalencia del controlador.
Para el controlador tenemos la primer función mostrada anteriormente y la
convertimos en una función de transferencia utilizando la función Tf

(Se separa numerador y denominador)


Posteriormente se saca una gráfica sacando la respuesta y el tiempo en que se
estabiliza cada vez que se corre el programa.
Luego sacamos una recta tangente que contendra una pendiente, tiempo de
respuesta y tiempo de la recta

Esta operación nos ayuda a obtener una respuesta crítica que nos ayuda a sacar
el valor de Kc.
Con esta última variable podemos determinar las variables Kp (Ganancias), Ti &
Td (Son tou´s)

Ki & Kd son ganacias


Para el PID aplicamos la función de transferencia a Kd, Kp & Ki que
despues se multiplicara por la función normal

Para los últimos pasos de nuestro programa tenemos nuestra simulación de lazo
cerrado, que usa la ecuación de recurrencia obtenida anteriormente, generando
una señal de error, la cual se determina en base a la función FODT.

Y por último tenemos nuestras pruebas de ruido, la cual utiliza la señal de error
para determinar la cantidad de ruido que existe en nuestro programa, esto con la
finalidad de realizar ajustes y reducir lo más que se pueda el ruido para las
lecturas.

__________________________________________________________________

3. Desarrollo del Proyecto

3.1. Simulación de un Sistema de Control FODT


Se utilizó MATLAB como plataforma de simulación, con base en el programa de
inicio proporcionado. Se introdujeron cambios en la dinámica del proceso para
verificar la efectividad del algoritmo de autosintonización.

3.2. Algoritmo de Autosintonía


Se diseñó y programó el algoritmo de autosintonía basado en el método del
relevador. Este algoritmo se integró en la plataforma de simulación para realizar el
ajuste de parámetros del controlador PID.

3.3. Ajuste de Parámetros del Controlador


El algoritmo de autosintonía calculó los parámetros del controlador
PID (ganancia proporcional, tiempo integral y tiempo derivativo) de manera
automática. También se aplicó automáticamente en caso de cambios en la
operación del proceso que resultará en errores de estado estacionario mayores al
5%.

3.4. Análisis de Resultados


Se realizaron análisis detallados de las señales de respuesta en el tiempo,
incluyendo la señal de error, su potencia y energía. Se utilizaron indicadores como
IAE e ITAE para evaluar el rendimiento del controlador ajustado.

__________________________________________________________________
4. Análisis de Resultados

4.1. Respuesta del Sistema de Identificación


Se presentan las respuestas del sistema de identificación para diferentes
condiciones de operación antes y después de aplicar el algoritmo de autosintonía.

4.2. Comparación de Resultados para Diferentes Valores del Factor de Olvido


Se analizan los resultados obtenidos con diferentes valores del factor de olvido en
el algoritmo de autosintonía.

4.3. Análisis Estadístico de las Señales de Respuesta en el Tiempo


Se realiza un análisis estadístico de las señales de respuesta en el tiempo,
incluyendo la estimación de parámetros estadísticos relevantes.

4.4. Indicadores IAE, ITAE, etc.


Se calculan y comparan los indicadores de rendimiento del controlador ajustado
utilizando diferentes métricas como IAE y ITAE.
__________________________________________________________________

5. Conclusiones
5.1. Reflexiones sobre el Desarrollo Metodológico
Se concluye que el algoritmo de sintonización automática basado en el método del
relevador es efectivo en la mejora del rendimiento y la robustez de los
controladores PID en tiempo discreto.

5.2. Reflexiones sobre el Análisis de Resultados


Los análisis estadísticos y los indicadores de rendimiento respaldan la eficacia del
algoritmo de autosintonía en la adaptación a condiciones cambiantes y en la
mejora del control.
__________________________________________________________________

6. Referencias
Del Busto Y Ezeta, R. F., & Mendoza, R. A. R. (2014). Sistemas de control

Moderno. Volumen II: Sistemas de tiempo discreto. Editorial Digital

del Tecnológico de Monterrey.

Hernández, H. G. G. (2013). Sistemas de control en tiempo continuo y

discreto. Editorial Digital del Tecnológico de Monterrey.

Ogata, K. (1996). Sistemas de control en tiempo discreto. Pearson

Educación.

Código
Modelo de un sistema de primer orden con tiempo muerto
A partir de un modelo en tiempo continuo con estructura aproximada:

Y el modelo original del proceso es:


clc; clear;
K=2 % Ganancia del sistema
tau = 4.1 % Constante de tiempo
theta = 1.1 % Tiempo muerto
La discretización consiste en un modelo obtenido con la transformada z
modificada, a saber:

T=4 % Tiempo de muestreo


d = floor(theta/T);
f = theta - d*T;
m = 1 - f/T;
a1 = -exp(-T/tau);
b1 = K * (1 - exp(-m*T/tau));
b2 = K * (exp(-m*T/tau) - exp(-T/tau));
La ecuación de recurrencias del modelo del sistema en tiempo discreto:

Adicionalmente, se integra un algoritmo de control deadbeat, de acuerdo con la


siguiente ecuación de recurrencias:

%Funcion de transferencia final

num3 = [K]
den3 = [tau 1]
num1= [K*exp(theta) 0]
den1= [tau 1];

Gp1=tf(num3,den3)

[respuesta, tiempo] = step(Gp1);


pendiente_en_tiempo = gradient(respuesta, tiempo);
[pendiente, indice_critico] = max(pendiente_en_tiempo);
tiempo_inflexion = tiempo(indice_critico);
respuesta_critica = respuesta(indice_critico);

recta_tangente = pendiente * (tiempo - tiempo_inflexion) + respuesta_critica;


plot(tiempo, respuesta)
plot(tiempo, recta_tangente)

xlim([0 3])

L = tiempo_inflexion - (respuesta_critica/pendiente)
%Obtencion de datos Controlador PID
Kp = 1.2 * tau / L;
Ti2=2*L;
Td = 0.5 * L;

Ki=Kp/Ti2;
Kd=Kp*Td;

%Control PID
controlador_pid = tf([Kd Kp Ki], [1 0]);
lazo_cerrado_pid = feedback(controlador_pid*Gp1, 1);

%********************************* Ganancias del controlador PID ***********


Kc = 5.25
Ti = 3.566
Td = 1.161

% *************************************** + Lazo de simulación +


****************************************
ts = T*(20+100); % tiempo de simulacion
N = round(ts/T); % # muestras para simulacion
r = 10*ones(1,N); % Senal de referencia (SP)
y(3+d) = 0; % Condicion inicial
u(3+d) = 0; % Condicion inicial

for k = 3 + d : N
y(k) = -a1*y(k-1) + b1*u(k-1-d) + b2*u(k-2-d) + 0.5*randn; % Ecuacion
recurrencias del sistema FODT
e(k) = r(k) - y(k); % Señ al de error
u(k+1) = u(k) + Kc * (e(k) - e(k-1) + T/Ti*e(k) + Td/T*(e(k) - 2*e(k-1) + e(k-2))); %
Algoritmo dead beat
end

t = -T : T : (N-2)*T; % Vector de tiempo


plot(t(2:end), y(2:end), t(2:end), r(2:end), 'r--', 'LineWidth', 2); grid on
legend('Proceso', 'Referencia')
xlabel('Tiempo (s)'); title('Respuesta del sistema')

Ruido para histeresis


for k = 3+d : N
y(k) = -a1*y(k-1) + b1*u(k-1-d) + b2*u(k-2-d) + 0.5*randn; % Ecuacion
recurrencias del sistema FODT
e(k) = r(k) - y(k); % Señal de error
%Asignacion de una entraa constante para el ruido del sistema.
u(k) = 1;
end

% se desea una estabilizacion de en 20 segundos, por lo cual agregamos un


% offset el cual nos dara ese periodo de tiempo para la estabilizacion.
offset = 20;
max_value = max(y(offset:end))
min_value = min(y(offset:end))

t = -T : T : (N-2)*T; % Vector de tiempo


plot(t(2:end), y(2:end), t(2:end), r(2:end), 'r--', 'LineWidth', 2); grid on
xlabel('Tiempo (s)'); title('Respuesta del sistema')

Link del video explicando el código


https://drive.google.com/file/d/1B105gtUy-R_RBydSH0kBJLTzgmfbP_4J/view?usp
=sharing

También podría gustarte