Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE I NGENIERÍA
I NGENIERÍA EN AUTOMATIZACIÓN
Control Avanzado
Práctica 3
Profesor:
Dr. Roberto Valentín Carrillo Serrano
Equipo 1
Integrantes:
21 de octubre de 2021
Índice
1. Objetivo 2
2. Marco Teórico 2
3. Materiales y Métodos 3
3.1. Equipo y materiales para la toma de mediciones . . . . . . . . . . . . . . . . . . . 3
3.2. Equipo y materiales para la representación y visualización de datos . . . . . . . . . 4
3.3. Métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Resultados 8
5. Discusión de Resultados 9
5.1. Luna Ramos Javier Iván . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.2. Morales Pacheco Juan Pablo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.3. Narváez González Miguel Gerardo . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.4. Ruiz Perea Juan Carlos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.5. Velasquez Arredondo Marco Antonio . . . . . . . . . . . . . . . . . . . . . . . . 10
6. Conclusiones 10
6.1. Luna Ramos Javier Iván . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.2. Morales Pacheco Juan Pablo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.3. Narváez González Miguel Gerardo . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6.4. Ruiz Perea Juan Carlos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6.5. Velasquez Arredondo Marco Antonio . . . . . . . . . . . . . . . . . . . . . . . . 11
6.6. Conclusiones del equipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Bibliografía 11
7. Anexos 12
Índice de figuras
1. Diagrama de la plataforma experimental. . . . . . . . . . . . . . . . . . . . . . . . 4
2. Gráfica generada mediante sisotool. . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Valores generados mediante sisotool. . . . . . . . . . . . . . . . . . . . . . . . . . 6
4. Esquemático del controlador PID utilizado para la simulación. . . . . . . . . . . . 7
5. Gráficas del sisotool con las ganancias finales. . . . . . . . . . . . . . . . . . . . . 8
6. Gráficas del experimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1. Objetivo
Controlar la posición de la flecha de un motor de CD con escobillas usando un controlador PID
discreto cumpliendo condiciones de diseño especificadas por el cliente.
2. Marco Teórico
Un controlador PID es un mecanismo de control por realimentación ampliamente usado en
sistemas de control industrial. Este calcula la desviación o error entre un valor medido y un valor
deseado. La ecuación de un controlador PID es la siguiente:
Z t
de(t)
u(t) = kp e(t) + ki e(t)dt + kd (1)
0 dt
El algoritmo del control PID consiste en tres parámetros distintos: el proporcional, el integral y
el derivativo. El valor proporcional depende del error actual, el integral depende de los errores
pasados y el derivativo depende de los errores futuros. La suma de estas tres acciones es usada
para ajustar el proceso por medio de un elemento de control. Ajustando estas tres variables en el
algoritmo de control del PID, el controlador puede proveer una acción de control diseñado para los
requerimientos del proceso en específico.
En un controlador PID, la acción derivativa aporta la característica de anticipación dentro del
sistema de control.
Para esta práctica se utilizó un controlador PID con derivada de e(t) con t = kTs y adelanto de
integración rectangular de e(t), (Carrillo-Serrano, 2021):
U (z) Ts z−1 z kd z − 1
= kp + ki + + kd = kp + ki Ts + (2)
E(z) z−1 Ts z − 1 Ts z
kd
kpd = kp ; kid = ki Ts ; kdd = (3)
Ts
U (z) z z−1 kpd z(z − 1) + kid z 2 + kdd (z − 1)2
= kpd + kid + kdd = (4)
E(z) z−1 z z(z − 1)
U (z) (kpd + kid + kdd )z 2 + (−kpd − 2kdd )z + kdd
= (5)
E(z) z2 − z
U (z) (kpd + kid + kdd ) + (−kpd − 2kdd )z −1 + kdd z −2
= (6)
E(z) 1 − z −1
b0 = kpd + kid + kdd ; b1 = −kpd − 2kdd ; b2 = kdd (7)
Se sustituyen las variables anteriores en la ecuación 6:
U (z) b0 + b1 z −1 b2 z −2
= (8)
E(z) 1 − z −1
2
Se despeja U (z):
3. Materiales y Métodos
3.1 Equipo y materiales para la toma de mediciones
Computadora DELL inspiron Intel(R) Core(TM) i5-8250U CPU @ 1.60 [GHz] 1.80 [GHz]
RAM 8.00 [GB].
Computadora AMD Sempron(tm) 140 Processor 2.70 [GHz] RAM 2.00 [GB].
1 Microcontrolador PIC16F877A.
1 Motor CD.
1 MAX232.
1 L298N.
1 DM74LS08.
3 4N28.
4 Diodos.
Capacitores:
• 2 de 15 [pF ].
• 2 de 22 [pF ].
• 8 de 14 [µF ].
Resistencias:
• 1 de 330 [Ω].
• 2 de 1 [kΩ].
• 1 de 100 [kΩ].
3
3.2 Equipo y materiales para la representación y visualización de datos
Software MATLAB.
3.3 Métodos
Para la prueba física de nuestro controlador utilizamos la plataforma experimental de la figura
1 la cual nos sirve para controlar la posición de la flecha de un motor de corriente directa.
Para nuestro experimento, las condiciones de diseño fueron tr = 0.1 [s] y un sobrepaso no
mayor a S.P. = 27 [ %]. La capacidad máxima de la plataforma experimental es de 10 [V ], por lo
tanto, para no estar por encima de la capacidad máxima instalada sabemos que:
10
kp ≤ (13)
π
kp ≤ 3.183098862 (14)
4
Con ayuda de la herramienta sisotool (figura 2) de MATLAB y las condiciones de diseño, se usaron
ceros reales diferentes, se obtuvo:
Ahora con ayuda de MATLAB, se utilizó un script que nos ayuda a calcular rápidamente los
resultados tanto de las constantes del controlador y los valores para los coeficientes del controlador
ya discretizado. El script utiliza los valores de kp , ki , kd y Ts , que corresponde al periodo de
muestreo con un valor de Ts = 0.01 [s], para después arrojar los valores de bo , b1 y b2 , con ayuda
de las ecuaciones 3 y 7, y así poder cargarlos más facilmente a la correspondiente simulación de
Simulink, en un diagrama de bloques para el sistema continuo y otro para el sistema discreto.
Entonces obtenemos que:
Los ceros reales y diferentes quedaron ubicados en los valores que se muestran en la figura 3.
5
Figura 3: Valores generados mediante sisotool.
Sin embargo, estos valores no resultaron aptos para usarlos en la plataforma experimental, por
lo que en la sesión de laboratorio se recurrió a la metodología empírica para obtener valores que se
adecuaran a la realización del experimento en la dicha plataforma.
De esta manera, los valores finales para las ganancias fueron:
En función de estas ganancias se obtuvieron los siguientes valores para b0 , b1 y b2 fueron los
siguientes:
b0 = 17.998; b1 = −32.799; b2 = 14.850 (18)
6
Figura 4: Esquemático del controlador PID utilizado para la simulación.
Para probar los coeficientes obtenidos se construyeron diagramas de bloques en Simulink. Di-
cho diagrama se muestra en la figura 4 y representa la obtención del controlador PID de 3 maneras
distintas, la primera es de manera analógica, la segunda es por métodos numéricos y la tercera
representa la forma digital.
7
4. Resultados
Debido a la complejidad de obtener el tiempo de respuesta deseado, se nos fue dada la opor-
tunidad de diseñar para un tr = 0.11 [s] y S.P. = 27 [ %]. De la simulación realizada obtuvimos
un comportamiento que cumplió con los requisitos. En la primera gráfica se muestra el comporta-
miento de la planta en el tiempo continuo y en la tercer gráfica el comportamiento de la misma pero
discretizado. En base a estas dos gráficas podemos comparar los resultados obtenidos al discretizar
el controlador PID.
8
Figura 6: Gráficas del experimento.
Los valores obtenidos en la gráfica de la figura 6 son mejores de los que se esperaba obtener en
base a la simulación previamente hecha puesto que esta nos índicaba que estabamos prácticamente
al borde de los requisitos, sin embargo, en las gráficas de la figura 6 se observan valores de tr =
0.1098 [s] y un sobrepaso del 18.98 [ %] con lo cual estos valores son prácticamente sobrados
y mucho mejor de lo que esperabamos. Estos cambios pueden ser debido a variaciones en los
parámetros de la planta.
5. Discusión de Resultados
5.1 Luna Ramos Javier Iván
Los resultados obtenidos mediante el sisotool sirvieron unicamente como referencia para nues-
tra práctica puesto que después de realizar un análisis en clase con el profesor se llegó a la conclu-
sión de que no eran los valores correctos o cuando menos ideales para las ganancias del controlador,
por ende, se recurrió al método empírico y de esta forma logramos obtener valores para las ganan-
cias que si bien nos permitieron lograr el objetivo de la práctica quedamos un poco sobrados como
se puede observar en la figura 6.
5.2 Morales Pacheco Juan Pablo
Para esta práctica aprendimos a implementar un controlador PID de manera digital, la comple-
jidad empezó desde que nosotros tuvimos que usar herramientas en MATLAB para encontrar las
9
ganancias y estas nos permitan cumplir con las condiciones especificadas al inicio de la práctica.
La mejor forma para encontrar las ganancias fue fijar kp para obtener un valor inicial de voltaje no
mayor al máximo y modificar ki y kd de tal forma que nos acerquemos al tr y al S.P. deseados.
5.3 Narváez González Miguel Gerardo
En la sección de métodos hicimos los cálculos correspondientes para las ganancias del con-
trolador PID, sin embargo, estos valores de ganancia tuvieron que ser reajustados una vez que se
usó el PID discretizado por integración rectangular. Lo interesante fue ver el adelanto que sufrió la
planta cuando se implementó el controlador en la plataforma experimental, es de tenerse en cuenta
este efecto para futuros diseños.
5.4 Ruiz Perea Juan Carlos
Para poder realizar un correcto diseño de un PID discreto se utilizó el software MATLAB,
usando los valores dados por el profesor de tr y de S.P. Sin embargo, fue necesario obtener los
valores ideales de ki y kd para que el controlador estuviera bien sintonizado. Para lograr esto se
propuso un valor que estuviera fijo en kp mientras se modificaban los valores de las variables ki y
kd , procurando no exceder los valores iniciales.
5.5 Velasquez Arredondo Marco Antonio
Al utilizar la herramienta de sisotool en MATLAB obtuvimos los valores de kp , ki y kd que
funcionan tanto para el sistema continuo, el sistema de control por métodos numéricos y el sistema
discreto, recalcando que se necesitan algunos cálculos para llegar a los coeficientes de cada sistema.
Sin embargo tuvimos que hacer modificaciones a nuestros valores de forma empírica para lograr
las condiciones de diseño propuesta.
6. Conclusiones
6.1 Luna Ramos Javier Iván
El poder diseñar e implementar un controlador es algo muy interesante puesto que se suele estar
acostumbrado a no salir de lo teórico, sin embargo, con la aplicación en la plataforma experimental
se pudo observar como funciona realmente un controlador y de lo que se puede llegar a lograr con
esta herramienta.
6.2 Morales Pacheco Juan Pablo
El aprender este tipo de implementaciones de controladores es bastante buena ya que hablando
de código se reduce a básicamente una línea en el microcontrolador comparándolo con la forma
que antes usábamos por métodos numéricos facilita bastante la ejecución del programa. Pienso que
este tema tiene un gran peso en el ambiente laboral ya que en una empresa buscaran aprovechar al
máximo el tiempo por lo que si el microcontrolador trabaja de una manera más óptima se podría
ver reflejado.
10
6.3 Narváez González Miguel Gerardo
Desde prácticas pasadas fuimos introducidos a la transformada z, pero no fue hasta esta, donde
la aplicamos al discretizar un controlador PID. Esta maniobra hace mucho más fácil la implemen-
tación en sistemas digitales, e incluso la longitud del código disminuye. Poseer esta herramienta es
muy útil para nosotros que trabajamos con sistemas digitales.
6.4 Ruiz Perea Juan Carlos
Con el desarrollo de esta práctica aprendí que las ecuaciones o funcionaes implementadas en un
sistema pueden no funcionar del todo correctamente por que en casos así, se tendrá que buscar una
modificación que no altere valores deseados pero que proporcione un adecuado funcionamiento.
6.5 Velasquez Arredondo Marco Antonio
En esta práctica vimos una forma de discretizar un controlador PID con ayuda de la transfor-
mada z. Este método nos ayuda a tener un controlador programable en casi cualquier lenguaje de
programación y así tener sistemas discretos y conocerlos como se llega a ellos. Es muy bueno co-
nocer este tipo de métodos para la discretización, ya que hoy en día la mayoría de los controladores
son totalmente digitales. Cabe mencionar que implementar un controlador discretizado, como el de
esta práctica, en algún dispositivo programable tal como un microcontrolador es más práctico.
6.6 Conclusiones del equipo
La transformada z fue de gran utilidad al discretizar un controlador PID, ya que comparandolo
con el controlado realizado mediante métodos numéricos este se reduce en cuanto líneas de código
y es más sencillo de comprender e implementar, al ser un método algebraico relativamente básico
es muy útil y aplicable en diversas áreas o proyectos.
Referencias
Carrillo-Serrano, R. V. 2021. Material didáctico control avanzado. Notas de clase.
11
7. Anexos
Código del controlador
#include <iostream>
#include <string.h>
#include <dos.h>
#include <windows.h>
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#define Ts 0.01
#define ppr 400.0
#define pi_ 3.141593
#define kp 3.1
#define ki 4.8
#define kd 0.1485
if((fp=fopen("MONIT.txt","w+"))==NULL)
{
printf("No se puede abrir el archivo.\n");
exit(1);
12
}
/*abrimos el puerto*/
h=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(h == INVALID_HANDLE_VALUE)
{
/*ocurrio un error al intentar abrir el puerto*/
}
/*Configuramos el puerto*/
dcb.BaudRate = 115200;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
dcb.fBinary = TRUE;
dcb.fParity = TRUE;
DWORD n;
char enviar;
int recibido;
13
/* Enviamos... */
14
pwmf=u;
if(pwmf<0)
pwm=pwm+128;
//Imprimiendo en pantalla
printf("%3.3f\t%3.3f\t%3.3f\t%3.3f\t%3.3f\n",t,r,y,u,e);
flagcom=0;
t=t+Ts;
}
}//cierre del else
//printf("%c",recibido);
//cout << recibido; /* mostramos en pantalla */
}//CIERRE WHILE()
}//CIERRE WHILE()
fclose(fp);
return 0;
}
15