Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modelado de un Motor DC
Asignatura: Integración 1
Modelado matemático
- Funciones diferenciales
(1) 𝐿 ∙ 𝐼 ̇ = −𝑅 ∙ 𝐼 − 𝐸𝑎 + 𝑉
(2) 𝐽 ∙ 𝑤̇ = 𝑇𝑚 − 𝑏𝑤
(3) 𝑇𝑚 = 𝑘𝑖 ∙ 𝐼
(4) 𝐸𝑎 = 𝑘𝑚 ∙ 𝑤
Al evaluar el sistema al llevarlo a un estado estacionario, se puede considerar de dos formas para
efectos de conseguir los parámetros del sistema. En el primero, se considera que se entrega un
voltaje constante, pero no existe un movimiento del motor, al no haber movimiento la fórmula 2 se
convierte en 0 y la fórmula 1 pasa a convertirse en la fórmula (5), es decir, un sistema electrónico
LR que al evaluar su estado estacionario se puede determinar la resistencia dividiendo el voltaje en
la corriente, además si se evalúa su estado transitorio aparece el termino tau, este es el tiempo en
el que el sistema alcanza el 63% de la corriente obtenida en estado estacionario, que también en el
caso de un circuito LR se puede considerar que tau es la inductancia dividido en la resistencia, por
lo que obteniendo este tiempo se puede encontrar la inductancia del motor. En segundo lugar, se
impone una entrada de voltaje constante, en el que si existe movimiento del motor y evaluando
tanto la fórmula (1) como la fórmula (2) en estado estacionario, es decir que tanto la aceleración
como la corriente derivada se hacen cero, generándose las formulas (6) y (7) con las cuales se puede
determinar tanto las constantes ki, km y b. Por último, al existir movimiento la parte transitoria de
la fórmula (2) pasa a tener un tau el cual es definido como se muestra en la fórmula (8) y del cual
podemos despejar la inercia del motor.
(5) 𝑉 = 𝑅 ∙ 𝐼 + 𝐿 ∙ 𝐼 ̇
𝑉−𝑅∙𝐼
(6) 𝑘𝑚 = 𝑤
𝑇𝑚
(7) 𝑏 =
𝑤
En primer lugar, la resistencia se obtuvo por medio de un multímetro que como se aprecia en la
figura (1.1) se mide desde las patas de entrada de voltaje en modo de medición de resistencia y se
obtiene directamente los ohmios, hay que tener en cuenta que al realizar la medición es necesario
dejar midiendo por un tiempo de tal forma que se estabilice la medición y tomando el rango de
ohmios en que varía en un determinado tiempo se puede hacer un promedio.
En tercer lugar, el motor se conecta a una fuente de voltaje y se le mide la corriente por medio de
un amperímetro, además al eje del motor se debe de colocar una rueda dentada que unida a un
medidor de velocidad detecte los radianes por segundo que tiene el motor, de esta forma se tiene
todo lo necesario para utilizar la fórmula (6) y la fórmula (7), tan solo es necesario reemplazar los
valores de resistencia, voltaje, corriente y velocidad en la fórmula (6) para obtener el ki y con el
resultado obtenido ya que ki es igual a km se reemplaza en la fórmula (7) obteniendo así el
coeficiente de viscosidad.
Materiales a utilizar
- Materiales entregados
Dentro de los materiales necesarios para el proyectos se encuentran, una protoboard, una rueda
dentada con 20 agujeros con la cual se puede medir la velocidad del motor, un motor dc de 12[V]
en este caso es un modelo con una reducción generando que las rpm salidas del motor son de
53[RPM] [1], un optoacoplador ranurado con el cual se puede censar cada vez que algo obstruye la
sección ranurada [2], un MOSFET en este caso el IRFZ44 que es utilizado para controlar el motor de
12[V] utilizando una señal de control creada por un Arduino [3], un modulo de sensor de corriente
con el cual se puede medir la corriente utilizada por el motor y convertirla en un voltaje [4], que
puede ser usada por un microcontrolador (en este caso un Arduino) y mandar la señal analógica al
computador con el fin de tener los datos en el computador y poder ratificarla. Por último, también
se dio una placa Arduino a la cual se le pueden dar instrucciones por medio de código y diseñar
diversos circuitos con los cuales se puede controlar el voltaje de entrada del motor y recibir la
velocidad y corriente como entrada.
- Materiales extras
Otros materiales utilizados al lo largo del proyecto fueron impresos en 3d como lo son la placa de la
figura (2.1) esta fue diseñada en forma de modulo es decir que existe este primer modulo que tiene
un espacio para la protoboard y a los lados van dos módulos más que se pueden quitar o no
dependiendo de la situación, otro de los módulos es el de la figura (2.2) con el cual se contenía el
Arduino y por último el tercer modulo es el mostrado en la figura (2.3) con el que se sostenía el
motor por medio de bridas plásticas, para que no se moviera y además tiene un espacio para colocar
el optoacoplador y poder medir con sencilles las revoluciones. Finalmente se realizó la pieza
mostrada en la figura (2.4) que sirve para unir el motor a la rueda dentada.
Figura 2.1. Modelo hecho en inventor del soporte del motor junto con el optoacoplador.
Control del motor
- Circuito electrónico
Para poder controlar el motor a través del MOSFET se realizo el circuito que se muestra en la figura
(3.1) en el que el motor en este caso representado por una resistencia y un inductancia se conecta
entre el drain del MOSFET y una fuente de 12[V], luego source se conecta a tierra, por último, la
gate del MOSFET se conecta a un pin del Arduino que soporte PWM en este caso el pin 6 del Arduino.
Además, para verificar que se puede controlar por medio de señales externar se realizo un divisor
de voltaje utilizando un potenciómetro en el cual una de las patas exteriores se conecta a tierra,
otra de las patas externas se conecta a 5[V] y la pata de en medio se conecta a un pin analógico del
Arduino como el pin A0 y en serie se puede poner una resistencia de 1[Kohm] para limitar la
corriente que sale del Arduino. Es necesario tener en cuenta que tanto la tierra del Arduino como la
tierra del motor deben de ser la misma.
Figura 3.1. Circuito de control del motor por medio de Arduino y un potenciómetro.
- Código de Arduino
En el fondo lo que sucede es que la señal recibida del pin A0, es decir desde el potenciómetro, toma
valores de entre 0 y 1023 por lo que para que se puedan enviar señales por PWM estas se
transforman a una señal de entre 0 y 254 y se envía por el pin 6.
Una de las posibles mejoras que se plantearon para esta parte fue la de utilizar circuito push-pull de
BJT pudiendo utilizarse un 2n2222 npn, junto a un 2n2907 esto haría que la señal entregada por el
Arduino pueda tener un rango más amplio de operación, pues el motor tiene un voltaje mínimo en
el cual comienza a girar.
Para la prueba del sensor de corriente se conectó el motor a una fuente de 12[V] colocando en serie
un multímetro midiendo la corriente y el sensor de corriente, a este último en sus salidas se le
conecta otro multímetro midiendo la salida de voltaje que entrega, luego se ve cuando al motor se
le entregan 12[V] y se utiliza la corriente y el voltaje medidos por los multímetros como los valores
máximos, se realiza lo mismo para un voltaje de 0[V] siendo estos los valores mínimos. Finalmente,
la señal dada por el sensor se divide para medir tanto con el Arduino como con el Voltímetro, para
corroborar que la señal dada sea la correcta.
- Código de Arduino
En el código del sensor de corriente se colocan todos los datos obtenidos de la prueba mencionada
anteriormente, con los cuales se ve la sensibilidad, este dato determina cuantos volts varia la salida
del sensor según la corriente que entrega el motor, luego se crea una función en la que se hace un
promedio de corriente cada cierto intervalo de tiempo con el fin de eliminar una parte de ruido que
podría entregar el sensor de corriente.
Con el fin de mejorar la medición de corriente lo mejor es censar el motor utilizando directamente
el MOSFET pues la señal PWM entrega un ruido debido a la naturaleza de la señal además en vez de
utilizar un multímetro es mejor utilizar un osciloscopio pues entre la señal real y no una señal
suavizada como lo es la entregada por el multímetro, sumado a que los datos pueden ser puestos
en Excel donde se puede conseguir directamente la función de la gráfica generada por el sensor en
donde se saque directamente la sensibilidad ahorrando espacio y tiempo a la hora de hacer correr
el Código. Además, con el fin de mejorar la señal de salida del sensor es aconsejable utilizar un
amplificador operacional como lo puede ser un LM324 usando un circuito de amplificador
diferencial para aumentar el rango de voltaje que entregue el sensor además de un filtro pasa bajos
que filtre un poco el ruido generado por el PWM. Por último, con respecto al código en vez de usar
una función que promedie cada cierto tiempo las señales entregadas es mejor usar una función de
media móvil en el que los datos se van guardando y cada ciclo se elimina el dato más viejo y se
agrega el nuevo para finalmente hacer un promedio, esto sería como un “filtro pasa bajos hecho
con código”.
Medición de velocidad
- Optoacoplador
- Circuito de medición
- Prueba de medición
Para medir si el sensor de velocidad funciona se puede dividir la señal que se entrega al Arduino
para también medir con un osciloscopio la frecuencia que entrega la señal, de esta forma se
corrobora si la frecuencia que se muestra multiplicada por 3 es igual a las RPM que muestran en el
Arduino, como se aprecia en la figura (5.3).
Figura 5.3. Señal obtenida del optoacoplador en el osciloscopio al hacer girar el motor con 12[V].
- Código de Arduino
Este código fue echo utilizando interrupciones es decir que solo censa cuando el sensor eleva su
voltaje y no en todo momento ya que esto puede generar fallos, además de ralentizar el
procesamiento del código. Luego de medida la interrupción se va acumulando y cada segundo se
hace un promedio de la velocidad en rpm que se obtienen, para finalmente imprimir lo resultados
en el puerto serial.
Una de las mejoras en cuanto al circuito puede ser la de utilizar un amplificador operacional como
el LM324 como un comparador esto mejoraría la señal recibida por el Arduino. Otra mejora posible
esta vez en el código es la de disminuir el tiempo de medición y al igual que en el sensor de corriente
agregarle el “filtro pasa bajos hecho con código” con el fin de tener una respuesta más suabe.
Simulación de Matlab
Para la simulación de Matlab se utilizo Simulink en el cual se puede trabajar con bloques de
programación como se aprecia en la figura (6.1), en el que tenemos el modelo simulado del motor,
aquí cada triangulo es un parámetro y el cuadrado con el símbolo de “1/s” hace referencia a una
integración que es necesaria para obtener la corriente y la velocidad que se muestra en
out.Corriente y out.Velocidad respectivamente. Además la entrada de voltaje puede ser cambiada
de un escalón a un tren de pulsos. Finalmente, conociendo los parámetros obtenidos anteriormente
siendo estos: R=43[ohm], L=3.49[mH], ki=km=1.297, b=0.028 y J=0.00273. Se puede obtener las
gráficas del modelo a un escalón de V=12[V] representadas en la figura (6.2), las que concuerdan
con los datos que se conocen del motor de unacorriente I=120[mA] y una velocidad w= 5.5[rad/s]
Referencias
[1] “37mm Diameter Electric Geared motor-ZGB37RG-Eccentric Shaft”, (2022), obtenido:
https://www.zhengkemotor.com/product/zhengkemotor_product_DCGearMotor_Brushed_Eccen
tricShaft_37mmDiameter_RoundFlange_520Motor-en.html
https://www.neoteo.com/optoacopladores-electronica-basica/
https://datasheetspdf.com/datasheet/MOCH22A.html
https://uelectronics.com/producto/sensor-de-corriente-acs712-30a/