Practica 1- Modelamiento Motor DC
Luis Carlos Bravo, David Checa
Abstrab – In the following laboratory, a practical study of de forma bidireccional, es decir: en modo avance y
the angular velocity detection system and the actuator or retroceso.
power stage of the DC motor will be carried out using
pwm control, where the speed and revolutions per minute Los motores que puede hacer mover este circuito
will also be indicated with the help of Arduino and integrado, van desde los 600 mA con voltajes de
MATLAB software, which allows us to show the transfer
alimentación desde los 4.5 a 36V, puede impulsar o mover
function with its respective graph.
cargas de tipo inductivas aparte de los motores como los
I. INTRODUCCIÓN solenoides y relés
En el siguiente trabajo se realiza un estudio práctico con
la necesidad medir la velocidad de un motor dc, por lo
que para la realización de este proyecto es indispensable
determinar la velocidad de una hélice conectada al motor
siendo captada esta por el sensor Esconder FC-03 y
enviada por medio de conexiones al Arduino.
Al obtener la señal por sus revoluciones vamos a obtener
las graficas en matlab de su funcion de transferencia y
parametros requeridos
II. MARCO TEÓRICO fig 3: integrado l239d
Motor DC
Está compuesto de un estator y un rotor. En muchos Arduino
motores DC generalmente los más pequeños, el estator Es una plataforma de hardware de código abierto, basada
está compuesto de imanes para crear un campo magnético. en una placa de circuito impreso funciona como un
En motores corriente continua más grandes este campo pequeño ordenador esta cuenta con entradas y salidas,
magnético se logra con devanados de excitación de analógicas y digitales, en un entorno de desarrollo que está
campo. El rotor es el dispositivo que gira en el centro del basado en el lenguaje de programación, para el desarrollo
motor cc y está compuesto de arrollados de cable de una interacción con su software
conductores de corriente continua. ¡Esta corriente continua
es suministrada al rotor por medio de las escobillas!
Fig. 2: placa Arduino uno.
Encoder FC-03. Este sensor para óptico utiliza el
opto-interruptor infrarrojo MOCH22A.
cuenta con dos partes: Un emisor IR y un receptor o
Fig. 1: Motor dc 1. sensor IR. Entre el emisor y receptor IR existe un espacio
para el objeto que bloqueará el paso de luz (disco
Integrado L239D ranurado). Los pulsos son digitalizados comparador
El circuito integrado L293D es un puente H de tipo entregando pulsos TTL que pueden ser interpretados por
cuádruple de alta corriente el cual está diseñado para hacer un microcontrolador como Arduino o Pic.
Este modelo de encoder ha sido diseñado para trabajar con
girar dos motores de corriente directa en ambos sentidos o plataformas de robótica móvil: seguidores de línea, sumos,
laberinto. También son utilizados en contadores de RPM
(Revoluciones por minuto) en motores DC/AC o como
sensor de final de carrera.
Fig. 3: Esconder FC-03.
Objetivos
: 1. Identificar la función de transferencia del Motor DC
utilizando los comandos del toolbox de identificación de
Matlab.
2. Disẽnar el controlador PID basandose en el metodo de
Ziegler-Nichols. Al compilar y subir nuestro código obtenemos las
revoluciones del motor en el encoder con un cambio de
pwm de 0,70,100,250 siendo el máximo 250 que será
III. PROCEDIMIENTO controlado por nuestro pin 3 y obtenemos una variación al
presionar los otros pines.
Paso 1. función de transferencia
En primer lugar vamos a obtener la función de Cuando tenemos estos cambios de velocidad vamos al
transferencia y para esto cargamos el código en Arduino código de matlab que nos ayuda a obtener la función de
de revolucionar el motor pwm y subimos el código a transferencia .
nuestro Arduino.
En siguiente el código tenemos una variación de voltaje configuramos el puerto y el cmd arduino que es el pin que
mediante esto hace variar la velocidad del motor con los nosotros tenemos ah mayor revoluciones y obtenemos su
pines 1,2,3 y hace que las revoluciones que tome nuestro función de transferencia.
encoder también varían.
Para que la señal no sea con ruido se implementó un filtro
Y sus datos de su función con una eficacia del 82%
aproximadamente y también con un step del 4.4112
Continuamos con los resultados de la ecuación y
obtenemos los siguientes resultados
con su función de transferencia pasamos al siguiente paso
Paso 2. Cálculo de ganancias, ki,kd,kp
Para el cálculo de ganancias requerimos la sintonización
de ziegler-Nichols
Paso 3. controlador pid
Aplicamos nuestro controlador pid al control de velocidad
en nuestro código de arduino agregamos las variables para
obtener una nueva señal de RPS.
4. video controlador PID
https://youtu.be/1CMGJ3jEAG8
IV. CONCLUSIONES
- Es un proceso muy complejo donde las señales al
simularlas varias veces cambian su
comportamiento y su eficacia.
- En nuestro proceso al cambiar de motor nos
damos cuenta que los encoder no pueden detectar
velocidades muy altas y sus valores en cada
proceso van a ser diferentes y muy inestables.
- Los valores de ziegler nichols pueden ser
diferentes pero en nuestro caso los valores fueron
muy precisos para obtener una buena señal aunque
Ingresamos los datos de kd,ki,kp, y configuramos nuestro no alcanzaba su valor máximo de RPS siempre
r que son los rps que queremos llegar estuvieron muy cerca.
V. REFERENCIAS
[1]https://www.google.com/search?q=Encoder+FC-03.&rl
z=1C1ALOY_esEC934EC934&sxsrf=APq-WBsHetBK6
wWbv9OJxeK8rx39h8wqeA:1650654920854&source=ln
ms&tbm=isch&sa=X&ved=2ahUKEwiL7NDhsKj3AhVG
RjABHd_MBcEQ_AUoAXoECAEQAw&biw=1536&bih
=722&dpr=1.25#imgrc=wL_NcI7J5wJlBM&imgdii=G6K
mrX27Imrj3M
[2]
También agregamos a nuestro void setup la referencia,
https://www.electrogeekshop.com/encoder-y-arduino-tutor
tiempo de muestreo, error asignado y generamos la señal.
ial-sobre-el-modulo-sensor-de-velocidad-ir-con-el-compar
ador-lm393-encoder-fc-03/
ya que este el sistema recopilado y subido a nuestro
arduino vamos a matlab y subimos nuestro código y
[3]https://www.google.com/search?q=toolbox&rlz=1C1A
obtenemos nuestra respuesta con la referencia que
LOY_esEC934EC934&oq=tolbo&aqs=chrome.1.69i57j0i
tomamos que fueron 100 RPS pero en su código tomamos
10i433j0i10j0i10i512j0i10l6.4073j0j7&sourceid=chrome
como referencia el pin 2 el cual obtuvimos una señal entre
&ie=UTF-8
los 40 y 50.
[4]https://www.cartagena99.com/recursos/alumnos/apunte
s/7_FUNCION_DE_TRANSFERENCIA_PRIMER_ORD
EN.pdf
[5]
https://www.zamux.co/sensor-de-velocidad-herradura-enc
oder-fc-03-optoacoplador-contador-de-pulsos-rpm?similar
_product=true
[6]
https://www.amazon.com/-/es/Engineering-1N5402-rectificador-
DO-201AD-Paquete/dp/B00CHTMOBK
[7]
https://www.amazon.com/-/es/Engineering-1N5402-r
ectificador-DO-201AD-Paquete/dp/B00CHTMOBK
[8]
https://articulo.mercadolibre.com.co/MCO-55947340
2-motor-dc-3v-6v-para-proyectos-de-electronica-_JM