Controlador SeNoidal para motor PMBLDC en tracción de...

181
INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INVESTIGACIÓN E INNOVACIÓN TECNOLOGICA Controlador Senoidal para motor PMBLDC en tracción de vehículos eléctricos TESIS QUE PARA OBTENER EL GRADO DE: MAESTRÍA EN TECNOLOGÍA AVANZADA Presenta Octavio Sánchez García Director M. en C. Agustín Cruz Contreras México D.F., julio de 2015

Transcript of Controlador SeNoidal para motor PMBLDC en tracción de...

Page 1: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

INSTITUTO POLITÉCNICO NACIONAL

CENTRO DE INVESTIGACIÓN E INNOVACIÓN TECNOLOGICA

Controlador Senoidal para motor PMBLDC en tracción de vehículos eléctricos

TESIS

QUE PARA OBTENER EL GRADO DE:

MAESTRÍA EN TECNOLOGÍA AVANZADA

Presenta

Octavio Sánchez García

Director

M. en C. Agustín Cruz Contreras

México D.F., julio de 2015

Page 2: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico
Page 3: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico
Page 4: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

1

Resumen

En este trabajo se realiza el desarrollo tecnológico de un controlador para motores

de campo permanente sin escobillas de corriente continua empleando conmutación

senoidal, a través de la cual se logra torque constante, un elevado factor de potencia

y se minimiza el nivel de armónicos. La eficiencia que se logra con este tipo de

conmutación es muy elevada, razón por la cual es ideal para sistemas alimentados

por baterías, como es el caso de vehículos eléctricos.

Al hacer uso de la tecnología en motores de campo permanente sin escobillas, el

primer problema que se tiene es lograr accionarlo, ya que se deben conocer los

puntos de conmutación en los cuales se le debe cambiar la polaridad a las bobinas

de manera electrónica; por medio del sensor absoluto de posición analógico

“Resolver”, se conocen estos puntos, obteniendo la carta de conmutación del motor.

La selección del sensor “Resolver”, es debido a que es capaz de medir la posición

absoluta del rotor, situación requerida para implementar la conmutación senoidal.

Al desear el control de diferentes velocidades de giro del motor, se requiere de la

técnica de modulación de ancho de pulso, mediante la cual se logra promediar el

voltaje que es entregado al motor, dependiendo de las habilidades que se generen

en el ancho de pulso modulado, en cuanto a su forma, el motor recibirá conmutación

trapezoidal o senoidal, para esta aplicación se tiene ambas habilidades.

Para su accionamiento se desarrolla, el módulo inteligente de potencia con la

capacidad de 600 V a 30 A, y con aislamiento de la etapa de control.

El control y el accionamiento diseñados, son implementados en electrónica

reconfigurable, mediante leguaje de descripción, esquemas y macros. Además son

implementados circuitos de protección, adquisición de datos y medición de

parámetros por este mismo medio.

El algoritmo de control que se utiliza, puede operar en dos modos:

Posición, mediante el cual puede seguir un perfil de trayectoria para desplazarse

del punto “A” al punto “B”, manteniendo la posición final hasta que le sea requerido

otro desplazamiento.

Velocidad, mediante el cual se le establece una velocidad en rpm de referencia a la

que el rotor debe girar, y aunque exista una fuerza externa que intente detenerlo, el

control dará la energía necesaria para mantener la velocidad de referencia.

Para poder operar, configurar y evaluar el comportamiento del sistema, se desarrolla

la interfaz hombre-máquina en ambiente gráfico por medio de la PC.

Page 5: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

2

Abstract

In this technological development work, a driver for a permanent magnet brushless

of direct current electrical motor using sinusoidal commutation is design and

implement. This kind of commutation can obtain constant torque, high power factor

and low harmonics level. The efficiency achieved with this type of switching is very

high, which is why it is ideal for battery-powered systems, such as electric vehicles.

By making use of this technology of permanent magnet brushless, the first problem

is to move the rotor, as the switching points must be determined on which the polarity

of the coils change electronically by means of the absolute analog position sensor

"Resolver", and thus the commutation letter is obtained. Sensor selection "Resolver"

is need because it is able to measure the absolute position of the rotor required to

implement the sinusoidal commutation.

If the control needs to have different rotational speeds of the motor, it requires the

use of the Pulse Width Modulation technique. The average voltage is obtain that is

deliver to the motor, depending on the capacities that are generated in the Pulse

Width Modulation, in terms of its form, the motor will receive trapezoidal or sinusoidal

commutation and for this application, both capacities are available.

For the driving of the motor an intelligent power module with the capacity of 600 V

at 30 A, and isolation of the control stage.

The control system and the driver were design and implement in reconfigurable

electronics, by language of description, schemes and macros, are also implemented

protection circuits, data acquisition and measurement of parameters.

The control algorithm used, can operate in two modes:

Position, where you can follow a profile path to move from point "A" to point "B",

keeping the final position until it is required another shift,

Speed mode, where the system will establish a reference speed mode, in rpm´s, to

which the rotor must rotate, and even when an external force is apply attempting to

stop it, the control system will provide the energy needed to maintain the reference

speed.

To operate, configure, and evaluate the performance of the system, a man-machine

interface was develop in a graphical environment for the PC.

Page 6: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

3

Agradecimientos Este trabajo de desarrollo tecnológico no sería posible sin el apoyo de personas e

instituciones que en mucho colaboraron con la culminación de este trabajo y es por

ello que deseo agradecer a:

El Instituto Politécnico Nacional, que me ha abierto las puertas hacia increíbles

experiencias profesionales y personales, por darme la oportunidad de crecer y

aprender en sus aulas, con maestros de alta calidad por eso y más soy

orgullosamente politécnico.

Al CONACYT por brindar el apoyo económico sin contratiempos para la realización

de este proyecto, cumpliendo con el compromiso de fomentar la investigación y el

desarrollo en México.

Al CIITEC por brindarme un espacio para realizar mis estudios de maestría con un

alto nivel académico, con el personal dispuesto a apoyar los proyecto y a las

instalaciones adecuadas para el desarrollo.

Al M. en C. Agustín Cruz ya que sin su apoyo, experiencia e ímpetu no se hubiera

realizado este proyecto. Agradezco su tiempo, consejos y enseñanzas que

permitieron formar la persona que soy ahora, impulsando siempre mi creatividad.

Page 7: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

4

Dedicatorias Para mis confidentes y mejores amigos, los amo familia.

Page 8: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

5

Contenido

Resumen ............................................................................................................................................ 1

Abstract ............................................................................................................................................. 2

Agradecimientos .............................................................................................................................. 3

Dedicatorias ...................................................................................................................................... 4

Contenido ......................................................................................................................................... 5

Figuras ............................................................................................................................................... 9

Tablas............................................................................................................................................... 13

Capítulo 1. Introducción ............................................................................................................. 14

1.1 Aspectos Generales ................................................................................................................ 14

1.2 Estado del Arte ....................................................................................................................... 16

1.3 Objetivos ................................................................................................................................. 18

1.3.1 Objetivo General ............................................................................................................. 18

1.3.2 Objetivos Específicos ....................................................................................................... 18

1.4 Justificación ............................................................................................................................ 19

Capítulo 2. Fundamentos Teóricos ........................................................................................... 20

2.1 Introducción ............................................................................................................................ 20

2.2 Motor de Eléctrico .................................................................................................................. 21

2.2.1 Motor convencional de corriente continua con escobillas ............................................ 22

2.2.2 Motor de campo permanente sin escobillas .................................................................. 24

2.3 Conmutación Electrónica ....................................................................................................... 28

2.3.1 Conmutación Trapezoidal ............................................................................................... 28

2.3.2 Conmutación Senoidal .................................................................................................... 30

2.3.3 Torque constante a partir de la conmutación senoidal ................................................. 31

2.3.4 Armónicos ........................................................................................................................ 31

2.3.5 Factor de potencia ........................................................................................................... 33

2.4 Modulación por ancho de pulso ............................................................................................ 34

2.5 Formación de la senoide empleando PWM ........................................................................... 36

2.5.1 El Algoritmo CORDIC ........................................................................................................ 37

Page 9: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

6

2.6 Generación de senoide con ángulo de desfase ..................................................................... 38

2.7 Sensor de posición angular absoluto ..................................................................................... 38

2.8 Interfaz de Potencia................................................................................................................ 40

2.8.1 Puente H .......................................................................................................................... 40

2.8.2 Transistor bipolar de compuerta aislada (IGBT) ............................................................. 41

2.8.3 Capacitores de arranque ................................................................................................. 43

2.8.4 Supresor de transitorios .................................................................................................. 44

2.8.5 Desenergizado de la bobina ............................................................................................ 45

2.9 Medio de implementación ..................................................................................................... 47

2.10 Sistema de control ................................................................................................................ 47

2.10.1 Algoritmo de control PID ............................................................................................... 48

2.11 Sistema de control distribuido ............................................................................................. 49

2.12 Interfaz de usuario................................................................................................................ 50

2.12.1 Puerto de la PC .............................................................................................................. 50

2.12.2 Registro Digital en FPGA................................................................................................ 51

Capítulo 3. Accionamiento del motor PMBLDC .................................................................... 52

3.1 Introducción ............................................................................................................................ 52

3.2 Medición de la posición absoluta del rotor ........................................................................... 53

3.2.1 Conversión de “Resolver” a digital ................................................................................. 53

3.2.1 Generación de señales para leer convertidor ................................................................ 55

3.3 Registro de posición en FPGA ................................................................................................ 57

3.3.1 Filtro Digital ..................................................................................................................... 59

3.3.2 Señal para registro de posición ....................................................................................... 62

3.3.3. Monoestable digital ....................................................................................................... 64

3.4 Encoder Emulado .................................................................................................................... 65

3.4.1 Multiplicador de encoder ................................................................................................ 66

3.5 Generación de PWM............................................................................................................... 69

3.6 Decodificador de conmutación .............................................................................................. 75

3.6.1 Carta de conmutación del motor PMBLDC Parker BE341J ............................................. 75

3.6.2 Diseño el decodificador de conmutación ....................................................................... 77

3.6.3 Implementación del decodificador de conmutación ..................................................... 80

Page 10: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

7

3.7 Conmutador Trapezoidal ........................................................................................................ 83

3.8 Generación del PWM senoidal ............................................................................................... 84

3.8.1 Posición Angular .............................................................................................................. 84

3.8.2 Cálculo de seno ................................................................................................................ 88

3.8.3 Multiplicador ................................................................................................................... 89

3.8.4 Generador de Ancho de Pulso......................................................................................... 91

3.8.5 PWM senoidal .................................................................................................................. 92

3.9 Decodificador de PWM senoidal ............................................................................................ 94

3.9.1 Descarga lenta en la conmutación senoidal ................................................................... 97

3.10 Conmutador Senoidal ........................................................................................................... 98

3.11 Conmutador del sistema .................................................................................................... 101

3.12 Interfaz hombre-máquina .................................................................................................. 102

3.12.1 Registro digital ............................................................................................................. 102

3.12.2 Banco de registros ....................................................................................................... 105

Capítulo 4. Control ..................................................................................................................... 110

4.1 Introducción .......................................................................................................................... 110

4.2 Control distribuido en FPGA ................................................................................................. 111

4.3 Sistema Supervisor ............................................................................................................... 111

4.4 Sistema Regulador, Algoritmo de control modo posición .................................................. 112

4.4.1 Obtención del valor del error ........................................................................................ 113

4.4.2 Acción proporcional ...................................................................................................... 116

4.4.3 Acción Derivativa ........................................................................................................... 119

4.4.4 Acción Integral ............................................................................................................... 121

4.4.5 Sumador de acciones de control ................................................................................... 125

4.5 Sistema Regulador, Algoritmo de control Modo Velocidad ............................................... 127

4.6 Seleccionador de modo de control ...................................................................................... 133

4.7 Medición interna de velocidad ............................................................................................ 134

4.8 Gráfica de la respuesta del motor ........................................................................................ 142

4.8.1 Captura en ráfaga de la respuesta del motor ............................................................... 143

4.9 Interfaz de potencia Puente “H” trifásico ............................................................................ 146

4.10 Circuitos de protección ....................................................................................................... 149

Page 11: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

8

4.10.1 Verificación de correcta conexión de fases ................................................................ 149

4.10.2 Protección error máximo ............................................................................................ 154

Capítulo 5. Pruebas y resultados ............................................................................................. 156

5.1 Introducción .......................................................................................................................... 156

5.2 Señales obtenidas para protocolo con el convertidor analógico digital ............................ 156

5.3 Filtro digital ........................................................................................................................... 157

5.4 Monoestable digital ............................................................................................................. 158

5.5 Multiplicador de encoder emulado ..................................................................................... 158

5.6 Generación de Ancho de pulso PWM .................................................................................. 159

5.7 Conmutador Trapezoidal ...................................................................................................... 160

5.8 Generación de PWM senoidal .............................................................................................. 161

5.9 Banco de pruebas ................................................................................................................. 162

5.9.1 Prueba en modo posición .............................................................................................. 163

5.9.2 Prueba en modo velocidad ........................................................................................... 164

5.9.3 Medición de corriente ................................................................................................... 165

Capítulo 6 Conclusiones y trabajo futuro .............................................................................. 167

6.1 Introducción .......................................................................................................................... 167

6.2 Conclusiones ......................................................................................................................... 167

6.3 Trabajo Futuro ...................................................................................................................... 168

Anexo 1 Hoja de especificaciones servomotores serie “BE” Parker ............................................. 169

Referencias ................................................................................................................................... 174

Page 12: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

9

Figuras FIGURA 1 ESTRUCTURA DEL MOTOR CONVENCIONAL DE DC ........................................................................................... 22

FIGURA 2 CONMUTADOR DEL MOTOR CONVENCIONAL DE DC ........................................................................................ 23

FIGURA 3 FUNCIÓN DEL CONMUTADOR A) PRIMER ENERGIZADO B) POLARIDADES IGUALES C) CONMUTACIÓN .......................... 24

FIGURA 4 ESTRUCTURA DEL MOTOR DE CAMPO PERMANENTE SIN ESCOBILLAS, MONOFÁSICO ............................................... 25

FIGURA 5 CONFIGURACIÓN BÁSICA BLDC A TRES FASES, Y DOS POLOS EN IMÁN PERMANENTE .............................................. 26

FIGURA 6 CONEXIÓN CARACTERÍSTICA DE LAS BOBINAS EN EL MOTOR BLDC ..................................................................... 26

FIGURA 7 SECUENCIA DE POLARIZACIÓN DE LAS BOBINAS PARA PRODUCIR QUE EL ROTOR GIRE .............................................. 27

FIGURA 8 VOLTAJE EN CADA FASE, FORMA DE ONDA DE CORRIENTE Y CODIFICACIÓN DE SENSOR HALL CON RESPECTO AL ÁNGULO

ELÉCTRICO DEL ROTOR .................................................................................................................................... 29

FIGURA 9 SEÑAL CON ARMÓNICOS ............................................................................................................................ 32

FIGURA 10 ESTRUCTURA DEL ANCHO DE PULSO MODULADO .......................................................................................... 34

FIGURA 11 DIAGRAMA A BLOQUES PARA LA VARIACIÓN DEL CICLO DE TRABAJO EN EL PWM ................................................ 35

FIGURA 12 DIAGRAMA A BLOQUES PARA GENERAR EL PWM SENOIDAL ........................................................................... 37

FIGURA 13 VUELTA ELÉCTRICA DEL MOTOR PMBLDC Y SUS PASOS DE CONMUTACIÓN ....................................................... 38

FIGURA 14 GENERADOR DE SENO Y COSENO. EL ROTOR ACTÚA DE PRIMARIO Y LOS DOS DEVANADOS DEL ESTATOR ACTÚAN DE

SECUNDARIO ................................................................................................................................................ 39

FIGURA 15 PUENTE H TRIFÁSICO .............................................................................................................................. 40

FIGURA 16 CIRCUITO EQUIVALENTE AL IGBT .............................................................................................................. 41

FIGURA 17 TRANSISTORES SUPERIORES DEL PUENTE H .................................................................................................. 43

FIGURA 18 FUNCIONAMIENTO DEL CAPACITOR DE ARRANQUE ........................................................................................ 44

FIGURA 19 TRANSITORIO DE VOLTAJE ........................................................................................................................ 44

FIGURA 20 DIODOS DE RECIRCULACIÓN EN EL PUENTE H MONOFÁSICO ............................................................................ 45

FIGURA 21 DESENERGIZADO RÁPIDO ......................................................................................................................... 46

FIGURA 22 DESENERGIZADO LENTO .......................................................................................................................... 46

FIGURA 23 LAZO DE CONTROL ABIERTO ..................................................................................................................... 48

FIGURA 24 LAZO DE CONTROL CERRADO .................................................................................................................... 48

FIGURA 25 CONTROL DISTRIBUIDO A BLOQUES ............................................................................................................ 50

FIGURA 26 DIAGRAMA DE TIEMPOS PARA LECTURA PARALELA ........................................................................................ 54

FIGURA 27 BLOQUE DEL PROTOCOLO CON EL CONVERTIDOR ANALÓGICO-DIGITAL .............................................................. 56

FIGURA 28 ESQUEMA PARA OBTENER DATOS DEL CONVERTIDOR ..................................................................................... 57

FIGURA 29 BLOQUE QUE SE ENCARGA DE REGISTRAR LA POSICIÓN DEL ROTOR ................................................................... 58

FIGURA 30 DIAGRAMA DE REGISTRO DE POSICIÓN ....................................................................................................... 59

FIGURA 31 BLOQUE DEL FILTRO DIGITAL..................................................................................................................... 60

FIGURA 32 ESQUEMA DEL FILTRO DIGITAL .................................................................................................................. 60

FIGURA 33 FILTRO PARA 16 BITS .............................................................................................................................. 61

FIGURA 34 PRIMITIVA CB16CLE ............................................................................................................................. 61

FIGURA 35 BLOQUE DE DETECCIÓN DE CAMBIO DE POSICIÓN ......................................................................................... 62

FIGURA 36 CIRCUITO PARA LA DETECCIÓN DE CAMBIO DE POSICIÓN ................................................................................. 63

FIGURA 37 MONOESTABLE DIGITAL .......................................................................................................................... 64

FIGURA 38 DIAGRAMA DEL MONOESTABLE DIGITAL ...................................................................................................... 64

FIGURA 39 BLOQUE DE NOMBRE "ENCODER" ............................................................................................................. 65

FIGURA 40 DIAGRAMA DEL BLOQUE DENOMINADO "ENCODER" ..................................................................................... 65

FIGURA 41 FUNCIONAMIENTO GENERAL DEL ENCODER INCREMENTAL .............................................................................. 66

Page 13: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

10

FIGURA 42 SECUENCIAS PARA IDENTIFICAR GIRO EN EL MULTIPLICADOR DE ENCODER .......................................................... 66

FIGURA 43 DIAGRAMA DE ESTADOS PARA CONOCER DIRECCIÓN DE GIRO .......................................................................... 67

FIGURA 44 DIAGRAMA DEL MULTIPLICADOR DE ENCODER.............................................................................................. 68

FIGURA 45 DISEÑO A BLOQUES DEL PWM ................................................................................................................. 69

FIGURA 46 BLOQUE PWM_TRAP .............................................................................................................................. 70

FIGURA 47 FUNCIONAMIENTO DEL DISEÑO DE PWM ................................................................................................... 70

FIGURA 48 IMPLEMENTACIÓN DEL BLOQUE PWM_TRAP ................................................................................................ 71

FIGURA 49 BLOQUE PARA DIVIDIR FRECUENCIA DEL PWM, " DIV_FREC" ......................................................................... 71

FIGURA 50 IMPLEMENTACIÓN DEL DIVISOR DE FRECUENCIA ........................................................................................... 72

FIGURA 51 BLOQUE "LIMITES_CONMUTAR" ............................................................................................................... 73

FIGURA 52 IMPLEMENTACIÓN DE LA LIMITACIÓN DEL CICLO TRABAJO ............................................................................... 74

FIGURA 53 DIAGRAMA QUE GENERA EL PWM PARA EL SISTEMA .................................................................................... 75

FIGURA 54 ORDEN CONSIDERADO PARA OBTENER LA CARTA DE CONMUTACIÓN ................................................................. 76

FIGURA 55 BLOQUE DEL DECODIFICADOR DE CONMUTACIÓN ......................................................................................... 81

FIGURA 56 IMPLEMENTACIÓN DEL DECODIFICADOR DE CONMUTACIÓN ............................................................................ 82

FIGURA 57 DIAGRAMA DEL CONMUTADOR TRAPEZOIDAL ............................................................................................. 83

FIGURA 58 DIAGRAMA A BLOQUES DEL DISEÑO DEL PWM SENOIDAL .............................................................................. 84

FIGURA 59 GRÁFICA DE CONMUTACIÓN SENOIDAL ....................................................................................................... 85

FIGURA 60 OBTENCIÓN DE LA POSICIÓN ANGULAR ....................................................................................................... 86

FIGURA 61 BLOQUE "SUMADOR" ............................................................................................................................. 87

FIGURA 62 VHDL DEL BLOQUE "SUMADOR" .............................................................................................................. 88

FIGURA 63 MACRO DE CÁLCULO CORDIC ................................................................................................................. 89

FIGURA 64 MULTIPLICADOR DE AMPLITUD POR SENO ................................................................................................... 89

FIGURA 65 CÓDIGO EN VHDL DEL MULTIPLICADOR_7_7 ............................................................................................. 90

FIGURA 66 BLOQUE "TOP2", GENERADOR DE ANCHO DE PULSO ..................................................................................... 91

FIGURA 67 DIAGRAMA GENERADOR DEL ANCHO DE PULSO SENOIDAL .............................................................................. 91

FIGURA 68 CÓDIGO VHDL DEL BLOQUE "REG_14" ..................................................................................................... 92

FIGURA 69 DIAGRAMA DEL GENERADOR DE PWM SENOIDAL ........................................................................................ 93

FIGURA 70 BLOQUE "PWM_COR", GENERADOR DE UN PWM SENOIDAL ......................................................................... 93

FIGURA 71 DIAGRAMA PARA GENERAR LOS TRES PWM SENOIDALES DEL SISTEMA ............................................................. 94

FIGURA 72 BLOQUE "CONMUTA_SENOIDAL", DECODIFICADOR PARA LA CONMUTACIÓN SENOIDAL ........................................ 95

FIGURA 73 IMPLEMENTACIÓN DEL DECODIFICADOR DE CONMUTACIÓN SENOIDAL .............................................................. 96

FIGURA 74 TRANSISTORES EN PUNTO MÁXIMO DE CONMUTACIÓN, EN LA CONMUTACIÓN SENOIDAL ...................................... 97

FIGURA 75 CONMUTADOR SENOIDAL ........................................................................................................................ 98

FIGURA 76 BLOQUE "CARGA_BOOTSTRAP" .............................................................................................................. 100

FIGURA 77 LÓGICA DEL BLOQUE "CARGA_BOOTSTRAP" .............................................................................................. 101

FIGURA 78 BLOQUE "CONMUTACIÓN", CONTENEDOR DE LA CONMUTACIÓN TRAPEZOIDAL Y SENOIDAL ................................ 102

FIGURA 79 DIAGRAMA GENERAL DE UN REGISTRO ELECTRÓNICO ................................................................................... 102

FIGURA 80 CIRCUITO PARA ESCRITURA, UN REGISTRO ................................................................................................. 103

FIGURA 81 CIRCUITO PARA LECTURA Y ESCRITURA DE DATOS, UN REGISTRO .................................................................... 105

FIGURA 82 MACRO IMPLEMENTADA DE CUATRO REGISTROS ........................................................................................ 105

FIGURA 83 MACRO DE CUATRO REGISTROS, SOLO ESCRITURA ....................................................................................... 106

FIGURA 84 IMPLEMENTACIÓN DE LA MACRO DE CUATRO REGISTROS .............................................................................. 107

FIGURA 85 BANCO DE REGISTROS IMPLEMENTADO .................................................................................................... 108

FIGURA 86 DIAGRAMA A BLOQUES DEL CONTROL DISTRIBUIDO IMPLEMENTADO .............................................................. 111

FIGURA 87 RELACIÓN ENTRE ANCHO DE PULSO Y CAMBIO EN LA REFERENCIA DE POSICIÓN ................................................. 111

Page 14: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

11

FIGURA 88 DIAGRAMA A BLOQUES DEL ALGORITMO DE CONTROL ................................................................................. 113

FIGURA 89 CONTADOR DE 32 BITS, ASCENDENTE DESCENDENTE ................................................................................... 114

FIGURA 90 IMPLEMENTACIÓN DEL CONTADOR DE 32 BITS ASCENDENTE-DESCENDENTE ..................................................... 115

FIGURA 91 BLOQUE RESTADOR DE 32 BITS PARA OBTENCIÓN DEL ERROR ........................................................................ 116

FIGURA 92 IMPLEMENTACIÓN EN VHDL DEL BLOQUE "RESTADOR_32B"....................................................................... 116

FIGURA 93 BLOQUE DE LA ACCIÓN PROPORCIONAL .................................................................................................... 117

FIGURA 94 IMPLEMENTACIÓN DE LA ACCIÓN PROPORCIONAL ....................................................................................... 117

FIGURA 95 IMPLEMENTACIÓN DEL MULTIPLICADOR 16X16 SATURANTE ......................................................................... 119

FIGURA 96 BLOQUE DE LA ACCIÓN DERIVATIVA ......................................................................................................... 120

FIGURA 97 IMPLEMENTACIÓN DE LA ACCIÓN DE CONTROL DERIVATIVA ........................................................................... 120

FIGURA 98 IMPLEMENTACIÓN DE LA ACCIÓN INTEGRAL ............................................................................................... 122

FIGURA 99 BLOQUE INTEGRADOR ........................................................................................................................... 122

FIGURA 100 IMPLEMENTACIÓN DEL BLOQUE INTEGRADOR .......................................................................................... 124

FIGURA 101 BLOQUE SUMA_PID .......................................................................................................................... 125

FIGURA 102 IMPLEMENTACIÓN DEL SUMADOR DE ACCIONES DE CONTROL ...................................................................... 126

FIGURA 103 EJEMPLO DE REINICIO DEL CONTADOR EN MODO VELOCIDAD ...................................................................... 128

FIGURA 104 CONTADOR A 32 BITS CON CARGA PARALELA ........................................................................................... 129

FIGURA 105 CONTADOR PARA MODO VELOCIDAD A BLOQUES ...................................................................................... 129

FIGURA 106 IMPLEMENTACIÓN DEL CONTADOR PARA VALOR DE REFERENCIA MODO VELOCIDAD Y POSICIÓN ......................... 130

FIGURA 107 IMPLEMENTACIÓN DEL COMPARADOR DE DESBORDE ................................................................................. 131

FIGURA 108 BLOQUE "TIME_VELOCIDAD" ............................................................................................................... 132

FIGURA 109 DIAGRAMA A BLOQUES DEL MÓDULO "TIME_VELOCIDAD" ......................................................................... 132

FIGURA 110 IMPLEMENTACIÓN DEL BLOQUE "TIME_VELOCIDAD" ................................................................................ 133

FIGURA 111 BLOQUE "CAMBIO_MODO" ................................................................................................................. 134

FIGURA 112 IMPLEMENTACIÓN DEL BLOQUE "CAMBIO_MODO" .................................................................................. 134

FIGURA 113 BLOQUE "VELOCIMETRO" GENERADO PARA MEDIR RPM .......................................................................... 135

FIGURA 114 DIAGRAMA A BLOQUES DEL BLOQUE "VELOCÍMETRO" ............................................................................... 136

FIGURA 115 OSCILOGRAMA DE LA SEÑAL DE VUELTA MECÁNICA GIRO ASCENDENTE. ......................................................... 136

FIGURA 116 OSCILOGRAMA DE LA SEÑAL DE VUELTA MECÁNICA GIRO DESCENDENTE ........................................................ 137

FIGURA 117 FLANCOS EN LOS QUE EL PRE DIVISOR CONSIDERA A UNA VUELTA MECÁNICA .................................................. 137

FIGURA 118 PRE DIVISOR PARA LA FUNCIÓN DE VELOCÍMETRO ..................................................................................... 138

FIGURA 119 ESQUEMA DE MEDICIÓN DEL INTERVALO PARA DETERMINAR VELOCIDAD ....................................................... 139

FIGURA 120 IMPLEMENTACIÓN DEL REGISTRO ASÍNCRONO .......................................................................................... 140

FIGURA 121 SEÑALES DE CONTROL DEL CONTADOR DE REVOLUCIONES .......................................................................... 141

FIGURA 122 GRÁFICA MUESTRA DE LA PRUEBA ESCALÓN............................................................................................. 142

FIGURA 123 IMPLEMENTACIÓN CAPTURA EN RÁFAGA ................................................................................................. 144

FIGURA 124 BLOQUE "CAPTURA" .......................................................................................................................... 145

FIGURA 125 DIAGRAMA A BLOQUES DE LA INTERFAZ DE POTENCIA ................................................................................ 146

FIGURA 126 DIAGRAMA ELÉCTRICO DEL AISLAMIENTO ELÉCTRICO DE LA INTERFAZ DE POTENCIA .......................................... 147

FIGURA 127 CONEXIÓN DEL ACCIONADOR DE COMPUERTAS DE LOS IGBT Y CAPACITORES DE ARRANQUE ............................. 148

FIGURA 128 IGBT´S CONECTADOS PARA FORMAR EL PUENTE H TRIFÁSICO ..................................................................... 149

FIGURA 129 DIAGRAMA A BLOQUES DE LA PROTECCIÓN PARA VERIFICACIÓN DE CONEXIÓN DE FASES ................................... 150

FIGURA 130 BLOQUE "VERIFICA_FASES" ................................................................................................................. 151

FIGURA 131 ESQUEMA PARA LA VERIFICACIÓN DE FASES ............................................................................................. 151

FIGURA 132 LÓGICA PARA LA OBTENCIÓN DE LA DIRECCIÓN REAL DE GIRO ...................................................................... 152

FIGURA 133 LÓGICA PARA VERIFICAR GIRO DE MOTOR ................................................................................................ 153

Page 15: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

12

FIGURA 134 DIAGRAMA DE LA PROTECCIÓN ERROR MÁXIMO ...................................................................................... 154

FIGURA 135 IMPLEMENTACIÓN EN LÓGICA DIGITAL DE LA PROTECCIÓN MÁXIMO ERROR .................................................... 155

FIGURA 136 FRECUENCIA MUESTREO Y LECTURA ....................................................................................................... 157

FIGURA 137 FILTRO DIGITAL, FILTRANDO RUIDO ........................................................................................................ 157

FIGURA 138 FILTRO DIGITAL, DETECTANDO QUE NO ES UN RUIDO ................................................................................. 158

FIGURA 139 MONOESTABLE DIGITAL MONITOREANDO UNA SEÑAL ................................................................................ 158

FIGURA 140 SEÑAL "A", DEL ENCODER EMULADO ..................................................................................................... 159

FIGURA 141 OSCILOGRAMA DEL RESULTADO OBTENIDO AL MULTIPLICAR LA RESOLUCIÓN DEL ENCODER EMULADO ................. 159

FIGURA 142 TREN DE PULSOS A LA SALIDA DEL BLOQUE "DIV_FREC" ............................................................................. 160

FIGURA 143 PWM TRAPEZOIDAL GENERADO ........................................................................................................... 160

FIGURA 144 OSCILOGRAMA DE LA CONMUTACIÓN TRAPEZOIDAL GENERADA ................................................................... 161

FIGURA 145 CONEXIÓN DE BOBINA EN LA CONMUTACIÓN TRAPEZOIDAL. ....................................................................... 161

FIGURA 146 FILTRO PASA BAJAS, PARA PRUEBA DE PWM SENOIDAL ............................................................................. 162

FIGURA 147 PWM SENOIDAL OBTENIDO ................................................................................................................. 162

FIGURA 148 BANCO DE PRUEBAS DESARROLLADO ...................................................................................................... 163

FIGURA 149 SINTONIZACIÓN Y RESULTADO DE SEGUIMIENTO DEL CONTROL A LA PRUEBA ESCALÓN ...................................... 164

FIGURA 150 SINTONÍA Y RESULTADO OBTENIDO EN EL CONTROL DE VELOCIDAD ............................................................... 165

FIGURA 151 FORMAS DE ONDA DE LA CORRIENTE TOTAL DE LA FUENTE HACIA EL MOTOR .................................................. 166

Page 16: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

13

Tablas TABLA 1 COMPARATIVA ENTRE MOTOR DE INDUCCIÓN Y MOTOR DE CAMPO PERMANENTE................................................... 21

TABLA 2 CODIFICACIÓN CONMUTACIÓN TRAPEZOIDAL .................................................................................................. 30

TABLA 3 PROBLEMAS Y EFECTOS DE LOS ARMÓNICOS .................................................................................................... 32

TABLA 4 COMPARATIVA DEL IGBT CONTRA EL BJT Y EL MOSFET .................................................................................. 42

TABLA 5 OPCIONES DE RESOLUCIÓN DEL CONVERTIDOR ANALÓGICO-DIGITAL ..................................................................... 53

TABLA 6 OPCIONES DE CONFIGURACIÓN OPERACIÓN ADS2S1210 ................................................................................. 53

TABLA 7 INTERFAZ CON EL CONVERTIDOR ANALÓGICO-DIGITAL ....................................................................................... 55

TABLA 8 DIVISIÓN DE FRECUENCIA ............................................................................................................................ 56

TABLA 9 CARTA DE CONMUTACIÓN BLDC BE341J ...................................................................................................... 77

TABLA 10 NÚMERO DE CUENTAS EN LAS QUE SE DEBE GENERAR EL CAMBIO DE POLARIDAD .................................................. 78

TABLA 11 RANGOS PARA CONMUTAR ........................................................................................................................ 79

TABLA 12 CONMUTACIÓN DISEÑADA PARA EL SISTEMA ................................................................................................. 80

TABLA 13 VALORES OBTENIDOS PARA IDENTIFICACIÓN DE FALLA EN EL ARRANQUE DE CONMUTACIÓN SENOIDAL ...................... 99

TABLA 14 TABLA DE VERDAD DEL REGISTRO DIGITAL ................................................................................................... 103

TABLA 15 LOCALIDADES INTERFAZ PC ..................................................................................................................... 109

TABLA 16 CANTIDAD DE VUELTAS NECESARIAS PARA CALCULAR NUEVO VALOR DE VELOCIDAD ............................................. 138

Page 17: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 1. Introducción

14

Capítulo 1.

Introducción

1.1 Aspectos Generales

El vehículo eléctrico representa la mejor alternativa fundamentada y avalada a nivel

mundial como transporte en la actualidad. Se debe considerar como un vehículo

eléctrico, a todo aquel vehículo capaz de desplazarse sobre ruedas, en el que su

propulsión sea obtenida por energía eléctrica, se incluyen los vehículos a baterías,

los vehículos híbridos y los vehículos con celdas de combustible. [1]

Los vehículos eléctricos (EV: Electric Vehicles), fueron inventados en 1834, durante

la última década del siglo XIX, muchas compañías produjeron vehículos eléctricos

en América, Gran Bretaña y Francia, pero existieron limitaciones, en cuanto a las

baterías principalmente, asociado al rápido avance en el vehículo de combustión

interna, logrando imponerse este último por su potencia, velocidad e independencia,

elementos que hacían sentir eficiencia al transportarse. Además que los recursos

naturales eran bastos y al ser un bien al cual no todos tenían acceso, no

representaba significativamente un impacto ambiental negativo en cuanto a sus

residuos. Al ser un negocio global en expansión fue fácil que grandes empresas

realizaran inversión para tener las suficientes estaciones de abasto de combustible

que demandaban estos vehículos, lo que generó una aceptación vertiginosa.

Fue esto el motivo para que el vehículo eléctrico desapareciera de la escena del

mundo en 1930. Sin embargo, con el paso de los años a nivel internacional,

existieron cambios de acuerdo a cómo la sociedad vivía su época, como ejemplo se

tiene que cercanos a los años setentas, algunos países obligados por las crisis

energéticas retomarán el interés en el vehículo eléctrico, es así como en 1976

Estados Unidos lanzó una ley pública para el desarrollo de autos eléctricos e

híbridos, observando que podrían ser rentables este tipo de vehículos y

demostrando al mundo que era esta línea el futuro del transporte a nivel mundial.

Sin embargo en ese tiempo continuaba la limitación en baterías ya que se lograban

rangos de conducción cortos y el costo de estos vehículos era muy alto, lo cual

restringió de nuevo la popularidad del vehículo eléctrico.

Page 18: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

15

Es así como algunos avances tecnológicos aplicados hasta los años 1990; como

son, tecnología en baterías, el desarrollo en control de motores y el avance en

electrónica de potencia, lo que hacen prometedor el desarrollo de vehículos

eléctricos de nuevo. En el inicio del siglo XXI muchos países se enfrentaron con el

cambio climático, crisis energéticas, contaminación y el alto interés que a nivel

mundial se da por el ambiente y la sustentabilidad, estos factores, en conjunto

generan la importancia y el porqué del gran crecimiento que ha tenido el vehículo

eléctrico en nuestros tiempos.

El avance tecnológico en el ramo de los vehículos eléctricos, converge con la mejora

en acumuladores o baterías de diferentes materiales y capacidades. Los tipos de

baterías con los que se han contado desde la invención del vehículo eléctrico

frenaron su comercialización y aprovechamiento de sus capacidades. Los

desarrollos en baterías de Ion-Litio que de igual manera se generaron en la década

de los noventa, son pieza clave para que los vehículos eléctricos sean viables como

medio de transporte, por factores como: su alta densidad de energía, alta tensión

por celda 3.6-3.7 V, no requieren mantenimiento, no tienen efecto memoria, bajo

efecto de autodescarga inferior al 10%, no es fabricada con productos tóxicos, ciclos

de vida entre los 400 a 1200 y con un mejor índice de seguridad. Sin embargo, estos

avances no pueden ser aprovechados, si no existe la electrónica capaz de controlar

los parámetros de buen funcionamiento de una batería. [2]

De igual manera que en las baterías, los recientes avances en los motores de

campo permanente sin escobillas, han hecho que estos motores tengan un

incremento en un gran espectro de aplicaciones tanto domesticas como en la

industria. Esto ha llegado a ser posible por su superior desempeño en términos

como alta eficiencia, respuesta rápida, precisión, peso ligero y control exacto,

además de ser altamente confiables y de libre mantenimiento.

El desarrollo de estos motores y su alto rendimiento ha sido gracias a diversos

factores: materiales de tierras raras en los campos permanentes, variadas formas

de construcción del motor, tecnología en sensores que los vuelve más precisos,

semiconductores rápidos para su operación, microelectrónica con alto rendimiento

a bajo costo, electrónica de potencia fiables y ligera además de nuevas filosofías de

control mucho más robustas y adaptables. [3]

Mencionado avance en baterías en conjunto con el motor de magneto permanente

sin escobillas de corriente continua (PMBLDC: Permanent Magnet Brushless Direct

Current), logran la sinergia que faltaba para que el vehículo eléctrico sea eficiente y

capaz de generar el torque, para impulsar un vehículo a consumo de energía viable,

siempre y cuando se tenga un buen control en el accionamiento del motor.

Page 19: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 1. Introducción

16

Dado que el motor PMBLDC es alimentado por baterías, es necesario accionarlo de

manera eficiente y segura, vigilando durante su operación el nivel de armónicos,

factor de potencia y temperatura.

El control para un motor PMBLDC con las características de voltaje y corriente, para

una aplicación de vehículo eléctrico, es complejo por factores como la adquisición

de datos del motor (corriente y voltaje en devanados, temperatura y posición del

rotor), la conmutación para hacer que realice su trabajo, las pérdidas en calor

generadas por mal accionamiento, entre otras. La eficiencia para este motor

PMBLDC en el propósito de un vehículo eléctrico se reflejará en el consumo de

energía, en el torque desarrollado en un vehículo y en una interfaz comprensible y

adaptable para cualquier usuario.

Con el panorama en mente, de cómo el vehículo eléctrico ha logrado su evolución,

este trabajo se propone desarrollar el controlador para motor PMBLDC como

tecnología ideal para la tracción de vehículos eléctricos, cuidando los parámetros

de funcionamiento y buscando el consumo eficiente de energía, atendiendo en todo

momento la velocidad a la que el usuario desee desplazarse.

El controlador senoidal da las facultades al sistema para obtener la mayor eficiencia

energética, ya que con este método las tres bobinas del motor están energizadas y

por tanto contribuyendo en la generación de torque, con el menor consumo de

potencia posible.

1.2 Estado del Arte

Como parte del estado del arte, se tiene al trabajo de Mohamed El Hachemi

Benbouzid y colaboradores [4], en el cual se busca hacer tolerante a fallas al

controlador de tracción de un vehículo eléctrico impulsado por motor de inducción,

considerando que son variadas las fallas que pueden afectar a la operación de un

controlador de motor eléctrico de inducción, especialmente en aplicaciones

automotrices como son vehículos eléctricos e híbridos donde los sistemas de control

deben ofrecer mayor fiabilidad y robustez en condiciones donde opera un vehículo.

Se considera al motor de inducción como el mejor candidato para la propulsión

eléctrica por su confiabilidad, robustez, bajo mantenimiento, bajo costo y la facilidad

de operar en ambientes hostiles, además de que hoy en día es la tecnología más

conocida y madura en el mercado en el que no se requiere de un conmutador.

Sin embargo, la anterior no es la mejor, ya que estos motores, como lo describe Ali

Emadi y colaboradores [5], pueden ser reemplazados con la nueva tecnología de

motores PMBLDC, resultando en un substancial ahorro de energía. La confiabilidad

es mayor, el mantenimiento es nulo, el control puede ser más fino y preciso ya que

este tipo de motor se comporta de forma lineal, por lo cual es suficiente el algoritmo

Page 20: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

17

de control proporcional integral, para la correcta compensación de velocidad y

torque; además de que se elimina la conmutación mecánica, con el inconveniente

de que su accionamiento es más costoso y complejo por la electrónica de potencia

involucrada.

Del trabajo Mohamed El Hachemi Benbouzid y colaboradores se desprenden los

requerimientos, que el controlador a desarrollar debe cubrir para una aplicación de

vehículo eléctrico:

Alta conversión de energía y alta transmisión de potencia.

Alto torque a baja velocidad para arranque o pendientes, así como alta

potencia a alta velocidad para velocidad crucero.

Muy alto rango de velocidades a torque sin risos y sin pérdida de potencia.

Respuesta de torque rápido.

Alta eficiencia entre los rangos de velocidad y torque.

Alta fiabilidad y robustez para operar en condiciones diversas a las que un

vehículo esté expuesto.

Costo razonable.

Obviamente estas características permiten el mayor aprovechamiento del banco de

baterías, reflejado en la extensión de la distancia de desplazamiento que el banco

de baterías permite y la disminución de tamaño y peso del motor.

Sin embargo, para lograr la producción de torque, altos rangos de velocidad y la

eficiencia esperada, para un vehículo eléctrico, es necesario accionar al motor

PMBLDC bajo el método de conmutación que permita obtener mencionado

desempeño.

Los dos métodos de conmutación permisibles para el PMBLDC, son descritos en el

trabajo de Steinbuch, M. [6], en el cual se describe que para obtener el mayor

rendimiento de estos motores es, conmutar con el método senoidal por las

siguientes razones:

Las tres fases del motor están conduciendo de manera constante.

La contante de torque y el consumo de potencia son más bajos.

Baja generación de armónicos.

El factor de potencia alto, se puede lograr a cualquier rango de velocidad.

Para lograr la conmutación senoidal, es crucial tener la información de la posición

absoluta del rotor, con el fin de producir las formas de onda en el voltaje,

sincronizadas con el desplazamiento del motor. Para obtener esta información, los

motores son equipados de sensores que codifican la posición angular de un eje a

Page 21: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 1. Introducción

18

un código digital como es el caso del encoder o a un código analógico como el caso

del resolver. [7]

Con lo cual se puede concluir, que el tema del vehículo eléctrico es actual y que

existen los medios para hacer que sean eficientes, con lo cual lograrían la

popularidad que se les ha negado por décadas. Además de que al observar, los

requerimientos que el controlador para esta aplicación, debe cumplir, es correcto

pensar en que la mejor alternativa es desarrollar el controlador eficiente para motor

PMBLDC y no para otro tipo de motor eléctrico. Eficiencia que se logrará al conmutar

bajo el esquema senoidal.

Después de analizar los algoritmos de control que se proponen para estos motores,

sobresale que, a pesar de existir nuevas teorías y métodos, el control Proporcional

Integral Derivativo, es el que mejor se ajusta para la regulación de velocidad,

contando con un sensor de posición absoluta.

1.3 Objetivos

1.3.1 Objetivo General

Regular la velocidad del motor PMBLDC empleando conmutación trapezoidal y

senoidal, realizando una comparación entre estos métodos para mostrar las

ventajas del método senoidal con respecto a torque, nivel de armónicos y factor de

potencia.

1.3.2 Objetivos Específicos

1. Diseñar e implementar el conmutador senoidal para motor PMBLDC.

2. Diseñar e implementar el conmutador trapezoidal para motor PMBLDC

3. Implementar la carta de conmutación para la decodificación del sensor de posición.

4. Diseñar e implementar circuitos de protección contra temperatura, corriente y fallas de conexión.

5. Crear interfaz de usuario para operación y monitoreo.

6. Implementar la etapa de potencia, con capacidad de aislamiento eléctrico entre la etapa de control y potencia, para la tensión eléctrica de 340 V.

7. Diseñar e implementar el control PID para regulación de posición y velocidad, haciendo uso de un solo módulo de control.

8. Realizar pruebas y evaluar el desempeño del sistema en un mecanismo.

Page 22: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

19

1.4 Justificación

En los últimos veinte años, el uso de vehículos eléctricos se ha incrementado

anualmente 13% en promedio [8], siendo el vehículo de combustible alternativo con

mayor crecimiento. Fabricantes como BMW, Chrysler, Ford, GM, Honda, Nissan,

VW, apuestan a esta tecnología, con autos 100% eléctricos ya en el mercado [9],

con promedio de ventas de 16 mil vehículos por año solo en Estados Unidos [10],

con estos datos en mente, este medio de transporte, representa a la nueva

generación de vehículos que se comercializarán a gran escala a nivel mundial,

principalmente motivado por el impacto ambiental, siendo viable por los avances en

tecnología de baterías, motores, electrónica de potencia y generación limpia de

energía eléctrica.

La principal motivación, de este trabajo de tesis en desarrollar el controlador de

velocidad con alta eficiencia para motores PMBLDC, es debido al nivel de impacto

que tendrán los vehículos eléctricos, no solo en el usuario final, más bien en la

abundante opción de trabajo que rodea al vehículo eléctrico, desde el diseño,

fabricación, venta y mantenimiento; ya que este controlador, será la llave para poder

lograr buen consumo de energía de los bancos de baterías, así como obtener el

mayor rendimiento del motor de tracción.

Es relevante el desarrollo de tecnología propia, en el controlador de velocidad para

vehículos eléctricos, ya que las aptitudes del vehículo se verán aumentadas o

disminuidas, tanto como el controlador lo autorice, o en este caso hasta donde el

diseñador lo faculté, lo cual lo convierte en la esencia de la nueva generación de

vehículos y a través del cual, se podrán hacer mejores trabajos a futuro como los

vehículos autodirigidos.

Además al desarrollar el controlador, se puede contribuir en la formación de

recursos humanos, capaces de comprender, mantener y aportar a esta tecnología,

y como máxime generar empresas que incursionen en este rubro a nivel nacional,

ya que para fabricar un vehículo de estas características o las autopartes, no se

requerirá de gran infraestructura.

Page 23: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

20

Capítulo 2.

Fundamentos Teóricos

2.1 Introducción

En este capítulo, se describe al sensor absoluto de posición que es necesario para

el desarrollo de esta aplicación, así como el principio de funcionamiento, y teoría

que avala el por qué este desarrollo se realiza con este dispositivo y algoritmos.

Se selecciona como el óptimo motor para esta aplicación, al motor sin escobillas,

debido a su alta eficiencia en comparación con los motores de inducción y de campo

permanente con escobillas.

Sin embargo, el motor sin escobillas no contiene los medios mecánicos,

denominados escobillas, para generar el cambio de polaridad en las bobinas para

hacer que el rotor gire, debido a esto, es por medio de la electrónica que se logra

este cambio de polaridad, por lo cual se requiere de sensores internos en el motor

que permitan conocer en qué momento se debe cambiar la polaridad.

El cambio de polaridad, mayormente conocido como conmutación, se puede realizar

de dos tipos: la conmutación trapezoidal y la conmutación senoidal; sin embargo,

existe suficiente teoría que sustenta a la conmutación senoidal, como el método

más eficiente, con el único inconveniente de ser más complejo y costoso de

implementar. [6] [11] [12]

La forma senoidal, se logra a través de generar una senoide por medio de

modulación de anchos de pulso (PWM: Pulse Width Modulation), calculando en

tiempo real la forma de acuerdo a la posición en la que se encuentre el rotor, por tal

motivo se requiere de un sensor de posición absoluto dentro del motor, en esta

aplicación se utiliza el sensor “Resolver”, el cual puede calcular, la posición angular

del rotor con la precisión necesaria, para generar la senoide.

Para poder regular la velocidad, se utiliza el algoritmo de control proporcional

integral derivativo, considerando como el método más eficiente y menos costoso en

cuanto a recursos de hardware.

Page 24: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

21

Para lograr la interfaz, entre la lógica y el motor, se define al puente H trifásico, con

transistores bipolares de potencia de compuerta aislada, con características de

voltaje y corriente, capaces de soportar la dinámica del motor.

También se requiere de la interfaz, con la que el usuario pueda interactuar con el

sistema, la cual se desarrolla sobre plataforma gráfica para hacerla más

entendible por el usuario.

2.2 Motor de Eléctrico

Para comprender qué tipo de motor es el que mejor se adapta a las necesidades de

la aplicación, se debe tener en cuenta el siguiente análisis.

Debe entenderse como motor eléctrico una máquina que realiza la conversión de

energía eléctrica de entrada en energía mecánica de salida, presentando pérdidas

de energía en dicha transformación, es decir no tiene comportamiento ideal, debido

a fricción e inercia así como la misma oposición interna de magnetos a generar el

movimiento.

Entre las variantes de motores se encuentra los de corriente alterna y corriente

directa, estos últimos están diseñados para desarrollar máximo torque desde la

primera revolución, y la regulación de velocidad, se puede realizar limitando el

voltaje de entrada, además de ser compactos, lo cual los convierte en los mejores

actuadores para aplicaciones precisas, como lo son aplicaciones mecatrónicas. [13]

En la Tabla 1, se muestra la comparativa entre el motor de inducción de corriente

alterna y el motor de campo permanente de corriente directa, encontrando que este

último tiene ventajas que lo hacen sobresalir para la aplicación de vehículo eléctrico.

Tabla 1 Comparativa entre motor de inducción y motor de campo permanente

Característica Motor de Inducción Motor de campo magnético permanente

Corriente al arranque Es muy elevada Igual a la de operación continúa

Tamaño Grande Reducido

Torque Mínimo en el arranque Máximo desde la primer RPM

Disipación de calor Ineficiente Eficiente

Eficiencia energética Baja Alta

Tipo de control No lineal Lineal

Complejidad de controlar Muy alta Alta

Ruido Demasiado Mínimo

Costo Bajo Alto

Page 25: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

22

Una de las ventajas más relevantes de los motores de campo permanente, es que

la corriente al arranque es igual a la de operación lo cual, permite que el torque

pueda ser máximo desde la primer revolución elevando la eficiencia energética,

además de ser silenciosos.

2.2.1 Motor convencional de corriente continua con escobillas

Un motor de este tipo, como se puede observar en la Figura 1, consiste en un rotor

embobinado el cual puede rotar dentro del campo magnético generado por los

imanes en el estator, debido a las fuerzas de atracción y repulsión entre cargas

electromagnéticas. [14]

Figura 1 Estructura del motor convencional de DC

Estas cargas electromagnéticas, se interpretarán como polos, norte (N) y sur (S).

Se realiza la conexión de la bobina por medio de anillos, como se puede observar

en la Figura 2. Los anillos generan un punto donde se puede manipular por medios

externos la energía en la bobina, al ser montada en una flecha, este punto es

conocido como conmutador.

Page 26: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

23

Figura 2 Conmutador del motor convencional de DC

La finalidad de este conmutador se puede apreciar en la Figura 3; cuando la bobina

se energiza por primera vez, se tiene al polo norte en la bobina con el polo norte en

el estator al igual que, el polo sur de la bobina con el polo sur del estator, esto

generará fuerza de repulsión, que a su vez originará que el rotor se mueva en

sentido contrario a las manecillas del reloj.

Una vez que el polo norte de la bobina se encuentre con el polo sur del estator y el

sur de la bobina con el norte del estator, el movimiento se verá detenido porque se

ha encontrado un punto de equilibrio electromagnético, en este instante hay que

cambiar las polaridades en la bobina para que el rotor pueda de nuevo tener

movimiento, a este proceso se le conoce como conmutación.

El conmutador en este instante, genera un corto en la bobina para poder

desenergizar, lo que comúnmente se observa como una chispa en la operación de

los motores, inmediatamente después de la desenergización, a la bobina se le

coloca la polaridad de tal manera que no concuerden los polos entre bobina y

estator, para generar de nuevo las fuerzas de atracción repulsión, en caso de que

la polaridad continúe igual que la conmutación anterior, el motor rotará en el mismo

sentido, de lo contrario este cambiará de sentido de giro.

La chispa generada por el cambio de la conexión, se traduce en pérdidas de energía

lo cual no es lo mejor, si se piensa en una aplicación de vehículo eléctrico en la que

la fuente de energía es limitada.

Page 27: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

24

Figura 3 Función del conmutador a) primer energizado b) polaridades iguales c) conmutación

Dentro de los motores de corriente directa se encuentran los motores de campo

permanente sin escobillas, los cuales son considerados comercialmente como los

mejores motores para la aplicación de tracción eléctrica, debido a su alta eficiencia

en cuanto a cantidad y aprovechamiento de la energía que demanda a la fuente,

que lo esté alimentando. [15]

2.2.2 Motor de campo permanente sin escobillas

A principios y mediados de los años noventa, en la industria era repetitivo escuchar

de estos motores, como los más pequeños, rápidos y fuertes. Ya que con la nueva

generación de motores sin escobillas de DC se obtiene lo siguiente [12]:

• Mayor rendimiento.- El bajo nivel de inercia del rotor da como resultado

mayor velocidad y aceleración.

• Alta confiabilidad y bajo mantenimiento.- Sin escobillas que se desgasten.

• Disipación de calor superior a los motores de inducción.- Las bobinas se

montan en un disipador de calor (estator).

• Reducción de las emisiones por interferencia electromagnética (EMI:

ElectroMagnetic Interference).- Eliminación del arco en conmutador de

escobillas.

• Alta potencia en relación del tamaño.

El motor PMBLDC está diseñado para tener un desempeño similar a los motores de

corriente directa con escobillas, pero sin las limitaciones y pérdidas de energía que

genera la conmutación mecánica.

El motor sin escobillas aplica el principio de la ley de Lenz, la cual indica que si un

conductor por el que circula una corriente eléctrica se encuentra dentro de la acción

de un campo magnético, por la interacción entre los campos magnéticos naturales

con los inducidos en el conductor éste tiende a desplazarse perpendicularmente a

Page 28: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

25

las líneas de acción del campo magnético, la fuerza que produce este

desplazamiento se conoce como fuerza electromotriz. Con esta fuerza electromotriz

se realiza el giro continuo (sin ningún contacto con las bobinas en el estator) del

servomotor sin escobillas.

Para comprender al motor sin escobillas a partir de un motor de corriente directa,

se debe comenzar por eliminar el embobinado en el rotor, ya que en el diseño de

estos motores, como se puede observar en la Figura 4, los imanes permanentes

que se tenían en el estator ahora son colocados en la parte rotatoria del motor y los

embobinados se colocan en el estator para generar los polos de conmutación.

Esto significa que para poder conmutar la energía en la bobina, se requiere conocer

la posición del rotor por medio de algún sensor de posición, que permita conocer

con exactitud los puntos en los que la bobina tiene que cambiar de polaridad.

Figura 4 Estructura del motor de campo permanente sin escobillas, monofásico

El motor a utilizar en esta aplicación es el PMBLDC trifásico, por lo cual como

estructura básica se tiene tres bobinas en el estator, generando los polos

electromagnéticos en el estator para generar la fuerza mecánica que hace girar al

rotor, estas bobinas se encuentran divididas en el estator de forma tal, que se

aprovecha al máximo su energía cuando son polarizadas. [16]

Page 29: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

26

Figura 5 Configuración básica BLDC a tres fases, y dos polos en imán permanente

Como lo muestra la Figura 5, la bobina de la fase “A” se encuentra en dos secciones,

en la sección superior del estator se encuentra la parte positiva y en la parte inferior

la parte que se conecta a la polaridad negativa; así se encuentra la distribución de

las bobinas de las 3 fases, a cada sección de la bobina se le conoce como polo.

Los motores PMBLDC entre las tres fases, forman un embobinado trifásico con

conexión tipo estrella, Figura 6; todas las fases son conectadas en un punto en

común [17].

Figura 6 Conexión característica de las bobinas en el motor BLDC

Conociendo la configuración de la conexión estrella que representa al motor, se

puede conocer el sentido para realizar la polarización de las bobinas de las fases

Page 30: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

27

en un lapso de tiempo y con secuencia determinada; a manera de ejemplo, para

realizar un giro, se debe de seguir la secuencia de la trayectoria 1,2 y 3, mostrado

en la Figura 7, donde se observa que la primer conmutación es con las bobinas “A”

en positivo y “B” en negativo, para continuar el giro una fase debe mantener su

polaridad y la otra a conectar es la que puede cambiar de polaridad, en este caso la

segunda conmutación mantiene a “B” en negativo y la bobina “C” es polarizada

positivamente, para continuar el giro en la conmutación 3 se mantiene a “C” positiva

y “A” se vuelve negativa, y así cíclicamente hasta terminar 6 pasos de conmutación,

que es cuando las polaridades se repetirían, a este ciclo de los 6 pasos de

conmutación se le conoce como vuelta eléctrica.

Figura 7 Secuencia de polarización de las bobinas para producir que el rotor gire

La vuelta mecánica del motor BLDC, se considera como el desplazamiento que

genera el rotor en dar una vuelta completa, si está conectado a un mecanismo este

dará un giro completo.

Dependiendo de la cantidad de polos de los que esté construido el motor BLDC, se

determina cuantas vueltas eléctricas son necesarias para que el rotor de una vuelta

mecánica, a manera de ejemplo, supóngase un motor de 4 polos, es decir bifásico,

este tendrá que dar dos vueltas eléctricas para generar una vuelta mecánica.

En los motores PMBLDC su accionamiento no es simple, como es el caso de los

motores con escobillas, que es suficiente con solo conectarlos a la fuente energía

para que se muevan. La polaridad en las bobinas está definida por la posición del

rotor por lo tanto debe existir un sistema de electrónica digital, que este conmutando

de acuerdo a lo que el sensor de posición retroalimente. A este tipo de conmutación

se le conoce como conmutación electrónica.

Page 31: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

28

Con una confiabilidad mejorada y costos cada vez menores, la industria ha centrado

su atención en los problemas provenientes con los motores sin escobillas, como

son:

• Rizado en el torque.- El torque variará en función de la posición del eje del

motor, ocasionando ondulación del toque generado, debido a la conmutación

a 6 pasos con conmutadores trapezoidales.

• Sensores de efecto Hall – Los sensores usualmente utilizados para conocer

los puntos de conmutación pre ensamblados en el motor, son los de efecto

Hall, en el ensamble es imposible la perfección generando tolerancias de

alineación y de histéresis para reducir el rebote de señal u oscilación,

reduciendo la eficiencia de conmutación.

Juntos el rizo en el torque con las deficiencias de los sensores de efecto Hall,

produce que el desempeño del torque de un motor PMBLDC, se reduzca en 15% a

20%. Para hacer frente a estos problemas se requería otra forma de conmutación

del motor, y conmutar sin sensores de efecto Hall. La respuesta fue la conmutación

sinusoidal y sensores absolutos. [12]

2.3 Conmutación Electrónica

El conmutador electrónico realiza la inversión del flujo de la corriente en las bobinas

del estator, en la secuencia determinada por la vuelta eléctrica, para que el motor

BLDC pueda realizar un movimiento giratorio en la misma dirección.

2.3.1 Conmutación Trapezoidal

La conmutación trapezoidal se caracteriza por tener dos fases en operación del

motor y una fase desconectada para que se libere la energía almacenada en esta,

en cada punto de conmutación la combinación de conexión en las fases cambia, de

acuerdo a la codificación de los sensores de efecto “Hall”, los cuales determinan en

qué puntos se debe realizar la conmutación.

La conmutación trapezoidal es la más redituable en cuanto a sencillez de

accionamiento y gasto de recursos. Y perfecta para aplicaciones de alta velocidad,

donde el motor y la mecánica puedan eliminar el rizo en el torque que se produce

durante la conmutación de una fase a otra. [18]

El sensor de efecto Hall, sonda Hall o simplemente sensor Hall, opera en base al

efecto Hall, el cual se utiliza para la detección de presencia de campos magnéticos.

Estos sensores tienen la característica que, al detectar la polaridad positiva del

campo magnético, generan una señal lógica de en valor alto (1 en valor binario) y

cuando detectan la polaridad negativa generan la señal digital en bajo (0 en valor

binario). [19]

Page 32: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

29

En la Figura 8 se describen las formas de onda de las señales de voltaje del motor,

corriente y sensores Hall, correspondiente con el ángulo del rotor del motor BLDC.

Típicamente la mayoría de motores BLDC se fabrican con tres sensores Hall

integrados, colocados 120 grados uno del otro. Esto proporciona las señales

digitales necesarias para el decodificador, con el fin de determinar la posición del

rotor en intervalos de 60 grados eléctricos.

La colocación de los sensores Hall cada 120 grados es la configuración más popular

debido a que, en condiciones normales, nunca genera los códigos en la que los tres

sensores tengan su salida lógica en alto o bajo simultáneamente. Esto significa

códigos binarios 111 o 000 son inválidos y esto permite un mecanismo de detección

de fallos más fácil, en caso de que los sensores fallen. [20]

Figura 8 Voltaje en cada fase, forma de onda de corriente y codificación de sensor Hall con respecto al ángulo eléctrico del rotor

La información dada en la Figura 8, puede ser fácilmente presentada en forma de

tabla de conmutación de seis pasos para el inversor de 3 fases, como se muestra

en la Tabla 2. En esta tabla se proporciona la secuencia adecuada de excitación de

las fases del motor con respecto al código binario generado a partir de 3 sensores

Hall. Diseñar la tabla de conmutación correcta es fundamental para desarrollar el

decodificador de conmutación de 6 pasos para accionar el motor de manera

eficiente, así como para asegurarse de que el voltaje es suministrado a la fase

adecuada el tiempo de duración justo.

Page 33: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

30

Tabla 2 Codificación conmutación trapezoidal

Sensores Hall Fases el motor

HA HB HC FASE A FASE B FASE C

1 1 0 Apagada + -

0 1 0 - + Apagada

0 1 1 - Apagada +

0 0 1 Apagada - +

1 0 1 + - Apagada

1 0 0 + Apagada -

Para mayor claridad de la convención, el signo + en la Tabla 2 significa que el voltaje

a suministrar en cada fase es positivo, además de corriente positiva, y el signo -

significa que el voltaje suministrado es negativo, suministrando así corriente

negativa en la fase. Apagada significa que el voltaje suministrado es cero en la fase.

En resumen, la polarización se realiza en 2 fases con polaridad distintas positiva y

negativa, y una tercera fase se mantiene desconectada para que libere su energía,

y pueda ser utilizada en la siguiente secuencia de polaridad, requerida para

continuar el giro, el energizado e inversión de la polaridad en las bobinas del estator

se realiza por medio de la interfaz de potencia, que consiste en un puente H trifásico.

2.3.2 Conmutación Senoidal

En la conmutación senoidal durante la dinámica del motor, siempre las tres fases

están conduciendo y contribuyendo para la producción de torque, generando menor

consumo de potencia, reduciendo el nivel de armónicos, reduciendo el ruido

electromagnético, además de reducir e incluso llegar a eliminar los rizos en la

corriente, reflejados en la producción de torque. [6] [11] [12]

La conmutación sinusoidal es la mejor para bajas velocidades, o aplicaciones de

control de motores lineales, donde el rizo en el torque del motor debe ser

minimizado. Puesto que la corriente en las fases del motor es suministrada en forma

de ondas senoidales, el torque desarrollado por el motor es suave y tiene ondulación

mínima. [18]

Este tipo de conmutación, solo es posible cuando existe la suficiente resolución en

la medición de la posición del rotor para crear una senoide lo más fiel a la

fundamental, ya que la corriente en las fases es en función de la posición del rotor,

de aquí, la necesidad de un sensor de posición absoluto, que al medir el ángulo del

rotor pueda determinar la posición, y producir la retroalimentación para el bloque de

control. [21]

Page 34: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

31

2.3.3 Torque constante a partir de la conmutación senoidal

La conmutación senoidal provee del óptimo torque constante, con el inconveniente

de los altos requerimientos de la retroalimentación de posición, y la dificultad de

implementar el algoritmo en el hardware dedicado. [21]

Es posible obtener torque constante con esta conmutación, gracias a que la

corriente y el voltaje se defesan de igual manera 120°, como se muestra en la

Ecuación 1. El por qué la producción del torque puede ser constante, se muestra en

la referencia [6].

𝑇 = 𝐾𝑡(𝐼𝑎𝐸𝑎𝑠𝑖𝑛(𝜃)𝑠𝑖𝑛(𝜃) + 𝐼𝑏𝐸𝑏𝑠𝑖𝑛 (𝜃 +2𝜋

3) 𝑠𝑖𝑛 (𝜃 +

2𝜋

3)

+ 𝐼𝑐𝐸𝑐𝑖𝑛 (𝜃 −2𝜋

3) 𝑠𝑖𝑛 (𝜃 −

2𝜋

3))

( 1)

De manera simplificada se tiene lo mostrado en la Ecuación 2, donde, en el torque

que produce el motor se ve afectado solamente por su constante de torque, y por la

corriente que consume.

𝑇𝑡 = 3

2 𝐾𝑡𝐼𝑡

( 2)

2.3.4 Armónicos

Los armónicos son corrientes o voltajes, con frecuencias que son múltiples enteros

de la frecuencia fundamental, como se muestra en la Figura 9. Por ejemplo si la

frecuencia fundamental es 60 Hz, entonces la segunda armónica es 120 Hz, la

tercera es 180 Hz, etc.

Page 35: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

32

Figura 9 Señal con armónicos

Los armónicos son creados por cargas no lineales, que despliegan pulsos abruptos

de corrientes en lugar de una senoidal. Estos pulsos causan distorsión en la forma

de onda de corriente, la cual en el retorno causa armónicos de corriente por flujo en

otras partes del sistema de potencia.

En plantas industriales, la causa más común de armónicos son cargas trifásicas no-

lineales, las cuales incluye controladores de motores, y fuentes de poder

ininterrumpidas (UPS sin corrector de factor de potencia). [22]

Algunos de los problemas que ocasionan los armónicos, se listan en la Tabla 3. [23]

Tabla 3 Problemas y efectos de los armónicos

ELEMENTO PROBLEMA EFECTO

Conductor • Aumento de la corriente

• Aumento de perdidas térmicas

(efecto Joule)

• Calentamiento cables

(deterioro)

• Disparo de protecciones

Conductor de

Neutro

• Circulación armónicos múltiplos de 3

• Retorno por el conductor de neutro

• Sobreintensidad por el neutro

• Calentamiento del neutro

• Degradación prematura

• Disparo de protecciones

Condensador • Resonancia paralelo con el sistema

• Amplificación de los armónicos

• Calentamiento condensadores

• Envejecimiento prematuro de

condensadores

• Destrucción de condensadores

Page 36: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

33

Maquinas

Eléctricas

• Circulación de corrientes armónicas

por los devanados y tensiones

armónicas en bornes

• Sobrecalentamiento y perdida

de aislamiento térmico (efecto

Joule)

• Aumento perdidas magnéticas

(por Histéresis y Foucault)

• Desclasificación

(Transformador)

• Vibraciones en el eje, desgaste

mecánico en rodamientos y

excentricidades (motores)

Equipos de

Medida y Control

• Medidas no válidas

• Errores en procesos de control

• Valores de magnitudes

incorrectas

• Interferencias con sistemas de

comunicación y control

• Error en los instantes de disparo

de tiristores

Los armónicos pueden eliminarse utilizando cargas lineales, como lo es el motor

PMBLDC, en las cuales se desplieguen pulsos de corriente en forma senoidal, lo

más apegado a la forma de onda senoidal fundamental, mostrada en la Figura 9, el

medio para generar la forma de estos pulsos de corriente, es con la conmutación

senoidal.

2.3.5 Factor de potencia

El factor de potencia es el indicador sobre el correcto aprovechamiento de la

energía, técnicamente es la cantidad de energía eléctrica que se ha convertido en

trabajo. Si al medir las corrientes y tensiones en la carga son señales perfectamente

sinusoidales, el factor de potencia es igual a cos ϕ, en caso de no ser perfectas el

rango de valores para este indicador, está comprendido entre 0 y 1.

En motores y transformadores un factor de potencia cercano a la unidad significa

que la energía reactiva, correspondiente a la energía necesaria para crear los

campos magnéticos, es pequeña comparada con la energía activa, que

corresponde a la potencia que se transforma íntegramente en energía mecánica y

en calor, dimensionada en Watts, es decir, existe eficiencia en la transformación de

energía.

Un factor de potencia alto, permite la optimización de los diferentes componentes

de una instalación y aprovechamiento de energía, entre las ventajas se tiene [24]:

Reducción de la sección de los cables

Page 37: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

34

Reducción de las pérdidas en cables Reducción de las caídas de tensión Aumento de la potencia disponible

2.4 Modulación por ancho de pulso

La modulación por ancho de pulso (PWM: Pulse-Width Modulation), es la técnica

utilizada para variar la energía que se suministra a una carga, utilizando una

combinación entre los estados “conexión” y “desconexión”, para obtener en la carga

un promedio de voltaje con el cual se energiza.

En esta aplicación, la variación de voltaje es la forma que se tiene para variar la

velocidad a la que gira el motor PMBLDC, es entregado un promedio de voltaje de

la fuente de alimentación con esta técnica ya que es eficiente y a la velocidad que

se realiza la conmutación, el motor no observa los cambios entre conexión y

desconexión.

Además, el ancho de pulso modulado, es una de las técnicas más utilizadas en

aplicaciones que requieren conversión de DC a AC, o mejor conocida como

inversor, aplicaciones como son:

Posicionamiento de motores

Variadores de velocidad

Filtros activos.

El PWM, como se puede observar en la Figura 10, consiste en generar un periodo,

que podrá ser repetitivo, por medio de dos pulsos rectangulares de tamaño definido

por el diseñador, con la capacidad de estar en alto por un tiempo T1 o ciclo de

trabajo activo, que será el tiempo que el motor estará conectado a la fuente

alimentación y un estado bajo T2 que el motor lo que verá será la desconexión.

Repitiendo este periodo por unidad de tiempo es lo que se conoce como tren de

pulsos.

Figura 10 Estructura del ancho de pulso modulado

Page 38: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

35

Con esta técnica de conexión y desconexión es como se logra, que el motor

experimente un promedio del voltaje de su fuente de alimentación, por ejemplo: Si

el accionamiento del motor, se va a realizar con una fuente de alimentación que

suministre 120 volts, pero se desea que el motor solo aprecie 72 volts, es decir el

60% del voltaje de la fuente, entonces el PWM que se debe generar debe tener

como T1, el 60% del periodo y T2 el 40% del periodo restante.

En esta aplicación, para regular el voltaje en la conmutación electrónica, es

necesario generar tren de pulsos con forma senoidal, el cual se logra variando el

ciclo de trabajo en el PWM de acuerdo al punto donde se encuentre el motor.

Surge entonces la necesidad, de conocer como variar la amplitud del ciclo de trabajo

en el periodo de un PWM, se puede explicar cómo hacerlo apoyados en la Figura

11, en la cual se observa que se requiere:

Determinar la frecuencia de trabajo del ancho de pulso, es decir, determinar

el tiempo que se desee dure un periodo del PWM, este parámetro una vez

calculado e implementado, no es necesario modificarlo.

El periodo que es el tamaño de un solo ancho de pulso, está determinado por

la cantidad de bits con la que se cuente para crearlo, entre más bits se

tengan, crece la resolución del PWM y por tanto se puede generar una

senoide más apegada a la forma ideal.

Una vez determinado el periodo, el único valor que se modifica es el tamaño

del ciclo de trabajo activo T1, para lo cual se necesita un contador y un

comparador.

El contador realiza la cuenta de 0 hasta el valor máximo permisible en el periodo, y

el T1 es el valor a comparar, cuando el contador este en cero el ancho de pulso se

pone en activo alto generando el ciclo de trabajo activo, cuando el valor del contador

Tamaño del ciclo de trabajo (T1)

Comparación

Periodo Frecuencia

PWM

Figura 11 Diagrama a bloques para la variación del ciclo de trabajo en el PWM

Page 39: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

36

es igual al valor de T1, el ancho de pulso sufre un cambio al estado bajo generando

T2, y se mantendrá esta condición hasta que el contador vuelva a ser cero, es decir,

cuando cruce por el máximo valor del periodo y tenga un reinicio.

A manera de ejemplo, se desea un ciclo de trabajo del 25% a la frecuencia deseada

de diez y seis segundos por cada periodo, y los bits con los que se cuenta para

generarlo son cuatro, por tanto el contador tendrá como cuenta máxima, de cero a

diez y seis valores, valor determinado por la cantidad de bits disponibles.

En este caso particular, el periodo tendrá la duración en total de diez y seis

segundos, con lo cual el mínimo T1 durará un segundo, de acuerdo a lo calculado

en la Ecuación 3. Si se desea un ciclo de trabajo del 25%, implica que el PWM debe

permanecer activo durante cuatro cuentas, que significan cuatro segundos, e

inactivo durante las restantes doce.

T1 mínimo =Duración del periodo

𝐶𝑢𝑒𝑛𝑡𝑎 𝑚á𝑥𝑖𝑚𝑜 =

16 𝑠𝑒𝑔𝑢𝑛𝑑𝑜𝑠

16 𝑣𝑎𝑙𝑜𝑟𝑒𝑠= 1 𝑠𝑒𝑔𝑢𝑛𝑑𝑜

( 3)

El comparador debe estar observando al contador, ya que mientras se lleve a cabo

la cuenta de cero a cuatro, el ancho de pulso se pone en activo alto y en cuanto se

dé la igualdad de cuatro el pulso debe pasarse a activo bajo y así se mantendrá de

la cuenta cinco a la dieciséis, en cuanto se genere el reinicio del contador a cero,

automáticamente el PWM será puesto a activo alto para generar el siguiente

periodo, de esa forma reiterativamente se realizará este pulso hasta que el tamaño

de T1 cambie.

2.5 Formación de la senoide empleando PWM En lugar de mantener igual el ancho de todos los pulsos, se hace variar el ancho de

cada pulso en proporción con la amplitud de una onda senoidal, esta modulación es

la que se suele usar en aplicaciones industriales. Se puede modificar el voltaje que

recibe el motor variando el índice de modulación, se puede decir que el área de

cada pulso corresponde, en forma aproximada, al área bajo la onda senoidal. [25]

Para generar la senoide buscada en la conmutación, el PWM además de variar su

amplitud debe ser capaz de modificar su forma, esto se logra por medio de la

Ecuación 4, donde A es la amplitud y 𝜃 es la posición del rotor, se puede observar

que la forma del PWM, es multiplicada por su amplitud, para generar un solo pulso

contenedor de ambas funciones.

𝑃𝑊𝑀 𝑠𝑒𝑛𝑜𝑖𝑑𝑎𝑙 = 𝐴(𝑆𝑒𝑛 𝜃) ( 4)

En la Figura 12, se observan los componentes requeridos para generar la función

𝑆𝑒𝑛 𝜃 en esta aplicación, la posición angular del motor tiene el papel fundamental

Page 40: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

37

ya que dependiendo de su valor, la forma va a sufrir un cambio, generando un nuevo

cálculo del seno.

El cálculo del seno, debido a que el hardware de implementación solo cuenta con

operaciones matemáticas básicas, se realiza con el algoritmo de computadora

digital para rotación de coordenadas (CORDIC: COordinate Rotation DIgital

Computer).

La multiplicación que dará el dato final para la generación del PWM, se debe realizar

en tiempo real, ya que en cuanto cambie la posición del rotor la forma debe ser

ajustada inmediatamente. Por ende se requiere conocer la posición del rotor en todo

momento, de aquí la necesidad de utilizar un sensor absoluto de retroalimentación.

Figura 12 Diagrama a bloques para generar el PWM senoidal

2.5.1 El Algoritmo CORDIC

La técnica del computado CORDIC fue desarrollada, especialmente para el uso en

sistemas digitales operados en tiempo real, donde la mayoría de los cálculos

implican intervalos, teniendo en memoria valores aunados a relaciones

trigonométricas, se puede obtener una solución de ecuaciones más complejas,

realizando transformaciones de coordenadas. El algoritmo original fue propuesto

por Jack Volder en el año 1959. [26]

El algoritmo CORDIC proporciona un método iterativo para rotar vectores ciertos

ángulos determinados y se basa exclusivamente en sumas y desplazamientos, lo

cual lo hace el algoritmo más eficaz para el hardware que se utilizará en esta

aplicación.

Page 41: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

38

2.6 Generación de senoide con ángulo de desfase El motor a trabajar es trifásico, por ende para poder realizar la conmutación

senoidal, se debe considerar que las fases del motor se comportan como se muestra

en la Figura 13, observando que si se tomará la fase B-A como referencia, la fase

A-C está desfasada 120°, y la fase C-B está desfasada 240°. Por tanto existe el

desfasamiento de 120° ente ellas.

Además para dar una vuelta eléctrica se requieren seis pasos de conmutación, en

cada paso de conmutación las fases deben contar con su propia amplitud y forma,

lo cual genera que cada fase debe tener su propio cálculo en tiempo real de PWM.

Figura 13 Vuelta eléctrica del motor PMBLDC y sus pasos de conmutación

Tomando en consideración estos detalles, la Ecuación 4 debe calcularse por cada

fase, además de sufrir un cambio para considerar el desfasamiento descrito, lo cual

crea la Ecuación 5, en donde 𝜑 tomará el valor de cada desfasamiento.

𝑃𝑊𝑀 𝑠𝑒𝑛𝑜𝑖𝑑𝑎𝑙 = 𝐴(𝑆𝑒𝑛 𝜃 + 𝜑) ( 5)

2.7 Sensor de posición angular absoluto

La retroalimentación del motor en este sistema, se realiza por medio del sensor

“resolver”, el cual es un tipo de sensor de posición angular absoluto analógico, y

trabaja a razón de la variación de conducción electromagnética.

Page 42: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

39

La variación de electromagnetismo, así como la variación de la reactancia de un

componente o circuito, ofrecen alternativas de medida a las disponibles en sensores

resistivos. Muchas de ellas no requieren contacto físico con el sistema donde se va

a medir, o bien tienen un efecto de carga mínima. En concreto, ofrecen soluciones

mejores para mediciones de desplazamientos lineales y angulares, en el caso de

tratar con materiales ferromagnéticos, y para las medidas humedad.

Si en un transformador uno o varios de los devanados pueden desplazarse, linear

o angularmente, respecto a los demás, variando el acoplamiento entre primario y

secundario, es decir, la inductancia mutua entre ellos, también variará la amplitud

de tensión inducida en los devanados.

Los “resolvers” o “resolucionadores” son un tipo de transformador variable, con

devanados dispuestos formando un ángulo de 90° en el estator y en el rotor. En los

llamados generadores de seno y coseno, como el utilizado en esta aplicación

mostrado en la Figura 14, hay un devanado en el rotor actuando de primario y dos

devanados en el estator actuando de secundario. [27]

Figura 14 Generador de seno y coseno. El rotor actúa de primario y los dos devanados del estator actúan de secundario

Físicamente es un transformador rotatorio el cual para poder obtener lectura de

posición del rotor, es necesario generar oscilaciones de referencia en el devanado

primario del motor, y de acuerdo a las variaciones de amplitud que se muestren en

la oscilación de los devanados secundarios, seno y coseno, se logra obtener la

medición de posición e interpretación del actuar del motor, dirección y velocidad.

Page 43: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

40

2.8 Interfaz de Potencia

Para poder hacer la unión entre la lógica que se genere, con la planta del sistema,

se requiere de una interfaz, denominada de potencia, la cual será encargada de

servir de puente entre las señales lógicas que operan a bajo voltaje y el motor que

opera a voltaje mayor. Los dispositivos utilizados para este fin, son los transistores

bipolares de compuerta aislada (IGBT: Insulated Gate Bipolar Transistor), y con la

unión de estos, seis en específico se genera el puente H trifásico, requerido para

operar el motor PMBLDC de esta aplicación.

2.8.1 Puente H

Con el puente H se realiza la energización y cambio de polaridad en las bobinas del

estator, por lo que se utiliza como dispositivo de potencia para que el motor obtenga

la energía para girar.

El puente H es un conjunto de interruptores principalmente electrónicos, los cuales

brindan la función de cambiar el sentido de giro en un motor de DC sin utilizar

fuentes de energía diferentes. Recibe su nombre por la representación gráfica, que

se le da como diagrama eléctrico.

El puente H a utilizar en esta aplicación, es trifásico como el que se muestra en la

Figura 15, debido a que el motor a utilizar es trifásico

Figura 15 Puente H trifásico

Los puentes H se pueden implementar con diferentes componentes electrónicos,

que cumplan la función de interruptor, como el IGBT, con sus respectivas ventajas

y desventajas.

El PWM debe cumplir con ciertas características, para que pueda ser funcional en

el control de motores, debido a los componentes que se utilizarán como puente,

entre la etapa de control y la etapa de potencia del sistema.

Page 44: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

41

Específicamente en esta aplicación se utilizarán IGBT´s, debido a sus condiciones

de operación y velocidad de trabajo, que serán explicadas más adelante, además

de que los componentes periféricos necesarios para la activación de los

transistores; se requiere que el PWM cumpla con las siguientes características:

La duración mínima no puede ser menor al tiempo de transición de apertura

y cierre del IGBT.

Dentro de la duración mínima se debe considerar el tiempo muerto, que

existe en el puente H, para que los transistores de una misma rama no vayan

a estar cerrados al mismo tiempo generando corto circuito.

Contener la suficiente resolución en bits, para permitir al controlador amplia

gama de valores de voltaje.

El valor máximo del periodo debe ser saturado, ya que se debe considerar el

tiempo que tarda el capacitor de encendido del IGBT, en cargar, de lo

contrario el transistor no podrá saturarse.

La frecuencia debe ajustarse a la velocidad de conmutación del transistor

seleccionado.

2.8.2 Transistor bipolar de compuerta aislada (IGBT)

El IGBT combina las ventajas de los transistores de efecto de campo (MOSFET) de

poder y la potencia de los transistores bipolares (BJT), similares en su estructura

también, como se muestra en la Figura 16, la entrada es la estructura de la

compuerta de un MOSFET, y la salida es un transistor BJT; contrario al MOSFET

de poder, este transistor no incluye el diodo parasito de recirculación, y es por eso

que se requieren conectar diodos apropiados de recuperación rápida. [28]

Figura 16 Circuito equivalente al IGBT

El IGBT tiene las siguientes ventajas:

Page 45: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

42

Alta densidad de conducción de corriente y baja caída de voltaje en el estado

activado, el IGBT tiene una caída de tensión muy baja en el estado cerrado,

debido a la modulación de conductividad y la densidad de corriente en el

estado activado es superior, en comparación con el MOSFET de potencia y

transistor bipolar.

Es posible un chip de tamaño más pequeño y de costo reducido.

Consumo bajo de potencia y circuito de control simple debido a la estructura

de compuerta MOS, el IGBT es fácil de ser controlado en comparación a los

componentes controlados por corriente, como el BJT, en aplicaciones de alto

voltaje y corriente.

Amplía área de operación segura (SOA: Safe Operation Area), respecto a

sus características de salida, el IGBT tiene la capacidad de conducción de

corriente más alta comparado con el transistor bipolar. Su capacidad de

bloqueo es excelente.

Como desventajas tiene:

Velocidad de conmutación menor a los 100 kHz, es inferior a los MOSFET

de potencia, pero es superior a los BJT.

Existe la posibilidad de cortocircuito en la estructura interna PNPN.

En la Tabla 4, se muestra la comparativa entre los BJT, MOSFET e IGBT.

Tabla 4 Comparativa del IGBT contra el BJT y el MOSFET

Características BJT MOSFET IGBT

Método Activación Corriente Voltaje Voltaje

Circuito de control Complejo Sencillo Sencillo

Impedancia en compuerta

Bajo Alto Alto

Consumo en la activación

Alto Bajo Bajo

Velocidad de conmutación

Lento(µs) Rápido(ns) Medio

Frecuencia de operación

Bajo(menor a 100KHz)

Rápido (menor a 1MHz)

Medio

SOA Estrecho Amplio Amplio

Voltaje de Saturación

Bajo Alto Bajo

Page 46: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

43

2.8.3 Capacitores de arranque

Los capacitores de arranque son necesarios en la interfaz de potencia, debido a que

en el puente H, los transistores de la parte superior mostrados en la Figura 17, no

tienen referencia con el Negativo de la fuente, por ende no se tiene el voltaje para

realizar el cierre de la compuerta. A este estado se le conoce como que el transistor

esta flotado, de no existir los capacitores de arranque, se debería tener dos fuentes

diferentes para activar los transistores, una fuente para los transistores inferiores y

otra para los transistores superiores.

Figura 17 Transistores superiores del puente H

El circuito de los capacitores de arranque, funciona como se muestra en la Figura

18, cuando el pin Vs, tiene un voltaje menor al voltaje con el que se alimenta al

accionador de transistores VDD, o es puesto a tierra, esto se da cuando el transistor

de la parte inferior está cerrado y el transistor de la parte superior está abierto, el

capacitor de arranque, se carga por medio de la resistencia y el diodo de arranque,

con la energía suministrada por VDD.

La energía que se almacenó en el capacitor de arranque, está prevista entre el punto

VBS cuando el pin Vs es llevado a un alto voltaje, logrando así que la energía a

suministrar en VBS este flotando al igual que el transistor superior, y el diodo de

arranque estará en polarización inversa, bloqueando la tensión de regreso en

dirección a la fuente VDD, esto se da cuando el transistor de abajo está abierto y el

transistor de arriba está cerrado. [29]

Page 47: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

44

Figura 18 Funcionamiento del capacitor de arranque

2.8.4 Supresor de transitorios

Los transitorios o transientes, como se muestra en la Figura 19, son definidos como

subciclos de corta duración, menor a medio ciclo de una onda del sistema, con

deformaciones de energía, de dos tipos, mayores que dos veces el pico RMS de

voltaje, o menores a dos veces el pico RMS del voltaje suministrado. La

conmutación de cargas eléctricas en el motor eléctrico, genera transitorios.

Figura 19 Transitorio de voltaje

Page 48: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

45

Los componentes electrónicos son sensibles a estos transientes, ya que tienen

límites de voltaje de operación, por tanto necesitan estar protegidos de ambos

transitorios repetitivos y aleatorios. [30]

Un supresor de transitorios es un dispositivo electrónico que monitorea al voltaje,

cuando detecta un pico de voltaje lo suprime disipándolo en calor, permitiendo a los

circuitos electrónicos no percibirlos y por tanto no degradarlos.

2.8.5 Desenergizado de la bobina

Para poder realizar un cambio de polaridad, en una bobina que acaba de ser

utilizada, la bobina debe pasar primero por un proceso de desenergizado, no dar un

camino seguro para el flujo de corriente mientras la energía en la bobina se hace

cero, o los interruptores van a cambiar el giro del motor a una nueva dirección, lo

que tendría como consecuencia la degradación del puente H.

Un camino correcto para el desenergizado, como se muestra en la Figura 20, es a

través de un diodo de recirculación en paralelo con el transistor, que cuando el

transistor este conduciendo estén desactivados. Para mayor eficiencia, se deben

conmutar los transistores, con la secuencia correspondiente al tipo de

desenergizado.

Figura 20 Diodos de recirculación en el puente H monofásico

Existen dos tipos básicos de desenergizado de bobinas, el rápido y el lento, los

nombres son en correlación con la velocidad en la que la corriente decae hasta

llegar a cero.

Page 49: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

46

Durante el desenergizado rápido, como se muestra en la Figura 21, la corriente en

la bobina decae a cero lo más rápido que sea posible, esto se logra alcanzando a

deshabilitar los transistores que estaban en uso y habilitar los transistores

contrarios, o permitiendo el flujo de corriente a través de los diodos de recirculación.

Figura 21 Desenergizado rápido

Durante el desenergizado lento, la corriente decae a cero más lento comparado con

el modo rápido. Se logra deshabilitando los transistores superiores y activar todos

los transistores de abajo, como se muestra en la Figura 22. [31]

Figura 22 Desenergizado lento

Page 50: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

47

2.9 Medio de implementación

Para esta aplicación, se requiere generar hardware dedicado que sea capaz de

procesar a la velocidad de cambio del motor, que permita implementar lógica digital

en un espacio físico, permitiendo generar un integrado para la aplicación sin

necesidad de fabricarlo. El dispositivo apto para realizar esta tarea, es el arreglo de

compuertas programables en campo (FPGA: Field Programmable Gate Arrays) el

cual son semiconductores que se basan en una matriz de bloques lógicos,

conectados a través de las interconexiones programables. El FPGA puede ser

reprogramado para la aplicación o funcionalidad deseado, después de haberlo

fabricado. Esta característica distingue al FPGA de circuitos integrados de

aplicación específica (ASIC), que se fabrican a medida para tareas específicas de

diseño. Aunque los FPGA programables de una sola vez (OTP) están disponibles,

los tipos dominantes son los de memoria estática de acceso aleatorio (SRAM: Static

random-access memory) los cuales pueden ser reprogramados a medida que

evoluciona el diseño. [32] [33]

En esta aplicación se desarrolla, desde los bloques lógicos más básicos, es decir

compuertas lógicas, operaciones aritméticas, operaciones lógicas, comparaciones,

toma de decisiones y almacenamiento de datos.

Cabe mencionar que en cuanto a tecnología digital, este tipo de dispositivos es lo

más avanzado en este momento, así como el uso de lenguaje de descripción de

hardware, (VHDL: Very High Speed Integrated Circuit Hardware Description

Language).

2.10 Sistema de control

Inicialmente se debe considerar que control, significa mantener una variable o varias

variables en un valor de referencia ya sea de manera dinámica o en el estado

estacionario del motor. Al usar la terminología sistema de control, se puede

entender, como un arreglo de componentes físicos conectados de tal manera, que

la unificación de los elementos puede comandar, dirigir o regular, a sí mismos en

primera instancia, con lo que se obtendrá o realizarán alguna actividad controladora

sobre otro componente.

Los sistemas de control, se pueden clasificar de la siguiente manera:

Sistemas de control de lazo abierto, mostrado en la Figura 23, en el cual la acción de control es independiente de la salida; es decir no tiene retroalimentación de la información.

Page 51: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

48

Figura 23 Lazo de control abierto

Sistemas de control de lazo cerrado, véase Figura 24, en el cual la acción de control, tiene una dependencia con la variable de salida, puesto que esta información se compara con la señal de entrada por medio de retroalimentación.

Figura 24 Lazo de control cerrado

La retroalimentación, se encuentra únicamente en el sistema de control de lazo

cerrado, la cual ingresa la información al sistema para realizar una comparación,

entre la variable de entrada y la variable de salida, de tal manera que se establece

un error, la existencia de este error no es óptimo para el sistema, se realiza la acción

de control apropiada, para nulificarlo, en función de las variables de control.

2.10.1 Algoritmo de control PID

El control PID (Proporcional Integral Derivativo), es un sistema de control de lazo

cerrado, el cual se caracteriza por tener un sistema de retroalimentación, que

calcula la desviación o error entre un valor medido y el valor de referencia,

generalmente o en forma ideal el error debe de ser uno (1), en casos prácticos, solo

en casos excepcionales se consigue el número uno por tal motivo, se aplica la

acción correctiva que ajusta el proceso, realizando que la diferencia entre el error

medido y el valor deseado tienda a uno.

El control Proporcional Integral Derivativo es la solución ideal para sistemas de

control que deseen corregir su respuesta tanto en el transitorio como en el régimen

estacionario. Ofreciéndonos la gran libertad de acción al tener tres parámetros (Kp,

Ki y Kd) con los que ajustar el lazo de control.

Page 52: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

49

El control P.I.D., además, tiene la ventaja de ser un método probado y aplicado en

muchos sistemas de control, por lo que existe abundante información y ejemplos de

aplicación.

El P.I.D. como su nombre lo indica, realiza un control proporcional + Integral +

derivativo, lo cual significa que si bien tiene una acción proporcional al error entre

la salida y el valor deseado, también puede corregir el error permanente y mejorar

la respuesta en el transitorio. La ecuación típica se muestra en la Ecuación 6.

𝑦[𝑛] = 𝐾𝑝 𝑒[𝑡] + 𝐾𝑖 ∫ 𝑒(𝑡)𝑑𝑡 + 𝐾𝑑 𝑑(𝑒(𝑡))/𝑑𝑡

( 6)

Donde:

Kp = Constante del control proporcional

Kd = Constante del control diferencial

Ki = Constante del control integral

e[t]= error de posición (posición actual – posición anterior)

El controlador más simple y efectivo que puede usarse es el control proporcional,

que presenta una salida proporcional al error entre la salida deseada y la obtenida.

La desventaja de este controlador es que a medida que el error disminuye, es decir

cuando la salida tiende al valor deseado, pierde participación, ya que como el error

tiende a cero la acción correctiva también tiende a cero, y no se llega nunca al valor

deseado de salida.

La acción Integral justamente corrige este defecto, elevando el tipo de sistema y

eliminando el error en el régimen permanente.

La acción derivativa mejora el transitorio y reduce el tiempo de establecimiento, el

tiempo que tarda en llegar al valor deseado, o a un porcentaje del mismo. [34]

2.11 Sistema de control distribuido

La sección de lógica de control total del sistema, se basa en un sistema de control

distribuido (DCS) por sus en inglés: Distribution Control System, como el mostrado

en la Figura 25, este sistema de control tiene la finalidad de controlar el proceso o

planta en tiempo real, el cual es capaz de regular velocidad y aceleración en cada

unidad de tiempo para llegar a la posición deseada; este control está compuesto por

dos bloques principales los cuales son: el bloque supervisor y el bloque regulador.

Page 53: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 2. Fundamentos Teóricos

50

Figura 25 Control distribuido a bloques

El bloque regulador lo realiza el algoritmo de control PID ya que es el que controla

la posición, mientras que el bloque supervisor es el que controla la velocidad y

aceleración.

2.12 Interfaz de usuario

La interfaz de un sistema es la conexión física que permite la interacción de un

sistema con actores externos u otros sistemas.

En esta aplicación se requiere de una interfaz hombre-máquina para operar y

configurar los motores del sistema, por lo cual, se diseñó la interfaz gráfica e intuitiva

en la PC, además de embeber en el FPGA la estructura de registros para el

almacenamiento de datos, a través de los cuales se da la interacción.

2.12.1 Puerto de la PC

El puerto de Entrada / Salida del PC, se constituye como el medio por el cual, el

procesador principal (microprocesador) se comunica e interactúa con el FPGA. En

la aplicación de este proyecto, se utiliza el puerto paralelo, que es capaz de

transmitir ocho bits en un instante.

El puerto paralelo originalmente fue diseñado para el uso de impresoras con tres

direcciones físicas; sin embargo, es posible utilizarlo para aplicaciones como las de

este proyecto, donde se requieren entradas y salidas digitales, para desempeñar

tareas de transmisión de datos y protocolo, con las características siguientes:

Puerto bidireccional.- Es capaz de transmitir y recibir datos de ocho bits.

Es vigente.- Se puede conseguir en computadoras recientes.

La velocidad.- Ronda entre los 50 a 150 kb por segundo [35], la cual es

suficiente para la aplicación, dado que solo se utilizará para configurar y

monitorear.

Sencillez de uso.- Solo requiere de dos instrucciones para su operación:

outport para la salida e inport para la entrada de datos.

Generalmente en puertos ensamblados directamente en la tarjeta madre de la PC,

las direcciones en las que el fabricante preestablece el puerto paralelo, es de la

Page 54: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

51

siguiente manera: ocho bits de datos bidireccionales en la dirección 0x378 (dirección

base), el bit cinco del puerto 0x37A se usa para su configuración: con cero es salida

y con uno es entrada. Cinco bits de entrada en la dirección 0x379 (dirección base

más uno) y cuatro bits de salida en la dirección 0x37A (dirección base más dos).

2.12.2 Registro Digital en FPGA

El registro de datos, es un espacio físico dentro del hardware, donde se obtiene

almacenamiento temporal, donde se almacenan los datos del sistema o

configuraciones del usuario.

Dado que la memoria y el desplazamiento de información son sus características

básicas, los registros son circuitos secuenciales constituidos por flip flops, donde

cada uno de ellos maneja un bit de la palabra binaria.

Son muy populares los registros de 8 bits, ya que en los computadores con

frecuencia manipulan bytes de información.

Un registro de corrimiento básico es un conjunto de flip-flops, conectados de tal

forma que los números binarios almacenados en él son desplazados de un flip-flop

al siguiente con cada pulso de reloj aplicado.

Existen dos formas de cargar un dato a los registros, de manera serial, es decir un

bit a la vez, o la carga paralela, que es el ingreso de los datos al mismo tiempo en

todos los flip flops.

Page 55: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

52

Capítulo 3.

Accionamiento del motor PMBLDC

3.1 Introducción

En este capítulo se describe el diseño y la implementación que se requiere para

poder accionar un PMBLDC.

En el motor PMBLDC se requiere de medir la posición del rotor en cada instante,

para conocer los puntos de conmutación. Esta aplicación realiza la conversión de

sensor “Resolver” a digital para poder procesar su posición dentro del hardware

dedicado, definiendo una resolución de la posición a 10 bits, es decir 1024

posiciones de una vuelta del rotor, la cual es suficiente para lograr la tarea de

accionarlo.

Se muestra la lógica que se implementa para decodificar los puntos de conmutación,

obteniendo experimentalmente la carta de conmutación del BLDC, para diseñar el

decodificador para conmutar en modo trapezoidal y senoidal.

Se modula el ancho de pulso, para poder variar la velocidad del motor, entregando

valores intermedios de voltaje, desde cero hasta el máximo voltaje que pueda

entregar la fuente de alimentación disponible, este ancho de pulso es el utilizado en

el conmutador trapezoidal.

Sin embargo, para lograr el conmutador senoidal, se genera el ancho de pulso con

forma senoidal, de acuerdo al cálculo que en tiempo real se tenga como resultado

del seno de la posición del rotor, de esta manera se logra entregar el voltaje y la

corriente a las bobinas en forma senoidal y con el desfase de 120°, como lo requiere

la teoría de conmutación senoidal.

De igual manera, se muestra la lógica digital requerida para implementar el banco

de registros dentro del FPGA, con la capacidad de extender su tamaño, tanto como

lo requiera la aplicación, generando un hardware genérico para futuras aplicaciones.

Page 56: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

53

3.2 Medición de la posición absoluta del rotor

Como se mencionó en el capítulo anterior, se tiene el requerimiento de conocer de

manera absoluta la posición del rotor, para lograr conmutar de forma senoidal y

además poder dejar fijo al motor en una posición deseada, lo cual se consideró que

la mejor opción es el sensor “Resolver”, pre ensamblado con el motor por el

fabricante del PMBLDC.

3.2.1 Conversión de “Resolver” a digital

El sensor “Resolver” al ser un sensor analógico, requiere de un proceso de

conversión analógico digital, es decir proporcionar la posición en bits, por lo cual se

utiliza el convertidor analógico-digital AD2S1210 de Analog Devices el cual tiene la

capacidad de resolución en la conversión configurable entre 10 bits a 16 bits, con lo

cual la vuelta mecánica del motor, puede ser dividida en 1024 partes como su

mínima resolución o en su máxima resolución de 65,536 partes. La resolución de la

conversión puede ser configurada por medio de las señales R0 y R1, de acuerdo a

la Tabla 5.

Tabla 5 Opciones de resolución del convertidor analógico-digital

RES0 RES1 Resolución (Bits) Posición

(Arc min)

Velocidad

(rps)

0 0 10 21.1 4.88

0 1 12 5.3 0.488

1 0 14 1.3 0.06

1 1 16 0.3 0.004

Este convertidor, al seleccionar su modo de operación, permite leer de él de manera

paralela la posición angular en la que se encuentre el rotor o la velocidad a la que

este se mueve, configurándolo por medio de lo pines A0 y A1, con la lógica de la

Tabla 6.

Tabla 6 Opciones de configuración operación ADS2S1210

A0 A1 Resultado

0 0 Modo normal – Medición de posición en la salida

0 1 Modo normal – Medición de velocidad en la salida

1 0 Reservado del sistema

1 1 Modo configuración de registros

La interfaz digital del convertidor funciona a través de registros, por lo cual para

poder leer un dato de esté, es necesario estar en protocolo con mencionado registro,

Page 57: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

54

además de señal de reloj para la sincronía. El diagrama necesario para el protocolo

se muestra en la Figura 26.

Figura 26 Diagrama de tiempos para lectura paralela

Inicialmente se debe mandar un valor bajo en la señal activa chip, para seleccionar

como activo al convertidor del que se quiere leer , la señal de reloj es generada por

el cristal del convertidor a la frecuencia de 10 MHz, posteriormente se requiere una

señal para que el registro tome el valor de la posición en el rotor, lo que sería similar

a una señal de carga registro, esta señal es etiquetada como “Muestra” y trabaja

en activo bajo, esta señal debe tener una transición por cada dato que se quiera

almacenar.

La señal muestra, debe de estar oscilando, la frecuencia de esta oscilación es lo

que llamaremos Frecuencia de Muestreo, para esta aplicación se decidió tener una

frecuencia de muestreo de 3khz, por lo cual se estará tomando un nuevo valor de

posición angular del rotor cada 333 µs un aproximado de 3,000 muestras por

segundo. Se considera que esta velocidad es suficiente para no perder ni una sola

posición aunque el motor este girando a su velocidad máxima, y no tendría sentido

hacerla más rápida ya que pasarían muchas muestras sin que se perciba un cambio

significativo.

Page 58: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

55

Una vez que se capturó el valor de la posición para leerlo es necesario que la señal

Leer tenga una transición de alto a bajo, con esto el valor de la posición estará

disponible en el bus de datos listo para ser adquirido por el FPGA.

Cabe mencionar que si se desea leer cada valor muestreado y no solo registrarlo,

la señal de lectura debe de oscilar a la misma frecuencia de la señal de muestreo

pero con un retardo de 608 ns como mínimo para que el dato que se muestrea ya

se encuentre bien definido al leerlo, esto se logra utilizando la misma señal de

muestreo con inversión.

Las locaciones donde es aplicada la interfaz con el convertidor analógico-digital, se

muestran en la Tabla 7.

Tabla 7 Interfaz con el convertidor analógico-digital

Señal Pin FPGA Señal Pin FPGA

D0 L20 READ F18

D1 P20 CHIPSET F19

D2 M20 SAMPLE D22

D3 M18 RES0 E22

D4 L19 RES1 D20

D5 L18 DIR D21

D6 K19 EMULADO ENCODER A D18

D7 K20 EMULADO ENCODER B E17

D8 K18

D9 K17

D10 H19

D11 J18

D12 G20

D13 G19

D14 F20

D15 E20

3.2.1 Generación de señales para leer convertidor

Para generar las señales descritas anteriormente se utiliza el FPGA que se tiene

dedicado para la aplicación, al FPGA se le da la capacidad de leer los 16 bits que

es la resolución máxima del convertidor, sin embargo para controlar velocidad no

es necesario tanta resolución.

Se considera que es suficiente con utilizar la resolución de 10 bits la cual se

configura por medio de Res0 y Res1, véase Tabla 5. En la Figura 27, se muestra

Page 59: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

56

el bloque que se generó para realizar el protocolo con el convertidor analógico-

digital, en donde se tiene como entradas a las señales generales del sistema de

reloj 50 MHz y de Borrar. Como salidas se tienen los configuradores de resolución

Res0, Res1, la señal de activación del chip, y las señales de muestra y lectura.

Figura 27 Bloque del protocolo con el convertidor analógico-digital

Internamente se tiene que las señales Res0, Res1, y Activa chip, deben de estar

asegurados a un valor lógico cero por lo cual se conectan por medio de un búfer a

tierra.

Las señales de muestra y Leer deben de tener la frecuencia de 3 kHz, para

generarlas se hace uso de un contador de 16 bits, con la primitiva CB16CE, el cual

con cada transición de reloj realizará una cuenta y con la capacidad de borrado

asíncrono.

En este caso el contador funcionará como un divisor de frecuencia ya que de

acuerdo al bit que se tome de su salida tendrá diferente frecuencia, potencia de dos

de la frecuencia del reloj de entrada, si para esta aplicación se requiere la frecuencia

de 3 kHz, se debe dividir el reloj principal del sistema, que es de 50 MHz, si se

realiza la división entre potencias de 2, tendremos la Tabla 8.

Tabla 8 División de frecuencia

Numero de división Potencia Frecuencia de salida (Hz)

1 2 25,000,000

2 4 12,500,000

3 8 6,250,000

4 16 3,125,000

5 32 1,562,500

Page 60: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

57

6 64 781,250

7 128 390,625

8 256 195,313

9 512 97,656

10 1024 48,828

11 2048 24,414

12 4096 12,207

13 8192 6,104

14 16384 3,052

Al realizar las divisiones se puede determinar que hay que dividir la frecuencia del

reloj catorces veces, para alcanzar el valor más cercano a 3 kHz, lo cual se logra

tomando el bit número trece de la cuenta de la primitiva CB16CE.

En la Figura 28, se muestra el esquemático, que genera las señales para poder

obtener datos del convertidor.

Figura 28 Esquema para obtener datos del convertidor

3.3 Registro de posición en FPGA

Una vez obtenida la posición del rotor por medio del convertidor, se requiere

registrarla dentro del FPGA, para lo cual se diseñó el bloque Registra posición

mostrado en la Figura 29, en el cual se tienen cinco entradas: Resolver, en la que

se ingresa el valor de posición proveniente del convertidor analógico-digital.

R50Mhz, entrada del reloj principal del sistema. Borrar, entrada del reinicio general

Page 61: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

58

del sistema. Reg_posicion, entrada de la señal que realiza el almacenamiento de la

posición. Frec_filtros, entrada de la frecuencia utilizada para filtrar señales; además

de siete salidas.

Figura 29 Bloque que se encarga de registrar la posición del rotor

Como se puede observar en la Figura 30, la posición es registrada en dos ocasiones

para tener el dato de la posición actual y la posición anterior, además como estos

datos se desean tener visibles en la interfaz gráfica, se realiza el ajuste para de los

16 bits que salen del registro, se generen dos buses de 8 bits, esto necesario porque

el banco de registros trabaja con registros de 8 bits.

Un detalle más a considerar, es que la señal “cambio_pos” es conectada junto con

la señal de borrado general, mediante la compuerta lógica OR, ya que se requiere

que al generar el borrado general sea registra la última posición en la que se

encuentre el motor, de lo contrario el sistema no tendría un valor inicial con el cual

generar nuevos valores de cálculo para la conmutación y el motor no podría salir

del reposo por sí solo.

Page 62: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

59

Figura 30 Diagrama de registro de posición

3.3.1 Filtro Digital

Sin embargo, como los datos a registrar son señales provenientes del exterior, no

es sencillo el registro del valor de posición, como primera necesidad se debe filtrar

para evitar lecturas erróneas causadas por ruido. Ya que si el ruido afecta el dato

equivaldría a leer una posición errónea del motor, que afectaría el procesamiento

del sistema en su totalidad.

El funcionamiento del filtro que se diseñó, parte de la primicia de que el valor que

se va a obtener a su salida es porque el dato de entrada debe de tener cierta

duración y no ser solo un pico transitorio, duración que es configurable.

Como bloque el filtro, véase siguiente Figura 31, se representa por tener dos

entradas, llamadas reloj donde entrará la frecuencia de filtrado, en la entrada “ent”

se ingresa la señal que se desea filtrar, y en la salida se obtiene la señal que se

desea sin que el ruido haya afectado.

Page 63: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

60

Figura 31 Bloque del filtro digital

Cabe mencionar que el reloj que se utiliza para los filtros, no puede ser el de 50

MHz del sistema, ya que el tiempo de duración de la señal a filtrar sería muy corto

y podría seguir dejando entrar al ruido, por otra parte no puede ser una frecuencia

muy baja, porque se podría perder el dato que se intenta filtrar, se debe buscar la

frecuencia apta para el filtrado. Para esta aplicación se utiliza un filtro digital con una

frecuencia de corte de 3.1 MHz, ya que se tuvo el problema que al filtrar con menor

frecuencia los datos a registrar de posición se perdían

Internamente el esquema que realiza el filtrado, mostrado en la siguiente Figura 32,

consta de tres flip-flop tipo D, conectado en cascada y a la misma frecuencia de

operación, la salida individual de cada filtro es conectada a una compuerta OR de

tres entradas, con esto lo que se busca es que la señal filtrada tenga un valor lógico

cero con una duración mínima de tres ciclos de reloj de la frecuencia de filtrado, de

lo contrario la señal de salida no cambiará.

Figura 32 Esquema del filtro digital

De esta manera se filtran las señales externas que se pretenden ingresar al FPGA,

para el caso de la posición del rotor, se realiza el acoplamiento de 16 filtros, debido

a que se utiliza un filtro por cada bit que se desea ingresar al sistema, en el caso de

la posición del rotor, el FPGA tiene la capacidad de capturar la resolución máxima

del convertidor analógico-digital. Quedando un bloque como el mostrado en la

Figura 33, a la entrada ingresan los 16 bits y la frecuencia de filtrado, y a la salida

Page 64: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

61

se obtienen las 16 señales sin que las haya afectado el ruido, se puede considerar

una posición efectiva del rotor lista para poder ser registrada.

Figura 33 Filtro para 16 bits

Una vez que se filtró el dato de posición, se registra para tener un valor fijo por un

tiempo, con el que se realiza el procesamiento del sistema. Se utiliza el registro de

16 bits, con carga síncrona obtenido con la primitiva CB16CLE que se muestra en

la Figura 34.

Figura 34 Primitiva CB16CLE

Como se puede observar se tiene:

La entrada de 16 bits, donde se ingresa el dato de la posición a registrar,

La señal “L” para cargar el dato, funciona con activo en alto, para esta acción

de registrar posición, se deja fija a un valor lógico alto a través de Vmas, por

lo tanto se registrará un nuevo valor cada vez que se presente un flanco de

subida del reloj en la señal “C”.

La señal de “CE” se fija a un valor lógico cero a través de Tierra, ya que no

se requiere en esta ocasión de la función de contador de la primitiva, de lo

contrario se modificará el valor que se ingresa.

La señal “CLR” que es la que reinicia a “0000000000000000” la salida del

registro es conectada a la señal de Borrado general del sistema.

Las señales CEO y TC no son utilizadas.

Page 65: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

62

3.3.2 Señal para registro de posición

Lo interesante y punto fundamental en el registro de posición, es determinar cuál es

la mejor señal de reloj para esta primitiva, pues bien, se pensaría que lo mejor es

tomar la frecuencia de muestreo que es de 3.052 kHz, para que cada vez que tome

una nueva muestra sea registrada, sin embargo esta no es la indicada ya que se

podría estar registrando el mismo valor varias veces dependiendo de la velocidad

de giro o estando detenido el motor, lo cual no es funcional, lo que se requiere es

registrar cuando exista un cambio de posición, esto garantiza que el dato que entra

es solo una posición más de la que estaba anteriormente, por ejemplo si se

encuentra registrado el valor de 581 el siguiente valor registrado será 580 o 582

dependiendo de la dirección en que gire el motor.

Para generar la señal de reloj de este registro, se diseñó un bloque que detecte el

cambio de posición, mostrado en la figura 35, el cual cuenta con la entrada de 16

bits de la posición obtenida del resolver después de ser filtrada, en otra entrada se

ingresa la señal de reloj del sistema de 50 MHz y a la salida se obtiene un solo bit

en activo bajo el cual tendrá una transición de 1 a 0 cada vez que la posición del

rotor se modifique.

Figura 35 Bloque de detección de cambio de posición

Dentro del bloque “Detecta_cambio_16” se tienen 32 monoestables digitales, de los

cuales 16 observan que el bit haya tenido un flanco de subida y los otros 16

observan que el bit haya experimentado un flanco de bajada, la salida de los 32

monoestables se unen a través de la operación lógica OR, para garantizar que con

un bit que cambie, será suficiente para determinar que la posición cambio y dar el

pulso de reloj para registrarla, a la salida de esta OR se conecta un inversor para

que el reloj funcione en activo bajo. Quedando el circuito como se muestra en la

Figura 36.

Page 66: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

63

Figura 36 Circuito para la detección de cambio de posición

Page 67: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

64

3.3.3. Monoestable digital

Para entender lo que realiza el circuito de la señal para registro posición, hay que

conocer el funcionamiento del bloque monoestable digital, mostrado en la Figura 37,

que a su entrada tiene la señal a monitorear, la señal de reloj y a su salida el pulso

monoestable que se genera.

Figura 37 Monoestable Digital

El principio de funcionamiento, mostrado en la Figura 38, es cuando la señal que es

monitoreada tiene un flanco de subida es decir, el cambio de cero a uno, el flip-flop

“FDC” pone a la salida “Q” el valor que se tenga en “D”, que en este caso está

amarrado al valor lógico alto, debido a que su señal de reloj “C” tuvo una transición;

al poner “Q” en uno, la salida del monoestable se pone a uno de igual forma y se

activa el conteo en la primitiva CB8CE a la frecuencia del reloj del sistema, en cuanto

llega a “01000000” la cuenta, se reinicia al contador y a “FDC”, provocando que la

salida del monoestable se vuelva cero, logrando así generar un pulso con duración

preestablecida al detectar un cambio en la señal a monitorear.

Figura 38 Diagrama del monoestable digital

Page 68: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

65

3.4 Encoder Emulado

Del convertidor analógico-digital, se pueden obtener las sseñales de un encoder de

forma simulada, el emulador propio del convertidor entrega tres señales: “A”, “B” y

“Dirección”. Esta emulación es utilizada para generar el paso y dirección del

controlador PID, para lo cual se generó el bloque “encoder” mostrado en la Figura

39, el cual tiene como entradas las tres señales emuladas, la frecuencia de los filtros

digitales y el reloj general del sistema, además como salida el paso y la dirección

que se obtienen de las señales del encoder.

Figura 39 Bloque de nombre "encoder"

Internamente como se muestra en la Figura 40, las señales provenientes del exterior

son filtradas para ser ingresadas al multiplicador de encoder, el cual tiene como

función multiplicar en cuatro la resolución de encoder que se tenga, y generar las

señales que utiliza el controlador PID.

Figura 40 Diagrama del bloque denominado "encoder"

Page 69: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

66

3.4.1 Multiplicador de encoder

Tradicionalmente en el encoder, la señal “A” es utilizada para conocer el

desplazamiento en cuentas del rotor, y la señal “B” es utilizada para conocer la

dirección de giro, como se observa en la Figura 41, en cada flanco de subida de la

señal “A” la cuenta de posiciones se incrementa en 1, y si el flanco de “B” inmediato

al flanco ascendente de “A”, es de subida el giro se está dando a la derecha, de lo

contrario, si se da un flanco en “B” de bajada se está girando a la izquierda; sin

embargo, para esta aplicación la mezcla de ambas es utilizada para conocer

desplazamiento y dirección.

Figura 41 Funcionamiento general del encoder incremental

El multiplicador de encoder tiene como finalidad, multiplicar cuatro veces la señal

“A”, como ejemplo, supongamos que el desplazamiento total de un encoder, es de

250 cuentas por vuelta mecánica, al utilizar “A” y “B” para conocer desplazamiento

se puede multiplicar por cuatro esta resolución, llegando a tener 1000 posiciones

por vuelta mecánica.

El funcionamiento del multiplicador se basa en que cada flanco ya sea de subida o

de bajada, en cualquiera de las dos señales será contado como una cuenta de

desplazamiento.

Para identificar la dirección de giro, se debe de tener en cuenta Figura 42, donde se

observa, que para conocer dirección se debe contar con el valor de “A” y “B” en el

estado actual y uno anterior, con la finalidad de tener secuencias de valores

identificables, para cada sentido.

Figura 42 Secuencias para identificar giro en el multiplicador de encoder

Page 70: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

67

De la Figura 42, se desprende el diagrama de estados mostrado en la Figura 43,

que muestra la secuencia posible, de acuerdo a los niveles de ambas señales para

identificar la dirección.

Figura 43 Diagrama de estados para conocer dirección de giro

Para implementar el multiplicador, se utiliza el diagrama mostrado en la Figura 44,

donde para multiplicar el desplazamiento, se tienen las dos señales interconectadas

para detectar cambio y generar pulsos de salida mediante la compuerta XOR, y dos

monoestables digitales monitoreando a esta compuerta, uno para los cambios en

flanco de subida y otro con su entrada negada, para los cambios en flanco de

bajada.

Los monoestables son interconectados mediante la compuerta OR, por ende con

un cambio que exista en cualquiera de los dos monoestables, se tendrá una señal

lógica en valor alto a la salida de la compuerta, esta señal es invertida para generar

un retardo, con finalidad de esperar, a que el valor que se va a tomar como bueno,

este establecido, garantizando que se toma el valor un instante después de que esté

cambió, este último paso se hace dos veces para garantizar, que al pulso que se

utilizará como paso en el controlador, no tenga valores erróneos o transitorios.

Page 71: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

68

Figura 44 Diagrama del multiplicador de encoder

Para obtener la dirección en la que gira el motor, se implementó en los dos flip-flop

“FD”, el registro de la posición anterior, para que mediante compuertas AND se

realice la comparación entre el valor actual y el anterior, por último la salida es

registrada para evitar que el controlador observe el cambio de dirección en

transición, logrando obtener que para giro en sentido horario el valor registrado de

dirección es “1” y para giro a la izquierda e valor es “0”.

Page 72: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

69

3.5 Generación de PWM

En la Figura 45, se muestra el diseño a bloques para generar el PWM, a utilizar en

la conmutación de los transistores.

Figura 45 Diseño a bloques del PWM

Como se puede observar para generar el periodo del PWM, se hace uso de un

contador, que va a tener la capacidad de acuerdo a la finura que se requiera en los

anchos de pulso, para esta aplicación en el modo trapezoidal, se genera el contador

a 8 bits, por ende se tendrá la cuenta de 0 – 255, dando el conteo total de 256

valores.

En cada pulso de reloj el contador es incrementado en 1, cuando llega a “11111111”,

se genera un pulso que activa el preset de un flip flop, poniendo la salida al valor

lógico alto, dando inicio a un nuevo periodo, y a su vez permite el ingreso de un

nuevo valor para el ciclo de trabajo T1, a comparar.

La función del comparador, es monitorear que el valor del contador y el valor del

ciclo de trabajo, sean iguales, en cuanto se da esta condición se genera un pulso

que resetea al flip flop, haciendo que la salida tome un valor lógico cero y se

mantenga así hasta el final del periodo, que es cuando el contador termina el conteo.

Los componentes del comparador, contador y flip flop, son implementados en el

bloque “pwm_trap”, Figura 46, que cuenta con la entrada “ck” donde se ingresa la

frecuencia del contador, “t1” donde se ingresa el ciclo de trabajo a 8 bits, “borrar”

donde se ingresa la señal de borrado general del sistema, y la salida “sal” de donde

se obtiene el PWM para la conmutación trapezoidal.

Page 73: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

70

Figura 46 Bloque pwm_trap

La funcionalidad de este bloque se puede observar a detalle en la Figura 47.

Figura 47 Funcionamiento del diseño de PWM

A manera de ejemplo, supongamos que t1 tiene el valor de 10, el contador acaba

de pasar por 255 por ende el PWM se encuentra en el valor lógico alto, en cuanto

el contador tenga un valor de 10, inmediatamente el ancho de pulso cambiará al

valor lógico bajo, y se mantendrá así durante las siguientes 245 cuentas que es

cuando el contador volverá a poner en alto a la salida y se permitirá el cambio de

valor en t1.

El VHDL, que muestra la lógica con la que se implementa el bloque “pwm_trap”, se

muestra en la Figura 48.

Page 74: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

71

Figura 48 Implementación del bloque pwm_trap

La frecuencia a la que se realiza el conteo, debe estar generada en base a la

frecuencia de salida deseada en el ancho de pulso, que en esta aplicación se

pretende, generar 18 kHz, frecuencia elegida por experimentación, ya que entre

más cercanos a la frecuencia de 20 kHz, se entra en la frecuencia no audible para

el oído humano y así tener un sistema bajo en ruido en la conmutación.

Para generar la frecuencia de conteo, se implementó el divisor de frecuencia

mostrado en la Figura 49, el cual tiene a su entrada la frecuencia general del sistema

de 50 MHz, la señal de borrado general y el valor de división fija calculada para

lograr la frecuencia de 18 kHz.

Figura 49 Bloque para dividir frecuencia del PWM, " Div_Frec"

Page 75: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

72

Internamente, como se muestra en la Figura 50, se realiza un proceso síncrono

donde la mayor jerarquía la tiene la señal borrar, que en cuanto esta sea un valor

lógico alto, la señal “cuenta” será cero, generando que la salida del divisor sea uno,

de lo contrario en cada pulso de reloj, “cuenta”, tendrá un decremento en 1, hasta

llegar a cero, en cuanto se de esta condición la “cuenta” podrá recibir un nuevo valor

de división.

Por otra parte de manera asíncrona a la señal de reloj, cada vez que “cuenta” tenga

un valor igual a cero, la salida del divisor de frecuencia tendrá un valor lógico alto y

cuando sea cualquier otro valor la salida será cero.

Figura 50 Implementación del Divisor de frecuencia

Para determinar el número de divisiones, que se tiene que realizar a la frecuencia

del sistema, se utiliza la Ecuación 7, donde se debe de tener en cuenta el número

de bits que tendrá el PWM del sistema, para esta aplicación el PWM trapezoidal, es

de 8 bits por ende el periodo del PWM podrá ser dividido en 256 partes iguales,

como se mencionó con anterioridad.

Page 76: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

73

𝐷𝑖𝑣𝑖𝑠𝑖𝑜𝑛𝑒𝑠 =𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑟𝑒𝑙𝑜𝑗 𝑑𝑒𝑙 𝑠𝑖𝑠𝑡𝑒𝑚𝑎

(𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑑𝑒𝑠𝑒𝑎𝑑𝑎) (𝐶𝑜𝑛𝑡𝑒𝑜 𝑚á𝑥𝑖𝑚𝑜 𝑒𝑛 𝑙𝑜𝑠 𝑏𝑖𝑡𝑠 𝑑𝑖𝑠𝑝𝑜𝑛𝑖𝑏𝑙𝑒𝑠 ) ( 7)

El valor fijo de división debe ser calculado de acuerdo a la frecuencia general que

se tenga en cada sistema, en el caso específico de esta aplicación, al contar con

reloj de 50 MHz si esta es dividida 11 veces, como se observa en el cálculo de la

Ecuación 8, se logra aproximarse a los 18 KHz esperados para el transistor.

𝐷𝑖𝑣𝑖𝑠𝑖𝑜𝑛𝑒𝑠 =50 𝑀𝐻𝑧

(18 𝑘𝐻𝑧) (256)= 10.85 ≈ 11 𝑑𝑖𝑣𝑖𝑠𝑖𝑜𝑛𝑒𝑠

( 8)

El ciclo de trabajo que se ingresa en el valor t1, debe estar previamente limitado en

valores que aseguren, no tener al transistor trabajando en su zona activa y

garantizar el corte y saturación del mismo, para lo cual se generó el bloque “limites

conmutar”, mostrado en la Figura 51, que tiene como entrada la amplitud deseada

y como salida la amplitud limitada.

Figura 51 Bloque "Limites_conmutar"

Dentro del bloque “Limites_conmutar”, véase Figura 52, se tiene que el PWM más

pequeño que se puede entregar a los transistores es de 5 cuentas de los 256

posibles, de ser menor el ciclo de trabajo se vuelve cero, en contra parte el valor

más grande que se puede entregar es de 241, de ser más grande el ciclo de trabajo

se satura en 240, cualquier otro valor dentro de estos rangos se le permite el paso

hacia los transistores sin realizar modificación.

Page 77: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

74

Figura 52 Implementación de la limitación del ciclo trabajo

Como se puede observar se tiene una señal llamada “compensa”, que tiene la

finalidad de eliminar el tiempo que recorta el chip IR2132, por cuestiones de tiempo

muerto, que el chip necesita para garantizar que dos transistores de una misma

rama no estén cerrados al mismo tiempo, este problema será detallado más

adelante. Lo que se genera dentro de los límites del ciclo de trabajo, es que al ciclo

de trabajo deseado se le suman tres cuentas, que es aproximadamente el recorte

en cuentas que nos genera el chip.

En la Figura 53, se muestra el diagrama completo de la implementación del PWM.

Page 78: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

75

Figura 53 Diagrama que genera el PWM para el sistema

3.6 Decodificador de conmutación

Del sensor de retroalimentación “Resolver” se logra obtener la posición absoluta

del rotor, como se explicó con anterioridad, sin embargo, no se obtienen

directamente las señales de los lugares específicos para realizar el cambio de

polaridad en las bobinas. Por ende en base a la información proporcionada por el

sensor, se debe interpretar para decodificar estos puntos.

3.6.1 Carta de conmutación del motor PMBLDC Parker BE341J

El motor a utilizar en esta aplicación es de la serie de servomotores “BE” del

fabricante Parker, véase anexo 1, cabe mencionar que en la información que

proporciona el fabricante, no está incluida la tabla de conmutación de acuerdo a los

valores que genera el sensor que trae incluido.

Se realizó la obtención de la tabla mediante el siguiente método:

El motor cuenta con los tres cables para conectar las bobinas, delimitados

por los colores: rojo, blanco y negro. Sin embargo, no se menciona cual es la

fase A, la fase B o la fase C, esto se determina de acuerdo a como el

conmutador, lo tenga preestablecido para la decodificación.

La vuelta eléctrica requiere de seis pasos de conmutación, se buscan

conectando las fases en base al orden mostrado en la Figura 54.

Se conectaron las fases al voltaje de 5 volts, generando que el rotor girará

hasta la posición en que se mantuviera estático, asimilando que en este

punto es cuando los polos del imán y el polo generado en la bobina habían

encontrado el equilibrio, esta conexión solo era momentánea, ya que al

mantenerse estático con energía en las bobinas, se corre el riesgo de dañar

a los embobinados del motor.

Page 79: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

76

Se capturo la posición reportada por el sensor de retroalimentación, y se

procedía a conectar las fases en el orden que seguía.

Figura 54 Orden considerado para obtener la carta de conmutación

En la Tabla 9, se muestra la carta de conmutación obtenida, con la resolución de 10

bits en el convertidor analógico-digital, determinando para el sistema, que el cable

rojo es la fase A, el cable blanco es la fase B y el cable negro es la fase C, se

muestra la conversión de binario a decimal para mayor comprensión.

Cabe mencionar, que el método de obtención de la carta de conmutación, se realizó

repetidamente en tres ocasiones, obteniendo los mismos datos, con lo que se

consideró que son confiables estos para determinar los puntos de conmutación. Con

la experimentación se consiguió observar, que para dar una vuelta mecánica el

rotor, son requeridas cuatro vueltas eléctricas, determinadas en los siguientes

rangos:

1. Del valor 171 al 982

2. Del valor 938 al 725

3. Del valor 680 al 467

4. Del valor 426 al 211

Page 80: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

77

Tabla 9 Carta de conmutación BLDC BE341J

FASES Datos medidos con resolución a 1024 valores (10bits)

Valor en

Decimal A(Rojo) B(Blanco) C(Negro)

POSITIVO NEGATIVO 0 0 1 0 1 0 1 0 1 1 171

NEGATIVO POSITIVO 0 0 0 1 1 1 1 1 1 0 126

NEGATIVO POSITIVO 0 0 0 1 0 1 0 1 0 0 84

NEGATIVO POSITIVO 0 0 0 0 1 0 1 0 1 1 43

POSITIVO NEGATIVO 1 1 1 1 1 1 1 1 1 0 1022

POSITIVO NEGATIVO 1 1 1 1 0 1 0 1 1 0 982

POSITIVO NEGATIVO 1 1 1 0 1 0 1 0 1 0 938

NEGATIVO POSITIVO 1 1 0 1 1 1 1 1 1 1 895

NEGATIVO POSITIVO 1 1 0 1 0 1 0 1 1 0 854

NEGATIVO POSITIVO 1 1 0 0 1 0 1 0 0 0 808

POSITIVO NEGATIVO 1 1 0 0 0 0 0 0 0 0 768

POSITIVO NEGATIVO 1 0 1 1 0 1 0 1 0 1 725

POSITIVO NEGATIVO 1 0 1 0 1 0 1 0 0 0 680

NEGATIVO POSITIVO 1 0 1 0 0 0 0 0 0 1 641

NEGATIVO POSITIVO 1 0 0 1 0 1 0 1 0 0 596

NEGATIVO POSITIVO 1 0 0 0 1 0 1 0 0 1 553

POSITIVO NEGATIVO 1 0 0 0 0 0 0 0 0 1 513

POSITIVO NEGATIVO 0 1 1 1 0 1 0 0 1 1 467

POSITIVO NEGATIVO 0 1 1 0 1 0 1 0 1 0 426

NEGATIVO POSITIVO 0 1 1 0 0 0 0 0 0 1 385

NEGATIVO POSITIVO 0 1 0 1 0 1 0 0 1 1 339

NEGATIVO POSITIVO 0 1 0 0 1 0 1 0 1 1 299

POSITIVO NEGATIVO 0 0 1 1 1 1 1 1 1 1 255

POSITIVO NEGATIVO 0 0 1 1 0 1 0 0 1 1 211

3.6.2 Diseño el decodificador de conmutación

De la carta de conmutación obtenida, se logra interpretar lo mostrado en la Tabla

10, en promedio se tienen que dar 42.6 cuentas para que la polaridad en las bobinas

necesite ser cambiada.

Como no se puede realizar el cambio de polaridad en las 42.6 cuentas exactas,

debido a que del sensor no se pueden obtener posiciones fraccionarias, se

consideró que la mejor manera para manejar el cambio de polaridad, era en algunas

ocasiones hacerlo cada 42 cuentas y en otras cada 43 cuentas, interpolando para

Page 81: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

78

encontrar la combinación que generará el menor error posible con respecto a la

tabla de conmutación de la Tabla 9.

Tabla 10 Número de cuentas en las que se debe generar el cambio de polaridad

Valor medido Diferencia

(Vant - Vactual)

Valor medido Diferencia

(Vant - Vactual)

Valor medido Diferencia

(Vant - Vactual)

171 40 854 41 513 40

126 45 808 46 467 46

84 42 768 40 426 41

43 41 725 43 385 41

1022 45 680 45 339 46

982 40 641 39 299 40

938 44 596 45 255 44

895 43 553 43 211 44

En promedio la diferencia = 42.66 cuentas

La interpolación más adecuada que se encontró es la mostrada en la Tabla 11, con

su respectiva conexión de las fases, como se puede observar el error más grande

que se tiene es de 2 cuentas.

Page 82: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

79

Tab

la 1

1 R

an

go

s p

ara

co

nmu

tar

Ran

go

de

su

ma

Val

or

par

a co

nm

uta

r (d

eci

mal

)

Tab

la p

ara

con

mu

tar

(bin

ario

) V

alo

r M

ed

ido

(d

eci

mal

)

Val

or

me

did

o (

bin

ario

) Er

ror

(me

did

o v

s ca

lcu

lad

o)

AH

A

L B

H

BL

CH

C

L N

o.

Co

nm

uta

ció

n

42

42

0 0

0 0

1 0

1 0

1 0

4

3

0 0

0 0

1

0

1

0

1

1

1

0

1

1

0 0

0

4

43

85

0 0

0 1

0 1

0 1

0 1

8

4

0 0

0 1

0

1

0

1

0

0

1

0

1

0

0 1

0

3

42

12

7 0

0 0

1 1

1 1

1 1

1

12

6

0 0

0 1

1

1

1

1

1

0

1

0

0

0

1 1

0

2

43

17

0 0

0 1

0 1

0 1

0 1

0

17

1

0 0

1 0

1

0

1

0

1

1

1

1

0

0

1 0

0

1

42

21

2 0

0 1

1 0

1 0

1 0

0

21

1

0 0

1 1

0

1

0

0

1

1

1

1

0

0

0 0

1

6

43

25

5 0

0 1

1 1

1 1

1 1

1

25

5

0 0

1 1

1

1

1

1

1

1

0

0

0

1

0 0

1

5

43

29

8 0

1 0

0 1

0 1

0 1

0

29

9

0 1

0 0

1

0

1

0

1

1

1

0

1

1

0 0

0

4

42

34

0 0

1 0

1 0

1 0

1 0

0

33

9

0 1

0 1

0

1

0

0

1

1

1

0

1

0

0 1

0

3

43

38

3 0

1 0

1 1

1 1

1 1

1

38

5

0 1

1 0

0

0

0

0

0

1

2

0

0

0

1 1

0

2

43

42

6 0

1 1

0 1

0 1

0 1

0

42

6

0 1

1 0

1

0

1

0

1

0

0

1

0

0

1 0

0

1

42

46

8 0

1 1

1 0

1 0

1 0

0

46

7

0 1

1 1

0

1

0

0

1

1

1

1

0

0

0 0

1

6

43

51

1 0

1 1

1 1

1 1

1 1

1

51

3

1 0

0 0

0

0

0

0

0

1

2

0

0

1

0 0

1

5

42

55

3 1

0 0

0 1

0 1

0 0

1

55

3

1 0

0 0

1

0

1

0

0

1

0

0

1

1

0 0

0

4

43

59

6 1

0 0

1 0

1 0

1 0

0

59

6

1 0

0 1

0

1

0

1

0

0

0

0

1

0

0 1

0

3

43

63

9 1

0 0

1 1

1 1

1 1

1

64

1

1 0

1 0

0

0

0

0

0

1

2

0

0

0

1 1

0

2

42

68

1 1

0 1

0 1

0 1

0 0

1

68

0

1 0

1 0

1

0

1

0

0

0

1

1

0

0

1 0

0

1

43

72

4 1

0 1

1 0

1 0

1 0

0

72

5

1 0

1 1

0

1

0

1

0

1

1

1

0

0

0 0

1

6

43

76

7 1

0 1

1 1

1 1

1 1

1

76

8

1 1

0 0

0

0

0

0

0

0

1

0

0

1

0 0

1

5

42

80

9 1

1 0

0 1

0 1

0 0

1

80

8

1 1

0 0

1

0

1

0

0

0

1

0

1

1

0 0

0

4

43

85

2 1

1 0

1 0

1 0

1 0

0

85

4

1 1

0 1

0

1

0

1

1

0

2

0

1

0

0 1

0

3

43

89

5 1

1 0

1 1

1 1

1 1

1

89

5

1 1

0 1

1

1

1

1

1

1

0

0

0

0

1 1

0

2

43

938

1

1 1

0 1

0 1

0 1

0

93

8

1 1

1 0

1

0

1

0

1

0

0

1

0

0

1 0

0

1

43

98

1 1

1 1

1 0

1 0

1 0

1

98

2

1 1

1 1

0

1

0

1

1

0

1

1

0

0

0 0

1

6

42

10

23

1 1

1 1

1 1

1 1

1 1

1

02

2

1 1

1 1

1

1

1

1

1

0

1

0

0

1

0 0

1

5

Page 83: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

80

Se debe conocer que al desear hacer girar al motor, no se le asigna la conmutación

inmediata al rango donde se encuentra, por ejemplo, si está en una posición dentro

del rango 85-126 y se quiere un giro a la izquierda no se la da a los transistores la

combinación 000110 que es la correspondiente a la conmutación 2 B en bajo y C

en alto, se le da la siguiente que es 100100 correspondiente a la conmutación 1.

De lo contrario, cuando se experimentó dando el mismo valor al correspondiente en

el rango, el motor giro pero con muchas inconsistencias generando muchas

vibraciones en el motor y el puente h se calentaba mucho.

Se concluye que al compararlo con un sensor Hall, todo el rango seria como la

presencia de un valor (sea uno o cero) y en los Hall se le da la siguiente conmutación

no el filo donde terminaría su observación (rango). Con esto en mente, se desarrolló

la Tabla 12, donde se determinan las conmutaciones correspondientes al sentido

de giro deseado, dependiendo del rango donde se encuentre, la posición leída del

sensor en el estado actual; mencionada tabla solo representa a una vuelta eléctrica

de las cuatro necesarias, basta con repetirla cuatro veces haciendo el incremento

de rangos.

Tabla 12 Conmutación diseñada para el sistema

Rangos de conmutación

Conmutación correspondiente para giro a la izquierda

Conmutación correspondiente para giro a la derecha

0-41 010010 100001

42-84 000110 001001

85-126 100100 011000

127-169 100001 010010

170-211 001001 000110

212-254 011000 100100

3.6.3 Implementación del decodificador de conmutación

Para implementar el diseño del decodificador, se generó el bloque que se mostrado

en la Figura 55, donde como entradas se tiene la dirección deseada de giro, y la

posición del rotor a 10 bits, y como salidas se tienen los pulsos individuales para

cada uno de los seis transistores del puente H.

Page 84: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

81

Figura 55 Bloque del decodificador de conmutación

Internamente se utiliza VHDL para generarlo, véase la Figura 56, de inicio se hace

el ajuste, para unir en una sola señal la dirección deseada, con la posición del rotor,

en la señal “Resolver” que es de 11 bits, con la finalidad de realizar la selección de

conmutación con una sola variable, en el bit más significativo se introduce el valor

de la dirección deseada, si es 1 el giro es hacia la izquierda, si es 0 el giro es hacia

la derecha; en los bits 9 a 0, es ingresada la posición del rotor.

Con la variable “Resolver” conteniendo la información en una sola señal, se realiza

el proceso de selección de conmutación de acuerdo al giro deseado y al rango del

estado actual.

Básicamente se tienen doce condiciones a elegir, ya que existen seis posibles

conmutaciones cuando se gira a la izquierda y seis conmutaciones más cuando se

gira a la derecha, dependiendo del rango en que se encuentre la posición en el

estado actual, se asigna a la variable “Fases” el valor de conmutación que le

corresponde de acuerdo a la Tabla 12.

Por último de forma combinatoria, la señal “Fases”, es dividida en bits individuales

para cada salida de los seis transistores.

Page 85: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

82

Figura 56 Implementación del decodificador de conmutación

Page 86: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

83

3.7 Conmutador Trapezoidal

Para realizar el conmutador trapezoidal se hace la unión del decodificador de

conmutación con el generador de PWM, mediante compuertas AND, como se

muestra en la Figura 57, se utiliza una compuerta por cada transistor, la función que

realiza es, cuando el decodificador selecciona a un transistor como activado, la

señal de activación de este sea troceada dependiendo de los valores que el

generador de PWM tenga, y cuando el decodificador desactive el transistor el

troceado del PWM no llegue a él.

Figura 57 Diagrama del Conmutador Trapezoidal

A manera de ejemplo, supóngase que se está dentro del rango 255 – 297 y se desea

girar hacia la izquierda, en este caso el decodificador va a tener la combinación a

su salida “010010”, que significa que el transistor de la fase A bajo y el transistor de

la fase C alto deben estar activados, todos los demás transistores deben estar

desactivados.

Page 87: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

84

Al salir a las compuertas, las únicas que tendrán a su salida valores de activación

serán las correspondientes “AL” y “CH”, todas las demás están desactivadas debido

a que el cero que manda el decodificador a ellas, congela su salida a cero, que es

el valor de desactivación de los transistores, las dos únicas compuertas que siguen

trabajando, a su salida no se observará el valor lógico alto de manera fija, lo que se

observará será el troceado que esté realizando el PWM.

3.8 Generación del PWM senoidal

Para generar el PWM senoidal, como se mencionó en el capítulo anterior se tiene

que calcular en tiempo real, en base a la Ecuación 5, en la Figura 58 se muestra a

bloques, el diseño que se realizó para cumplir con mencionada función. Donde por

un lado se calcula la forma del PWM, y por otra entrada se tiene la amplitud del

PWM, unidos en sincronía por medio de la multiplicación para entregar el valor con

amplitud y forma al generador de PWM.

Figura 58 Diagrama a bloques del diseño del PWM senoidal

3.8.1 Posición Angular

Para obtener la posición angular con la que PWM obtendrá su forma, no está dada

solo por el valor de posición del rotor multiplicada por el valor de incremento angular

como se pensaba en un inicio.

En este instante es donde se debe sumar la fase correspondiente a la bobina, para

que el cálculo del seno sea correspondiente con el desfasamiento de estas en el

motor.

Además, como se realiza en la conmutación trapezoidal, las bobinas deben tener la

polaridad del siguiente paso de conmutación, no el de la conmutación en estado

Page 88: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

85

actual, sin embargo, en el PWM senoidal además de dar la polaridad del paso de

conmutación siguiente, se debe dar la forma de la siguiente conmutación. Para

ejemplificar obsérvese la Figura 59, supóngase que el rotor se encuentra en alguna

posición dentro del rango de 255-297 posiciones, y se desea girar en sentido

horario, para lograr conmutar, a la posición se le debe sumar 43 posiciones para

que se le asigne la forma de conmutación del rango 298-339, en caso contrario que

se deseará girar en sentido antihorario se le deben sumar 43 posiciones para que

el PWM tome la forma del rango 212-254.

Figura 59 Gráfica de conmutación senoidal

Hasta este momento, se tendría el valor para calcular que tanto incremento angular

se debe generar en el PWM, cabe mencionar que el incremento en grados de la

senoide no es grado a grado o de dos en dos grados, el avance en grados depende

de la resolución que se tenga del sensor de retroalimentación, ya que este mínimo

avance en grados, será con que finura el PWM logrará, generar un avance en el

motor.

Para obtener el mínimo avance en grados que se puede realizar, es de considerar

que, por vuelta mecánica del rotor se realizan cuatro vueltas eléctricas.

Mecánicamente la vuelta eléctrica está dividida en 256 partes iguales, debido a que

una mecánica equivale a 1024 partes o posiciones.

Page 89: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

86

Para conocer el mínimo avance en grados, se tiene que hacer referencia a la

Ecuación 9, considerando que una vuelta eléctrica equivale a 360°.

𝑉𝑢𝑒𝑙𝑡𝑎 𝐸𝑙é𝑐𝑡𝑟𝑖𝑐𝑎 𝑒𝑛 𝑔𝑟𝑎𝑑𝑜𝑠

𝑃𝑜𝑠𝑖𝑐𝑖𝑜𝑛𝑒𝑠 𝑞𝑢𝑒 𝑐𝑜𝑛𝑓𝑜𝑟𝑚𝑎𝑛 𝑙𝑎 𝑣𝑢𝑒𝑙𝑡𝑎 𝑒𝑙é𝑐𝑡𝑟𝑖𝑐𝑎=

360

256= 1.4062 𝑔𝑟𝑎𝑑𝑜𝑠

( 9)

El cálculo del seno en el algoritmo CORDIC del hardware dedicado, se realiza en

radianes, por lo tanto el avance mínimo en grados debe ser convertido a esta

unidad, el valor resultado de la conversión, es considerado en la resolución de 16

bits, para tener la mayor proximidad en la conversión decimal a binario, y omitir en

medida lo posible el error de cálculo acumulado por este motivo.

180° = 𝜋 𝑟𝑎𝑑

1.40625 = 𝑥

Donde:

𝑥 = 0.024543693 𝑟𝑎𝑑 que en binario es 000.0000011001001

Ahora bien, la onda senoidal a generar es solo la mitad de los 360°, debido a que

en el PWM solo se pueden generar los primeros 180° valores positivos, algo que no

es problema ya que el puente “H” generará la inversión para completar los 360°;

esta media onda, se repetirá las veces que sean necesarias, por tanto solo se

observarán 7 bits para generar la forma y el reinicio se dará de manera natural del

0 al 127.

Para generar la forma de onda se debe conocer, la posición más la fase y el

incremento de conmutación entre 0 y 127, y multiplicarlo por el mínimo avance en

grados calculando en la Ecuación 9.

Se tiene entonces:

Figura 60 Obtención de la posición angular

Page 90: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

87

A la posición, para poder multiplicada por el mínimo avance en radianes, se ajusta

a 16 bits, en el resultado de la multiplicación, se toman solo 16 bits, ya que el

resultado se ajusta a la parte menos significativa de estos.

Lo anterior, es implementado en el bloque “sumador” mostrado en la Figura 61, que

tiene como entradas a las variables de posición del rotor, fase a sumar, el

incremento de la forma, dirección deseada de giro, el reloj del sistema para la

sincronía, la señal de registra posición que indicará la existencia de un nuevo valor

para realizar cálculo; y como salida se tiene a los 16 bits con los que se generará

en cálculo del seno.

Figura 61 Bloque "Sumador"

Internamente como se muestra en la Figura 62, se realiza mediante VHDL lo

diseñado, inicialmente se realiza el ajuste de la posición del rotor a 16 bits, en la

variable “pos” para que pueda ser multiplicado con el mínimo avance en grados.

En las señales “sum” y “res” se realizan los cálculos aritméticos para añadir a la

posición del rotor, la fase correspondiente y el incremento para dar la forma de la

senoide siguiente, la única diferencia entre estas variables es, el incremento de

forma, ya que es sumado en la variable “sum”, y restado en la variable “res”. En la

variable aux2 es almacenado el cálculo aritmético de “sum” o “res”, dependiendo de

en qué dirección se desea que el motor gire, si se desea giro a la derecha se

almacena “sum”, de lo contrario “res” es almacenada.

De la operación aritmética resultante son tomados, los siete bits menos significativos

para lograr el reinicio natural al obtener la media onda, y son almacenados en los

siete bits menos significativos de “pos”.

En sincronía con la señal de reloj, cada vez que se dé un flanco de subida, se

realizará la multiplicación de “pos” por el mínimo avance en grados, siempre y

Page 91: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

88

cuando “reg_pos” este el valor lógico bajo, “reg_pos” con el nivel alto indica que se

registró un nuevo valor de posición del rotor, por ende en este bloque “sumador” se

observa al valor lógico bajo, así se garantiza que se dio el cambio de posición, y las

señales ya se propagaron por el sistema y están estables, para generar el nuevo

cálculo, de lo contrario se tendrá el problema de realizar cálculos con valores en

transición.

Figura 62 VHDL del bloque "Sumador"

3.8.2 Cálculo de seno

Para realizar el cálculo del seno, se utiliza la macro de XILINX de cálculos CORDIC,

mostrada en la Figura 63, donde se tiene a la entrada los 16 bits del valor al cual se

le calculará el seno, la señal “nd” nuevo dato y el reloj del sistema de 50 MHz; como

salida, se obtiene el valor del seno en 10 bits, y la señal de listo.

Cada vez que la macro reciba la señal de nuevo valor, iniciara el cálculo del seno

del valor que se encuentre en su entrada, al finalizar el cálculo, la señal “rdy” tendrá

el cambio de nivel de cero a uno, y el valor el resultado del cálculo se podrá obtener

a la salida de la macro.

Page 92: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

89

Figura 63 Macro de cálculo CORDIC

3.8.3 Multiplicador

Para realizar la multiplicación de la Amplitud por el seno, se generó el bloque

“Multiplicador_7_7”, mostrado en la Figura 64, el cual tiene capacidad de multiplicar

7 bits por 7 bits, dando resultado a 14 bits, tiene como entradas a: “Ent_A” donde

se ingresa el valor resultado del cálculo del seno, considerando siete bits

intermedios del 2 al 8 de los diez disponibles, “Ent B” donde se ingresa el valor de

la amplitud previamente ajustada a 7 bits, ya que el controlador la genera a ocho

bits, la señal “LForma” proveniente de la señal “rdy” de la macro de cálculo cordic,

la señal “LAmpli” acoplado con la señal de muestreo que se manda al convertidor

analógico-digital, y “R50Mhz” donde se ingresa el reloj del sistema de 50 MHz; como

salida se obtiene el resultado de la multiplicación a 14 bits.

Figura 64 Multiplicador de amplitud por seno

En este multiplicador se debe ser cuidadoso con los valores que son tomados para

realizar la multiplicación, ya que un valor en transición o erróneo que se tome para

multiplicar, se reflejará en amplitud y forma no correspondiente al movimiento

deseado.

Page 93: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

90

En la Figura 65, se muestra el código que conforma el bloque Multiplicador_7_7,

como se puede apreciar se realiza la entrada de los datos de amplitud y forma de

manera registrada con el reloj del sistema, además con la condición de que las

señales “LForma” y ”LApmli” se encuentren en valor lógico alto.

En caso de la señal de listo del CORDIC, tenga un nivel alto y el reloj del sistema

tenga un flanco de subida, significará que se ha calculado un nuevo valor de forma

por lo cual el PWM debe cambiar, entonces el valor del seno, en la variable “B”, que

se utiliza para la multiplicación podrá cambiar, de lo contrario se mantendrá en el

mismo valor para no alterar la multiplicación.

Por otro lado, si se da un nuevo muestreo del sistema “LAmpli” tendrá un valor lógico

alto y aunado con un flanco de subida del reloj del sistema, significará que existe un

nuevo valor de amplitud, por lo cual el sistema permitirá que el valor en “A”, cambie

por el nuevo valor de amplitud, de lo contrario “A” mantiene su valor a multiplicar.

De esta manera, se asegura que cualquier cambio, ya sea en amplitud o en forma

del PWM senoidal, sea atendido sin multiplicar con valores inestables.

Figura 65 Código en VHDL del Multiplicador_7_7

Page 94: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

91

3.8.4 Generador de Ancho de Pulso

Al tener el valor de multiplicación conformado por forma y amplitud, el último paso

es generar anchos de pulso con mencionado valor, para lo cual se desarrolla el

bloque “top2” mostrado en la Figura 66, que tiene como entradas al reloj del sistema,

a la señal de borrado general del sistema, y a los catorce bits resultado de la

multiplicación del bloque Multiplicador_7_7, en “dat_pwm”; como salida tiene al

PWM senoidal.

Figura 66 Bloque "top2", generador de ancho de pulso

Internamente se tiene el diagrama mostrado en la Figura 67, el cual es básicamente

el mismo generador de PWM trapezoidal, con el divisor de frecuencia y lo límites de

conmutación, explicados con anterioridad; con la diferencia, de que la amplitud para

generar el ancho de pulso es registrada en “reg_14”, antes de ser utilizada.

Figura 67 Diagrama generador del ancho de pulso senoidal

El registro “reg_14”, que tiene la capacidad de almacenar el resultado de la

multiplicación en sincronía con la señal de reloj del sistema, para que el generador

de PWM, no cambie en valores transitorios, además de que a su salida se realiza

un corrimiento de valores, ya que de los 14 bits disponibles, se consideran solo ocho

Page 95: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

92

bits del 5 al 12 , con la finalidad de generar cambios de ancho de pulso más grandes

y significativos para el motor, ya que de lo contrario con muy ligeros cambios, no

visibles para el motor, en la amplitud o forma se le pediría al ancho de pulso

modificarse. En la Figura 68, se muestra el VHDL encargado de esta función.

Figura 68 Código VHDL del bloque "reg_14"

3.8.5 PWM senoidal

Para generar el PWM senoidal se unen los bloques anteriores, como muestra el

diagrama de la Figura 69, añadiendo que la señal de borrado general del sistema

con su flanco de bajada, es capaz de registrar nuevo valor de forma y pedirle al

CORDIC que genere un nuevo cálculo.

Como se cuenta con sensor absoluto se conoce la posición estacionaria del rotor,

valor aprovechado para que al borrar al sistema se tome en cuenta este valor, y se

tenga una forma inicial para multiplicar con la amplitud, de lo contrario la amplitud

se multiplicaría por cero y el sistema no podría hacer girar al motor, y por lo tanto

no generar una nueva posición para indicar que la forma cambio y permitir que la

dinámica del sistema continúe.

Page 96: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

93

Figura 69 Diagrama del generador de PWM senoidal

Se genera con este diagrama, el bloque “pwm_cor” mostrado en la Figura 70, el

cual tiene como entradas a: la frecuencia de muestreo de la posición en

“Frec_muestra”, la señal de que se registró un cambio de posición en “Reg_pos”, la

señal de dirección deseada en “Direccion”, la señal de borrado general del sistema,

el reloj del sistema, la amplitud, posición, incremento de conmutación y el

incremento de fase; como salida, se tiene el pwm senoidal.

Figura 70 Bloque "pwm_cor", generador de un PWM senoidal

Page 97: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

94

A partir del bloque “pwm_cor”, se generan las tres ondas senoidales requeridas para

el motor, con el diagrama mostrado en la Figura 71, modificando únicamente la fase

a sumar, generando un nuevo bloque llamado “Genera_PWM_senoidal”.

Figura 71 Diagrama para generar los tres PWM senoidales del sistema

3.9 Decodificador de PWM senoidal

Para conmutar al motor en forma senoidal se hace uso de una variante del

decodificador trapezoidal, se sigue basando en la filosofía de trabajo de la

conmutación trapezoidal pero con las variantes, de que este decodificador debe

generar el valor de incremento para la forma de conmutación, además de las

señales de bloqueo de PWM para cuando se desea desenergizar a las bobinas en

modo lento, el bloque “conmuta_senoidal”, mostrado en la Figura 72, es el

encargado de realizar esta función. A su entrada se tiene la dirección deseada de

giro y el valor de la posición registrada; a su salida se tienen las señales individuales

para la activación de cada transistor, el valor de incremento para la forma de

conmutación, y las señales por cada fase, para inhabilitar el PWM en el caso de

desenergizar lento.

Page 98: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

95

Figura 72 Bloque "conmuta_senoidal", decodificador para la conmutación senoidal

En la Figura 73, se muestra la implementación del decodificador senoidal, como se

puede apreciar los rangos de conmutación, no cambian, sin embargo, a diferencia

de la conmutación trapezoidal, en la conmutación senoidal, como pudo observar en

la Figura 49, la tres fases contribuyen en todo momento al movimiento del motor en

mayor o menor medida, por ende en este decodificador la señal fases, tiene tres

valores en alto, es decir tres transistores activos en cada paso de conmutación, para

determinar cuáles son los transistores que se deben activar se debe considerar de

nuevo la Figura 49, donde por cada rango se tiene establecido que fase o fases van

a estar en polaridad positiva y cual o cuales en polaridad negativa.

También se puede observar, a la variable “Incre”, la cual de acuerdo al rango de

conmutación en el que se encuentre el rotor toma el valor de 42 o 43, el cual es el

incremento que recibe el sumador del generador de PWM senoidal para conocer la

posición angular siguiente.

Por otra parte se tiene ala variable “Inhabilita”, la cual dependiendo de igual manera

del rango de conmutación en donde se encuentre el rotor, va a seleccionar que fase

dejará de observar PWM y se mantendrá el transistor cerrado durante todo el rango,

con la combinación “100” inhabilita a “A”, con “010” inhabilita B y con “001” inhabilita

C. El criterio de selección para desenergizar lento, es explicado más adelante.

Por último en el decodificador senoidal, las señales “Fases” e “Inhabilita”, son

separadas en salidas individuales, para cada fase.

Page 99: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

96

Figura 73 Implementación del decodificador de conmutación senoidal

Page 100: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

97

3.9.1 Descarga lenta en la conmutación senoidal

Al trabajar con la conmutación senoidal, se intentó poner en descarga lenta a las

bobinas de la misma manera que se hace en la conmutación trapezoidal, dejando

sin ancho de pulso a los transistores de la parte baja del puente H.

Inicialmente se consideraba que estaba bien, ya que dé girar 100 rpm máximo a 24

V, con este método se lograba alcanzar la velocidad de 1500 rpm; sin embargo, se

observó que el chip de puente H se calentaba, y al medir corriente al vacío esta se

aumentaba, consumiendo de 0.08 A a 0.45 A lo cual hizo dudar de este

procedimiento.

Se observó experimentalmente que la señal obtenida en vez de generar la senoide

la estaba destruyendo, se perdía la forma y el cálculo que se estaba realizando, ya

que se pierde amplitud, forma y fase, con este método no se logra tener la descarga

lenta de las bobinas en la conmutación senoidal.

Para poder lograr la descarga lenta en la conmutación senoidal, el método que se

ideó, es no congelar los transistores de la parte baje del puente H, sin ancho de

pulso, en el caso de la conmutación senoidal, se tiene en los pasos de conmutación

cruces con aportación de energía diferente en cada rango, como se observa en la

Figura 74, no es correcto amarrar transistores sin motivo, lo que se debe hacer es

amarrar únicamente y dinámicamente, al transistor que está en su punto máximo,

no importando si está en su máximo positivo o negativo, ya que ese punto máximo,

es el contrario del resultado de la suma de las otras dos fases.

Figura 74 Transistores en punto máximo de conmutación, en la conmutación senoidal

Page 101: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

98

Como ejemplo, Obsérvese en el punto de la conmutación 4, “A” se encuentra en su

punto máximo, por tanto es la fase que se congela para este paso de conmutación,

“C” y “B” se mantendrán con PWM porque son los que en suma, tendrán la energía

que se desea en el motor.

No importa si en el paso de conmutación, se tiene que congelar a máximo positivo

o máximo negativo, ya que con congelar solo el transistor que está en máximo, se

logra tener la energía recirculando dentro del puente H, es decir se logra la descarga

lenta.

Con esta idea en mente, al implementarlo fue posible que el motor comenzara su

movimiento con menos porcentaje de PWM, la corriente no aumenta se mantiene

en 0.08 A y las rpm subieron de 700 a 1000 rpm.

3.10 Conmutador Senoidal

Para realizar el conmutador senoidal se unen los bloques descritos anteriormente

como se muestra en la Figura 75.

Figura 75 Conmutador Senoidal

Page 102: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

99

Como se puede observar el PWM y la señal de conmutación proveniente del

decodificador, son unidas por medio de la compuerta AND, con la finalidad de que

el troceo de voltaje sea visto por el transistor, solo cuando el decodificador lo ha

seleccionado como transistor activo.

Sin embargo, al accionar el motor de forma senoidal, este no salía del reposo al

iniciar la conmutación, por lo que era necesario manualmente darle impulso para

que iniciara el giro. Primero se realizó el seguimiento a los puntos de conmutación

para detectar la falla, se observó a los valores seno de la forma y que transistor se

tenía PWM activo, obteniéndose los valores de la Tabla 13, en donde se observó

que solo cuando se congela, sin ancho de pulso al transistor de arriba de alguna

rama, de acuerdo a la posición, es cuando no arranca el motor, acción repetitiva en

ambos sentidos de giro.

Tabla 13 Valores obtenidos para identificación de falla en el arranque de conmutación senoidal

Giro a la Izquierda Giro a la Derecha

Posición Transistor sin PWM

Arranque Posición Transistor sin PWM

Arranque

280 CH No 288 AH No

300 BL Si 330 CL Si

350 AH No 369 BH No

386 CL Si 406 AL Si

434 BH No 430 CH No

476 AL Si 503 BL Si

Al ser la falla solo en el momento que se congelaba al transistor superior, se realizó

el monitoreo al trabajo del capacitor de arranque, encargado de darle el voltaje para

que cierre el transistor. Observando algo no esperado, al dar borrado general del

sistema, el capacitor lograba obtener carga de 15 V; sin embargo, se tenía la falsa

idea de que el capacitor se mantenía cargado hasta el momento que se fuera a

ocupar, y esto no es así casi de inmediato después de dejar de la señal de borrado,

que es donde se obliga a los transistores de abajo a cerrar para que el capacitor de

arranque cargue, el capacitor comienza a perder energía, por lo cual al momento de

querer utilizar un transistor de arriba no era posible, porque el capacitor ya no tenía

energía para cerrar la compuerta.

Este problema se vio acrecentado, por la limitación de amplitud del PWM, ya que

valores menores al 2% de ancho de pulso, se vuelven cero para proteger al

transistor, por lo cual al dar borrado general, al cambiar de sentido de giro o al

detener el movimiento, intentar que arrancará de nuevo era imposible.

Page 103: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

100

Lo anterior se solucionó observando, que si con cada señal de borrado general, se

cerraban los transistores de abajo y así se lograban cargar los capacitores de

arranque, también teníamos que observar que el motor no estuviera parado, ya que

es el único lugar donde se da este problema, al estar en movimiento la misma

dinámica de desenergizado de la bobina carga a los capacitores de arranque.

Para determinar que el motor no está parado, se requiere que los PWM0, PWM180

y PWM 240 sean cero al mismo tiempo, ocasionando que se cierren los transistores

de abajo para cargar los capacitores de arranque, y así después de borrado general,

cambio de giro o un simple paro y arranque, el motor logre salir del reposo por sí

solo.

La implementación para cargar los capacitores de arranque, se realiza en el bloque

“Carga_bootstrap” mostrado en la Figura 76, que tiene como entradas, a la señal de

borrado general, y los tres PWM senoidales para cada fase; a su salida se tiene de

forma individual, a la señal para cada compuerta del transistor.

Figura 76 Bloque "Carga_bootstrap"

Internamente la lógica de este bloque, mostrado en la Figura 77, es inicialmente

verificar que los anchos de pulso sean cero al mismo tiempo, de ser así la señal

“cero” recibe un valor lógico alto, de lo contrario recibe el valor lógico bajo. Con la

asignación establecida en la señal “cero”, se procede a evaluar los casos de que

hace realizado el borrado general o los PWM sean ceros, si alguna de estas dos

situaciones se cumple, las señales “AL”, “BL”, “CL”, recibirán el valor lógico alto con

la finalidad de cerrar los transistores de abajo para cargar los capacitores, y las

señales “AH”, “BH”, “CH”, reciben el valor opuesto, con la finalidad de abrir los

transistores superiores para evitar el cortocircuito.

Page 104: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

101

Si la condición de borrado general o PWM ceros no se cumplen, se generan señales

que permitirán la operación normal del conmutador.

Figura 77 Lógica del bloque "Carga_bootstrap"

3.11 Conmutador del sistema

El conmutador trapezoidal y senoidal se encuentran dentro del bloque

“Conmutacion”, que se muestra en la Figura 78, de este bloque se obtienen los

puertos de salida de las seis señales para los transistores del puente H, las señales

de PWM trapezoidal, PWM0, PWM120 y PWM240 son puntos de prueba mostrados

en pines exteriores del FPGA, para poder monitorearlos.

Page 105: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

102

Figura 78 Bloque "Conmutación", contenedor de la conmutación trapezoidal y senoidal

3.12 Interfaz hombre-máquina

En el desarrollo de esta aplicación se implementa, por medio de registros digitales,

un banco de registros el cual permite almacenar información para configurar al

sistema, así como para poder monitorearlo. La interfaz gráfica de la PC, es utilizada

únicamente para leer y escribir en mencionado banco, lo que se resume a accesos

al puerto y generación de protocolo de comunicación.

3.12.1 Registro digital

Un registro de datos, como se muestra en la Figura 79, es el espacio físico dentro

del hardware, donde se almacenanarám los datos del sistema o configuraciones del

usuario.

Información

Registro

Datos Entrada Datos Salida

Escritura

Lectura

Reset

Figura 79 Diagrama general de un registro electrónico

Page 106: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

103

El registro tiene un bus de datos bidireccional de ocho bits y tres señales de control:

escritura, ingresa datos; lectura, saca datos y reset, que inicializa con ceros el

contenido.

Con el registro se puede conformar de manera flexible, un banco de cualquier

tamaño para cubrir las necesidades de todas las aplicaciones.

Dentro de la implementación en el FPGA, se diseñó la función de un registro, a partir

del elemento básico CB8CLE, el cual es un contador de ocho bits con carga de

datos síncrona y reseteo asíncrono.

La Figura 80, muestra el circuito necesario para almacenar datos en un registro,

este circuito comprende del contador antes mencionado, las señales de control:

escritura, datos y borrar provenientes del puerto paralelo de la PC, además de la

señal de reloj interno del FPGA, para realizar la sincronización.

Figura 80 Circuito para escritura, un registro

El comportamiento del registro se representa en la Tabla 14, en la cual se puede

interpretar que el reseteo asíncrono obliga a que los datos en la salida del contador

sean de valor lógico cero, sin importar la transición en la que se encuentre el reloj

interno del hardware; la carga de datos será realizada y estos serán almacenados

dentro del registro, cuando la entrada “carga” este en estado alto y la transición

positiva del reloj se haga presente.

Tabla 14 Tabla de verdad del registro digital

Entradas Salida

Reseteo (CLR) Carga (L) Conteo (CE) Reloj (C) D7-D0 Q7-Q0 1 X X X X 0

0 1 X Datos Datos

0 0 0 X X Sin cambio

0 0 1 X Incremento

Page 107: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

104

Es importante asegurar que la señal que habilita el conteo (la entrada CE), se

encuentre en estado deshabilitado para que el dato almacenado no se modifique.

La señal para acarreo de cuenta (CEO) y la que indica que el conteo ha llegado a

su máximo (TC) no son utilizadas en esta aplicación.

Para completar la función de registro, se necesita tener la operación de lectura, por

el mismo bus que se utiliza para escribir, en consecuencia este bus será

bidireccional. Como se observa en la Figura 81, este bus intersecta entradas y

salidas en un punto común, entonces es necesaria la siguiente serie de pasos para

poder llevar a cabo estas acciones sin conflictos:

1. El puerto de datos en la PC inicialmente está en modo salida, debe cambiar

a modo entrada.

2. La señal de lectura se manda desde la PC.

3. La PC toma los datos del registro.

4. Se desactiva la señal de lectura.

5. El puerto de datos se cambia a modo salida.

La señal de lectura en el FPGA, se implementa utilizando el buffer de tercer estado

OBUFT8 en la salida de los datos, este tiene la función de colocar los datos de

salida del registro dentro del bus cuando se requiera, esto sucede al recibir el

comando de lectura del que se habla anteriormente; en caso contrario, se mantiene

en estado alta impedancia.

Así se tiene la posibilidad de utilizar el bus de manera bidireccional y tener el control

de cuando se desea leer y cuando escribir, evitando colocar ambas operaciones al

mismo tiempo, lo que provocaría interferencia de datos o la pérdida de estos.

Con este diseño, se logra utilizar la comunicación vía puerto paralelo de la PC que

tiene la limitante de enviar y recibir datos por una sola dirección del puerto, el único

bidireccional.

Page 108: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

105

Figura 81 Circuito para lectura y escritura de datos, un registro

3.12.2 Banco de registros

El banco de registros se genera por medio de módulos, un módulo se conforma de

cuatro registros, se pueden conectar tantos módulos como sean requeridos por la

aplicación, logrando así conformar el banco de registros flexiblemente.

La aplicación realizada puede requerir de un solo módulo de registros o de mayor

espacio de almacenamiento, tanto para datos de configuración provenientes de la

PC, como de datos de operación del sistema dentro del FPGA, por esto se crea una

macro a forma de esquema que contenga estas capacidades, Figura 82.

Figura 82 Macro implementada de cuatro registros

Page 109: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

106

Esta capacidad que se le da al FPGA es muy útil, ya que se da el espacio justo para

cada aplicación, optimizando recursos, para esta aplicación son utilizadas 22

macros de “BancoRegistros”, teniendo en total 88 registros de ocho bits para

almacenar información.

La macro, internamente tiene cuatro registros con la habilidad para escribir en él, se

muestra en la Figura 83, este circuito consta de cuatro registros como los

anteriormente mencionados, utilizando de manera auxiliar la operación de la

compuerta “and” entre la señal de escribe y la señal de habilitación de banco, esto

para tener el control de a quien se le realizará la carga de datos. La señal habilitación

de banco es agregada, debido a que se requieren bancos de registros trabajando

conjuntamente, esta señal es la que se modifica de acuerdo al banco en el que se

desea trabajar.

Figura 83 Macro de cuatro registros, solo escritura

Sin embargo, hasta este punto el banco de registros solo tiene la capacidad para

recibir y guardar el mismo dato en todos sus módulos, por esto es necesario integrar

el multiplexor “D2_4E”, véase Figura 84, el cual se encarga de direccionar a que

módulo se le desean cargar los datos, creando indirectamente las direcciones de

los registros. La salida del multiplexor brinda una señal con la cual se selecciona el

número de registro a utilizar para almacenar la información.

Para la operación de lectura dentro del arreglo del banco de registros, se requiere

de otro multiplexor con entradas y salida del tipo bus, en este caso el

Page 110: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

107

“MultiplexorBus4a1”, el cual trabaja en sincronia con la misma dirección que se le

haya establecido al multiplexor de entrada de datos, con esto se tiene un banco de

registros con acceso a todos los registros de manera individual.

Figura 84 Implementación de la macro de cuatro registros

La conexión de las macros es realizada, como se muestra en la Figura 85, se puede

observar todas las señales, que provienen de la PC son filtradas, por medio del filtro

digital para evitar que los datos y señales de control sean erróneos al capturar en el

banco de datos.

Page 111: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 3. Accionamiento del motor PMBLDC

108

Figura 85 Banco de registros Implementado

Page 112: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

109

En la Tabla 15, se indican las localidades utilizadas del FPGA, para implementar la interfaz con la

PC.

Tabla 15 Localidades interfaz PC

Función FPGA DB25

D0 B4 2

D1 A4 3

D2 A5 4

D3 B6 5

D4 A6 6

D5 A7 7

D6 A8 8

D7 A9 9

RESET C10 1

WRITE A10 14

READ A11 16

DAT/DIR A12 17

Page 113: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

110

Capítulo 4.

Control

4.1 Introducción

En este capítulo, se muestra el diseño y la implementación del sistema de control

distribuido en el FPGA, con la capacidad de regular la posición, velocidad y

aceleración. Siguiendo un perfil de trayectoria en tiempo real de acuerdo a los

requerimientos del usuario. Determinando que para el modo posición, el perfil de

trayectoria tendrá una rampa de aceleración, desplazamiento a velocidad de

referencia y una equivalente rampa de desaceleración, en el caso del modo

velocidad, el perfil de trayectoria se limita a tener una rampa de aceleración, hasta

llegar a la velocidad de referencia, ya que la desaceleración en un vehículo eléctrico

se sigue realizando de manera mecánica por fricción o con otros elementos

eléctricos externos al sistema de tracción, debido a que si se frenará al sistema con

el mismo motor de tracción, se frenaría utilizando energía del banco de baterías,

generando gasto de energía no deseable en la aplicación de vehículo eléctrico.

Se describe de igual manera, la forma en la que se realiza la gráfica del

comportamiento del sistema, utilizada para sintonizar a las constantes de la acción

de control Kp, Ki y Kd, ante un cambio abrupto de posición a velocidad y aceleración

máxima, definiendo que la captura de información se hace en modo ráfaga dentro

del hardware dedicado, y la PC es la encargada de leer los valores capturados para

presentar un gráfico en la interfaz de usuario.

Se presenta la implementación de la interfaz de potencia, para lograr que la lógica

diseñada se vea reflejada en el BLDC, con la capacidad de voltaje máximo 600 V y

30 A de corriente.

Para finiquitar el capítulo, se expone la necesidad de contar con protecciones

inherentes en el sistema, así como mostrar la implementación de estas protecciones

haciéndolas capaces, de detener al proceso en caso de falla de conexión o la

sobrecompensación del control.

Page 114: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

111

4.2 Control distribuido en FPGA

El control distribuido que se implementa en esta aplicación, es de acuerdo al diseño

a bloques mostrado en la Figura 86, desarrollando un sistema de control de lazo

cerrado con la capacidad de regular, aceleración, velocidad y posición.

Figura 86 Diagrama a bloques del control distribuido implementado

4.3 Sistema Supervisor

Este bloque se implementó en la PC, por la necesidad que se tiene para realizar

cálculos matemáticos de 2do orden; calcula el nuevo valor de referencia, basándose

en las leyes de la física del movimiento rectilíneo uniforme (M.R.U.) y movimiento

rectilíneo uniformemente acelerado (M.R.U.A). Con los nuevos valores de

referencia generados se determina el tiempo entre cada paso para llegar a los

valores deseados de la velocidad y la aceleración.

Figura 87 Relación entre ancho de pulso y cambio en la referencia de posición

En la Figura 87, se muestra que la velocidad es inversamente proporcional a el

tiempo dado entre cada pulso, es decir, si se aumenta el tiempo (t1, t2, t3, t4, t5)

entre cada paso la velocidad disminuye o viceversa. Teniendo los bloques regulador

y supervisor se puede generar el perfil de trayectoria.

T2 T1 T3 T4 T5

Paso 1 Paso 2 Paso 3 Paso 4

𝑉 =𝑠

𝑡

Page 115: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

112

4.4 Sistema Regulador, Algoritmo de control modo posición

La ecuación que muestra en tiempo continuo el algoritmo de control, no puede ser

implementada en lógica digital, lo ideal sería tomar todas las muestras, es decir el

infinito de muestras, situación que no es posible, a menos que sea convertida a

tiempo discreto, que significa trocear la señal para tomar cierto puntos, con el criterio

de tomar las muestras necesarias sin perder información del sistema, diferenciado

se tiene la Ecuación 10:

𝑢(𝑛) = 𝐾𝑝 𝑒(𝑛) + 𝐾𝑖 ∑ 𝑒(𝑛)

𝑁

𝑛=0

+ 𝐾𝑑 [𝑒(𝑛´) − 𝑒(𝑛´ − 0)] ( 10)

Donde:

Kp, Ki, Kd son los coeficientes discretos de control

e(n) es el error en la muestra n

n´ muestra a la frecuencia de derivación

Del error por medio de este algoritmo, se observa su magnitud, duración y rapidez

de cambio; para observar la duración es a través de la operación matemática de

integración ya que representa una acumulación del error en base al tiempo, para

observar la relación de cambio es por la derivada, ya que esta da la diferencia

entre errores y el proporcional permite observar la acción del error en relación a su

magnitud. Para saber qué tanto de cada variable será considerada para la acción

de control, se establecen los coeficientes K.

Los coeficientes K, como tal se mantienen como constantes, una vez que se calibran

ya no se modifican, a menos de que las condiciones cambien, como: aumentar la

carga, modificar la dinámica del sistema o cambio del motor.

El diseño del algoritmo de control implementado para este sistema, mostrado en la

Figura 88, se basa en conocer y nulificar la diferencia que exista entre la posición

deseada y la posición real, por medio de las acciones de control, proporción,

integración y derivación, calculando valores óptimos de amplitud.

La posición deseada es generada por el bloque supervisor del sistema, que será

detallado más adelante y la posición real es obtenida del sensor de

retroalimentación.

Para determinar el tiempo de muestreo, se considera la máxima velocidad de

cambios de posición que se tendrán a la máxima velocidad de giro del motor, es

decir, la resolución que se tiene del sensor de posición por vuelta mecánica

multiplicado por la velocidad máxima de giro del motor en rpm, para garantizar que

Page 116: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

113

se realiza el muestro que permita observa cambios significativos del error, sin

pérdida de información y sin llegar al sobre muestreo. La frecuencia para esta

aplicación es entonces de 3 kHz, es decir cada 0.3 milisegundos, se toma una

muestra nueva.

Figura 88 Diagrama a bloques del algoritmo de control

Sin embargo, existen dos frecuencias de muestreo, para las acciones integral y la

proporcional es utilizada la frecuencia descrita de 3 kHz, y para la acción derivativa

como es de acuerdo a la rapidez de cambio del error, es decir de acuerdo a la

velocidad del sistema, la derivativa va a actuar diferente frecuencia, ya que si no es

muy rápido el sistema y la derivativa tiene una frecuencia de muestreo muy alta, se

llegaría a tener una sobrecompensación, ya que no existiría cambio considerable

del error y la acción estaría corrigiendo, la literatura dice, que si la dinámica el

sistema no es muy alta, la frecuencia de derivación debe ser inferior pero en

sincronía y múltiplo de la frecuencia maestra de 3 kHz, es decir la sintonía del

sistema, se calibra nivel de coeficientes K y el valor del divisor de frecuencia para la

acción derivativa.

4.4.1 Obtención del valor del error

De inicio para conocer el valor del error, se necesita conocer el valor real de posición

del rotor, proveniente de la retroalimentación, además del valor de referencia y un

restador para conocer la diferencia entre estos dos valores.

En el restador, el minuendo será el valor de referencia y el sustraendo debe ser el

valor real, ya que la retroalimentación, de acuerdo a la literatura en sistemas

retroalimentados, la realimentación siempre es negativa.

Para obtener lo valores necesarios para la resta, se implementan dos contadores,

uno para el valor real y otro para el valor de referencia, como el mostrado en la

Figura 89, que tiene como entradas: a la señal de borrado general, la entrada reloj

Page 117: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

114

que es conectada, a los pulsos del encoder emulado, en el caso del contador de

valor real, o a los pulsos del sistema supervisor, en el caso del contador de valor

deseado, y la entrada “Asc_Desc” donde se conecta el pulso de dirección.

Figura 89 Contador de 32 bits, ascendente descendente

Para cargar el valor de posición, pensemos que se desea cargar 25 posiciones,

estas posiciones no son cargadas en forma paralela, se le da una posición a una,

concordando en la forma, que la emulación de encoder da pulsos en su incremento,

da posiciones cuenta a cuenta es decir pulso a pulso, de igual manera el supervisor

entrega el valor de referencia pulso a pulso.

Los contadores son ascendentes descendentes, debido a que, dependiendo, de la

dirección en que se esté realizando el desplazamiento, se va a incrementar o

disminuir la cuenta.

Para conocer de cuantos bits se debe generar este contador, hay que considerar

que la posición guardada es del tipo absoluta, por lo cual el valor máximo va desde

cero hasta el final del recorrido, entonces está dado por el número de cuentas del

sensor, el avance que se tiene en cada revolución y en la distancia desde el inicio

hasta el final del mecanismo.

Supóngase que se tiene una máquina con tres metros de largo, y se tiene la

resolución del sensor de posición de 1000 cuentas por vuelta mecánica, y el

acoplamiento es por medio de un tornillo muy fino de 1 mm, se tiene entonces que

se debe avanzar mil cuentas del rotor para avanzar un milímetro, con lo cual para

avanzar tres metros, son nueve millones de posiciones el error máximo, para este

nivel de error bastaría con 24 bits. Como se busca desarrollar un sistema genérico

ante cualquier desarrollo, el registro es creado a 32 bits, con la reserva de que entre

más grande sea la resolución del sensor de retroalimentación más cuentas a

almacenar se tendrán.

La implementación es realizada, mediante VHDL como se muestra en la Figura 90,

si se recibe la señal en activo alto de borrado general del sistema, los 32 bits de

Page 118: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

115

salida del contador son puestos a cero, con lo que se representa que es el punto

inicial del desplazamiento; de lo contrario, en sincronía con la señal de reloj, en cada

flanco de subida se realiza el incremento en uno a la señal “Sal” en caso de que

“Asc_Desc” sea uno, o se realiza decremento en uno en caso de que “Asc_Desc”

sea cero.

Figura 90 Implementación del contador de 32 bits ascendente-descendente

Se debe destacar que el contador de valor de referencia, contiene el valor de

posición global, este contador sólo es borrado al inicio del movimiento o lo que es

conocido como el “home” del sistema.

Una vez que se tienen registrados los dos valores de posición; referencia y real, se

procede a realizar la operación aritmética de resta para obtener el valor del error,

sobre el cual se van a aplicar las acciones de control.

La diferencia esperada normalmente son valores pequeños, por ende el restador no

es requerido diseñarlo a 32 bits, se diseña con salida del resultado a 16 bits, porque

la parte siguiente de los registros de las acciones de control proporcional, integral,

derivativo son de 16 bits, y se debe cumplir con manejar tipos de datos del mismo

tamaño para realizar operaciones de producto, acumulación y diferenciación.

La implementación del restador es realizado en el bloque de la Figura 91, donde

se observa que entran dos datos de 32 bits y sale un dato de 16 bits.

Page 119: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

116

Figura 91 Bloque restador de 32 bits para obtención del error

Internamente se implementa en VHDL, como se muestra en la Figura 92, se tiene

la señal “aux” de 32 bits para hacer la resta del valor de referencia menos el valor

real, esta operación es realizada en forma combinatoria, y en el puerto “Salida” solo

se le asignan 16 bits del resultado de la resta.

Figura 92 Implementación en VHDL del bloque "Restador_32b"

El error calculado, llega de manera paralela al integrador, al derivador y al

proporcional.

4.4.2 Acción proporcional

La acción proporcional del algoritmo de control, va a actuar en proporción del error,

es decir, si el error es pequeño actúa poco, entre más pequeño actúa menos, por el

contrario si es grande el error, esta acción es la que más va a aportar para corregirlo,

por ende debe existir valor de error para que pueda actuar.

Cabe mencionar que por sí sola, la acción proporcional nunca logra hacer el error

cero, ya que por razones del algoritmo, no se puede dar una compensación tan

pequeña.

Page 120: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

117

Esta acción, es realizada por el bloque mostrado en la Figura 93, que tiene como

entrada al error calculado a 16 bits, la frecuencia de control, el valor de la contante

Kp a 16 bits y la señal de borrado general del sistema; como salida se tiene el valor

calculado de la acción proporcional a 16 bits, lista para ser sumada a las otras dos

acciones de control.

Figura 93 Bloque de la acción proporcional

Internamente el bloque “Proporcional”, está constituido por el diagrama mostrado

en la Figura 94, como se puede observar consta de la multiplicación del error por la

constante Kp dentro del bloque “Multi_16_16_sat”, para registrar el resultado en la

primitiva “CB16CLE” a la cadencia de la frecuencia de muestreo, para garantizar

que el valor que se va a utilizar para generar la acción de control, no esté en

transición.

Figura 94 Implementación de la acción proporcional

El bloque “Multi_16_16_sat”, es un multiplicador de 16 bits por 16 bits con signo y

salida saturante.

La multiplicación es realizada, entre el error que es de 16 bits, y la Kp que de igual

manera es de 16 bits, el bit más significativo en ambos datos, es el signo, quedando

Page 121: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

118

la interpretación de estos valores como 15 bits del 0 al 14 para el dato y un bit el 15

para el signo, de forma habitual se esperaría la salida al doble de capacidad, es

decir, 16x16 el resultado se esperaría a 32 bits. En este caso específico, como el

error estimado es muy pequeño, se va a multiplicar la Kp que si puede tener un valor

en todo su rango de 16 bits, con valores muy pequeños como puede ser la unidad

o dos, por ende se espera que el resultado del multiplicador sea con pocas

frecuencias mayor a 16 bits.

El diseño de este multiplicador, se basa en obtener el valor absoluto de cada

operando, es decir, si el error es negativo lo volvemos positivo para hacer la

multiplicación, una vez realizada la multiplicación, se compara si el resultado es

mayor al valor de saturación, en caso de que esta condición sea cierta, el resultado

se reemplaza por el valor de saturación, de lo contrario el resultado no es

modificado.

Como en la salida del multiplicador se reduce la toma del resultado a 16 bits, es

decir no se toman los 32 bits resultantes de 16x16 , se va a perder el valor del signo,

ya que esa información estaría en el bit más significativo de los 32 bits, entonces

para considerar en el resultado a 16 bits el valor original de los signos, se monitorean

los signos de los datos de entrada, que signo tiene la Kp y que signo tiene el error,

si entre los dos signos son diferentes, el resultado se multiplica por menos uno para

volverlo negativo, si son iguales el resultado no se modifica.

La implementación de este multiplicador, es realizada en VHDL como se muestra

en la Figura 95, inicialmente se realiza la revisión de los signos en los valores de

entrada, si el bit 15 de “Ent1” es uno significa que el valor es negativo, se procede

a obtener el valor absoluto mediante complemento a dos, y se asigna a la señal

“aux1” ,si es positivo, es decir, que el bit 15 de “Ent1” sea cero significa que el valor

es positivo entonces, se asigna a “aux1” sin modificarlo, el mismo principio es

aplicado al otro multiplicando.

Ya con los valores absolutos se hace la multiplicación, y el resultado se asigna a la

señal “sal1”. Se realiza la comparación de “sal1” con el valor de saturación, si es

mayor al valor de saturación a la señal “sal2” es asignada el valor de saturación, si

es menor “sal1” se asigna a “sal2”, la saturación solo es realizada entre el cero y el

máximo porque se está haciendo operación con puros positivos.

Como último paso, se devuelve el signo original de los multiplicandos al resultado,

se comparan los signos en las variables de entrada, si son diferentes se

complementa al resultado y se asignan los 16 bits menos significativos al puerto

“Sal”, de lo contrario se asignan los 16 bits menos significativos de la señal “sal2”

sin modificar al puerto “Sal”.

Page 122: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

119

Figura 95 Implementación del multiplicador 16x16 saturante

4.4.3 Acción Derivativa

En el modelo discreto se tiene la derivación como n apostrofe multiplicado por la

constante Kd, lo que significa que se debe realizar el valor de la muestra actual

menos el valor de la anterior, entonces se debe estar guardando la muestra anterior,

implementando registros de corrimiento, con dos registros se logra obtener estos

valores, para calcular la diferencia. Cuidando que la frecuencia del derivador, sea

múltiplo de la frecuencia maestra, ya que con esto se garantiza que la acción

derivativa este en sincronía, con las demás acciones de control.

La implementación de la acción derivativa, se realiza en el bloque mostrado en la

Figura 96, donde se puede observar como entrada al error calculado a 16 bits, el

valor de división deseado para la frecuencia derivativa, la frecuencia maestra de

control, la señal de borrado general y la constante de derivación Kd.

Page 123: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

120

Figura 96 Bloque de la acción derivativa

Internamente se implementa mediante el circuito mostrado en la Figura 97, Se utiliza

un divisor de frecuencia en el bloque “Frec_d”, similar en construcción al que se

utiliza en el PWM, la idea se basa en recibir un dato de ocho bits el cual corresponde

al valor por el cual se divide la frecuencia de muestreo, en cada flanco de subida se

realiza un decremento hasta llegar a este valor, en este momento se carga de nuevo

el valor del divisor, y eso generado de manera cíclica. De este modo se genera, la

frecuencia derivativa a la cual operan los registros de corrimiento.

Figura 97 Implementación de la acción de control derivativa

Para poder registrar la muestra actual y la muestra anterior, son utilizados dos

registros por medio de la primitiva CB16CLE, con carga paralela y la misma

frecuencia alimentada a ambos, la señal de borrado es la general del sistema y se

mantiene siempre está activo la carga paralela y el CE, se conectan en cascada

para lograr tener el valor actual y anterior del error recorriéndose en cada flanco de

la frecuencia derivativa. Entonces en un primer flanco el error se carga en el primer

registro y el que estaba ahí se carga en el segundo registro, en un segundo flanco,

el que estaba en el primer registro seguramente se encuentra ahora en el segundo

registro

Page 124: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

121

El bloque “Resta_16”, es el restador donde se realiza la diferencia mediante VHDL,

se realiza la diferencia A- B de restar al error presente el error anterior, se realiza la

resta a 16 bits y la salida es a 16 bits, por lo cual no es necesario hacer aritmética

saturante, ya que no se está perdiendo información. Para definir cuál valor es el

minuendo y cual el sustraendo, se tiene que observar la ecuación discreta del

algoritmo de control, la cual indica que se debe sacar diferencia del valor actual

menos el anterior.

Por último, por medio del multiplicador saturante descrito en la acción de control

proporcional, se multiplica la diferencia calculada por la constante de control Kd,

obteniendo a su salida, el valor de la acción de control derivativa lista para ser

sumada con las otras dos acciones de control.

4.4.4 Acción Integral

En la acción integral se tiene un acumulador donde se suma el valor del error

durante el tiempo que esté presente, en la mayoría de las ocasiones el error es muy

pequeño y no se logra nulificar, por tal motivo se acumula y acumula, pero se debe

tener cuidado en no llegar a la sobrecompensación, es decir es tanto el error

acumulado que se va a compensar, que cuando el error por alguna razón

desaparece genera inestabilidad o que el control se pierda, además de oscilaciones,

a manera de ejemplo, supóngase que en condiciones operativas, se llegará a tener

un atasco en una máquina, el control comenzaría a compensar más y más, hasta

llegar a eliminarse ese error, y si el atasco se pierde repentinamente, el motor

tendría una acción demasiado brusca e inesperada.

De la ecuación del algoritmo de control, se tiene que la acción integral en modo

discreto es una sumatoria desde la primer muestra “n” hasta “N”, donde se debe

interpreta que “N” no tiene límite, ya que no influye en el valor de la suma, solo

cuando se enciende el sistema se determina cual es la primer muestra, y hasta que

se apaga, si fueron millones de muestras no importa, ya que cada vez que se mueva

la posición, el error deja de ser cero, y al tener un valor de error el sistema inicia de

nuevo a trabajar, por lo que “N” no tiene un valor final.

La acción integral es implementada por medio del circuito mostrado en la Figura 98,

en el cual se observa el bloque “Integrador”, en el cual se realizará la acumulación

del error con la limitación de integración establecida en la calibración del sistema,

para generar el valor de la acción de control integral a multiplicar por la constante

de integración Ki, para determinar el valor a sumar con las otras dos acciones de

control, además se tiene el punto de monitoreo “Integración” mediante el cual se

monitorea si la acción integral, llego a su límite o aún tiene rango de acción.

Page 125: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

122

Figura 98 Implementación de la acción integral

El integrador, mostrado en la Figura 99, tiene como entrada al error calculado a 16

bits, el límite de integración a 16 bits, la señal de borrado general del sistema y la

frecuencia de control; y una salida, con el valor de integración a 16 bits

Figura 99 Bloque Integrador

Al implementar el bloque “Integrador” como se muestra en la Figura 100, la señal

“clear”, que es a su vez la señal de borrado general del sistema, tiene máxima

jerarquía junto con la condición de que el error calculado sea cero, si alguna de

estas dos condiciones se cumple, el acumulador es reiniciado, cabe mencionar que

el acumulador se define a 24 bits, la razón es para quitarle sensibilidad a valores

pequeños entre cero y 255, estos se toman como irrelevantes, se desprecian no va

a actuar la integración hasta que la acumulación pase de 255.

Es necesario realizarlo tomando los 16 bits más significativos de 24, para evitar que

los datos a acumular hagan la saturación tan rápida, pero como las demás acciones

de control, son a 16 bits no es posible manejar la capacidad de 24 bits completa, ya

que se tendría que modificar la capacidad en las demás acciones de control,

solamente se prevé mayor espacio para el acumulador, en valores de error con

duración muy prolongada.

Page 126: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

123

La condición de que el error sea cero es debido a que cada vez que el controlador

pase por el cero, el valor a acumular debe iniciar desde cero, de lo contrario se

realizaría una acción de control en sentido contrario, con valor de lo acumulado más

lo que se va a acumular, lo cual llevaría al sistema a oscilaciones incontrolables.

En caso de que no se cumpla alguna condición que el reinicie el acumulador, en

sincronía con la frecuencia de muestreo, se registra el nuevo valor acumulando

durante la muestra anterior, con la finalidad de obtener a la salida el valor

perfectamente definido, para garantizar que la acción de control integral no se tome

en transición.

Para poder sumar el error con el acumulador, el primer cambio que experimenta el

error es el ajuste de 16 a 24 bits, observando el bit 15 del error, se realiza el ajuste,

dependiendo si es negativo se le concatenan ocho unos en su parte más

significativa y se asigna a la señal “Errorbus”, si es positivo se le concatenan ocho

ceros y de igual forma se asigna a la señal “Errorbus”.

En forma combinatoria, se genera el límite de integración negativo, calculando el

complemento a dos, del límite de integración obtenido por configuración del sistema,

y se asigna a la señal “il_neg”. De igual manera se complementa a dos a la señal

“suma”, para conocer el acumulador en forma negativa, para que en caso de que el

error sea negativo, este es el acumulador que se debe considerar.

Page 127: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

124

Figura 100 Implementación del bloque Integrador

Se realiza la comparación de la señal “acumulador” que contiene el valor registrado

del acumulador, con el límite de integración positivo y negativo, en caso de que se

encuentre dentro del rango que generan los límites de integración, “acumulador” es

sumado con el error actual, y el resultado se asigna a la señal “suma”, en caso de

que no esté dentro del rango, pero se pueda asegurar que la acumulación en vez

de sumar lo que va a realizar es una resta, también se le permite realizar el cálculo,

la forma para asegurar esto, es observando los signos del error y del acumulador,

si son contrarios se puede definir que al realizar el cálculo se restaran. Si no se da

ninguna de estas dos condiciones, el acumulador no sufre cambio.

Page 128: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

125

Para definir el sentido en el que será aplicada la acción de control, se debe

considerar que está debe ser realizada en sentido contrario a la acumulación del

error, es decir si se gira a la derecha y se acumula el error, se debe aplicar el valor

del acumulador pero en dirección a la izquierda y viceversa. Para esto se comparan

los signos del error y del acumulador, si son diferentes la acción del acumulador es

tomada en forma negativa y si son iguales el valor del acumulador no sufre cambio.

Por último al puerto de salida “total”, son asignados los 16 bits más significativos del

acumulador, listos para ser multiplicados por la constante Ki en el multiplicador

saturante, para que el resultado sea sumado con las otras dos acciones de control.

4.4.5 Sumador de acciones de control

La suma de las acciones de control integral, proporcional y derivativo, es realizada

en el bloque “Suma_PID” mostrado en la Figura 101, donde se puede observar que

como entrada tiene a los valores calculados de cada acción de control a 16 bits cada

una, además de la frecuencia de control; como salida se obtiene la Amplitud

calculada para el PWM, lista para ser enviada al conmutador, además del signo que

determina en qué sentido debe girar el rotor para lograr la posición de referencia.

Figura 101 Bloque Suma_PID

La implementación de la suma de las acciones de control, es realizada por medio

de VHDL, como se muestra en la Figura 102, de manera combinatoria se realiza la

suma de las acciones de control y el resultado es guardado en la señal “suma” a 16

bits, con el resultado de la suma, observando el bit más significativo que proporciona

el valor del signo resultado de la operación, se determina si es positivo o negativo,

en caso de ser negativo se complementa a la señal “suma” y se asigna a la señal

“aux1”, en caso de ser positivo no se modifica pero se asigna de igual forma a

“aux1”, esto con la finalidad de que los valores de amplitud solo pueden ser positivos

en el PWM.

Page 129: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

126

Figura 102 Implementación del sumador de acciones de control

Una vez que se tienen solo resultados positivos de la suma, en sincronía con la

señal de frecuencia de control, se asigna el valor de signo de la suma al puerto de

salida “Signo”, así como el valor que se calculó para la amplitud es asignado al

puesto de salida “Amplitud”. “Signo” y “Amplitud”, son las señales enviadas al

conmutador para que el motor realice el movimiento deseado por el controlador.

Interpretando los 16 bits de la suma resultante, el bit 15 es utilizado como signo que

da la información de sentido de giro del rotor, el bit 14 es utilizado como señal de

desborde de la suma, del bit 13 al bit 0 son utilizados para almacenar el tamaño de

la amplitud que el control calculó.

Como se puede observar, al puerto de salida “Amplitud” al asignar el valor de la

suma del PID, se hace un escalamiento al resultado de la suma ya que para el valor

de amplitud o acción de control, no se toman los bits menos significativos de 16 bits,

si no que se toman del 6 al 13 que son los más significativos, considerando que el

bit 14 se usa para conocer desborde en la suma.

Este escalamiento se realiza, debido a que si se toman los menos significativos, el

valor de las constantes K, sería muy pequeño para alcanzar las sintonía, por

ejemplo, experimentalmente cuando se tiene escalamiento se requiere mínimo

Kp=FF para controlar, y sin escalamiento con un Kp=02 es suficiente para obtener

el control, esto parecería una ventaja pero no es así, ya que sin escalamiento con

solo subir un valor de 2 a 3 el sistema entra en inestabilidad, lo cual deja sin rango

Page 130: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

127

para tener más precisión en el sintonizado, por el contrario cuando se escala se

tiene la ventaja y facilidad de dar más valores a las constantes K, para aproximar el

control a la sintonía óptima, dar más valores a las constantes K, es cómo manejar

números fraccionarios ya que ese mismo brinco que se da de 2 a 3 con inestabilidad

cuando no se escala, haciendo la comparación cuando se escala es como si

diéramos un 2.1, 2.2, 2.3. Lo cual aumenta la resolución del sistema y se espera

una mejora en el movimiento del mecanismo.

4.5 Sistema Regulador, Algoritmo de control Modo Velocidad

Para poder regular la velocidad el control supervisorio, va a ser suplido finalmente

por el usuario que va a controlar el vehículo por medio del acelerador, por lo cual no

es necesario crear perfil de trayectoria, debido a que el punto final del movimiento

no es conocido, dependiendo de sus necesidades el mismo usuario lo generará.

Si bien en el modo de posición se le da al sistema, posición, aceleración y velocidad,

es necesario que en modo velocidad el usuario solo ingrese la velocidad a la que

desea moverse, para poder regular velocidad al control, se le debe estar cambiando

la referencia de posición contantemente, es decir nunca alcanzará la posición de

referencia, a la velocidad que el usuario lo desee, es decir, el cálculo que se hacía

del tiempo entre cada pulso o paso en el bloque supervisor, ahora va a calcular con

que tiempo se debe de dar un pulso para que el control alcance la velocidad de

referencia. Implícitamente que tan rápido se mueva esa referencia de velocidad,

será la aceleración con la que el motor alcanzará la velocidad deseada.

Entonces aprovechando los recursos con que se cuenta en el bloque regulatorio,

para posición, es posible controlar velocidad, se tiene el contador de 32 bits

ascendente y descendente, que lleva la cuenta del valor de referencia, el cual si

consideramos que el motor va a avanzar en un sentido fijo durante su trayectoria,

ya sea drive o en reversa, el contador debe estar amarrado a un valor de dirección

como en un vehículo convencional.

Sin embargo en modo velocidad, se tiene el problema de reinicio por desborde en

el registro contador de valor de referencia, ya que por muy grande que se puede

realizar este registro, llegará un momento en el que las cuentas de referencia

desbordarán al contador generando el reinicio natural de la cuenta.

El problema del reinicio haría, que la compensación y el PWM se perdieran ya que

los dos registros contadores de valor real y valor de referencia se harían cero. La

forma que se diseñó para solucionarlo, fue que cuando el contador de valor deseado

este por reiniciar, el valor registrado del error sea cargado en forma paralela al

contador de valor de referencia y el de valor real sea puesto a cero asíncronamente,

Page 131: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

128

de esta forma el error que se llevaba no se perdería y podría ser imperceptible para

el funcionamiento del motor.

A manera de ejemplo, obsérvese el caso de la Figura 103, supongamos que la

cuenta final del contador es 100, y el valor de referencia es esta en 100 y el valor

real es 98, dando un error de 2, en ese momento se sabe que el siguiente valor es

desborde en el contador de valor de referencia. Por lo tanto el contador de valor de

referencia se le carga el valor del error y el valor real se reinicia, logrando que no

cambie el valor del error que existía ni la compensación.

Figura 103 Ejemplo de reinicio del contador en modo velocidad

De esta manera se logra hacer imperceptible el reinicio y además se puede tener

un registro contador para valor de referencia, de cualquier magnitud ya que el

reinicio se puede realizar en cualquier valor sin problema, en este caso se dejó el

reinicio hasta el desborde de 32 bits porque es un registro compartido con modo

posición.

La implementación en el hardware, tuvo que modificar el contador de valor de

referencia que se tenía para habilitar la carga paralela de un valor, el bloque

desarrollado se muestra en la Figura 104, en el cual se tiene las entradas de cuenta

y dirección de referencia, la señal de borrado general del sistema, el valor del error

a 16 bits y la señal carga paralela; a la salida se tiene el valor de referencia.

Page 132: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

129

Figura 104 Contador a 32 bits con carga paralela

La lógica con la que trabaja este contador es mostrada en la Figura 105.

Figura 105 Contador para modo velocidad a bloques

Con la señal borrar se realiza el multiplexado de datos, si es “uno” la señal de

borrado general entran 32 ceros que es lo equivalente a reiniciar al registro, de lo

contrario deja pasar al dato del valor de error.

Una vez seleccionado el dato, de manera asíncrona, si la señal de carga o la de

borrado general del sistema se dan, la salida del registro adquiere el valor del dato

a la salida del multiplexor, de manera síncrona se elige realizando la suma o resta

del valor de referencia como el contador descrito en modo posición. Con esto se

logra tener el registro de valor de referencia como se requiere para la solución

propuesta, se implementa en VHDL como se muestra en la Figura 106.

El valor de error, se debe tomar para que no sea perceptible el reinicio, el valor ya

registrado dentro del módulo proporcional, con esto el motor no da un brinco al

reinicio y el motor opera sin falla aparente.

Page 133: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

130

Figura 106 Implementación del contador para valor de referencia modo velocidad y posición

Ahora se requiere de un comparador, que este vigilando la cuenta del valor de

referencia para identificar cuando el registro va a desbordar o poner el dato donde

se desea que reinicie, en este caso se seleccionó el valor aleatorio de 2147483647

tanto positivo como negativo, cuando se da este valor el bit de salida se pone a uno

y esta señal es la que se ocupa para cargar el valor deseado y para reiniciar el valor

real, se implementa en el bloque “maximo_contador”, con la lógica descrita en la

Figura 107.

Page 134: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

131

Figura 107 Implementación del comparador de desborde

Para el control de velocidad, Ahora no se necesita que el software genere el perfil

de trayectoria. Para calcular el tiempo entre cada pulso, se toma el valor de

referencia como velocidad constante de una barra en la interfaz y con ese valor se

calcula el tiempo a través de:

𝑡𝑖𝑒𝑚𝑝𝑜 = 1

𝑣𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒

( 11)

A través de la Ecuación 11, se obtiene cada cuando se tiene que modificar la

referencia de posición deseada.

Sin embargo al generar el cálculo en la PC, se tiene el problema al implementar el

control de velocidad, ya que al establecer una velocidad deseada el

microcontrolador de la PC se queda haciendo el cálculo necesario para generar el

tiempo entre cada paso a esa velocidad, por lo cual si se deseaba modificar esta

velocidad inicial el microcontrolador está ocupado y no permitirá un cambio de

velocidad de referencia, ni reiniciar, ni nada por que el microcontrolador está

trabajando en una tarea cíclica.

Este problema es solucionado generando en hardware el bloque

“TIME_VELOCIDAD”, mostrado en la Figura 108, que tiene como entrada, la

referencia de velocidad a 32 bits, dividido en cuatro datos de ocho, provenientes del

banco de registros, la señal de borrado general, la señal de reloj del sistema y la

señal de paro, en caso de que se necesite dejar de dar pulsos en la salida; como

salida tiene la señal “Pulso_t”, de donde se obtendran los pulsos de paso para el

contador de valor de referencia del controlador.

Page 135: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

132

Figura 108 Bloque "Time_velocidad"

Este módulo trabaja bajo la lógica de la Figura 109, en donde la PC lo que va a

hacer es calcular el tiempo entre paso y paso, para lograr la velocidad de referencia,

y además calcular cuantas veces el tiempo de la frecuencia de 50 MHz, 20

nanosegundos, cabe en ese tiempo calculado.

El valor de cuantas veces se divide el tiempo calculado entre la frecuencia de 50

MHz, es enviado al hardware por medio del banco de registros, son capturados y

se realiza un ajuste de cuatro datos de ocho bits a un solo dato a 32 bits, con esto

se logra que la PC genere el cálculo, envié el dato y libere su procesador para poder

hacer otras tareas.

Figura 109 Diagrama a bloques del módulo "Time_velocidad"

Page 136: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

133

Una vez que se captura a 32 bits, el valor es entregado a un contador descendente

el cual realiza la cuenta desde el valor enviando de la PC hasta cero, a la frecuencia

de 50 MHz, cuando el contador es cero la salida del contador se vuelve uno y carga

un nuevo valor de cuenta, generando así pulsos con duración entre ellos del valor

calculado por la PC.

La implementación es realizada por medio del diagrama mostrado en la Figura 110,

donde se observa que el registro de 32 bits, es conectado en cascada con el

contador descendente, teniendo como misma señal de carga a la señal “Pulso t”,

invertida. Logrando que cada que se da este pulso avanzara el banco de registros

al registro de 32 bits y del registro al contador descendente.

En el contador descendente cada vez que se llega a cero contando con una

frecuencia de 50MHz el pulso “Pulso t” se dará y este, es el que se ingresa al

regulatorio para lograr mover la referencia y correr los registros.

Figura 110 Implementación del bloque "Time_velocidad"

4.6 Seleccionador de modo de control

En el hardware se implementa el bloque “Cambio_modo”, el cual permite modificar

el esquema de control entre posición o velocidad desde la interfaz en la PC, opera

como un multiplexor, el cual dependiendo del valor del bit en la entrada de selección,

las salidas que entregan al controlador paso y dirección serán tomadas del

supervisor de posición o de velocidad.

Page 137: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

134

Figura 111 Bloque "Cambio_modo"

Es implementado en VHDL, con la lógica descrita en la Figura 112, donde se

observa que si el seleccionador es uno, los puertos de salida de paso y dirección,

serán tomados del supervisor de velocidad, en caso contrario a los puertos se

asignarán los valores del supervisor de posición.

Figura 112 Implementación del bloque "Cambio_modo"

4.7 Medición interna de velocidad

En esta aplicación al estar enfocada en la tracción de un vehículo eléctrico, el

usuario requiere que le sea mostrada la velocidad a la que el motor se está

desempeñando, para verificar que la velocidad a la que se desplaza es la que él

desea. Aprovechando los recursos, es implementado un tacómetro digital dentro del

hardware,

Page 138: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

135

Para lo cual se desarrolló el bloque “velocímetro” que se muestra en la Figura 113,

el cual tiene como finalidad calcular una velocidad promedio a la cual está

desplazando el motor, cuenta con tres entradas: la de reloj que recibe 50 MHz

generales del sistema, la de borrar donde se ingresa la señal de borrado general

del sistema, y la revolución la cual permite ingresar la señal que indica que el motor

ha dado una vuelta mecánica. Así como con dos salidas en las cuales se tendrán el

resultado de medición de velocidad, dividida en parte alta y parte baja de ocho bits

respectivamente, para poder introducir el valor al banco de registros y poder

mostrarlo en la interfaz de usuario.

Figura 113 Bloque "Velocimetro" generado para medir RPM

Cabe mencionar que la velocidad medida en este bloque, no es la misma que se

utiliza para el control, ya que la que se utiliza en la etapa de control es la velocidad

instantánea, es decir, cambios de velocidad muy rápidos sin significado para el

usuario, por tal motivo se optó por calcular la velocidad promedio que es un valor

más digerible y confiable, sin embargo este promedio no puede ser tan sensible que

caiga en la exageración, ni tan insensible que no permita observar los cambios de

mencionada variable. Un sistema existente en los carros actuales que trabaja de

este modo, es el de revisión del nivel de combustible, el cual si mostrará un

promedio exagerado con el movimiento del fluido, la aguja de nivel tendría un vaivén

que se traduciría en una lectura incorrecta por tanto no confiable, por el contrario si

el promedio es muy lento, se tendría de igual manera una lectura errónea porque

no se mostraría un valor equivalente a la velocidad de desgaste del fluido.

Otro punto a considerar es que la señal de revolución debe ser adquirida hasta que

esté fija en un valor, asegurándonos de no tomarla para el procesamiento cuando

está en transición, ya que esto ocasionaría la obtención de valores erróneos e

incoherentes en el cálculo de la velocidad promedio. Para solucionar este problema

se hizo el registro a la señal de revolución justo a la salida del bloque donde se

genera, en sincronía con la señal de cambio posición, con esto aseguramos que la

señal de revolución está en un valor definido para ingresarla al bloque de

velocímetro.

Page 139: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

136

Explicado lo anterior, la lógica con la que trabaja este bloque, se puede observar en

el diagrama de la Figura 114.

Figura 114 Diagrama a bloques del bloque "velocímetro"

Inicialmente se tiene un pre divisor el cual tiene dos funciones: La primera es homogeneizar la señal de revolución ya que se genera de manera diferente dependiendo del sentido en el que se esté girando. Es decir, cuando se gira en sentido que la cuenta de posición es ascendente, la resta que se realiza para obtener el bit de dirección real tiene datos como 500-499 o 875-874 lo cual da un resultado de +1 que representado en los 10 bits que se observan en ese modulo seria de la siguiente manera, 00000000001, con lo cual se tiene que el bit de revolución (bit 10) es cero durante el giro, pero va a llegar el momento en que se cumple la vuelta mecánica, en este punto la cuenta va a dar el brinco de 1023 a cero, generando entonces que la resta sea 0-1023 con lo cual si lo observamos en bits el resultado es 10000000001, con lo cual se tiene una transición de cero a uno en la señal de revolución como se puede observar en la Figura 115.

Figura 115 Oscilograma de la señal de vuelta mecánica giro ascendente.

De lo contrario, cuando se gira y la cuenta es de manera descendente la resta será

499-500 dando como resultado 11111111111 en el momento de la vuelta mecánica

se va ver el brinco de cero a 1023 por lo cual la resta seria 1023-0 y se tendría como

resultado 01111111111 y el bit 10 va tener una transición de uno a cero como se

puede observar en la Figura 116.

Pre divisorControl del

contador de RPMContador de RPM Registro del Dato

Page 140: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

137

Figura 116 Oscilograma de la señal de vuelta mecánica giro descendente

Como se puede apreciar, no se tienen señales iguales lo cual genera un problema

al intentar conocer la velocidad en ambos sentidos, ya que se tendría que generar

un módulo de medición de la velocidad para cada sentido.

Para evitar esta situación se hace uso del pre divisor, ya que el contador con el que

está hecho sólo cuenta con los flancos de subida que es la similitud que existe entre

las dos señales, véase Figura 117, así no importa en qué sentido gire el motor se

podrá conocer el instante en que se dio una vuelta mecánica, lo único erróneo que

se tendrá con este método, es que existirá un error de una milésima de posición al

hacer esto, lo cual para promediar la velocidad se consideró despreciable.

Figura 117 Flancos en los que el pre divisor considera a una vuelta mecánica

La segunda función para la que sirve el pre divisor, es para promediar ya que

dependiendo del bit que se tome a la salida del contador se puede definir cada

cuantas vueltas se va calcular el valor de la velocidad, véase la Tabla 16.

Page 141: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

138

Tabla 16 Cantidad de vueltas necesarias para calcular nuevo valor de velocidad

Bit del contador Cantidad de vueltas para calcular nuevo valor

0 2 1 4 2 8 3 16 4 32 5 64 6 128 7 256

El esquemático implementado, que realiza la función de pre divisor se muestra en

la Figura 118, La señal que se obtendrá del pre divisor, será la señal que indica, que

el intervalo a medir ha finalizado y que inicia uno nuevo. Intervalo que se genera

indirectamente en el contador de revoluciones que se explica más adelante.

Figura 118 Pre divisor para la función de velocímetro

Una vez que se tiene como generar el intervalo a medir, se debe tener la unidad con

la que será medido, dicha unidad es un tiempo fijo y conocido generado por una

frecuencia, para por medio de cálculos aritméticos determinar cuántas veces este

tiempo cabe en el intervalo. En esta aplicación se utiliza como unidad de medida la

frecuencia de 3.052 kHz, que en tiempo son unidades de 0.328 milisegundos.

El contador de revoluciones tiene como función, hacer el recuento de cuantas veces

cabe la frecuencia de 3.052 kHz en el intervalo limitado por el pre divisor, almacenar

ese valor por un momento en espera de que sea registrado, y volver a iniciar la

medición.

Para que el contador de revoluciones trabaje como se requiere, necesita de señales

de control sincronizadas para garantizar la medición justa del intervalo, se cuenta

con el tiempo de duración de un pulso de la señal de vuelta mecánica, como el

mostrado en la Figura 115, para realizar tres acciones:

Page 142: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

139

Detener el contador para garantizar que el dato no cambia.

Cargar al registro el valor que quedo en el contador.

Reiniciar el contador para garantizar el inicio de la medición de un nuevo

intervalo.

Por lo antes mencionado se hace uso de las señales de cuenta, carga y borra, y se

requiere respetar ciertos puntos exactos en que se dan las acciones, así como la

duración de las mismas.

El esquema que realiza la medición y registro de la velocidad se muestra en la

Figura 119.

Figura 119 Esquema de medición del intervalo para determinar velocidad

Como se puede observar para generar las señales de control se utilizan

monoestables digitales, ya que con estos se puede tener dominio sobre la duración

y el momento en que se dan las señales.

El registro donde se guarda el valor se generó en lenguaje de descripción, véase

Figura 120, ya que se necesita que funcione de manera asíncrona, para asegurar

capturar el dato en el poco tiempo que se tiene.

Page 143: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

140

Figura 120 Implementación del registro asíncrono

Para poder cargar un nuevo valor en el registro de carga asíncrona, la señal que

sale del pre divisor debe disparar el monoestable de cuenta, el cual tiene la

transición de uno a cero con una duración de 2.56 µs, antes de cambiar de nivel, y

el de carga con una duración de 0.64 µs el cual tiene la transición de cero a uno.

Con estos eventos, el contador deja de adicionar, y el último valor de cuenta es

registrado, al terminar la duración de la señal de carga, esta tiene un flanco de

bajada y en ese momento se dispara el monoestable de la señal borra que tiene

idéntica duración de 0.64 µs para que el contador regrese a cero. Al pasar 1.28 µs

ya terminaron su evento las señales de carga y borra, para que cuando se termine

la duración de 2.56 µs la señal de cuenta vuelva a ser uno y permita que el contador

de revoluciones trabaje para medir el nuevo intervalo siguiente.

En la Figura 121, se muestra la captura al osciloscopio de cómo se sincronizan las

señales de control, como se puede observar la señal de cuenta y carga tienen su

evento en el mismo instante y la señal de borra se genera hasta que se garantizó

que el dato se registró, otro detalle a notar es que se comprobó que las acciones

son generadas antes de que la señal de cuenta regrese a un valor lógico alto para

evitar discrepancias en la medición de los intervalos.

Page 144: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

141

Figura 121 Señales de control del Contador de revoluciones

Hasta este punto se tiene a la salida del registro, el valor medido dividido en

RPM_alta y RPM_baja, y por tanto ya se tienen registrados en el banco de registros,

el valor de las cuentas que midió el intervalo de velocidad; sin embargo, lo que se

desea tener es un valor en RPM para lo cual, en la PC se hacen los cálculos

necesarios para obtener la medición es en estas unidades.

Ejemplo: supongamos que el promedio de velocidad se desea medir cada dos

vueltas, con la unidad de frecuencia de 3052 Hz, y en el contador de revoluciones

se tiene el resultado de 1390 cuentas. Estas 1390 cuentas indican que la unidad de

tiempo se repitió 1390 veces, si se desea conocer cuánto tiempo tardo en dar una

revolución basta con dividir este número de cuentas entre la cantidad de vueltas

que se está utilizando para promediar en este caso dos y quedaría que en una vuelta

la unidad se repitió 695 veces. Entonces para obtener cuanto tiempo se tardó el

motor en dar una revolución basta con realizar la siguiente operación.

Tr = Cuentas × Unidad de Tiempo = 695 ×1

3052

Sin embargo el valor que se busca, es conocer cuántas vueltas da en un segundo,

lo cual se obtiene con la siguiente regla.

1 𝑣𝑢𝑒𝑙𝑡𝑎 = 𝑇𝑟𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑣𝑢𝑒𝑙𝑡𝑎𝑠 = 1 𝑠𝑒𝑔𝑢𝑛𝑑𝑜

∴ 𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑣𝑢𝑒𝑙𝑡𝑎𝑠 = 1

𝑇𝑟

Y si se desea conocer cuántas revoluciones se dan en un minuto basta multiplicar

por sesenta, entonces la ecuación para determinar las RPM quedaría de la siguiente

manera:

Page 145: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

142

1

𝑇𝑟× 60 =

1

6953052

× 60 = 3052

695× 60 ≈ 263 𝑅𝑃𝑀

Por último en la interfaz de la PC, se despliega en una etiqueta el valor calculado

en Revoluciones Por Minuto.

4.8 Gráfica de la respuesta del motor

Para conocer si se está logrando sintonizar de manera óptima al controlador, es

necesario conocer cómo responde el motor a un cambio realizado, en este caso el

cambio que se le pide al motor seguir, es la prueba escalón que es considerada

como la prueba más demandante a un sistema de control, esperando una gráfica

como la mostrada en la Figura 122.

Figura 122 Gráfica muestra de la prueba escalón

En el eje horizontal se tiene el tiempo y en el vertical se tiene la posición, obviamente

el tiempo va a estar en segundos y la posición en cuentas, se le va a pedir al motor

que haga un escalón, es decir, que se posicione a velocidad de cero a su máxima y

aceleración abrupta, y después de un cierto tiempo mantenga su posición, este

requerimiento se da una sola vez, es decir no se le pide que cíclicamente siga al

escalón.

Como en el osciloscopio solo se pueden observar señales periódicas, es decir que

se están repitiendo una y otra vez, no se podría observar esto a menos que nos

pudiéramos sincronizar con el evento, y se tuviera un osciloscopio con memoria.

Page 146: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

143

La PC tampoco puede observar a la velocidad de operación del motor; sin embargo

en el FPGA, aprovechando los recursos de la aplicación, nos permite observar en

tiempo real el evento, esto es posible porque se tiene un hardware dedicado a esta

tarea y puede capturar a la misma velocidad del evento, los valores que se capturan

se tiene que almacenar, no se puede tomar y mandar a la PC inmediatamente,

correría el riesgo de no alcanzar a ver el siguiente muestreo, lo que se hace es

muestrear todo el evento, y una vez que se tienen todos los puntos, se mandan a la

PC y los gráfica.

A este método de adquisición, se le conoce como una adquisición en ráfaga, no hay

tiempo ni de mandarlos a la PC, ya que no hay tiempo ni para direccionar, o seguir

algún protocolo de comunicación.

4.8.1 Captura en ráfaga de la respuesta del motor

Para capturar los valores a graficar, se debe establecer una cantidad específica de

muestras, ya que esta gráfica es discreta se le debe dar una cantidad finita de

puntos, se debe determinar cantidad de puntos en la horizontal, y cantidad puntos

a la vertical.

Se diseña a la vertical con 256 valores, cantidad almacenable a ocho bits, se

considera conveniente este tamaño, porque del tamaño de la pantalla de la PC,

abarca aproximadamente un cuarto de esta, no es necesario tomar más valores si

no se van a poder observar en pantalla, para dar un rango de variación el máximo

que puedo muestrear es el 255 partiendo del cero, produciendo así que el escalón

solicitado al motor, debe ser de 200 posiciones, para tener 55 espacios libres para

la observación al sobretiro.

Para el eje horizontal del tiempo, se debe construir una señal base tiempo, al reloj

del sistema se le realiza un escalamiento para obtener una frecuencia en ms,

quedando entonces la escala de las “x” en ms

El diseño se basa, en tomar una muestra cada cierto tiempo y guardar su valor, otro

intervalo de tiempo y guarda otro valor, y así continuamente 256 veces, esto se va

guardando en una memoria, para graficar, lo que hace la pc es leer el contenido de

esa memoria.

De la memoria en el FPGA, solo se extraen los puntos de las posiciones en las que

el motor estuvo mientras generaba el escalón, se almacena en un arreglo serial de

registros, se tienen 256 registros que guardan específicamente 256 valores, en cada

pulso de reloj se guarda el nuevo valor y se van recorriendo.

Page 147: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

144

La implementación de este diseño se realiza, mediante el circuito mostrado en la

Figura 123.

Figura 123 Implementación captura en ráfaga

Se tiene un contador con el cual se genera la escala de tiempo de la gráfica, por

medio de dividir el reloj del sistema de 50 MHz, en su división binaria 15, cada ese

tiempo se toma una nueva muestra, el valor de este contador es la señal de reloj

de todos los registros de la memoria, y la memoria podrá hacerle caso a esta señal

de reloj, solo si se le indica al sistema el inicio de la captura o si no ha llegado a

memorizar los 256 valores, este pulso debe estar definido en duración, con valor

conocido ya que es el tiempo, en que se toma una nueva muestra.

La señal de inicio, es la señal con la que se indica al sistema el comienzo de

adquisición de datos, genera un valor que permite que pase la escala de tiempo,

generando un enclave, la señal de inicio dispara a uno el valor de un “preset”, esta

señal es registrada, con el fin, de que una vez que se recibe se mantenga durante

todo el muestreo. La obtención de la señal de inicio, es de le siguiente manera, si

se tiene un registro para el valor de posición de referencia, y se va a pedir un

desplazamiento de 200 pasos, se van a mandar 200 pulsos, el primero de esos 200,

debe disparar la ráfaga, ya que es el punto conocido de inicio de movimiento.

Pero existen tres señales por medio de la operación lógica “And”, para permitir o

desactivar la captura, la de inicio, la escala de tiempo y la de paro, la señal de paro

se genera por medio de otro contador el cual lleva el conteo de valores que se han

Page 148: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

145

capturado y mediante un bit, el bit 9, cuando desbordan a los ocho bits demuestra

que ya se capturaron 256 cuentas, y la señal borrar del registro paro de captura es

la que se activa con este bit para mandar un cero a la “And” y detener la captura,

así como reiniciar el contador de muestras tomadas, logrando así adquirir

exactamente las 256 muestras de lo contrario se perdería información.

Para almacenar las muestras se implementa una cola, que es un arreglo de 256

registros, 16 por 16, otro detalle a observar con estos registros es que son registros

de corrimiento que se implementan utilizando tablas, es decir con pura lógica, la

cantidad de flip flops que se tienen en el FPGA no es infinita es limitada, si esos

registros se hacen con flip flops se agotaría este recurso, entonces la primitiva

utilizada para generar estos registros no usa flip flops usa lógica, y construye los

registros de esa forma, realizarlos con lógica significa que son hechos por medio de

compuertas lógicas no solo con flip flops.

El siguiente paso es la conexión con la pc para poder graficar el comportamiento

del motor, para leer se vuelve a dar la misma señal de reloj de los registros, pero

ahora desde la PC 256 veces, en la señal de reloj de los registros se tiene a su

entrada una compuerta OR ya que con la señal de la captura en ráfaga o con la PC,

se pueden ir recorriendo estos registros, para su lectura, leyendo el valor registrado

solo del último registro, se asigna un registro del banco de datos para poner ahí la

información y mandarla a la PC.

Los valores se almacenan en un arreglo en la PC, y con la función de la PC de

dibujar línea entre punto uno y punto se realiza trazado de la gráfica.

El circuito de la captura, es implementado en el bloque “Captura”, mostrado en la

Figura 124, donde como entrada se tiene al reloj del sistema, la señal de borrado

general, la señal de inicio y la señal de lectura; como salida se tiene el dato

capturado a ocho bits.

Figura 124 Bloque "Captura"

Page 149: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

146

4.9 Interfaz de potencia Puente “H” trifásico

La interfaz de potencia, mediante la cual se realiza el cambio de la polaridad en las

bobinas, se diseñó e implemento con las siguientes características.

Aislamiento eléctrico entre la etapa de potencia y la lógica digital del

sistema

Apertura y cierre por medio de IGBT

Voltaje máximo de 600 V

Corriente máxima 30 A

Supresión de transitorios de voltaje

Es de relevancia mencionar que para determinar la frecuencia del PWM, se debe

tomar en cuenta los dispositivos específicos que se utilizarán para conmutar al

motor; ya que no todos los transistores manejan la misma frecuencia, depende del

modelo y fabricante elegido.

Para esta aplicación se utilizan IGBT, los cuales por especificaciones del fabricante

no pueden trabajar a más de 20 kHz, para evitar trabajar en la zona activa del

transistor y llevarlo a una pronta degradación, en esta aplicación se conmutan a la

velocidad aproximada de 18 kHz, como se menciona en la generación del PWM.

El diseño a bloques de esta interfaz, como se puede observar en la Figura 125, tiene

como entrada las señales de PWM provenientes del FPGA, son ingresadas

individualmente a un optoacoplador, teniendo un total de seis optoacopladores, de

la salida de los optoacopladores de manera aislada al FPGA se entregan los PWM

al accionador de compuerta de los IGBT, por último los transistores abren y cierran

de acuerdo a los PWM generados, permitiendo a las bobinas del motor recibir

energía y accionar el motor, los IGBT son protegidos contra picos de voltaje que

podrían perforarlos por medio de supresores de transitorios.

Figura 125 Diagrama a bloques de la interfaz de potencia

Page 150: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

147

Para el aislamiento eléctrico, se realiza la conexión de las señales de PWM

provenientes del FPGA con los optoacopladores, como se muestra en el diagrama

de la Figura 126, un optoacoplador para cada polaridad, es decir individual para

AL,AH,BL,BH,CL y CH.

Entre la señal del FPGA y la entrada del led de aislamiento, se conecta un capacitor

y una resistencia conectados paralelamente entre sí, con la finalidad de: la

resistencia limite el paso de corriente por el led, y el capacitor es para acelerar la

conmutación de encendido a apagado del led, ya que cuando la señal del FPGA

sea cero el led no vera cero, vera el voltaje del capacitor pero en forma negativa,

por lo cual, el led descargará con mayor velocidad al tener una referencia hacia

voltaje negativo.

Figura 126 Diagrama eléctrico del aislamiento eléctrico de la interfaz de potencia

Las salidas de los optoacopladores, son introducidas en el accionador de

compuerta, para esta aplicación se hace uso del chip fabricado por International

Rectifier IR2132, el cual es un accionador para puente H de tres fases, y tiene las

características descritas en la referencia [36].

Page 151: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

148

De acuerdo a la información que el fabricante proporciona para el funcionamiento

de su chip [37] [38], se realizó la implementación del circuito mostrado en la Figura

127 en el cual contiene los dispositivos necesarios para que el IR2132 funcione,

además de los capacitores de arranque, para lograr el cierre de los transistores

superiores del puente H.

Figura 127 Conexión del accionador de compuertas de los IGBT y capacitores de arranque

Por último las señales del accionador de compuertas, son introducidas a las

compuertas de los IGBT, haciendo corresponder a las señales de cada transistor de

acuerdo al IR2132.

Como resultado se tiene la conexión mostrada en el circuito de la Figura 128, como

se puede observar en paralelo a la fuente de alimentación, se conecta el supresor

de picos mediante el cual se protege a los transistores para que no vayan a ser

perforados por la presencia de un voltaje mayor al que están especificados.

De no protegerlos, al intentar hacer operar el control de posición con carga se

suscitará el problema, que al accionar para intentar llegar a la posición de referencia

y existir oscilaciones al acercarse a esta, se generen picos de voltaje muy altos,

haciendo fallar los transistores y se dé un corto circuito, debido a que estos quedan

Page 152: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

149

como si estuvieran cerrados todos al mismo tiempo, generando que toda la interfaz

de potencia se dañe, debido al flujo de voltaje de 340 V por toda la interfaz.

Figura 128 IGBT´s conectados para formar el puente H trifásico

4.10 Circuitos de protección

En todo sistema se requiere de circuitos que realicen un continuo monitoreo en la

operación del motor, con la capacidad de detener al sistema antes de que, por

motivos de falla se degrade algún o algunos componentes.

4.10.1 Verificación de correcta conexión de fases

En operaciones de campo, es común encontrar el problema de interconectar por

primera vez al motor con el controlador, problema acrecentado cuando se conectan

motor y controlador de diferentes fabricantes, o simplemente porque no es

información que el fabricante proporcione, debido a que cada fabricante tanto de

controlador como de motor, puede tener consideración propia para determinar el

nombre, número y colocación de cada fase, en la maquila de sus productos.

Como consecuencias de este problema se tiene, degradación del motor, imposible

control y accionamiento, e incluso el daño total al controlador.

Page 153: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

150

Considerando la cantidad de recursos, que se pueden dañar por la mala

interconexión del motor con el controlador, se diseña e implementa el circuito de

protección capaz de verificar si la conexión de las fases es correcta.

El diseño de esta protección se describe en la Figura 129, se basa en monitorear si

la dirección en la que gira realmente el motor es igual a la dirección de referencia,

se hace uso de lógica digital para determinar si el valor de las direcciones es el

mismo, en caso de que esto sea positivo, el motor podrá seguir su giro, en caso

contrario el motor se detendrá por medio de desactivar a la interfaz de potencia.

Para poder realizar el monitoreo es necesario que el motor gire por lo menos una

posición, con esto se puede conocer la dirección real del giro, sin embargo se le

puede permitir al sistema verificar después de más posiciones recorridas, en caso

de que se requiera.

Figura 129 Diagrama a bloques de la protección para verificación de conexión de fases

La implementación se realiza en el FPGA, por medio del bloque mostrado en la

Figura 130, teniendo como entrada a la señal general de borrado del sistema, la

señal “cambio_pos” que determina que la posición del motor cambio, los datos a 10

bits de la posición actual y la posición anterior, la dirección de referencia y la

frecuencia de los filtros de ruido digitales; como salida se tiene la señal “revol” en la

cual se obtiene el indicador de que el motor dio una revolución, utilizado en el bloque

de la medición interna de velocidad, y la señal “Activa” por medio de la cual se activa

o desactiva a la interfaz de potencia.

Page 154: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

151

Figura 130 Bloque "Verifica_fases"

Internamente este bloque es conformado, por el circuito lógico mostrado en la Figura

131.

Figura 131 Esquema para la verificación de fases

En el cual por medio del bloque “Dir_real”, se obtiene la dirección real en la que gira

el motor, a través de realizar la diferencia de la posición actual menos la posición

anterior, como se muestra en la Figura 132, el dato tanto de posición actual como

de posición anterior son ajustados a un bus de 11 bits con la finalidad de que, con

el onceavo bit se pueda observar que el motor giro una revolución.

Page 155: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

152

Se realiza la diferencia, y del resultado se toma al bit 9 para conocer la dirección en

la que está girando el motor, teniendo que en caso de que sea cero el motor giro a

la derecha y si es uno el motor giro a la izquierda, acciones que concuerdan con las

direcciones que se toman en el decodificador con estos valores. El bit 10 del

resultado de la diferencia, es el que sirve para indicar que la resta se desbordo, en

este punto de desborde es cuando el motor paso de 0 a 1024 o viceversa, por tanto

es cuando el motor dio una revolución. Este valor se registra para poder utilizarlo en

la medición de velocidad interna.

Figura 132 Lógica para la obtención de la dirección real de giro

El módulo “Checa_giro”, es el encargado de monitorear si la dirección de referencia

y la real son iguales o no, para tomar una decisión. En la Figura 133, se muestra la

lógica mediante la cual opera este bloque, a su entrada se tiene un contador el cual

va a definir después de cuantas posiciones se debe verificar el giro. Para lo que se

definió, que al revisar giro es necesario por fuerza que el chequeo sea realice desde

un cambio de posición, ya que el bloque de control PID va a poder ir y venir en ese

rango de cambio, es decir de revisar el giro hasta después de dos cuentas o más,

el actuar del control podría activar la protección sin ser necesario.

Entonces se tiene que, el módulo “Checa_giro” compara en cada posición, es decir

con un ligero giro de cero a uno en posiciones, ya tiene la información necesaria

para actuar.

Page 156: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

153

Figura 133 Lógica para verificar giro de motor

La verificación de si el giro fue correcto o erróneo, se realiza en sincronía con la

señal de “cambio_pos”, debido a que si se comparan direcciones sin ella, existe la

posibilidad de comparar la dirección de referencia con una dirección real no definida,

debido al tiempo que tarda la operación resta en “Dir_real”. Al realizar la

comparación de direcciones si estas fueron diferentes, a la señal “Para” se le asigna

un uno lógico, de lo contrario mantiene el valor de inicialización, que se le asigna en

el borrado general, que es de cero. Cabe mencionar que una vez que se detectó la

falla, esta protección no puede ser modificada por ningún medio a menos que se

reinicialice el sistema.

Por último, se registra el valor obtenido en un flip flop con preset, a la salida “Para”

del bloque “Checa_giro” se le conecta a la salida un inversor para que sea

excluyente el preset del borrado del registro y así no se puedan dar los dos casos

al mismo tiempo.

Al checar el giro para ver las fases si están bien conectadas se notó, que en

ocasiones es ligero el movimiento del motor y lo detiene, pero en otras ocasiones

avanza más y después para, esto se debe a que se da la casualidad que la conexión

en fases, concuerda con la secuencia en el paso eléctrico de la conmutación en la

posición que se encuentra, y no es hasta la siguiente secuencia de conmutación en

donde falla, entonces es por esto que en ocasiones puede girar un poco más y

después detenerse. Como ejemplo, se puede dar la casualidad que aun

equivocadas de conexión las fases, se tenga A+ con B- y que en la secuencia de

conmutación sea precisamente A+ con B- la que corresponde, entonces giraría pero

en el siguiente paso eléctrico la fase que este mal conectada, tendrá que fallar y con

esto, la secuencia se rompe provocando un giro erróneo.

Page 157: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 4. Control

154

Cabe mencionar que esta protección no solo opera en el inicio del accionamiento

del motor, más bien monitorea durante el mismo tiempo que dure la dinámica del

motor, para fallas futuras como puede ser, la falta de energía en alguna fase aunque

estén bien conectadas.

4.10.2 Protección error máximo

La protección de error máximo, es muy útil cuando se sintoniza el motor así como

para eventos no imprevistos, como que el mecanismo se atasque. Esta protección

basa su funcionamiento en monitorear al error, y cuando el error sea mayor al valor

preestablecido un bit enunciara este estado.

En la Figura 134, se muestra el diagrama de la protección error máximo, como se

puede observar, a su entrada se tiene la señal de borrado general del sistema, la

frecuencia de muestreo igual a la utilizada en el bloque de control, y el error a 16

bits; como salida se tiene el puerto “Protec”, en el cual se obtiene el resultado del

monitoreo.

Figura 134 Diagrama de la protección error máximo

La lógica mediante la cual trabaja esta protección, se muestra en la Figura 135, al

realizar el borrado general del sistema, se asigna a las señales “Protec” el valor uno

y “Error_reg” en ceros, que son valores de inicialización, en este estado la

protección permite el giro del motor.

En sincronía con la frecuencia de muestreo del control, se registra un nuevo valor

de error para realizar la comparación, además de asignar al puerto “Protec” el valor

cero, en caso de que la falla se haya presentado, registrando así el valor de la

protección para evitar tomar un valor en transición.

Page 158: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

155

Figura 135 Implementación en lógica digital de la protección máximo error

Simultáneamente, a lo descrito, se realiza la comparación del error con el error

máximo permitido, en este caso el error máximo a soportar es de doscientas

posiciones, en caso de que sea mayor se asigna a “falla” el valor lógico de cero, en

caso contrario se le asigna el valor lógico uno.

Page 159: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 5. Pruebas y resultados

156

Capítulo 5.

Pruebas y resultados

5.1 Introducción

En el presente capítulo, se muestran los resultados obtenidos al implementar partes

aisladas del controlador, para evaluar su funcionamiento; así como los resultados

de la integración de todos los componentes del controlador, mostrando la capacidad

del algoritmo implementado, y la capacidad del controlador desarrollado para

posicionar al motor, o de mantenerlo a una velocidad constante, a pesar cambios

externos en la carga a desplazar.

5.2 Señales obtenidas para protocolo con el convertidor analógico

digital

Las señales que se generan para realizar protocolo de comunicación, entre el FPGA

y la tarjeta del convertidor de Resolver a digital, se muestran en el oscilograma de

la Figura 136, en la cual se demuestra que las señales de muestra y Leer se generan

a la frecuencia de 3 kHz y el tiempo “t”, que es el tiempo entre flancos de bajada,

tiene duración de 3.2 µs siendo mayor al valor que el fabricante especifica como

mínimo de 608 ns, garantizando evitar problemas de traslape de señales.

Page 160: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

157

Figura 136 Frecuencia muestreo y lectura

5.3 Filtro digital

En la Figura 137 se muestra el oscilograma, que demuestra el funcionamiento del

filtro digital, cabe recordar que en este caso el valor que se desea tenga cierta

duración para tomarlo como un dato es el valor lógico cero. Como se puede

observar, la señal “Ent” se encuentra en valor cero solo una vez por cada ciclo de

reloj, como se mencionó, este cero debe durar tres ciclos de reloj como mínimo para

que sea considerada, por tanto el circuito de filtro considera que este cero es un

ruido por no contar con la duración suficiente y la señal de “Sal” se mantiene sin

cambio, continúa siendo un valor lógico alto.

Figura 137 Filtro digital, filtrando ruido

De lo contrario, cuando el cero está presente por los tres ciclos de reloj como se

muestra en la Figura 138, la salida lo considera como un dato de la señal y en la

salida se obtiene este dato.

Como se puede apreciar es justo cuando se cumplen los tres ciclos de reloj, cuando

la salida realiza la transición hacia el nuevo valor y lo mantiene así hasta que la

Page 161: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 5. Pruebas y resultados

158

señal de entrada cambia de valor lógico y de nuevo cuando se vuelve cero tiene

que durar los tres ciclos de reloj para que sea considerado.

Figura 138 Filtro digital, detectando que no es un ruido

5.4 Monoestable digital

El monoestable digital que es utilizado para identificación de cambios rápidos, en

las señales, se implementa en el hardware dedicado, obteniendo lo mostrado en el

oscilograma de la Figura 139.

Se puede observar como el monoestable opera, generando un pulso con el tiempo

predefinido, línea amarilla, cada vez que detecta un flanco de subida, en la señal

monitoreada, línea azul.

Figura 139 Monoestable digital monitoreando una señal

5.5 Multiplicador de encoder emulado

Con el multiplicador de encoder, se logra tener una resolución cuatro veces más

fina, del encoder emulado obteniendo más valores de posiciones, en las que se

puede encontrar al rotor.

Page 162: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

159

En el oscilograma de la Figura 140, se muestra la señal “A” que se recibe del

convertidor analógico digital, que es con la que típicamente se mide la posición del

rotor.

Figura 140 Señal "A", del encoder emulado

La Figura 141 muestra en un oscilograma el resultado obtenido al multiplicar la

resolución del encoder emulado, en el rango que solo se obtendría un valor de

posición, se logran obtener cuatro posiciones intermedias, logrando aumentar la

precisión del sistema regulatorio de posición.

Figura 141 Oscilograma del resultado obtenido al multiplicar la resolución del encoder emulado

5.6 Generación de Ancho de pulso PWM

En la Figura 142, se muestra el oscilograma de la salida obtenida del divisor de

frecuencia, en el cual se observa que se tienen la frecuencia de 4.16 MHz, este tren

de pulsos será la señal de pulso de reloj para el generador de PWM, esta frecuencia

es dividida entre 256 valores iguales, ya que el PWM a generar es de ocho bits.

Page 163: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 5. Pruebas y resultados

160

Figura 142 Tren de pulsos a la salida del bloque "Div_Frec"

El PWM que se obtiene, se puede observar en la Figura 143, la frecuencia obtenida

después de los cálculos, para conmutar a los transistores es de 16.27 kHz. Se

considera que el PWM obtenido es bueno en características, para operar los

transistores

Figura 143 PWM trapezoidal generado

5.7 Conmutador Trapezoidal

El resultado que se obtiene de la unión del generador de PWM con el decodificador

de conmutación, se muestra en el oscilograma de la Figura 144, con el motor

girando se puede observar los cambios de polaridad que se dan a la bobina por

medio de la selección en el decodificador, además del PWM activo durante el

trayecto de la energización de la bobina, para promediar el voltaje que observa esta

última.

Page 164: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

161

En los puntos de desconexión de la bobina se puede observar, pequeños pulsos,

esto pulsos significan la energía que tiene la bobina almacenada y que está en

proceso de liberarse.

Figura 144 Oscilograma de la conmutación trapezoidal generada

En la Figura 145, se puede observar el proceso de cambio de conexión, de la bobina

de desconectada a conectada, se puede apreciar el recorte de voltaje que realiza el

PWM desde el inicio de la conexión.

Figura 145 Conexión de bobina en la conmutación trapezoidal.

5.8 Generación de PWM senoidal

Para observar que la señal de PWM senoidal se generó correctamente, se realiza

la prueba a este, mediante el circuito de filtro pasa bajas mostrado en la Figura 146,

con la finalidad de que al promediar con este circuito las amplitudes generadas de

PWM, se logre observar la envolvente en forma senoidal.

Page 165: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 5. Pruebas y resultados

162

Figura 146 Filtro pasa bajas, para prueba de PWM senoidal

En la Figura 147, se muestra el oscilograma de dos PWM senoidales, generados

con valores aleatorios de amplitud para efectos de prueba, después de haber sido

filtrados, demostrando que se logra generar la envolvente senoidal y el desfase

entre ellas de 120°.

Figura 147 PWM senoidal obtenido

5.9 Banco de pruebas

Para poder sintonizar al sistema, se fabricó el banco de pruebas que se muestra en

la Figura 148, con la finalidad de tener una carga fija a mover, básicamente se tiene

al motor conectando a su eje una polea, para conectar por medio de una banda a

otra polea que puede ser frenada por fricción, y en el centro con una altura, otra

polea ejerciendo acción de peso sobre una celda de carga, ya que se tiene la idea

de lograr medir torque dinámico por este medio.

Page 166: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

163

Figura 148 Banco de pruebas desarrollado

La primera prueba que se realizó, fue accionar el motor y que este venciera la

estática de la carga, el motor logra romper la inercia y mantiene al sistema girando,

en la interfaz de la PC en la ventana de accionamiento, se observa las RPM a la

que gira el motor manteniéndose estable la velocidad de giro, sin embargo, cuando

se le aplica más carga por medio del freno, y sin modificar la amplitud de ancho de

pulso, se observa físicamente y en la interfaz, que la velocidad disminuye

inmediatamente, y aplicando más freno se llega a detener al sistema, al retirar la

carga, el motor continúa su giro a la velocidad que la amplitud de PWM le permita

girar.

5.9.1 Prueba en modo posición

Operando al sistema en modo posición, lo primero que se realizó fue de manera

experimental obtener el valor óptimo de las constantes K del algoritmo PID, para

encontrar la sintonización óptima en la prueba escalón.

Apoyados en la adquisición de datos en ráfaga que se realiza en el FPGA, se grafica

la respuesta del motor, y así evaluar que tan bueno es el seguimiento del motor al

desplazamiento solicitado.

Page 167: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 5. Pruebas y resultados

164

Figura 149 Sintonización y resultado de seguimiento del control a la prueba escalón

Como se puede observar en la Figura 149, se le pide al motor avanzar 200

posiciones a máxima aceleración y máxima velocidad, los valores de las constantes

K mostrados en esta imagen, son los que experimentalmente hicieron operar de

mejor manera al control y por ende al motor.

La línea roja representa al cambio abrupto que se le solicita al motor, crece de cero

a doscientas posiciones en un lapso no mayor a 50 ms, y la línea azul que muestra

el movimiento real del motor, hace un buen seguimiento desde la posición cero

hasta las doscientas y logra mantener la posición final. Teniendo durante el recorrido

un error máximo de dos posiciones entre el valor de referencia y el valor real, dando

como resultado una eficiencia del 99%.

5.9.2 Prueba en modo velocidad

De igual forma que en el modo posición, de manera experimental se sintoniza al

sistema en modo velocidad, con el fin de que el control sin importar la carga que se

le aplique al motor, mantenga la velocidad de referencia.

En la Figura 150, se muestra la configuración con la que mejores resultados se

obtuvieron en este modo de operación, obteniendo la eficiencia del 100%, ya que

por medio del acelerador, se le puede pedir al motor girar a cualquier velocidad

dentro de sus límites, y a pesar de variar la carga durante su movimiento, el motor

mantiene la velocidad de referencia.

Page 168: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

165

Lo único que cambia es el tamaño de la amplitud del ancho del pulso, que

dependiendo del aumento o disminución de carga, se modifica equitativamente.

Amplitud que es reflejada en el voltaje suministrado al motor y consumo de corriente.

Figura 150 Sintonía y resultado obtenido en el control de velocidad

El valor monitoreado del error que se observa en esta interfaz, no representa al error

que el sistema está corrigiendo, ya que los cambios de referencia no se detienen

mientras se le pida al motor girar y la PC no tiene la velocidad de lectura para

mostrar el error a la velocidad de la dinámica del movimiento. Sin embargo, sirve

para monitorear que no se genere la sobrecompensación del sistema.

5.9.3 Medición de corriente

Experimentalmente las corrientes que consume el motor, en base a los dos modos

de conmutación que se tienen en este desarrollo, se muestran en la Figura 151, las

cuales concuerdan con lo que muestra Wang, S [39] para la reducción del rizo en el

torque.

Page 169: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 5. Pruebas y resultados

166

La conmutación trapezoidal al girar el motor, en cada punto de conmutación tiene

una caída casi hasta la línea de referencia, lo que significa perdida de corriente en

este instante, por otro lado la conmutación senoidal se presenta ligeramente más

constante sin caídas hasta el valor de referencia y manteniendo un nivel de medición

siempre por debajo de su cresta.

En base a lo anterior se puede comentar, que la conmutación senoidal permite tener

consumo de corriente más constante, por lo tanto obtener mayor eficiencia del

sistema.

Figura 151 Formas de onda de la corriente total de la fuente hacia el motor

Page 170: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

167

Capítulo 6

Conclusiones y trabajo futuro

6.1 Introducción

Como conclusiones, se exponen los objetivos alcanzados, de acuerdo a lo que se

planteó, desde el inicio del desarrollo de Controlador Senoidal para motor PMBLDC

en tracción de vehículos eléctricos, identificando los elementos donde se debe aún

mejorar al sistema para llegar a un producto comercial.

6.2 Conclusiones

En este trabajo se ha propuesto regular la velocidad del motor PMBLDC de manera

eficiente, utilizado en la aplicación de vehículo eléctrico, aspecto que se cubre

satisfactoriamente, ya que de acuerdo a la teoría la única manera posible de lograrlo

es conmutando al motor de manera senoidal, basados en esto, con éxito se

implementa la lógica digital capaz de, en tiempo real, generar la forma senoidal al

suministrar la energía al motor, considerando así que se está conmutando

eficientemente al BLDC.

Sin embargo, se cumplieron metas intermedias, para consumar con lo proyectado

como objetivo general de este desarrollo, de las cuales se puede concluir:

1. Por medio del cálculo en tiempo real de la operación seno de la posición del

rotor, y de la multiplicación por la Amplitud, se logró dar la capacidad de forma

senoidal a la técnica de ancho de pulso modulado. Aunándola con el

decodificador de posición, se logró que en el motor las tres bobinas estén

siempre energizadas con su potencial adecuado de acuerdo a la posición del

rotor.

2. Se implementó el conmutador trapezoidal, con la misma capacidad en

Amplitud que el conmutador senoidal para poder realizar la comparativa entre

métodos.

3. La decodificación de los puntos de conmutación a través del sensor

“resolver”, fue satisfactoria ya que en base en la experimentación con el

motor, se extrajo la información necesaria para lograr accionar al motor.

4. Las protecciones que se implementaron contra fallas de conexión y

sobrecompensación en la sintonización del sistema, necesarias para

Page 171: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Capítulo 6. Conclusiones y trabajo futuro

168

continuar con el desarrollo de este sistema, ya que al operar el motor de

voltajes como 24 V, a voltajes cada vez más altos tendiendo a los 340 V que

es el voltaje nominal del motor, la dinámica de esté cambiaba

constantemente, dando resultados en ocasiones no esperados, que de no

tener las protecciones se hubiera llegado a la degradación de sistema en

desarrollo. Las protecciones de temperatura y corriente están pendientes a

un trabajo futuro.

5. La interfaz de operación y monitoreo, resulto ser pieza clave para poder

depurar al sistema y verificar que lo implementado en el FPGA, concordaba

con lo diseñado. Además de cumplir con su función principal, de configurar

al sistema.

6. Se implementó un módulo inteligente de potencia con aislamiento eléctrico

entre las etapas de control y potencia, con capacidad de operar a un rango

máximo de 600 V y 30 A, y protegido contra picos de voltaje por medio de

supresión de transitorios.

7. El algoritmo de control, establecido para esta aplicación es congruente y

suficiente para regular la variable de velocidad, aprovechando los recursos

de la regulación del modo posición, incrementado las capacidades del

controlador en un solo hardware.

8. Se realizó un banco de pruebas, por medio del cual se le pudo ajustar una

carga constante al motor, para poder calibrarlo, y a través de él la

retroalimentación del sistema hacía con el diseñador, se vio acrecentada

mostrando los puntos a mejorar del sistema.

Se puede mencionar, que se logró llevar al diseño desde cero a una implementación

de controlador senoidal para motor BLDC, en su etapa funcional; sin embargo, este

proyecto se puede continuar trabajando y con un poco más de esfuerzo, llegar a

madurar al sistema, para llevarlo a una solución robusta para el control de posición,

velocidad y aceleración de estos motores en aplicaciones de vehículo eléctrico.

6.3 Trabajo Futuro

Como trabajos a realizar a futuro en este proyecto, se tiene que un vehículo eléctrico

tiene una dinámica de carga, cambiante constantemente, por ejemplo, no es lo

mismo que solo vaya dentro del vehículo el conductor, a que vaya una familia

entera, por tal motivo, para poder tener la mejor calibración del sistema, y por ende

la mejor respuesta del motor ante estas situaciones, es deseable que el control se

autosintonice dependiendo de la carga, que se va a desplazar.

Considerando de relevancia, al desarrollo de la autosintonía del controlador, por

medio de algoritmos de inteligencia artificial, para obtener mejores resultados,

cuando el controlador este trabajando en campo.

Page 172: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

169

Anexo 1 Hoja de especificaciones servomotores serie “BE” Parker

Page 173: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Anexo 1

170

Page 174: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

171

Page 175: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Anexo 1

172

Page 176: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

173

Page 177: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Anexo 1

174

Referencias

[1] Y. Hu, J. Sun, W. Li y Y. Pan, «A scientometric study of global electric vehicle research,»

Scientometrics, vol. 98, nº 2, pp. 1269-1282, 2014.

[2] C. P. Ordóñez, «ESTUDIO DE BATERÍAS PARA VEHÍCULOS ELÉCTRICOS.,» 2011.

[3] B. Singh y S. Singh, «State of the art on permanent magnet brushless DC motor drives,»

Journal of Power Electronics, vol. 9, nº 1, pp. 1-17, 2009.

[4] M. E. H. Benbouzid, D. Diallo y M. Zeraoulia, «Advanced fault-tolerant control of induction-

motor drives for EV/HEV traction applications: From conventional to modern and intelligent

control techniques,» Vehicular Technology, IEEE Transactions on, vol. 56, nº 2, pp. 519-528,

2007.

[5] A. Sathyan, N. Milivojevic, Y.-J. Lee, M. Krishnamurthy y A. Emadi, «An FPGA-based novel

digital PWM control scheme for BLDC motor drives,» Industrial Electronics, IEEE Transactions

on, vol. 56, nº 8, pp. 3040-3049, 2009.

[6] M. Steinbuch, «Control of Three Phase Brushless DC Motors».

[7] Microsemi, «Speed Control of Brushless DC Motors- Sinusoidal Commutation with Hall

Sensors,» One Enterprise, Aliso Viejo CA 92656 USA Within the USA: +1 (949) 380-6100,

2012.

[8] S. Davis, S. Diegel y R. Boundy, «Transportation Energy Data Book: Edition 26. Oak Ridge

National Laboratory,» ORNL, vol. 6978, 2007.

[9] N. A. F. D. C. U.S. Department of Energy, Electric Drive Vehicles Available by Manufacturer,

Model Year 2014, 2014.

[10] T. R. C. at Argonne National Laboratory, Hybrid and Plug-in Vehicle Sales, 1999-2013, 2014.

[11] Y. Xu, Q. Yuan, J. Zou, Y. Yao y G. Zhu, «Sinusoidal periodic carrier frequency modulation in

reducing electromagnetic noise of permanent magnet synchronous motor,» Electric Power

Applications, IET, vol. 7, nº 3, pp. 223-230, March 2013.

[12] P. M. Corporation, «Brushless AC Motor Commutation AN1004,» 2075-N Corte del Nogal

Carlsbad, CA 92009-1415 USA.

Page 178: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Referencias

175

[13] A. C. C. O. Sánchez García, «EN APLICACIONES MECATRÓNICAS ¿MOTOR O SERVOMOTOR?,»

Boletín UPIITA, nº 44, Julio 2014.

[14] Parker_Motion, «Brushless Motors».

[15] J. de Santiago, H. Bernhoff, B. Ekerg{\aa}rd, S. Eriksson, S. Ferhatovic, R. Waters y M. Leijon,

«Electrical motor drivelines in commercial all-electric vehicles: a review,» Vehicular

Technology, IEEE Transactions on, vol. 61, nº 2, pp. 475-484, 2012.

[16] Galil, «Sinusoidal Commutation of Brushless Motors Applicationnote 3414,» 3750 Atherton

Road Rocklin, CA 95765 USA.

[17] W. Brown, «Brushless DC Motor Control Made Easy,» Microchip Technology Inc, 2002.

[18] Galil_JohnH, Trapezoidal vs Sinusoidal Brushless Servo Amplifiers, 30.

[19] I. C. Hernández, «Diseño de un control de posición y velocidad para un servomotor sin

escobillas de tres fases de uso industrial,» 2013.

[20] M. Rajne, Generate your own commutation table: Trapezoidl control 3-phase BLDC motors

using hall Sensors, 2013.

[21] D. Trends, Brushless Motor Commutation, 2008.

[22] F. Fica, Armónicos.

[23] F. Fornieles, Armónicos: Efectos, diagnostico y soluciones, www.circutor.com, 2009.

[24] S. Electric, «Capítulo L Mejora del factor de potencia y filtrado de armónicos».

[25] R. M. H., Electrónica de potencia, P. Educación, Ed., Tercera edición, 2004.

[26] J. E. Volder, «The CORDIC Trigonometric Computing Technique,» Electronic Computers, IRE

Transactions on, Vols. %1 de %2EC-8, nº 3, pp. 330-334, Sept 1959.

[27] B. Viale, «Sensores de reactancia variable y electromagnéticos,» 1995.

[28] K. Oh, «Application Note 9016 IGBT Basic I,» Rev. A, Fairchild Semiconductor Corporation, pp.

1-29, February 2001.

[29] Fairchild, «AN-6076 Design and Application Guide of Bootstrap Circuit for High-Voltage Gate-

Drive IC,» 2008.

Page 179: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Anexo 1

176

[30] HARRIS, «Suppression of Transients in an Automotive Environment,» 1999.

[31] T. Instruments, «Current Recirculation and Decay Modes,» Post Office Box 655303, Dallas,

Texas 75265, 2009.

[32] XILINX, Field Programmable Gate Array (FPGA).

[33] Xilinx, «Spartan-3A/3AN FPGA Starter Kit Board User Guide,» 2008.

[34] S. Alberino, P. Folino y C. Verrastro, «Variante en el algoritmo PID para evitar el uso de un

generador de trayectoria trapezoidal,» X RPIC Proceedings, San Nicol{\'a}s, Bs. As, pp. 659-

663, 2003.

[35] T. I. Incorporated, Logic Solutions for IEEE Std 1284, 1999.

[36] I. Rectifier, «IR2130/IR2132(J)(S) & (PbF) 3-PHASE BRIDGE DRIVER,» 233 Kansas St., El

Segundo, California 90245 Tel: (310) 252-7105, 2004.

[37] I. Rectifier, «Application Note AN-985 Six-Output 600V MGDs Simplify 3-Phase Motor

Drives,» International Rectifier • 233 Kansas Street, El Segundo, CA 90245 USA.

[38] I. Rectifier, «Application Note AN-978 HV Floating MOS-Gate Driver ICs,» 233 Kansas St., El

Segundo, California 90245 Tel: (310) 252-7105, 2007.

[39] S. Wang, «BLDC Ripple Torque Reduction via Modified Sinusoidal PWM,» FAIRCHILD

SEMICONDUCTOR POWER SEMINAR 2008 - 2009, 2008 - 2009.

[40] J. Zhong, «PID controller tuning: a short tutorial,» class lesson), Purdue University, 2006.

[41] varios, EVS27 Simposio y Exposición Internacional de vehículos eléctricos, 2013.

[42] K. Um, «Application Note 9020 IGBT Basic II,» Rev. A, Fairchild Semiconductor Corporation,

pp. 1-25, April 2002.

[43] STMicroelectronics, «SLLIMM™ (small low-loss intelligent molded module) IPM, 3-phase

inverter - 18 A, 600 V short-circuit rugged IGBT,» 2013.

[44] STMicroelectronics, «AN2372 Low cost sinusoidal control of BLDC motors with Hall sensors

using ST7FMC,» 2006.

[45] B. Singh, «Recent advances in permanent magnet brushless DC motors,» Sadhana, vol. 22, nº

6, pp. 837-853, 1997.

Page 180: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Referencias

177

[46] Z. Shen, D. Briggs y S. Robb, «Design and characterization of high-voltage self-clamped

IGBT's,» Electron Device Letters, IEEE, vol. 20, nº 8, pp. 424-427, Aug 1999.

[47] R. Shanmugasundram, K. Zakariah y N. Yadaiah, «Implementation and Performance Analysis

of Digital Controllers for Brushless DC Motor Drives,» Mechatronics, IEEE/ASME Transactions

on, vol. 19, nº 1, pp. 213-224, Feb 2014.

[48] T. P. Santamaría, Tecnología Electrónica, U. de Zaragoza., Ed., Universidad de Zaragoza..

[49] T. Roy, L. Smith y J. Prymak, «ESR and ESL of ceramic capacitor applied to decoupling

applications,» de Electrical Performance of Electronic Packaging, 1998. IEEE 7th Topical

Meeting on, 1998.

[50] A. Poullikkas, «Sustainable options for electric vehicle technologies,» Renewable and

Sustainable Energy Reviews , vol. 41, nº 0, pp. 1277-1287, 2015.

[51] A. C. C. O. Sánchez García, «VEHÍCULO ELÉCTRICO, ¿POR QUÉ HASTA AHORA?,» Boletín

UPIITA, nº 42, Marzo 2014.

[52] F. MONASTERIO y {. GUTIERREZ, Modelo lineal de un motor de corriente continua, Art, 2012.

[53] S. Laboratories, «AN486 High-Side Bootstrap Design Using Si823x ISODrivers in Power

Delivery Systems,» 400 West Cesar Chavez, Austin, TX 78701, 2010.

[54] D. Kaiser y P. Compumotor, «Fundamentals of servo motion control,» Parker Compumotor,

vol. 11, 2001.

[55] L. Huang, J. Li y D. Zhang, «Frequency-controlable sine signal based on PWM and its

implementation on FPGA,» Frontiers of Mechanical Engineering, vol. 7, nº 3, pp. 322-328,

2012.

[56] D. Fodorean, «Study of a High-Speed Motorization With Improved Performances Dedicated

for an Electric Vehicle,» Magnetics, IEEE Transactions on, vol. 50, nº 2, pp. 921-924, Feb

2014.

[57] W. H. C. Elizabeth B. Chambers, «GENERAL MOTOR TERMINOLOGY,» 2009.

[58] L. Dump, «Suppression of Transients in an Automotive Environment,» Application Notes and

Technical Brief, p. 9312.

[59] E. A. Division, BE Series Servo Motors, 2013.

Page 181: Controlador SeNoidal para motor PMBLDC en tracción de ...tesis.ipn.mx/jspui/bitstream/123456789/16713/1/Controlador Senoidal... · En este trabajo se realiza el desarrollo tecnológico

Anexo 1

178

[60] P. Damodharan y K. Vasudevan, «Sensorless Brushless DC Motor Drive Based on the Zero-

Crossing Detection of Back Electromotive Force (EMF) From the Line Voltage Difference,»

Energy Conversion, IEEE Transactions on, vol. 25, nº 3, pp. 661-668, Sept 2010.

[61] C. Chan y K. Chau, «An overview of power electronics in electric vehicles,» Industrial

Electronics, IEEE Transactions on, vol. 44, nº 1, pp. 3-13, Feb 1997.

[62] S. Bhogineni y K. Rajagopal, «PWM schemes for Average line to line voltage based sensorless

control of BLDC motor,» de Power Electronics (IICPE), 2012 IEEE 5th India International

Conference on, 2012.

[63] Texas Instruments, «Texas Instruments, Logic Solutions for IEEE std 1284,» Junio 1999. [En

línea]. Available: http://www.ti.com/lit/an/scea013/scea013.pdf. [Último acceso: 27 Febrero

2014].

[64] W. Brown, «Brushless DC Motor Control Made Easy,» 2002.