136
PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE ESCUELA DE INGENIERIA CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO ELECTRICO IMPULSADO POR ULTRACAPACITORES MAXIMILIANO MURA JORNET Tesis para optar al grado de Magister en Ciencias de la Ingeniería Profesor Supervisor: JUAN DIXON ROJAS Santiago de Chile, Diciembre, 2009 2009, Maximiliano Mura Jornet

CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE

ESCUELA DE INGENIERIA

CONTROL DE TORQUE PARA MOTOR BLDC

DE VEHICULO ELECTRICO IMPULSADO POR

ULTRACAPACITORES

MAXIMILIANO MURA JORNET

Tesis para optar al grado de

Magister en Ciencias de la Ingeniería

Profesor Supervisor:

JUAN DIXON ROJAS

Santiago de Chile, Diciembre, 2009

2009, Maximiliano Mura Jornet

Page 2: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE

ESCUELA DE INGENIERIA

CONTROL DE TORQUE PARA MOTOR

BLDC DE VEHICULO ELECTRICO

IMPULSADO POR ULTRACAPACITORES

MAXIMILIANO MURA JORNET

Tesis presentada a la Comisión integrada por los profesores:

JUAN DIXON ROJAS

DAVID WATTS CASIMIS

MICAH ORTUZAR DWORSKY

YADRAN FRANCISCO ETEROVIC SOLANO

Para completar las exigencias del grado de

Magister en Ciencias de la Ingeniería

Santiago de Chile, Diciembre, 2009

Page 3: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

ii

A todos y cada uno de los miembros

de mi familia, por su apoyo y

compresión en todo momento. En

particular a Sofía y Claudia, quienes

con su amor me dieron las fuerzas

para completar este trabajo.

Page 4: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

iii

AGRADECIMIENTOS

Quisiera agradecer en primer lugar a mis padres, por su apoyo constante y esfuerzo

incondicional, los que me permitieron completar con éxito mi educación profesional.

Agradezco también a mi profesor guía durante estos dos años de investigación, don Juan

Dixon Rojas, por su invaluable ayuda a lo largo de todo mi trabajo, por su inmensa

sabiduría, y por sobretodo su sencillez y calidad humana.

Quisiera agradecer además, la ayuda, el apoyo y la compañía de todo el equipo de trabajo

del Laboratorio: Sebastián Bosch, Javier Pereda, y en especial a Carlos Castillo, quien

construyó el inversor que utilicé para mi investigación; entendiendo que el trabajo aquí

presentado es fruto no sólo de mi esfuerzo sino de un trabajo en equipo. Sin duda no

hubiese sido lo mismo sin ellos. Agradezco también a Eduardo Cea, quién siempre estuvo

dispuesto a ayudarme y alegrarnos con su especial sentido del humor.

Por último, pero no menos importante, agradezco a Dios, quien crea las oportunidades y

entrega día a día las fuerzas para llevarlas a cabo.

Page 5: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

iv

INDICE GENERAL

Pág.

DEDICATORIA........................................................................................................... ii

AGRADECIMIENTOS .............................................................................................. iii

INDICE DE TABLAS ............................................................................................... vii

INDICE DE FIGURAS ............................................................................................. viii

RESUMEN ................................................................................................................... x

ABSTRACT ................................................................................................................ xi

1. Introducción ........................................................................................................ 1

1.1. Los Ultracapacitores ................................................................................... 3

1.2. Objetivos .................................................................................................... 6

2. Características del motor síncrono BLDC .......................................................... 7

2.1 Comparación con otro tipo de motores eléctricos ...................................... 7

2.1.1 Motores de corriente continua (DC) ................................................ 7

2.1.2 Motores de inducción ....................................................................... 7

2.1.3 Motores síncronos PMSM ............................................................... 8

2.1.4 Motores de reluctancia ..................................................................... 8

2.1.5 Motores síncronos BLDC ................................................................ 9

2.2 Construcción y principios de operación ................................................... 10

2.2.1 El estator ........................................................................................ 10

2.2.2 El rotor ........................................................................................... 12

2.2.3 Sensor de efecto Hall ..................................................................... 13

2.2.4 Teoría de operación ....................................................................... 16

Page 6: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

v

2.3 Características de torque y potencia ......................................................... 20

2.4 Descripción del motor a utilizar ............................................................... 22

3. Desarrollo del proyecto ..................................................................................... 25

3.1 Descripción del vehículo .......................................................................... 25

3.2 Descripción del inversor ........................................................................... 27

3.3 Técnica de control a utilizar ..................................................................... 30

3.3.1 Banda de histéresis ......................................................................... 31

3.3.2 Banda de histéresis multinivel ....................................................... 33

3.3.3 Técnica de control con banda multinivel ....................................... 35

3.3.4 Balance de voltajes entre ultracapacitores ..................................... 38

3.4 Simulaciones ............................................................................................ 43

4. Implementación práctica ................................................................................... 48

4.1 Características generales del microprocesador a utilizar ......................... 48

4.2 Esquema de control .................................................................................. 48

4.3 Módulos físicos del controlador ............................................................... 50

4.4 Banco de pruebas ..................................................................................... 53

4.5 Sistemas de seguridad y detección de fallas ............................................. 54

5. Resultados y Discusión ..................................................................................... 58

5.1 Análisis sobre el control de corrientes ..................................................... 58

5.2 Análisis del control de voltajes ................................................................ 62

5.3 Análisis del sistema de frenado regenerativo ........................................... 66

6. Conclusiones y trabajo futuro ........................................................................... 70

BIBLIOGRAFÍA ........................................................................................................ 73

Page 7: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

vi

ANEXOS .................................................................................................................... 77

ANEXO A: Esquema de pines del microprocesador ................................................. 78

ANEXO B: Tarjetas del controlador .......................................................................... 79

ANEXO C: Datasheet sensor de corriente ................................................................. 88

ANEXO D: Datasheet sensor de voltaje .................................................................... 91

ANEXO E: Datasheet conversores DC/DC ............................................................... 93

ANEXO F: Código fuente del microprocesador. Archivo main.cl ............................ 95

ANEXO G: Código fuente del microprocesador. Archivo config.h ........................ 115

ANEXO H: Código fuente del microprocesador. Archivo disparos.h ..................... 116

ANEXO I: Código fuente del microprocesador. Archivo extras.h .......................... 118

ANEXO J: Frecuencia en control de banda de histéresis (h) ................................... 119

ANEXO K: Códigos de error del controlador .......................................................... 123

ANEXO L: Construcción del inversor ..................................................................... 124

Page 8: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

vii

INDICE DE TABLAS

Tabla 1-1: Cuadro comparativo de elementos de almacenamiento energético ..................... 3

Tabla 2-1: Cuadro comparativo de motores ........................................................................ 10

Tabla 2-2: Voltaje según velocidad angular del rotor ......................................................... 22

Tabla 2-3: Relación entre torque y corriente de armadura .................................................. 23

Tabla 2-4: Resumen de características ................................................................................ 23

Tabla 3-1: Ficha técnica ...................................................................................................... 25

Tabla 3-2: Rangos de control y posibles operaciones. ........................................................ 35

Tabla 3-3: Combinaciones para generar un nivel de voltaje en terminales ........................ 41

Page 9: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

viii

INDICE DE FIGURAS

Figura 1-1: Esquema de condensador y ultracapacitor ......................................................... 4

Figura 1-2: Ultracapacitor Maxwell, módulo de 48V y 165F ............................................... 5

Figura 2-1: Estator de máquina BLDC ............................................................................... 11

Figura 2-2: Fuerza contra-electromotriz trapezoidal ........................................................... 11

Figura 2-3: Fuerza contra-electromotriz sinusoidal ............................................................ 12

Figura 2-4: Distintas topologías de rotor con imanes permanentes .................................... 13

Figura 2-5: Sección transversal de motor BLDC ................................................................ 14

Figura 2-6: Sensor de efecto Hall, ejemplo para rotor de un par de polos .......................... 15

Figura 2-7: Campo magnético de estator ............................................................................ 17

Figura 2-8: Movimiento del rotor en sentido horario .......................................................... 19

Figura 2-9: Formas de onda de voltaje y corriente ideales operando como motor ............. 20

Figura 2-10: Característica de torque del motor BLDC ...................................................... 22

Figura 3-1: Fotografía del automóvil .................................................................................. 26

Figura 3-2: Montaje de ultracapacitores en vehículo .......................................................... 26

Figura 3-3: Esquema de puente H ....................................................................................... 27

Figura 3-4: Operación de puente H ..................................................................................... 28

Figura 3-5: Esquema completo del inversor multinivel ...................................................... 28

Figura 3-6: Puente IGBT usado en construcción del inversor ............................................ 29

Figura 3-7: Inversor de 9 niveles construido ....................................................................... 29

Figura 3-8: Diagrama de flujo de control por histéresis...................................................... 31

Figura 3-9: Corriente controlada por banda de histéresis ................................................... 32

Figura 3-10: Corriente controlada por múltiples bandas de histéresis ................................ 34

Figura 3-11: Esquema de conexión para corriente entre las fases A y B ............................ 35

Figura 3-12: Corriente IAB controlada y correspondiente variación del voltaje del inversor

............................................................................................................................................. 37

Figura 3-13: Diagrama de flujo para elección de banda ..................................................... 38

Figura 3-14: a) aumentado corriente de motor b) disminuyendo corriente......................... 40

Page 10: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

ix

Figura 3-15: Ejemplo de operación para en nivel +2 (a) y nivel -2 (b)............................... 42

Figura 3-16: Diagrama de flujo del control de voltajes ...................................................... 43

Figura 3-17: Modelo completo del sistema ......................................................................... 44

Figura 3-18: Detalle del motor BLDC ................................................................................ 45

Figura 3-19: Detalle controlador ......................................................................................... 46

Figura 3-20: Detalle de la topología del inversor ................................................................ 47

Figura 4-1: Esquema del software de control...................................................................... 50

Figura 4-2: Tarjeta principal ............................................................................................... 51

Figura 4-3: Tarjeta de disparo para señales ópticas ............................................................ 52

Figura 4-4: Tarjeta para conexión de los sensores .............................................................. 53

Figura 4-5: fotografía del banco de pruebas........................................................................ 54

Figura 4-6: Diagrama de flujo del chequeo de sensores ..................................................... 56

Figura 4-7: Diagrama de conexión y diagrama de flujo del control de cortocircuito ......... 57

Figura 5-1: Simulación de corrientes de armadura ............................................................. 59

Figura 5-2: Oscilograma de las corrientes de armadura ...................................................... 60

Figura 5-3: Corriente de referencia (rojo) y torque de la máquina (amarillo) .................... 60

Figura 5-4: Oscilograma detalle de corriente en una línea.................................................. 61

Figura 5-5: Detalle de rizado de corriente ........................................................................... 62

Figura 5-6: voltaje fase-fase del motor ............................................................................... 63

Figura 5-7: Corriente de línea (amarillo) y voltaje fase-fase (verde) .................................. 64

Figura 5-8: Comportamiento de módulos con voltajes similares ........................................ 65

Figura 5-9: Comportamiento de módulos con voltajes diferentes ...................................... 66

Figura 5-10: Esquema de pedal de control del vehículo ..................................................... 67

Figura 5-11: Flujo del control de voltaje en regeneración .................................................. 68

Figura 5-12: Forma de corriente en regeneración (controlada) ........................................... 69

Figura 5-13: Forma de corriente en regeneración (no controlada) ...................................... 69

Page 11: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

x

RESUMEN

En este trabajo se presenta el análisis, diseño e implementación de un control de torque

para un motor síncrono tipo Brushless DC (BLDC) de 5 kW de potencia, con el objeto de

ser utilizado en un vehículo eléctrico. El inversor a utilizar es de 9 niveles, construyéndose

con 2 puentes H en cascada por fase y utilizando como única fuente de energía un módulo

ultracapacitor de 48 Vdc por cada puente. A diferencia de los vehículos eléctricos

convencionales que existen hoy en día, los cuales usan como fuente primaria de

almacenamiento energético baterías de distintos tipos, el vehículo en el cual se

implementará el controlador tendrá una capacidad de potencia mucho más elevada;

permitiendo cargar el vehículo en el transcurso de segundos o minutos, dependiendo de la

capacidad del cargador. Por otro lado, como los ultracapacitores actuales disponen de una

baja densidad energética, la eficiencia del sistema de tracción y la capacidad de frenado

regenerativo son puntos importantes en la implementación. La estrategia de control

utilizada en este trabajo fue el control de corriente por medio de múltiples bandas de

histéresis, el cual fue primero probado en simulaciones utilizando MATLAB/Simulink.

El vehículo dispondrá en total de aproximadamente 280 Wh de energía, lo que le permitirá

tener una autonomía cercana a 3 km., demostrando así que en cuanto los ultracapacitores

basados en nanotubos de carbono salgan al mercado (con 20 o 30 veces más capacidad de

almacenamiento que los utilizados en esta investigación), será perfectamente viable

construir vehículos eléctricos que permitan su uso en ciudad, tengan un tiempo de carga

muy reducido y no requieran ser cambiados en toda su vida útil.

Palabras Claves: Vehículos eléctricos, Ultracapacitores, banda de histéresis, control de

torque

Page 12: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

xi

ABSTRACT

This work presents the analysis, design and implementation of a torque control for a

synchronous Brushless DC motor type (BLDC) of 5 kW of power, in order to be used in an

electric vehicle. The inverter is using 9 levels, built with 2 cascaded H-bridge stages and

using a single energy source of 48 Vdc ultracapacitor module for each bridge. Unlike

conventional electric vehicles that exist today, which use a primary source of energy

storage batteries of different types, the vehicle in which control will be implemented, will

have a much higher power capacity, allowing the vehicle to be recharged in the course of

seconds or minutes, depending on the charger capacity. However, as the current

ultracapacitors have a low energy density, the efficiency of drive system and regenerative

braking are important points in the implementation. The control strategy used in this work

was the current control through multiple hysteresis bands, which was first tested in

simulation using MATLAB / Simulink.

The vehicle has a total of approximately 280 Wh energy, allowing it to have an autonomy

close to 3km., demonstrating that once the ultracapacitors based on carbon nanotubes are

in the market (with 20 or 30 times more storage capacity than the used in this research), it

will be perfectly feasible to build electric vehicles that allow their use in town, have a very

short recharge time and do not require to change its batteries throughout its life time.

Keywords: electric vehicles, supercapacitors, ultracapacitor, hysteresis band control, torque

control

Page 13: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

1

1. INTRODUCCIÓN

Aunque para muchos pudiera parecer que los vehículos eléctricos son una invención

reciente y que lleva pocos años de desarrollo, ciertamente la historia dista bastante de ser

así; de hecho los vehículos eléctricos en sus comienzos competían codo a codo con sus

rivales de combustión interna y fueron producidos de manera comercial durante 20 años

(Hughes, 1996), hasta que la ventajas comparativas de los vehículos a combustión

frenaron la creación de los propulsados con energía eléctrica. No fue hasta la crisis de

petróleo de los años 70, en que se volvió a pensar nuevamente en la creación de

vehículos eléctricos debido no sólo a la escasez de petróleo sino también a la

contaminación ambiental que produce la combustión de hidrocarburos (D'Agostino,

1993).

Las ventajas que tenían los vehículos a combustión sobre los eléctricos en un comienzo,

siguen siendo básicamente las mismas (Sulzberger, 2004). La gran densidad energética

de la gasolina permite que los automóviles tengan una autonomía mucho mayor que la

que se logra con cualquier tipo de baterías y el tiempo de carga de combustible toma

algunos minutos en lugar las 6 u 8 horas que toma la carga de los vehículos eléctricos

que se ven hoy en el mercado.

Según lo expuesto anteriormente, es claro que el centro de atención para el desarrollo de

más y mejores vehículos eléctricos debe ser la forma de almacenamiento de la energía.

Durante muchos años se ha experimentado con diferentes tipos de baterías, con

hidrógeno, y en el último tiempo han surgido con mucha fuerza los vehículos híbridos

(Chan, 2007)(Chang & Wong, 2004). Sin embargo existe otra tecnología bastante poco

explorada hasta el momento y que podría cambiar drásticamente, en el transcurso de

pocos años más, las prestaciones de los vehículos eléctricos (Schneuwly, Maher, &

Auer, 2004). La tecnología de almacenamiento antes mencionada son los

Ultracapacitores y el tema central de esta tesis es justamente la implementación de un

Page 14: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

2

vehículo propulsado únicamente con esta fuente de energía, como prototipo

experimental y base para los futuros desarrollos de estos elementos.

Al margen de los beneficios del vehículo eléctrico como tal, es importante tener en

cuenta que detrás de un cambio tan drástico como la masificación de los vehículos

utilizando esta tecnología, existe un necesario cambio de paradigma del modo en que

concebimos la red eléctrica. Para el sistema eléctrico, sin duda no dejaría de ser

relevante que miles de usuarios se conectaran a la red y decidieran cargar su vehículo

eléctrico por ejemplo, ya que una carga completa de éste puede significar alrededor de

10kWh de energía, la cual puede ser suministrada en un espacio de tiempo muy pequeño

(con la tecnología de los ultracapacitores) o más largo, según se desee. La capacidad de

la red eléctrica es limitada, además se alimenta con distintas fuentes energéticas y a un

distinto precio según la demanda existente en el sistema, lo que implica una gran

complejidad a la hora de operarla, sobre todo ante acciones no absolutamente

predecibles como la necesidad de un usuario por cargar su automóvil. Si bien lo anterior

puede sonar como un gran problema, por medio de las denominadas “redes inteligentes”

o “smart grids” (Farhangi, 2010) (Brown, 2008), podría convertirse en una gran

oportunidad. Las redes inteligentes no son otra cosa que las mismas redes de

abastecimiento energético actuales, pero dotadas de decisiones y acciones que no

dependen del sistema global sino de pequeñas porciones del mismo. Con esta

herramienta, los vehículos eléctricos podrían convertirse en un actor relevante en la red

eléctrica, ahora no sólo como consumidores, sino también como generadores de apoyo

en una mini red que ve sobrepasada su capacidad en algún momento o bien estima que le

es menos costoso comprar esa energía localmente que distribuirla desde una central. En

este nuevo paradigma, existirían más y mejores oportunidades para el usuario de un

vehículo eléctrico, ayudando a rentabilizar su inversión y la del país en estas tecnologías.

Page 15: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

3

1.1. Los Ultracapacitores

El condensador electroquímico de doble capa (ECDL), más conocido como

ultracapacitor, es en su definición más básica, un capacitor o condensador con una

capacidad de almacenar energía mucho más alta que lo normal, en general del

orden de diez a veinte veces la capacidad de un condensador electrolítico común

(0,2 Wh/Kg). Ellos permiten tener del orden de 2 a 5 Wh/kg de capacidad de

almacenamiento. Si pensamos que las baterías comunes de Plomo-ácido tienen una

energía específica promedio de 30 Wh/kg (ver Tabla 1-1), nos podemos dar cuenta

de la gran importancia que tienen estos dispositivos en el ámbito del

almacenamiento energético, pues en su estado de desarrollo actual ya se pueden

comparar con las baterías mencionadas.

Un ultracapacitor almacena energía electrostáticamente polarizando una solución

electrolítica y aunque es un dispositivo electroquímico, a diferencia de cualquier

batería, no hay reacciones químicas que intervengan en su mecanismo de

almacenamiento de energía. Por esto último, este mecanismo es altamente

reversible, lo que permite al ultracapacitor a ser cargado y descargado centenares

de miles o incluso millones de veces (Maxwell Inc., 2009).

Tabla 1-1: Cuadro comparativo de elementos de almacenamiento energético

Equipo Densidad de

energía [Wh/Kg]

Densidad de potencia [W/Kg]

Vida útil [Ciclos]

Batería Pb-Ácido 30 150 700

Batería Li-ión 120 250 1.200

Ultracapacitor Maxwell 4 3.200 1.000.000

Al estar formado por dos capas porosas de carbón activado, permite que al

aplicarle potencial entre las placas, la placa positiva atraiga a los iones negativos

Page 16: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

4

en el electrolito, mientras que el potencial de la placa negativa atrae a los iones

positivos. Esto crea dos capas de almacenamiento capacitivo, a diferencia de un

condensador electrolítico común.

Figura 1-1: Esquema de condensador y ultracapacitor

La forma de lograr la gran capacidad de los ultracapacitores para almacenar

energía, se debe a la estructura porosa de sus electrodos basados en carbono

activado, lo que permiten multiplicar varias veces el área de las capas que los

componen para un mismo volumen (Figura 1-1); de esta manera se puede lograr

áreas de 2000m2/g, lo que hasta hace poco tiempo parecía imposible. Además de

esto, debido a que la capacidad (C) de un condensador es proporcional al área de

las placas (A) e inversamente proporcional a la distancia de separación entre las

mismas (d) (como se aprecia en la Eq. 1-1 1-1), la extremadamente pequeña

distancia de separación que se logra en los ultracapacitores, hacen posible logran

altos valores de energía específica.

Eq. 1-1

Aunque en el mercado existen diversos modelos de ultracapacitores, por costos,

tamaño y capacidad, se eligieron 6 módulos ultracapacitores de 48V y 165F

Page 17: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

5

(Figura 1-2), del fabricante norteamericano Maxwell, los que tuvieron un costo

aproximado de US$2.250 cada uno.

Figura 1-2: Ultracapacitor Maxwell, módulo de 48V y 165F

De esta manera, según la fórmula para calcular la energía almacenada en un

condensador (Eq. 1-2), cada módulo almacena 52,8Wh; lo que hace un total de

316,8Wh almacenados en el vehículo. Sin embargo, por limitaciones del fabricante

los módulos no serán completamente descargados, sino que mantendrán una

tensión mínima de 16V, de manera que la energía total utilizable disminuye a

281,6Wh.

Eq. 1-2

Los ultracapacitores prometen convertirse en poco tiempo en fuentes de

almacenamiento energético altamente competitivas con el resto de las tecnologías

actuales. De hecho en la actualidad ya existen prototipos con energías específicas

varias veces mayores a las de los módulos utilizadas en este proyecto (Bakhoum,

Page 18: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

6

2009), (Weir & Nelson, 2008), (Schindall, 2007); pero no son aún productos

disponibles para la venta al público.

1.2. Objetivos

El objetivo principal de esta tesis y del proyecto en el cual se enmarca la misma, es

el desarrollo de un vehículo eléctrico que utilice ultracapacitores como única

fuente energética para tracción. La razón por la cual se hace necesario investigar

acerca de los ultracapacitores como fuente primaria o única de energía para

vehículos, se debe a que estos dispositivos presentan una serie de ventajas frente a

las baterías convencionales, dentro de las cuales podemos resaltar: el reducido

tiempo de carga (del orden de minutos o incluso segundos), la extensa vida útil

(cerca de un millón de ciclos), una muy alta eficiencia (supera el 98%), la no

necesidad de mantenimiento, y que su estado de carga pueda ser determinado

directamente con el voltaje (Maxwell Inc., 2009).

En tanto el objetivo específico de este trabajo, es la realización de un controlador

que sea capaz de manejar el sistema de tracción del vehículo, utilizando el

acelerador del mismo como una referencia de torque (tal como en los vehículos

convencionales), tanto para la aceleración como para el frenado regenerativo.

Como objetivo particular del controlador, se busca que el torque de la máquina

BLDC (motor de tracción a utilizar), sea lo más plano posible, ya que esto implica

un manejo más cómodo y una mayor eficiencia energética.

Finalmente se espera que el control sea capaz de manejar el sistema de carga y

descarga de los ultracapacitores, de manera de mantener el mismo voltaje en todos

los módulos y utilizar así el máximo de la energía disponible en ellos.

Page 19: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

7

2. CARACTERÍSTICAS DEL MOTOR SÍNCRONO BLDC

En este capítulo se describe el motor síncrono BLDC, el cual fue utilizado para el

desarrollo del vehículo que trata esta tesis. Lo aquí expuesto no pretende ser una fuente

detallada de información respecto a este tipo de motores, sino más bien un resumen de

sus principales características de funcionamiento, con el objeto de poder comprender

mejor las características del controlador.

2.1 Comparación con otro tipo de motores eléctricos

A continuación veremos un resumen de las características de los motores eléctricos

utilizados actualmente en tracción (Hashemnia & Asaei, 2008).

2.1.1 Motores de corriente continua (DC)

Si bien los motores de continua fueron los primeros motores utilizados para la

tracción y hubo mucho interés en ellos debido a la simplicidad que significa

controlar su torque, su construcción con anillos y escobillas acarrea problemas de

mantenimiento. Por esta razón al surgir nuevos métodos de control para las

máquinas de corriente alterna, el interés en desarrollar aplicaciones con este tipo de

motores bajo considerablemente.

De todas formas el motor DC sigue siendo un buen candidato para aplicaciones de

baja potencia, ya que en la actualidad se fabrican con poderosos imanes

permanentes lo que los hace más eficientes y confiables. El estándar para este tipo

de motores es alcanzar eficiencias de alrededor de un 80%, contando con una

potencia específica de 0,3 kW/kg.

2.1.2 Motores de inducción

Los motores de inducción han sido muy utilizados en diversos tipos de

aplicaciones industriales y estos se debe a sus características de confiabilidad,

Page 20: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

8

robustez, bajo mantenimiento, y capacidad de trabajar en entornos hostiles. Por

otro lado, la tecnología de los motores de inducción es la más madura entre los

motores de corriente alterna. Esta máquina tiene una muy buena eficiencia

(alrededor del 90%), es en extremo robusta y de muy bajo costo comparativo.

Además de contar con una potencia específica bastante competitiva (alrededor de

0,6 kW/kg). Sólo en la última década se ha visto superada por la mejor eficiencia y

bajo peso de las máquinas síncronas de imanes permanentes

2.1.3 Motores síncronos PMSM

Los motores síncronos de imanes permanentes son sin duda el competidor más

serio para los motores de inducción en aplicaciones de tracción. En efecto, varias

empresas (ej. Toyota, Honda, Nissan) ya producen vehículos con este tipo de

motores, pues tienen ventajas muy significativas, como son: alta potencia

específica (1kW/kg), mayor eficiencia (95%) y mejor disipación del calor hacia el

medio ambiente. El punto débil de esta tecnología es su elevado costo en relación a

su competidor más cercano, el motor de inducción, que hacen preferible muchas

veces este último pese a las ventajas del primero.

2.1.4 Motores de reluctancia

Los motores de reluctancia han recibido mucha atención para su aplicación en

vehículos, debido a sus ventajas constructivas. Ellos son de implementación muy

simple y muy resistente. Además son bastante similares en prestaciones con

respecto a los motores de inducción (eficiencia cercana a 91% y potencia

específica de 0,7 kW/kg). El motor sin embargo presenta serias desventajas como:

operación ruidosa, alto rizado en el torque, requiere de una topología especial en el

inversor, y produce alta interferencia electromagnética.

Page 21: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

9

2.1.5 Motores síncronos BLDC

Estos motores se pueden considerar como un caso particular de los motores

síncronos de imanes permanentes, siendo su diferencia que los motores BLDC se

alimentan con ondas rectangulares de corrientes en contraste con los motores

PMSM que son alimentados con ondas sinusoidales. Se podría decir también que

son el resultado de invertir el estator y el rotor de un motor DC, ya que los imanes

se encuentran en el rotor y el colector es emulado alternando la corriente de

armadura de la máquina, eliminando de esta forma todo tipo de escobillas y

anillos. Las principales ventajas en relación al PMSM son: tamaño más compacto

(1,2kW/kg), eficiencia levemente superior, detección de la posición del rotor más

sencilla y construcción un poco menos complicada. Además, a diferencia de los

motores PMSM, el control es bastante más sencillo de implementar ya que no es

necesario generar ondas sinusoidales en las corrientes de alimentación, en este

sentido son parecidos a los motores DC, pero mucho más eficientes (alrededor de

95%).

En la Tabla 2-1 2-1, podemos ver un cuadro comparativo en el que se midió

(Hashemnia & Asaei, 2008), con un puntaje de 1 a 5, cada característica de los

distintos tipos de motores.

Page 22: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

10

Tabla 2-1: Cuadro comparativo de motores

Tipos de Motor DC Inducción PMSM Reluctancia BLDC Características

Densidad de Potencia 2,5 3,5 5 3,5 5

Eficiencia 2,5 3,5 5 3,5 5

Controlabilidad 5 5 4 3 5

Confiabilidad 3 5 4 5 4

Madurez de la tecnología 5 5 4 4 4

Costo 4 5 3 4 3

Puntaje Total 22 27 25 23 26

2.2 Construcción y principios de operación

Como se mencionó anteriormente, los motores BLDC son una clase particular de

motor síncrono. Esto quiere decir que, como cualquier motor síncrono, el campo

magnético del rotor no es inducido por el campo magnético del estator, como lo

haría en un motor común de inducción, y por ende no existe deslizamiento entre

ambos campos (giran a la misma velocidad angular). Si bien existen motores

BLDC con distinto número fases, el motor usado en este proyecto fue un motor

trifásico, por ende cualquier explicación o figura hace referencia a este tipo de

motores únicamente.

2.2.1 El estator

En un motor BLDC, el estator está compuesto de cabezas polares formadas de

fierro laminado, en donde son puestos los embobinados (Figura 2-1). Aunque a

simple vista pareciera la configuración del estator de una máquina de inducción

cualquiera, la diferencia la hace la distribución que tienen los enrollados. La

mayoría de las máquinas BLDC se componen de 3 enrollados conectados en

Page 23: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

11

estrella, cada uno compuesto por un grupo de bobinas conectadas entre sí;

formando así un número par de polos en el estator.

Figura 2-1: Estator de máquina BLDC

Existen 2 tipos de embobinados para los motores síncronos, que producen dos

variantes: motores trapezoidales (BLDC) o motores sinusoidales. La diferencia

entre ellos está dada por la interconexión interna que se produce al formar las fases

con las distintas bobinas; lo que produce una fuerza contra-electromotriz o voltaje

inducido distinto entre los terminales del motor (Figura 2-2 y Figura 2-3).

Figura 2-2: Fuerza contra-electromotriz trapezoidal

Page 24: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

12

Figura 2-3: Fuerza contra-electromotriz sinusoidal

Cada tipo de motor, al tener distinto tipo de voltaje, también tiene distinto tipo de

corriente. Los motores sinusoidales requieren de corriente de alimentación

sinusoidales y los motores BLDC requieren de corrientes rectangulares

(idealmente), para su correcta operación. De esta manera, los motores sinusoidales

poseen una característica de torque más suaves que los motores BLDC, aunque su

construcción es más compleja por la distribución de las bobinas del estator y

también lo es su control, ya que es necesario generar ondas de corrientes

sinusoidales con bajo contenido armónico para su correcta operación (Yedamale,

2003).

2.2.2 El rotor

El rotor de un motor BLDC está construido con imanes permanentes, los cuales

pueden generar desde uno a un par de decenas de pares de polos. Según los

requerimientos de densidad de flujo magnético de la máquina, los imanes del rotor

pueden ser de diversos tipos. Si bien los imanes de ferrita han sido muy utilizados

para estos efectos, los nuevos descubrimientos de imanes de tierras raras han

Page 25: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

13

ganado terreno en este campo; ya que estos imanes poseen una densidad magnética

bastante mayor y son más livianos para un mismo volumen que los imanes de

ferrita (Yedamale, 2003). Actualmente la aleación más usada en motores de imanes

permanentes es la de Neodimio-Fierro-Boro. Cualquiera sea el tipo de imán a

utilizar, los rotores son construidos alternando los polos norte (N) y sur (S) (Figura

2-4), completando una cantidad par de polos y en directa relación con el número de

pares de polos del estator de la misma máquina.

Figura 2-4: Distintas topologías de rotor con imanes permanentes

2.2.3 Sensor de efecto Hall

Como se mencionó anteriormente, a diferencia de los motores DC, la conmutación

de los motores BLDC no se realiza con un colector con escobillas, sino que se

controla electrónicamente. Debido a esto, es necesario conocer la posición del rotor

para saber en qué secuencia se deben energizar las bobinas del estator. En la

mayoría de los motores BLDC, se usan 3 sensores de efecto Hall; los cuales se

ubican en el mismo eje del motor, del lado que no se usa.

Cada vez que los polos magnéticos del rotor pasan cerca de un sensor de efecto

Hall, estos entregan una señal digital (high o low), indicando si por ahí está

pasando un polo N o S. Según la combinación de las señales de estos 3 sensores, se

puede saber exactamente la posición del rotor (con una precisión angular que

Page 26: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

14

depende del número de polos); lo que nos permite determinar de manera precisa la

secuencia de conmutación que se debe seguir.

Como los sensores de efecto Hall necesitan estar en la parte estacionaria del motor

y perfectamente alineados con los polos del rotor, en la mayoría de los casos se

realiza una réplica magnética a escala de los polos de rotor exclusivamente para su

uso en el sensor Hall (Figura 2-5).

Figura 2-5: Sección transversal de motor BLDC

Los sensores de efecto Hall utilizados en las máquinas BLDC, se ubican en la

mayoría de los casos a 120° eléctricos de desfase entre ellos y tienen un segmento

circular de un tercio del segmento ocupado por cada polo. Como sabemos, si el

número de pares de polos es mayor que uno, los grados eléctricos y geométricos no

coincidirán, por lo que claramente su posición espacial dependerá directamente del

número de pares de polos del motor.

En la Figura 2-6 se puede ver como ejemplo un rotor con un par de polos, con 3

sensores de efecto Hall a 120° de desfase entre ellos. Si la cercanía del polo norte

(N) implica que el sensor de efecto Hall entrega la señal high (1 lógico) y por el

contrario la presencia del polo sur (S) tiene como salida la señal low (0 lógico);

podemos ver como la combinación de señales de salida (Ha:Hb:Hc), nos permiten

detectar la posición angular con precisión de 60° geométricos. Es decir, tendremos

6 posiciones conocidas para el rotor.

Page 27: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

15

Hb Hc

NS

Ha:Hb:Hc=100 à 0°

Hb Hc

Ha:Hb:Hc=101 à 60°

60°

Hb Hc

Ha:Hb:Hc=001 à 120°

120°

NS NS

Ha

Hb Hc

NS

180°

Ha:Hb:Hc=011 à 180°

Ha

Hb Hc

Ha:Hb:Hc=010 à 240°

240°

Ha

Hb Hc

Ha:Hb:Hc=110 à 300°

300°

NS N S

Ha Ha Ha

Figura 2-6: Sensor de efecto Hall, ejemplo para rotor de un par de polos

Es sencillo notar que el ángulo mínimo para precisar la posición del rotor siempre

será de 60° eléctricos. Como los pares de polos tienen que siempre completar los

360° de la circunferencia completa, la relación entre grados eléctricos y

geométricos se establece como:

Eq. 2-1

De esta manera entre más pares de polos tenga el motor, más precisa será al

información de posición del rotor y por ende el controlador puede hacer un control

de torque más preciso.

Page 28: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

16

2.2.4 Teoría de operación

Debido a que los sensores de efecto Hall permiten la determinación del rotor en

sectores circulares de 60°, necesariamente tenemos 6 etapas distintas para una

rotación de 360° del mismo; a esto se le llama conmutación de seis pasos (six-step

commutation).

La conmutación en seis pasos, es el resultado del hecho de que no disponemos de

información acerca de la posición angular del rotor durante los 60° en que el motor

permanece en un sector circular específico (al menos no con el sensor Hall); al

desconocer la información, lo óptimo es efectuar una sola acción para cada uno de

los 6 sectores circulares. Como el rotor es de imanes permanentes, es el campo del

estator el que hay que ir variando para lograr un movimiento circular en el eje. Por

cada sector en que se encuentre el rotor, se debe generar un vector de campo

magnético con cierto ángulo y cierta magnitud para que controlar el sentido de giro

y torque de la máquina.

Como se mencionó anteriormente, para la conmutación se usarán 6 vectores de

campo magnético, los que permanecerán constantes durante 60° eléctricos (y

geométricos para el caso base con un par de polos). Estos vectores se forman de las

combinaciones producidas al introducir corriente plana por una de las fases y

sacarla por otra, dejando la tercera sin alimentar.

En la Figura 2-7 podemos ver qué dirección toma el vector de campo magnético

del estator al alimentar diferentes bobinas. Por ejemplo, al introducir corriente por

la fase A y sacarla por la fase B (A→B); el vector del campo que se genera como

resultado de la suma vectorial de los campos generados por cada bobina, apunta en

dirección de los 300° (según las coordenadas de la misma figura).

Page 29: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

17

A à B

A

B

C

30°

60°

90°

120°

150°

180°

210°

240°

270°

300°

330°

A à C

A

B

C

30°

60°

90°

120°

150°

180°

210°

240°

270°

300°

330°

B à C

A

B

C

30°

60°

90°

120°

150°

180°

210°

240°

270°

300°

330°

B à A

A

B

C

30°

60°

90°

120°

150°

180°

210°

240°

270°

300°

330°

C à A

A

B

C

30°

60°

90°

120°

150°

180°

210°

240°

270°

300°

330°

C à B

A

B

C

30°

60°

90°

120°

150°

180°

210°

240°

270°

300°

330°

Figura 2-7: Campo magnético de estator

Page 30: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

18

Según la teoría básica de las máquinas síncronas, el torque que tiene la máquina es

proporcional al ángulo (δ) que se forma entre el vector de campo magnético del

rotor y el vector de campo del estator; esto quiere decir que el torque alcanza un

máximo cuando ambos vectores se encuentran a una distancia de 90°.

De las figuras anteriores, podemos apreciar que sólo se detectan posiciones en

ángulos múltiplos de 60° y a la vez podemos aplicar vectores de campo en las

mismos seis puntos. Esto quiere decir, en términos prácticos, que los valores más

cercanos a los que podemos poner los vectores de campo (al comienzo de cada

ciclo de conmutación) son 60° y 120°. Es por esto que el motor BLDC no es

cualquier máquina síncrona, sino que está especialmente construida para evitar la

variación de torque, a lo largo de los 60° eléctricos que dura cada ciclo de su

operación. De esta forma, en lugar experimentar una variación entre 120° y 60° al

atravesar un polo, el ángulo del vector se mantiene constante en la posición

intermedia, es decir 90°. Para que esta operación efectivamente resulte, a

diferencia de una máquina síncrona sinusoidal, el motor BLDC debe alimentarse

con corrientes planas. De esta forma, el torque de la máquina podrá ser tan plano

como las corrientes que lo producen.

Dependiendo la señal digital entregada por el conjunto de los sensores de efecto

Hall y del sentido de giro que quiera dársele al rotor, quedará determinado que

vector de campo de estator debe aplicarse y mantenerse hasta el próximo cambio

en la señal del sensor de posición.

Page 31: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

19

A

B

C

30°

60°

90°

120°

150°

180°

210°

240°

270°

300°

330°

N S

Ha

Hb

Hc

Ha:Hb:Hc=010

B à A

A

B

C

30°

60°

90°

120°

150°

180°

210°

240°

270°

300°

330°

NS

Ha

Hb

Hc

Ha:Hb:Hc=110

B à C

A

B

C

30°

60°

90°

120°

150°

180°

210°

240°

270°

300°

330°

NS

Ha

Hb

Hc

Ha:Hb:Hc=100

A à C

A

B

C

30°

60°

90°

120°

150°

180°

210°

240°

270°

300°

330°

NS

Ha

Hb

Hc

Ha:Hb:Hc=101

A à B

A

B

C

30°

60°

90°

120°

150°

180°

210°

240°

270°

300°

330°

NSHa

Hb

Hc

Ha:Hb:Hc=001

C à B

A

B

C

30°

60°

90°

120°

150°

180°

210°

240°

270°

300°

330°

NS

Ha

Hb

Hc

Ha:Hb:Hc=101

C à A

Figura 2-8: Movimiento del rotor en sentido horario

Page 32: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

20

2.3 Características de torque y potencia

Según lo mencionado hasta ahora, podemos resumir el comportamiento ideal de las

corrientes y tensiones de la máquina BLDC como se ve en la Figura 2-9. En línea

continua se muestra la corriente que pasa por cada bobina y en línea discontinua se

observa la tensión inducida en las bobinas por efecto de la variación del flujo

electromagnético por ellas.

0° 60° 120° 180° 240° 300° 360°

IA

IB

IC

eA

eB

eC

0

+

-

0

+

-

0

+

-

Figura 2-9: Formas de onda de voltaje y corriente ideales operando como motor

Se puede observar claramente que en cada ciclo de 60° eléctricos, sólo se

encuentran 2 de las 3 fases conduciendo; en donde por una de las fases está

entrando la corriente y por la otra saliendo. De esta manera la potencia eléctrica en

el primero ciclo (0 a 60 grados) puede ser calculada como:

Eq. 2-2

Page 33: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

21

Resultado que se puede generalizar sabiendo que la magnitud del voltaje inducido

en cada bobina tiene la misma magnitud (e) y lo mismo en el caso de las

corrientes, en que se considera Imax como el máximo valor de la corriente por

cualquiera de las fases; de manera que la ecuación general para el cálculo de la

potencia del motor sería:

Eq. 2-3

Conociendo la relación entre torque y potencia, podemos determinar:

Eq. 2-4

La relación entre la tensión inducida en cada bobina (e) y la velocidad angular (ω),

resulta ser lineal debido a que la densidad de flujo magnético es una constante

determinada por el rotor y el número de vueltas de cada enrollado por bobina es

también constante.

Eq. 2-5

El resultado de la ecuación anterior, nos indica que el torque de la máquina BLDC

es directamente controlado por la magnitud de las corrientes rectangulares de

estator, en donde interviene una constante de proporcionalidad (kΦ) la cual es una

característica de construcción de la máquina la cual debe ser especificada por el

fabricante u obtenida experimentalmente.

Al igual que el motor de inducción, los motores de síncronos y en particular el

motor BLDC, pueden operar variando su torque desde cero hasta el torque nominal

girando a cualquier velocidad (dentro de su rango nominal) usando un inversor.

Como toda máquina eléctrica sin embargo, tanto el torque como la velocidad

nominal se pueden extender bajo ciertas circunstancias, dando lugar a una

extensión de la curva característica de torque (ver Figura 2-10).

Page 34: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

22

Figura 2-10: Característica de torque del motor BLDC

2.4 Descripción del motor a utilizar

El motor BLDC utilizado es un motor de procedencia China, del cual sólo se

especificaron la potencia nominal y el número de polos, por lo que el resto de la

información fue obtenida por medio de pruebas experimentales.

Primero se midió la constante de proporcionalidad dada por la relación entre el

voltaje fase-fase y la velocidad angular del rotor, datos que se muestran en la tabla

a continuación.

Tabla 2-2: Voltaje según velocidad angular del rotor

Velocidad [rpm] Voltaje fase-fase [Vrms] Relación

[Vrms/rpm] 50 0,90 0,018

100 1,53 0,015

150 2,29 0,015

250 3,80 0,015

350 5,40 0,015

400 6,16 0,015

Page 35: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

23

450 6,92 0,015

500 7,69 0,015

La siguiente medición que se realizó fue de la constante de proporcionalidad que

relaciona la magnitud de las corrientes rectangulares de armadura con el torque del

motor (Tabla 2-3). Esta medición es muy importante, ya que nos indica la

capacidad del motor para propulsar el automóvil.

Tabla 2-3: Relación entre torque y corriente de armadura

Corriente [Arms] Torque medido [Nm] Relación [Nm/A]

8,0 1,4 0,18

16,4 3,6 0,21

19,2 4,2 0,22

24,0 5,25 0,22

Se determinó además que el sensor de efecto Hall, como la mayoría de los sensores

de este tipo, se alimenta con 5V y las señales de salida son de colector abierto, por

lo que es necesario poner resistencias pull-ups para su correcta operación.

Habiendo realizado todas estas pruebas, se llegó al siguiente resumen de

características:

Tabla 2-4: Resumen de características

Características del motor BLDC

Potencia Nominal 5000 W

N° de polos 6 pares

Resistencia por fase 100 mΩ

Inductancia por fase 60 µH

Voltaje nominal 76 Vrms

Corriente nominal 73 Arms

Torque nominal 16 Nm

Velocidad nominal 3000 RPM

Page 36: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

24

Page 37: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

25

3. DESARROLLO DEL PROYECTO

En el presente capítulo se revisará en detalle las características del proyecto, así como el

marco teórico en el cual se desarrolla el mismo. Hacia el final de este capítulo, se

revisarán las técnicas de control utilizadas y el proceso de simulación del conjunto.

3.1 Descripción del vehículo

El automóvil de combustión interna seleccionado para su conversión a propulsión

eléctrica fue un Suzuki Maruti (Figura 3-1), sus principales características técnicas

se describen a continuación.

Tabla 3-1: Ficha técnica

Características del automóvil

Potencia Máxima 26 kW

Peso 640 kg

Torque máximo 57 Nm

Largo 3300 mm

Ancho 1405 mm

Alto 1410 mm

Consumo promedio 15 km/l

Este vehículo presentó una serie de ventajas con respecto a otros de similares

características, ya que los principales puntos de decisión fueron:

Reducido tamaño

Bajo peso

Medianamente baja resistencia aerodinámica

De construcción simple (fácil de modificar)

Costo reducido (para su adquisición)

Page 38: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

26

Figura 3-1: Fotografía del automóvil

Por el peso y las dimensiones de los 6 módulos ultracapacitores, se construyó una

estructura de aluminio para ser puesta en la parte trasera del vehículo; ocupando

parte del maletero y sobre los asientos traseros abatidos como se puede ver en la

Figura 3-2.

Figura 3-2: Montaje de ultracapacitores en vehículo

Page 39: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

27

Los módulos son conectados con el inversor, el cual se localiza en la zona donde se

encontraba el motor original del auto, con 12 cables de poder; ya que no existe

punto neutro común, pues cada uno de los ultracapacitores es una fuente flotante.

3.2 Descripción del inversor

Se construyó un inversor multinivel de 9 niveles, con el fin de alimentar el motor

BLDC de tracción. Para realizar este inversor se utilizó una conocida técnica en los

inversores multinivel (Rodriguez, Lai, & Peng, 2002), que consiste en poner en

cascada (o serie) varios puentes H en cada fase (Tolbert, Peng, & Habetler, 1998).

En primer lugar resulta importante recordar cuál es la topología del puente H y en

particular como es controlada su operación. En la Figura 3-3 podemos ver que un

puente H se construye con 4 semiconductores (en nuestro caso IGBT), teniendo

como entrada una fuente de voltaje V y como salida los terminales A-B.

+

V

- AB

SBU

SBD

SAU

SAD

Figura 3-3: Esquema de puente H

Activando la conducción de un IGBT (en rojo) o desactivando la misma (color

negro), es posible variar la tensión entre los terminales A-B, tal como se muestra

en la figura a continuación.

Page 40: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

28

+

V

- AB

SBU

SBD

SAU

SAD

+

V

- AB

SBU

SBD

SAU

SAD

+

V

- AB

SBU

SBD

SAU

SAD

VAB = -V VAB = +V VAB = 0

Figura 3-4: Operación de puente H

Al poner 2 puentes en cascada por cada fase, es posible variar la tensión de

cualquiera de las fases (A, B, o C) con respecto al punto neutro (N), de modo de

obtener 5 niveles distintos de voltajes; de esta forma se obtienen 9 niveles para la

tensión entre cualquiera de las fases (-4V, -3V, -2V, -V, 0, +V, +2V, +3V, +4V).

+

V

-

SBU

SBD

SAU

SAD

+

V

-

SBU

SBD

SAU

SAD

+

V

-

SBU

SBD

SAU

SAD

+

V

-

SBU

SBD

SAU

SAD

+

V

-

SBU

SBD

SAU

SAD

+

V

-

SBU

SBD

SAU

SAD

A B C

N

Figura 3-5: Esquema completo del inversor multinivel

Page 41: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

29

Aunque existen módulos IGBT que disponen directamente de la configuración

para ser utilizados como puente H, debido a las limitaciones de corriente y al costo

de reposición de estos equipos; se utilizaron puentes trifásicos (la configuración

más común para inversores) en donde sólo será utilizadas 2 se sus 3 piernas

(Figura 3-6). De esta manera el equipo estará trabajando a lo sumo a dos tercios de

la potencia para el cual fue fabricado, y eventualmente al quemarse alguno de los

semiconductores que lo componen, es posible intercambiar las piernas en

operación y poder así seguir operando como un puente H completamente

funcional.

+

V

-

SAU

SAD

SBU

SBD

SCU

SCD

Figura 3-6: Puente IGBT usado en construcción del inversor

Figura 3-7: Inversor de 9 niveles construido

Page 42: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

30

3.3 Técnica de control a utilizar

Según lo revisado hasta ahora, para ajustar el torque de la máquina es necesario

controlar sus corrientes de armadura de la misma según lo mostrado en la Figura

2-9 del capítulo anterior. La intensidad de la corriente o valor “techo” de la onda

rectangular, es la que controla la magnitud del torque que entrega la máquina en el

eje y su forma, es decir perfectamente plana, es la que nos asegura un torque

también plano en el rotor. De esta manera resulta evidente que es importante

controlar tanto la operación sincronizada por medio de los sensores de efecto Hall,

como la calidad de la onda de corriente aplicada.

Existen diversos trabajos dedicados a la minimización del ripple del torque de la

máquina BLDC ((Ashabani, Kaviani, Milimonfared, & Abdi, 2008), (Bharatkar,

Yanamshetti, Chatterjee, & Ganguli, 2008), (Liu, Zhu, & Howe, Commutation-

Torque-Ripple Minimization in Direct-Torque-Controlled PM Brushless DC

Drives, 2007),(Liu, Zhu, & Howe, Direct torque control of brushless DC drives

with reduced torque ripple, 2005),(Rodriguez & Emadi, 2007) ), el cual es

producido en su mayor parte en los instantes de conmutación de cada una de las

seis etapas de operación del motor. Por ende, el eje central del problema y el punto

que produce la diferenciación de cada trabajo es el modo en que se controlan las

corrientes de la máquina. Básicamente son utilizados 3 tipos de control para las

corrientes de alimentación del motor, los cuales son:

PWM con portadora triangular

Muestreo periódico

Banda de histéresis

De los métodos mencionados, el seleccionado para este proyecto fue el método de

control de corrientes utilizando banda de histéresis, debido a las ventajas que

Page 43: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

31

presenta para este proyecto en particular respecto a los otros métodos, las cuales

serán expuestas a continuación.

3.3.1 Banda de histéresis

El método de banda de histéresis, es esencialmente un método mediante el cual se

mantiene el error de la corriente (e) respecto a la referencia (Iref), dentro de un

determinado valor. De esta manera se diferencia de un esquema de control

convencional, los cuales generalmente buscan mantener el error lo más cercano a

cero posible en todo instante.

La estrategia se puede entender mejor en el diagrama de flujo que se muestra en la

Figura 3-8, en donde e representa el valor del error entre la corriente de referencia

y la corriente medida ( ), eMAX es el mayor valor que se le permite tomar al

error y eMIN el menor valor que puede tomar la misma variable.

e > emaxSi

e < emin

Aumentar

Corriente

Disminuir

CorrienteNo No

Si

Figura 3-8: Diagrama de flujo de control por histéresis

El comportamiento del error (e) de una corriente controlada por el método de

banda de histéresis puede observarse en la Figura 3-9 3-9. La zona verde es donde

el error de la corriente puede variar libremente y la zona rojiza es en donde el

Page 44: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

32

controlador se ve forzado a actuar de manera que el valor del error vuelva a los

límites aceptables. El punto 1 en la Figura 3-9 3-9 muestra un ejemplo en el que el

error sobrepasa su límite inferior (e < eMIN) y por consecuencia el controlador debe

conmutar el inversor con el fin de disminuir el valor de la pendiente de la corriente y

entrar de nuevo en la zona verde. El punto 2 ejemplifica el caso opuesto al anterior, en

donde el error sobrepasa su límite superior (e > eMAX) y por ende se debe aumentar la

pendiente corriente para llevar su valor nuevamente dentro de los límites. Los puntos 3, 4,

y 5 son ejemplos de instantes en los que el error de la corriente se mantiene en la zona

verde y en consecuencia el controlador mantiene la última operación realizada (en este

caso particular aumentar la pendiente de la corriente).

e=eMIN

e=0

e=eMAX

1

2

3

Δt1 Δt2

4

5

Figura 3-9: Corriente controlada por banda de histéresis

Como características principales del método, podemos decir que se encuentra el

hecho de que no se preocupa en lo absoluto del valor de la corriente cuando ésta se

encuentra dentro de los rangos permitidos para su valor (determinados por eMAX y

eMIN); por otro lado, podemos ver que la frecuencia a la cual debe conmutar el

controlador (cuando se requiere aumentar o disminuir la corriente) no es ni

constante ni determinable, debido a que depende del valor de las variables en juego

en cada instante del proceso (notar y de la Figura 3-9). Sin embargo su

frecuencia máxima sí es determinable, lo que permite evitar que los IGBTs sean

Page 45: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

33

sobrepasados por la frecuencia de conmutación. Al ser determinable, los

parámetros tales como la misma banda de histéresis se pueden ajustar para limitar

la frecuencia. (Ver Anexo J).

3.3.2 Banda de histéresis multinivel

Exactamente en la misma línea del método de control de corriente por banda de

histéresis convencional, la utilización de múltiples bandas de histéresis para

controlar la operación de máquinas eléctricas, ha sido probada con éxito en varios

trabajos anteriores ((Corzine, 2000),(Lock & da Silva, 2007),(Loh P. C., Bode,

Holmes, & Lipo, 2003),(Loh, Bode, & Tan, 2005),(Zare & Ledwich, 2002)).

Dentro de las ventajas que se pueden contar en la utilización de multiplicidad de

niveles, las más relevantes para nuestro proyecto son: el hecho de que permite una

respuesta más rápida a los cambios de la corriente y por otro lado se adecúa

perfectamente a la topología de los inversores multinivel.

Como se puede observar en la Figura 3-10, el comportamiento de la variable

controlada por varias bandas de histéresis es muy similar al que tiene visto con

anterioridad; sin embargo, además de la banda principal de control dada por los

límites de error mínimo y máximo (zona verde); podemos identificar distintos

subniveles de referencia del error, los cuales nos permiten entregar una respuesta

más precisa para un nivel de error en particular. Por ejemplo si la corriente medida

tiene un valor muy distante de la referencia lógicamente sería más conveniente

aplicarle un mayor voltaje al motor, de modo que ésta se acerque rápidamente a la

referencia; sin embargo en el caso contrario, con un error muy pequeño será

siempre más conveniente aplicar un menor voltaje ya que de lo contrario se

producirá una mayor perturbación en la corriente.

Page 46: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

34

e=eMIN

ΔBp

e = Iref - IL

ΔBp

ΔBs

ΔBs

e=eMAX

Figura 3-10: Corriente controlada por múltiples bandas de histéresis

Aunque cada banda puede tener distintos niveles de referencia, por lo general se

estandariza su operación de modo de generar una banda principal (la que

determinará el error mínimo del controlador) dada por y el resto de las bandas

se posicionan equidistantemente de la primera por . De esta manera, variando

los dos parámetros mencionados ( y ), se puede configurar el controlador

variando su tiempo de respuesta y frecuencia de conmutación, entre otros.

Como el inversor a utilizar consta de 9 niveles, el controlador debe utilizar 4

niveles positivos y 4 niveles negativos para las bandas de histéresis, lo que genera

9 rangos entre cada uno de los cuales se debería aplicar una acción distinta. La

Figura 3-11, muestra la configuración en que se encuentra el inversor para

controlar la corriente entre la fase A y la B (IAB). Las fuentes en verde representan

los puentes H de la fase A, mientras las azules representan los de la fase B.

Page 47: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

35

AH

AL

BH

BL

IAB

N

LA LB

Figura 3-11: Esquema de conexión para corriente entre las fases A y B

A modo de ejemplo, en la Tabla 3-2 podemos ver las diferentes acciones que se

podrán tomar para mantener la corriente IAB, según la banda en que se encuentre el

error. El símbolo “+1” se refiere a un puente H entregando un voltaje positivo en el

sentido representado en la Figura 3-11, el símbolo “-1” se refiere a lo contrario y el

“0” representa un puente H entregando tensión nula.

Tabla 3-2: Rangos de control y posibles operaciones.

Banda Mínimo Máximo AL AH BL BH 4 BP+3BS x +1 +1 -1 -1

3 BP+2BS BP+3BS +1 +1 -1 0

2 BP+BS BP+3BS +1 +1 0 0

1 BP BP+3BS +1 0 0 0

0 -BP BP 0 0 0 0

-1 -BP-BS -BP 0 0 0 +1

-2 -BP-2BS -BP-BS 0 0 +1 +1

-3 -BP-3BS -BP-2BS 0 -1 +1 +1

-4 x -BP-3BS -1 -1 +1 +1

3.3.3 Técnica de control con banda multinivel

Aunque la Tabla 3-2 nos proporciona una referencia en el actuar del control

respecto de la información que nos entregan las bandas, el asunto resulta ser un

Page 48: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

36

poco más complejo. Como podemos ver en la misma tabla, debido a que los

puentes H se conectan en serie para modificar la corriente, podemos notar que

existen varias combinaciones para generar un mismo voltaje en los terminales del

inversor. Por ejemplo para generar el voltaje correspondiente a “Banda 3” se usó la

configuración (+1,+1,-1,0), pero bien podría haberse usado (+1,+1,0,-1). Por otro

lado la simple utilización de la tabla anteriormente mostrada sería más bien un

control proporcional discreto; ya que para poder operar realmente como banda de

histéresis es necesario conocer no sólo el estado actual del error, sino que también

su valor en el instante de conmutación anterior.

En la Figura 3-12 se muestra el comportamiento que tendría una corriente al ser

controlada utilizando múltiples bandas de histéresis. Este diagrama podría

corresponder al transiente que ocurre al variar drásticamente la referencia, en

donde la curva se va ajustando cada vez más hacia la banda principal e idealmente

se mantiene ahí. Como se puede apreciar en la misma figura, aunque los puntos 1 y

2 se encuentran en el mismo rango de error (entre B1 y B2), la respuesta del

controlador (voltaje VAB) es completamente distinta en consecuencia de que ésta

depende de la respuesta del mismo en el instante de conmutación anterior. Se

observa de la misma figura que al tener más niveles de respuesta, el control puede

responder más rápido en los cambios repentinos de la variable, sin embargo esto no

quita que en estado estable la velocidad de las conmutaciones sea igual o incluso

más bajas que utilizando una única banda de control.

Page 49: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

37

IAB ERROR

B1

B2

B3

B4

B-1

B-2

B-3

B-4

+V

+2V

+3V

+4V

-4V

-3V

-2V

-V

VAB

Figura 3-12: Corriente IAB controlada y correspondiente variación del voltaje del inversor

Como se observó en el comportamiento de la corriente controlada por múltiples

bandas de histéresis (figura anterior), el nivel de error o banda que tomará como

referencia el controlador para operar el inversor, no es directamente el resultado de

la medición de la magnitud del error, sino que rescata también información del

período anterior. Esto último se debe al hecho de que se debe mantener la esencia

del control por banda de histéresis tradicional (de una banda), en donde al elegir

una de las bandas superiores en magnitud, ésta no debe reducirse hasta llegar a las

bandas de distinto signo. Viendo la Figura 3-12, podemos ver que cuando el error

cruza el umbral de B4, se activa la respuesta -4V y aunque la magnitud del error

decrece debido a dicha acción, la respuesta del controlador permanece constante

hasta que el error cambia de signo (al llegar al umbral B-1). Además de lo

mencionado, el controlador debe mantener en todo momento un límite máximo de

Page 50: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

38

frecuencia de operación debido a limitaciones de los semiconductores (IGBT), de

modo que esta variable también influye de alguna manera en la selección de la

banda (ver proceso en Figura 3-13).

SELECCIÓN DE BANDA

abs(Bnueva) > abs(Bprev)

O

signo(Bnueva) != signo(Bprev)

Banda=Bnueva Banda=Bprev

NO

Frecuencia < Frec. Máx.

SI

SI

NO

Figura 3-13: Diagrama de flujo para elección de banda

3.3.4 Balance de voltajes entre ultracapacitores

Al estar los ultracapacitores como fuentes flotantes (uno por cada puente H que

contiene el inversor) y operando el inversor como se ha explicado anteriormente,

es lógico y esperable que la descarga de estos módulos no se hará de forma pareja.

El hecho de que los módulos tengan un distinto valor de voltaje nos perjudica por

al menos tres motivos: el primero es que el controlador podría trabajar

incorrectamente, ya que opera sobre la premisa de que puede usar cualquier

combinación de puentes para obtener un voltaje específico, el segundo motivo

consiste en la limitación de descarga de los ultracapacitores, los cuales serán

descargados hasta un tercio de su valor nominal, de modo que el primer módulo

que alcance esa cota obliga al controlador a dejar de operar el motor, y el tercer

motivo guarda relación con el uso eficiente de los módulos, debido a que de flujo

Page 51: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

39

de corriente que se genera al utilizarlos (ya sea cargándolos o descargándolos)

provoca calor, resulta recomendable utilizarlos de manera equilibrada para así

minimizar la temperatura de cada módulo.

En general para los inversores multinivel debe ser una preocupación el balancear

correctamente el uso de sus fuentes de alimentación, sean estas ultracapacitores o

cualquier otra (Tolbert L. , Peng, Cunnyngham, & Chiasson, 2002). Muchas veces

la intención de balancear los voltajes se toma normalmente como un objetivo

secundario al control, aunque existen algunos proyectos que incluyen técnicas de

balance especiales y anexas al control de corrientes (Lu, Zhu, Tian, & Wang,

2007). La desventaja de los sistemas anexos para la ecualización de los voltajes,

reside en el hecho de que para hacer el balance se utilizan conmutaciones o

intercambios de energía cuyo único propósito es igualar las tensiones y no el

objetivo principal del controlador, que es ajustar el nivel de torque de la máquina.

En el presente trabajo se ideó una forma de balancear los voltajes de manera muy

precisa y sin usar ninguna conmutación extra o sistema auxiliar de ecualización. La

técnica creada hace uso del hecho de que para mantener una corriente controlada

en una banda de histéresis, en algunos momentos es necesario tanto aumentar su

valor como disminuirlo. Para aumentar la corriente, los puentes han de operarse de

manera que el voltaje de los mismos sea más alto que el inducido por el motor y de

esta manera la corriente fluye desde los ultracapacitores hacia el motor (Figura

3-14-a). Por otro lado, para disminuir la corriente los puentes deben ser operados

de manera inversa, es decir manteniendo una tensión menor que la del motor, pero

a diferencia del caso anterior la corriente seguirá teniendo básicamente el mismo

valor (por ser una carga inductiva) y por ende en este caso la corriente fluye hacia

los ultracapacitores (Figura 3-14-b).

Page 52: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

40

a)b)

+

V

-

IM -

V

+

IM

Figura 3-14: a) aumentado corriente de motor b) disminuyendo corriente

Debido al hecho de que el inversor es multinivel, para cada caso en que se requiera

tanto aumentar o disminuir la corriente habrá varias posiciones en que los puentes

se pueden encontrar para generar la misma tensión en terminales. Es esta

redundancia en los niveles del inversor lo que nos permite decidir que módulos

ocupar. Por ende intentaremos usar los más cargados en el caso de querer aumentar

la corriente y los menos cargados en el caso de querer disminuirla.

Sin considerar que los puentes pueden dar el nivel cero al ser cortocircuitados o

que se pueden restar unos con otros para obtener distintos voltajes, debido a que

estas operaciones involucran un gasto energético extra; existe un número

determinado de combinaciones posibles para operar cada nivel (Tabla 3-3). De esta

manera podemos ver que, por ejemplo, al utilizar las bandas 4 (máxima tensión

en terminales) sólo existe una combinación posible y por ende no puede haber

selección de módulos ni balance de voltajes. Por otro lado desde los niveles 1 a

3 existen entre 4 y 6 combinaciones posibles, lo que permite una diversidad de

operaciones de carga y descarga entre módulos.

Page 53: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

41

Tabla 3-3: Combinaciones para generar un nivel de voltaje en terminales

Nivel Número de combinaciones

0 1

1 4

2 6

3 4

4 1

La mayoría de los sistemas de ecualización de voltajes, utiliza una cierta diferencia

como referencia para comenzar a operar; por ejemplo, si algún módulo presenta

una diferencia de más de 1 Volt del promedio, gatilla que el sistema de

ecualización entre en acción a modo de bajar esa diferencia. Nuestro sistema en

cambio, opera constantemente, ya que utiliza el mismo ciclo de conmutación de

control de la corriente (que generalmente varía entre 1kHz y 15kHz) para

equilibrar los voltajes (Figura 3-15), por ende tiene una mejor precisión para

mantener todos los voltajes en el mismo valor que el método mencionado

anteriormente.

Page 54: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

42

0 (baja carga) - V (alta carga) +

+ V (alta carga) - 0 (baja carga)

A

B

IMIM < Iref (aumentar corriente)

+ V (baja carga) - 0 (alta carga)

0 (alta carga) - V (baja carga) +

A

B

IMIM > Iref (disminuir corriente)

a)

b)

(H1)

(H1)

(H2)

(H3) (H4)

(H3) (H4)

(H2)

Figura 3-15: Ejemplo de operación para en nivel +2 (a) y nivel -2 (b).

El sistema de control de voltajes, el cual como se mencionó antes funciona de

forma paralela al sistema de control de corrientes, resulta ser un sencillo algoritmo

(Figura 3-16) que primero se encarga de ordenar los posibles puentes a utilizar (4

como máximo), y luego según el signo de la banda seleccionada (por el control de

corriente), opera los más cargados (voltaje más alto) en el momento de aumentar la

corriente y los menos cargados en el caso de disminuirla.

Page 55: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

43

ALGORITMO PARA CONTROL DE

VOLTAJES

Banda > 0

ORDENAR PUENTES-H

POR VOLTAJE

(orden descendiente)

Seleccionar los primeros

“Banda” Puentes para usarlos

(descargando)

Seleccionar los últimos

“Banda” Puentes para usarlos

(cargando)

SI

NO

Figura 3-16: Diagrama de flujo del control de voltajes

De esta forma podemos ver que el sistema de control de voltajes ideado para este

controlador, además de presentar las ventajas energéticas ya explicadas, ocupa

mucho menos tiempo de procesamiento, pues sólo debe leer 4 voltajes en cada

conmutación y ordenarlos; en lugar de leer todos los voltajes, promediarlos y

seleccionarlos; usando no sólo el tiempo de conmutación, sino también el

intermedio (si es un sistema que trabaja en paralelo).

3.4 Simulaciones

Como en cualquier proyecto, el proceso de simulación es un paso esencial en el

que probamos las distintas características tanto del sistema, como del controlador a

aplicar. En nuestro caso las simulaciones fueron realizadas en el programa

MATLAB/Simulink (The Mathwork Inc., 2008) debido a que este programa

permitía modelar tanto los componentes físicos como el sistema de control. En la

Figura 3-7, se puede observar el sistema completo modelado usando el programa; a

Page 56: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

44

la derecha se encuentra el motor BLDC de 12 polos, en el medio (color azul) se ve

el módulo de control y a la izquierda el modelo del inversor de 9 niveles.

fase A

fase B

fase C

vector 1 a->b = [1 2 4 5 ]

vector 2 a->c = [1 3 4 6 ]

vector 3 b->a = [2 1 5 4 ]

vector 4 b->c = [2 3 5 6 ]

vector 5 c->a = [3 1 6 4 ]

vector 6 c->b = [3 2 6 5 ]

Xei : Puente emisor de corriente

Xri : puente receptor de corriente

[Xe 1 Xr 1 Xe 2 Xr2]

|---M1---M4--+A

|---M2---M5--+B

|---M3---M6--+C

Ts=5e-0006 sOJO CON LA CONMUTACION POR DELTA DE VOLTAJE

Y LA REF DE CORRIENTE0.85 ohms | 100 uH (J inicial 0.8m J)

referencia direccion

rad2rpm 1

K-

rad2rpm

K-

Discrete,

Ts = 2e-006 s.

hall 1hall

corrientes

conversor de señales

g6g12 fcn

conversor A /D

In

SS/H

Voltajes

v+-

Vff

Te (N.m)

Referencia Torque

Ordenamiento Voltajes

volts

vector

kill

modo

puentes

Vrank

Check

node 2

node 4

node 3N (rpm )

MinMax 2

max

MinMax 1

max

MinMax

max

Lem2

i+-

Lem1

i+-

Lem

i+-

Inversor

Kill sig

gatesABC

Uc1

Uc2

Uc3

Uc4

Uc5

Uc6

Fem

Em 1

uy fcn

Data Store

Write

banda

Data Store

Read

banda

Data Store

Memory

banda

Corrientes

Controlador Voltajes

modo

puentes

Vrank

Bapl

GATES fcn

Control principal

dirvolts

IrefIabcHall

bandaA

vector

banda

error

fcn

Clock conversor

Banda

BLDC 12 polos

w

mA

B

C

Abs2

|u|

Abs1

|u|

Abs

|u|

<Stator current is _a (A)>

<Rotor speed wm (rad/s)>

<Stator current is _b (A)>

<Stator current is _c (A)>

<Stator back EMF e _a (V)>

<Stator back EMF e _b (V)>

<Stator back EMF e _cV)>

<Electromagnetic torque Te (N*m)>

Figura 3-17: Modelo completo del sistema

Se utilizó el modelo para motor BLDC con que cuenta el mismo programa (Figura

1-1), el cual se conecta al inversor por medio de los nodos 2, 3, y 4. Las variables

de interés como son las corrientes, los voltajes y lo parámetros del motor (toque,

velocidad, sensor Hall) son demultiplexados desde la salida del mismo modelo,

para luego ser utilizados por el controlador.

Page 57: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

45

fase A

fase B

fase C

simulador de carga

uy fcn

referencia direccion

rad 2rpm 1

K-

rad 2rpm

K-

Discrete,

Ts = 2e-006 s.

hall

gates to Gates

g6g12 fcn

corrientes

conversor A /D

In

SS/H

Voltajes

v+-

Vff

Velocidad (rpm )

Te (N.m)

Referencia Torque

Pre chequeo

volts

vector

kill

modo

puentes

Vrank

Check

node 2

node 4

node 3

MinMax 2

max

MinMax 1

max

MinMax

max

Lem2

i+-

Lem1

i+-

Lem

i+-

Inversor

Kill sig

gatesABC

Uc1

Uc2

Uc3

Uc4

Uc5

Uc6

Fem

Data Store

Write

banda

Data Store

Read

banda

Data Store

Memory

banda

Corrientes

Controlador Voltajes

modo

puentes

Vrank

Bapl

GATES fcn

Control principal

dirvolts

IrefIabcHall

bandaA

vector

banda

error

fcn

Clock conversor

Banda

BLDC 12 polos

w

mA

B

C

Abs2

|u|

Abs1

|u|

Abs

|u|

<Stator current is _a (A)>

<Rotor speed wm (rad/s)>

<Stator current is _b (A)>

<Stator current is _c (A)>

<Stator back EMF e _a (V)>

<Stator back EMF e _b (V)>

<Stator back EMF e _cV)>

<Electromagnetic torque Te (N*m)>

Figura 3-18: Detalle del motor BLDC

El controlador se simuló utilizando más de un módulo (en azul, Figura 3-19),

debido a las características del mismo, el cual controla en primer lugar la magnitud

de corriente (por ser proporcional al torque) y luego los voltajes de los módulos.

Page 58: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

46

fase A

fase B

fase C

vector 1 a->b = [1 2 4 5 ]

vector 2 a->c = [1 3 4 6 ]

vector 3 b->a = [2 1 5 4 ]

vector 4 b->c = [2 3 5 6 ]

vector 5 c->a = [3 1 6 4 ]

vector 6 c->b = [3 2 6 5 ]

Xei : Puente emisor de corriente

Xri : puente receptor de corriente

[Xe 1 Xr 1 Xe 2 Xr2]

|---M1---M4--+A

|---M2---M5--+B

|---M3---M6--+C

Ts=5e-0006 sOJO CON LA CONMUTACION POR DELTA DE VOLTAJE

Y LA REF DE CORRIENTE0.85 ohms | 100 uH (J inicial 0.8m J)

referencia direccion

rad2rpm 1

K-

rad2rpm

K-

Discrete,

Ts = 2e-006 s.

hall 1hall

corrientes

conversor de señales

g6g12 fcn

conversor A /D

In

SS/H

Voltajes

v+-

Vff

Te (N.m)

Referencia Torque

Ordenamiento Voltajes

volts

vector

kill

modo

puentes

Vrank

Check

node 2

node 4

node 3N (rpm )

MinMax 2

max

MinMax 1

max

MinMax

max

Lem2

i+-

Lem1

i+-

Lem

i+-

Inversor

Kill sig

gatesABC

Uc1

Uc2

Uc3

Uc4

Uc5

Uc6

Fem

Em 1

uy fcn

Data Store

Write

banda

Data Store

Read

banda

Data Store

Memory

banda

Corrientes

Controlador Voltajes

modo

puentes

Vrank

Bapl

GATES fcn

Control principal

dirvolts

IrefIabcHall

bandaA

vector

banda

error

fcn

Clock conversor

Banda

BLDC 12 polos

w

mA

B

C

Abs2

|u|

Abs1

|u|

Abs

|u|

<Stator current is _a (A)>

<Rotor speed wm (rad/s)>

<Stator current is _b (A)>

<Stator current is _c (A)>

<Stator back EMF e _a (V)>

<Stator back EMF e _b (V)>

<Stator back EMF e _cV)>

<Electromagnetic torque Te (N*m)>

Figura 3-19: Detalle controlador

El modelo del inversor multinivel (Figura 3-20) se construyó utilizando el modelo

de puente H incluido en el programa. Cada puente H recibe 2 señales

multiplexadas en un vector, las cuales indican en que IGBT conduce de cada una

de las 2 piernas. Antes de esta entrada de señal se encuentra un módulo el cual

recibe

Page 59: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

47

FASE A

FASE B

FASE C

Uc6

6

Uc5

5

Uc4

4

Uc3

3

Uc2

2

Uc1

1

voltaje fase -neutro

gates 5

On-off

gatesdisp

gates 4

On-off

gatesdisp

gates3

On-off

gatesdisp

gates 2

On-off

gates

disp

gates 1

On-off

gatesdisp

gates

On-off

gatesdisp

acel

1

VcnV

Vc6

v+-

Vc5

v +-

Vc4

v+-

Vc3

v+-

Vc2

v +-

Vc1

v +-

VbnV

VanV 1

VanV

V3

v+-

V2

v+-

V1

v+-

Scope 5

Scope 4

Scope 3

Scope 2

Scope 1

Scope

SC6

SC5

SC4

SC3

SC2

SC1

Puente bH2

g

A

B

+

-

Puente bH1

g

A

B

+

-

Puente aH4

g

A

B

+

-

Puente aH3

g

A

B

+

-

Puente aH2

g

A

B

+

-

Puente aH1

g

A

B

+

-

node 3

node 1

node 2

node 1

node 1

node 4

node 1

gatesABC

2

Kill sig

1

Figura 3-20: Detalle de la topología del inversor

Page 60: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

48

4. IMPLEMENTACIÓN PRÁCTICA

En este capítulo se presentará el detalle de la construcción e implementación del sistema

de control propuesto al comienzo de este trabajo. En primer lugar se revisarán las

características técnicas del microcontrolador utilizado como pieza principal del

dispositivo, para luego revisar el resto de la interfaz que se diseñó para su utilización.

4.1 Características generales del microprocesador a utilizar

Para la construcción física del controlador, se utilizó un microprocesador de la

familia PIC32MX (Microchip Technology Inc., 2009). Este es un dispositivo de

32bits, y gracias a su operación en 80MHz permite procesar una gran cantidad de

operaciones en poco tiempo, lo que es particularmente útil para este tipo de

aplicaciones.

El sistema cuenta con un conversor análogo digital de 16 canales, con 10 bits de

resolución, de los cuales se utilizaron 10 de ellos; tres para sensar las corrientes del

motor, seis para sensar los voltajes de los ultracapacitores y uno para la señal del

acelerador del sistema.

El dispositivo cuenta con 512kb para memoria de programa y 32kb disponibles

para memoria de datos. Tiene 7 puertos de 16 bits para entradas o salidas digitales,

de los cuales se utilizan dos (PORTA y PORTE), para controlar los disparos

ópticos hacia el inversor; se utiliza el PORTD para obtener las señales del sensor

Hall y activar los LEDs de salida; las señales análogas ocupan los pines del

PORTB y se obtienen los datos del control de marcha utilizando el PORTG.

4.2 Esquema de control

Aunque el microprocesador elegido podría haber sido programado en varios tipos

de lenguajes, se prefirió programarlo en lenguaje C. Según el tipo de aplicación

necesaria para el proyecto, por un lado resulta más fácil y rápido programar en

Page 61: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

49

lenguajes de alto nivel como pueden ser Java, C# y C++, pero por otro lado, debido

a las limitaciones en memoria y velocidad de respuesta del controlador, parece

mejor utilizar lenguajes de bajo nivel, como es el caso de Assembly. En un punto

intermedio del dilema se encuentra el lenguaje C, el cual no resulta tan básico

como Assembly y a la vez es bastante rápido y eficiente en el uso de memoria.

Habiendo probado variadas formas de programación para el sistema de control en

el microprocesador seleccionado, se eligió un programa de operación secuencial (a

excepción de la rutina del conversor A/D). De esta manera se puede asegurar

fehacientemente que los procesos se llevan a cabo en la secuencia correcta, de

modo de tomar las decisiones y realizar las acciones de la mejor manera.

Page 62: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

50

Chequeo

del sistema

Lectura

sensor Hall

-Terminar

-Mostrar error

Hay errores?

Muestreo

de variables

Selector de marcha?

frenando?

Selección de banda

Ordenar puentes

Disparar señales ópticas

seleccionar vector Vx-1seleccionar V0

FWD

BKW

NEUTRAL

seleccionar vector Vx+1

SI

Figura 4-1: Esquema del software de control

4.3 Módulos físicos del controlador

La construcción física del controlador, se llevó a cabo en 3 etapas distintas. La

primera tiene relación con el microprocesador, la segunda con los disparos ópticos

y la tercera con los sensores de corriente y voltaje del inversor.

La tarjeta principal (Figura 4-2), es la encargada de conectarse con el

microprocesador de manera de obtener todas las señales de entrada y salida,

Page 63: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

51

comunicándose con las otras tarjetas. Posee 2 fuentes de voltajes de 5V y una de

3.3V, para alimentación de los circuitos integrados que la misma posee y de las

tarjetas anexas. Además tiene conexión directa con el sensor de posición de efecto

Hall y el selector de marchas.

Figura 4-2: Tarjeta principal

La tarjeta de disparos ópticos (Figura 4-3), consiste en una serie de emisores

ópticos especialmente diseñados para trabajar con fibra óptica, los cuales reciben

por medio de un driver las señales eléctricas enviadas por el controlador y éstas

son emitidas en forma de luz, eliminando todo ruido electromagnético que podría

causar interferencia con las mismas. La placa recibe alimentación en 5V desde la

placa principal, con un consumo máximo de 360mA por placa (1080mA en total).

Page 64: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

52

Figura 4-3: Tarjeta de disparo para señales ópticas

La tarjeta de adquisición (ver Figura 4-4) consiste en un arreglo de resistencias y

conectores, que permiten la interconexión con los 3 sensores de corriente, los 6

sensores de voltaje y el sensor de posición del acelerador. Esta tarjeta recibe

alimentación de en 5V directamente de la placa principal, teniendo tierras

redundantes en lo cables de señales de entrada y salida. La placa tiene un consumo

promedio de 150mA. Una serie de “jumpers” permiten a la placa trabajar en

solitario (con sus interruptores cerrados) o en conjunto con otra placa de muestreo

(abiertos).

Page 65: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

53

Figura 4-4: Tarjeta para conexión de los sensores

4.4 Banco de pruebas

Para la realización de pruebas dinámicas sobre el motor, se implementó un banco

de pruebas (Figura 4-5) el que consiste una máquina de inducción de 3kW,

operado con un inversor donado por ABB1. Este sistema permite la inyección

bidireccional de potencia, pudiendo ser usado como carga o para prueba del

frenado regenerativo.

1 http://www.abb.com/

Page 66: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

54

Figura 4-5: fotografía del banco de pruebas

4.5 Sistemas de seguridad y detección de fallas

En el controlador se agregaron una serie de protecciones por software, las cuales

permiten aumentar el nivel de confiabilidad del sistema, alargar la vida útil de sus

componentes y advertir al usuario la existencia de alguna anomalía en el sistema.

Los parámetros básicos en los cuales pone su atención el controlador son el voltaje

de los módulos y la corriente de línea del motor. El voltaje de los módulos debe ir

variando desde 48Vdc hasta los 15Vdc, un valor por sobre este rango pone en serio

riesgo la integridad física de los módulos y un valor por debajo del mismo rango

acorta la vida útil de los módulos, no trayendo gran beneficio pues la energía

restante de un módulo con ese voltaje es inferior al 10% de la total.

Por otro lado, la corriente de línea del motor está limitada por la corriente

soportada por los módulos IGBT, que corresponde al valor de 100A. Por sobre este

valor, los puentes pueden resultar con daños irreparables.

Además de lo anterior, el sistema depende fuertemente de 3 clases de sensores: los

de corriente (3), los de voltaje (6) y el sensor Hall. En la práctica el motor podría

seguir operando sólo con los sensores de corriente y el sensor Hall funcionando, ya

Page 67: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

55

que el balance de los voltajes no es un requisito para el movimiento del motor. Sin

embargo, el controlador está configurado de tal forma que termine la operación si

es que detecta un mal funcionamiento de cualquiera de los sistemas.

La verificación de la integridad de los sensores, su conexión o bien el cable de

tierra (común para todas la señales); se llevan a cabo sólo al iniciar el sistema (ver

Figura 4-6). Los rangos de los niveles de voltaje son chequeados en cada iteración.

El sistema además posee un sistema de protección contra cortocircuito, el cual es

capaz de detectar y anular corrientes desde 10A por cualquiera de las fases. Este

sistema además puede comprobar fallas en los sensores de corriente por cada ciclo

del procesador, ya que se basa en el cálculo de la diferencia existente entre la fase

que inyecta corriente y la que debería drenarla (Figura 4-7).

En la práctica resulta poco eficiente imponer un límite de corriente de cortocircuito

muy bajo, debido a que por la topología del inversor, siempre existe una pequeña

corriente de fuga desde y hacia la fase que no se encuentra en conducción; y

aunque esta corriente tiene media cero, si se suma el hecho de que cada sensor

presenta cierta diferencia de precisión y por ende de medición con respecto a los

demás, se obtendrá como resultado falso indicadores de error que obligaran a

detener el sistema.

Page 68: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

56

Inicio del

sistema

Idle

Controlador

- Muestrear corrientes y voltajes

- promediar muestras

> SLMAX

o

< SLMIN

m

cbaxI ,,

Fin

SI

Sin errores

-apagar leds

-encender leds amarillo y rojo

m

cbaxI ,,

> V_MAX

o

< V_MIN

m

xV 6..1

m

xV 6..1

-apagar leds

-encender leds amarillo y verde

SI

Figura 4-6: Diagrama de flujo del chequeo de sensores

Page 69: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

57

AH

AL

BH

BL

IAB

N

SA SB

- Leer sensor fase inyectando (ej. A)

- Leer sensor fase drenando (ej. B)

|SA-SB| > DIFF_MAX_CORRIENTE

-apagar leds

-encender led amarillo

Fin

Controlador

NO

Figura 4-7: Diagrama de conexión y diagrama de flujo del control de cortocircuito

Page 70: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

58

5. RESULTADOS Y DISCUSIÓN

En el presente capitulo se mostrarán los resultados experimentales obtenidos, destacando

sus similitudes y diferencias con respecto a los resultados simulados. En particular se

revisará primero la operación del control de corrientes y en segundo lugar la del control

de voltajes, para finalizar con un análisis macro de la operación.

5.1 Análisis sobre el control de corrientes

Como se mostró en la sección 2.3 (pág. 20), idealmente el motor debe operar con

corrientes cuadradas circulando por el estator, de esta manera se producirá un

torque plano y únicamente dependiente de la magnitud de corriente. Es por esto

que, para controlar la velocidad del automóvil, basta con controlar la magnitud de

las corrientes cuadradas que alimentan a la máquina. De este modo se controla

indirectamente el torque del motor por medio de ese valor.

Como en cualquier tipo de control entonces, la efectividad del mismo se mide

según su capacidad de seguir con el mínimo de error a una referencia dada. En la

práctica, debido a limitaciones que imponen los componentes reales (por ejemplo,

un límite de corriente en el motor), siempre existe un conflicto entre la eficacia del

control, su velocidad, su complejidad, su robustez, su costo, entre otros, y todos

estos parámetros además son restringidos a las capacidades físicas de los equipos.

En este caso particular por ejemplo, al realizar un control de banda de histéresis, se

está dando de por sí una tolerancia fija entre la variable medida y la referencia, lo

que a su vez regula la frecuencia de conmutación con que se dispararán los

transistores.

Para la simulación se utilizaron modelos cuyos parámetros fueron ajustados para

adaptarse a los elementos utilizados en la práctica. El sistema de control es

básicamente el mismo, programado en un seudo-lenguaje C utilizado por el

programa Simulink. Debido a la baja inductancia que presentaba el motor, fue

Page 71: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

59

necesario agregar un inductor por fase de alrededor de 300µH con tal de que se

pudiera controlar el nivel de corriente dentro de una tolerancia y frecuencia

aceptable (referirse al Anexo J).

Podemos ver en la Figura 5-1, la simulación de las corrientes de armadura. Esta

simulación muestra claramente que el sistema inversor-controlador responde de

buena manera a los requerimientos de alimentación del motor, planteados en

capítulos anteriores.

Figura 5-1: Simulación de corrientes de armadura

En el oscilograma mostrado en la Figura 5-2, se puede observar, sin lugar a dudas,

que comprobando lo que se había estimado en las simulaciones, el inversor es

capaz de mantener de manera muy ajustada la forma apropiada de las corrientes.

Ello asegura un correcto funcionamiento de la máquina, ya que como se vio en

secciones anteriores, al mantener corrientes cuadradas conmutándose cada 60°

eléctricos, la máquina operará con un torque plano (dentro de la región nominal de

operación), el cual será directamente proporcional a la magnitud de dichas

corrientes.

Por otra parte, en la Figura 5-3, se demuestra lo expresando anteriormente en

cuanto a que la magnitud de la corriente de referencia modifica directamente el

Page 72: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

60

torque entregado por la máquina. También se observa lo rápido que este puede

responder a un cambio de la misma referencia.

Figura 5-2: Oscilograma de las corrientes de armadura

Figura 5-3: Corriente de referencia (rojo) y torque de la máquina (amarillo)

Page 73: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

61

Otro punto importante a revisar en los resultados del control de corriente, es la

frecuencia de conmutación que se genera en los IGBT. Como se revisó en los

capítulos anteriores, la frecuencia de conmutación es variable en todo momento, ya

que se realiza en respuesta de la magnitud y signo que tenga el error de la corriente

controlada respecto a la referencia. La importancia de la frecuencia radica

fundamentalmente en que entre menor sea la frecuencia con que operan los IGBT

menores serán las pérdidas en los mismos y por ende mayor la eficiencia del

sistema. Como se puede observar en el oscilograma de la Figura 5-4, el cual

muestra en detalle una de las corrientes de línea con que se está alimentando el

motor, la frecuencia de conmutación es bastante adecuada, siendo su promedio

alrededor de 3 kHz y su valor máximo de 10 kHz.

Figura 5-4: Oscilograma detalle de corriente en una línea

Por otro lado, en cuanto a la eficacia del control de corrientes, podemos ver en el

oscilograma de la Figura 5-5 que el controlador es capaz de mantener el valor de la

corriente de referencia con una precisión aproximada de ± 2. Esto significa que el

torque de la máquina tiene un error permanente de ±0,4 Nm (ver Tabla 2-3), lo

Page 74: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

62

que se traduce en un error porcentual de 2,5% respecto al torque nominal de la

máquina.

De todas formas, vale la pena destacar que para una aplicación automotriz resulta

poco importante la precisión con que se controle el torque, debido a que la inercia

dinámica del vehículo actúa como un filtro pasabajos respecto a las variaciones de

torque aplicado en el automóvil.

Figura 5-5: Detalle de rizado de corriente

5.2 Análisis del control de voltajes

A diferencia de una batería convencional, los ultracapacitores almacenan energía

en forma de campo eléctrico, lo que se traduce en que su estado de carga (energía

almacenada en el módulo) puede medirse directamente midiendo el potencial de

voltaje entre sus terminales. Esto resulta ser muy beneficioso para poder estimar la

energía restante de cada uno de los módulos (a diferencia de lo que pasa con las

baterías), pero sin embargo resulta ser un problema para el inversor en sí (ver

sección 3.3.4). Para enfrentar el problema de la disminución de voltaje de los

módulos, generalmente se utiliza un convertidor DC-DC el cual funciona como un

transformador de voltaje variable a voltaje continuo. Por ejemplo para nuestro caso

Page 75: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

63

necesitaríamos un convertidor que tome voltajes de entre 15 y 48Vdc y los

transforme a 48Vdc. La desventaja de esto no es sólo que el sistema se hace más

complejo y más costoso, sino que además los convertidores agregan ineficiencia al

sistema (generalmente tienen eficiencias de 80 a 90%).

Nuestro sistema propone una solución distinta al problema de los voltajes y se basa

en el hecho de que con la topología del inversor es posible agrupar en serie hasta 4

módulos ultracapacitores. Por otra parte, el motor a utilizar es de bajo voltaje y

presenta buena aislación para alto voltaje, pues está construido para ser utilizado

con un inversor. Esto permite que soporte el voltaje de los módulos tanto cuando

están completamente cargados (48Vdc) como cuando están descargados (15Vdc).

En el oscilograma a continuación, podemos observar claramente como el voltaje

aplicado a los terminales va variando en magnitud según el comportamiento que

vaya teniendo la corriente.

Figura 5-6: voltaje fase-fase del motor

Es importante notar, que existe un compromiso entre el balanceo de los voltajes y

la precisión con que se puede controlar la corriente y se debe al hecho de que al

Page 76: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

64

activarse cada una de las bandas de histéresis se van ocupando más módulos en el

control; por ende entre más pequeño sea el margen del error (ancho de las bandas),

más módulos se usarán y existirán por ende menos opciones para balancear los

voltajes (ver Tabla 3-3). De esta forma, el sistema deberá reprogramarse (editando

las variables) según sea el comportamiento que se quiera privilegiar.

En la Figura 5-7 se muestra un oscilograma en que se puede apreciar un ciclo

completo de la corriente de línea y el voltaje fase-fase asociado a la misma. Como

se puede observar, la onda de voltaje no tiene ninguna forma particular, ya que lo

que se controla es directamente la corriente.

Figura 5-7: Corriente de línea (amarillo) y voltaje fase-fase (verde)

El control de voltajes, se encarga todo el tiempo de cargar y descargar los módulos

de manera lo más equilibrada posible, pero sin utilizar conmutaciones extras

(además de las necesarias para mantener el control de la corriente dentro de las

bandas) como otros métodos ocupan; de esta forma es altamente eficiente. Es

importante destacar además que los procesos de carga y descarga de los módulos,

se efectúan tanto en la aceleración normal como en el frenado regenerativo, ya que

Page 77: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

65

no dependen del sentido de giro del motor, sino del signo del error de la corriente

(ver sección 3.3.4).

La eficacia del control de voltajes, dependerá de la capacidad que se le permita al

controlador de administrar los distintos módulos al ampliar la tolerancia al error de

la corriente; en otras palabras, si permitimos un error holgado para la corriente, los

voltajes serán ecualizados con una precisión muy fina y por el contrario será muy

difícil obtener una buena ecualización en el caso de que se fuerce a la corriente a

seguir muy ajustadamente la referencia.

En la Figura 5-8, se puede observar los datos obtenidos sobre el comportamiento

real de descarga de los módulos alimentando al motor, en donde al comienzo de la

operación todos los módulos presenta un nivel muy similar de voltaje.

Figura 5-8: Comportamiento de módulos con voltajes similares

Por otro lado, en la Figura 5-9 podemos observar el comportamiento del voltaje de

los módulos en el caso de estar desbalanceados al comienzo del proceso.

Page 78: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

66

Es importante dejar en claro que los módulos del inversor son en total 6, sin

embargo el equipo de medición sólo tenía capacidad para 4 canales de entrada y

esto limitó lógicamente la capacidad de graficar todas las señales.

Figura 5-9: Comportamiento de módulos con voltajes diferentes

De los datos mostrados anteriormente, podemos concluir que el sistema de control

de voltajes se comporta de muy buena forma, tanto para el caso de tener todos los

módulos balanceados (caso esperable), como en el caso de que los módulos

presenten serias diferencias de tensión.

5.3 Análisis del sistema de frenado regenerativo

El sistema de frenado regenerativo y el sistema de aceleración, son manipulados

con una misma variable: el voltaje que entrega el potenciómetro del único pedal de

control del vehículo. La primera porción del pedal (modificable vía software)

controla el proceso de frenado y la porción restante controla el proceso de

aceleración del vehículo (ver Figura 5-10); exceptuando la operación en reversa en

donde no existe proceso de frenado regenerativo.

Page 79: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

67

Max. freno

Min. freno

Min. acelerador Max.

acelerador

Figura 5-10: Esquema de pedal de control del vehículo

El frenado regenerativo, consiste básicamente en alimentar el estator con un campo

magnético girando en el mismo sentido de rotación normal, pero atrasado 120°

eléctricos con respecto al campo del rotor. Esto se logra invirtiendo la polaridad de

las corrientes y produce un torque negativo en el rotor de la máquina. Este campo

magnético de estator, se controla de la misma manera que el campo normal,

controlando el torque por medio de la magnitud de la corriente. A diferencia de la

operación normal del algoritmo de control de voltajes, para transformar la energía

cinética del vehículo y convertirla nuevamente en eléctrica, se utilizó el esquema

de control que se muestra en la Figura 5-11. El algoritmo se resume básicamente

en utilizar los módulos más descargados cuando sea necesario disminuir el nivel de

la pendiente de la corriente y aplicar un cortocircuito en el motor cuando se

necesite aumentar la pendiente de la misma, utilizando así la tensión inducida en el

motor por efecto de la rotación del mismo.

Page 80: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

68

ALGORITMO PARA CONTROL DE

VOLTAJES

Banda > 0

ORDENAR PUENTES-H

POR VOLTAJE

(orden descendiente)

Seleccionar los últimos

“Banda” Puentes para usarlos

(cargando)

Disparar cortocircuito

SI

NO

Figura 5-11: Flujo del control de voltaje en regeneración

Según la referencia que se le aplique al pedal de control, y los correspondientes

limites que se programen por software; el controlador intentará frenar el motor con

la medida de corriente que se le indique. Esto se traduce en un freno regenerativo

de magnitud controlada, siempre que se cumpla con la condición, de que la

referencia sea más baja que el valor que tomaría la corriente al aplicar un

cortocircuito en los terminales del motor (durante un ciclo de conmutación). El

límite mencionado depende de la velocidad de giro del motor, pues de ésta

depende la magnitud de voltaje inducido en el motor, utilizado para la

regeneración.

Operando dentro de los límites en que el controlador puede imponer una referencia

de corriente, las formas de la corriente son como se muestra en el oscilograma de

la Figura 5-12.

Page 81: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

69

Figura 5-12: Forma de corriente en regeneración (controlada)

Por otra parte, al tener una referencia situada sobre el límite de controlabilidad de

la corriente de regeneración, la forma de la corriente corresponde simplemente al

proceso de carga de los ultracapacitores; proceso que se lleva a cabo por medio del

rectificador formado por los diodos que componen cada puente H. Tal como se

observa en la Figura 5-13, en esta situación no existe ningún control sobre el nivel

de corriente y por ende tampoco de los voltajes.

Figura 5-13: Forma de corriente en regeneración (no controlada)

Page 82: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

70

6. CONCLUSIONES Y TRABAJO FUTURO

Se puede concluir en primer lugar, que el objetivo central de este trabajo, es decir:

investigar la utilización de ultracapacitores avanzados como fuente primaria de energía

para vehículos eléctricos, se cumplió a cabalidad. Esto debido a que se logró llevar a la

práctica un prototipo de vehículo eléctrico, el cual con las nuevas generaciones de

ultracapacitores, alcanzará fácilmente una autonomía de 50 a 90 km. Si se piensa que la

mayoría de los automovilistas en ciudad viajan en promedio una distancia de 30 km, se

puede deducir que un automóvil utilizando este tipo de tecnología puede ser

perfectamente viable para la ciudad; más aún si se considera que podría cargarse en cosa

de minutos.

La utilización de ultracapacitores, además de lo expresado anteriormente, se vislumbra

como la tecnología del futuro para esta aplicación, puesto que su vida útil supera con

creces la de cualquier automóvil común. De esta manera, se rompería una de las grandes

barreras de los vehículos eléctricos que es el costo de reinversión en baterías.

Según el objetivo específico de este trabajo, se llevó a cabo la implementación completa

del sistema de control de tracción para el vehículo. Llegando a obtener los resultados

que se esperaban alcanzar, como son: sistema únicamente utiliza ultracapacitores,

presenta rápida respuesta a referencia de torque, es robusto en cuanto es tolerante a fallas

en los IGBTs e incorpora el sistema de frenado regenerativo.

En cuanto a los objetivos particulares del sistema de control, demostró ser eficaz en

poder controlar la forma rectangular de las corrientes, y por ende, mantener el torque

plano en la máquina para la mayoría del rango dinámico del vehículo. El

comportamiento de las corrientes se mostró adecuado para varios niveles de torque, aún

cuando la magnitud del error de la corriente no es proporcional a la referencia. Es así

como la corriente presenta menos distorsión para un nivel medio de torque, que para un

nivel bajo.

Page 83: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

71

Por otro lado, el sistema de control de voltajes, el cual tiene como función ecualizar el

voltaje de los seis módulos, también demostró operar de manera correcta. El sistema de

control pudo controlar la diferencia de tensiones en distintos escenarios; por ejemplo con

todos los módulos totalmente desbalanceados y también cuando comienzan con el

mismo nivel de voltaje. De todas formas, es importante notar que el actuar del

controlador de tensión de los módulos, está sujeto al actuar del controlador de corriente.

En otras palabras, el control de voltajes no siempre actúa como tal, sino que está

restringido a la operación que dicta el control de corriente y por ende su efectividad es

variable. Aún así, para las pruebas realizadas se demostró una efectividad suficiente, ya

que el sistema no requiere un balance tan preciso de las tensiones.

En cuanto al inversor en sí, la topología adoptada no resultó ser la mejor para un motor

tipo BLDC. La disposición de los puentes H, permiten que la fase que no debe conducir

en la operación de seis pasos del motor, en realidad conduzca una pequeña corriente de

fuga, lo que produce una ineficiencia en el sistema. Por otro lado, la topología adoptada

se adecua perfectamente a un motor síncrono sinusoidal o bien un motor de inducción,

por lo tanto resulta muy útil y válida para trabajar con ella.

En cuanto al trabajo futuro, pareciera interesante investigar con otro tipo de topología en

el inversor, de modo de aumentar la eficiencia del mismo y ajustarlo mejor al tipo de

motor que pueda utilizarse en un futuro desarrollo.

Si bien el sistema de control cumple con los objetivos propuestos, podría mejorarse

involucrando más variables a la toma de decisiones y complejizando los algoritmos para

llegar a las mismas. Por ejemplo, podría programarse un sistema predictivo, de modo

que el control se ajuste mejor a los distintos niveles de exigencia del motor, los que

actualmente el sistema controla de forma pareja. Para lograr el objetivo anterior, de

mantenerse el control por banda de histéresis, el sistema podría estimar un ancho de la

banda según la referencia de torque o la velocidad de vehículo, en lugar de ser una

constante.

Page 84: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

72

El sistema de frenado regenerativo, podría ser más eficaz si el nivel de corriente de

frenado (entregado por la referencia en el pedal), se ajustara según la velocidad del

automóvil, ya que guardan una relación directa.

Aún cuando el sistema de control contiene algunos mecanismos de seguridad, sobre todo

de sobrecorrientes, sería recomendable incorporar más señales para analizar las

contingencias, como por ejemplo la temperatura del inversor o del motor, o bien las

señales de falla de los puentes IGBT.

En la cadena de tracción del vehículo, es decir todos los componentes que se ve

involucrados desde el almacenamiento de la energía hasta su llegada a las ruedas del

mismo, se estimó una eficiencia máxima cercana a un 79%. Este valor es la resultante

del cálculo en cascada de las eficiencias de toda la cadena: ultracapacitores (98%),

inversor (91%), motor (95%) y transmisión (93%) (Barrero, Mierlo, & Tackoen, 2008).

Por otro lado, se estima que esta eficiencia puede descender hasta valores cercanos a

72%, producto de situaciones de conducción en donde el motor se aleje de las zonas de

eficiencia máxima (Reichel, 2008). Sin embargo, cualquiera de estos dos valores resulta

comparativamente muy alto, si se tiene en cuenta que la eficiencia de un vehículo de

combustión interna promedio se encuentra entre un 12 y 16% (Reichel, 2008) (Sutanto,

2004).

Page 85: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

73

BIBLIOGRAFÍA

Ashabani, M., Kaviani, A., Milimonfared, J., & Abdi, B. (2008). Minimization of

commutation torque ripple in brushless DC motors with optimized input voltage control.

Power Electronics, Electrical Drives, Automation and Motion, 2008. SPEEDAM 2008.

International Symposium on , 250-255.

Bakhoum, E. (2009). New Mega-Farad Ultracapacitors. IEEE Transactions on

Ultrasonics, Ferroelectrics, and Frequency Control, 56(1) , 14-21.

Barrero, R., Mierlo, J., & Tackoen, X. (2008). Energy savings in public transport.

Vehicular Technology Magazine, IEEE , vol.3, no.3 , 26-36.

Bharatkar, S., Yanamshetti, R., Chatterjee, D., & Ganguli, A. (2008). Reduction of

commutation torque ripple in a brushless DC motor drive. Power and Energy

Conference, 2008. PECon 2008. IEEE 2nd International , 289-294.

Brown, R. (2008). Impact of Smart Grid on distribution system design. Power and

Energy Society General Meeting - Conversion and Delivery of Electrical Energy in the

21st Century, 2008 IEEE , 1-4.

Chan, C. (2007). The State of the Art of Electric, Hybrid, and Fuel Cell Vehicles.

Proceedings of the IEEE , 95(4) , 704-718.

Chang, C. C., & Wong, Y. S. (2004). Electric Vehicles Charge Forward. IEEE Power

and Energy Magazine, 2(6) , 24-33.

Corzine, K. (2000). A hysteresis current-regulated control for multi-level drives. IEEE

Transactions on Energy Conversion, 15(2) , 169-175.

D'Agostino, S. (1993). The electric car. IEEE Potentials, 12(1) , 28-32.

Farhangi, H. (2010). The path of the smart grid. Power and Energy Magazine, IEEE ,

vol.8, no.1 , 18-28.

Page 86: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

74

Hashemnia, N., & Asaei, B. (2008). Comparative Study of Using Different Electric

Motors in the Electric Vehicles. ICEM 2008. 18th International Conference on

Electrical Machines (pp. 1-5). Vilamoura: Portugal.

Hughes, P. A. (1996, September). A History of Early Electric Cars. Retrieved Mayo 14,

2009, from http://www.geocities.com/Athens/Crete/6111/electcar.htm

Liu, Y., Zhu, Z., & Howe, D. (2007). Commutation-Torque-Ripple Minimization in

Direct-Torque-Controlled PM Brushless DC Drives. IEEE Transactions on Industry

Applications, 43(4) , 1012-1021.

Liu, Y., Zhu, Z., & Howe, D. (2005). Direct torque control of brushless DC drives with

reduced torque ripple. IEEE Transactions on Industry Applications, 41(2) , 599-608.

Lock, A., & da Silva, E. (2007). Improved Hysteresis Current Control of a Single Phase,

Three Level, Double PFC Converter. Power Electronics Specialists Conference, 2007.

PESC 2007. IEEE , 1326-1330.

Loh, P. C., Bode, G., Holmes, D., & Lipo, T. (2003). A time-based double-band

hysteresis current regulation strategy for single-phase multilevel inverters. IEEE

Transactions on Industry Applications, 39(3) , 883-892.

Loh, P., Bode, G., & Tan, P.-C. (2005). Modular hysteresis current control of hybrid

multilevel inverters. IEE Proceedings Electric Power Applications, 152(1) , 1-8.

Lu, R., Zhu, C., Tian, L., & Wang, Q. (2007). Super-Capacitor Stacks Management

System With Dynamic Equalization Techniques. IEEE Transactions on Magnetics,

43(1) , 254-258.

Maxwell Inc. (2009). BOOSTCAP® Product Guide. Retrieved Mayo 15, 2009, from

Maxwell Technologies:

http://www.maxwell.com/pdf/20090113_BOOSTCAP_Product_Guide_1014627.1.pdf

Microchip Technology Inc. (2009). Retrieved Septiembre 14, 2009, from

http://www.microchip.com/

Page 87: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

75

Reichel, R. (2008). Power for mobility … pure e-motion. Power System Conference,

2008. MEPCON 2008. 12th International Middle-East , 1-11.

Rodriguez, F., & Emadi, A. (2007). A Novel Digital Control Technique for Brushless

DC Motor Drives. IEEE Transactions on Industrial Electronics, 54(5) , 2365-2373.

Rodriguez, J., Lai, J.-S., & Peng, F. Z. (2002). Multilevel inverters: a survey of

topologies, controls, and applications. IEEE Transactions on Industrial Electronics,

49(4) , 724-738.

Schindall, J. (2007). The Charge of the Ultracapacitors, Nanotechnology Takes Energy

Storage Beyond Batteries. IEEE Spectrum , 38-42.

Schneuwly, A., Maher, B., & Auer, J. (2004). Ultracapacitors, the New Thinking in the

Automotive World. Retrieved Abril 28, 2009, from Maxwell Technologies, Inc.:

http://www.maxwell.com/pdf/uc/white-papers/the_new_thinking.pdf

Sulzberger, C. (2004, Mayo). An Early Road Warrior. Retrieved Mayo 14, 2009, from

IEEE Power Engineering Society:

http://www.ieee.org/organizations/pes/public/2004/may/peshistory.html

Sutanto, D. (2004). Alternative energy resource from electric transportation. Power

Electronics Systems and Applications, 2004. Proceedings. 2004 First International

Conference on , 149-154.

The Mathwork Inc. (2008). Matlab (v7.6). [Software]: Disponible en

http://www.matlab.com.

Tolbert, L., Peng, F. Z., Cunnyngham, T., & Chiasson, J. (2002). Charge balance control

schemes for cascade multilevel converter in hybrid electric vehicles. IEEE Transactions

on Industrial Electronics, 49(5) , 1058-1064.

Tolbert, L., Peng, F., & Habetler, T. (1998). Multilevel inverters for electric vehicle

applications. Power Electronics in Transportation, 1998 , 79-84.

Weir, R. D., & Nelson, C. W. (2008). Patent No. 7.466.536 B1. Estados Unidos.

Page 88: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

76

Yedamale, P. (2003, November 11). Brushless DC (BLDC) Motor Fundamentals.

Retrieved April 25, 2009, from Microchip Technology Inc.:

http://ww1.microchip.com/downloads/en/AppNotes/00885a.pdf

Zare, F., & Ledwich, G. (2002). A Hysteresis Current Control for Single-Phase

Multilevel Voltage Source Inverters: PLD Implementation. IEEE Transactions on

Power Electronics, 17(5) , 731-738.

Page 89: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

77

ANEXOS

Page 90: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

78

ANEXO A: Esquema de pines del microprocesador

1 RA6 GND 1 GND

2 RA7 2

3 3

4 4 RE5 RE4

5 RD13/HC 5 RE3 RE2

6 RD7/HB RD6/HA 6 RE1 RE0

7 7 RD5

8 RD4 8

9 RD2/L RD3 9

10 RD0/L RD1/L 10

11 GND 11 GND

12 12 RG6 RG7

13 13 RG8 RG9

14 3,3V 5V 14 3,3V 5V

15 AN5 AN4 15

16 AN3 AN2 16

17 AN1 AN0 17 AN8 AN9

18 RA3 18 RA14 RA15

19 RA2 19

20 GND 9V 20 GND 9V

21 U1RX 21

22 U1TX 22

23 RD15 U2RX 23 GND

24 RD14 U2TX 24 AN10 AN11

25 GND GND 25 AN12 AN13

26 26

27 RA5 27 RA9 RA10

28 AN6 RA4 28

29 RA1 29

30 AN7 RA0 30 AN14 AN15

IZQUIERDO DERECHO

Page 91: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

79

ANEXO B: Tarjetas del controlador

Figura B. 1: Tarjeta principal, capa TOP (superior)

Page 92: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

80

Figura B. 2: Tarjeta principal, capa BOTTOM (inferior)

Page 93: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

81

Figura B. 3: Tarjeta principal, tVALUES (texto)

Page 94: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

82

Figura B. 4: Tarjeta de disparos, capa TOP

Page 95: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

83

Figura B. 5: Tarjeta de disparos, capa BOTTOM

Page 96: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

84

Figura B. 6: Tarjeta de disparos, capa tVALUES

Page 97: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

85

Figura B. 7: Tarjeta de sensores, capa TOP

Page 98: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

86

Figura B. 8: Tarjeta de sensores, capa BOTTOM

Page 99: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

87

Figura B. 9: Tarjeta de sensores, capa tVALUES

Page 100: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

88

ANEXO C: Datasheet sensor de corriente

Page 101: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

89

Page 102: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

90

Page 103: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

91

ANEXO D: Datasheet sensor de voltaje

Page 104: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

92

Page 105: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

93

ANEXO E: Datasheet conversores DC/DC

Page 106: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

94

Page 107: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

95

ANEXO F: Código fuente del microprocesador. Archivo main.cl

#include <plib.h> //debugging con el PC debe decir "DEBUG", para version stand-alone DEBU u otra cosa #define DEBU //evita que la corriente supere límites cercanos a los del sensor. Apaga en aprox. +-100A #define SAFEMODE #include "config.h" #include "disparos.h" #include "extras.h" /* CONSTANTES DE CONFIGURACION */ //multiplico por 8 para evitar sobre conmutacion //ojo que el sensor ve un voltaje más bajo que lo que realmente es (aprox 1.2 vol), cuidar el Vmax!! #define V_MAX 6500 // 7473 modulo en aprox. 47V ((46/2850)*250-1.2)*(1024/3.3)*8 #define V_MIN 150 // 287 modulo en aprox. 15V ((15/2850)*250-1.2)*(1024/3.3)*8 #define LIMITADOR_CORRIENTE 6 //divisor del potenciometro de entrada (acelerador) #define CONSTANTE_FRENO 40 #define DIVISOR_FRENO 2 //divisor de la referencia de corriente #define POTENCIA_FRENADO 1 //multiplicador de la referencia en frenado #define BandaP 10 //amperes de la banda principal (cada digito equivale a 0.2A aprox) #define BandaD 5 //delta de las demás bandas. Error máximo es BandaP+3*BandaD #define DIFF_MAX_CORRIENTE 400 //(80A)diferencia de corriente maxima medida entre el sensor que surte y el que drena corriente #define I0_CERO 491 //cero promedio, para calcular diferencia en sensores //definición del conversor para cada puente (según cables de la tarjeta) #define ADC_V1 4 #define ADC_V2 9 #define ADC_V3 5 #define ADC_V4 8 #define ADC_V5 6 #define ADC_V6 7

Page 108: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

96

#define SLMIN 475 //Promedio minimo requerido en muestreo de sensores #define SLMAX 505 //Promedio máximo requerido en muestreo de sensores #define DELTA_MUERTO 7 //zona muerta del acelerador (solo en reversa) //numeros dados al leer los bits del puerto G / conector mainC #define NEUTRAL 832 #define FWD_NORMAL 704 #define FWD_REGEN 448 //(max sentido reloj, excepto 960 el tope) #define BWD 896 //(max sentido contra reloj) char regenerando=0; //determina cuando estamos regenerando 1 o no 0 //funciones void seleccionBanda(); void disparar(char banda, unsigned int enable); void configurar_puentes(char vector); void ordenar_puentes(); //variables globales char banda=0; int tiempo=1; int error=0; int muestra=0; //puntero para variable de muestreo #define MUESTRAS 2 //muestras que toma el buffer unsigned int v1m[MUESTRAS],v2m[MUESTRAS],v3m[MUESTRAS],v4m[MUESTRAS],v5m[MUESTRAS],v6m[MUESTRAS]; int acelerador=0; int corrienteA=0; int corrienteB=0; int corrienteC=0; int mSensorA=0; int mSensorB=0; int mSensorC=0; int muestras=0; unsigned int cmain=0; //conector para selector de marcha

Page 109: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

97

char vector=0; char vector_anterior=0; unsigned int ha,hb,hc,cmain,rd15,haP,hbP,hcP; unsigned int error_software=0; //variable debuging int Hall=0; //sensor de efecto hall int Hallp=0; #define ON 1 #define OFF 0 //codigos de error #define ERROR_CORRIENTE1 -1 #define ERROR_CORRIENTE2 -2 #define ERROR_CORRIENTE3 -3 #define ERROR_VOLTAJE -4 #define ERROR_VOLTAJE2 -5 #define ERROR_HALL -6 unsigned int enable=0; //variable de disparo de puertas enable unsigned int disparo=0; //variable de disparo de puentes H char system_status=ON; int espera=6000000; char giro=NEG; //COMIENZO DEL PROGRAMA int main(void) { int contador=50; int i=0;

Page 110: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

98

SYSTEMConfigPerformance(FOSC); //indispensable para usar R0-R1-R4-R5 !!! #ifndef DEBUG mJTAGPortEnable(DEBUG_JTAGPORT_OFF); #endif mOSCSetPBDIV(OSC_PB_DIV_2); //main conector PORTSetPinsDigitalIn(IOPORT_G, BIT_6 | BIT_7 | BIT_8 | BIT_9); //sensor Hall y switches PORTSetPinsDigitalIn(IOPORT_D, BIT_6|BIT_7|BIT_13 |BIT_4 |BIT_5 |BIT_14 |BIT_15); mCNOpen(CONFIG, PINS, PULLUPS); ConfigIntCN(INTERRUPT); //leds de placa (verde, amarillo, rojo) PORTSetPinsDigitalOut(IOPORT_D,LED_VERDE); mPORTDClearBits(LED_VERDE); PORTSetPinsDigitalOut(IOPORT_D,LED_AMARILLO); mPORTDClearBits(LED_AMARILLO); PORTSetPinsDigitalOut(IOPORT_D,LED_ROJO); mPORTDClearBits(LED_ROJO); //disparos principales PORTSetPinsDigitalOut(IOPORT_A,0xFFFF); //disparos apagado PORTSetPinsDigitalOut(IOPORT_E,0x3F); mPORTAClearBits(0xFFFF); mPORTESetBits(0x3F); //Apago todos los puentes mPORTBClearBits(TODOS); //limpio las salidas mPORTBSetPinsAnalogIn(TODOS); // activo todos los puertos como Análogos CloseADC10(); // Apagar ADC para poderlo configurar

Page 111: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

99

OpenADC10(CONFIG_ADC_1,CONFIG_ADC_2,CONFIG_ADC_3,CONFIG_ADC_4,CONFIG_ADC_5); // Activar Modulo ADC //ADC automatico ConfigIntADC10(ADC_INT_ON | ADC_INT_PRI_3 | ADC_INT_SUB_PRI_1); // Configurar Interrupcion ADC // activo vector de interrupciones INTEnableSystemMultiVectoredInt(); EnableADC10(); // Activar Conversion ADC /* ###################################################################################### ################## SOFTWARE CONTROLADOR ####################################### ###################################################################################### ###################################################################################### */ /* Se debe llenar la variable de los disparos con las constantes que manejan las señales opticas del inversor definidas en disparos.h */ PUENTES[Ah].disparo[POS]=AH_p; PUENTES[Al].disparo[POS]=AL_p; PUENTES[Bh].disparo[POS]=BH_p; PUENTES[Bl].disparo[POS]=BL_p; PUENTES[Ch].disparo[POS]=CH_p; PUENTES[Cl].disparo[POS]=CL_p; PUENTES[Ah].disparo[NEG]=AH_n; PUENTES[Al].disparo[NEG]=AL_n; PUENTES[Bh].disparo[NEG]=BH_n; PUENTES[Bl].disparo[NEG]=BL_n; PUENTES[Ch].disparo[NEG]=CH_n; PUENTES[Cl].disparo[NEG]=CL_n; while(espera>0) espera--; //tiempo de espera para muestrear todas las variables

Page 112: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

100

while(BusyADC10()); //lleno variable de voltajes for (i=0;i<6;i++){ PUENTES[i].id=i; } espera=100000; muestras=espera; while(espera>0){ espera--; mSensorA+=corrienteA; mSensorB+=corrienteB; mSensorC+=corrienteC; } mSensorA=mSensorA/muestras; mSensorB=mSensorB/muestras; mSensorC=mSensorC/muestras; //lleno variable de voltajes PUENTES[Ah].voltaje=v1m[0]; PUENTES[Al].voltaje=v2m[0]; PUENTES[Bh].voltaje=v3m[0]; PUENTES[Bl].voltaje=v4m[0]; PUENTES[Ch].voltaje=v5m[0]; PUENTES[Cl].voltaje=v6m[0]; // COMPROBACION DE SENSORES NO CONECTADOS O DEFECTUOSOS if((corrienteA <=SLMIN || corrienteA >=SLMAX) || (corrienteB <=SLMIN || corrienteB >=SLMAX) || (corrienteC <=SLMIN || corrienteC >=SLMAX)) system_status=ERROR_CORRIENTE1; //seguro contra sensores de corriente no conectados o defectuosos

Page 113: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

101

if((mSensorA <=SLMIN || mSensorA >=SLMAX) || (mSensorB <=SLMIN || mSensorB >=SLMAX) || (mSensorC <=SLMIN || mSensorC >=SLMAX)) system_status=ERROR_CORRIENTE2; //seguro contra sensores de corriente defectuosos //COMPROBACION DE SENSORES DE VOLTAJE DEFECTUOSOS O MODULOS SIN VOLTAJE NECESARIO for (i=0;i<6;i++){ if(PUENTES[i].voltaje < V_MIN || PUENTES[i].voltaje > V_MAX) system_status=ERROR_VOLTAJE; } //COMPROBACION SENSORES DE EFECTO HALL CONECTADOS ha=mPORTDReadBits(BIT_6); hb=mPORTDReadBits(BIT_7); hc=mPORTDReadBits(BIT_13); Hall=ha+hb+hc; if(Hall==8384 || Hall==0) system_status=ERROR_HALL; //ENTREGA ERROR AL CONTROLADOR while(system_status > 0){ if(contador<0){ mPORTDToggleBits(LED_VERDE); //indicador de funcionamiento contador=8000; //luz en aprox. 3Hz }else{ contador--; } // LECTURA DE SENSOR EFECTO HALL | se lee justo antes de operar para no tener problemas con interrupciones ha=mPORTDReadBits(BIT_6); hb=mPORTDReadBits(BIT_7); hc=mPORTDReadBits(BIT_13); Hall=ha+hb+hc;

Page 114: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

102

if(Hall==8384 || Hall==0){ //error al leer sensor, probamos otra vez. error_software=error_software | 1; ha=mPORTDReadBits(BIT_6); hb=mPORTDReadBits(BIT_7); hc=mPORTDReadBits(BIT_13); } Hall=ha+hb+hc; //LECTURA DEL COMANDO PRINCIPAL DE MARCHAS cmain=mPORTGReadBits(BIT_6 | BIT_7 | BIT_8 | BIT_9); //RESETEAMOS VARIABLES DE VOLTAJE PUENTES[Ah].voltaje=0; PUENTES[Al].voltaje=0; PUENTES[Bh].voltaje=0; PUENTES[Bl].voltaje=0; PUENTES[Ch].voltaje=0; PUENTES[Cl].voltaje=0; //SE GENERAN MUESTRAS for(i=0;i<MUESTRAS;i++){ PUENTES[Ah].voltaje += v1m[i]; PUENTES[Al].voltaje += v2m[i]; PUENTES[Bh].voltaje += v3m[i]; PUENTES[Bl].voltaje += v4m[i]; PUENTES[Ch].voltaje += v5m[i]; PUENTES[Cl].voltaje += v6m[i]; } //SE CALCULA EL PROMEDIO DE LAS MUESTRAS PUENTES[Ah].voltaje=(PUENTES[Ah].voltaje/MUESTRAS); PUENTES[Al].voltaje=(PUENTES[Al].voltaje/MUESTRAS); PUENTES[Bh].voltaje=(PUENTES[Bh].voltaje/MUESTRAS); PUENTES[Bl].voltaje=(PUENTES[Bl].voltaje/MUESTRAS); PUENTES[Ch].voltaje=(PUENTES[Ch].voltaje/MUESTRAS); PUENTES[Cl].voltaje=(PUENTES[Cl].voltaje/MUESTRAS); regenerando=0; //resetea la regeneracion #ifdef SAFEMODE //EVITA CORRIENTES MUY GRANDES POR EL SISTEMA (LIMITE DE LOS IGBT) if(corrienteA >= 1000 || corrienteB >= 1000 || corrienteC >= 1000)

Page 115: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

103

system_status=ERROR_CORRIENTE1; if(corrienteA <= 25 || corrienteB <= 25 || corrienteC <= 25) system_status=ERROR_CORRIENTE1; #endif //SWITCH PRINCIPAL COMANDADO POR CONTROL DE MARCHA switch(cmain){ case FWD_REGEN: case FWD_NORMAL: //MARCHA HACIA ADELANTE if(acelerador>=CONSTANTE_FRENO){ //ACELERANDO if(Hall==8192) {vector=5; //SE CALCULA ERROR RESTANDOLE CONSTANTE DE FRENO A LA REFERENCIA //Y RESTANDOLE LA POSICIÓN DE CORRIENTE CERO AL SENSOR (OJO CON LOS PARENTESIS) error = (acelerador - CONSTANTE_FRENO)-(corrienteC-mSensorC); if(abs(corrienteC+corrienteA-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3;} //001 else if(Hall==8320) {vector=6; error = (acelerador - CONSTANTE_FRENO)-(corrienteC-mSensorC); if(abs(corrienteC+corrienteB-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3;} //011 else if(Hall==128) {vector=1; error = (acelerador - CONSTANTE_FRENO)-(corrienteA-mSensorA); if(abs(corrienteA+corrienteB-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3;} //010 else if(Hall==192) {vector=2; error = (acelerador - CONSTANTE_FRENO)-(corrienteA-mSensorA); if(abs(corrienteA+corrienteC-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3;} //110 else if(Hall==64) {vector=3; error = (acelerador - CONSTANTE_FRENO)-(corrienteB-mSensorB); if(abs(corrienteB+corrienteC-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3;} //100 else if(Hall==8256) {vector=4; error = (acelerador - CONSTANTE_FRENO)-(corrienteB-mSensorB);

Page 116: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

104

if(abs(corrienteB+corrienteA-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3;} //101 else {banda=0; vector=0; error_software=error_software | 8;} //fallo en sensor }else{ //FRENO REGENERATIVO regenerando=1; if(Hall==8192 && giro==POS) {vector=5; //SE MULTIPLICA REFERENCIA NEGATIVA POR "POTENCIA_FRENADO", PARA EVITAR PONER VALOR =1 error = (acelerador - CONSTANTE_FRENO)*POTENCIA_FRENADO-(corrienteC-mSensorC); if(abs(corrienteC+corrienteA-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3;} //001 else if(Hall==8320 && giro==POS) {vector=6; error = (acelerador - CONSTANTE_FRENO)*POTENCIA_FRENADO-(corrienteC-mSensorC); if(abs(corrienteC+corrienteB-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3;} //011 else if(Hall==128 && giro==POS) {vector=1; error = (acelerador - CONSTANTE_FRENO)*POTENCIA_FRENADO-(corrienteA-mSensorA); if(abs(corrienteA+corrienteB-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3;} //010 else if(Hall==192 && giro==POS) {vector=2; error = (acelerador - CONSTANTE_FRENO)*POTENCIA_FRENADO-(corrienteA-mSensorA); if(abs(corrienteA+corrienteC-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3;} //110 else if(Hall==64 && giro==POS) {vector=3; error = (acelerador - CONSTANTE_FRENO)*POTENCIA_FRENADO-(corrienteB-mSensorB); if(abs(corrienteB+corrienteC-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3;} //100 else if(Hall==8256 && giro==POS) {vector=4; error = (acelerador - CONSTANTE_FRENO)*POTENCIA_FRENADO-(corrienteB-mSensorB); if(abs(corrienteB+corrienteA-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3;} //101 else {banda=0; vector=0; error_software=error_software | 8;} //fallo en sensor } break; case BWD: //MARCHA EN REVERSA

Page 117: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

105

if(acelerador>DELTA_MUERTO){ if(Hall==8192) {vector=2; //a-c //SE DIVIDE LA REFERENCIA PARA LIMITAR LA REVERSA DEL VEHICULO error = acelerador/DIVISOR_FRENO - (corrienteA-mSensorA); if(abs(corrienteA+corrienteC-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3; } //001 else if(Hall==8320) {vector=3;//b-c error = acelerador/DIVISOR_FRENO - (corrienteB-mSensorB); if(abs(corrienteB+corrienteC-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3; } //011 else if(Hall==128) {vector=4;//b-a error = acelerador/DIVISOR_FRENO - (corrienteB-mSensorB); if(abs(corrienteB+corrienteA-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3; } //010 else if(Hall==192) {vector=5;//c-a error = acelerador/DIVISOR_FRENO - (corrienteC-mSensorC); if(abs(corrienteC+corrienteA-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3; } //110 else if(Hall==64) {vector=6;//c-b error = acelerador/DIVISOR_FRENO - (corrienteC-mSensorC); if(abs(corrienteC+corrienteB-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3; } //100 else if(Hall==8256) {vector=1;//a-b error = acelerador/DIVISOR_FRENO - (corrienteA-mSensorA); if(abs(corrienteA+corrienteB-2*I0_CERO)>DIFF_MAX_CORRIENTE) system_status=ERROR_CORRIENTE3; } //101 else {banda=0; vector=0; error_software=error_software | 2;} //fallo en sensor }else{ banda=0; vector=0;} break; case NEUTRAL: //SE RESETEAN LAS VARIABLES QUE CONTROLAN LOS DISPAROS banda=0; vector=0; default: //SE RESETEAN LAS VARIABLES QUE CONTROLAN LOS DISPAROS banda=0; vector=0; break; }

Page 118: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

106

if(system_status==ON) seleccionBanda(); //selecciona la banda segun variable error configurar_puentes(vector); //segun variable vector selecciona y configura los puentes a disparar. ordenar_puentes(); //ya seleccionados los 4 puentes q intervienen, se deben ordenar por voltaje para ser disparados. disparar(banda, enable); //se dispara las señales elegidas Hallp=Hall; for (i=0;i<6;i++){ //SE CHEQUEA EL RANGO DE LOS VOLTAJES if(PUENTES[i].voltaje < V_MIN || PUENTES[i].voltaje > V_MAX) system_status=ERROR_VOLTAJE2; } }//end while // FIN DEL PROGRAMA //codigos de error disparar(V0, V0); //termino, apago todo los disparos mPORTDClearBits(LED_VERDE | LED_AMARILLO|LED_ROJO); //SE DISPARAN LOS CODIGOS DE ERROR A LOS LEDS switch(system_status){ case ERROR_CORRIENTE1: mPORTDSetBits(LED_VERDE | LED_ROJO); break; case ERROR_CORRIENTE2: mPORTDSetBits(LED_AMARILLO|LED_ROJO); break; case ERROR_CORRIENTE3: mPORTDSetBits(LED_AMARILLO); break; case ERROR_VOLTAJE: mPORTDSetBits(LED_AMARILLO|LED_VERDE); break;

Page 119: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

107

case ERROR_VOLTAJE2: mPORTDSetBits(LED_ROJO); break; case ERROR_HALL: mPORTDSetBits(LED_AMARILLO|LED_ROJO | LED_VERDE); break; default: mPORTDSetBits(LED_VERDE); break; } } void configurar_puentes(char vector){ /* Definidos un conjuntos de 6 vectores, los cuales manejan en su totalidad la máquina BLDC, debe seleccionarse que vector utilizar, para conocer asi los puentes en juego y poder calcular el error de la corriente a controlar. */ char i=0; enable=0; //reseteamos disparos enable switch(vector){ case 1: //vector 1: a->b //los puentes de la fase A van en direccion positiva al aumentar la corriente PUENTES_SEL[0]=PUENTES[Ah]; PUENTES_SEL[0].signo=POS; PUENTES_SEL[1]=PUENTES[Al]; PUENTES_SEL[1].signo=POS; //los puentes de la fase B van en direccion negativa al aumentar la corriente PUENTES_SEL[2]=PUENTES[Bh]; PUENTES_SEL[2].signo=NEG; PUENTES_SEL[3]=PUENTES[Bl]; PUENTES_SEL[3].signo=NEG; //se carga el vector de bits ENABLE de los 4 puentes que se usan para el vector V1 enable=V1_EN; if(vector_anterior!=vector){ //SE CHEQUEA EL SENTIDO DE GIRO PARA EL FRENADO REGENERATIVO

Page 120: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

108

if(Hallp==192) giro=POS; //ant 64 else giro=NEG; vector_anterior=vector; } break; case 2: //vector 2: a->c PUENTES_SEL[0]=PUENTES[Ah]; PUENTES_SEL[0].signo=POS; PUENTES_SEL[1]=PUENTES[Al]; PUENTES_SEL[1].signo=POS; PUENTES_SEL[2]=PUENTES[Ch]; PUENTES_SEL[2].signo=NEG; PUENTES_SEL[3]=PUENTES[Cl]; PUENTES_SEL[3].signo=NEG; enable=V2_EN; if(vector_anterior!=vector){ vector_anterior=vector; //para frenado regenerativo if(Hallp==64) giro=POS; //ant 8256 else giro=NEG; } break; case 3: //vector 3: b->c PUENTES_SEL[0]=PUENTES[Bh]; PUENTES_SEL[0].signo=POS; PUENTES_SEL[1]=PUENTES[Bl]; PUENTES_SEL[1].signo=POS; PUENTES_SEL[2]=PUENTES[Ch]; PUENTES_SEL[2].signo=NEG; PUENTES_SEL[3]=PUENTES[Cl]; PUENTES_SEL[3].signo=NEG; enable=V3_EN; if(vector_anterior!=vector){ vector_anterior=vector; //para frenado regenerativo if(Hallp==8256) giro=POS; //ant 8192 else giro=NEG; } break; case 4: //vector 1: b->a PUENTES_SEL[0]=PUENTES[Bh];

Page 121: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

109

PUENTES_SEL[0].signo=POS; PUENTES_SEL[1]=PUENTES[Bl]; PUENTES_SEL[1].signo=POS; PUENTES_SEL[2]=PUENTES[Ah]; PUENTES_SEL[2].signo=NEG; PUENTES_SEL[3]=PUENTES[Al]; PUENTES_SEL[3].signo=NEG; enable=V4_EN; if(vector_anterior!=vector){ vector_anterior=vector; //para frenado regenerativo if(Hallp==8192) giro=POS; //ant 8320 else giro=NEG; } break; case 5: //vector 1: c->a PUENTES_SEL[0]=PUENTES[Ch]; PUENTES_SEL[0].signo=POS; PUENTES_SEL[1]=PUENTES[Cl]; PUENTES_SEL[1].signo=POS; PUENTES_SEL[2]=PUENTES[Ah]; PUENTES_SEL[2].signo=NEG; PUENTES_SEL[3]=PUENTES[Al]; PUENTES_SEL[3].signo=NEG; enable=V5_EN; if(vector_anterior!=vector){ vector_anterior=vector; //para frenado regenerativo if(Hallp==8320) giro=POS; //ant 128 else giro=NEG; } break; case 6: //vector 1: c->b PUENTES_SEL[0]=PUENTES[Ch]; PUENTES_SEL[0].signo=POS; PUENTES_SEL[1]=PUENTES[Cl]; PUENTES_SEL[1].signo=POS; PUENTES_SEL[2]=PUENTES[Bh]; PUENTES_SEL[2].signo=NEG; PUENTES_SEL[3]=PUENTES[Bl]; PUENTES_SEL[3].signo=NEG; enable=V6_EN; if(vector_anterior!=vector){ vector_anterior=vector; //para frenado regenerativo

Page 122: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

110

if(Hallp==128) giro=POS; //ant 192 else giro=NEG; } break; default: //DE NO EXISTIR VECTOR SELECCIONADO, O SER CERO, SE ANULAN LAS SEÑALES DE DISPARO enable=0; banda=0; disparo=0; error_software | 16; giro=NEG; break; } } void ordenar_puentes(){ int i; char loop=1; puente temp; //ORDENAR PUENTES POR SU VOLTAJE DE MAYOR [0] A MENOR [3] while(loop>0){ loop=0; //burbuja promedio 300 ciclos, variable con while [min 103, max 784] for (i=0; i< 3; i++) if (PUENTES_SEL[i].voltaje < PUENTES_SEL[i+1].voltaje){ //mayor a menor temp = PUENTES_SEL[i]; PUENTES_SEL[i] = PUENTES_SEL[i+1]; PUENTES_SEL[i+1] = temp; loop=1; } } }

Page 123: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

111

void __ISR(_ADC_VECTOR, ipl6) AdcHandler(void) { mAD1ClearIntFlag(); // Borrar flag interrupcion if(muestra>=MUESTRAS){ muestra=0; } //corrientes y acelerador se actualizan todo el tiempo corrienteA = ReadADC10(0); corrienteB = ReadADC10(1); corrienteC = ReadADC10(2); acelerador = ReadADC10(3)/LIMITADOR_CORRIENTE; //divido por limitador por la relacion con el sensor de corriente //voltajes los guarda en una variable BUFFER v1m[muestra] = ReadADC10(ADC_V1)<<3; //V1 lo lee en V1 | probado v2m[muestra] = ReadADC10(ADC_V2)<<3; //V2 lo lee en V2 | probado v3m[muestra] = ReadADC10(ADC_V3)<<3; //V3 lo lee en V6 | probado v4m[muestra] = ReadADC10(ADC_V4)<<3; //V4 lo lee en V5 | probado v5m[muestra] = ReadADC10(ADC_V5)<<3; //V5 lo lee en V3 | probado v6m[muestra] = ReadADC10(ADC_V6)<<3; //V6 lo lee en V4 | probado muestra++; } char sign(char a){ //FUNCION SIGNO if( a>=0) return 1; else return 0; } void seleccionBanda(){

Page 124: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

112

char bandaT=0; //banda temporal int temp=0; //SE SELECCIONA LA BANDA SEGUN MAGNITUD Y SIGNO DEL ERROR if (error>=BandaP+3*BandaD){ bandaT=4;//subir corriente -4 } else if (error<BandaP+3*BandaD && error>=BandaP+2*BandaD){ bandaT=3;//subir corriente -3 } else if (error<BandaP+2*BandaD && error>=BandaP+BandaD){ bandaT=2; //subir corriente -2 } else if (error<BandaP+BandaD && error>=BandaP){ bandaT=1; //subir corriente -1 } else if (error>-(BandaP+BandaD) && error<=-BandaP){ bandaT=-1; //bajar corriente +1 } else if (error>-(BandaP+2*BandaD) && error<=-(BandaP+BandaD)){ bandaT=-2;//bajar corriente +2 } else if (error>-(BandaP+3*BandaD) && error<=-(BandaP+2*BandaD)){ bandaT=-3; //bajar corriente +3 } else if (error<=-(BandaP+3*BandaD)){ //subir corriente +4 bandaT=-4; //bajar corriente +4 }else bandaT=banda; //dentro de IREF+-tolerancia //si la banda no cambia de signo no la actualizo if (sign(bandaT)==sign(banda) && abs(bandaT) < abs(banda)) bandaT = banda; //si el modulo de la banda es menor al anterior y no cambia de signo, no actualizo if (abs(bandaT) < abs(banda) && sign(bandaT)==sign(banda)) bandaT=banda; banda=bandaT; } void __ISR(_TIMER_1_VECTOR, ipl3) Timer1Handler(void) // Funcion Interrupcion Timer1 { mT1ClearIntFlag(); // Borrar flag interrupcion tiempo++; //agregamos un conteo a la variable de tiempo

Page 125: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

113

} void disparar(char banda,unsigned int enable){ char i=0; unsigned int aux,auxN; /* Como los puentes ya están ordenados por voltaje, sólo resta dispararlos en orden (según se este cargando o descargando) por lo que se eligen los primeros "banda" puentes para ello. Se asume que los que no se disparan quedarán en cero por la falta de señal. */ disparo=0; //reseteamos los disparos. if (regenerando==0){ //operacion normal if (banda > 0){ //Subiendo la corriente -> Descargo los más cargados, comienzo a usar desde el primero hacia abajo i=0; //comenzamos con el mas cargado (bit_0) while(banda>0){ //disparo los puentes hasta llegar al número requerido disparo = disparo | PUENTES_SEL[i].disparo[PUENTES_SEL[i].signo]; //signo directo pq invertimos la tension banda--; i++; } }else{ //Bajando la corriente -> Cargo los más descargados, comienzo a usar desde el último hacia arriba i=3; //comenzamos con el mas descargado (bit_3) while(banda<0){ //disparo los puentes hasta llegar al número requerido disparo = disparo | PUENTES_SEL[i].disparo[!PUENTES_SEL[i].signo]; //signo NEGADO, pues aumentamos la corriente banda++; i--; } } }else{ //regenerando //al estar regenerando el vector lo hace el auto con su voltaje, por ende debe invertirse el orden de selección de voltajes

Page 126: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

114

if (banda > 0){ //Subiendo la corriente -> Cargo los más descargados i=3; //comenzamos con el mas descargado (bit_3) while(banda>0){ //disparo los puentes hasta llegar al número requerido disparo = disparo | PUENTES_SEL[i].disparo[PUENTES_SEL[i].signo]; //signo directo pq invertimos la tension banda--; i--; } }else{ //hago un chopper para regenerar, si quiereo bajar la corriente (hacerla más negativa), //hago cortocircuito en el motor disparo=0; } } /* Luego de haber calculado los puentes que seran disparados, se prodece a disparar las señales ópticas */ aux=disparo; auxN=aux ^ 0xFFFF; mPORTAClearBits(auxN); mPORTASetBits(aux); aux=enable; auxN=aux ^ 0x3F; mPORTEClearBits(auxN); mPORTESetBits(aux); }

Page 127: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

115

ANEXO G: Código fuente del microprocesador. Archivo config.h

#include <plib.h> #pragma config FPLLMUL = MUL_18, FPLLIDIV = DIV_2, FPLLODIV = DIV_1, FWDTEN = OFF #pragma config POSCMOD = HS, FNOSC = PRIPLL, FPBDIV = DIV_2 // Let compile time pre-processor calculate the PR1 (period) #define FOSC 80E6 #define CONFIG (CN_ON | CN_IDLE_CON) #define PINS (CN15_ENABLE | CN16_ENABLE | CN19_ENABLE) #define PULLUPS (CN15_PULLUP_ENABLE | CN16_PULLUP_ENABLE | CN19_PULLUP_ENABLE | CN13_PULLUP_ENABLE | CN14_PULLUP_ENABLE | CN20_PULLUP_ENABLE | CN21_PULLUP_ENABLE | CN8_PULLUP_ENABLE | CN9_PULLUP_ENABLE | CN10_PULLUP_ENABLE | CN11_PULLUP_ENABLE ) #define INTERRUPT (CHANGE_INT_OFF | CHANGE_INT_PRI_5) //sin interrupcion #define TODOS 0xFFFF // Para conversor automático //########################## Conversor A/D // Prender ADC | Func. en IDLE | Formato Int 16 | Auto conv. | Sample secuencial #define CONFIG_ADC_1 (ADC_MODULE_ON | ADC_IDLE_CONTINUE | ADC_FORMAT_INTG16 | ADC_CLK_AUTO | ADC_AUTO_SAMPLING_ON) // Ref AVDD,AVSS | Sin Offset | Escaneo Sec.| Interrupcion 16th | Un buffer | No alternar mux #define CONFIG_ADC_2 (ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_ON | ADC_SAMPLES_PER_INT_10 | ADC_BUF_16 | ADC_ALT_INPUT_OFF) #define CONFIG_ADC_3 (ADC_SAMPLE_TIME_2 | ADC_CONV_CLK_PB | ADC_CONV_CLK_2Tcy) // Todos Analogo #define CONFIG_ADC_4 (ENABLE_ALL_ANA) #define CONFIG_ADC_5 (0) #define T1_TICK 1000// xx kHz #define CONFIG_T1 (T1_ON | T1_SOURCE_INT | T1_PS_1_1) // prende T1 | oscilador interno | preescalado de T1 en 256 #define CONFIG_INT1 (T1_INT_ON | T1_INT_PRIOR_7 | T1_INT_SUB_PRIOR_3) // prende int de T1 | T1 prioridad 7 | sub prioridad 3 //####################### fin de Timer 1

Page 128: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

116

ANEXO H: Código fuente del microprocesador. Archivo disparos.h

//Definicion de bits segun placa disparos #define AhU BIT_0 #define AhV BIT_1 #define BhU BIT_2 #define BhV BIT_3 #define ChU BIT_4 #define ChV BIT_5 #define AlU BIT_6 #define AlV BIT_7 #define BlU BIT_9 #define BlV BIT_10 #define ClU BIT_14 #define ClV BIT_15 //definicion de bits de enable de puentes #define AH_en BIT_0 #define AL_en BIT_1 #define BH_en BIT_2 #define BL_en BIT_3 #define CH_en BIT_4 #define CL_en BIT_5 #define AH_p AhV #define AH_n AhU #define AH_0 AhU | AhV #define AL_p AlV #define AL_n AlU #define AL_0 AlU | AlV #define BH_p BhV #define BH_n BhU #define BH_0 BhU | BhV #define BL_p BlV #define BL_n BlU #define BL_0 BlU | BlV #define CH_p ChV #define CH_n ChU #define CH_0 ChU | ChV

Page 129: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

117

#define CL_p ClV #define CL_n ClU #define CL_0 ClU | ClV #define V1_N1 AH_p | AL_0 | BH_0 | BL_0 #define V2_N1 AH_p | AL_0 | CH_0 | CL_0 #define V3_N1 BH_p | BL_0 | CH_0 | CL_0 #define V4_N1 AH_0 | AL_0 | BH_p | BL_0 #define V5_N1 AH_0 | AL_0 | CH_p | CL_0 #define V6_N1 BH_0 | BL_0 | CH_p | CL_0 #define V1_N2 AH_p | AL_p | BH_0 | BL_0 #define V2_N2 AH_p | AL_p | CH_0 | CL_0 #define V3_N2 BH_p | BL_p | CH_0 | CL_0 #define V4_N2 AH_0 | AL_0 | BH_p | BL_p #define V5_N2 AH_0 | AL_0 | CH_p | CL_p #define V6_N2 BH_0 | BL_0 | CH_p | CL_p #define V1_N3 AH_p | AL_p | BH_n | BL_0 #define V2_N3 AH_p | AL_p | CH_n | CL_0 #define V3_N3 BH_p | BL_p | CH_n | CL_0 #define V4_N3 AH_n | AL_0 | BH_p | BL_p #define V5_N3 AH_n | AL_0 | CH_p | CL_p #define V6_N3 BH_n | BL_0 | CH_p | CL_p #define V1_N4 AH_p | AL_p | BH_n | BL_n #define V2_N4 AH_p | AL_p | CH_n | CL_n #define V3_N4 BH_p | BL_p | CH_n | CL_n #define V4_N4 AH_n | AL_n | BH_p | BL_p #define V5_N4 AH_n | AL_n | CH_p | CL_p #define V6_N4 BH_n | BL_n | CH_p | CL_p #define V0 0 #define V1_EN AH_en | AL_en | BH_en | BL_en #define V2_EN AH_en | AL_en | CH_en | CL_en #define V3_EN BH_en | BL_en | CH_en | CL_en #define V4_EN AH_en | AL_en | BH_en | BL_en #define V5_EN AH_en | AL_en | CH_en | CL_en #define V6_EN BH_en | BL_en | CH_en | CL_en

Page 130: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

118

ANEXO I: Código fuente del microprocesador. Archivo extras.h

/* Se define estructura "puente", debido a que es necesario llevar mucha información respecto de cada puente en todo el proceso de control, por lo que es la mejor manera de manejar la información sin perder la referencia de la misma. */ typedef struct puente{ unsigned int disparo[2]; //señales de disparo que llega al inversor char id; // id para proposito de debugging pues los puentes se desordenan en el controlador unsigned int voltaje; // valor de voltaje del puente char signo; //permite llevar información de en que sentido se debe disparar el puente }puente; //constantes para los puentes #define Ah 0 #define Al 1 #define Bh 2 #define Bl 3 #define Ch 4 #define Cl 5 #define POS 0 #define NEG 1 puente PUENTES[6]; //se define variable que almacena la informacino de los 6 puentes puente PUENTES_SEL[4]; //variable que almacena la informacion 4 puentes que han de dispararse en cada conmutacion #define LED_VERDE BIT_2 #define LED_AMARILLO BIT_1 #define LED_ROJO BIT_0

Page 131: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

119

ANEXO J: Frecuencia en control de banda de histéresis (h)

Iref

h

∆t1 ∆t2

r1

r2dt

dIL

)(dt

dI L

)(

Por continuidad se puede aproximar .

Luego calculando las pendientes positiva y negativa de la corriente controlada (verde):

Despejando para encontrar la frecuencia de conmutación:

Page 132: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

120

Para nuestro caso particular, podemos calcular la frecuencia máxima de conmutación,

considerando una sola fase:

Va

L

Vd/2

IL

Va

L

Vd/2

IL

Despejando las derivadas y reemplazando en las ecuaciones anteriores, tenemos:

En operación estacionaria, la referencia de corriente es plana para el motor BLDC, por

lo tanto , y las ecuaciones quedan:

Page 133: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

121

Sumando ambas ecuaciones, se tiene:

Calculando la frecuencia de conmutación, tenemos:

Luego interesa calcular la frecuencia máxima, para esto buscamos la solución de

.

Reemplazando en la ecuación original se tiene la frecuencia máxima de conmutación del

sistema:

De esta manera se desprende que la frecuencia máxima de operación, puede ser

determinada en 4 partes, ya que el voltaje Vd depende del número de puentes en serie a

utilizar. Sin embargo como el ancho de la banda (h) va aumentando en la misma medida

del aumento del valor de Vd, los efectos se compensan en la ecuación y la frecuencia

máxima calculada resulta ser prácticamente la misma para todos los casos (exactamente

si las bandas adicionales son de la misma magnitud que la principal).

Con los parámetros de voltaje, inductancia del sistema, y considerando una banda de

±1.5A, el valor de la frecuencia máxima resulta ser:

Page 134: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

122

Sin embargo, hay que recordar que la variación en la referencia de corriente incide en

este valor, por ende debe existir un sistema que limite la frecuencia máxima de

operación a un valor seguro para los IGBTs (20kHz).

Page 135: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

123

ANEXO K: Códigos de error del controlador

Page 136: CONTROL DE TORQUE PARA MOTOR BLDC DE VEHICULO …

124

ANEXO L: Construcción del inversor

Cada uno de los 6 puentes fue apernado a un mismo disipador de aluminio con gran

capacidad de disipación, incorporando de hecho 2 ventiladores de 6W cada uno en su

montaje. Por cada puente además se dispone en paralelo un circuito snubber, cuya

función es suprimir los transitorios de voltajes y un condensador electrolítico, que se

encarga de compensar la inductancia de los cables de potencia que llegan desde los

ultracapacitores. Construido con cables de cobre y placas del mismo material, se

construyó pensado en una corriente nominal de 100A por fase, lo que implica una

potencia nominal cercana a los 30kW. Las señales de control son enviadas por medios

de fibras ópticas, por lo que cada puente dispone de una tarjeta de control que convierte

las señales ópticas en comandos eléctricos para la operación de cada semiconductor.