Escolar Documentos
Profissional Documentos
Cultura Documentos
TESIS
PRESENTA
ASESORES:
En esta tesis se presenta el desarrollo del control de velocidad para un motor sin es-
cobillas de corriente directa llamado BLDC, por sus siglas en inglés (Brushless Direct
Current), de la marca LINIX, modelo 45ZWN24-40, con una tensión nominal de 24V,
un par de 0.924 Nm, 2.3 A y velocidad nominal de 4000 RPM. Lo anterior se logra por
medio de un sistema embebido, en especı́fico un controlador digital de señales DSC, por
sus siglas en inglés (Digital Signal Controller ) 56F8006 de Freescale.
Con el control diseñado en este trabajo, se elaboró un perfil de velocidad el cual es com-
parado contra uno cualitativamente similar mostrado en la nota de aplicación DRM108
de Freescale , en esta comparación se observó que tiene una mejor respuesta el sistema
con el control aquı́ presentado. El algoritmo diseñado en esta investigación para obtener la
velocidad es capaz de medir cualquier rango, calculando la velocidad en menos de 20 ms,
dado que este es el lapso de muestreo empleado en el algoritmo de control. En oposición,
a las notas de aplicaciones de fabricantes enfocados al control de motores como Microchip
o Freescale, en las cuales se utilizan al menos dos algoritmos para obtener la velocidad de
acuerdo al rango de estás, es decir, velocidades altas o bajas.
El control se realizó utilizando las técnicas de control trapezoidal, por medio de una
conmutación unipolar complementaria. Los sensores de efecto Hall detectan la posición
del rotor cada 120◦ eléctricos, lo que se traduce en dos revoluciones eléctricas por una
mecánica, y con estos datos es posible medir la velocidad angular, la cual sirve como
vii
viii
This thesis presents the development of speed control for a brushless direct current, ca-
lled BLDC, for its acronym in English (Brushless Direct Current), LINIX brand, 45ZWN24-
40 model, with a nominal voltage 24V, a torque of 0924 Nm, 2.3 A and nominal speed of
4000 RPM. This is achieved by an embedded system, specifically a digital signal controller
DSC, for its acronym in English (Digital Signal Controller ) 56F8006 Freescale.
With this control designed in this project, we developed a velocity profile which is com-
pared against a similar qualitatively shows in the application note Freescale DRM108, in
this comparison it was found that it has a better response to the control system presented
here. The algorithm designed in this study to obtain the speed is capable of measuring any
range, calculating the speed in less than 20 ms, because this is the sampling period used
in the control algorithm. In opposition to the manufacturers application notes, focused
at the motor control as Microchip or Freescale, in which at least two algorithms used to
obtain the speed according to the level of these,therefore, high or low speeds.
We use a direct current converter to direct current of three branches, which uses six
power transistors for the three phases motor, which can perform any type of commutation,
therefore, an unipolar or bipolar with an independently or complementary ways.
The control is performed using the trapezoidal control techniques, through a unipolar
complementary commutation. The Hall effect’s sensors detect the position of the rotor
every 120 electrical degrees, which is translated in two electrical revolutions for each me-
chanical, and with these data is possible to measure the angular velocity, which works as
a feedback system.
ix
x
in C language, with a Processor Expert using Freescale CodeWarrior version 8.3, where
the algorithm solves a new control action in approximately 120 microseconds. The graphs
shows in Chapter 5, were obtained using the graphical user interface (GUI) FreeMASTER.
Índice General
Resumen VII
Abstract IX
Índice General XI
Índice de Figuras XV
Objetivo XXI
Justificación XXIII
Introducción XXV
1. Antecedentes Generales 1
1.1. Antecedentes de los motores sin escobillas de corriente directa . . . . . . . 1
1.1.1. Pre-Historia de motores sin escobillas de corriente directa . . . . . . 1
1.1.2. Motores sin escobillas de corriente directa . . . . . . . . . . . . . . 2
1.2. Control de motores sin escobillas de corriente directa . . . . . . . . . . . . 3
1.3. Sistemas embebidos y su importancia . . . . . . . . . . . . . . . . . . . . . 9
1.4. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5. Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6. Sumario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2. Marco Teórico 13
2.1. Fundamentos de los motores sin escobillas de corriente directa . . . . . . . 13
2.1.1. Estator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
xi
xii ÍNDICE GENERAL
2.1.2. Rotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2. Sensores de Posición y Velocidad . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.1. Sensores de Efecto Hall . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.2. Encoders o Codificadores . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3. Modelo Matemático . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4. Etapa de Potencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.1. Dispositivo de Potencia y Conmutación . . . . . . . . . . . . . . . . 24
2.4.2. Puente H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5. Efecto del tiempo muerto en inversores controlados por PWM . . . . . . . 27
2.6. Control PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6.1. Respuesta Proporcional . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6.2. Respuesta Integral . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.6.3. Respuesta Derivativa . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.7. Controlador PID Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.8. Control Digital de un Motor BLDC . . . . . . . . . . . . . . . . . . . . . . 35
2.8.1. Conmutación electrónica para motores BLDC . . . . . . . . . . . . 35
2.8.2. Conmutación Trapezoidal . . . . . . . . . . . . . . . . . . . . . . . 36
2.9. Descripción del Proceso de Conmutación . . . . . . . . . . . . . . . . . . . 39
2.10. Control de Velocidad de un motor BLDC . . . . . . . . . . . . . . . . . . . 40
2.11. Diseño Conceptual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.12. Sumario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3. Implementación de Equipo 45
3.1. DSC 56f8006 de Freescale . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2. Tarjeta secundaria MC56F8006 . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3. Unidad de control para motor de 3 fases BLDC . . . . . . . . . . . . . . . 53
3.4. Motor BLDC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.5. sumario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4. Técnica de Control 61
4.1. Generación de PWM para motores BLDC . . . . . . . . . . . . . . . . . . 61
4.1.1. Modo PWM complementario . . . . . . . . . . . . . . . . . . . . . . 62
4.1.2. Modo PWM Independiente . . . . . . . . . . . . . . . . . . . . . . 62
4.2. Configuración del PWM en el MC56F8006 . . . . . . . . . . . . . . . . . . 63
4.3. Configuración del MC56F8006 con el driver para el motor BLDC . . . . . . 69
ÍNDICE GENERAL xiii
5. Pruebas y Resultados 81
5.1. Analisis de Experimental . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.1.1. Montaje Experimental . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.1.2. Secuencia de las pruebas . . . . . . . . . . . . . . . . . . . . . . . . 84
5.2. Posición del Rotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.3. Medición de la Velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.4. Ventana de Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.5. Control de Velocidad PID . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.6. Caracterı́sticas del Control Generado . . . . . . . . . . . . . . . . . . . . . 100
5.7. Sumario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Conclusiones 103
Referencias 109
Anexos 111
xv
xvi ÍNDICE DE FIGURAS
2.21. Rizado del par motor respecto a la posición del rotor en una conmutación
trapezoidal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.22. Situación anterior a la de conmutación. . . . . . . . . . . . . . . . . . . . . 40
2.23. Situación posterior de la conmutación. . . . . . . . . . . . . . . . . . . . . 41
2.24. Diagrama a bloques del control de velocidad con un control PID. . . . . . . 41
2.25. Diseño Conceptual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
xix
xx ÍNDICE DE TABLAS
Objetivo
Realizar una investigación sobre la etapa de potencia tı́pica para los motores BLDC
de 3 fases, comunicación y uso junto con el DSC MC56F8006.
xxi
xxii OBJETIVO
Justificación
Por lo tanto, para controlar estos mecanismos, es necesario un actuador. Los motores
proporcionan movimiento. Ya sea rotacional o lineal, los motores mueven a los mecanismos
y las máquinas, que afectan cada aspecto de nuestra vida cotidiana. Los motores eléctricos
son relativamente limpios y eficientes para las tareas que realizan en comparación con las
alternativas neumáticas o hidráulicas.
Los motores más comunes en el área industrial y embebida son los motores de DC,
a pasos, con escobillas (Brushsed) y sin escobillas (Brushless). Cada motor requiere de
señales de entrada individual para hacer girar el motor y transformar la energı́a eléctri-
ca, en energı́a mecánica. En un sentido más amplio, el control de motores significa crear
soluciones para las tareas más comunes, como posicionamiento preciso, sincronización de
múltiples ejes y movimiento con velocidad, aceleración y desaceleración definidas.
Ya que la mayorı́a de los motores son operados durante circunstancias transitorias, las
herramientas de control de motores se tienen que adaptar a cargas y condiciones dinámicas
diferentes, lo cual requiere de procesamiento complejo de algoritmos de control e infor-
mación del sistema mecánico (retroalimentación).
xxiii
xxiv JUSTIFICACIÓN
movimiento, por medio del control de velocidad en un motor Brushless CD. y poder im-
plementarlo en cualquier mecanismo, a fin de controlar su movimiento en este. Además
se pretende generar mecanismos electrónicos, como pueden ser un engranaje electrónico,
levas electrónicas, etc.
Por otra parte, la dificultad de este trabajo, se enfoca en el diseño del control y su
implementación en el sistema embebido, debido a que requiere un análisis para entender
la conmutación electrónica y desarrollarla en un lenguaje de programación, se tienen que
tomar factores que influyen e interactúan en el sistema, que muchas veces no son tomados
en cuenta al momento de una simulación, como por ejemplo la inserción de tiempo muer-
to. Además de aspectos como, el tener que importar los componentes electrónicos como
lo son el, controlador digital de señales y la etapa de potencia. Por otro lado, se requiere
de un alto domino en languages de programación, algoritmos de control, protocolos de
comunicaciones y habilidades para la conexión de los elementos electrónicos, entre otras.
Introducción
ahorro de energı́a.
xxv
xxvi INTRODUCCIÓN
Ahorro de energı́a.
El controlador de velocidad ajustable es más caro, por lo que su costo debe ser com-
pensado con el ahorro de energı́a. Además, las ventajas operacionales también pueden
ayudar a compensar el coste inicial, por ejemplo, la reducción de los requisitos de mante-
nimiento de componentes mecánicos.
Resumen de la tesis
El primer capı́tulo, abarca los antecedentes de los motores sin escobillas de corriente
directa, desde las primeras máquinas eléctricas, hasta su aparición en 1962, cuando TG
Wilson y P.H. Trickey dio a conocer lo que llamaron “una máquina de corriente continua
con conmutación de estado sólido”. Por otra parte, se muestran algunas de sus ventajas,
desventajas y sus aplicaciones. Se desarrolla un análisis de los diversos tipos de control que
se pueden aplicar a los distintos tipos de motores. Ası́ mismo se describe el planteamiento
del problema y la metodologı́a a seguir en la tesis.
Al:
A familia
A mi Papa, Ramón Godoy Figueroa, a mi Mama Laura Elena Rodriguez Vadillo, mis
hermanos, Ramón, Omar, Rosalia y a mi novia Alejandra
A mis Asesores
Dr. Luis Hector Hernández Gómez
Dr. Juan José Muñoz Cesar
A mis Amigos:
Ing. Corona Calderón Maribel Alejandra
Ing. Mejı́a Garcı́a Adrián Esteban
Ing. Hernández Velázquez Ivan
M. en C. Mauricio Pérez Romero
xxix
xxx INTRODUCCIÓN
Capı́tulo 1
Antecedentes Generales
Es necesario conocer los antecedentes de los motores sin escobillas de corriente directa
o BLDC, desde las primeras máquinas eléctricas, hasta su aparición, a continuación se
desarrollaran estos temas.
1
2 CAPÍTULO 1. ANTECEDENTES GENERALES
en 1880.
El motor de corriente continua de Von Siemens era bastante rudimentario y fue mejo-
rado por Harry Ward Leonard, quien casi perfeccionó el primer sistema eficaz de control
del motor a finales del siglo XIX. Este sistema utiliza un reóstato para controlar la co-
rriente en el devanado de campo, lo que resultó en el ajuste de la tensión de salida del
generador de corriente continua, que a su vez ajusta la velocidad del motor. El sistema
Ward Leonard permaneció en su lugar hasta 1960, cuando los dispositivos electrónicos
de la Company’s Thyristor Devices desarrolló controladores de estado sólido, que podı́an
convertir corriente alterna a corriente continua, rectificada de manera más directa. Por lo
tanto, se sustituyó el sistema Ward Leonard debido a su simplicidad y eficiencia.
Una vez que la Company’s thyristor devices maximiza la eficiencia del motor con esco-
billas de corriente continua (CC), se abrió la puerta a un motor más eficiente. Los motores
BLDC hicieron su primera aparición en 1962, cuando T.G. Wilson y P.H. Trickey dieron
a conocer lo que llamaron “una máquina de corriente continua con conmutación de estado
sólido”, el elemento clave de motores BLDC, en lugar de las escobillas de los motores de
corriente continua. Con ello, el motor BLDC no requiere conmutador fı́sico, una diferencia
realmente revolucionaria, como lo reportaron Wilson y Trickey (Oct 7, 1962).
Todo eso cambió en la década de 1980, cuando los materiales de imán permanente
1.2. CONTROL DE MOTORES SIN ESCOBILLAS DE CORRIENTE DIRECTA 3
Los motores BLDC, se clasifican de acuerdo a la figura 1.1. También son llamados
motores sı́ncronos de corriente directa de imán permanente. Son un tipo de motores que
rápidamente ganó popularidad, principalmente por sus caracterı́sticas y mejor desempeño,
como menciona Becerra y Ehsani (1988). Estos motores se utilizan en una gran cantidad
de sectores industriales, debido a que su arquitectura es ideal para las aplicaciones crı́ticas
para la seguridad, como reportó Ficapal (2009).
Según Rashid (1992), el motor de corriente directa sin escobillas es un motor sı́ncrono
eléctrico que, desde una perspectiva de modelado, se ve exactamente como un motor de
corriente directa. Tiene una relación lineal entre la corriente y del par de torsión, voltaje y
velocidad angular. Para Yedamale (2003), se trata de un sistema de conmutación contro-
lada electrónicamente, en lugar de tener una conmutación mecánica, lo cual es tı́pico de
los motores con escobillas (Brushed). Además, los electroimanes no se mueven, los imanes
4 CAPÍTULO 1. ANTECEDENTES GENERALES
Con el fin de hacer esto, según Hubik y otros (2008), el sistema de conmutación de es-
cobillas se sustituye por un controlador electrónico inteligente, que realiza la distribución
de energı́a eléctrica, lo mismo que las escobillas del motor de corriente directa.
Para Gamazo (2010), los motores BLDC tienen muchas ventajas sobre motores Brus-
hed de corriente continua y motores de inducción, como una mejor velocidad en compa-
ración con caracterı́sticas de par, una alta respuesta dinámica, alta eficiencia y confiabi-
lidad, larga vida útil, operación silenciosa, mayores rangos de velocidad y la reducción
de la interferencia electromagnética (EMI). Además, la relación de torque entregado al
tamaño del motor es mayor, por lo que es útil en aplicaciones donde el espacio y el peso
son factores crı́ticos, especialmente en aplicaciones aeroespaciales, según Krishnan (2001).
El control de motores BLDC se puede hacer con sensores o sin estos. Sin embargo,
para reducir el costo global de dispositivos de accionamiento, las técnicas de control sin
sensores se pueden utilizar. La ventaja del control sin sensor del motor BLDC es que la
parte de detección puede ser omitida, y por lo tanto los costos generales se pueden reducir
6 CAPÍTULO 1. ANTECEDENTES GENERALES
considerablemente. Las desventajas de control sin sensores son los mayores requisitos de
algoritmos de control, una electrónica más complicada y malos resultados para control de
posición, como reportaron Hubik y otros (2008).
Todos los motores eléctricos que no requieren una conexión eléctrica entre las partes
fijas y giratorias pueden ser considerados como máquinas de imán permanente (PM) sin
escobillas, según Bonfe y Bergo (2008). Se pueden clasificar por los montajes de los ima-
nes y la forma de la fuerza contra-electromotriz o back- EMF. Los imanes permanentes
pueden estar montados superficialmente en el rotor (SMPM del ingles imanes permanen-
tes de montaje superficial) o instalados en el interior del rotor (IPM del ingles imanes
permanentes internos), y la forma de la fuerza contra-electromotriz puede ser sinusoidal
o trapezoidal, Bianchi y otros (2007). De acuerdo a la forma de back-EMF, los motores
sı́ncronos de imanes permanentes de corriente alterna (PMAC o PMSM), tienen una forma
sinusoidal de la fuerza contra-electromotriz y los motores de corriente directa sin escobi-
llas (BLDC o BPM) tienen una forma trapezoidal en esta. Un motor de PMAC suele ser
tı́picamente excitado por tres fases sinusoidales de corriente, y un motor BLDC suele ser
impulsado por un conjunto de corrientes que tienen una forma de onda cuasi-cuadrado,
de acuerdo a Su y McKeever (2004), a demás de Damodharan y Vasudevan (2008).
Cuando se habla de motores sin escobillas de corriente directa (BLDC), se refiere in-
mediatamente a las técnicas de control para estos motores en que según, Tolrá (2004),
se pueden clasificar dependiendo del algoritmo de conmutación implementado. En este
caso, las más utilizadas actualmente son: Conmutación trapezoidal (6 steps mode), Con-
mutación Sinusoidal (SPWM), Control del Campo Orientado (FOC) y Modulación del
Ancho de Pulso del Espacio Vectorial (SVPWM), en donde la técnica de control varı́a
dependiendo del tipo de motor sin escobillas al que se tenga que controlar, como afirma
Lee (2009).
La conmutación es posible por medio de un inversor de 3 fases, que puede ser construido
con transistores MOSFET’s, IGBT’s o simplemente de transistores bipolares, Yedamale
(2003). En este tipo de control, cada transistor conduce durante 120◦ Rashid (2003). La
posición del rotor se determina usando elementos de retroalimentación (feedback), tales
como sensores de efecto Hall y sensores de posición angular (encoders), e incluso una
combinación de ambos al retroalimentar el sistema Mani (2010). Esta técnica de control
retroalimentado es buena, pero frecuentemente resulta ser más cara, Margarita (2004).
Debido a lo costoso que resulta cerrar el lazo de control con encoders. Existen otros
métodos de medición que permiten retroalimentar el sistema, tales como las mediciones
8 CAPÍTULO 1. ANTECEDENTES GENERALES
La diferencia que existe entre DCCT y OSDC es que la primera usa dos sensores de
corriente conectados en el inversor. Sirven como elementos de retroalimentación. En el
segundo caso, se usa una resistencia de derivación colocada también en la etapa de inver-
sión; ambos métodos han demostrado tener éxito en el control sin sensores (Sensorless),
demostrando ser eficaces y semejantes al control con sensores Xu (2008).
Otra técnica de control es usar la fuerza contra-electromotriz de cruce por cero, para
la estimación de la posición del motor, haciendo uso de los parámetros del motor, y de
voltajes y corrientes que se manejan. Por lo tanto, la fuerza contra-electromotriz de cruce
por cero es usada para sincronizar la conmutación de los 6 pasos con la posición del rotor.
Con esto se consiga el desarrollo de un torque constante del motor BLDC.
El panorama general para usar esta técnica de control se puede resumir en cuatro
pasos: 1) Generación de modulación de ancho pulso (PWM, por sus siglas en ingles), 2)
detección del cruce por cero de la fuerza contraelectromotriz, 3) Control de conmutación,
4) Control de velocidad Kumar (2009).
El primer punto se refiere a las señales que activarán los transistores del inversor. La
generación de los voltajes de modulación de ancho de pulso se pueden dar en modo com-
plementario y en modo independiente. En el primer caso, los interruptores de una fase son
operados complementariamente; si un interruptor está activado, el otro está desactivado.
Este modo necesita la inserción de un tiempo muerto entre los interruptores superior e
inferior para evitar cualquier corto circuito en la fase. La conmutación complementaria
puede incorporarse de manera unipolar o bipolar. La conmutación unipolar proporciona
bajas pérdidas en la conmutación y rizado en la corriente. Sin embargo, para el uso de
una fuerza contra-electromotriz, la conmutación bipolar es la mejor elección porque esto
permite un ciclo útil en el rango del 50 % al 100 %. En modo independiente, los interrup-
tores superior e inferior son operados por separado en un periodo de conmutación. Sin
1.3. SISTEMAS EMBEBIDOS Y SU IMPORTANCIA 9
El cruce por cero de la fuerza electromotriz de las tres fases se comprueba usando
comparadores. Las salidas de los comparadores se llevan a las entradas de decodificadores.
Donde un bloque de filtración digital se utiliza para filtrar el cruce de cero de las señales,
(Freescale semiconductor, 2003). El control de velocidad y corriente se hace controles PI
Minciunescu (1998).
Según Galeano (2009), un consumidor promedio interactúa con alrededor de 400 micro-
controladores por dı́a, este número tiende a crecer significativamente para los próximos
años, considerando que los procesadores son cada vez más pequeños, consumen menos
energı́a y el precio es menor, gracias a la economı́a de escala aplicada en su fabricación.
10 CAPÍTULO 1. ANTECEDENTES GENERALES
Todos los motores, incluyendo el motor BLDC, tienen polos los cuales en este tipo de
máquina, influyen directamente en la rotación de esta, dado que un determinado número
de polos corresponderá a la relación de rotaciones eléctricas y mecánicas. Por otra parte,
debido a que es necesario conocer la posición del rotor para llevar a cabo la conmuta-
ción, se requiere el uso de sensores de posición angular. De acuerdo a las caracterı́sticas
del motor, es indispensable hacer uso de una etapa de potencia, la cual debe ser capaz
de conmutar de acuerdo a la frecuencia de la modulación de ancho de pulso. Por otra
parte, para poder implementar un algoritmo de control es necesario emplear un sistema
embebido, donde sea posible desarrollar la modulación de ancho de pulso, manejo de inte-
rrupciones, establecer el tiempo de muestreo y constantes del controlador, configuración
de periféricos y comunicaciones.
pueden diseñar aplicaciones cada vez más avanzadas y sofisticadas como lo son en robots,
prótesis inteligentes, bandas transportadoras, engranaje o levas electrónicas, diferenciales
electrónicos, exoesqueletos, lı́neas de producción, etc. Por lo tanto, sin este tipo de inves-
tigaciones, estas aplicaciones tendrı́an un desarrollo limitado.
1.5. Metodologı́a
Se analizarán los fundamentos y la conmutación de los motores sin escobillas de co-
rriente directa, con el fin de implementar en un sistema embebido, por ejemplo un micro-
controlador o controlador digital de señales (DSC). Para este efecto, se desarrollara un
algoritmo capaz de controlar la velocidad de este tipo de motores, consecuentemente es
necesario conocer la posición del rotor en todo momento, ya que es indispensable para
la conmutación electrónica. Esto conlleva un análisis de los sensores como encoders o de
efecto Hall.
lar del motor sin escobillas de corriente directa y que esté funcione en todos los rangos
de velocidad en los que puede trabajar el motor. Con esto se plantea hacer pruebas del
control de la velocidad en lazo abierto.
1.6. Sumario
En este capı́tulo, abarco los antecedentes de los motores sin escobillas de corriente
directa, desde las primeras máquinas eléctricas, hasta su aparición en 1962, cuando TG
Wilson y P.H. Trickey dio a conocer lo que llamaron “una máquina de corriente continua
con conmutación de estado sólido”. Por otra parte, se mostraron algunas de sus ventajas,
desventajas y sus aplicaciones. Se desarrolló un análisis de los diversos tipos de control
que se pueden aplicar a los distintos tipos de motores. Ası́ mismo se describió el plantea-
miento del problema y la metodologı́a a seguir en la tesis.
Capı́tulo 2
Marco Teórico
Los motores BLDC son un tipo de motor sı́ncrono. Esto quiere decir, que el campo
magnético generado por el estator y el campo magnético desarrollado por el rotor gira a
la misma frecuencia. De manera que los motores BLDC no experimentan de un ”slip”, es
decir, un deslizamiento que se observa normalmente en los motores de inducción.
La figura 2.1, ilustra la construcción básica de un motor BLDC. Como se puede obser-
var, está constituido por un rotor de imán permanente y bobinas en el estator. La energı́a
eléctrica es convertida en mecánica a causa de la atracción de las fuerzas magnéticas entre
el imán permanente del rotor y el campo magnético inducido por las bobinas del estator.
13
14 CAPÍTULO 2. MARCO TEÓRICO
2.1.1. Estator
Cabe señalar que la diferencia entre los motores BLDC y PMSM (Máquina sı́ncrona
de imanes permanentes), como se mostró en la figura 1.1, es la diferencia que con respecto
a los bobinados del estator, es decir la forma de la fuerza contra-electromotriz generada
(back FEM) por el motor. Por lo tanto, se tienen: trapezoidal y sinusoidal. Esta diferen-
ciación se hace con base de la interconexión de las bobinas en los bobinados del estator
para dar los diferentes tipos de fuerza contra electromotriz. Como sus nombres indican,
la primera genera una fuerza contra electromotriz de forma trapezoidal, en cambio el se-
gundo proporciona una forma sinusoidal, como se pueden apreciar en las figuras 2.3 y 2.4
2.1. FUNDAMENTOS DE LOS MOTORES SIN ESCOBILLAS DE CORRIENTE DIRECTA15
respectivamente.
2.1.2. Rotor
El rotor es de imán permanente y puede variar de dos hasta ocho pares de polos alter-
nando (polos Norte (N) y Sur (S)). Con base en la densidad de campo magnético requerido
en el rotor, el material magnético adecuado se elige para hacer el rotor. Imanes de ferri-
ta se utilizan tradicionalmente para hacer imanes permanentes. A medida que avanza la
tecnologı́a, se han desarrollado materiales de aleación que tienen alta densidad magnética
por volumen. Es decir, estos imanes de aleación, además de mejorar la proporción de
tamaño y peso, generan mayor par motor, que un rotor del mismo tamaño usando imanes
16 CAPÍTULO 2. MARCO TEÓRICO
La mayorı́a de los motores BLDC tiene tres sensores de Hall en el interior del estator
en el extremo del motor. Cada vez que los polos magnéticos del rotor pasan cerca de los
sensores Hall, envı́an una señal de alto o bajo, que indica si el polo N o S pasa cerca de los
sensores. Con base a la combinación de estas tres señales de los sensores Hall, la secuencia
18 CAPÍTULO 2. MARCO TEÓRICO
exacta de conmutación se puede determinar. La figura 2.6 muestra una sección transversal
de un motor BLDC con un rotor que alterna imanes permanentes N y S. Los sensores Hall
se incrustan en la parte fija del motor (parte interna del estator). La incorporación de los
sensores Hall en el estator es un proceso complejo, ya que cualquier desajuste en estos
con respecto a los imanes del rotor generará un error en la determinación de la posición
del rotor.
Codificador incremental
Un codificador incremental de rotación está formado por un disco con ranuras radiales
ubicadas por lo general muy juntas en toda su circunferencia, o sino con lı́neas alternadas
en color claro y oscuro, que giran frente a un foto-sensor (o un conjunto de éstos, para
más precisión), generando un pulso por cada ranura o cambio de color como se observa
en la figura 2.7, por lo tanto al contabilizar estos pulsos se puede determinar la posición,
sin embargo, estos sensores no pueden dar una posición absoluta, ya que todos los pulsos
son iguales.
2.2. SENSORES DE POSICIÓN Y VELOCIDAD 19
Codificador absoluto
Los codificadores absolutos ópticos funcionan con un concepto similar al de los tipos
incrementales, sólo que poseen un disco con un dibujo complejo, distribuido en anillos
concéntricos que representan los bits de una palabra binaria. Deben tener un detector
óptico por cada uno de estos anillos. Por ejemplo un disco con 8 anillos (como el de la
figura 2.8), tendrá una resolución de 8 bits, o sea que podrá dividir su circunferencia en
256 porciones. Un disco con más anillos concéntricos ofrecerá más bits de resolución y
dará un dato de posición angular más preciso. A diferencia del codificador incremental,
este sensor es capaz de informar la posición en cualquier momento.
El motor BLDC suele ser simétrico. Todas las resistencias de las fases, inductancias y
lı́neas de flujo pueden ser considerados como iguales, o en función de la posición con un
desplazamiento de 120 grados eléctricos. El modelo eléctrico el motor BLDC consiste en
el conjunto de las ecuaciones de tensión después de estator ecuación (2.1).
La Ecuación (2.4) puede ser reescrita, teniendo en cuenta la resistencia de la fase del
motor y la inductancia. La inductancia mutua entre las dos bobinas de la fase de motor
puede pasarse por alto, ya que es muy pequeña y no tiene efecto significativo para nuestro
nivel de abstracción.
USa iSa ψSa
USb = Rs iSb + d ψSb
dt (2.1)
USc iSc ψSc
USa = UV A − U0
USb = UV B − U0 (2.2)
USc = UV C − U0
2.3. MODELO MATEMÁTICO 21
" C c
#
1 X X
U0 = UV x − UbackEM F x (2.3)
3 x=a
x=A
22 CAPÍTULO 2. MARCO TEÓRICO
c
" #
X
1
USa = 3
2uV A − uV B − uV C + UbackEM F x
x=a
c
" #
X
1
USb = 3
2uV B − uV A − uV C + UbackEM F x
x=a (2.4)
c
" #
X
1
USc = 3
2uV C − uV A − uV B + UbackEM F x
x=a
Donde:
UV A · · · UV C :
Subdivisión de tensiones entre una salida de etapa de potencia y su cero natural
USa · · · USc :
Tensión del Motor fase-bobina
UbackEM F a · · · UbackEM F c :
Fase de fuerza contraelectromotriz (back-EMF) inducida en la bobina del estator
U0 :
Tensión diferencial entre el punto central de la conexión en estrella de bobinado del
motor y la etapa de potencia cero natural
iSa · · · iSc :
Corrientes de fase
Rs :
Resistencias fase
2.4. ETAPA DE POTENCIA 23
" C c
#
X X
UV A − UbackEM F a − 1
3 UV x − UbackEM F x = Rs iSa + Ls didtSa
x=A x=a
" C c
#
X X
UV B − UbackEM F b − 1
3 UV x − UbackEM F x = Rs iSb + Ls didtSb (2.5)
x=A x=a
" C c
#
X X
UV C − UbackEM F c − 1
3 UV x − UbackEM F x = Rs iSc + Ls didtSc
x=A x=a
Donde:
Rs0 Ls :
Son las inductancias y resistencias de las fases
c c
1X X dΨSx
Ti = UbackEM F x • iSx = • iSx (2.6)
ω x=a x=a
dθ
Donde:
Ti :
Torque del motor interno (Sin pérdidas mecánicas).
ω, θ :
Velocidad y posición angular del rotor.
ψSx :
Flujo magnético de la bobina de la fase x.
entrada de voltaje de CD, que en mayorı́a de los casos, se obtiene de una fuente alterna
de rectificación con un puente de diodos.
El control de tensión y corriente se aplican a través del inversor con uno de los regı́me-
nes populares: modulación por ancho de pulso (PWM).
Diodos de Potencia
Ası́ como podemos decir que el transistor bipolar se controla por corriente, los MOS-
FET son transistores controlados por tensión. Ello se debe al aislamiento (óxido de Silicio)
de la puerta respecto al resto del dispositivo. Existen dos tipos básicos de MOSFET, los
de canal n y los de canal p. Si bien. En Electrónica de Potencia, los más comunes son los
primeros, por presentar menores pérdidas y mayor velocidad de conmutación, debido a la
mayor movilidad de los electrones con relación a los agujeros. La figura 2.10 muestra los
sı́mbolos utilizados para estos dispositivos.
El terminal de puerta G (Gate) está aislado del semiconductor por óxido de silicio
(SiO2). La unión PN define un diodo entre la Fuente S (Source) y el Drenador D (Drain),
el cual conduce cuando VDS < 0. El funcionamiento como transistor ocurre cuando VDS
> 0.
La figura 2.11 muestra la estructura básica del transistor. Cuando una tensión VGS
> 0 es aplicada, el potencial positivo en la puerta, repele los agujeros en la región P,
dejando una carga negativa, pero sin portadores libres. Cuando esta tensión alcanza un
cierto valor umbral (VT), electrones libres (generados principalmente por efecto térmi-
co) presentes en la región P son atraı́dos y forman un canal N dentro de la región P,
por el cual se hace posible la circulación de corriente entre D y S. Aumentando VGS,
más portadores son atraı́dos, ampliando el canal, reduciendo su resistencia (RDS), per-
mitiendo el aumento de ID. Este comportamiento caracteriza la llamada ((región óhmica)).
La circulación de ID por el canal produce una caı́da de tensión que genera un ((efecto
embudo)), o sea, el canal es más ancho en la frontera con la región N+ que cuando se co-
necta a la región N-. Un aumento de ID lleva a una mayor caı́da de tensión en el canal y a
26 CAPÍTULO 2. MARCO TEÓRICO
2.4.2. Puente H
El motor BLDC es impulsado por movimientos de tensión rectangulares, junto con la
posición dada del rotor. El flujo del estator producido interactúa con el flujo del rotor, que
es generado por el imán del rotor y define el par y, por lo tanto, la velocidad del motor.
Las tensiones deben ser aplicadas correctamente a dos fases de las tres fases del sistema
para que el ángulo entre el flujo del estator y el flujo del rotor se mantenga lo más cerca
posible a 90◦ , para obtener el máximo par generado. Por lo tanto, el motor requiere un
control electrónico para un funcionamiento correcto.
2.5. EFECTO DEL TIEMPO MUERTO EN INVERSORES CONTROLADOS POR PWM27
En un motor BLDC común de tres fases, una etapa normal de las tres fases de ali-
mentación se utiliza (ver Figura 2.12). La etapa de potencia emplea seis transistores de
potencia (MOSFET o IGBT) normalmente, segun Kazmierkowski y otros (2002) y Mohan
y otros (2002)) que operan en cualquiera de un modo independiente o complementario.
Figura 2.13: Configuración básica de PWM (solo se muestra una fase del inversor).
1 t
Z
de(t)
u(t) = kp e(t) + e(0) + Td (2.7)
Ti t dt
Z t
kp
i(t) = e(0)dt (2.9)
Ti t
En la expresión (2.9), se observa que la componente integral suma el término del error
en el tiempo. El resultado es que cada término de error pequeño puede causar que la com-
ponente integral se incremente lentamente. La respuesta integral aumenta continuamente
con el tiempo a menos que el error sea cero. Por lo tanto el objetivo es llevar el error
en estado estacionario a cero. Sin embargo, el control integral reducirá la velocidad de
respuesta total del sistema y aumentará el sobreimpulso.
de(e)
d(t) = kpp (2.10)
dt
u(kT ) = kp e(kT )+
T e(0) + e(T ) e(T ) + e(2T )
+ + ... (2.11)
Ti 2 2
e((k − 1)T ) + e(kT ) e(kT ) − e((k − 1)T
+ + Td
2 T
h=1
T X e((h − 1)T ) + e(hT )
u(kT ) = kp e(kT ) +
Ti k 2
(2.12)
Td
+ [e(kT ) − ((k − 1)T )]
T
Se define como:
h=1 h=1
X e((h − 1)T ) + e(hT ) X
= f(hT) (2.14)
k
2 k
Al tomar la transformada z de la ecuación (2.14), se obtiene:
h=1
X h=1
X
e((h − 1)T ) + e(hT ) 1
Z =Z f(hT) = −1
F (z) − f(0)
k
2 k
1−z
(2.15)
1
= F (z)
1 − z −1
2.7. CONTROLADOR PID DIGITAL 33
Donde
1 + z −1
F (z) = Z f(hT) = E(z) (2.16)
2
Por lo tanto
h=1
1 + z −1
X
e((h − 1)T ) + e(hT )
Z = E(z) (2.17)
k
2 2(1 − z −1 )
La transformada z de la ecuación (2.11) da como resultado
T 1 + z −1 Td
−1
M (z) = kp 1 + + (1 − z ) E(z)
2Ti 1 − z −1 T
(2.18)
ki −1
= kp + + kd (1 − z ) E(z)
1 − z −1
Donde
kT ki
kp = k = − = k − = ganancia proporcional
2Ti 2
kT
ki = = ganancia integral
Ti
kTd
kd = = ganancia derivativa
T
La ganancia proporcional kp para el controlador PID digital es más pequeña que la
ganancia k para el controlador PID analógico por un factor de kp /2.
U (z) ki
GD (z) = = kp + + kd (1 − z −1 (2.19)
E(z) 1 − z −1
La función de transferencia pulso del controlador PID digital, mostrada en la ecuación
(2.19), es conocida comúnmente como forma posicional del esquema de control PID.
la forma de velocidad, se considera la diferencia hacia atrás en m(kT), esto es, la diferencia
entre m(kT) y m((k-1)T), de donde se obtiene
R(z) − C(z)
U (z) = −kp C(z) + ki + kd (1 − z −1 )C(z) (2.20)
1 − z −1
La ecuación (2.20) genera el esquema de control PID en la forma de velocidad. En la
figura 2.16 se muestra un diagrama de bloques de la realización de un esquema de control
PID digital en la forma de velocidad. Note que en la ecuación (2.20), sólo el término
del control integral incluye la entrada R(z). Por lo tanto, el término integral excluir del
controlador digital, si éste se utiliza en la forma de velocidad.
Una ventaja del esquema de control PID; en la forma de velocidad, es que no es necesa-
ria la inicialización cuando se conmuta de operación manual a automática. De este modo,
si existen cambios súbitos grandes en el punto de ajuste o en el inicio de la respuesta de
operación del proceso, el esquema de control PID en la forma de velocidad es que es útil
en la supresión de correcciones excesivas en sistemas de control.
Figura 2.16: Diagrama a bloques de la realización del esquema de control PID en la forma
de velocidad.
2.8. CONTROL DIGITAL DE UN MOTOR BLDC 35
La posición del rotor generalmente se detecta por sensores de efecto Hall o sensores de
posición angular como lo son los encoders. Los primeros detectan directamente la posición
para el momento de la conmutación. La aplicación presentada en este trabajo utiliza un
sensor de efecto Hall para detectar la posición del rotor. Por lo tanto, la posición del rotor
36 CAPÍTULO 2. MARCO TEÓRICO
La revolución eléctrica puede ser dividida en seis sectores. Cada uno corresponde a un
vector de flujo del estator, como se ilustra en la Figura 2.18. La secuencia de conmutación
se ilustra en las tablas 2.1 y 2.2.
En este esquema, se controla la corriente que circula por los terminales del motor,
excitando un par simultáneamente y manteniendo la tercer terminal desconectado. Suce-
sivamente se va alternando el par de terminales a excitar hasta completar las seis combi-
naciones posibles. En la figura 2.19 se observa los posibles caminos de la corriente en un
control trapezoidal.
2.8. CONTROL DIGITAL DE UN MOTOR BLDC 37
Debido a que en todo momento, las corrientes de dos bobinados son iguales en magni-
tud y la tercera siempre es nula, el vector de corrientes del estator es resultado de la suma
vectorial de las corrientes que circulan por las bobinas, por lo tanto sólo puede apuntar a
6 direcciones discretas (ver figura 2.20).
Figura 2.20: Ejemplo de cálculo del vector de corrientes del estator y espacio de posibles
direcciones de dicho vector.
2.9. DESCRIPCIÓN DEL PROCESO DE CONMUTACIÓN 39
Dado que el vector de corrientes sólo puede apuntar en seis direcciones, se produce
una desalineación entre éstas y la posición real del rotor. En el peor de los casos, es decir,
cuando el rotor se encuentre en la posición intermedia de uno de los 6 sectores, la desali-
neación puede llegar a ser a ser de 30 grados. Esta genera un rizado en el par del motor de
aproximadamente el 15 % (1-cos30o ) a una frecuencia seis veces la velocidad de rotación
del motor (ver Figura 2.21).
Figura 2.21: Rizado del par motor respecto a la posición del rotor en una conmutación
trapezoidal.
Este rizado dificulta el control de motores sin escobillas. En aplicaciones que demanden
movimientos a baja velocidad, se hace especialmente notable, provocando una disminu-
ción en la precisión de dichos movimientos.
Tan pronto como el rotor alcanza una nueva posición determinada (ver Figura 2.23),
el sector cambia de ABC [110] a ABC [100]. Un nuevo patrón de tensión se asigna de la
40 CAPÍTULO 2. MARCO TEÓRICO
Una conmutación adecuada, asegura la rotación del rotor del motor BLDC, mientras
que la velocidad del motor depende sólo de la amplitud de la tensión aplicada. La amplitud
de este parámetro se ajusta mediante el uso de la técnica PWM. La velocidad requerida
es controlada por un regulador de velocidad. El cual se implementa como un controlador
PID convencional. La diferencia entre la velocidad real y la requerida es la entrada al
controlador PI y, en base a esta diferencia, dicho regulador controla el ciclo de trabajo de
los pulsos PWM, lo que corresponde a la amplitud de la tensión necesaria para mantener
la velocidad requerida, como se muestra en la figura 2.24.
2.10. CONTROL DE VELOCIDAD DE UN MOTOR BLDC 41
Figura 2.24: Diagrama a bloques del control de velocidad con un control PID.
42 CAPÍTULO 2. MARCO TEÓRICO
2.12. Sumario
En este capı́tulo, se trataron los temas correspondientes al marco teórico. En este se
desarrollaron los temas necesarios para ir abordando la tesis, se desglosaron los funda-
mentos de los motores sin escobillas de corriente directa, a su vez, se desarrolló el modelo
matemático, se incluyen las caracterı́sticas de la etapa de potencia y de los sensores para
la retroalimentación, mismos que son necesarios para entender el proceso de conmutación.
Además, se analizó el efecto de tiempo muerto en los inversores controlados por modu-
lación de ancho de pulso. Por otra parte, se describió el control PID, y se enfatiza en el
control PID digital, teniendo en cuenta que es el algoritmo utilizado en el desarrollo de
2.12. SUMARIO 43
Implementación de Equipo
Los microcontroladores 56F8006 pertenecen a la familia 568006E, los cuales están fun-
damentados en los controladores digitales de señales (DSCs). Esos combinan, en un simple
chip, la capacidad de procesamiento de los DSP y la funcionalidad de un microcontro-
lador, como se mencionó anteriormente, a través de la flexibilidad de sus periféricos que
permiten generar soluciones a bajo costo. Debido a la flexibilidad en cuanto a configura-
45
46 CAPÍTULO 3. IMPLEMENTACIÓN DE EQUIPO
ción, y del código compacto de programa, se obtiene que el 56F8006 es una buena opción
para diversas aplicaciones. Estos incluyen periféricos que son especialmente útiles para
distintas aplicaciones, como:
Control Industrial.
Aparatos electrodomésticos.
Sensores inteligentes.
Sistemas de seguridad.
Medición de energı́a.
Herramientas portátiles.
Equipo médico.
Instrumentación.
Iluminación.
El núcleo 56800E tiene una doble arquitectura Harvard, que consta de tres unidades
de ejecución en paralelo, lo que permite que realice un máximo de seis operaciones por
ciclo de instrucción. El estilo de programación y la optimización de instrucciones permiten
la generación de un código eficiente, compactos DSP y código de control. El conjunto de
instrucciones es también muy eficiente para los compiladores de C, que permite el rápido
desarrollo de aplicaciones de control optimizado.
15 bits de resolución.
Lı́nea libre.
Marca de dirección
• Modos maestro-esclavo.
• Capacidad de interrupción.
Contador en tiempo real (RTC) que puede ser usado como reloj en tiempo real.
• Soporta dos pulsos de retardo de forma independiente que son usados para la
sincronización del PGA y las conversiones ADC con entrada.
• Evento de disparo.
• Dos salidas PDB que pueden ser dos conversiones de un evento de disparo de
entrada.
Fuentes de reloj.
Fase de lazo cerrado (PLL), que es un reloj de alta velocidad para el núcleo y
periféricos.
Salida de corriente de 4 A.
Figura 3.2: Controlador para motor de 3 Fases BLDC / PMSM de baja tensión.
Interfaz USB.
3.3. UNIDAD DE CONTROL PARA MOTOR DE 3 FASES BLDC 55
Botón de reset.
Figura 3.3: Unidad de control para motor de 3 Fases BLDC / PMSM de baja tensión.
56 CAPÍTULO 3. IMPLEMENTACIÓN DE EQUIPO
Para más información se recomienda revisar el anexo F donde se muestran los dia-
gramas esquemáticos de conexión, la lista de materiales y los circuitos impresos o PCB´s
(del inglés printed circuit board).
La tabla 3.1, muestra la caracterı́sticas más importantes del motor BLDC LINIX
45ZWN24-40 utilizado en esta aplicación.
Como se puede observar en las figura 3.5, se muestra que el motor es de tres fases,
mientras tanto en la figura 3.6, se pueden observar los 4 polos del rotor, es decir, que
cuenta con 2 pares de polos, por lo tanto, se requieren de dos revoluciones eléctricas para
lograr una mecánica, este es un punto muy importante para medir la velocidad del rotor.
De acuerdo a la información que se ha manejado, este motor cuenta con una retro-
alimentación integrada por medio de sensores de efecto Hall, estos están incrustados en
58 CAPÍTULO 3. IMPLEMENTACIÓN DE EQUIPO
la parte fija del motor, como se revisó en la sección 2.2.1. En la figura 3.7, se observa a
detalle la colocación de estos, para sensar la posición del rotor.
3.5. sumario
En este capı́tulo, se describieron las caracterı́sticas y funciones más importantes del
equipo utilizado para el desarrollo del control de velocidad del motor BLDC, en especı́fi-
co del controlador digital de señales 56F8006 de Freescale, de la unidad de control para
motor de 3 fases BLDC, es decir, la etapa de potencia y del propio motor BLDC.
60 CAPÍTULO 3. IMPLEMENTACIÓN DE EQUIPO
Capı́tulo 4
Técnica de Control
Como se ha descrito, una etapa de potencia de 3 fases debe ser creada para el motor
BLDC. Para la aplicación del motor BLDC, las señales PWM se pueden crear de dos
maneras:
61
62 CAPÍTULO 4. TÉCNICA DE CONTROL
En la figura 4.1, se muestra que la corriente entra por la fase A (PWM0), y sale por
la fase B (PWM3). Se observa la inserción del tiempo muerto, que son las franjas verti-
cales grises, para evitar un corto circuito en la fase, mientras el PWM0 está activado, el
PWM1 está desactivado y viceversa, por lo tanto, se dice que son complementarios. De
igual forma sucede en la fase B.
En la Figura 4.3 se muestran los detalles de un perı́odo de PWM para el motor BLDC
con conmutación bipolar independiente. La fase A está conectada a la tensión del bus de
DC positivo. La fase B está conectada a un voltaje de bus negativo de DC. La fase C no es
alimentada y no se muestra, por lo tanto la corriente entra por la fase A y sale por la fase B.
4.2. CONFIGURACIÓN DEL PWM EN EL MC56F8006 63
La Figura 4.4 muestra los detalles de un perı́odo de PWM para el motor BLDC con
conmutación unipolar independiente. La fase A está conectada a un PWM positivo, la fase
B está conectada siempre a un voltaje de bus negativo de DC. La fase C no es alimentada
y no se muestra, por lo tanto al igual que la figura anterior, la corriente entra por la fase
A y sale por la fase B.
Tiempo Muerto insertado en la función del PWM, para esta aplicación es de 2.8 µs.
Selección de los puertos que son utilizados para la generación del PWM, los cuales
son para PWM0 a PWM5 respectivamente:
• GP IOA0P W M 0
• GP IOA1P W M 1
• GP IOA2P W M 3
• GP IOA4P W M 4F AU LT 1S DAT IN 2
• GP IOA5P W M 5F AU LT 2E XTS Y N CT IN 3
En la figuras 4.6, 4.7, 4.8 y 4.9, se muestran las conmutaciones unipolar independiente,
unipolar complementaria, bipolar independiente y bipolar complementaria generadas con
el DSC, correspondientes a los 4 tipos de conmutaciones antes mencionadas. Se configuró el
PWMMC para generar cada una de ellas por separado. Después, estas fueron mostradas
con un osciloscopio para poder observar los resultados obtenidos de cada una de ellas y
poderlas comparar con las gráficas que se analizaron en la teorı́a, en las cuales se muestra
una revolución eléctrica completa, es decir, los 6 pasos de la conmutación.
66 CAPÍTULO 4. TÉCNICA DE CONTROL
En la figura 4.10, se muestra un diagrama de flujo que se sigue para lograr la comunica-
ción entre los dispositivos antes mencionados, donde se configuran los registros necesarios,
como lo son, el SPI y las funciones descritas en el anexo H. Con esto se obtiene una comu-
nicación y configuración inicial del driver por parte de la tarjeta secundaria MC56F8006.
En el anexo E.1 se detalla el código desarrollado.
4.1. La figura 4.12 es la ventana de los eventos disponibles para la interrupción. Por lo
tanto, para este componente se activa el evento de OnInterrupt, el cual genera la función
de atención a la interrupción.
Por medio de las interrupciones de los sensores Hall, se puede determinar la combi-
nación de estos y ası́ conocer la posición. Lafigura 4.13 muestra un diagrama de flujo del
algoritmo se utiliza para poder ubicar en que segmento (variable n) se encuentra el rotor,
a través de los estados de cada sensor (variables A,B,C), para después poder llamar a
una función de conmutación que activa la secuencia de los PWM´s. En el anexo E.2, se
observa a detalle el segmento de código desarrollado.
72 CAPÍTULO 4. TÉCNICA DE CONTROL
word Ratio: se expresa como un número entero de 16 bits sin signo. que representa
un valor entre 0-65535 que es proporcional al cociente de 0 a 100 %.
Para poder medir la velocidad a través de los sensores de efecto Hall, se utilizan las
interrupciones creadas para determinar la posición del rotor y lograr una correcta conmu-
tación (véase sección 4.4), ya que dependiendo del número de pulsos que se tengan en un
determinado tiempo, se puede medir la velocidad instantánea del rotor.
Para esto, se crea una variable, la cual se utiliza como un contador para los pulsos
de los sensores Hall, es decir, que cada vez que el rotor gire, y se genere un pulso, este
será contabilizado. Por lo tanto, ahora es necesario conocer el tiempo en los que se pro-
dujeron los pulsos para poder determinar la velocidad, para ello se utiliza un contador
(FreeCntr32). Este elemento permite conocer el tiempo de un evento. En este caso será el
tiempo en que se producen un número determinado de pulsos.
4.5. CONTROL DE VELOCIDAD DEL MOTOR BLDC EN LAZO CERRADO 75
Componente FreeCntr32
Este componente implementa un contador de carrera libre para la medición del tiempo.
Es un contador de programa de 32 bits que cuenta los acontecimientos que ocurren a in-
tervalos regulares de tiempo. Los eventos son causados por un temporizador de equipo que
se establece por el Processor Expert para generar los eventos con una frecuencia/perı́odo
especificada. El componente puede devolver el tiempo medido (a partir de la última puesta
a cero o reset) en ticks del oscilador principal, microsegundos, milisegundos o segundos. Si
el contador se desborda, los métodos regresan un código de error y el usuario debe llamar
a un Reset”(método para limpiar el contador).
En la tabla 4.2 se describen las propiedades y los eventos utilizados para el FreeCntr32.
Para medir la velocidad, se considera la resolución del encoder o en este casa de los
sensores Hall. Para esta aplicación, la resolución es de 6 pulsos por revolución mecánica
del rotor, tomando en cuenta que el motor tiene 2 pares de polos, se necesitan 2 revolu-
ciones eléctricas para tener una mecánica. Por lo tanto, al tener 3 pulsos por revolución
eléctrica, se tienen un total de 6 pulsos por revolución mecánica, siendo esta la resolución
de nuestro sistema.
76 CAPÍTULO 4. TÉCNICA DE CONTROL
Método Descripción
Reset Este método limpia el contador
GetTimeReal Este método devuelve el tiempo en segundos después
de la último reset, como un número real (punto
flotante). Para utilizar este método, el compilador
tiene que apoyar las operaciones de punto flotante.
Por otra parte, para determinar la velocidad angular, se establece en RPM´s (revo-
luciones por minuto). Si se conocen un número de pulsos en un tiempo determinado, se
puede conocer la velocidad en RPM´s por medio de la ecuación 4.1
P ulsos 1
RP M = ∗ ∗ 60 (4.1)
Resolución T iempo
Donde:
Pulsos:
Número de pulsos generados por los sensores Hall.
Resolución:
Resolución de los sensores, como ya se describió, para este caso son 6 pulsos.
Tiempo:
Lapso que transcurrió para el número de pulsos.
Sin embargo, existen básicamente 2 formas para medir la velocidad, las cuales son:
Frecuencia
Periodo
por lo tanto, al aumentar la velocidad del motor, el número de pulsos aumenta proporcio-
nalmente, y de la misma manera al disminuir la velocidad, los pulsos también se reducen.
No obstante, este sistema funciona bien con lapsos de tiempo grandes, por ejemplo si
la velocidad real del motor es de 1000.5 pulsos por segundo, el sistema detectarı́a en una
interrupción de un segundo 1000 pulsos, y en siguiente interrupción 1001 pulsos, con lo
que se tendrı́a una diferencia de 0.1 %, que puede ser aceptable. Sin embargo, para un
sistema de control de velocidad, no sirve de nada conocer la velocidad cada segundo, por
lo que se tiene que disminuir el tiempo para la detección de los pulsos, lo que significa por
ejemplo, que para un tiempo de 10 ms, y si se tiene una velocidad real de 10.5 pulsos por
segundo, el sistema detectarı́a en una interrupción 10 pulsos, y en la siguiente 11 pulsos,
por lo tanto se tiene una diferencia del 10 %, es decir, que la lectura de la velocidad estarı́a
variando un 10 %. Esto provoca una diferencia demasiado grande para la medición de la
velocidad.
En la segunda forma, que es por periodo, se mide el tiempo que tardan en pasar
un número determinados de pulsos, por lo tanto, los pulsos ahora son constantes. Este
método funciona correctamente para velocidades altas, ya que en ellas, los pulsos conta-
bilizados son muchos. Por lo tanto, el tiempo necesario para contar los pulsos establecidos
es pequeño y en consecuencia, es funcional para el sistema de control de velocidad. Sin
embargo, si la velocidad disminuye, el tiempo necesario para calcular la velocidad aumen-
ta, y llega a un punto, en el que tiempo para el calculo de la velocidad, es muy grande,
provocando que el método ya no es útil para el algoritmo del control de la velocidad.
Por lo tanto, estos métodos, tienen varios problemas, que serán tratados y mostrados
más adelante, por lo cual se propone un método o algoritmo nuevo, que depende de ambas
variables, es decir que se establece un tiempo mı́nimo para el cálculo de la velocidad y
dependiendo de la velocidad será proporcional al número de pulsos que son contados. La
figura 4.16 representa el diagrama de flujo de la función para el calculo de la velocidad,
la cual es llamada por uno de los eventos de las interrupciones de los sensores Hall, por
lo tanto, cada vez que el rotor gire y se produzca un pulso, con lo cual se genera una
interrupción. Esta función es llamada para el cálculo de la velocidad.
78 CAPÍTULO 4. TÉCNICA DE CONTROL
En este caso, si el tiempo del contador FreeCntr32 obtenido en la variable tiempo por
la función FC321 GetTimeReal(&tiempo), es mayor a 17.5 milisegundos, se calcula
la velocidad con los pulsos contabilizados en la variable pulsos. Después se reinicia el
contador y los pulsos para el siguiente cálculo de la velocidad.
error:
Es el error, que se calcula por la diferencia entre la velocidad deseada y la velocidad
medida.
set point:
Es el valor de referencia o deseado de la velocidad.
RPM:
La velocidad medida por el método descrito en la sección 4.5.1.
P:
La acción de control Proporcional.
I:
La acción de control Integral.
80 CAPÍTULO 4. TÉCNICA DE CONTROL
D:
La acción de control Derivativa.
ct:
Ciclo de trabajo para el PWMMC, descrito en la sección 4.1.
4.6. Sumario
En este capı́tulo, se desarrolló la generación de la modulación de ancho de pulso. Esto
implicó la programación y configuración de los registros y funciones en el controlador
digital de señales. Simultáneamente, se analizaron el modo PWM complementario e in-
dependiente para la conmutación. Ası́ mismo, se detalló la comunicación necesaria entre
el controlador digital de señales y el driver para el funcionamiento del motor, es decir, se
programan las funciones para la comunicación serial sı́ncrona o SPI. Finalmente, se inte-
graron los algoritmos diseñados para la detención de la posición del rotor, la medición de
la velocidad utilizando los sensores de efecto Hall, como retroalimentación y el algoritmo
del control PID para la velocidad.
Capı́tulo 5
Pruebas y Resultados
Para validar las ideas propuestas en capı́tulos anteriores, es necesario realizar pruebas
experimentales para verificar el funcionamiento de los algoritmos desarrollados para el
control de velocidad del motor BLDC. En este capı́tulo se describe el banco de pruebas,
ası́ como la secuencia de estas.
Por otra parte, para poder obtener gráficas con respecto a los resultados obtenidos,
es necesario utilizar un programa para poder visualizar las variables utilizadas en el al-
goritmo desarrollado, ya que no es posible medirlas o visualizarlas simplemente con un
osciloscopio o multı́metro. La herramienta que se utiliza es FreeMASTER v1.3 de Freesca-
le, que es un monitor en tiempo real y una herramienta de depuración de visualización de
datos que se puede utilizar para cualquier desarrollo de aplicaciones y gestión de la infor-
mación. FreeMASTER apoya completamente el seguimiento no intrusivo de las variables
en un sistema en funcionamiento. Se pueden visualizar múltiples variables cambiantes en
el tiempo en una pantalla del osciloscopio, o ver los datos en forma de texto.
81
82 CAPÍTULO 5. PRUEBAS Y RESULTADOS
Dentro del algoritmo de control que se diseñó, se utiliza la función FMSTR Poll(); la
cual se utiliza para el sondeo de las variables locales del programa, es decir, se encarga de
enviar los datos de las variables que se necesiten monitorear.
Las pruebas planeadas, abarcan todo el desarrollo para poder controlar el motor
BLDC, es decir, la primera prueba verifica el algoritmo para la detección de la posición del
rotor, por medio de la lectura de los tres sensores del efecto Hall. En esta, simplemente se
gira manualmente el rotor del motor para comprobar que el algoritmo, detecte la posición
actual del motor BLDC.
Finalmente, para verificar el funcionamiento del control generado, las siguientes prue-
bas se dividen en dos partes. La primera analiza el control sin emplear ninguna carga al
motor BLDC. Para esto, se crearan perfiles de velocidad, que cualitativamente son muy
parecidos a los obtenidos por la nota de aplicación DRM108 de Freescale. Esto con la
finalidad de poderlos comparar entre si. Por otro lado, se analizará el mismo perfil de
velocidad creado bajo dos circunstancias, la primera aplicando una carga constante al
motor, y la segunda con una carga, pero en este caso, aplicándola a partir de un tiempo
dado, una vez comparados los resultados, se podrá ver la respuesta del algoritmo diseñado.
En la figura 5.3, se observa una gráfica obtenida de la lectura de los sensores de efecto
Hall por medio del algoritmo implementado, donde, la linea verde, representa el nivel
lógico del sensor Hall A, la linea roja para el sensor B, y la linea azul para el sensor C,
con respecto al tiempo. Para esta prueba, el motor se giró manualmente para verificar que
el algoritmo diseñado en la sección 4.4, funcione adecuadamente, para detectar el sector
donde se encuentra actualmente el rotor. Esto se puede comprobar con la linea azul claro
llamada “sector”, ya que dependiendo de la combinación de los niveles lógicos de las lineas
de los sensores Hall, se determina el sector donde está ubicado actualmente el rotor, entre
el 1 y el 6. Este resultado se guarda en una variable, y posteriormente es utilizada para
la conmutación del motor.
sección 4.4, donde se manipula el ciclo de trabajo de los PWM´s, por medio de 2 botones,
para incrementar y disminuir este mismo.
El problema con este método, es que la velocidad se actualiza cada segundo, ya que
necesita de este tiempo para calcular la velocidad. Por otra parte, cuando el ciclo de tra-
bajo permanece constante, la variación de la velocidad es casi nula como se muestra en la
5.3. MEDICIÓN DE LA VELOCIDAD 87
figura 5.5.
Por lo tanto, lo que se necesitarı́a para poder utilizar este método, es disminuir el
tiempo necesario para calcular la velocidad, es decir, el tiempo del periodo. Se realiza una
prueba disminuyendo, el periodo a 20 milisegundos. En la figura 5.6, se muestra como la
medición de la velocidad tiene una variación muy importante y seria inapropiado para un
control de velocidad en lazo cerrado como el que se está planteando. Como se explicó en
la sección 4.5.1, relacionado al funcionamiento de este método. Esto comprueba que es
funcional solo cuando se tienen velocidades que no varı́en mucho.
rran los 20 pulsos establecidos. Por ejemplo, de acuerdo a la gráfica, para una velocidad
de 4000 RPM´s se requiere un tiempo de 50 milisegundos aproximadamente, para 1500
RPM´s, alrededor de 150 milisegundos, y para 100 RPM´s, se requiere aproximadamente
2 segundos, por lo tanto, este sistema es bueno para calcular la velocidad. Sin embargo a
velocidades bajas, requiere de mucho tiempo, cosa que no está disponible para el control
de velocidad en lazo cerrado.
A partir de la gráfica, se puede observar, por ejemplo para una velocidad de 4000
RPM´s, disminuye el tiempo con respecto a la prueba anterior, a aproximadamente 5
milisegundos, para 1000 RPM´s, baja a 20 milisegundos, pero nuevamente para una velo-
cidad de 100 RPM´s, el tiempo crece mucho, ahora es aproximadamente 200 milisegundos.
Además, la medición de la velocidad ya es tan fina cono lo es en la figura 5.7, sobre todo en
velocidades mayores a 1000 RPM´s, como se muestra con un mejor detalle en la figura 5.9.
5.3. MEDICIÓN DE LA VELOCIDAD 89
Por lo tanto, como se mostró en la sección 4.5.1, se implementa un sistema nuevo para
la medición de la velocidad del motor. Este depende de ambas variables, y de un tiempo
mı́nimo. La figura 5.10 muestra los resultados del cálculo de la velocidad por medio del
algoritmo diseñado. En este caso, se muestran 4 gráficas, la lı́nea azul claro, representa
el ciclo de trabajo de los PWM´s, la lı́nea azul fuerte, muestra el número de pulsos que
son contabilizados dentro de cada periodo de tiempo, la lı́nea roja representa el lapso que
utiliza cada periodo de tiempo empleado por el algoritmo para calcular la velocidad y la
linea verde indica la velocidad calculada por el algoritmo del motor BLDC.
Como se puede observar, el número de pulsos, que son contabilizados, varia con res-
pecto a la velocidad, a velocidades bajas, por ejemplo cerca del segundo 80 de la gráfica,
el número se pulsos que se cuenta, es de solo 1, y a mayores velocidades como puede
ser alrededor del segundo 20 de la gráfica, el número de pulsos contabilizados, es mayor,
es decir 7, mientras que el tiempo del ciclo, se mantiene siempre por debajo de los 20
milisegundos, solo a velocidades muy bajas como lo son alrededor del segundo 80 de la
gráfica, donde la velocidad es aproximadamente 100 RPM´s, el tiempo del ciclo crece a
cerca de 40 milisegundos, ya que depende de que se cuente por lo menos un pulso para
poder calcular la velocidad. Por lo tanto, entre más disminuya la velocidad, este tiempo
irá incrementandose como se muestra en la figura 5.11.
5.3. MEDICIÓN DE LA VELOCIDAD 91
Figura 5.11: Detalle del aumento del tiempo de ciclo por medio del algoritmo propuesto
Cabe destacar que a esta velocidad tan baja, el giro del motor, a simple vista no se
percibe constante, sino que presenta pequeños sobresaltos entre cada cambio de sector
como se observa en la gráfica.
92 CAPÍTULO 5. PRUEBAS Y RESULTADOS
Se puede determinar, que el sistema propuesto para medir la velocidad del motor, es
efectivo, y demuestra sus ventajas con respecto a los otros métodos utilizados comúnmen-
te.
algoritmo del controlador PID para el control de la velocidad del motor BLDC de este
trabajo. Por lo tanto, en 120 microsegundos el algoritmo, conoce la posición del rotor,
calcula el error entre el valor deseado y la velocidad medida del rotor, determina una ac-
ción de control proporcional, integra el error para determinar la acción integral, y deriva
el error para formar la acción derivativa. Posteriormente, suma todas las acciones para
formar la salida del controlador PID, y dependiendo de esta, activa los ciclos de trabajo
correspondiente al ciclo de conmutación.
Las figuras 5.16(a) y 5.16(b) ilustran un acercamiento de los perfiles de velocidad tan-
to de la nota de aplicación como del algoritmo diseñado en este trabajo respectivamente
para poder observar las diferencias de las variaciones de la velocidad actual del motor,
con respecto a la velocidad requerida, nótese, que los colores de las lı́neas de las gráficas
están invertidas una de otra, para evitar confusiones.
5.5. CONTROL DE VELOCIDAD PID 95
La tercer gráfica, ilustra la acción de control o salida del controlador, pero expresada
en términos del ciclo de trabajo de los PWM´s, como ya se revisó, este varia entre 0 y
65535, y es proporcional de 0 a 100 %, o como una salida entre 0 y 1. La cuarta y quinta
gráfica muestran el tiempo y el número de pulsos requeridos por el algoritmo para el
cálculo de la velocidad respectivamente.
Todas las pruebas y gráficas mostradas anteriormente, se realizaron sin ninguna carga
aplicada al motor, la figuras 5.18 y 5.19, comparan una prueba sin carga aplicada al motor
con una con carga constante aplicada al motor.
5.5. CONTROL DE VELOCIDAD PID 97
La gráfica de la figura 5.18 es una prueba como las anteriores. De la misma manera
muestra la velocidad deseada, velocidad actual, y acción de control con respecto al tiem-
98 CAPÍTULO 5. PRUEBAS Y RESULTADOS
po, mientras que en gráfica de la figura 5.19, tiene una carga constante aplicada al motor,
e igualmente muestra la velocidad deseada, actual, y acción de control con respecto al
tiempo. Como se observa en la gráfica de la figura 5.19, la acción de control siempre per-
manece por encima de la de la gráfica de la primera figura, esto es porque el controlador
compensa el par aplicado al motor por medio de un aumento de la salida del controlador.
Por otra parte, la gráfica mostrada en la figura 5.21, donde inicialmente, se realiza la
misma prueba, con la misma entrada de setpoint. Aproximadamente al tiempo 147.5s, se
introduce una carga al motor, por lo que la acción de control indicada por la linea azul
claro, se incrementa para compensar el par aplicado.
5.5. CONTROL DE VELOCIDAD PID 99
Figura 5.21: Prueba de un perfil de velocidad de entrada escalón con una carga aplicada
a partir de un lapso
Finalmente en de la figura 5.22, se puede ver un perfil de velocidad, pero en esta oca-
sión a bajas velocidades, por debajo de 1000 RPM´s, siendo la más baja de 125 RPM´s,
demostrando que el algoritmo diseñado para medir la velocidad, permite al controlador
PID controlar velocidades bajas, ya que según los resultados obtenidos en la sección 5.3,
los métodos de periodo y frecuencia, tienen limitantes para estas velocidades. Sin embargo,
el algoritmo diseñado, permite medir cualquier velocidad, solo limitado al tiempo mı́nimo
para el cálculo de esta, que se colocó en 17.5 milisegundos, para poder tener prácticamente
el cálculo de la velocidad siempre menor a 20 milisegundos como se mostró en la gráfica de
la figura 5.17, ya que este es el tiempo de muestreo del controlador PID, como se observa
en la figura 5.12.
100 CAPÍTULO 5. PRUEBAS Y RESULTADOS
puede utilizar cualquier otro motor descuerdo a las necesidades de la aplicación donde se
plantee usar, para este se requiere la etapa de potencia para las condiciones del nuevo
motor.
5.7. Sumario
En este capı́tulo, se hizo una breve explicación de la herramienta FreeMASTER, la cual
se utiliza para mostrar los resultados. Por otra parte, se describió el montaje experimental
y la secuencia de pruebas aplicadas. A su vez, se mostraron los resultados de las pruebas
de los algoritmos funcionando, por ejemplo, la posición del rotor, la diferencia en los
resultados de la lectura de la velocidad angular del motor, empleando distintos algoritmos
para este, demostrando que el algoritmo que finalmente se seleccionó es mejor e inclusive se
contrasta con otros algoritmos utilizados por fabricantes como Freescale o Microchip. Por
otro lado, se observó, una prueba con el tiempo necesario para el cálculo del algoritmo
de control propuesto, es decir el tiempo que necesita el controlador PID para calcular
una nueva acción de control. Ası́ mismo, se mostraron las gráficas del control de velocidad
implementado, en distintos perfiles de velocidad bajo circunstancias distintas, y finalmente
se compararon con perfiles de velocidad de notas de aplicación de algunos fabricantes.
102 CAPÍTULO 5. PRUEBAS Y RESULTADOS
Conclusiones
Con respecto a la investigación sobre la etapa de potencia tı́pica para los motores
sin escobillas de corriente directa de 3 fases, se identificaron los elementos necesarios. Se
logró integrar la comunicación entre el DSC 56f8006 y el pre-driver MC33927. Para esto,
fue necesario portar las librerı́as propias del pre-driver al proyecto en procesador experto,
acondicionar las funciones, comandos y API´s de la comunicación con el DSC 56F8006,
además de configurar esta misma para integrarla.
103
104 CONCLUSIONES
ruido, y un tiempo muerto de 2.8 microsegundos, suficiente para evitar un corto circuito
en el transistor al momento de la conmutación.
Para poder solucionar este problemas lo que se realizó en las notas de aplicación de
freescale, microchip y Texas Instrument, dedicadas al control de motores, es dividir en dos
o más, los rangos de las velocidades, como por ejemplo en la nota de aplicación DRM108
de Freescale, para poder ajustar que el tiempo máximo para el cálculo de la velocidad
siempre permanezca por debajo del tiempo de muestreo. Sin embargo, siempre se tiene
un lı́mite para velocidades bajas, es decir que no pueden controlar velocidades por debajo
de un valor establecido, además de un mayor tamaño de código.
pulso por cada 20 milisegundos. Sin embargo, si el tiempo no crece demasiado, el sistema
puede seguir controlando la velocidad como se muestra en la figura 5.22. Además, si se
tuviera una mayor resolución en la retroalimentación, es decir mayor número de pulsos
por revolución, el algoritmo puede trabajar de la misma manera sin tener que modificar
nada, o de dividir en más rangos de velocidades.
Por otro lado, para mostrar los resultados obtenidos en este trabajo, fue necesario
implementar el programa FreeMASTER en el mismo proyecto, dado que las variables a
tomar en cuenta son variables digitales dentro del DSC, por lo tanto, no pueden simple-
mente ser visualizarlas en un osiloscopio o multimetro. Se requiere enviar los datos de
las variables a la pc, para poderlas graficar. Fue necesario configurar dos comunicaciones
seriales, una para el pre-driver y la otra para enviar los datos de las variables a la compu-
tadora por medio de FreeMASTER.
Finalmente, este trabajo sirve como base para el desarrollo de un controlador de ve-
locidad para los motores BLDC, de forma comercial, que pueda competir contra otros
controladores comerciales de marcas extranjeras.
106 CONCLUSIONES
Recomendaciones para Trabajos a
Futuro
Crear una interfaz humano maquina (HMI), en la cual sea posible establecer perfiles
de velocidad, parámetros del control, ası́ como otras caracterı́sticas del funcionamiento.
107
108 RECOMENDACIONES PARA TRABAJOS FUTUROS
AN10661 (2007). Brushless DC Motor Control using the LPC2141 Application Note;
AN10661, NXP Semiconductors: Eindhoven, the Netherlands, October 2007 .
Bianchi, N.; Bolognani; S. Jang, J.H. y Sul, S.K. (2007). Comparison of PM Motor
Structures and Sensorless Control Techniques for Zero-Speed Rotor Position Detection.
IEEE Trans. Power Electron., p. 22.
Bonfe, M. y Bergo, M. (2008). A Brushless Motor Drive with Sensorless Control for
Commercial Vehicle Hydraulic Pumps. Proceedings of the IEEE International Sympo-
sium on Industrial Electronics (ISIE 2008), pp. 612–617.
109
110 REFERENCIAS
King, Kevin (2008). MCU Performance for Various Control Algorithms of BLDC Mo-
tors. Informe técnico, Renesas Technology.
Kumar, B. Mahesh (2009). Sensorless Speed Control of Brushless DC Motor with Fuzzy
Based Estimation. Electrical and Computer Engineering, 8, pp. 119–125.
Mani, Marc Vila (2010). Alineación Inicial de un Motor PMSM con Encoder Incre-
mental Mediante Sensores de Efecto Hall.
http://www.ingenia-cat.com/reference/learn/TEC.PAP.5379191030.pdf
NEC (2006). 3-Phase Brushless DC Motor Control 120-Degree Trapezoidal Drive with
Hall Sensors for MC-LVKIT-714 Motor Control Evaluation System. NEC Electronics
Corporation.
Vila, M (2006). A quick overview on rotatory Brush and Brushless DC motors”. ingenia-
cat S.L.
Wilson, T.G. y Trickey, P.H. (Oct 7, 1962). DC Machine with Solid State Commu-
tation. AIEE paper .
113
114 ANEXO A. DIAGRAMAS DE CONEXIÓN DE LA TARJETA MC56F8006
MC56F8006 Controller Daughter Board for BLDC/PMSM Motor Control Drive, Rev. 0
Freescale Semiconductor 15
115
Figure A-2 Controller and Headers
MC56F8006 Controller Daughter Board for BLDC/PMSM Motor Control Drive, Rev. 0
16 Freescale Semiconductor
116 ANEXO A. DIAGRAMAS DE CONEXIÓN DE LA TARJETA MC56F8006
Anexo B
117
118ANEXO B. CIRCUITOS IMPRESOS Y LISTA DE MATERIALES DEL MC56F8006
Bill of Materials
MC56F8006 Controller Daughter Board for BLDC/PMSM Motor Control Drive, Rev. 0
Freescale Semiconductor 17
119
MC56F8006 Controller Daughter Board for BLDC/PMSM Motor Control Drive, Rev. 0
Freescale Semiconductor 19
120ANEXO B. CIRCUITOS IMPRESOS Y LISTA DE MATERIALES DEL MC56F8006
Anexo C
121
122ANEXO C. CARACTERÍSTICAS ELÉCTRICAS DE LA ETAPA DE POTENCIA.
Electrical Characteristics
DCB_pos
3-Phase BLDC/PMSM Low-Voltage Motor Control Drive, Rev. 0
5
6
7
8
5
6
7
8
5
6
7
8
Q3 Q4 Q5
3
2
1
3
2
1
3
2
1
+ C32
100uF
Phase_A Phase_B Phase_C
+ C33
100uF
5
6
7
8
5
6
7
8
5
6
7
8
C34
0.1UF Q6 Q7 Q8
3
2
1
3
2
1
3
2
1
I_sense_A1 I_sense_B1 I_sense_C1
R85 R86 R87
0.1R 0.1R 0.1R
DCB_neg
R88
0.1R GND_LSFET
GND_LSFET
I_Sense_DCB1 I_Sense_DCB2
GND_LSFET
Freescale Semiconductor
123
124ANEXO C. CARACTERÍSTICAS ELÉCTRICAS DE LA ETAPA DE POTENCIA.
Anexo D
125
126 ANEXO D. CIRCUITOS IMPRESOS (PCB´S) DE LA ETAPA DE POTENCIA
Bill of Materials
Programas generados en
Codewarrior 8.3
/* Este comando lee el Status Register 0 del MC33927 y lo almacena en la estructura mudtStatus-
Register0 */
133
134 ANEXO E. PROGRAMAS GENERADOS EN CODEWARRIOR 8.3
MC33927 GetSR0(&mudtStatusRegister0);
/* Este comando lee el Status Register 1 del MC33927 y lo almacena en la estructura mudtStatus-
Register1 */
MC33927 GetSR1(&mudtStatusRegister1);
/* Este comando lee el Status Register 2 del MC33927 y lo almacena en la estructura mudtStatus-
Register2 */
MC33927 GetSR2(&mudtStatusRegister2);
/* Este comando lee el Status Register 3 (deadtime) del MC33927 y lo almacena en la variable
mbytDeadtime */
mbytDeadtime = MC33927 GetSR3();
MC33927 ModeCommand(&mudtModeCommands);
∗∗=====================================================∗∗
∗∗ ———————————————– Segmento de Código ———————————————– ∗∗
∗∗=====================================================∗∗
void posicion()
{
if(A==0&&B==8&&C==0)
{
n=1;
}
if(A==4&&B==8&&C==0)
{
n=2;
}
if(A==4&&B==0&&C==0)
{
n=3;
}
if(A==4&&B==0&&C==64)
136 ANEXO E. PROGRAMAS GENERADOS EN CODEWARRIOR 8.3
{
n=4;
}
if(A==0&&B==0&&C==64)
{
n=5;
}
if(A==0&&B==8&&C==64)
{
n=6;
}
sector=n+1;
if(sector>6)
{
sector=1;
}
ciclo=sector;
conmutacion(); }
∗∗=====================================================∗∗
∗∗ ———————————————– Segmento de Código ———————————————– ∗∗
∗∗=====================================================∗∗
E.3. Conmutación
∗∗=====================================================∗∗
∗∗ ———————————————– Segmento de Código ———————————————– ∗∗
∗∗=====================================================∗∗
void conmutación(void){
aa=Bit1 GetRawVal();
if(aa==0){
if(ciclo¿6)
{
ciclo=1;
}
if(ciclo==1){
//Entra-A***Sale-C***B-off////////
E.3. CONMUTACIÓN 137
if(ciclo==2){
//Entra-A***Sale-B***C-off////////
PWMC1 SetRatio16(PWM AA,ct);
//////////////////////////////////
PWM B out;
PWM C off;
//////////////////////////////////
////////Activar Salida////////////
PWMC1 Load();
PWMC1 OutputPadEnable();
//////////////////////////////////
}
if(ciclo==3){
//Entra-C***Sale-B***A-off////////
PWMC1 SetRatio16(PWM CC,ct);
//////////////////////////////////
PWM B out;
PWM A off;
//////////////////////////////////
////////Activar Salida////////////
PWMC1 Load();
PWMC1 OutputPadEnable();
//////////////////////////////////
}
if(ciclo==4){
//Entra-C***Sale-A***B-off////////
PWMC1 SetRatio16(PWM CC,ct);
//////////////////////////////////
138 ANEXO E. PROGRAMAS GENERADOS EN CODEWARRIOR 8.3
PWM A out;
PWM B off;
//////////////////////////////////
////////Activar Salida////////////
PWMC1 Load();
PWMC1 OutputPadEnable();
//////////////////////////////////
}
if(ciclo==5){
//Entra-B***Sale-A***C-off////////
PWMC1 SetRatio16(PWM BB,ct);
//////////////////////////////////
PWM A out;
PWM C off;
//////////////////////////////////
////////Activar Salida////////////
PWMC1 Load();
PWMC1 OutputPadEnable();
//////////////////////////////////
}
if(ciclo==6){
//Entra-B***Sale-C***A-off////////
PWMC1 SetRatio16(PWM BB,ct);
//////////////////////////////////
PWM C out;
PWM A off;
//////////////////////////////////
////////Activar Salida////////////
PWMC1 Load();
PWMC1 OutputPadEnable();
//////////////////////////////////
}
}
else
{
PWMC1 OutputPadDisable();
set point=0;
ct=0;
MC33927 ClearFlags(&mudtClearFlags);
E.4. ALGORITMO PARA EL CALCULO DE LA VELOCIDAD DEL MOTOR 139
}}
∗∗=====================================================∗∗
∗∗ ———————————————– Segmento de Código ———————————————– ∗∗
∗∗=====================================================∗∗
void velocidad(void)
{
pulsos totales++;
pulsos++;
FC321 GetTimeReal(&tiempo);
if(tiempo>0.0175)
{
FC321 Reset();
RPM=pulsos/6*(1/tiempo)*60; m=pulsos;
t1=tiempo;
pulsos=0;
}
}
∗∗=====================================================∗∗
∗∗ ———————————————– Segmento de Código ———————————————– ∗∗
∗∗=====================================================∗∗
#pragma interrupt called /* Comment this line if the appropriate ’Interrupt preserve registers’ property
*/
140 ANEXO E. PROGRAMAS GENERADOS EN CODEWARRIOR 8.3
error=set point-RPM;
P=kp*error;
I=ki*T*(set point-(RPM+RPM1)/2);
D=(kd/(6*T))*((error-error3)+3*(error1-error2));
c t=P+I+D+c tv;
if(c t<0)
{
c t=0;
}
if(c t>65535)
{
c t=65535;
}
c tv=c t;
RPM1=RPM;
error3=error2;
error2=error1;
error1=error;
}
∗∗=====================================================∗∗
∗∗ ———————————————– Segmento de Código ———————————————– ∗∗
∗∗=====================================================∗∗
Anexo F
Las siguiente página pertenece a la hoja de datos del motor BLDC utilizado para el
desarrollo de este trabajo.
141
142 ANEXO F. HOJA DE DATOS DEL MOTOR LINIX 45ZWN24-40
45ZWN
BLDC motor
Type No.of m No.of p Rated voltage Rated current Rated torque Rated power Rated speed
V DC A g.cm W r/min
45ZWN24-10 3 4 24 0.8 360 10 2600
45ZWN24-13 3 4 24 1.4 800 13 1600
45ZWN24-15 3 4 24 1.4 700 15 2100
45ZWN24-25 3 4 24 1.8 820 25 3000
45ZWN24-30 3 4 24 2 900 30 3200
45ZWN24-40 3 4 24 2.3 990 40 4000
45ZWN24-90 3 4 24 5.8 930 90 9350
45ZWN
2
4.1
Power L1 L2 H 2
1
mm mm mm mm mm
0 -0.006
10W 46.5 29.5 1.5 19 -0.2 5 -0.015
0 0
13~90W 80 28 2.5 21 -0.033 5 -0.012
L1 L2
4xM5 L1 L3
Power L1 L2 H
45ZWN/60JB
10W 51 1.5
L2
30W 83.6 0
Ratio L3
7 0.1
-0.01
-0.03
10 0.1
1:3~1:18 32
1:20~1:600 40
7 0.1
0
45ZWN/66JB
Power L1 L2
-0.1
L2 L1 -0.2
10W 58.5 1.5
30W 90 0
0
7.5 -0.2
-0.015
10-0.025
+0.04
45ZWN/66JB
1:100 1:120 1:150 1:180
Power L1 L2
-0.1
L2 L1 -0.2
24
Anexo G
Las siguientes páginas pertenecen al documento Codewarrior for 56800/E Digital Sig-
nal Controllers Fact Sheet y Codewarrior for 56800/E Digital Signal Controllers / over-
view, respectivamente donde se muestran las caracterı́sticas del codewarrior y los requisitos
mı́nimos de instalación.
143
144 ANEXO G. INFORMACIÓN DEL CODEWARRIOR FOR DSC V8.3
Component Wizard Supported DSC DEMO/EVM Boards CodeWarrior Development Studio for
The Component Wizard is the tool that allows • DSP56F800DEMO-E, DSP56F827EVM, 56800/E Digital Signal Controllers is included
you to create your own Components to DSP56852EVM, DSP56858EVM, in the CodeWarrior Development Tool Suites.
address the specific needs of an application, To order the product, select the part number
MC56F8323EVM, MC56F83567EVM,
such as support for using a generic peripheral for the CodeWarrior Development Tool Suite
DEMO56F8013, DEMO56F8014,
in a very specific way. This tool is sold that meets your needs.
MC56F8037EVM, MC56F8006DEMO and
separately.
TWR-56F8257 (New)
Real-Time Operating System (RTOS) Special Suite—CodeWarrior for 56800/E
Target Connections Digital Signal Controllers, Special Edition
• Freescale OSEKturbo is a small, fast, reliable,
scalable RTOS. Fully compliant to the • CodeWarrior USBTAP Special Edition CWX-568-SE
Codewarrior Development Studio for Freescale 56800/E Digital Signal Controllers Perpetual $4995
Product Part Numbers • Node Locked CWP-PRO-NL
Part Numbers: Products: • Floating CWP-PRO-FL
CWS-568-CX (Note: Individual part number is no CodeWarrior Development Studio for 56800/E • Tech Support CWT-PRO
After first year $995
longer in use, product is now included in Standard and Digital Signal Controllers, Standard Edition
Professional Suites)
Annual Subscription $1995
CWS-568-C64K-CX (Individual part number is no CodeWarrior Development Studio for 56800/E • Node Locked CWA-PRO-NL
longer in use, product is now included in Basic Suite) Digital Signal Controllers, 256 KB Edition
• Floating CWA-PRO-FL
CWX-568-SE CodeWarrior Development Studio for 56800/E
Digital Signal Controllers, Special Edition Contact your local Freescale representative
64 KB Code Size Limit for more information.
Learn More: For more information about Freescale You can also find more information about
CodeWarrior products, please visit Fast Track, Freescale’s online support services
www.freescale.com/codewarrior. center, at www.freescale.com/fasttrack.
Freescale, the Freescale logo, and CodeWarrior are trademarks or registered trademarks of Freescale Semiconductor, Inc.
in the U.S. and other countries. All other product or service names are the property of their respective owners.
© Freescale Semiconductor, Inc. 2009.
950-00003
REV E
146 ANEXO G. INFORMACIÓN DEL CODEWARRIOR FOR DSC V8.3
SYSTEM REQUIREMENTS
Hardware 1.0 GHz Pentium® compatible processor
1GB RAM
2GB RAM minimum is strongly recommended for
systems running on Microsoft® Windows® Vista™
Business Operating System
CD-ROM drive
NOTE If Auto Install does not start, run launch.exe, which is located
in the root directory of the CD.
1
Anexo H
147
148 ANEXO H. RESUMEN DE FUNCIONES DEL PRE-DRIVER MC33927
API Summary