Академический Документы
Профессиональный Документы
Культура Документы
Facultad de Ingeniería
Departamento de Electrónica
Pontificia Universidad Javeriana
Resumen
En este primer acercamiento a los laboratorios previos al //-----------------------------------------------------------------------------------
proyecto de investigación y diseño se va a investigar y //Control ON/OFF de un motor
analizar los elementos (Motor DC) necesarios para //-----------------------------------------------------------------------------------
desarrollar posteriormente nuestro proyecto. Así mismo, //Programa que hace uso de un motor y un pulsador, mientras se
lo que buscamos es poder caracterizar el motor DC lo más //mantenga pulsado, el motor debe estar encendido (ON) de lo
posible, y que tengamos suficiente información acerca del //contrario debe estar apagado (OFF)
comportamiento de este actuador. Apoyado por //-----------------------------------------------------------------------------------
simulaciones en Matlab. //Declara puertos de entradas y salidas y variables
//-----------------------------------------------------------------------------------
Índice de Términos — Actuadores, Función de int pulsador =7; //Declara Pin del pulsador
transferencia, Matlab, Simulación, Sistema de control. int motor=3; //Declara Pin del motor
int vpulsador=0;
//-----------------------------------------------------------------------------------
I. INTRODUCCIÓN //Funcion principal
//-----------------------------------------------------------------------------------
//----------------------------------------------------------------------------------
//Control por PWM de un motor
//---------------------------------------------------------------------------------- Ilustración 2. Esquemático circuito controlado por PWM.
//Programa que hace uso de un motor y la Consola serial de
//Arduino, tiene la posiblidad de configurar al motor 5
//velocidades //distintas, desde el teclado del PC puedes B. Control del motor en lazo cerrado
//enviarle la velocidad //deseada. Las 5 velocidades se
//configuran con 5 PWM distintos. 1. Identifique el modelo de primer orden para el motor
//---------------------------------------------------------------------------------- DC, de la forma:
//Declara puertos de entradas y salidas y variables
//----------------------------------------------------------------------------------
int motor=3; //Declara Pin del motor
//----------------------------------------------------------------------------------
//Funcion principal
//----------------------------------------------------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia la comunicacion serial Arduino-PC
}
//----------------------------------------------------------------------------------
//Funcion ciclicla
//---------------------------------------------------------------------------------- Ilustración 3. Caracterización esperada del motor DC.
void loop() // Esta funcion se mantiene ejecutando
{
//Si hay algun valor en la Consola Serial Inicialmente lo que se busca es poder describir nuestro
if (Serial.available()){ sistema de primer orden (Motor DC), para después poder
//Variable donde se guarda el caracter enviado desde teclado aplicar e implementar técnicas de control (PID y
char a = Serial.read(); compensador de atraso). Entonces, lo primero que debemos
// Si el caracter ingresado esta entre 0 y 5 hacer es caracterizar nuestro motor DC, para esto,
alimentaremos nuestro circuito con una entrada constante de
if (a>='0' && a<='5'){ 5V, y después lo que haremos será, encender y apagar la
Pontificia universidad javeriana 3
Facultad de ingeniería – Departamento de electrónica
Controles – 14 DE MARZO DEL 2019
En la ilustración 6 observamos una señal cuadrada con ciclo 90% 80% 70% 60% 50%
util variable que es enviada a través de la tarjeta arduino 35% 25% 15% 5% 2%
(bloques azules) esta señal funciona como nuestro control de
RPM que depende del ancho de los pulsos, debido a esta señal
y al montaje que tenemos el motor va a empezar a girar a una
velocidad que debe ser obtenida utilizando el encoder. La
lectura del encoder puede ser visualizada abriendo el primer
scope (scope verde).
Pontificia universidad javeriana 4
Facultad de ingeniería – Departamento de electrónica
Controles – 14 DE MARZO DEL 2019
Se obtuvo la siguiente respuesta: pulso de entrada, en este caso sabemos que mi pulso siempre
cuenta con una amplitud de 1V, entonces:
90 77.48
80 77.2625
70 80.7
60 86.18
50 84.52
Ilustración 8. Respuesta de mi sistema para diferentes anchos de 35 89.45
pulsos.
25 98.6
15 115.4
A continuación, procedemos a calcular los distintos tiempos 5 203
de subida de mis respuestas, esto se puede ver mediante la 2 267.95
opción de Matlab “cursor de datos”, observo cual es la ∆𝒚
𝑲=
velocidad a la que mi Motor DC se estabiliza y después ∆𝒖 118.05425
calculo el 63.3% de ese valor. Al poner el cursor podré
observar mi tiempo de subida en segundos.
∆𝑦 (2)
𝐾=
∆𝑢
Según esto tenemos el siguiente diagrama de bloques: 𝑈(𝑠) (−1.075)𝑠 2 + 4.68𝑠 + 904.5 (12)
=
𝐸(𝑠) 𝑠 2 + 100𝑠
𝑘𝑝 𝑠 + 𝑘𝑖 + 𝑘𝑑 𝑠 2 118.05425 (7)
( )∗( )
𝑌(𝑠) 𝑠 (1.3274)𝑠 + 1
=
𝑅(𝑠) 𝑘𝑝 𝑠 + 𝑘𝑖 + 𝑘𝑑 𝑠 2 118.05425
1+( )∗( )
𝑠 (1.3274)𝑠 + 1
Ilustración 10. Diagrama de bloques del sistema controlado por un
controlador PID.
𝑘𝑑 = −0.0544
4 (8)
𝑇𝑠 =
𝜌𝜔𝑛 𝑘𝑝 = 4.365
𝑘𝑖 = 4.68
Se puede ver que se tiene mucha variabilidad al inicio de la
𝑘𝑑 = −0.0544
simulación, esto puede suceder por el valor que tiene 𝑘𝑑 , como
podemos observar esta constante se acerca mucho a cero, por lo que
para un comportamiento mucho menos ruidoso y variable,
𝑘𝑝 = 4.365 establecemos:
𝑘𝑑 = 0
4.68 (−0.0544)𝑁 (11)
𝑃𝐼𝐷 = 𝐶(𝑠) = 4.365 + + 𝑠
𝑠 𝑠 + 100
Pontificia universidad javeriana 6
Facultad de ingeniería – Departamento de electrónica
Controles – 14 DE MARZO DEL 2019
𝑆1,2 = −1 ± 0.75𝑗
0.7533 (15)
tan−1 ( ) = 71.56° 𝑘𝑝 𝑑𝑒𝑠𝑒𝑎𝑑𝑜 = 𝑘𝑐 (𝑎)𝑘𝑝
0.25
2 2
180° − 71.56° = 108.43° 𝑎= = = 10.86
Usando la condición del ángulo, tengo que sumar todos los √𝐾 √118.05425
ángulos que hay entre el eje real y la recta proyectada desde
mi cero a mi polo deseado. De esta manera prosigo a realizarlo Si 𝑘𝑐 = 1 y 𝑎 = 10.86, tenemos que:
con los polos y por ultimo debo hacer la resta de los ángulos
de los ceros y los ángulos de los polos. −1 1 (19)
𝑠= → − = −0.092
𝑎𝑇 𝑎
En mi planta no tengo ceros, solo tengo un polo que me
describe el sistema, por tanto:
−𝑎𝑛𝑔𝑢𝑙𝑜(𝑝1) = −108.43° (16) Ahora por elección, escogemos un cero cercano a ese polo:
1 (20)
−108.43° ≠ −180° − = −0.093
𝑇
Esto me quiere decir, que la ganancia de mi compensador no
es suficiente, por lo tanto, mi compensador debe aportar un 𝑇 = 10.752
ángulo de -71.57°.
𝑝𝑜𝑙𝑜 → −0.00855
Se debe diseñar un compensador en atraso de fase, por lo
tanto, tenemos: 𝑐𝑒𝑟𝑜 → −0.093
1 (18)
𝑒𝑝 𝑑𝑒𝑠𝑒𝑎𝑑𝑜 =
1 + 𝑘𝑝 𝑑𝑒𝑠𝑒𝑎𝑑𝑜
Pontificia universidad javeriana 8
Facultad de ingeniería – Departamento de electrónica
Controles – 14 DE MARZO DEL 2019
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
(24)
118.82
𝜔𝑛 2 (√1 − ( )) = 0
𝜔𝑛
𝑠 + 0.095 118.05425
|𝑘𝑐 ∗ ( )∗ | =1
𝑠 + 0.0085 (1.3274)𝑠 + 1 −118.8
1 = (0.999) ∗ (1) ∗ 𝑘𝑐
𝑘𝑐 = 1.0009
Pontificia universidad javeriana 9
Facultad de ingeniería – Departamento de electrónica
Controles – 14 DE MARZO DEL 2019
III. CONCLUSIONES
[1] https://uvirtual.javeriana.edu.co/bbcswebdav/pid-155143-
dt-content-rid-
557530_1/courses/004107_1910_1275/practica%201%20Mo
torDC_arduino.pdf
[2] https://uvirtual.javeriana.edu.co/bbcswebdav/pid-155129-
dt-content-rid-
557523_1/courses/004107_1910_1275/clase%203%20Tipos
%20de%20control_sintonizacion.pdf
[3] https://uvirtual.javeriana.edu.co/bbcswebdav/pid-155131-
dt-content-rid-
557525_1/courses/004107_1910_1275/clase%205%20Com
pensadores_LGR.pdf
[4]http://www.mathworks.com/help/supportpkg/arduino/exa
mples/drive-with-pid-control.html?refres
h=true#zmw57dd0e2171