Download Controlador SeNoidal para motor PMBLDC en tracción de vehículos

Document related concepts

Motor asíncrono wikipedia , lookup

Motor de corriente continua wikipedia , lookup

Variador de frecuencia wikipedia , lookup

Motor de corriente alterna wikipedia , lookup

Escobilla (electricidad) wikipedia , lookup

Transcript
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
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.
1
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.
2
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.
3
Dedicatorias
Para mis confidentes y mejores amigos, los amo familia.
4
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
5
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
6
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
7
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
8
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
9
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
10
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
11
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
12
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
13
Capítulo 1. Introducción
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.
14
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.
15
Capítulo 1. Introducción
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
16
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
17
Capítulo 1. Introducción
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.
18
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.
19
Capítulo 2. Fundamentos Teóricos
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.
20
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
Torque
Grande
Mínimo en el arranque
Reducido
Máximo desde la primer RPM
Disipación de calor
Eficiencia energética
Tipo de control
Complejidad de controlar
Ruido
Costo
Ineficiente
Baja
No lineal
Muy alta
Demasiado
Bajo
Eficiente
Alta
Lineal
Alta
Mínimo
Alto
21
Capítulo 2. Fundamentos Teóricos
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.
22
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.
23
Capítulo 2. Fundamentos Teóricos
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
24
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]
25
Capítulo 2. Fundamentos Teóricos
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
26
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.
27
Capítulo 2. Fundamentos Teóricos
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]
28
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.
29
Capítulo 2. Fundamentos Teóricos
Tabla 2 Codificación conmutación trapezoidal
HA
1
0
0
0
1
1
Sensores Hall
HB
1
1
1
0
0
0
HC
0
0
1
1
1
0
FASE A
Apagada
Apagada
+
+
Fases el motor
FASE B
+
+
Apagada
Apagada
FASE C
Apagada
+
+
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]
30
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𝜋
2𝜋
) 𝑠𝑖𝑛 (𝜃 − ))
3
3
2𝜋
2𝜋
) 𝑠𝑖𝑛 (𝜃 + )
3
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.
31
Capítulo 2. Fundamentos Teóricos
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 nolineales, 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
Conductor
Conductor de
Neutro
Condensador
PROBLEMA
• Aumento de la corriente
• Aumento de perdidas térmicas
(efecto Joule)
• Circulación armónicos múltiplos de 3
• Retorno por el conductor de neutro
• Resonancia paralelo con el sistema
• Amplificación de los armónicos
32
EFECTO
• Calentamiento cables
(deterioro)
• Disparo de protecciones
• Sobreintensidad por el neutro
• Calentamiento del neutro
• Degradación prematura
• Disparo de protecciones
• Calentamiento condensadores
• Envejecimiento prematuro de
condensadores
• Destrucción de condensadores
Maquinas
Eléctricas
• Circulación de corrientes armónicas
por los devanados y tensiones
armónicas en bornes
Equipos de
Medida y Control
• Medidas no válidas
• Errores en procesos de control
• 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)
• 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
33
Capítulo 2. Fundamentos Teóricos
 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
34
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.
Tamaño del ciclo
de trabajo (T1)
Comparación
Frecuencia
PWM
Periodo
Figura 11 Diagrama a bloques para la variación del ciclo de trabajo en el PWM
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
35
Capítulo 2. Fundamentos Teóricos
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 𝑠𝑒𝑔𝑢𝑛𝑑𝑜𝑠
=
= 1 𝑠𝑒𝑔𝑢𝑛𝑑𝑜
𝐶𝑢𝑒𝑛𝑡𝑎 𝑚á𝑥𝑖𝑚𝑜
16 𝑣𝑎𝑙𝑜𝑟𝑒𝑠
( 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
36
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.
37
Capítulo 2. Fundamentos Teóricos
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.
38
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.
39
Capítulo 2. Fundamentos Teóricos
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.
40
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:
41
Capítulo 2. Fundamentos Teóricos




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
Método Activación
Circuito de control
Impedancia en
compuerta
Consumo en la
activación
Velocidad de
conmutación
Frecuencia de
operación
SOA
Voltaje de
Saturación
BJT
Corriente
Complejo
Bajo
MOSFET
Voltaje
Sencillo
Alto
IGBT
Voltaje
Sencillo
Alto
Alto
Bajo
Bajo
Lento(µs)
Rápido(ns)
Medio
Bajo(menor a
100KHz)
Estrecho
Bajo
Rápido (menor a
1MHz)
Amplio
Alto
Medio
42
Amplio
Bajo
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]
43
Capítulo 2. Fundamentos Teóricos
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
44
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.
45
Capítulo 2. Fundamentos Teóricos
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
46
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.
47
Capítulo 2. Fundamentos Teóricos
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.
48
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.
49
Capítulo 2. Fundamentos Teóricos
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
50
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.
51
Capítulo 3. Accionamiento del motor PMBLDC
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.
52
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
1
1
0
1
0
1
10
12
14
16
21.1
5.3
1.3
0.3
4.88
0.488
0.06
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
1
1
0
1
0
1
Modo normal – Medición de posición en la salida
Modo normal – Medición de velocidad en la salida
Reservado del sistema
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,
53
Capítulo 3. Accionamiento del motor PMBLDC
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.
54
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
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
D12
D13
D14
D15
Pin FPGA
L20
P20
M20
M18
L19
L18
K19
K20
K18
K17
H19
J18
G20
G19
F20
E20
Señal
READ
CHIPSET
SAMPLE
RES0
RES1
DIR
EMULADO ENCODER A
EMULADO ENCODER B
Pin FPGA
F18
F19
D22
E22
D20
D21
D18
E17
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
55
Capítulo 3. Accionamiento del motor PMBLDC
el bloque que se generó para realizar el protocolo con el convertidor analógicodigital, 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
3
4
5
2
4
8
16
32
56
25,000,000
12,500,000
6,250,000
3,125,000
1,562,500
6
7
8
9
10
11
12
13
14
64
128
256
512
1024
2048
4096
8192
16384
781,250
390,625
195,313
97,656
48,828
24,414
12,207
6,104
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
57
Capítulo 3. Accionamiento del motor PMBLDC
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.
58
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.
59
Capítulo 3. Accionamiento del motor PMBLDC
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
60
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.
61
Capítulo 3. Accionamiento del motor PMBLDC
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.
62
Figura 36 Circuito para la detección de cambio de posición
63
Capítulo 3. Accionamiento del motor PMBLDC
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
64
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"
65
Capítulo 3. Accionamiento del motor PMBLDC
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
66
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.
67
Capítulo 3. Accionamiento del motor PMBLDC
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”.
68
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.
69
Capítulo 3. Accionamiento del motor PMBLDC
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.
70
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"
71
Capítulo 3. Accionamiento del motor PMBLDC
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.
72
𝐷𝑖𝑣𝑖𝑠𝑖𝑜𝑛𝑒𝑠 =
𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑟𝑒𝑙𝑜𝑗 𝑑𝑒𝑙 𝑠𝑖𝑠𝑡𝑒𝑚𝑎
( 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 𝑀𝐻𝑧
= 10.85 ≈ 11 𝑑𝑖𝑣𝑖𝑠𝑖𝑜𝑛𝑒𝑠
(18 𝑘𝐻𝑧) (256)
( 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.
73
Capítulo 3. Accionamiento del motor PMBLDC
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.
74
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.
75
Capítulo 3. Accionamiento del motor PMBLDC

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.
2.
3.
4.
Del valor 171 al 982
Del valor 938 al 725
Del valor 680 al 467
Del valor 426 al 211
76
Tabla 9 Carta de conmutación BLDC BE341J
A(Rojo)
POSITIVO
NEGATIVO
NEGATIVO
POSITIVO
POSITIVO
NEGATIVO
NEGATIVO
POSITIVO
POSITIVO
NEGATIVO
NEGATIVO
POSITIVO
POSITIVO
NEGATIVO
NEGATIVO
POSITIVO
FASES
B(Blanco)
NEGATIVO
NEGATIVO
POSITIVO
POSITIVO
NEGATIVO
NEGATIVO
POSITIVO
POSITIVO
NEGATIVO
NEGATIVO
POSITIVO
POSITIVO
NEGATIVO
NEGATIVO
POSITIVO
POSITIVO
C(Negro)
POSITIVO
POSITIVO
NEGATIVO
NEGATIVO
POSITIVO
POSITIVO
NEGATIVO
NEGATIVO
POSITIVO
POSITIVO
NEGATIVO
NEGATIVO
POSITIVO
POSITIVO
NEGATIVO
NEGATIVO
Datos medidos con
resolución a 1024 valores (10bits)
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
Valor
en
Decimal
171
126
84
43
1022
982
938
895
854
808
768
725
680
641
596
553
513
467
426
385
339
299
255
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
77
Capítulo 3. Accionamiento del motor PMBLDC
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
Diferencia
Valor medido
(Vant - Vactual)
171
126
84
43
1022
982
938
895
40
45
42
41
45
40
44
43
Valor medido
(Vant - Vactual)
854
41
808
46
768
40
725
43
680
45
641
39
596
45
553
43
En promedio la diferencia = 42.66 cuentas
Diferencia
(Vant - Vactual)
513
467
426
385
339
299
255
211
40
46
41
41
46
40
44
44
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.
78
79
Valor para
conmutar
(decimal)
42
85
127
170
212
255
298
340
383
426
468
511
553
596
639
681
724
767
809
852
895
938
981
1023
Rango
de suma
42
43
42
43
42
43
43
42
43
43
42
43
42
43
43
42
43
43
42
43
43
43
43
42
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
Tabla para conmutar (binario)
43
84
126
171
211
255
299
339
385
426
467
513
553
596
641
680
725
768
808
854
895
938
982
1022
Valor
Medido
(decimal)
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
Valor medido (binario)
Tabla 11 Rangos para conmutar
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
2
0
1
2
0
0
2
1
1
1
1
2
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
Error
AH
(medido vs
calculado)
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
AL
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
BH
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
BL
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
CH
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
CL
4
3
2
1
6
5
4
3
2
1
6
5
4
3
2
1
6
5
4
3
2
1
6
5
No.
Conmu
tación
Capítulo 3. Accionamiento del motor PMBLDC
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
0-41
42-84
85-126
127-169
170-211
212-254
Conmutación correspondiente para
giro a la izquierda
010010
000110
100100
100001
001001
011000
Conmutación correspondiente para
giro a la derecha
100001
001001
011000
010010
000110
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.
80
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.
81
Capítulo 3. Accionamiento del motor PMBLDC
Figura 56 Implementación del decodificador de conmutación
82
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.
83
Capítulo 3. Accionamiento del motor PMBLDC
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
84
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.
85
Capítulo 3. Accionamiento del motor PMBLDC
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
=
= 1.4062 𝑔𝑟𝑎𝑑𝑜𝑠
𝑃𝑜𝑠𝑖𝑐𝑖𝑜𝑛𝑒𝑠 𝑞𝑢𝑒 𝑐𝑜𝑛𝑓𝑜𝑟𝑚𝑎𝑛 𝑙𝑎 𝑣𝑢𝑒𝑙𝑡𝑎 𝑒𝑙é𝑐𝑡𝑟𝑖𝑐𝑎 256
( 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
86
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
87
Capítulo 3. Accionamiento del motor PMBLDC
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.
88
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.
89
Capítulo 3. Accionamiento del motor PMBLDC
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
90
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
91
Capítulo 3. Accionamiento del motor PMBLDC
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.
92
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
93
Capítulo 3. Accionamiento del motor PMBLDC
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.
94
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.
95
Capítulo 3. Accionamiento del motor PMBLDC
Figura 73 Implementación del decodificador de conmutación senoidal
96
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
97
Capítulo 3. Accionamiento del motor PMBLDC
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
98
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
Transistor
Posición
Arranque
sin PWM
280
CH
No
300
BL
Si
350
AH
No
386
CL
Si
434
BH
No
476
AL
Si
Giro a la Derecha
Transistor
Posición
Arranque
sin PWM
288
AH
No
330
CL
Si
369
BH
No
406
AL
Si
430
CH
No
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.
99
Capítulo 3. Accionamiento del motor PMBLDC
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.
100
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.
101
Capítulo 3. Accionamiento del motor PMBLDC
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.
Registro
Datos Salida
Datos Entrada
Escritura
Información
Lectura
Reset
Figura 79 Diagrama general de un registro electrónico
102
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
Reseteo (CLR)
1
0
0
0
Carga (L)
X
1
0
0
Entradas
Conteo (CE)
X
X
0
1
Reloj (C)
X
X
103
D7-D0
X
Datos
X
X
Salida
Q7-Q0
0
Datos
Sin cambio
Incremento
Capítulo 3. Accionamiento del motor PMBLDC
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.
104
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
105
Capítulo 3. Accionamiento del motor PMBLDC
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
106
“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.
107
Capítulo 3. Accionamiento del motor PMBLDC
Figura 85 Banco de registros Implementado
108
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
D0
D1
D2
D3
D4
D5
D6
D7
RESET
WRITE
READ
DAT/DIR
FPGA
B4
A4
A5
B6
A6
A7
A8
A9
C10
A10
A11
A12
DB25
2
3
4
5
6
7
8
9
1
14
16
17
109
Capítulo 4. Control
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.
110
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.
Paso 1
T1
Paso 2
Paso 3
T2
T3
𝑉=
Paso 4
T4
T5
𝑠
𝑡
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.
111
Capítulo 4. Control
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)]
( 10)
𝑛=0
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
112
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
113
Capítulo 4. Control
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
114
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.
115
Capítulo 4. Control
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.
116
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
117
Capítulo 4. Control
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”.
118
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.
119
Capítulo 4. Control
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
120
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.
121
Capítulo 4. Control
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.
122
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.
123
Capítulo 4. Control
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.
124
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.
125
Capítulo 4. Control
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
126
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,
127
Capítulo 4. Control
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.
128
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.
129
Capítulo 4. Control
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.
130
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.
131
Capítulo 4. Control
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"
132
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.
133
Capítulo 4. Control
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,
134
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.
135
Capítulo 4. Control
Explicado lo anterior, la lógica con la que trabaja este bloque, se puede observar en
el diagrama de la Figura 114.
Pre divisor
Control del
contador de RPM
Contador de RPM
Registro del Dato
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.
136
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.
137
Capítulo 4. Control
Tabla 16 Cantidad de vueltas necesarias para calcular nuevo valor de velocidad
Bit del contador
0
1
2
3
4
5
6
7
Cantidad de vueltas para calcular nuevo valor
2
4
8
16
32
64
128
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:
138



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.
139
Capítulo 4. Control
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.
140
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:
141
Capítulo 4. Control
1
1
3052
× 60 =
× 60 =
× 60 ≈ 263 𝑅𝑃𝑀
695
𝑇𝑟
695
3052
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.
142
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.
143
Capítulo 4. Control
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
144
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"
145
Capítulo 4. Control
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
146
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].
147
Capítulo 4. Control
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
148
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.
149
Capítulo 4. Control
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.
150
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.
151
Capítulo 4. Control
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.
152
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.
153
Capítulo 4. Control
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.
154
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.
155
Capítulo 5. Pruebas y resultados
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.
156
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
157
Capítulo 5. Pruebas y resultados
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.
158
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.
159
Capítulo 5. Pruebas y resultados
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.
160
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.
161
Capítulo 5. Pruebas y resultados
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.
162
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.
163
Capítulo 5. Pruebas y resultados
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.
164
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.
165
Capítulo 5. Pruebas y resultados
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
166
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
167
Capítulo 6. Conclusiones y trabajo futuro
5.
6.
7.
8.
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.
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.
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.
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.
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.
168
Anexo 1 Hoja de especificaciones servomotores serie “BE” Parker
169
Anexo 1
170
171
Anexo 1
172
173
Anexo 1
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 inductionmotor 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.
174
Referencias
[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 GateDrive IC,» 2008.
175
Anexo 1
[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. 659663, 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.
176
Referencias
[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.
177
Anexo 1
[60] P. Damodharan y K. Vasudevan, «Sensorless Brushless DC Motor Drive Based on the ZeroCrossing 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.
178