Você está na página 1de 178

Instituto Politécnico Nacional

Escuela Superior de Ingenierı́a Mecánica y Eléctrica


Sección de Estudios de Posgrado e Investigación
Unidad Profesional Adolfo López Mateos Zacatenco

CONTROL DE VELOCIDAD DE UN MOTOR


SIN ESCOBILLAS DE CD.

TESIS

QUE PARA OBTENER EL GRADO DE MAESTRO EN


CIENCIAS EN INGENIERÍA MECÁNICA

PRESENTA

Ing. Luis Godoy Rodrı́guez

ASESORES:

Dr. Luis Héctor Hernández Gómez


Dr. Juan José Muñoz César

México D. F. Agosto 2013


ii
v
vi
Resumen

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.

Se emplea un convertidor de corriente directa a corriente directa de tres ramas, la


cual utiliza seis transistores de potencia para el motor de tres fases, en la que se puede
desarrollar cualquier tipo de conmutación, es decir, unipolar o bipolar con un modo inde-
pendiente o complementario.

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

retroalimentación del sistema.

El motor es controlado haciendo uso de un controlador proporcional integral deriva-


tivo (PID), programado en lenguaje C con Procesador Experto utilizando la versión 8.3
de CodeWarrior de Freescale, donde el algoritmo resuelve una nueva acción de control en
aproximadamente 120 microsegundos. Las gráficas mostradas en el capı́tulo 5, se obtuvie-
ron utilizando la interfaz gráfica de FreeMASTER.
Abstract

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.

The motor is controlled using a proportional integral derivative (PID), programmed

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

Índice de Tablas XIX

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

4.4. Control de Velocidad del motor BLDC en lazo abierto . . . . . . . . . . . . 69


4.5. Control de Velocidad del motor BLDC en lazo cerrado . . . . . . . . . . . 74
4.5.1. Medición de la velocidad angular . . . . . . . . . . . . . . . . . . . 74
4.5.2. Algoritmo de Control de Velocidad PID . . . . . . . . . . . . . . . 78
4.6. Sumario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

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

Recomendaciones para Trabajos a Futuro 107

Referencias 109

Anexos 111

A. Diagramas de conexión de la tarjeta MC56F8006 113

B. Circuitos impresos y lista de materiales del MC56F8006 117

C. Caracterı́sticas eléctricas de la etapa de potencia. 121

D. Circuitos impresos (PCB´s) de la etapa de potencia 125

E. Programas generados en Codewarrior 8.3 133


E.1. Segmento de código para la configuración del MC56F8006 con el driver
MC33927 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
E.2. Segmento de codigo para la detección de la posición del rotor . . . . . . . . 135
E.3. Conmutación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
xiv ÍNDICE GENERAL

E.4. Algoritmo para el calculo de la velocidad del motor . . . . . . . . . . . . . 139


E.5. Control PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

F. Hoja de datos del motor LINIX 45ZWN24-40 141

G. Información del CODEWARRIOR for DSC v8.3 143

H. Resumen de funciones del Pre-driver MC33927 147


Índice de Figuras

1.1. Clasificación de las máquinas eléctricas . . . . . . . . . . . . . . . . . . . . 4


1.2. Diagrama de bloques de la disposición de un motor con escobillas de CD. . 5
1.3. Diagrama de bloques de la disposición de un motor sin escobillas de CD. . 6

2.1. Construcción de un motor BLDC . . . . . . . . . . . . . . . . . . . . . . . 14


2.2. Bobinados del Estator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3. Fuerza contraelectromotriz trapezoidal. . . . . . . . . . . . . . . . . . . . . 15
2.4. Fuerza contraelectromotriz sinusoidal. . . . . . . . . . . . . . . . . . . . . . 16
2.5. Sección transversal de los imanes de un rotor. . . . . . . . . . . . . . . . . 16
2.6. Sección transversal de los sensores de Efecto Hall. . . . . . . . . . . . . . . 18
2.7. Encoder incremental. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.8. Encoder absoluto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.9. Etapa de potencia y topologı́a del motor. . . . . . . . . . . . . . . . . . . . 21
2.10. Sı́mbolos de los transistor MOSFET de canal n y canal p. . . . . . . . . . . 25
2.11. Sı́mbolos de los transistor MOSFET de canal n y canal p. . . . . . . . . . . 26
2.12. Etapa de potencia para un motor BLDC. . . . . . . . . . . . . . . . . . . . 27
2.13. Configuración básica de PWM (solo se muestra una fase del inversor). . . . 28
2.14. Señales de control de retraso y voltaje de salida. . . . . . . . . . . . . . . . 29
2.15. Diagrama que muestra la función f(hT) . . . . . . . . . . . . . . . . . . . . 32
2.16. Diagrama a bloques de la realización del esquema de control PID en la
forma de velocidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.17. Tensión aplicada a un motor BLDC . . . . . . . . . . . . . . . . . . . . . . 35
2.18. Vectores de flujo del estator para un control de 6 pasos. . . . . . . . . . . . 36
2.19. Seis vectores posibles del flujo del estator. . . . . . . . . . . . . . . . . . . 38
2.20. Ejemplo de cálculo del vector de corrientes del estator y espacio de posibles
direcciones de dicho vector. . . . . . . . . . . . . . . . . . . . . . . . . . . 38

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

3.1. Tarjeta secundaria MC56F8006. . . . . . . . . . . . . . . . . . . . . . . . . 53


3.2. Controlador para motor de 3 Fases BLDC / PMSM de baja tensión. . . . . 54
3.3. Unidad de control para motor de 3 Fases BLDC / PMSM de baja tensión. 55
3.4. Motor BLDC utilizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.5. Fases del Motor BLDC LINIX . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.6. Polos del Motor BLDC LINIX . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.7. Sensores Hall del motor BLDC LINIX . . . . . . . . . . . . . . . . . . . . 58

4.1. Patrones de conmutación bipolar complementaria para el motor BLDC. . . 63


4.2. Patrones de conmutación unipolar complementaria para el motor BLDC. . 64
4.3. Patrones de conmutación bipolar independiente para el motor BLDC. . . . 65
4.4. Patrones de conmutación unipolar independiente para el motor BLDC. . . 66
4.5. Módulo PWMMC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.6. Conmutación unipolar independiente generada con el DSC. . . . . . . . . . 67
4.7. Conmutación unipolar complementaria generada con el DSC. . . . . . . . . 67
4.8. Conmutación bipolar independiente generada con el DSC. . . . . . . . . . 68
4.9. Conmutación bipolar complementaria generada con el DSC. . . . . . . . . 68
4.10. Configuración del MC56F8006 con el driver MC33927. . . . . . . . . . . . 70
4.11. Propiedades de la interrupción del sensor Hall A. . . . . . . . . . . . . . . 70
4.12. Eventos utilizados del sensor Hall B. . . . . . . . . . . . . . . . . . . . . . 71
4.13. Diagrama de flujo para la detección de la posición del rotor. . . . . . . . . 72
4.14. Diagrama de flujo para el control de velocidad en lazo abierto. . . . . . . . 73
4.15. Propiedades del módulo FreeCntr32. . . . . . . . . . . . . . . . . . . . . . 75
4.16. Diagrama de flujo para el cálculo de velocidad del rotor. . . . . . . . . . . 78
4.17. Diagrama de flujo para el control de velocidad en lazo cerrado. . . . . . . . 79

5.1. Bibliotecas necesarias para FreeMASTER . . . . . . . . . . . . . . . . . . . 82


5.2. Montaje experimental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
ÍNDICE DE FIGURAS xvii

5.3. Sectores del rotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85


5.4. Medición de la velocidad con un periodo de un segundo . . . . . . . . . . . 86
5.5. Detalle de la velocidad con un periodo de un segundo . . . . . . . . . . . . 87
5.6. Medición de la velocidad con un periodo de 20 milisegundos . . . . . . . . 88
5.7. Medición de la velocidad con una frecuencia de 20 pulsos . . . . . . . . . . 89
5.8. Medición de la velocidad con una frecuencia de 2 pulsos . . . . . . . . . . . 89
5.9. Variación de la velocidad con una frecuencia de 2 pulsos . . . . . . . . . . 90
5.10. Medición de la velocidad por medio del algoritmo propuesto . . . . . . . . 91
5.11. Detalle del aumento del tiempo de ciclo por medio del algoritmo propuesto 91
5.12. Ventana de control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.13. Tiempo dedicado a la resolución del algoritmo PID. . . . . . . . . . . . . . 93
5.14. Prueba de un perfil de velocidad nota de aplicación DRM108 de Freescale . 94
5.15. Prueba de un perfil de velocidad similar al de la nota de aplicación DRM108
de Freescale en el algoritmo diseñado . . . . . . . . . . . . . . . . . . . . . 95
5.16. Comparación de perfil de velocidad . . . . . . . . . . . . . . . . . . . . . . 95
5.17. Prueba de un perfil de velocidad . . . . . . . . . . . . . . . . . . . . . . . . 96
5.18. Perfil de velocidad sin carga aplicada al motor. . . . . . . . . . . . . . . . . 97
5.19. Perfil de velocidad con carga constante aplicada al motor. . . . . . . . . . . 97
5.20. Prueba de un perfil de velocidad de entrada escalón . . . . . . . . . . . . . 98
5.21. Prueba de un perfil de velocidad de entrada escalón con una carga aplicada
a partir de un lapso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.22. Prueba de un perfil de baja velocidad . . . . . . . . . . . . . . . . . . . . 100
xviii ÍNDICE DE FIGURAS
Índice de Tablas

2.1. Secuencia de conmutación para giro horario . . . . . . . . . . . . . . . . . 37


2.2. Secuencia de conmutación para giro anti-horario . . . . . . . . . . . . . . . 37

3.1. Caracterı́sticas Motor LINIX 45ZWN24-40 . . . . . . . . . . . . . . . . . . 57

4.1. Propiedades de la interrupción del sensor Hall A . . . . . . . . . . . . . . . 71


4.2. Métodos del FreeCntr32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

xix
xx ÍNDICE DE TABLAS
Objetivo

Desarrollar el control de velocidad para un motor sin escobillas de corriente directa


(BLDC, por sus siglas en ingles Brushless Direct Current) e implementarlo en un contro-
lador digital de señales (DSC, por sus siglas en ingles Digital Signal Controller ) Freescale
MC56F8006, utilizando las técnicas de conmutación trapezoidal, realizando un control
con sensores de efecto Hall (Sensored) para la retroalimentación.

Derivados del objetivo general se plantean los siguientes objetivos especı́ficos:

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.

Recopilar información acerca de la los diferentes tipos de conmutación electrónica


para los motores BLDC.

Desarrollar algoritmos sobre generación de Modulación de Ancho de Pulso (PWM,


por sus siglas en ingles Pulse Width Modulation) para los diferentes tipos de con-
mutación trapezoidal, es decir unipolar, bipolar, independiente y complementaria.

Generar un método y diseñar un algoritmo en el microcontrolador para medir la


velocidad y posición angular del motor, por medio de los sensores de efecto Hall o
encoders.

Crear un montaje experimental para analizar una secuencia de pruebas.

xxi
xxii OBJETIVO
Justificación

Dentro del área de la ingenierı́a mecánica, el diseño y generación de mecanismos es


una lı́nea de investigación que se ha desarrollado ampliamente. Estos mecanismos se im-
plementan en prótesis, cajas de engranes, levas, o cualquier sistema necesario para una
máquina, etc., por lo tanto su diseño, está dentro del área de ”Diseño Mecánico”. En la
actualidad, las áreas de investigación son integrales, es decir que no solo basta con diseñar
un mecanismo, sino que también es necesario controlar estos.

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).

Por lo tanto, lo que se propone en este trabajo es diseñar el control de un eje de

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

La tecnologı́a está tan desarrollada con la evolución de la microelectrónica que es fácil


olvidar el enlace fundamental entre la ingenierı́a eléctrica y mecánica. Esta vinculación se
encuentra allı́ donde el movimiento mecánico es controlado por la electrónica, y se propaga
en una amplia gama de productos. Una pequeña consideración revela una área importante
de la tecnologı́a, en que las unidades para controlar los motores son fundamentales.

Según Erickson y Maksimovic (2001), muchos ingenieros electrónicos tienen la impre-


sión de que la tecnologı́a de motores y controladores es madura, incluso estática. Pero
hay más actividad de desarrollo en los drivers que en cualquier momento del pasado, y
esto no se limita únicamente a la electrónica de control. Dos razones importantes para la
actividad de desarrollo y la creciente variedad técnica son:

El uso creciente de computadoras y equipos electrónicos para controlar el movimien-


to mecánico. La tendencia hacia la automatización exige nuevas unidades con una
amplia variedad de caracterı́sticas fı́sicas y de control.

La tecnologı́a en semiconductores de potencia y circuitos integrados, lo que lleva al


desarrollo de los motores no clásicos, como motores sin escobillas de C.D. (Brushless
DC).

¿Porqué velocidad ajustable?


Dos razones comunes para preferir un controlador de velocidad ajustable en un motor
de velocidad fija son:

ahorro de energı́a.

control de velocidad o posición.

xxv
xxvi INTRODUCCIÓN

Ahorro de energı́a.

En las economı́as desarrolladas, alrededor de un tercio de toda la energı́a primaria se


convierte en electricidad, de los cuales dos tercios se utilizan en motores eléctricos y sus
controladores. En algunas aplicaciones, a menudo es posible reducir los costes medios de
la energı́a en un 50 por ciento o más mediante el uso de variadores de velocidad, que
eliminan la pérdida o limitación de la recirculación de corriente. El controlador de veloci-
dad ajustable puede ser menos eficiente que el motor original de velocidad fija, pero con
una eficiencia del controlador del orden de 90 por ciento. Esto hace poca diferencia a la
eficiencia global del proceso. En otras palabras, las pérdidas de energı́a adicional en el
controlador electrónico de potencia son pequeñas en comparación con los ahorros totales
alcanzados por la conversión de velocidad ajustable.

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.

Control de velocidad o posición.

Ejemplos evidentes de control de velocidad son el tren eléctrico, escaleras eléctricas,


ascensores o elevadores, etc. son ejemplos interesantes en los que se controlan no sólo la
posición y la velocidad, sino también la aceleración y sus derivados (tirón). Un sinnúmero
de procesos en la industria manufacturera requieren control de posición y velocidad en
diversos grados de precisión.

Especialmente con la tendencia hacia la automatización, el crecimiento técnico y co-


mercial de los controladores por debajo de 20 kW es muy vigoroso. Muchos productos
incorporan un controlador de velocidad ajustable como un componente. Un robot, por
ejemplo, puede contener varios controladores independientes, uno para cada eje de movi-
miento. Otros ejemplos familiares se encuentran en máquinas de oficina: copiadoras, fax,
impresoras, CD-ROM, BLU-RAY.
xxvii

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.

En el siguiente capı́tulo, se tratan los temas correspondientes al marco teórico. En este


se desarrollan los temas necesarios para ir abordando la tesis, se desglosan los fundamen-
tos de los motores sin escobillas de corriente directa, a su vez, se desarrolla 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 analiza el efecto de tiempo muerto en los inversores controlados por modu-
lación de ancho de pulso. Por otra parte, se describe el control PID, y se enfatiza en el
control PID digital, teniendo en cuenta que es el algoritmo utilizado en el desarrollo de
este trabajo. Finalmente se obtiene el diseño conceptual.

Posteriormente, en el capı́tulo 3, se describen las caracterı́sticas y funciones del equipo


utilizado, en especı́fico del controlador digital de señales 56F8006, de la unidad de control
para motor de 3 fases BLDC y del propio motor.

Por otra parte, en el capı́tulo 4, se desarrolla la generación de la modulación de ancho


de pulso. Esto implica la programación y configuración de los registros y funciones en el
controlador digital de señales. Simultáneamente, se analizan el modo PWM complementa-
rio e independiente para la conmutación. Ası́ mismo, se detalla 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 integran los algoritmos diseñados para la detención de la posición del rotor, la medi-
ción de la velocidad utilizando los sensores de efecto Hall, como retroalimentación y el
algoritmo del control PID para la velocidad.
xxviii INTRODUCCIÓN

En el último capı́tulo, se hace una breve explicación de la herramienta FreeMASTER,


la cual se utiliza para mostrar los resultados. Por otra parte, se describe el montaje
experimental y la secuencia de pruebas aplicadas. A su vez, se muestran 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 observa, 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 muestran las gráficas del control de
velocidad implementado, en distintos perfiles de velocidad bajo circunstancias distintas,
y finalmente se comparan con perfiles de velocidad de notas de aplicación de algunos
fabricantes.
Agradecimientos

Al:

Instituto Politécnico Nacional


Escuela Superior de Ingenierı́a Mecánica y Eléctrica
Sección de Estudios de Posgrado e Investigación

Consejo Nacional de Ciencia y Tecnologı́a

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

Gracias por todo su apoyo

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.1. Antecedentes de los motores sin escobillas de co-


rriente directa
Los motores sin escobillas de corriente directa, por sus siglas en ingles BLDC, son una
parte valiosa de la industria hoy en dı́a. Las ventajas que los motores BLDC confieren
a todas las aplicaciones para las que se utilizan son grandes, y el uso de estos motores
puede ahorrar casi en cualquier industria una gran cantidad de tiempo y dinero en las
circunstancias adecuadas. El motor BLDC, en realidad, representa el final, o al menos el
resultado final más reciente, de una larga evolución de la tecnologı́a de los motores.

1.1.1. Pre-Historia de motores sin escobillas de corriente directa


Antes de que existieran motores BLDC, los hubo con escobillas de corriente directa, los
cuales, en parte sustituyeron a motores de inducción de corriente alterna menos eficientes
que se desarrollaron antes. El motor de corriente directa con escobillas, se inventó en 1856
por el famoso inventor y empresario alemán Ernst Werner von Siemens. El es tan famoso
que la unidad internacional estándar de conductividad eléctrica se nombró a partir de él.
Von Siemens estudió ingenierı́a eléctrica después de dejar el ejército y produjo muchas
contribuciones al mundo de la ingenierı́a eléctrica, incluyendo el primer ascensor eléctrico

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.

1.1.2. Motores sin escobillas de corriente directa

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).

A medida que el dispositivo se ha desarrollado y refinado, se convirtió en una opción


popular para aplicaciones especiales, tales como discos duros de ordenador, robótica, en
los aviones, etc. De hecho, los motores BLDC se utilizan en estos dispositivos en la actua-
lidad, casi cincuenta años después de su desarrollo, gracias a su eficiencia tan grande. La
importancia de estos motores es que, en los motores con escobillas el, desgaste era un gran
problema, ya sea a causa de las intensas exigencias de la aplicación o, por ejemplo, en el
caso de las aeronaves debido a la baja humedad. Dado que los motores BLDC no tenı́an
escobillas que pudieran desgastarse, representan un gran salto adelante en la tecnologı́a.
El problema era que no importaba que tan fiables fueran. Los primeros motores BLDC
no fueron capaces de generar una gran cantidad de energı́a.

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

estuvieron disponibles fácilmente. El uso de dichos imanes, combinados con transistores


de alta tensión, habilitaron a lo motores BLDC para generar energı́a tanto o más como
los motores con escobillas de corriente directa.

Cerca del final de la década de 1980, Robert E. Lordo, de la Corporación POWERTEC


Industrial, dı́o a conocer la primera gran generación de motores BLDC, que tenı́an por lo
menos diez veces la potencia de los anteriores motores BLDC.

1.2. Control de motores sin escobillas de corriente


directa
La función básica de un motor eléctrico es convertir la energı́a eléctrica en energı́a
mecánica. Teniendo en cuenta la disponibilidad de energı́a eléctrica y los miles de usos
para la energı́a mecánica, no es de extrañar que los motores eléctricos son ampliamente
utilizados. De acuerdo con el Departamento de Energı́a de los Estados Unidos, en la hoja
de datos (DOE/GO-10096-314), los motores eléctricos son responsable de consumir más
de la mitad de toda la energı́a eléctrica utilizada en este pais. Todos los motores eléctricos
apoyan su funcionamiento en la atracción y la repulsión de los campos magnéticos.

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

Figura 1.1: Clasificación de las máquinas eléctricas


1.2. CONTROL DE MOTORES SIN ESCOBILLAS DE CORRIENTE DIRECTA 5

Figura 1.2: Diagrama de bloques de la disposición de un motor con escobillas de CD.

permanentes giran y la armadura se mantiene estática, como se reporta en Vila (2006).


Esto lleva todo el problema a la transferencia de corriente a una armadura móvil, como
se puede observar en las figuras 1.2 y 1.3 respectivamente.

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

Figura 1.3: Diagrama de bloques de la disposición de un motor sin escobillas de CD.

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).

Debido a su alta densidad de potencia, la fiabilidad, la eficiencia, un libre manteni-


1.2. CONTROL DE MOTORES SIN ESCOBILLAS DE CORRIENTE DIRECTA 7

miento y un funcionamiento silencioso, los motores de imanes permanentes (PM) han


sido ampliamente utilizados en una gran variedad de aplicaciones en la automatización
industrial, informática, aeroespacial, militar como comentan Bonfe y Bergo (2008), los
automóviles (vehı́culos hı́bridos), como indicó Naidu y otros (2005), y productos para el
hogar. Sin embargo, los motores BLDC PM son inherentemente controlados electrónica-
mente y requieren información de la posición del rotor para una conmutación adecuada
de las corrientes en las bobinas de su estator.

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).

El movimiento en un motor sin escobillas se produce por la interacción que existe


entre el rotor de imán permanente con un campo magnético generado cuando un voltaje
de corriente directa circula a través de las bobinas del estator NEC (2006), (más adelante
se explican la constitución y funcionamiento de estos). La forma más común de controlar
la rotación de un BLCD es a través de la técnica de los 6 pasos de conmutación (otras
veces llamada 60, 120 grados de control, Freescale (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

DCCT y OSDC (DC current transducers y One-Shunt Current Detection), Xu (2008).


Ambas técnicas de medición estiman la posición y velocidad, usando las mediciones de
corriente y voltaje aplicados en el ciclo de PWM. Estos métodos emplean un filtro Kal-
man, un observador y una matriz de transición; sin embargo, esto provoca que el número
de cálculos sea mayor, implicando un mayor uso del ancho de banda del CPU King (2008).

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

embargo en este modo de operación se consigue un bajo torque y el control de velocidad


es muy difı́cil Freescale (2009).

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).

1.3. Sistemas embebidos y su importancia


Se conoce como sistema embebido a un circuito electrónico computarizado que está di-
señado para cumplir una labor especı́fica en un producto, según Galeano (2009). La inte-
ligencia artificial, secuencias y algoritmos de un sistema embebido están residentes en la
memoria de una pequeña computadora denominada microcontrolador.

A diferencia de los sistema computacionales de escritorio y “laptops”, estos sistemas


solucionan un problema especı́fico y están dispersos en todos los ambientes posibles de
la vida cotidiana. Es común encontrar sistemas embebidos en los vehı́culos; por ejemplo,
controlando el sistema de inyección de combustible, en los sistemas de frenado ABS (Anti-
lock Braking Systems), en el control de espejos eléctricos, sistemas de protección contra
impacto (Airbags), alarmas contra robo, sistemas de ubicación, entre otros. También en los
electrodomésticos de uso diario: controlando la temperatura en los refrigeradores, estufas,
hornos de microondas y planchas; el motor de licuadoras, lavadoras de ropa, lavaplatos,
aspiradoras y juguetes; en los equipos celulares, agendas de bolsillo, PDA, reproductores
de música y video, equipo de gimnasio, equipo médico, robots, brazos manipuladores en la
industria, en control de procesos e instrumentación industrial, y en general, en una gran
cantidad de dispositivos de uso diario.

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

1.4. Planteamiento del problema

En sistemas mecatrónicos, frecuentemente es necesario establecer una conexión eléctri-


ca entre una parte fija y una rotatoria en un dispositivo. Este es el caso de los motores
o generadores eléctricos, donde se debe establecer una conexión de la parte fija de la
máquina con las bobinas del rotor. Para ello se emplean las escobillas, que permiten la
generación de pulsos para la conmutación del motor. Sin embargo, en los motores BLDC,
la ausencia de las escobillas genera un nuevo problema, este es el de desarrollar una con-
mutación de forma electrónica.

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.

Una vez establecida la conmutación electrónica, se puede tener un control en lazo


abierto. Por lo tanto ahora el problema se enfoca en controlar la velocidad de un motor
BLDC en lazo cerrado, esto implica conocer la velocidad del motor por medio de un al-
goritmo y poderla comparar con una deseada, con el fin de que el algoritmo de control
implementado, pueda mantener la velocidad en un rango establecido.

El desarrollo de este tipo de motores, es relativamente nuevo. Consecuentemente, el


uso de estos va en aumento, debido a las ventajas con respecto a un motor con escobillas,
como lo es su libre mantenimiento, mayor velocidad nominal o la mayor relación entre
par y tamaño. Dado que se existen sistemas donde se requiere una velocidad controlada
o a través de un perfil de velocidad, es necesario el desarrollo de este tipo de investigacio-
nes, por lo tanto, al poder controlar la velocidad de un movimiento en un mecanismo, se
1.5. METODOLOGÍA 11

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.

Derivado de lo anterior, se pude decir que la manera de desarrollar un control de


velocidad para un motor BLDC, depende de la conmutación electrónica, que a su vez,
radica en la detección de la posición por medio de sensores. Por lo tanto, es necesario
diseñar e implementar una serie de algoritmos en un sistema embebido, que puede ser un
microcontrolador, un procesador digital de señales, un controlador digital de señales, etc.
Consecuentemente, estos algoritmos deben detectar en que sector se encuentra el rotor,
medir la velocidad utilizando los sensores de posición, la cual será utilizada para obte-
ner el error entre la velocidad de consigna y la actual, todos estos parámetros van a ser
utilizados para que el algoritmo de control pueda generar una conmutación trapezoidal
que incluye el manejo de los seis PWMs de forma independiente, lo cual se traduce en
la activación de los interruptores en la combinación necesaria para que el motor gire a la
velocidad deseada. Posteriormente, para la observar la respuesta del sistema en diferentes
situaciones de operación, es necesario contar con una interfaz gráfica para mostrar los
resultados.

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.

La generación de la modulación de ancho de pulso (PWM) depende del tipo de con-


mutación que se vaya a aplicar. Paralelamente se programará esté en el sistema embebido.
Por otra parte, se tiene que diseñar un algoritmo para la medición de la velocidad angu-
12 CAPÍTULO 1. ANTECEDENTES GENERALES

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.

A continuación, se analizará el algoritmo de un control PID (proporcional, integral


y derivativo) y su implementación en el sistema embebido para controlar la velocidad
del motor en lazo cerrado. Asimismo, es necesario incluir un sistema para poder graficar
las variables, ya que un instrumento de medición como un osciloscopio, no nos permite
medir estas variables. De esta manera, es necesario configurar una comunicación entre el
sistema embebido y un programa para enviar las variables y poder mostrar los resultados
del sistema de control implementados.

Integrando este algoritmo al proyecto, se implementa el control PID en el DSC, este


algoritmo requiere conocer la posición del rotor, la velocidad medida del rotor por medio
del algoritmo diseñado y el error con respecto a una señal requerida o set-point, todo esto
sirve para que el sistema calcule una nueva acción de control, y sirva como el parámetro
de ciclo de trabajo en la generación de PWM, los cuales activaran la etapa de potencia
traduciéndose en un aumento o disminución de la velocidad del motor para tratar de
empatar a la deseada. Finalmente, se propondrá una serie de pruebas que permitan ver
la respuesta del sistema bajo diferentes condiciones de operación.

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

2.1. Fundamentos de los motores sin escobillas de co-


rriente directa

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.

De acuerdo a la configuración, existen de una, dos o tres fases. Es necesario recalcar


que correspondientemente a al tipo, el estator tiene el mismo número de bobinas. De
estos, los motores de tres fases son los más populares y ampliamente utilizados, como se
reportó en Yedamale (2003). Por consiguiente, este trabajo se centra en el análisis y el
desarrollo del control para los motores de tres fases.

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

Figura 2.1: Construcción de un motor BLDC

2.1.1. Estator

El estator de un motor BLDC consiste en laminados de acero apilados con bobinas


colocadas en las ranuras con un corte axial a lo largo del perı́metro interno (como se
muestra en Figura 2.2). Tradicionalmente, el estator se asemeja al del motor de induc-
ción, sin embargo, las bobinas se distribuyen de una manera diferente. La mayorı́a de los
motores BLDC tienen tres bobinados del estator conectadas en estrella. Cada uno de estos
bobinados se construye con numerosas bobinas interconectadas para formar un bobinado.
Cada una de estas bobinas se distribuyen sobre el perı́metro del estator para formar un
número par de polos.

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

Figura 2.2: Bobinados del Estator.

respectivamente.

Figura 2.3: Fuerza contraelectromotriz trapezoidal.

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

Figura 2.4: Fuerza contraelectromotriz sinusoidal.

de ferrita. La Figura 2.5 muestra algunas secciones transversales de diferentes arreglos de


núcleos circulares con a)imanes sobre el perı́metro, b)imanes rectangulares introducidos
en el rotor y c)imanes introducidos en el núcleo del rotor.

Figura 2.5: Sección transversal de los imanes de un rotor.


2.2. SENSORES DE POSICIÓN Y VELOCIDAD 17

2.2. Sensores de Posición y Velocidad


Los motores BLDC requieren sensar la posición del rotor para realizar correctamente
la conmutación de fase. Para los motores PMAC, un suministro constante de información
de posición es necesario, por lo que un sensor de posición con alta resolución se utiliza nor-
malmente, tales como un encoder o resolver. Para los motores BLDC, sólo el conocimiento
de seis instantes de conmutación de fase por ciclo eléctrico es necesario, por lo tanto, los
sensores de efecto Hall se suelen utilizar. La realidad es que los sensores angulares del
movimiento con base en los principios de detección del campo magnético, se destacan por
sus múltiples ventajas y beneficios inherentes de detección. Sin embargo, para tener un
control de posición adecuado, es necesario contar un sensor con mayor resolución que los
sensores de efecto Hall. Como se mencionó anteriormente, puede ser un encoder.

2.2.1. Sensores de Efecto Hall


Este tipo de dispositivos se fundamentan en la teorı́a de efecto Hall, que establece que
si una corriente eléctrica se mantiene en un campo magnético, el campo magnético ejerce
una fuerza transversal en los portadores de carga en movimiento que tiende a empujar
hacia un lado al conductor. Una acumulación de carga en los lados de los conductores
va a equilibrar esa influencia magnética, produciendo una tensión medible entre los dos
lados del conductor. La presencia de esta tensión transversal medible se llama el efecto
Hall, ya que fue descubierto por Edwin Hall en 1879.

A diferencia de un motor con escobillas de corriente directa, la conmutación de un


motor BLDC se controla electrónicamente. Para girar el motor BLDC, los bobinados del
estator deben ser activados en una secuencia. Es importante conocer la posición del rotor
con el fin de entender cuál bobinado se activará después de la secuencia energizada. La
posición del rotor se puede detectar mediante sensores de efecto Hall incrustados en el
estator como se menciona en la nota de aplicación AN10661 (2007).

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.

Figura 2.6: Sección transversal de los sensores de Efecto Hall.

2.2.2. Encoders o Codificadores


Un encoder o codificador es un sensor de posición angular que se puede utilizar en el
monitoreo de cualquier tipo de desplazamiento, existen dos tipos, incrementales y abso-
lutos.

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

Figura 2.7: Encoder incremental.

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.

Figura 2.8: Encoder absoluto.


20 CAPÍTULO 2. MARCO TEÓRICO

2.3. Modelo Matemático


El objetivo del modelo es establecer de que forma las caracterı́sticas del motor de-
penden del ángulo de conmutación. Este parámetro es la diferencia angular entre un
acontecimiento de conmutación real y uno ideal.

El modelo del motor-controlador consiste en una etapa de potencia de 3 fases, más


un motor de corriente directa sin escobillas (Brushless DC). Una fuente de tensión (Ud)
proporciona la energı́a para el sistema. Seis interruptores de semiconductores (SAt, SAb,
SBt, SBb, SCt, SCb), ya controlados, permitiendo que la tensión en forma de onda rectan-
gular, pueda ser aplicada (ver figura 2.9). Los interruptores de semiconductores y diodos
son dispositivos simulados como dispositivos ideales. El nivel natural de tensión de todo el
modelo se aplica en la mitad de la tensión del bus de DC. Esto simplifica las expresiones
matemáticas.

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

El siguiente conjunto de ecuaciones es válido para la topologı́a presentada:

USa = UV A − U0
USb = UV B − U0 (2.2)
USc = UV C − U0
2.3. MODELO MATEMÁTICO 21

Figura 2.9: Etapa de potencia y topologı́a del motor.

" 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

El par interno del motor en sı́ se define como:

c c
1X X dΨSx
Ti = UbackEM F x • iSx = • iSx (2.6)
ω x=a x=a

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.

2.4. Etapa de Potencia


El subsistema que hizo posible el uso generalizado de motores de imán permanen-
te (PM), fueron los módulos de controladores de electrónica de potencia estándar. Para
proporcionar velocidad variable en la máquina, variar la frecuencia de las corrientes del
estator que se requiere, esto se consigue con un inversor. Para esto se requiere de una
24 CAPÍTULO 2. MARCO TEÓRICO

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).

2.4.1. Dispositivo de Potencia y Conmutación

Desde la llegada de los interruptores de semiconductores de potencia, el control de ten-


sión, corriente, potencia y frecuencia ha sido rentable, como mencionaron Rashid (2003) y
Erickson y Maksimovic (2001). La precisión de control ha mejorado con el uso de circuitos
integrados, microprocesadores y microcontroladores en los circuitos de control. Algunos
de los dispositivos de potencia populares, tales como diodos, MOSFET (por sus siglas
en ingles Metal Oxide Semiconductor Field Effect Transistor) e IGBT (por sus siglas en
inglés (Insulated Gate Bipolar Transistors). Estos dispositivos se usan comúnmente en los
controladores de motores PM sincrónico y motores sin escobillas de CD (Brushless DC).

Diodos de Potencia

Se trata de un dispositivo PN con dos terminales. Cuando el potencial del ánodo es


mayor que el potencial del cátodo, se conoce como polarización positiva. El dispositivo
se enciende y conduce la corriente. La caı́da de tensión en el dispositivo es normalmente
de 0,7 V. Cuando el dispositivo está en polarización inversa, es decir, cuando el ánodo es
menos positivo que el cátodo, el dispositivo se apaga y entra en modo de bloqueo.

Se utilizan en aplicaciones en las que sus tiempo de conmutación, que es la suma de


encendido y apagado, es insignificante en comparación a su tiempo de conducción. Ası́ que
en estas aplicaciones, los diodos se utilizan como rectificadores para convertir una fuente
de corriente alterna, en una fuente de corriente continua.
2.4. ETAPA DE POTENCIA 25

MOSFET (Metal-Oxide-Semiconductor Field Effect Transistors)

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.

Figura 2.10: Sı́mbolos de los transistor MOSFET de canal n y canal p.

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

Figura 2.11: Sı́mbolos de los transistor MOSFET de canal n y canal p.

un mayor ((efecto embudo)), lo que conducirı́a a su colapso y a la extinción de la corriente.


Obviamente, el fenómeno tiende a un punto de equilibrio, en el cual la corriente ID se
mantiene constante para cualquier VDS, caracterizando una región activa o de saturación
del MOSFET.

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.12: Etapa de potencia para un motor BLDC.

2.5. Efecto del tiempo muerto en inversores contro-


lados por PWM
La figura 2.13 muestra una fase del inversor PWM, donde se asume que los transisto-
res de potencia son usados como elementos de conmutación. La señal de PWM controla
los transistores a través de un circuito de retardo. Las señales en las bases B1 y B2 son
para los transistores T1 y T2, respectivamente, que se ilustran en la figura 2.13, donde
las señales de control muestran un retraso ocasionado por un tiempo de retardo Td, que
se muestran en las lı́neas punteadas.

Durante el tiempo de retardo, ambos transistores dejan de conducir, y la salida en


la terminal A está flotando. Sin embargo, si la corriente de salida i es continua, como
normalmente es el caso, la corriente fluye a través de los diodos de libre circulación D1
28 CAPÍTULO 2. MARCO TEÓRICO

Figura 2.13: Configuración básica de PWM (solo se muestra una fase del inversor).

y D2. La conducción de cualquiera de los diodos dependerá de la dirección del flujo de


corriente, Cuando la corriente fluye hacia la carga (i > 0, de acuerdo a la figura 2.13), el
diodo D2 conduce, y el voltaje negativo aparecerá en la salida de la terminal. Además,
para la corriente que fluye hacia el inversor, el voltaje positivo aparece en la salida a través
de D1. Como resultado de ello, dejando de lado el tiempo de almacenamiento inverso del
transistor, la tensión eléctrica de salida se desvı́a de su forma de onda ideal PWM por la
cantidad de áreas sombreadas en la figura 2.14.

Obviamente, durante el tiempo de retardo, la salida de voltaje no puede ser controla-


da por las señales de control, pero está determinada por la condición de carga, que es, la
dirección en el que fluye la corriente. Aunque la condición de carga está sujeta a cambios,
puede afirmarse que la desviación del voltaje se debe a que el tiempo de retardo se opone
al flujo de corriente en cualquier dirección. Por lo tanto, la desviación de voltaje, provoca
que la magnitud de la corriente sea más pequeña que la esperada. Esto a su vez deriva uno
de los efectos más importantes de la temporización, que es, la disminución de la tensión
eléctrica efectiva de salida del inversor.
2.6. CONTROL PID 29

Figura 2.14: Señales de control de retraso y voltaje de salida.

2.6. Control PID


El control PID es usado comúnmente para ajustar la velocidad. Este recibe señales de
los sensores y calcula la acción correctiva a través de un algoritmo computacional con base
en el error (proporcional), la suma de todos los errores anteriores (integral) y la tasa de
cambio del error (derivativo). El modelo matemático del PID puede ser representado como:

1 t
 Z 
de(t)
u(t) = kp e(t) + e(0) + Td (2.7)
Ti t dt

2.6.1. Respuesta Proporcional


La componente proporcional puede ser expresada como:

p(t) = kp (t) (2.8)

En un control PID, el efecto de controlar depende de la ganancia proporcional (kp). En


general, incrementando la ganancia proporcional, se aumentara la velocidad del sistema
de control y se reducirá la respuesta en estado estable. Sin embargo, si la ganancia es
también grande, el sistema comenzará a oscilar y será inestable.
30 CAPÍTULO 2. MARCO TEÓRICO

2.6.2. Respuesta Integral

La componente integral puede ser expresada como:

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.

Al incrementar la componente integral (Ti), permite que esta se acumule débilmente


y se reduzca el sobreimpulso. Esto hará que el sistema no oscile durante el aumento del
tiempo, por lo tanto, mejora su estabilidad. Sin embargo, se retrasa el proceso de elimi-
nación del error en estado estable. Reduciendo Ti, aumenta la componente integral y se
disminuye el tiempo de eliminación del error, pero el sistema oscila. Entonces Ti debe
seleccionarse de acuerdo a las necesidades prácticas.

2.6.3. Respuesta Derivativa

La parte derivativa puede ser expresada como:

de(e)
d(t) = kpp (2.10)
dt

El efecto de la parte derivativa depende de la constante de tiempo derivativo (Td).


En general, la magnitud de Td mejora el efecto de retrasar el cambio de e(t) y viceversa.
Entonces la selección de Td apropiado, mejorará los requerimientos del sistema.
2.7. CONTROLADOR PID DIGITAL 31

2.7. Controlador PID Digital

El esquema de control PID analógico ha sido usado de manera exitosa en muchos


sistemas de control industrial por más de medio siglo. El principio básico del esquema
de control PID es que actúa sobre la variable a ser manipulada a través de una apropia-
da combinación de las tres acciones de control, es decir, acción de control proporcional
(donde la acción de control es proporcional a la señal del error actuante, la cual es la
diferencia entre la entrada y la señal de realimentación); la acción de control integral
(donde la acción de control es proporcional a la integral de la señal de error actuante),
y la acción derivativa (donde la acción de control es proporcional a la derivada de la
señal de error actuante). En situaciones donde muchas plantas se controlan directamente
mediante una sola computadora digital (como un esquema de control en el que se contro-
lan desde unos cuantos lazos hasta cientos de estos, mediante un solo controlador digital),
la mayorı́a de los lazos de control se pueden manipular mediante esquemas de control PID.

La acción de control PID en controladores analógicos es la que se muestra en el ecua-


ción (2.7), donde e(t) es la entrada al controlador (señal actuante), u(t) es la salida del
controlador (señal manipulada), kp es la ganancia proporcional, Ti es el tiempo integral
(o tiempo de reajuste) y Td es el tiempo derivativo (o tiempo de adelanto). Para obtener
la función de transferencia pulso del controlador PID digital, se puede discretizar la ecua-
ción (2.7). Al aproximar el término integral mediante la suma trapezoidal y el término
derivativo mediante la diferencia de dos puntos, se obtiene:


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

La expresión (2.11) también puede ser expresada como:


32 CAPÍTULO 2. MARCO TEÓRICO

 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:

e((h − 1)T ) + e(hT )


= f(hT), f(0) = 0 (2.13)
2
En la figura 2.15 se muestra la función f(hT). Entonces:

Figura 2.15: Diagrama que muestra la función f(hT)

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.

La función de transferencia pulso para el controlador PID digital se convierte en

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 otra forma, por lo regular utilizada en el esquema de control PID digital, es el


esquema conocido como forma de velocidad. Para obtener la ecuación del control PID en
34 CAPÍTULO 2. MARCO TEÓRICO

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

2.8. Control Digital de un Motor BLDC


El motor BLDC es impulsado por las señales de tensión rectangulares, junto con la
determinada posición del rotor, ver figura 2.17. El flujo generado por el estator, junto
con el flujo del rotor, que es generado por un imán del rotor, define el par y por lo tanto
la velocidad de la motor. Para cumplir con este criterio, el motor requiere un control
electrónico para su correcto funcionamiento.

Figura 2.17: Tensión aplicada a un motor BLDC

2.8.1. Conmutación electrónica para motores BLDC


La conmutación crea un campo de rotación. Como se explicó anteriormente, para un
correcto funcionamiento de un motor BLDC se requiere que el ángulo entre el estator y el
flujo del rotor permanezca cerca de 90◦ . Se necesitan seis pasos de control para un total de
seis posibles vectores de flujo del estator. El vector de flujo en el estator se debe cambiar
a una determinada posición del rotor.

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

debe ser traducida para determinar el momento de la conmutación.

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.

Figura 2.18: Vectores de flujo del estator para un control de 6 pasos.

2.8.2. Conmutación Trapezoidal


Uno de los métodos más usados de control de motores brushless es el llamado “con-
mutación trapezoidal” o “6-steps mode” como indicó Bianchi y otros (2007).

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

Tabla 2.1: Secuencia de conmutación para giro horario

Palabra de Control Fase A Fase B Fase C


1 0 0 -VDCB +VDCB NC
1 0 1 NC +VDCB -VDCB
0 0 1 +VDCB NC -VDCB
0 1 1 +VDCB -VDCB NC
0 1 0 NC -VDCB +VDCB
1 1 0 -VDCB NC +VDCB

Tabla 2.2: Secuencia de conmutación para giro anti-horario

Palabra de Control Fase A Fase B Fase C


1 0 0 +VDCB -VDCB NC
1 1 0 +VDCB NC -VDCB
0 1 0 NC +VDCB -VDCB
0 1 1 -VDCB +VDCB NC
0 0 1 -VDCB NC +VDCB
1 0 1 NC -VDCB +VDCB
38 CAPÍTULO 2. MARCO TEÓRICO

Figura 2.19: Seis vectores posibles del flujo del estator.

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.

2.9. Descripción del Proceso de Conmutación


Las siguientes dos figuras muestran el proceso de conmutación. La posición real del
rotor en la figura 2.22 corresponde al sector ABC [110], véase la Figura 2.18. El patrón
de tensión actual se pueden derivar de la tabla 2.1. La fase A se conecta a la tensión de
DCBus positiva por el transistor Q1. La fase C se conecta a la tierra por transistor Q6,
mientras que la fase B queda sin alimentación.

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

Figura 2.22: Situación anterior a la de conmutación.

tabla 2.1 y se aplica al motor BLDC.

La conmutación se repite cada 60 grados eléctricos. El evento de conmutación es crı́tico


para la precisión angular, y cualquier desviación provoca ondulaciones del par motor y,
por tanto, la variación de la velocidad.

2.10. Control de Velocidad de un motor BLDC

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.23: Situación posterior de la conmutación.

Figura 2.24: Diagrama a bloques del control de velocidad con un control PID.
42 CAPÍTULO 2. MARCO TEÓRICO

2.11. Diseño Conceptual


Con base en lo anterior, en la figura 2.25 se observa el diseño conceptual del control de
velocidad para un motor BLDC, generado para desarrollar este trabajo, a partir de este,
se plantean todos los elementos necesarios y su relación entre ellos. Parte de una etapa de
control, una de potencia y el motor, los cuales se desarrollaran en los siguientes capı́tulos.

Figura 2.25: Diseño Conceptual

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

este trabajo. Finalmente se obtuvo el diseño conceptual.


44 CAPÍTULO 2. MARCO TEÓRICO
Capı́tulo 3

Implementación de Equipo

La aplicación que se desarrolló en este trabajo, se ejecuta con un controlador de frees-


cale. En especı́fico con un DSC, que es un controlador digital de señales 56F8006. Se
utilizó una etapa de potencia junto con un motor BLDC de 3 fases, por tanto,a conti-
nuación se describen las caracterı́sticas de las partes utilizadas para el desarrollo de la
aplicación antes mencionada.

3.1. DSC 56f8006 de Freescale


Un controlador de señal digital (DSC) se puede considerar como un hı́brido entre los
microcontroladores y procesadores digitales de señales (DSP). Como microcontroladores,
los DSC tienen rápida respuesta a las interrupciones, funciones orientadas a control de
periféricos como PWM y temporizadores de vigilancia, y suelen ser programadas usando
el lenguaje de programación C, aunque pueden ser programadas usando otros lenguajes
según el fabricante. Por el lado de los DSP, incorporan caracterı́sticas que se encuentran
en la mayorı́a de estos, como multiplicaciones en un solo ciclo (MAC) o acumuladores de
gran tamaño.

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.

Fuentes conmutadas y administración de energı́a.

Medición de energı́a.

Control de motores (ACIM, BLDC, PMSM, SR y motores a pasos)

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.

Estos controladores digitales de señales ofrecen las siguientes caracterı́sticas:

Eficiente Controlador Digital de Señales (DSC) de 16 bit de la familia 56800E, con


doble arquitectura Harvard.

Más de 32 Millones de Instrucciones por Segundo (MIPS) en un núcleo de 32 MHz


de frecuencia.
3.1. DSC 56F8006 DE FREESCALE 47

155 Instrucciones básicas con más de 20 modos de dirección.

Un solo ciclo de 16 × 16 bit en un acumulador multiplicador paralelo (MAC).

4 acumuladores de 32 bits, incluyendo extensión de bits.

32 bits de aritmética y lógica de cambios multi-bit.

Instrucciones en paralelo en un conjunto de modos de direccionamiento DSP.

Tres buses internos de direccionamiento.

Cuatro buses internos de datos.

Soporte de instrucciones para DSP y control de funciones.

Control de modos de direccionamiento y código compacto de instrucciones.

Eficiente compilador en C y soporte de variables locales.

Subrutina de programa y pila de interrupciones con profundidad limitada sólo por


la memoria.

JTAG/ Mejora en chip de la emulación (OnCE), procesador de velocidad indepen-


diente, y depuración en tiempo real.

Tiene una alimentación de aproximadamente 1.9V a 3.6 V.

Soporta temperatura en un rango de -40◦ c a 105◦ c.

Hasta 16 kbytes de memoria flash con protección.

2 kbytes de programa unificado/datos de RAM.

Un módulo con 6 canales PWM.

Reloj de PWM con una operación de hasta 96 MHz

15 bits de resolución.

Señales PWM en modo de centro alineado y borde alineado.

Cuatro entradas programables de falla con filtro digital programable.


48 CAPÍTULO 3. IMPLEMENTACIÓN DE EQUIPO

Cada par complementario de señal PWM permite la selección de una fuente de


suministro de: generador PWM, temporizadores internos, salidas de un comparador
analógico.

Dos convertidores analógico-digitales de 12 bits (ADC)

• 3.042 µs para la primera conversión utilizando 10 o 12 bits.


• 2.5 µs para las conversiones subsecuentes utilizando 10 o 12 bits.
• Más de 28 entradas analógicas (internas y externas) por ADC.
• Salidas de 12, 1 o 8 bits en formato justificado a la derecha.
• Conversión simple o continua (retorno automático a ralentı́ después de la con-
versión)
• Muestra de tiempo configurable y velocidad de conversión.
• Bandera de conversión completa y de interrupción.
• Reloj de entrada seleccionable de hasta cuatro fuentes.
• Operación en modo de espera o de paro para menor nivel de ruido.
• Fuentes de reloj ası́ncrona para operación a un bajo nivel de ruido.
• Configurable para tomar dos muestras (la reconfiguración del programa no es
necesaria), sobre el disparo en la base de equipo.
• Comparación automática con interrupción para menor que, mayor que o igual
a, de valor programable.
• Sensor de temperatura.

Dos amplificadores de ganancia programable (PGA).

• Arquitectura de muestreo PGA.


• El desplazamiento y el ruido en el modo común son anulados automáticamente
(2-4 muestras requeridas para el ruido/cancelación de desplazamiento).
• La muestra es capaz de sincronizarse con la operación PWM mediante el uso
de la salida PWM y la sincronización del bloque de retardo programable.
• El tiempo de muestreo puede ser controlado con precisión (menor que 0.1 µ).
• Distintas ganancias programables (1x, 2x, 4x, 8x, 16x, y 32x).
3.1. DSC 56F8006 DE FREESCALE 49

• Máximo 0.14 millones de muestras por segundo (MSPS).

Válido para disparos en programa y equipo.

Caracterı́sticas de calibración adicionales:

• El offset elimina cualquier error en la referencia interna usando la salida en el


punto central para generar el VDDA/2.

• La calibración de ganancia puede ser usada para verificar la ganancia de la


trayectoria global de los datos.

• Ambas funciones requieren un programa de corrección de los resultados del


ADC.

Una interfaz de comunicación serial de alta velocidad (SCI) con funcionalidad de


esclavo LIN.

• Velocidad máxima de transmisión de 6 Mbit/s cuando se utiliza el reloj del


sistema 3 hasta 96 MHz.

• Operación en un solo cable o en dos cables.

• Cuenta con dos métodos de recepción.

Lı́nea libre.

Marca de dirección

Una interfaz de periférico serial (SPI)

• Operación en un par de cables.

• Modos maestro-esclavo.

• Transiciones en amplitud programable (2 a 16 bits)

• Transmisión programable y cambio de recepción (MSB como primer bit o ul-


timó de transmisión).

• La frecuencia máxima del módulo esclavo es igual a la frecuencia de reloj.

Un módulo de tiempo de propósito general doble de 16 bits (TMR).

• Más de 96 MHz en la operación del reloj.


50 CAPÍTULO 3. IMPLEMENTACIÓN DE EQUIPO

• Dos contadores independientes de 16 bits/ temporizadores con capacidad de


cascada.

• Cada temporizador tiene captura y capacidad de comparación.

• Más de 12 modos de operación.

• Cuatro entradas externas y dos salidas externas.

Un temporizador de intervalos programable (PIT).

• Contador de 16 bits con módulo de conteo programable.

• Capacidad de interrupción.

Contador en tiempo real (RTC) que puede ser usado como reloj en tiempo real.

• Conteo de hasta 8 bits.

• Tres fuentes de reloj seleccionables por programa para la entrada de preescalar


con la selección de valores en base dos y decimal.

• Un oscilador de 1 kHz de baja potencia.

• Oscilador de cristal externo/ fuente de reloj externa.

Un bloque de retardo programable de 16 bits (PDB).

• Contador de 16 bits con módulo programable y retardo de tiempo.

• El contador es inicializado por una transición positiva de un pulsos de disparo


interno o externo.

• 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.

• Salidas PDB que se pueden utilizar para programar la colocación precisa de


bordes para una salida de pulsos que genera la señal de control para la compa-
ración de ventanas CMP.

• Soporte en modo continuo o de disparo único.


3.1. DSC 56F8006 DE FREESCALE 51

Un puerto de circuito inter-integrado (I2C).

• Operación arriba de 40 kbps


• Soporte para operación maestro y esclavo.
• Soporte en el modo de dirección de 10 bits como en el modo de difusión.

Operación adecuada del equipo/reloj “watchdog” capaz de seleccionar las diferentes


fuentes de reloj.

• Prescalar programable y periodo de espera.


• Modo de operación programable, detención y parcialmente apagado.

Fuentes de reloj.

• Oscilador de relajación de 8 MHz en chip.


• Reloj de 1 kHz en chip.
• Reloj externo (32 kHz o 8 MHz): oscilador de cristal, resonador cerámico, y
fuente de reloj externa.

Fase de lazo cerrado (PLL), que es un reloj de alta velocidad para el núcleo y
periféricos.

• Proporciona el reloj del sistema de 3x para PWM, temporizador dual, y SCI.


• Pérdida en la interrupción.
• Pérdida en la interrupción en el reloj de referencia.

Tres comparadores analógicos (CMPs)

• Fuente de entrada seleccionable, incluye pines externos, y DACs internos.


• Polaridad de entrada programable.
• Pérdida de la interrupción del reloj de referencia.
• La salida puede ser la entrada del temporizador, entrada de fallo PWM, ali-
mentación PWM, pines de salida externos, y disparos a los ADCs.

Hasta 40 pines de entrada/salida de propósito general (GPIO)

• Ajuste individual de cada pin en el periférico o modo GPIO.


52 CAPÍTULO 3. IMPLEMENTACIÓN DE EQUIPO

• Control de dirección individual de entrada/salida para cada pin en modo GPIO.


• Dispositivo de pullup configurable e histéresis en todos los pines de entrada.
• Velocidad de respuesta configurable y entrada opcional de filtros pasa bajas en
todas los pines de salida.
• Caı́da de corriente de 2 mA.

Administración de energı́a del controlador (PMC)

• Regulador en chip para circuitos digitales y analógicos de bajo costo y ruido


reducido.
• Fuente integrada de reset (POR)
• Bajo voltaje de interrupción con una tensión seleccionable por el usuario de
1.81 V o 2.31 V.
• Modos de arranque, espera y paro.
• Bajo consumo de energı́a en modos de arranque, espera y paro.
• Energı́a parcial por los modos de

Alimentación frecuente de RAM, PMC y COP.

El dispositivo se apaga para ahorro extremo de energı́a.

• Cada periférico puede ser deshabilitado individualmente para ahorro de energı́a.


• Oscilador integrado de 1 kHz.

Interfaz de programación JTAG/EOnCE para debugger en tiempo real.

3.2. Tarjeta secundaria MC56F8006


La tarjeta secundaria MC56F8006 de Freescale, junto con la unidad de control para
motores de 3 fases BLDC / PMSM, crean una sola unidad para el desarrollo de aplicacio-
nes de control para motores BLDC/PMSM .La tarjeta secundaria se conecta a través de
dos conectores al driver del motor BLDC. Todas las señales necesarias están disponibles
para permitir una variedad de algoritmos para controlar los motores de 3 fase PMSM y
BLDC, en la figura 3.1 se muestra esta tarjeta.
3.3. UNIDAD DE CONTROL PARA MOTOR DE 3 FASES BLDC 53

Figura 3.1: Tarjeta secundaria MC56F8006.

El los anexos A y B se muestran los diagramas esquemáticos de conexión, lista de


materiales y circuitos impresos (PCB´s) respectivamente.

3.3. Unidad de control para motor de 3 fases BLDC


El controlador de 3-Fases para motores BLDC (Brushless DC) / PMSM (motor sı́ncrono
de imanes permanentes) de baja tensión es una unidad de control para un Motor de 12-24
V DC, 4 A, junto a una tarjeta, que se denomina tarjeta secundaria, que puede ser un
microcontrolador, DSC o DSP, que se acopla a la tarjeta principal. En conjunto crean
una unidad para el desarrollo de aplicaciones de control para motores BLDC / PMSM,
con diferentes señales de retroalimentación, como lo pueden ser: por medio de sensores de
efecto Hall, encoders, sin sensores, etc, permiten una variedad de algoritmos de control
para motores de 3 fases PMSM y BLDC. En la figura 3.2 se muestra fı́sicamente este
controlador.

La tarjeta cuenta con las siguientes caracterı́sticas:

Fuente de alimentación de tensión de entrada de 12 a 24 V DC, ampliable hasta 50


V (véase el anexo C para más detalles).

Salida de corriente de 4 A.

Fuente de alimentación de polaridad inversa para protección de circuitos.


54 CAPÍTULO 3. IMPLEMENTACIÓN DE EQUIPO

Figura 3.2: Controlador para motor de 3 Fases BLDC / PMSM de baja tensión.

Puente inversor (6 MOSFET) de 3 fases.

MOSFET de 3 fases con puerta con sobrecarga y protección de tensión mı́nima.

Detección de tensión y corriente de Bus.

Voltaje del bus DC de detección.

Circuitos de detección de 3 fases de tension de back-EMF.

Circuitos de detección de Encoder / Sensor de efecto Hall.

Conectores de señal y de potencia.

2 conectores para la conexión de la tarjeta secundaria.

Interfaz USB.
3.3. UNIDAD DE CONTROL PARA MOTOR DE 3 FASES BLDC 55

LED de usuario, LED de encendido, 6 LED´s de PWM, y actividad de SCI en LED.

3 interruptores, subir, bajar, switch.

Botón de reset.

La configuración y las conexiones para la unidad de control de motores de 3 Fases


BLDC / PMSM de baja tensión (placa base) se muestran a continuación. La tarjeta se-
cundaria o hija, se conecta a la placa base a través de dos conectores de 20 pines de esta
misma. El sistema puede ser alimentado por una fuente externa de 12-24 V CC. La figura
3.3 muestra esquemáticamente una instalación completa.

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

En el anexo C se observan las caracterı́sticas eléctricas de la Unidad de Control para


Motor de 3 Fases BLDC/PMSM de baja tensión utilizada para este trabajo.

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).

3.4. Motor BLDC


El motor con el que se realizan las pruebas es un LINIX 45ZWN24-40, el cual se puede
observar en la figura 3.4, más información y especificaciones, en la hoja de datos del motor
en el anexo F.

Figura 3.4: Motor BLDC utilizado.


3.4. MOTOR BLDC 57

La tabla 3.1, muestra la caracterı́sticas más importantes del motor BLDC LINIX
45ZWN24-40 utilizado en esta aplicación.

Tabla 3.1: Caracterı́sticas Motor LINIX 45ZWN24-40

Fases Polos Tensión Corriente Potencia Par Velocidad

3 4 24 V. 2.8 A. 40 W. 990 gcm. 4000 RPM.

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.

Figura 3.5: Fases del Motor BLDC LINIX

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

Figura 3.6: Polos del Motor LINIX

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.

Figura 3.7: Sensores Hall del motor LINIX


3.5. SUMARIO 59

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

Conociendo las caracterı́sticas de los motores BLDC, y el equipo donde se va a im-


plementar el control de velocidad, como el controlador digital de señales y la etapa de
potencia, ahora es necesario el desarrollo de los algoritmos para poder desarrollar el con-
trol de velocidad. Por otra parte, se tiene generar el PWM, por lo tanto, se analizarán y
desarrollarán los diferentes tipos de este.

4.1. Generación de PWM para motores BLDC


Para generar el PWM en el DSC, es necesario primero, definir las diferencias entre los
distintos tipos de PWM y ası́ mismo, desarrollar la programación para cada tipo.

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:

Modo PWM complementario

Modo PWM independiente.

Debido a la flexibilidad del MC56F8006, ambos modos están disponibles.

61
62 CAPÍTULO 4. TÉCNICA DE CONTROL

4.1.1. Modo PWM complementario


En el modo PWM complementario, los transistores superior e inferior de una fase son
operados de manera complementaria. Si un interruptor está activado, el otro está apa-
gado. Este modo necesita la inserción de un tiempo muerto entre los interruptores parte
superior e inferior para evitar cualquier cortocircuito de la fase.

La conmutación complementaria puede ser aplicada de una manera bipolar o unipolar.


La unipolar conduce a menores pérdidas de conmutación y rizado de corriente ver figura
2.21. Sin embargo, desde una perspectiva de fuerza contra-electromotriz, la conmutación
bipolar es la mejor opción, ya que permite un ciclo de trabajo en el rango de 50 a 100 por
ciento. Esto simplifica considerablemente la tensión de back-EMF y de detección.

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.

Simultáneamente, en la figura 4.2 se muestra la conmutación unipolar complementaria.


La corriente es introducida por la fase A y sale por B, mientras el PWM0 está activa-
do, el PWM1 está desactivado y viceversa, sin embargo, en la fase B, el PWM3 siempre
está activado y el PWM2 desactivado.

4.1.2. Modo PWM Independiente


Los interruptores superior e inferior de una fase son operados de manera independiente
en un periodo de conmutación. Si un interruptor superior realiza un PWM, el interruptor
de la parte inferior está apagado y viceversa.

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

Figura 4.1: Patrones de conmutación bipolar complementaria para el motor BLDC.

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.

4.2. Configuración del PWM en el MC56F8006


El proyecto se desarrolló en el programa CODEWARRIOR for DSC56F800E v8.3 de
Freescale en lenguaje de programación C, para más caracterı́sticas y requisitos de insta-
lación, se recomienda revisar el anexo G. Además se utiliza la herramienta de desarrollo
64 CAPÍTULO 4. TÉCNICA DE CONTROL

Figura 4.2: Patrones de conmutación unipolar complementaria para el motor BLDC.

rápido PROCESSOR EXPERT, incorporada en este mismo programa.

Utilizando Processor Expert, se configura un módulo de PWMMC, como se muestra


en la figura 4.5, con la siguientes caracterı́sticas más relevantes:

Seleccionar entre PWM complementario o independiente, dependiendo del modo del


PWM, descrito en la sección 4.1.

Si el canal es independiente, la polaridad también lo será, de lo contrario será en


pares, ya sea alta o baja.

Perı́odo o frecuencia del PWM, en este caso es de 28 kHz.

Tiempo Muerto insertado en la función del PWM, para esta aplicación es de 2.8 µs.

Alineación, que puede ser centrada o no, en este caso es centrada.


4.2. CONFIGURACIÓN DEL PWM EN EL MC56F8006 65

Figura 4.3: Patrones de conmutación bipolar independiente para el motor BLDC.

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 IOB0A N B13P W M 3S CLKS CLT 1

• 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

Figura 4.4: Patrones de conmutación unipolar independiente para el motor BLDC.

Figura 4.5: Módulo PWMMC.


4.2. CONFIGURACIÓN DEL PWM EN EL MC56F8006 67

Figura 4.6: Conmutación unipolar independiente generada con el DSC.

Figura 4.7: Conmutación unipolar complementaria generada con el DSC.


68 CAPÍTULO 4. TÉCNICA DE CONTROL

Figura 4.8: Conmutación bipolar independiente generada con el DSC.

Figura 4.9: Conmutación bipolar complementaria generada con el DSC.


4.3. CONFIGURACIÓN DEL MC56F8006 CON EL DRIVER PARA EL MOTOR BLDC69

4.3. Configuración del MC56F8006 con el driver para


el motor BLDC
En la sección 3.3, se menciona las caracterı́sticas principales de la unidad de control pa-
ra el motor BLDC. Para poder utilizar este driver con la tarjeta secundaria MC56F8006,
es necesario configurar una comunicación serial, en especı́fico un SPI (del inglés Serial
Peripheral Interface) entre estos dos dispositivos. Consecuentemente es necesario tener a
la mano las definiciones de las funciones utilizadas para poder establecer una comunica-
ción con el driver, las funciones o API´s (del ingles Application programming interface),
son un set de instrucciones y estándares de programación para el acceso a una función o
biblioteca que se vaya a utilizar, se recomienda revisar el anexo H, donde se muestra una
tabla con un resumen de estas.

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.4. Control de Velocidad del motor BLDC en lazo


abierto
Una vez que se tiene configurada una comunicación entre el driver y el DSC, y se
pueden transmitir los datos de los registro entre uno y otro, se puede generar el algoritmo
para la conmutación en lazo abierto. Como se revisó en la sección 2.8, se necesita conocer
la posición del rotor, por lo tanto, para registrar esta posición, se utilizan tres interrup-
ciones digitales, que se activan cada vez que la secuencia de los sensores de efecto Hall es
modificada por el giro del rotor como se mostró en las tablas 2.1 y 2.2.

En las figuras 4.11 y 4.12, se observa la configuración de la interrupción para el sensor


de efecto Hall. La figura 4.11 es la ventana de propiedades, que se describen en la tabla
70 CAPÍTULO 4. TÉCNICA DE CONTROL

Figura 4.10: Configuración del MC56F8006 con el driver MC33927.

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.

Para los sensores Hall B y C, se configuran de igual forma 2 interrupciones respecti-


vamente, solo cambian los pines de conexión.

Figura 4.11: Propiedades de la interrupción del sensor Hall A.


4.4. CONTROL DE VELOCIDAD DEL MOTOR BLDC EN LAZO ABIERTO 71

Tabla 4.1: Propiedades de la interrupción del sensor Hall A

Propiedades Valor Descripción


Pin GPIOB2 Es el pin donde se conecta
fı́sicamente
Generate Rising edge La interrupción se genera cuando
interrupt on se produce un cambio de 0 a 1, en
la señal del sensor
Interrupt Maximal priority Es el nivel de la interrupción
Priority

Figura 4.12: Eventos utilizados del sensor Hall B.

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

Figura 4.13: Diagrama de flujo para la detección de la posición del rotor.

El diagrama de flujo mostrado en la figura 4.14, pertenece a la función de conmutación,


llamada en la función anterior de posición, donde dependiendo del sector que se encuentra
el rotor, activa una señal de PWM correspondiente para llevar a cabo la conmutación,
como se mostró en la sección 2.8. El ciclo de trabajo o duty cycle, es representado por la
variable ct. En la seccion E.3 se muestra el código desarrollado.
4.4. CONTROL DE VELOCIDAD DEL MOTOR BLDC EN LAZO ABIERTO 73

Figura 4.14: Diagrama de flujo para el control de velocidad en lazo abierto.

Por medio de la función PWM1 SetRatio16, el ciclo de trabajo se inserta al PWM,


74 CAPÍTULO 4. TÉCNICA DE CONTROL

que requiere de 2 parámetros:

byte Canal: número de canal (0-5). El número corresponde al número de canal


lógico asignado en la configuración de los componentes. Cuando los canales están
en modo complementario, como en esta aplicación, el 0 representa a los canales 0 y
1, el 2 a los canales 2 y 3, y el 4 a los canales 4 y 5.

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 %.

4.5. Control de Velocidad del motor BLDC en lazo


cerrado

El sistema del control de velocidad en lazo cerrado, depende obviamente de la veloci-


dad, es decir, que se necesita conocer la velocidad angular del rotor. Para esto, es necesario
implementar un algoritmo para el cálculo de la velocidad por medio de los sensores de
efecto Hall.

4.5.1. Medición de la velocidad angular

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 contador es un componente FreeCntr32. En la figura 4.15 se muestran las pro-


piedades y registros ocupados de la configuración. La resolución de 10 µs, es la base de
tiempo de este contador

Figura 4.15: Propiedades del módulo 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

Tabla 4.2: Métodos del FreeCntr32

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

En la primera, se tiene que contar el número de pulsos contabilizados por medio de


los sensores de efecto Hall, en un tiempo fijo. Este tiempo se puede establecer con una
interrupción periódica de tiempo, es decir, el tiempo de la ecuación 4.1, es un tiempo fijo,
4.5. CONTROL DE VELOCIDAD DEL MOTOR BLDC EN LAZO CERRADO 77

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

Figura 4.16: Diagrama de flujo para el cálculo de velocidad del rotor.

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.

4.5.2. Algoritmo de Control de Velocidad PID


Una vez que se puede medir la velocidad, se puede implementar un control de veloci-
dad para el motor BLDC. El control es un PID, como se revisó en la sección 2.7.

El tiempo de muestreo para este controlador se estableció en 20 milisegundos, la cons-


tante proporcional en 3, la integral en 15 y la derivativa en 0.0002. El diagrama de flujo
mostrado en la figura 4.17, muestra como se integra a la aplicación el control de velocidad
PID, en lazo cerrado, para más información se recomienda revisar el anexo E.5, donde se
muestra el segmento de código que se desarrollo.
4.5. CONTROL DE VELOCIDAD DEL MOTOR BLDC EN LAZO CERRADO 79

Figura 4.17: Diagrama de flujo para el control de velocidad en lazo cerrado.

De donde se desprenden las siguientes variables:

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.

Desde una host PC ejecutando FreeMASTER, también se puede controlar la aplicación


embebida que se ejecuta en el microcontrolador. El usuario puede modificar las variables,
mientras que la aplicación se está ejecutando, ası́ como detener y comenzar la ejecución.

El área de HTML, en el que apoya en visualización de datos, es altamente extensible.


El usuario puede proporcionar indicadores de Active-X de instrumentación con base en
diales, botones y controles deslizantes para crear sus propios paneles de control visual,
tan complejo o tan elegante como se desee.

81
82 CAPÍTULO 5. PRUEBAS Y RESULTADOS

Figura 5.1: Bibliotecas necesarias para FreeMASTER

También puede utilizar el área de visualización de datos para mostrar la información


arbitraria que incluyen presentaciones, archivos de ayuda, hojas de datos.

Para integrar FreeMASTER al proyecto, es necesario incluir algunas bibliotecas pro-


pias de este mismo. En la figura 5.1 se muestran las bibliotecas requeridas para imple-
mentar el programa de FreeMASTER a la aplicación.

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.

5.1. Analisis de Experimental

5.1.1. Montaje Experimental


Las pruebas se realizaron con el siguiente montaje experimental, el cual es mostrado
en la figura 5.2. Se puede observar, el motor BLDC montado en una base, junto con la
etapa de potencia y la fuente de alimentación de 24V. La tarjeta secundaria MC56F80006
5.1. ANALISIS DE EXPERIMENTAL 83

es colocada en la etapa de potencia, se conecta y se programa a la computadora por me-


dio del CodeWarrior USB TAP. Este mismo sirve para la comunicación serial utilizada la
obtención de los resultados, utilizando el programa FreeMASTER para la visualización
de las variables del algoritmo diseñado.

Figura 5.2: Montaje experimental


84 CAPÍTULO 5. PRUEBAS Y RESULTADOS

5.1.2. Secuencia de las pruebas

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.

Posteriormente, en la siguiente prueba, se analizara el algoritmo para la medición de la


velocidad, la importancia de esta prueba, es conocer si el sistema es capaz de informar cual
es la velocidad angular del motor, dado que es indispensable para la retroalimentación
en un sistema de lazo cerrado. Sin embargo, esta prueba se realizará con un control de
velocidad en lazo abierto, con la intención de poder variar la velocidad. Por otro lado, se
analizara la diferencia de la medición de la velocidad implementando diferentes métodos,
revisados en la sección 4.5.1.

Una vez implementado el algoritmo de PID en el DSC, se mide el tiempo para el


cálculo del algoritmo de control, es decir, el tiempo que tarda el algoritmo PID en calcu-
lar una nueva acción de control, para determinar que el controlador funcione dentro de
los tiempos requeridos.

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.

5.2. Posición del Rotor


Como se revisó en la sección 4.4, se necesita conocer la posición del rotor para poder
ubicar el sector donde se encuentra actualmente el rotor, esto, con el fin de realizar la
5.3. MEDICIÓN DE LA VELOCIDAD 85

Figura 5.3: Sectores del rotor

conmutación electrónica del motor BLDC.

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.

5.3. Medición de la Velocidad


Para medir la velocidad angular del motor BLDC, en las siguientes gráficas, se varia
la velocidad del motor por medio de un control de velocidad en lazo abierto, descrito en la
86 CAPÍTULO 5. PRUEBAS Y RESULTADOS

Figura 5.4: Medición de la velocidad con un periodo de un segundo

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.

Como se describió en la sección 4.5.1, se tienen distintas formas de medir la velocidad


del motor. A continuación se presentan los resultados para una medición de la velocidad
angular del motor BLDC, mediante un algoritmo, donde se establece un periodo fijo de 1
segundo, y por lo tanto, se contabilizan los pulsos que se generan dentro de este periodo,
en una variable llamada “(pulsos ciclo)”. Por lo tanto, se puede determinar la velocidad
del motor, como se puede observar en la figura 5.4. Donde se tienen 3 gráficas con respecto
al tiempo. La gráfica inferior representa el ciclo de trabajo de los PWM´s, de 0 a 65535,
que equivale proporcionalmente de 0 a 100 %. La gráfica del medio, representa los pulsos
contabilizados dentro del periodo de 1 segundo, y la gráfica superior, indica la velocidad
en RPM del motor, proporcionados por el algoritmo implementado, como se puede obser-
var, con una mayor velocidad, se tiene un número más grade de pulsos contados.

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.

Figura 5.5: Detalle de la velocidad con un periodo de un segundo

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.

Otra forma de medir la velocidad, es estableciendo un número de pulsos fijo, y medir


el tiempo que transcurre para que sean contados los pulsos que se establecen. En la si-
guiente prueba, se colocan 20 pulsos de referencia, como se muestra en la figura 5.7. La
gráfica superior, representa la velocidad del motor medida. Esta presenta una medición
muy fina, es decir, no muestra prácticamente ningún brinco brusco respecto a las gráficas
anteriores, donde se utilizo un método por periodo. La gráfica inferior igualmente muestra
el ciclo de trabajo de los PWM´s. Sin embargo la gráfica del medio, muestra el tiempo
requerido para el cálculo de la velocidad, es decir, el tiempo necesario para que transcu-
88 CAPÍTULO 5. PRUEBAS Y RESULTADOS

Figura 5.6: Medición de la velocidad con un periodo de 20 milisegundos

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.

Si se quisiera disminuir el número de pulsos fijos para la medición, tratando de dis-


minuir el tiempo requerido para el cálculo de la velocidad, se obtienen los resultados
mostrados en la figura 5.8, tomados a partir de 2 pulsos.

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

Figura 5.7: Medición de la velocidad con una frecuencia de 20 pulsos

Figura 5.8: Medición de la velocidad con una frecuencia de 2 pulsos


90 CAPÍTULO 5. PRUEBAS Y RESULTADOS

Figura 5.9: Variación de la velocidad con una frecuencia de 2 pulsos

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.10: Medición de la velocidad por medio del algoritmo propuesto

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

Figura 5.12: Ventana de control.

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.

5.4. Ventana de Control


La figura 5.12, es una gráfica tomada con el osciloscopio, que muestra la ventana de
control, para el control PID implementado en esta aplicación. Esta gráfica tiene una es-
cala de 2 milisegundos en el tiempo, y como se puede observar, aproximadamente cada
20 milisegundos se calcula una nueva acción del control, que es representado por el tren
de pulsos mostrado en la grafica.

En la gráfica de la figura 5.13 muestra es un acercamiento de un pulso de la gráfica


anterior. En este caso, se tiene una escala de 10 microsegundos, por lo tanto el pulso tiene
una duración aproximada de 120 microsegundos. Este pulso se forma encendiendo un bit
al inicio de la rutina del algoritmo del PID, y apagando el bit a la salida de esta misma
rutina. Por lo tanto, lo que indica este pulso, es el tiempo que se tarda en resolver al
5.5. CONTROL DE VELOCIDAD PID 93

Figura 5.13: Tiempo dedicado a la resolución del algoritmo PID.

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.

5.5. Control de Velocidad PID


La figura 5.14 es tomada de la nota de aplicación DRM108 ”BLDC Sensorless Refe-
rence Design Using MC56F8006”de freescale. Es un perfil de velocidad, donde se muestra
la velocidad requerida, por medio de la lı́nea verde, y la velocidad actual, indicada por la
lı́nea roja, como se observa, la velocidad actual del motor trata de seguir a la requerida.

Por lo tanto, se crea un perfil de velocidad, que cualitativamente es muy simular al de


la nota de aplicación de freescale, para poder comparar el control de velocidad desarro-
llado en este trabajo.
94 CAPÍTULO 5. PRUEBAS Y RESULTADOS

Figura 5.14: Prueba de un perfil de velocidad nota de aplicación DRM108 de Freescale

La figura 5.15 muestra el perfil de velocidad desarrollado para comparar el controlador


diseñado en la aplicación. Como se puede observar la linea roja, indica el setpoint o velo-
cidad requerida, la linea verde, muestra la velocidad actual del motor, ambas expresadas
en RPM´s. En la gráfica se observa que las variaciones son menores a las mostradas en la
nota de aplicación de freescale.

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

Figura 5.15: Prueba de un perfil de velocidad similar al de la nota de aplicación DRM108


de Freescale en el algoritmo diseñado

(a) Detalle perfil de velocidad de (b) Detalle perfil de velocidad del


la Nota de aplicación. algoritmo diseñado.

Figura 5.16: Comparación de perfil de velocidad

La figura 5.17 muestra 5 gráficas, donde se observa como reacciona el sistema. En la


primera gráfica de arriba hacia abajo, representa la velocidad deseada o setpoint y la velo-
cidad actual respecto al tiempo, la segunda, muestra el error actual. Es importante notar
que el error crece cuando el setpoint cambia mucho, pero esto es un retraso mostrado por
todos los sistemas.
96 CAPÍTULO 5. PRUEBAS Y RESULTADOS

Figura 5.17: Prueba de un perfil de velocidad

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

Figura 5.18: Perfil de velocidad sin carga aplicada al motor.

Figura 5.19: Perfil de velocidad con carga constante aplicada al motor.

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.

Figura 5.20: Prueba de un perfil de velocidad de entrada escalón

En la gráfica de la figura 5.20, se muestra un setpoint, como una entrada de escalón


unitario con un valor de 3000 RPM´s, mientras que la linea azul claro, representa la acción
de control calculada por el controlador. Ninguna carga es aplicada al motor durante la
prueba.

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

Figura 5.22: Prueba de un perfil de baja velocidad

5.6. Caracterı́sticas del Control Generado


En este proyecto se tienen 3 partes principales, el motor BLDC, la etapa de potencia
para este y el controlador digital de señales, donde se desarrollaron todos los algoritmos.

El sistema de control generado, funciona para controlar la velocidad de un motor sin


escobillas de 3 fases de corriente directa. Este control requiere de una retroalimentación
con sensores de efecto Hall, tanto para conocer la posición del rotor, como para medir la
velocidad del rotor. El periodo de muestreo del controlador es de 20 milisegundos. Por
lo tanto, este sistema está limitado a que por lo menos se cuente 1 pulso del sensor Hall
cada 20 milisegundos, lo que representa una velocidad mı́nima de 500 RPM, sin embargo
como se observa en la figura 5.22, se pueden controlar velocidades más bajas con cierto
retraso. Si se utiliza un encoder como sensor para medir la velocidad, la resolución aumen-
tarı́a dependiendo de este, provocando que se puedan controlar velocidades más bajas.
Ası́ mismo, el algoritmo diseñado para la medición de la velocidad es compatible para esta
retroalimentación, lo que significa que se puede adaptar un encoder en cualquier momento.

El algoritmo para el control de velocidad generado, funciona para cualquier motor


BLDC de 3 fases con una retroalimentación por medio de sensores Hall, es decir, que se
5.7. SUMARIO 101

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

Es este trabajo se presentó el desarrollo de un sistema de control de velocidad para


un motor sin escobillas de corriente continua, para lo cual, se diseñó un algoritmo PID
capaz de controlarla, y como se observa en las figuras 5.14 y 5.15, donde se presenta una
comparación entre un perfil de velocidad de la nota de aplicación DMR108 de Freescale
y un perfil programado cualitativamente parecido, se observa que la respuesta tiene un
mejor comportamiento con el control implementado en esta investigación. La importancia
de esta comparación, es que en la nota de aplicación presentada por Freescale, ocupa el
mismo DSC y motor para efectuar sus pruebas. En consecuencia, este proyecto mejora el
control de la velocidad para un motor sin escobillas de corriente directa de tres fases, en re-
lación a lo desarrollado hasta ahora por Freescale, en el área de control de motores BLDC.

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.

Una vez recopilada la información acerca de las diferentes formas de conmutación


electrónica para los motores BLDC, se tienen en cuenta los tipos de conmutación que se
pueden utilizar, los cuales son la conmutación trapezoidal unipolar independiente, uni-
polar complementaria, bipolar independiente y bipolar complementaria. Se utilizó una
conmutación unipolar complementaria, debido a que con un solo parámetro se puede es-
tablecer el ciclo de trabajo para ambos PWM´s de una rama de la etapa de potencia.
Consecuentemente, se configuran los seis PWM´s de acuerdo a la conmutación seleccio-
nada, se estableció una frecuencia de 28 KHz para aprovechar la eficiencia y disminuir el

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.

Con respecto a generar un método y diseñar un algoritmo en el microcontrolador para


medir la velocidad, se realizó un algoritmo capaz de medir cualquier velocidad en el motor,
únicamente limitado al tiempo de muestreo del sistema. Este algoritmo no depende de un
tiempo fijo para poder calcular la velocidad dependiendo de la resolución de los pulsos
por revolución, como lo es el método de frecuencia con los que se obtuvieron muy buenos
resultados de la medición de la velocidad, pero en grandes lapsos de tiempo como se mos-
traron en la figura 5.4. Este método no es capaz de dar información sobre la velocidad al
algoritmo PID al mismo tiempo, ya que este sistema, en el que se controla la velocidad
del motor, tiene un tiempo de muestreo de 20 milisegundos. Ası́ mismo, cuando se trata
de disminuir el tiempo fijo en este método para compensar este problema, la velocidad
medida presenta muchas variaciones como se revisó en la figura 5.6. Por otra parte, el
método de periodo, es el más utilizado para este tipo de sistemas según Freescale y Mi-
crochip, teniendo en cuenta los resultados obtenidos. Este proporciona buenas mediciones
de la velocidad, sin embargo, entre más disminuya la velocidad, el tiempo requerido para
el cálculo de la velocidad aumenta, llegando a un punto donde este supera al tiempo de
muestreo del controlador PID como se reportó en la figura 5.7, y a partir de ese momento
el controlador PID, no estarı́a trabajando con una velocidad real, sino con una atrasada,
por lo que el sistema se vuelve impredecible.

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.

El algoritmo diseñado, es capaz de trabajar y adaptarse para cualquier velocidad,


únicamente limitado a que el tiempo necesario para el cálculo de la velocidad, debe ser
menor al tiempo de muestreo del sistema. Por lo tanto, para este sistema donde se maneja
con una resolución de 6 pulsos por revolución, la velocidad mı́nima queda limitada a 1
105

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.

En esta aplicación, se logró integrar todo en un mismo proyecto, es decir, la detección


de la posición de rotor para poder desarrollar la conmutación, la configuración de los seis
PWM´s en modo complementario, el algoritmo PID para el control de la velocidad del
motor sin escobillas de corriente directa, la comunicación SPI (del inglés Serial Peripheral
Interface) entre el DSC 56F8006 y el pre-driver MC33927 para la etapa de potencia del mo-
tor BLDC, el algoritmo para medir la velocidad a través del sistema de retroalimentación
digital por medio de los sensores Hall, y la herramienta de visualización FreeMASTER
para poder integrar los resaltados, dentro de un mismo proyecto en procesador experto,
teniendo en cuenta que en ninguna nota de aplicación de aplicación o documentación de
freescale se encuentran integrados todos los elementos antes mencionados en procesador
experto en un mismo proyecto.

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

Para ampliar la investigación llevada a cabo en el desarrollo de este trabajo, se sugie-


ren las siguientes recomendaciones para trabajos a futuro.

Implementar una conmutación distinta a la unipolar complementaria, tal como bipo-


lar, en modo independiente o complementario y realizar una comparación de los resultados
obtenidos contra los mostrados en el presente trabajo.

Emplear una retroalimentación por medio de un encoder incremental para aumentar


la resolución de pulsos, con lo que permitirı́a al algoritmo medir velocidades más bajas
de lo que actualmente permite el sistema. Consecuentemente, se podrı́an controlar estas
velocidades con el mismo algoritmo diseñado en este trabajo.

Utilizar el mismo algoritmo generado para controlar la velocidad de un motor BLDC


de mayor o menor potencia, con el fin de comprobar que este es funcional para todos los
motores BLDC en general. Esto implicarı́a emplear las etapas de potencia correspondien-
tes a los motores utilizados.

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.

Desarrollar un algoritmo que permita autosintonizar los parámetros de control, depen-


diendo del motor seleccionado.

Controlar la velocidad de un motor BLDC empleando un algoritmo de control distinto

107
108 RECOMENDACIONES PARA TRABAJOS FUTUROS

al desarrollado en esta instigación y comparar los resultados obtenidos.


Referencias

AN10661 (2007). Brushless DC Motor Control using the LPC2141 Application Note;
AN10661, NXP Semiconductors: Eindhoven, the Netherlands, October 2007 .

Becerra, R.C. y Ehsani, M. (1988). High-Speed Torque Control of Brushless Perma-


nent Magnet Motors. IEEE Trans. Ind. Electron., 9(35, 402-406.), pp. 1–15.

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.

Damodharan, P. y Vasudevan, K. (2008). Indirect Back-EMF Zero Crossing De-


tection for Sensorless BLDC Motor Operation. En: Proceedings of the International
Conference on Power Electronics and Drives Systems (PEDS 2005),, pp. 1107–1111.
Kuala Lumpur, Malaysia,.

Erickson, R. W. y Maksimovic, D. (2001). Fundamentals of Power Electronics.


Springer, 2da eda edición.

Ficapal, A. T. (2009). Algoritmos de Modulación Para Motores Brushless.


http://www.ingenia-cat.com/reference/learn/TEC.PAP.5240009519.pdf

Freescale (2009). 3-Phase Sensorless BLDC Motor Control Using MC9S08MP16.


Freescale Semiconductor.

Galeano, G. (2009). Programación de Sistemas Embebidos en C. Alfaomega.

109
110 REFERENCIAS

Gamazo, J. C. (2010). Position and Speed Control of a Brushless DC Motors Using


Sensorless Techniques and Application Trends. Sensors, 10, pp. 6901–6947.

Hubik, V.; Sveda, M. y Singule, V (2008). On the Development of BLDC Motor


Control Run-Up Algorithms for Aerospace Application. En: Proceedings of the 13th
Power Electronics and Motion Control Conference (EPE-PEMC 2008),, pp. 1620–1624.
Poznan, Poland.

Kazmierkowski, M.; Krishnan, R. y Blaabjerg, F. (2002). Control in Power Elec-


tronics, Academic Publishers. Academic Publishers.

King, Kevin (2008). MCU Performance for Various Control Algorithms of BLDC Mo-
tors. Informe técnico, Renesas Technology.

Krishnan, R. (2001). Electric Motor Drives. Prentice Hall.

Kumar, B. Mahesh (2009). Sensorless Speed Control of Brushless DC Motor with Fuzzy
Based Estimation. Electrical and Computer Engineering, 8, pp. 119–125.

Lee, S. (2009). Application of a Software Configurable Digital Servo Amplifier to an


Electric Machine Control Course. The International Journal of Modern Engineering,
9, pp. 49–58.

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

Margarita, A. (2004). Brushless DC Motor Control. Nota de Aplicación AN2227,


CYPRESS MYCROSYSTEMS.

Minciunescu, P. (1998). Sensorless Control of Brushless DC Motor Using Extended


Kalman Estimator and Back-EMF Integration Algorithm: A Comparation. Informe
técnico, Analog Devices, Inc.

Mohan, N.; Undeland, T. M. y Robbibs, W. P. (2002). Power Electronics: Conver-


ters, Applications, and Design. John Wiley & Sons.

Naidu, M.; Nehl, T.W.; Gopalakrishnan, S. y Wurth, L. (2005). Keeping Cool


while Saving Space and Money: A Semi-Integrated, Sensorless PM Brushless Drive for
a 42-V Automotive HVAC Compressor. IEEE Ind. Appl. Mag., pp. 11, 20–28.
REFERENCIAS 111

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.

Rashid, M. (2003). Power Electronics: Circuits, Devices, and Applications. Prentice


Hall, 3ra ed.a edición.

Rashid, Muhammad H. (1992). Electronica de Potencia. Alan Apt, 2a edición.

Su, G.J. y McKeever, J.W.Su (2004). Low-Cost Sensorless Control of Brushless DC


Motors with Improved Speed Range. IEEE Trans. Power Electron., p. 19.

Tolrá, R. (2004). Técnicas de Control para Motores Brushless.

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 .

Xu, H. (2008). Understanding Sensorless Vector Control for Brushless DC Motoros.


Informe técnico, Renesas Technology.

Yedamale, P. (2003). Brushless DC (BLDC) Motor Fundamentals. Informe técnico,


Microchip Technology Inc.
Anexo
112 REFERENCIAS
Anexo A

Diagramas de conexión de la tarjeta


MC56F8006

Las siguientes páginas pertenecen al documento MC56F8006 Controller Daughter


Board for BLDC/PMSM Motor Control Drive USER MANUAL, donde se muestran los
diagramas esquemáticos de conexión.

113
114 ANEXO A. DIAGRAMAS DE CONEXIÓN DE LA TARJETA MC56F8006

MC56F8006 Controller Daughter Board for BLDC/PMSM Motor Control


Drive Schematics

Figure A-1 Daughter Board Connectors and Headers

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

Circuitos impresos y lista de


materiales del MC56F8006

Las siguientes páginas pertenecen al documento MC56F8006 Controller Daughter


Board for BLDC/PMSM Motor Control Drive USER MANUAL, donde se muestra la
lista de materiales y los circuitos impresos de la tarjeta.

117
118ANEXO B. CIRCUITOS IMPRESOS Y LISTA DE MATERIALES DEL MC56F8006

Bill of Materials

Table B-1 Parts List

DESIGNATORS QUANTITY DESCRIPTION MANUFACTURER PART NUMBER


C2,C2,C4,C6,C7 5 820 pF/6.3 V size 0805 ANY ACCEPTABLE —
C1 1 2200 pF/ 6.3 V size 0805 ANY ACCEPTABLE —
C8,C9,C10 3 100 nF/6.3 V size 0805 ANY ACCEPTABLE —
J1,J6 2 HDR 3x1 MOLEX 09-65-2038
TYCO
J2 1 HDR 2x7 4-103322-2
ELECTRONICS
J3,J4 2 87022-610 FCI 87022-610LF
TYCO
J5 1 HDR 2x6 ELECTRONICS

R1,R2,R3,R4,R6, 100 Ω Resistor 1/8 W 1 %


6 ANY ACCEPTABLE —
R9 size 0805
R5 1 1 kΩ Resistor 1/8 W size 0805 ANY ACCEPTABLE —
R7,R8 2 47 kΩ Resistor 1/8 W size 0805 ANY ACCEPTABLE —
R10 1 33 kΩ Resistor 1/8 W size 0805 ANY ACCEPTABLE —
R11 1 18 kΩ Resistor 1/8 W size 0805 ANY ACCEPTABLE —
FREESCALE
U1 1 digital signal controller/LQFP-32 MC56F8006VLC
SEMICONDUCTOR
ON
U2 1 two-input OR gate MC74VHC1G32DFT1G
SEMICONDUCTOR

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 Layouts

Figure C-1 Board Top Layer

Figure C-2 Board Top Layer

Figure C-3 Board Top Layer

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

Caracterı́sticas eléctricas de la etapa


de potencia.

Las siguientes páginas pertenecen al documento 3-Phase BLDC/PMSM Low-Voltage


Motor Control Drive USER MANUAL, donde se muestran las caracterı́sticas eléctricas y
diagramas esquemáticos de conexión.

121
122ANEXO C. CARACTERÍSTICAS ELÉCTRICAS DE LA ETAPA DE POTENCIA.

Electrical Characteristics

Table 2-1 Electrical Characteristics


Characteristic Symbol Min Typ Max Units

DC input voltage Vdc 12 — 24 V

Quiescent Current* ICC — TBD — mA

Logic 1 Input Voltage VIH 1.5 — 1.7 V

Logic 0 Input Voltage VIL 0.9 — 1 V

Input Resistance RIn — 10 — kΩ

Analog Output Range VOut 0 — 3.3 V

Bus Current Sense Voltage ISense — 413 — mV/A

Bus Current Sense Offset Ioffset +1.65 V

Bus Voltage Sense Voltage* VBus — 91 — mV/V

Bus Voltage Sense Offset Voffset 0 V

Bus Continuous Output Current ** IC — — 3.75 A

Total Power Dissipation (per MOSFET) *** PD — — TBD W

Dead Time (set by SW MC33927) **** toff 0 — 15 us

* Full sensing range 3.3 V corresponds to 36.3 V.


** Overcurrent threshold is set at this level.
*** The values were measured at 25 °C, for other temperatures the values may be different.
**** Default dead time is 15 μs. Dead time depends on the timebase of the MC33927.

3-Phase BLDC/PMSM Low-Voltage Motor Control Drive, Rev. 0


Freescale Semiconductor 19

52

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

Gate_AT 4 Gate_BT 4 Gate_CT 4

FDS3672 FDS3672 FDS3672

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

Gate_AB 4 Gate_BB 4 Gate_CB 4

FDS3672 FDS3672 FDS3672

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

I_sense_A2 I_sense_B2 I_sense_C2

DCB_neg
R88
0.1R GND_LSFET
GND_LSFET
I_Sense_DCB1 I_Sense_DCB2
GND_LSFET
Freescale Semiconductor

Figure A-9 Power Circuit

123
124ANEXO C. CARACTERÍSTICAS ELÉCTRICAS DE LA ETAPA DE POTENCIA.
Anexo D

Circuitos impresos (PCB´s) de la


etapa de potencia

Las siguientes páginas pertenecen al documento 3-Phase BLDC/PMSM Low-Voltage


Motor Control Drive USER MANUAL, donde se muestran los circuitos impresos de la
unidad de control para el motor BLDC.

125
126 ANEXO D. CIRCUITOS IMPRESOS (PCB´S) DE LA ETAPA DE POTENCIA

Bill of Materials

Table B-1 Parts List

DESIGNATORS QUANTITY DESCRIPTION MANUFACTURER PART NUMBER


C1-3,C5 4 47 pF / 100 V size 0805 ANY ACCEPTABLE —
C4,C5,C9,C10,C12,C13
,C17,C23,C27,C29,C31, 16 100 nF / 100 V size 0805 ANY ACCEPTABLE —
C38,C40-C42,C44
C6-C8 3 470 pF / 100 V size 0805 ANY ACCEPTABLE —
C11,C26,C28,C30 4 2.2 μF / 25 V size 0805 ANY ACCEPTABLE —
C14,C15 2 22 pF / 100 V size 0805 ANY ACCEPTABLE —
C16 1 10 μF / 16 V size 0805 ANY ACCEPTABLE —
C18 1 4.7 μF / 16 V size 0805 ANY ACCEPTABLE —
C19 1 470 nF / 25 V size 0805 ANY ACCEPTABLE —
C20-C22 3 1 μF / 25 V size 0805 ANY ACCEPTABLE —
C24 1 2.2 μF / 50 V size 1210 ANY ACCEPTABLE —
C25,C34 2 100 nF / 100 V size 1206 ANY ACCEPTABLE —
C32,C33 2 100 μF / 80 V size H13 ANY ACCEPTABLE —
C35 1 68 μF / 100 V size H13 ANY ACCEPTABLE —
C36,C39 2 47 μF / 6.3 V size C ANY ACCEPTABLE —
C37 1 100 μF / 16 V size E ANY ACCEPTABLE —
C43 1 100 pF / 100 V size 0805 ANY ACCEPTABLE —
AVAGO
D1-D6,D9 7 Yellow Display LED size 0805 HSMY-C170
TECHNOLOGIES
AVAGO
D7,D8,D19 8 Green Display LED size 0805 HSMG-C170
TECHNOLOGIES
0.5 A / 20 V Schottky Rectifier ON
D10-D17 8 MBR0520LT1G
size SOD-123 SEMICONDUCTOR
ON
D18 1 1 A / 200 V Ultrafast Rectifier size B MURS120T3G
SEMICONDUCTOR
J1 1 HDR 1x3 MOLEX 09-65-2038
J2 1 CON_2_TB LUMBERG INC KRM 02
J3 1 Power Jack SWITCHCRAFT RAPC712X
TYCO
J4 1 HDR 2x5 4-103322-2
ELECTRONICS
TYCO
J5 1 HDR 1X2 4-103321-8
ELECTRONICS
J6 1 HDR 1X5 MOLEX 22-27-2051
J7,J8 2 87407-110 FCI 87407-110LF
TYCO
J9 1 HDR 2X3 4-103322-2
ELECTRONICS
TYCO
J10 1 CON USB 292304-1
ELECTRONICS
L1,L3 2 1 μH size 2012 TDK MLZ2012A1R0P
L2 1 100 μH Wurth Elektronik 744778920
FAIRCHILD
Q1 1 9.4 A / 60 V MOSFET size D-PAK FQD11P06TF
SEMICONDUCTOR

3-Phase BLDC/PMSM Low-Voltage Motor Control Drive, Rev. 0


Freescale Semiconductor 55
127

Table B-1 Parts List

DESIGNATORS QUANTITY DESCRIPTION MANUFACTURER PART NUMBER


ON
Q2 1 200 mA / 40 V NPN size SOT-23 MMBT2369ALT1G
SEMICONDUCTOR
7.5 A / 100 V MOSFET size FAIRCHILD
Q3-Q8 6 FDS3672
SOIC-8 SEMICONDUCTOR
1 MΩ Resistor 1/8 W 1 %
R1,R60 2 ANY ACCEPTABLE —
size 0805
R2,R7,R10,R13,R14,R1 7.5 kΩ Resistor 1/8 W 1 %
8 ANY ACCEPTABLE —
9,R81,R84 size 0805
R3,R5,R8,R11,R15,R18 220 Ω Resistor 1/8 W 1 %
8 ANY ACCEPTABLE —
,R102,R103 size 0805
R4,R6,R9,R12,R16,R17 1.6 kΩ Resistor 1/8 W 1 %
8 ANY ACCEPTABLE —
,R82,R83 size 0805
30 kΩ Resistor 1/8 W 1 %
R20,R23,R25,R29 4 ANY ACCEPTABLE —
size 0805
3 kΩ Resistor 1/8 W 1 %
R22,R28,R31 3 ANY ACCEPTABLE —
size 0805
1.5 kΩ Resistor 1/8 W 1 %
R27,R104 21 ANY ACCEPTABLE —
size 0805
R32,R36,R39,R41 41 1 kΩ Resistor 1/8 W size 0805 ANY ACCEPTABLE —
R33,R37,R42 3 24 Ω Resistor 1/80 W size 0805 ANY ACCEPTABLE —
R34,R38,R43,R46,R50,
7 1.8 kΩ Resistor 1/8 W size 0805 ANY ACCEPTABLE —
R53,R97
R35 1 120 Ω Resistor 1/8 W size 0805 ANY ACCEPTABLE —
R40,R59,R65,R89 4 0 Ω Resistor 1/8 W size 0805 ANY ACCEPTABLE —
R44,R47,R49,R51,R54-
9 270 Ω Resistor 1/80 W size 0805 ANY ACCEPTABLE —
R56,R63,R64
R45,R48,R52,R57,
6 4.7 kΩ Resistor 1/8 W size 0805 ANY ACCEPTABLE —
R58,R96
R61,R62 2 33 Ω Resistor 1/8 W size 0805 ANY ACCEPTABLE —
R66,R67,R69-R76,R79,
12 10 Ω Resistor 1/8 W size 0805 ANY ACCEPTABLE —
R80
R68,R94,R95,R98-R10
7 10 kΩ Resistor 1/8 W size 0805 ANY ACCEPTABLE —
1
1 kΩ Resistor 1/8 W 1 %
R77 1 ANY ACCEPTABLE —
size 0805
15 kΩ Resistor 1/8 W 1 %
R78 1 ANY ACCEPTABLE —
size 0805
WELWYN
R85-R88 4 100 mΩ Resistor 1 % size 2512 COMPONENTS LR2512-R10FW
LIMITED
68 Ω Resistor 1/8 W 1 %
R90,R93 2 ANY ACCEPTABLE —
size 0805
R91 1 820 Ω Resistor 1/8 W size 0805 ANY ACCEPTABLE —
SW1,SW2 2 20 mA / 32 V Touch Key C&K COMPONENTS KSC621J LFS
APEM
SW3 1 20 mA / 20 V Toggle Switch/3-state TL39P0050
COMPONENTS
SW4 1 20 mA / 32 V Touch Key C&K COMPONENTS KSC341J LFS
TP1-TP45 45 N/P — —
ON
U1,U2 2 Operational Amplifier / SOIC-8 MC33502DR2G
SEMICONDUCTOR

3-Phase BLDC/PMSM Low-Voltage Motor Control Drive, Rev. 0


56 Freescale Semiconductor
128 ANEXO D. CIRCUITOS IMPRESOS (PCB´S) DE LA ETAPA DE POTENCIA

Table B-1 Parts List

DESIGNATORS QUANTITY DESCRIPTION MANUFACTURER PART NUMBER


PHILIPS
U3 1 CAN INTERFACE / SOIC-8 PCA82C250TD
SEMICONDUCTOR
ON
U4 1 Schmitt Inverter / SOIC-14 MC74AC14DG
SEMICONDUCTOR
FREESCALE
U5 1 8-bit HCS08 Controller / LQFP-44 MC9S08JM60CFGE
SEMICONDUCTOR
3-Phase Bridge Driver / 54 FREESCALE
U6 1 MCZ33927EK
SOICW-EP SEMICONDUCTOR
NATIONAL LM2594HVM-5.0/NO
U7 1 Step-Down Regulator / SOIC-8
SEMICONDUCTOR PB
ON
U8 1 Voltage Regulator / SOIC-8 MC33269D-3.3G
SEMICONDUCTOR
X1 1 8 MHz Crystal / HC49 RAKON LF A140E

3-Phase BLDC/PMSM Low-Voltage Motor Control Drive, Rev. 0


Freescale Semiconductor 57
129
Figure C-1 Board Top Layer
3-Phase BLDC/PMSM Low-Voltage Motor Control Drive, Rev. 0
60 Freescale Semiconductor
130 ANEXO D. CIRCUITOS IMPRESOS (PCB´S) DE LA ETAPA DE POTENCIA
Figure C-2 Board Bottom Layer
3-Phase BLDC/PMSM Low-Voltage Motor Control Drive, Rev. 0
Freescale Semiconductor 61
131
Figure C-3 Board Silkscreen Top Layer
3-Phase BLDC/PMSM Low-Voltage Motor Control Drive, Rev. 0
62 Freescale Semiconductor
132 ANEXO D. CIRCUITOS IMPRESOS (PCB´S) DE LA ETAPA DE POTENCIA
Figure C-4 Board Silkscreen Bottom Layer
3-Phase BLDC/PMSM Low-Voltage Motor Control Drive, Rev. 0
Freescale Semiconductor 63
Anexo E

Programas generados en
Codewarrior 8.3

E.1. Segmento de código para la configuración del


MC56F8006 con el driver MC33927
∗∗=====================================================∗∗
∗∗ ———————————————– Segmento de Código ———————————————– ∗∗
∗∗=====================================================∗∗

/* inicializa el modulo COP */


ioctl(COP, COP INIT, NULL);

/* Inicializa el modulo SYS */


ioctl(SYS, SYS INIT, NULL);

/* Inicializa el modulo SCI */


ioctl(SCI, SCI INIT, NULL);

/* Inicializa el modulo SPI */


SPI Init();
/* Inicializa el modulo Gpio */
GpioInit();

Cpu Delay100US(10000);/*Un Delay*/

/* 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();

/***** Configuracion *****/


mudtModeCommands.B.Lock = 0; /* 0: permite cambiarlo; 1: bloquea la configuración hasta un reset */
mudtModeCommands.B.FullOnMode = 0; /* 0: BLDC, PMSM, ACIM; 1: SR motor */
mudtModeCommands.B.DesatFaultMode = 1; /* 0: Cuando ocurre una dasaturación o error en cuáquera
fase, apaga
todos los MOSFETs; 1: los errores por desaturación son ignorados */

/* Este comando controla los errores por desaturación */

MC33927 ModeCommand(&mudtModeCommands);

/***** Configuración de Interrupciones *****/


mudtMaskInterrupts.B.TLim = 0; /* Interrupción por sobre-temperatura, 0: deshabilita; 1: habilita */
mudtMaskInterrupts.B.Desat = 0; /* Interrupción por desaturación, 0: deshabilita; 1: habilita */
mudtMaskInterrupts.B.LowVLS = 0; /* Interrupción por baja tensión, 0: deshabilita; 1: habilita */
mudtMaskInterrupts.B.Overcurrent = 1; /* Interrupción por sobre-corriente, 0: deshabilita; 1: habilita
*/
mudtMaskInterrupts.B.PhaseError = 0; /* Interrupción por error de fase, 0: deshabilita; 1: habilita */
mudtMaskInterrupts.B.FramingError = 0; /* Interrupción por error en la SPI, 0: deshabilita; 1: habilita
*/
mudtMaskInterrupts.B.WriteError = 0; /* Bloquea la modificación durante un error, 0: deshabilita; 1:
habilita */
mudtMaskInterrupts.B.ResetEvent = 0; /* Resetea las interrupciones, 0: deshabilita; 1: habilita */

/* Este registro controla los registros de enmascaración de las interrupciones */


MC33927 MaskInterrupts(&mudtMaskInterrupts);
E.2. SEGMENTO DE CODIGO PARA LA DETECCIÓN DE LA POSICIÓN DEL ROTOR135

/***** Limpiar las bandera *****/


mudtClearFlags.B.TLim = 1; /* bandera de sobre-temperatura, 0: sin modificar; 1: limpia */
mudtClearFlags.B.Desat = 1; /* bandera por desaturación, 0: sin modificar; 1: limpia */
mudtClearFlags.B.LowVLS = 1; /* bandera por baja tensión, 0: sin modificar; 1: limpia */
mudtClearFlags.B.Overcurrent = 1; /* bandera por sobre-corriente, 0: sin modificar; 1: limpia */
mudtClearFlags.B.PhaseError = 1; /* bandera por error en fase, 0: sin modificar; 1: limpia */
mudtClearFlags.B.FramingError = 1; /* bandera por error en SPI, 0: sin modificar; 1: limpia */
mudtClearFlags.B.WriteError = 1; /* bandera por error de bloqueo de escritura, 0: sin modificar; 1:
limpia */
mudtClearFlags.B.ResetEvent = 1; /* bandera de reset del driver, 0: sin modificar; 1: limpia */

/* Este comando limpia el registro de las banderas */


MC33927 ClearFlags(&mudtClearFlags);

∗∗=====================================================∗∗
∗∗ ———————————————– Segmento de Código ———————————————– ∗∗
∗∗=====================================================∗∗

E.2. Segmento de codigo para la detección de la po-


sición del rotor
∗∗=====================================================∗∗
∗∗ ———————————————– 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

PWMC1 SetRatio16(PWM AA,ct);


//////////////////////////////////
PWM C out;
PWM B off;
//////////////////////////////////
////////Activar Salida////////////
PWMC1 Load();
PWMC1 OutputPadEnable();
//////////////////////////////////
}

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 ———————————————– ∗∗
∗∗=====================================================∗∗

E.4. Algoritmo para el calculo de la velocidad del


motor
∗∗=====================================================∗∗
∗∗ ———————————————– 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 ———————————————– ∗∗
∗∗=====================================================∗∗

E.5. Control PID


∗∗=====================================================∗∗
∗∗ ———————————————– 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

/* is set to ’yes’ (#pragma interrupt saveall is generated before the ISR) */

void TI1 OnInterrupt(void)


{
/* Write your code here ... */

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

Hoja de datos del motor LINIX


45ZWN24-40

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

1:3 1:5 1:8 1:9 1:12.5 1:15


60JB Ratio
1:18 1:25 1:30 1:36 1:50 1:60
1:75 1:90 1:100 1:120 1:150 1:18 0 1:233
-0.015

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

1:10 1:20 1:30 1:60


66JB Ratio
40

45ZWN/66JB
1:100 1:120 1:150 1:180

Power L1 L2
-0.1
L2 L1 -0.2

10W 58.5 1.5


30W 90 0

24
Anexo G

Información del CODEWARRIOR


for DSC v8.3

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

Freescale Development Tools

CodeWarrior ™ Development Studio for Freescale


56800/E Digital Signal Controllers V8.3
Overview • Fast, flexible and comprehensive • Automatically generates highly optimized C
The comprehensive, award-winning, highly run-control capabilities for complete code within your CodeWarrior project
visual CodeWarrior development environment target control • Latest IDE version 5.9 (New)
lets both 56800 and 56800E designers build • Precise breakpoints help solve • Linker Memory Initialization (LMI) feature,
and deploy even the most sophisticated DSC sophisticated problems which allows every word in a non-empty
systems quickly and easily by integrating • High-performance host-target interfaces for section to be initialized with a value (New)
support for both architectures into a single faster flash programming • Open-source BDM (JTAG) connection
integrated solution. Whether your application
• Download to internal flash with the click of support (New)
is targeting motor control, smart appliances,
a button • Data visualization allows display of more
industrial control or braking/steering by-wire
applications, CodeWarrior tools provide • Interactively debug software running in than one variable at a time on one chart, or
you with everything you need to exploit internal flash using hardware breakpoint use of multiple charts (New)
the advanced capabilities of the Freescale mechanism • Supports 56F824x/5x (New)
56800/E digital signal controllers. CodeWarrior
Processor Expert™
Development Studio for Freescale 56800/E Processor Expert Components
Processor Expert provides a rapid
digital signal controllers is uniquely • Memory management
application design (RAD) tool that combines
designed to take advantage of the powerful • Components (drivers) for all peripherals
easy-to-use component-based software
microcontroller capabilities of the 56800/E
application creation with an expert knowledge • Digital signal processing and filtering
architectures.
system. CPU on-chip peripherals, external • Bit manipulation
CodeWarrior Compiler, Assembler, peripherals and software functionality is
• Vocoders
Linker and Libraries encapsulated into components called
• Modems
The CodeWarrior build system helps you develop Embedded Components. Each component’s
functionality can be tailored to fit your • RTOS integration support
applications with the smallest codesize and
application requirements by modifying the • Comprehensive software, hardware and
fastest execution time. Primary features include:
component’s properties, methods and events. silicon documentation
• Optimizing ANSI C compiler
When you build the project, Processor Expert • Software testing and debug utilities
• GUI based with command-line option automatically generates highly optimized C • Networking
• Advanced optimization technology code and places the files into your project.
• Telephony
generates fast, compact, high-quality code Processor Expert also makes porting a
breeze. Simply select the new 56800 or • Security
• ELF output in compiler/assembler
56800E processor and Processor Expert • Voice recognition
• Linker generates both ELF and S-Records
maps the software and peripheral • Sample applications
• MSL supports file IO through debugger
components that describe your application’s • Processor architecture services additional
interface
functionality to the resources available on the applications (56F800 and 56F8300 series)
Graphical Source-Level Debugger new processor. All you have to do is resolve • Uninterruptible power supply
The CodeWarrior IDE includes a state-of- any problems flagged by Processor Expert
• Motor control primitives and algorithms
the-art C source-level debugger with a wide and you’re finished.
• Motor control applications additional
array of sophisticated features that help you
applications (56850 series only)
debug your DSC application faster than ever.
Features • Feature phone
The debugger provides all of the power you
• Code generation for low-level driver source
need with the simplicity of a Windows® based
• Hardware independence reduces Check online for the latest list of Processor
point-and-click environment for fast and easy
application porting time Expert embedded components.
execution. Key capabilities include:
• Graphical display of complex data • Drag-and-drop components
structures and expressions to speed • Expert knowledge base constantly checks
runtime analysis CPU-dependent settings
145

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

latest OSEK/VDX specifications it works (Order Part#: CWH-UTP-ONCE-HE)


Basic Suite—C Compiler Upgrade
seamlessly with CodeWarrior Development • Open Source BDM (HCS08JM60 based)
Perpetual $995
Studio for Freescale 56800/E digital signal (Supports only 56F800x and 56F824x/5x)
• Node Locked CWP-BASIC-NL
controllers MC56F834x series of processors
Peripherals • Floating CWP-BASIC-FL
• Stand-alone flash programming support • Tech Support CWT-BASIC
Specifications
After first year $195
Languages Supported System Requirements
Annual Subscription $395
• C • 1.0 GHz processor: Intel® Pentium®
or equivalent • Node Locked CWA-BASIC-NL
• 56800/E assembly language
• Windows XP/Vista (32-bit) (Home Premium • Floating CWA-BASIC-FL
Host Development Platform and Business Editions) Standard Suite—CodeWarrior for 56800/E
• Windows® XP (32-bit) • 2 GB RAM minimum Digital Signal Controllers, Full Product
• Windows® Vista (32-bit) (Home Premium • 2.0 GB free hard drive space Perpetual $2495
and Business Editions) • Node Locked CWP-STANDARD-NL
• CD-ROM drive for installing Freescale
Support Policy • Floating CWP-STANDARD-FL
Supported Digital Singal
Controllers Families • On-line help and documentation • Tech Support CWT-STANDARD
After first year $495
• 56F8xxx device (56800E core): • Free 30-day evaluation license available
MC56F800x, MC56F801x, Annual Subscription $995
MC56F803x, MC56F824x/5x (New), • Node Locked CWA-STANDARD-NL
and MC56F83xx • Floating CWA-STANDARD-FL
• 56F8xx device (56800 core): DSP56F80x
Professional Suite—CodeWarrior for
• 568xx device: DSP5685x 56800/E Digital Signal Controllers,
Full Product

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

CodeWarrior™ Development Studio


Quick Start for Freescale™ 56800/E
Digital Signal Controllers

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

Operating System Microsoft Windows XP, or Windows Vista


Operating Systems

Disk Space 2.0 GB free hard drive space

This Quick Start explains how to install the CodeWarrior Development


Studio for Freescale 56800/E Digital Signal Controllers and then use the
CodeWarrior Development Studio to create, build, and run an example
program.

Section A: Installing CodeWarrior Software

1. Insert the CodeWarrior Development Studio CD into the CD-ROM


drive — the CodeWarrior Auto Install begins.

NOTE If Auto Install does not start, run launch.exe, which is located
in the root directory of the CD.

2. Follow setup program's on-screen instructions.

NOTE For licensing and activation of your CodeWarrior Development


Studio for Freescale 56800/E Digital Signal Controllers, refer to
the CodeWarrior Development Suite Quick Start. Save the
license file, license.dat, to the installation root folder. The
default is C:\Program Files\Freescale\CodeWarrior
for DSC56800E v8.3

1
Anexo H

Resumen de funciones del Pre-driver


MC33927

147
148 ANEXO H. RESUMEN DE FUNCIONES DEL PRE-DRIVER MC33927

API Summary

Chapter 3 FUNCTION API


3.1 API Summary
Table 3-1. API Functions Summary

Name Arguments Output Description

This function initializes the


SPI_Init void void SPI peripheral and the
chip-select signal.

This function sends and


SPI_Send byte bytData byte receives data via the SPI
peripheral.

This function gets Status


MC33927_GetSR0 MC33927_LATCH_T * pudtSR0 void
Register 0 of MC33927.

This function gets Status


MC33927_GetSR1 MC33927_MODE_T * pudtSR1 void
Register 1 of MC33927.

This function gets Status


MC33927_GetSR2 MC33927_LATCH_T * pudtSR2 void
Register 2 of MC33927.

This function gets Status


MC33927_GetSR3 void byte Register 3 of MC33927, i.e.
the deadtime value.

MC33927_MODE_COMMAND_T This function configures the


MC33927_ModeCommand void
*pudtModeCommand mode bits in MC33927.

This function sets up the


MC33927_MaskInterrupts MC33927_LATCH_T * pudtInterruptMask void interrupt mask bits in
MC33927.

This function clears the flag


MC33927_ClearFlags MC33927_LATCH_T * pudtClearFlags void
bits in MC33927.

This function sets the zero


MC33927_ZeroDeadtime void void length deadtime in
MC33927.

This function sets the


MC33927_DeadtimeCalibration void void MC33927 driver into the
deadtime calibration mode.

MC33927 Software Driver, Rev. 0


Freescale Semiconductor 3-11

Você também pode gostar