You are on page 1of 170

PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE

ESCUELA DE INGENIERIA


CONTROL PTIMO DE LA ENERGA
EN UN VEHCULO HBRIDO
ELCTRICO EMPLEANDO REDES
NEURONALES
JORGE ALEJANDRO MORENO DE LA CARRERA
Tesis para optar al grado de Magster en Ciencias de la
Ingeniera
Profesor Supervisor: JUAN W. DIXON ROJAS
Santiago de Chile, Junio de 2004

PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE
ESCUELA DE INGENIERIA
Departamento de Ingeniera Elctrica

CONTROL PTIMO DE LA ENERGA
EN UN VEHCULO HBRIDO
ELCTRICO EMPLEANDO REDES
NEURONALES
JORGE ALEJANDRO MORENO DE LA CARRERA
Tesis presentada a la Comisin integrada por los profesores:

JUAN W. DIXON ROJAS
ALDO CIPRIANO ZAMORANO
JOS RODRGUEZ PREZ
JOS DEL VALLE LLADSER
Para completar las exigencias del grado de Magster en Ciencias de la
Ingeniera
Santiago de Chile, Junio de 2004
ii














A mis Padres, por su apoyo, cario
y educacin.


iii
AGRADECIMIENTOS
Quiero agradecer a mi profesor gua, Juan Dixon Rojas, por su enorme
gratitud y constante apoyo.
En segundo lugar, agradezco al proyecto Fondecyt N 1020982 por el
financiamiento otorgado para desarrollar la tesis.
Finalmente, quiero agradecer a Macarena de Toro, por su cario; mi
hermana Poly; mis Partners, Matas Negrete, Vicente Iragen, Andrs Pimentel,
Manuel Larran, Jos Luis Manieu y Ricardo vila por los momentos vividos durante la
poca universitaria; y a mis amigos de la infancia Cristin Bustamante, Rodrigo Herrera
y Francisco Benavides.














iv
INDICE GENERAL
Pg.
DEDICATORIA............................ii
AGRADECIMIENTOS .................................................................................................. iii
INDICE GENERAL ....................................................................................................... iv
INDICE DE TABLAS .................................................................................................. viii
INDICE DE FIGURAS................................................................................................... ix
RESUMEN..................................................................................................................... xii
ABSTRACT ..xiii
I. INTRODUCCIN.................................................................................................. 1
1.1 Introduccin ................................................................................................... 1
1.1.1 Historia de los Vehculos Elctricos................................................ 1
1.1.2 Topologas ....................................................................................... 4
1.1.3 Vehculos Elctricos en la Universidad Catlica............................. 9
1.2 Alcances de la Tesis..................................................................................... 11
1.3 Organizacin de la Tesis .............................................................................. 12
II. COMPONENTES DEL SISTEMA DE TRACCIN DE LA
CAMIONETA CHEVROLET LUV.................................................................... 14
2.1 Descripcin del Motor.................................................................................. 14
2.2 Descripcin de la Fuente Primaria de Energa............................................. 15
2.3 Descripcin del Inversor .............................................................................. 17
2.4 Descripcin de la Fuente Auxiliar de Energa ............................................. 18
2.5 Descripcin del Convertidor DC-DC........................................................... 21
2.6 Estrategia Actual de Control de Carga......................................................... 22
v
2.7 Conclusin.................................................................................................... 25
III. MODELACIN DEL CONVERTIDOR BUCK BOOST................................ 26
3.1 Introduccin ................................................................................................. 26
3.2 Anlisis de la Topologa Buck........................................................................ 27
3.2 Anlisis de la Topologa Boost....................................................................... 31
IV. CONTROL PTIMO........................................................................................... 36
4.1 Objetivos del Control ptimo...................................................................... 36
4.2 Condiciones de Optimalidad........................................................................ 37
4.2.1 Sistemas de una Etapa.37
4.2.2 Sistemas Multietapa............................................................................39
4.3 Optimizacin Numrica - Mtodo del Gradiente..... 42
V. CONTROL PTIMO DE FLUJOS DE ENERGA EN
VEHCULOS HBRIDOS (HEV)........................................................................ 45
5.1 Reduccin del Consumo de Energa en Vehculos. ..................................... 45
5.2 Planteamiento del Modelo............................................................................ 47
5.3 Desarrollo de las Condiciones de Optimalidad............................................ 49
5.4 Solucin Numrica - Resultados.................................................................. 52
VI. ENTRENAMIENTO DE REDES NEURONALES PARA
APROXIMAR EL CONTROL PTIMO............................................................ 55
6.1 Introduccin a la Identificacin de Sistemas ............................................... 55
6.1 Introduccin a Redes Neuronales Multicapa ............................................... 58
6.1.1 Concepto de Neurona..58
6.1.2 Redes Neuronales Multicapa......60
6.1.3 Eleccin de la arquitectura de la Red..61
6.2 Entrenamiento de Redes Neuronales ........................................................... 62
6.3 Resultados de la Aproximacin de la Funcin de Control ptimo.......64
vi
VII. IMPLEMENTACIN PRCTICA ..................................................................... 67
7.1 Introduccin ................................................................................................. 67
7.2 Caractersticas y seleccin del Microcontrolador ........................................ 68
7.2.1 Seleccin del Microprocesador ........................................................... 68
7.2.2 Caractersticas del DSP TMS320F241...........................................69
7.3 Software del Controlador ............................................................................. 72
7.3.1 Mdulo de Inicializacin del Sistema.74
7.3.2 Mdulo de Interrupcin de Timer...75
VIII. RESULTADOS EXPERIMENTALES................................................................ 80
8.1 Pruebas Control de Corriente....................................................................... 80
8.2 Pruebas de Red Neuronal ............................................................................. 82
8.3 Resultados de Eficiencia .............................................................................. 83
IX. CONCLUSIONES Y TRABAJO FUTURO........................................................ 87
9.1 Conclusiones ................................................................................................ 87
9.2 Trabajo Futuro.............................................................................................. 87
BIBLIOGRAFIA ........................................................................................................... 89
Anexo n 1: Anlisis de eficiencia del convertidor buck ............................................... 93
Anexo n 2: Anlisis de eficiencia del convertidor boost .............................................. 97
Anexo n 3:Programa de simulacin mtodo del gradiente......................................... 102
Anexo n 4: Detalle de resultados de simulaciones ..................................................... 112
Anexo n 5: Teorema de aproximacin universal de funciones................................... 113
Anexo n 6: Detalle de la red neuronal entrenada........................................................ 114
Anexo n 7: Tabla de Validacin red neuronal ............................................................ 116
vii
Anexo n 8: formato numrico digital q
m,n
(q
n
)............................................................ 117
Anexo n 9: Programa Implementado en el dsp........................................................... 120
Anexo n 10: Detalle de Datos Pruebas en Ciudad...................................................... 154

viii
INDICE DE TABLAS

Pg.

Tabla 2.1: Comparacin de Ultracapacitores con otras fuentes de
almacenamiento de Energa ......................................................................... 20
Tabla 2.2: Resultados de pruebas en circuito de ciudad. ............................................... 24
Tabla 7.1: Caractersticas del microprocesador TMS320F241...................................... 69
Tabla 8.1: Resultado de pruebas en circuito de ciudad. ................................................. 85
Tabla 8.2: Resultado de pruebas en circuito de ciudad - Comparacin
de las estrategias de control.......................................................................... 85
Tabla A4.1: Simulacin de la descarga en las bateras con sistema de
control ptimo y control con control de carga. .......................................... 112
Tabla A6.1: Coeficientes de la Red Neuronal obtenidos con MATLAB .................... 114
Tabla A6.2: Representacin de los coeficientes en formato Q15 en el DSP............... 114
Tabla A6.3: Coeficientes reales de la Red Implementada en el DSP. ......................... 115
Tabla A10.1: Resultado de pruebas en circuito de ciudad utilizando
Sistema de Control con Redes Neuronales. ............................................... 154
Tabla A10.2: Resultado de pruebas en circuito de ciudad utilizando
Sistema de Control de Carga de los Ultracapacitores. ............................... 155
Tabla A10.3: Resultado de pruebas en circuito de ciudad utilizando
Sistema con Regeneracin en Bateras. ..................................................... 155
Tabla A10.4: Resultado de pruebas en circuito de ciudad utilizando
Sistema sin Regeneracin. ......................................................................... 156

ix
INDICE DE FIGURAS
Pag.
Figura 1.1: Vehculo Elctrico......................................................................................... 4
Figura 1.2: Vehculo Hbrido Serie.................................................................................. 6
Figura 1.3: Vehculo Hbrido Paralelo............................................................................. 7
Figura 2.2: Motor Brushless DC en la Camioneta LUV................................................ 15
Figura 2.3: Caracterstica de Carga de las Bateras........................................................ 16
Figura 2.4: Ubicacin de Bateras en el Vehculo.......................................................... 17
Figura 2.5: Ubicacin del Inversor en el Vehculo ........................................................ 18
Figura 2.6: Ubicacin de los Ultracapacitores en la Camioneta LUV........................... 19
Figura 2.7: Comparacin de Ultracapacitores con otras fuentes de
almacenamiento de Energa ......................................................................... 20
Figura 2.8: Ubicacin del Convertidor en el vehculo. .................................................. 21
Figura 2.9: Circuito de Potencia de la Camioneta LUV................................................ 22
Figura 2.10: Diagrama de la Estrategia de Control........................................................ 23
Figura 2.11: Corrientes en el sistema durante parte del ciclo de manejo....................... 24
Figura 3.1: Sistema con Convertidor DC-DC................................................................ 26
Figura 3.2: Convertidor Buck ........................................................................................ 27
Figura 3.3: Estados del Convertidor Buck: (a) Voltaje y Corriente en la
Bobina, (b) IGBT en ON, (c) IGBT en OFF................................................ 28
Figura 3.5: Convertidor Boost ....................................................................................... 31
Figura 3.6: Estados del Convertidor Boost: (a) Voltaje y Corriente en
la Bobina, (b) IGBT encendido, (c) IGBT apagado..................................... 32
x
Figura 3.7: Modulacin de Voltaje en un Convertidor Boost ideal y real. .................... 33
Figura 4.1: Diagrama de Flujo de un Sistema de una Etapa .......................................... 37
Figura 4.2: Diagrama de Flujo de un Sistema Multietapa ............................................. 39
Figura 4.3: Mtodo del Gradiente .................................................................................. 43
Figura 5.1: (a) Potencia requerida por la camioneta LUV vs velocidad;
(b) Mejora porcentual en el consumo de potencia de la
camioneta vs reduccin de parmetros de diseo (a 50
km/hr)........................................................................................................... 47
Figura 5.3: Resultado control ptimo sistema BuckBoost lado de alta tensin........... 54
Figura 6.1: Sistema dinmico con entrada x(t) y salida y(t) .......................................... 55
Figura 6.2: Diagrama de Bloques Identificacin de Sistemas. ................................... 56
Figura 6.3: Identificacin de sistemas - procedimiento ................................................. 57
Figura 6.4: Esquema de una Neurona ............................................................................ 59
Figura 6.6: Esquema de una feedforward network de seis entradas,
dos capas intermedias y dos salidas. ............................................................ 60
Figura 6.7: Esquema de la Red Neuronal Entrenada ..................................................... 65
Figura 6.8: Resultados Simulacin de la Red para un recorrido especfico................... 66
Figura 7.1: Diagrama Funcional del DSP TMS320F241............................................... 70
Figura 7.2: Diagrama Funcional de la CPU................................................................... 71
Figura 7.3: Diagrama de Bloques Modulo 1.................................................................. 75
Figura 7.4: Interpolacin de datos de tabla. ................................................................... 76
Figura 7.5: Comparacin entre el clculo de la funcin tanh mediante
punto flotante e interpolacin de tabla. ........................................................ 77
xi
Figura 7.6: Tiempos de clculo. (a) Red Neuronal Completa, (b)
Neurona Capa Intermedia, (c) Neurona Capa de Salida .............................. 78
Figura 7.7: Diagrama de Bloques Interrupcin de Timer .............................................. 79
Figura 8.1: Pruebas de control de corriente en el convertidor Buck-
Boost Cambio en el escaln de 200 [A].................................................... 81
Figura 8.2: Resultado control de corriente en el convertidor Buck-Boost..................... 82
Figura 8.3: Validacin de la Red Neuronal en el DSP................................................... 83
Figura 8.3: Mapa del Recorrido ..................................................................................... 84
Figura 8.4: Corrientes, voltajes y velocidad durante parte de un recorrido................... 86
Figura A1.1: Convertidor Buck y sus modos de operacin ........................................... 93
Figura A2.1: Convertidor Buck y sus modos de operacin ........................................... 97
Figura A8.1: Correspondencia entre valores decimales y enteros para
representacin digital en formato Q
12
. ....................................................... 118
Figura A8.2: Multiplicacin de nmeros en formato Q
12
. ........................................... 118

xii
RESUMEN
Se ha desarrollado y probado un sistema de manejo de energa para
vehculos hbridos elctricos altamente eficiente. El sistema est basado en una red
neuronal, la cual minimiza el consumo de energa de las bateras. La red ha sido
entrenada con datos provenientes de simulaciones para distintas condiciones. El sistema
puede operar con diferentes fuentes de energa como celdas de combustible,
microturbinas, bateras de Zinc-Aire u otra fuente con escasa capacidad de recuperar
energa del frenado regenerativo, o escasa densidad de potencia, es decir, baja capacidad
para proveer los peak de corrientes en aceleraciones del vehculo. El vehculo
experimental utiliza un banco de bateras de plomo cido, un banco de ultracapacitores y
un motor Brushless DC de 32 kW de potencia nominal y 53 kW de potencia mxima. El
sistema de control, implementado en un DSP, mide y guarda los siguientes parmetros:
voltaje de la fuente primaria, velocidad del vehculo, corrientes en ambos terminales
(fuente primaria y ultracapacitores) y el voltaje de los ultracapacitores. Tras numerosas
pruebas con el sistema de ultracapacitores se ha obtenido un aumento en la autonoma de
un 5.3%, utilizando la estrategia clsica de control de carga de los condensadores.
Ahora, cuando se utiliza el nuevo sistema de manejo de energa desarrollado, este ndice
aumenta a un 8.9%. El automvil utilizado es una camioneta Chevrolet LUV, la que fue
convertida en la Universidad Catlica de Chile.


xiii
ABSTRACT
A highly efficient energy management system for hybrid electric vehicles
(HEV), using neural networks (NN), was developed and tested. The system minimizes
the energy requirement of the vehicle and can work with different primary power
sources like fuel-cells, microturbines, zinc-air batteries or other supply with poor ability
to recover energy from regenerative braking, or with scarce power capacity for fast
acceleration. The experimental HEV uses lead-acid batteries, an ultracapacitor bank, and
a brushless dc motor with a nominal power of 32 kW, and a peak power of 53 kW. The
control system, based on a DSP, measures and stores the following parameters: primary
source voltage, car speed, instantaneous currents in both terminals (primary source and
ultracapacitor), and actual voltage of the ultracapacitor. The increase in range with
ultracapacitors has been around 5.3 % in city tests, compared when only lead acid
batteries are used, but when optimal control with NN is used, this figure increases to 8.9
%. The car used for this experiment is a Chevrolet LUV truck, similar in shape and size
to a Chevrolet S-10, which was converted to an electric vehicle at the Universidad
Catlica de Chile. Numerous experimental results under different conditions are
compared and discussed.




1
I. INTRODUCCIN
1.1 Introduccin
El combustible fsil ha sido la fuente primaria de energa dominante en los
sistemas de transporte existentes. Sin embargo, existe conciencia de que las reservas de
este combustible en la tierra son limitadas. Si a esto agregamos la gran inestabilidad
existente en los ltimos aos en el medio oriente y la creciente preocupacin por el
ecosistema, encontramos que ha comenzado a tomar gran relevancia la posibilidad de
utilizar formas alternativas de energa.
Hoy en da, la bsqueda de automviles ms eficientes ha impulsado el
desarrollo de los vehculos hbridos (HEV) y elctricos (EV). Junto a ello, nuevos
elementos de traccin ms eficientes, como motores de imanes permanentes (Brushless
DC); electrnica de potencia, IGBTs; y fuentes de almacenamiento de energa tales
como celdas de combustible, bateras, bateras de alta densidad de potencia y
ultracapacitores.
1.1.1 Historia de los Vehculos Elctricos
El desarrollo de los vehculos elctricos comenz a mediados del siglo XIX,
cuando en 1831 Joseph Henry construye el primer motor elctrico. El primer prototipo
de auto elctrico no tard en aparecer y en 1835 un profesor holands llamado Sibrandus
Stratingh elabor el primer diseo, el cual fue construido Christopher Becker, su
asistente. Luego, en 1842, Thomas Davenport y Robert Davidson elaboran un modelo
ms prctico y exitoso (ABOUT.COM, 2002).
Ya hacia finales del siglo XIX, Francia y Gran Bretaa haban logrado
grandes desarrollos, y los vehculos elctricos eran una alternativa tanto o ms tangible
que los vehculos a gasolina o vapor.
No fue hasta 1895 que Estados Unidos empez a considerar el desarrollo de
este tipo de vehculos, despus que en 1891 A. L. Ryker construyera un triciclo elctrico
2
y William Morrison desarrollara un vehculo para seis personas. Luego de ello se
desarroll la primera aplicacin comercial a gran escala, cuando en 1897 se estableci
una compaa de taxis elctricos en Nueva York.
A comienzos del siglo XX, Estados Unidos comenz un fuerte desarrollo y
los vehculos elctricos, a gasolina y vapor eran cada vez ms populares. En esta poca,
las ventajas que posean los vehculos elctricos sobre su homlogo a gasolina eran
notorias; entre ellas, la menor vibracin, reducido mal olor y ruido, y la ausencia de
cambio de velocidades. Por otra parte, los vehculos a vapor necesitaban
aproximadamente 45 minutos para partir. Todo lo anterior llev a que los vehculos
elctricos fueran los que contaran con mayor demanda.
Fue hasta 1920 cuando los vehculos elctricos tuvieron su mayor desarrollo.
En esos aos Estados Unidos ya contaba con una red de caminos en buen estado entre
las distintas ciudades, por lo que una mayor autonoma se hizo necesaria. Por otra parte,
el descubrimiento de petrleo en Texas baj los precios e hizo de ste un combustible
ms accesible. Adems, Charles Kettering invent el motor elctrico de partida en 1912
por lo que el problema del arranque de los motores a combustin fue solucionado.
Finalmente, la produccin en masa de motores de combustin interna por parte de Henry
Ford hizo que los precios de los automviles a gasolina fuesen notoriamente ms
competitivos.
Durante el resto del siglo XX, el desarrollo de los vehculos elctricos fue
prcticamente paralizado, y los automviles a combustin tomaron su lugar debido
principalmente a su capacidad de almacenar grandes cantidades de energa.
Despus de la dcada del 50 comenz el desarrollo de la electrnica de
potencia. Con ello, la invencin de los transistores de silicio en 1948 y posteriormente
en 1956 el transistor de disparo PNPN o tiristor. Estos inventos permitieron eliminar las
resistencias que controlan la velocidad de los motores de corriente continua y
reemplazarlas por Choppers.
3
Luego, a comienzos de los aos 80 se inventan los Transistores de potencia y
los GTO, dando paso al desarrollo de inversores, elementos capaces de alimentar los
motores de corriente alterna desde una fuente de corriente continua, permitiendo as un
control ms fino de su velocidad. Un desarrollo posterior fue la invencin de las vlvulas
IGBT y de los motores de imanes permanentes.
El problema ecolgico empez a plantearse ya en los aos 70 y junto a ello,
a considerarse las altas emisiones producidas por los vehculos a combustin. Por otra
parte, como parte del desarrollo estratgico de Estados Unidos, empez la bsqueda de
nuevas formas de energa para disminuir la dependencia del petrleo proveniente del
medio oriente.
En los ltimos aos, la reduccin de contaminantes en las grandes ciudades y
la bsqueda de automviles ms eficientes ha impulsado nuevamente el desarrollo de los
vehculos elctricos (EV) e hbridos (HEV). Junto a ello fuentes generadoras estticas de
energa elctrica, como las celdas de combustible, y fuentes de almacenamiento de
energa como bateras, bateras de alta densidad de potencia, ultracapacitores y flywheels
(Oman, 2002), (Wyczalek, 2001).
Adems, los pases desarrollados han tomado una actitud de fomento al uso
de energas renovables y no contaminantes. Por ejemplo, en el estado de California se
propuso un plan de incentivos o subvenciones con el fin de lograr que el 10% del parque
automotriz sea del tipo ZEV (Zero Emision Vehicles) para el ao 2003 (California Air
Resources Borrad, 2002), (U.S. Departmen of Energy, Hyrbrid Electric Vehicle
Program). Sin embargo, los fabricantes de vehculos han demandado al estado, debido a
que consideraron poco prctica la medida. Hoy, el estado de California se encuentra en
una disputa legal y se est haciendo un replanteamiento de modo que se pueda cumplir
la normativa hacia fines del 2005. En Chile tambin se han dado pasos en esa direccin,
con medidas como la prohibicin de la utilizacin de vehculos contaminantes para el
transporte de carga en el centro de Santiago.
4
1.1.2 Topologas
Actualmente existen dos lneas de desarrollo, los vehculos elctricos (EV)
propiamente tal, y los vehculos hbridos elctricos (HEV). El principio de
funcionamiento de los EV se caracteriza por su sencillez, y es prcticamente el mismo
que en sus comienzos. Este consiste en una fuente primaria de energa, bateras (Plomo
cido, Zinc Aire, Nquel Metal Hidruro, Litio In, de Sodio, etc) o celda de
combustible, y un elemento rotatorio motriz: motor de induccin, Brushless DC, etc. Se
ha agregado un conversor DC-AC (inversor) para la transformacin de la energa
proveniente de la fuente y el control de velocidad del vehculo. En la figura 1.1 se ilustra
la direccin de los flujos de energa dentro de un EV.

Figura 1.1: Vehculo Elctrico
Su principal ventaja es que permiten regeneracin, es decir, recuperan parte
de la energa del vehculo en cada frenada. Si se compara con el vehculo de combustin,
los EV son ms eficientes y sencillos, poseen menos partes mviles, requieren menos
mantencin y no liberan emisiones. Sin embargo, son ms caros y su autonoma es
limitada.
Los vehculos hbridos (HEV) combinan el motor de combustin interna de
un vehculo convencional con un conjunto de bateras y un motor elctrico de un EV
5
obteniendo, producto de la combinacin de ambos, un ahorro de combustible
significativo si lo comparamos con los vehculos convencionales. Esta combinacin
otorga la amplia autonoma y rpida recarga esperada por los usuarios, adems de un
gran beneficio ambiental al disminuir significativamente las emisiones y ser
notablemente ms eficientes.
Las ventajas que poseen los HEV sobre los automviles convencionales se
resumen en:
1. Capacidad de frenado regenerativo, permitiendo la recuperacin de
energa en cada frenada y ayudando a minimizar las prdidas.
2. El motor de combustin puede ser dimensionado para entregar la
potencia media, lo cual reduce significativamente su peso.
3. Aumento en la eficiencia de consumo de combustible.
4. Las emisiones son reducidas notablemente.
5. La utilizacin de materiales especiales ayudan a disminuir el peso
total del vehculo.
Dentro de los HEV se pueden encontrar diferentes configuraciones.
Bsicamente, los vehculos hbridos combinan un sistema de almacenamiento de
energa, una unidad de potencia y un sistema de propulsin. Las alternativas para
sistemas de almacenamiento incluyen bateras, ultracapacitores y flywheels. Hoy las
bateras son la opcin ms utilizada, sin embargo no est todo definido y la investigacin
se realiza en las distintas reas. La unidad de potencia puede estar formada por motores
de inyeccin, turbinas de gas o celdas de combustible. La propulsin puede ser otorgada
completamente por un motor elctrico, configuracin serie, o en conjunto con el motor a
combustin, configuracin paralela.
La eficiencia y nivel de emisiones de un vehculo hbrido depende de la
combinacin de cada uno de los subsistemas, de cmo estos son integrados en un
sistema global, y de la estrategia de control que integra a cada uno de los subsistemas. A
6
modo de ejemplo, un vehculo hbrido que utiliza celdas de combustible alimentadas con
hidrgeno produce slo agua como residuo.
Vehculo Hbrido Configuracin Serie: Un vehculo hbrido con
configuracin serie posee una unidad de potencia, que puede estar formada por un
motor a combustin y un generador elctrico, o una celda de combustible. Es sta unidad
la encargada de producir la electricidad requerida por las bateras y el motor de traccin.
En un vehculo serie slo un elemento es el que produce la potencia mecnica de
traccin. En l, la energa es transformada, en una primera instancia, de energa qumica
a energa mecnica, luego a energa elctrica y finalmente nuevamente a energa
mecnica para mover las ruedas.
La figura 1.2 muestra el esquema tpico de esta configuracin. Adems se
muestra la direccin de los flujos de energa dentro del vehculo.

Figura 1.2: Vehculo Hbrido Serie
Los beneficios de esta configuracin se resumen en:
1. El motor nunca se detiene ya que debe preocuparse de mantener el
estado de carga de las bateras.
7
2. El motor a combustin se mantiene funcionando en una zona ptima,
lo que reduce las emisiones.
3. No necesita caja de transmisin.
Finalmente, una de las desventajas de esta configuracin es que el motor a
combustin trabaja arduamente en mantener la carga de las bateras.
Vehculo Hbrido Configuracin Paralelo: A diferencia de la
configuracin serie, en el vehculo paralelo la potencia mecnica de las ruedas es
proporcionadas por dos unidades de manera independiente. Esto es, un motor a
combustin, similar al de un vehculo convencional, y un motor elctrico. A modo de
ejemplo, un vehculo paralelo puede utilizar la potencia del motor de combustin interna
para manejo en carretera y la potencia del motor elctrico para la aceleracin. La figura
1.3 muestra el esquema de traccin de esta topologa junto a la direccin de los flujos de
energa producidos.
Los beneficios de esta configuracin se resumen en:
1. El vehculo tiene ms potencia debido a que tanto el motor a
combustin como el elctrico proveen la potencia simultneamente.

Figura 1.3: Vehculo Hbrido Paralelo
8
2. No necesitan un generador separado debido a que el motor elctrico
regenera a las bateras.
3. Debido a que la potencia va acoplada directamente a la transmisin,
suelen ser ms eficientes.
La gran versatilidad de configuraciones de los vehculos hbridos junto a la
necesidad de interaccin de las distintas fuentes de energa hace necesario un sistema de
manejo global de los flujos de energa, de modo que ambas fuentes operen de manera
ptima. Esto ltimo agrega un nivel de complejidad no encontrado en los automviles
convencionales.
Otra distincin entre los vehculos hbridos corresponde a los que mantienen
la carga de la fuente de energa y los que la van descargando a travs del tiempo. En
ambos casos, el hardware y la estrategia de control utilizada son notoriamente distintos.
En el segundo caso, las bateras no pueden ser recargadas a la misma tasa que son
descargadas. Los vehculos que son diseados para mantener la carga poseen una unidad
de potencia dimensionada para otorgar la potencia media, de modo que, si es operada en
las condiciones esperadas, ser capaz de mantener un nivel de carga en las bateras de
modo indefinido.
La flexibilidad de los HEV viene de la capacidad de la estrategia de control
de manejar cuanta potencia fluye de cada uno de los componentes. De esta forma, los
componentes del vehculo pueden ser integrados junto con la estrategia de control para
obtener el diseo ptimo dado un conjunto de restricciones. Entre los objetivos
deseables para los HEV encontramos:
1. Maximizar la economa de combustible.
2. Minimizar las emisiones.
3. Minimizar el costo del sistema de propulsin, de modo de hacerlos
cada da ms alcanzables.
9
4. Realizar lo anterior bajo ciertas condiciones de desempeo
(aceleracin, ruido, rango, etc)
Para alcanzar estas especificaciones, la configuracin de hardware y la
topologa de control deben ser diseadas al mismo tiempo.
En suma, la gran flexibilidad de configuracin y control de los vehculos
hbridos hacen que stos puedan ser diseados de distinta forma, de modo de abarcar las
necesidades particulares de cada grupo de mercado, automviles ms eficientes y con
menor gasto de combustible, alternativas de mayor potencia, etc. Por lo cual, la traccin
elctrica, y en particular el desarrollo de medios elctricos de transporte, es un rea que
ha presentado un desafo importante a los cientficos e investigadores de hoy en da, que
estudian temas tan diversos como electrnica de potencia, diseo de motores, control de
motores, optimizacin, aerodinmica, etc. los que se combinan para buscar solucin a
las problemticas planteadas para esta rea del desarrollo. Dentro de los problemas a
solucionar se encuentran el mejor aprovechamiento de la energa, la capacidad de
almacenarla, mejorar la confiabilidad de los sistemas, reducir los costos de desarrollo y
produccin, entre otros.
1.1.3 Vehculos Elctricos en la Universidad Catlica
El trabajo de investigacin en la Universidad comenz en el ao 1997
cuando el profesor Juan Dixon comenz a plantear la construccin del primer vehculo
elctrico armado en Chile con tecnologa de punta. Luego, se inici la investigacin en
las distintas lneas de trabajo. En 1998 con la colaboracin de General Motors, Tramcorp
(Trading Motors Corporation), Bateras Sonnenschein, CGE (Compaa General de
Electricidad), BMV Industrias Elctricas y aportes financieros de Conicyt a travs de
Proyectos Fondecyt, se desarroll el primer vehculo elctrico en Chile impulsado por
motores Brushless DC. El vehculo es una camioneta Chevrolet modelo LUV de doble
cabina cuya adaptacin finaliz el ao 1999. El vehculo ha demostrado ser altamente
confiable y eficiente. En trminos monetarios cuesta diez y seis pesos chilenos el
kilmetro recorrido, lo que equivale a una eficiencia de combustible de ms de 33
10
kilmetros por litro, es decir, al menos cuatro veces ms econmica que una LUV de
combustin interna..
El vehculo cuenta con instrumentacin digital y posee tres procesadores:
uno para el control del motor, otro para la instrumentacin y un tercero para la carga de
las bateras. Posee un motor tipo brushless DC de 95% de eficiencia, 71 HP y 47 kg de
peso, con un torque mximo de 240 Ntm entre cero y 2.200 rpm. Su velocidad mxima
es 120 km/hora y aceleracin de cero a 60 km/hr en 9 segundos. La autonoma actual es
de 50 kms con una profundidad de descarga de las bateras de 60%. Como unidad de
almacenamiento de energa posee 26 unidades selladas de Plomo-cido, de 12 V 50 Ah
cada una (peso total 520 kg.)
El desarrollo de este vehculo permiti la donacin desde California de un
segundo vehculo: una camioneta Chevrolet S-10 impulsada por dos motores de
induccin trifsicos, la cual fue modernizada con instrumentacin digital. La donacin la
efectu la empresa elctrica "Southern California Edison" el ao 2000, cuyos ejecutivos
quedaron muy sorprendidos por el trabajo realizado en Chile con la LUV.


Figura 1.4: Vehculos Elctricos en la Universidad Catlica
El ao 2001 se consiguieron fondos Conicyt a travs de un nuevo proyecto
Fondecyt para desarrollar un sistema de frenado regenerativo ptimo para la camioneta
LUV, con lo cul se consigui hibridizar el vehculo. El sistema auxiliar de energa
11
consta de un convertidor Buck Boost, diseado y construido en el departamento de
ingeniera elctrica de la universidad, y un banco de ultracapacitores, cuyo voltaje
nominal es 300 Vdc, corriente 200 Adc y capacidad total igual a 20 Faradios.
1.2 Alcances de la Tesis
Dentro del problema de diseo de los vehculos hbridos se encuentra el de
encontrar una estrategia de control ptima que minimice el consumo de combustible.
Como los HEV poseen dos sistemas de almacenamiento de energa, se debe encontrar la
distribucin de los flujos de energa que minimice las prdidas, y de esa forma
minimizar el consumo de energa de la fuente primaria.
En una memoria anterior se haba diseado un sistema de frenado
regenerativo para la camioneta LUV (Ortzar, 2002), el cual consiste en un banco de
ultracapacitores y un convertidor DC-DC tipo Buck-Boost. En un trabajo posterior se
elabor la estrategia de control y un sistema de monitoreo, el cual permite la evaluacin
del sistema en tiempo real (Dixon et al., 2000), (Dixon et al., 2002). La estrategia de
control fue elaborada basndose en el comportamiento esperado para el sistema de
modo heurstico. Como primer objetivo de esta tesis se plante estudiar el desarrollo de
una nueva estrategia de control que considere la eficiencia de operacin del sistema, de
modo de minimizar el consumo de energa de las bateras. Finalmente, se debi estudiar
su implementacin prctica, de modo de lograr un ahorro efectivo de energa en
trminos de kilmetros recorridos por KWh para condiciones de manejo tpicos de
ciudad.
En sntesis, en la presente tesis se plantea el objetivo de disear una
estrategia de control que minimice el consumo de energa de las bateras para un
vehculo elctrico, especficamente la camioneta LUV con que cuenta el departamento
de ingeniera elctrica.
12
1.3 Organizacin de la Tesis
En el captulo II se realiza una revisin de los componentes que conforman
un sistema de traccin de la camioneta Chevrolet LUV. Se describe el motor, el sistema
de almacenamiento de energa, el conversor de potencia, el banco de ultracapacitores y
el conversor DC-DC controlador. Finalmente, se entrega una descripcin de la estrategia
de control desarrollada previamente para controlar los flujos de energa entre la fuente
primaria (bateras) y los ultracapacitores.
En el capitulo III se hace una descripcin de la operacin del convertidor
DC-DC tipo BuckBoost. En l se incluye principio de funcionamiento, modelacin y
anlisis de eficiencia en la conversin de energa.
En el captulo IV se desarrolla el marco terico relativo al control ptimo de
sistemas. Se plantea el objetivo del diseo de controladores ptimos, luego, se introduce
el estudio de las condiciones de optimalidad. Finalmente se exponen mtodos numricos
para su resolucin.
En el captulo V se aplica la teora de control ptimo expuesta en el captulo
anterior a la minimizacin de la descarga en las bateras de un vehculo elctrico, y en
particular el caso en que la fuente primaria corresponde a bateras y la fuente secundara
a ultracapacitores. Se muestran finalmente algunas simulaciones con los resultados.
En el captulo VI se introduce a la identificacin de sistemas. Interesa
principalmente buscar una solucin a la aproximacin de la funcin de control ptimo
obtenida en el captulo V. Para ello, se introducen las redes neuronales aplicadas a la
identificacin de sistemas. Se revisan los conceptos de neurona, redes neuronales,
mtodos de entrenamiento y validacin de sistemas. Finalmente se presentan los
resultados obtenidos en la identificacin de la funcin de control ptimo.
En el captulo VII se revisa la informacin referente a las caractersticas del
microprocesador utilizado y en particular las ventajas que presenta frente a otras
13
alternativas disponibles. Luego se describe el software implementado en el
microprocesador, su arquitectura y los mdulos que lo componen.
En el captulo VIII se presentan los resultados experimentales del sistema.
En primer lugar se presentan las pruebas del control de corriente en el convertidor.
Luego, pruebas de la implementacin de la red neuronal. Finalmente se presentan la
metodologa a seguir para probar la eficiencia de la nueva estrategia de control y sus
resultados.
Finalmente, en el captulo IX se entregan las conclusiones del trabajo
realizado y un resumen del posible trabajo a futuro.




14
II. COMPONENTES DEL SISTEMA DE TRACCIN DE LA
CAMIONETA CHEVROLET LUV
En el presente captulo se presenta cada una de las partes del sistema de
traccin presentes en la camioneta LUV. El objetivo de ello es introducir su
composicin y modo de funcionamiento.
Es posible distinguir dos grupos importantes, el sistema primario de energa,
formado por un banco de bateras de Plomo cido, y un sistema auxiliar de energa,
compuesto por ultracapacitores y un convertidor DC-DC. Ambos sistemas estn
conectados en paralelo para alimentar el inversor que a su vez entrega las corrientes
necesarias al motor de traccin.
2.1 Descripcin del Motor
El vehculo posee un motor marca UQM modelo SR218H, tipo Brushless
DC de imanes de Neodimio-Fierro-Boro, su potencia nominal es de 32 kW (43 hp) y
potencia mxima de 53 kW (71 hp). La potencia mxima puede ser desarrollada en un
amplio rango de velocidades (2.200 a 7.600 rpm). El torque mximo que desarrolla el
motor es de 240 Nm entre cero y 2.200 rpm. La figura 2.1 muestra la curva de torque vs
velocidad caracterstica de un motor elctrico.

Figura 2.1: Relacin Torque Velocidad para un Motor Elctrico
15
El motor se caracteriza por su alta eficiencia (96 %) y bajo peso (47 Kg), lo
que permite tener una alta densidad de potencia (1.110 W/kg). Adems, es enfriado por
agua, para lo cual posee ductos interiores que permiten su circulacin.
Su principal ventaja en comparacin con un motor de induccin es que posee
un peso notablemente inferior, para condiciones equivalentes de potencia y torque, lo
que permite alcanzar mayores valores de relacin potencia/peso y potencia/volumen. La
figura 2.2 muestra el motor durante su proceso de instalacin.

Figura 2.2: Motor Brushless DC en la Camioneta LUV
El motor es alimentado con corrientes trapezoidales a travs de un inversor
trifsico.
2.2 Descripcin de la Fuente Primaria de Energa
El vehculo utiliza 26 bateras marca Sonnenschein de plomo-cido cuyas
caractersticas son: 12 volts nominales, capacidad de 50 Ah y un peso de 20 Kg cada
una.
Estas bateras son especialmente diseadas para sistemas de traccin
elctrica debido principalmente a que retienen el electrolito en forma de gel, por lo que
son libres de mantenimiento. Adems, no requieren instalaciones de carga muy
complejas puesto que poseen una muy baja gasificacin.
16
La vida til de las bateras en cuanto a ciclos de carga y descarga est ligada
a que el mtodo de carga de las bateras sea el apropiado, el cual esta dado por la
siguiente curva.

Figura 2.3: Caracterstica de Carga de las Bateras
El proceso de carga debe efectuarse en una primera etapa con corriente
constante, hasta alcanzar el voltaje de gasificacin del electrolito, aproximadamente 2,4
volts/celda. Una vez que este voltaje ha sido alcanzado, el proceso de carga debe
continuar con voltaje constante, y la corriente disminuye hasta alcanzar un valor de
rgimen. El proceso de carga dura aproximadamente 8 horas.
Un segundo factor, y el ms importante, que influye en la vida til de las
bateras, es el rgimen de uso. Por lo cual, no debieran descargarse a ms de un 60% de
su capacidad total (30 Ah) y no deben ser sometidas a grandes potencias de descarga ni
de regeneracin.
La siguiente figura muestra la ubicacin de las bateras dentro del vehculo.
17

Figura 2.4: Ubicacin de Bateras en el Vehculo
2.3 Descripcin del Inversor
Para el control del motor se utiliza un inversor trifsico fabricado por UQM
(modelo CA40-300L) de alta potencia de 250-400 Vdc, controlado por microprocesador
(UQM modelo EVPH332).
EL inversor esta fabricado en base a IGBT (Insulated Gate Bipolar
Transitor) y sus valores nominales son de 320 Vdc y 300 amperes, adems permite el
frenado regenerativo casi hasta la detencin total del vehculo. El peso total del inversor
es de 13.1 kg, es enfriado por agua y tiene una temperatura de trabajo mxima de 55 C.
En la figura 2.5 se ilustra la ubicacin del inversor en el vehculo.
Para controlar la operacin del inversor y del motor de traccin se utiliza un
controlador UQM modelo EVPH332, el cual consiste de un microprocesador que se
encarga de generar las seales requeridas por el inversor para su operacin, a partir de la
referencia de torque suministrada por el operador. Adems el microprocesador recoge
todas las variables medidas que afectan los lmites de seguridad en la operacin del
sistema.
18

Figura 2.5: Ubicacin del Inversor en el Vehculo
El sistema tiene una rutina de software usada para calcular el comando
deseado de torque basado en las seales del freno y del acelerador. Ambas seales (freno
y acelerador) representan el porcentaje deseado de torque con respecto al torque
mximo. La seal del acelerador es tratada como comando de torque positivo y la seal
de freno es tratada como comando de torque negativo.
Las partes descritas hasta el momento corresponden al equipo de traccin
existente en la primera etapa del proyecto de construccin del vehculo. En dicha etapa
se logr la puesta en marcha y se realizaron las primeras pruebas (Dixon et al., 2000).
Luego, como parte de una segunda etapa, se instal un sistema auxiliar de energa, de
modo de aumentar la vida til de las bateras (reduciendo su potencia mxima de
trabajo) y por otra parte, producir un aumento en la eficiencia del sistema de frenado
regenerativo.
2.4 Descripcin de la Fuente Auxiliar de Energa
La fuente de almacenamiento del sistema auxiliar de energa est formada
por Ultracapacitores. Bsicamente, los ultracapacitores son condensadores
electroqumicos de doble capa que tienen dos electrodos inmersos en un material
electroltico.
19
El mayor contenido energtico de los ultracapacitores en comparacin con
los condensadores electrolticos de aluminio se origina en el electrodo, el cual tiene una
alta superficie especfica (alrededor de 2000 m2/g) y una corta distancia entre capas, que
es alrededor de unos pocos nanmetros. Gracias a esto, se pueden lograr capacidades
de unos cuantos miles de faradios en dispositivos relativamente pequeos.
Los ultracapacitores basan su funcionamiento en el principio
electrosttico, el cual es netamente elctrico y altamente reversible. Este modo de
almacenamiento de energa contrasta claramente con todas las tecnologas basadas en el
almacenamiento a travs de bateras, la cual est basada en la formacin y disolucin de
compuestos qumicos en los electrodos de la batera (reaccin redox). Como
consecuencia de esto, hay diferencias fundamentales entre ambas tecnologas, las cuales
bsicamente son mayor eficiencia, mayor vida til y mantencin cero.
En la actualidad, el voltaje nominal de estos dispositivos es 2.3 Vdc. Para
obtener mayores voltajes se debe conectar mdulos de capacitores en serie. Para el caso
particular de la camioneta LUV, se han conectado 132 ultracapacitores de 2700 [F] en
serie. Obteniendo un banco de ultracapacitores de 20 [F] y 300 Vdc nominales. Su
ubicacin en el vehculo se muestra en la siguiente figura.

Figura 2.6: Ubicacin de los Ultracapacitores en la Camioneta LUV
20
La figura 2.7 muestra, en un grfico de Rogone (energa especfica vs
potencia epecfica), una comparacin de los ultracapacitores con otras formas de
almacenamiento de energa.

Figura 2.7: Comparacin de Ultracapacitores con otras fuentes de
almacenamiento de Energa
Tabla 2.1: Comparacin de Ultracapacitores con otras fuentes de almacenamiento
de Energa

Los ultracapacitores son muy tolerantes con respecto al mtodo de recarga.
Todos los mtodos de recarga estn permitidos, siempre y cuando el voltaje mximo
especificado no sea sobrepasado.
Caracterstica
Batera de
Plomo Acido
Ultracapacitor Condensador
Electroltico
Tiempo de Carga 1 a 5 hrs 0.3 a 30 s 10
-3
a 10
-6
s
Tiempo de Descarga 0.3 a 3 hrs 0.3 a 30 s 10
-3
a 10
-6
s
Energa (Wh/kg) 10 a 40 1 a 10 < 0.1
Ciclos de Carga y
Descarga 1,000 >500,000 >500,000
Potencia Especfica
(W/kg) <250 <10,000 <100,000
Eficiencia de Carga y
Descarga
0.7 a 0.85 0.85 a 0.98 >0.95
21
Las caractersticas mencionadas hacen que hoy en da los ultracapacitores
sean una de las mejores alternativas de fuente de almacenamiento secundaria de energa
(Burke y Millar, 2002), (Burke, 2000).
2.5 Descripcin del Convertidor DC-DC
La incorporacin de los Ultracapacitores al sistema de potencia del vehculo
hizo necesaria la adicin de un equipo electrnico que controle los flujos de energa
auxiliar. El sistema trabaja al mismo tiempo que las bateras, pero en forma
independiente. Es capaz de transferir energa desde y hacia las bateras en todo
momento, a una potencia mxima cercana a la del motor, para as poder entregar (o
recibir), en determinadas ocasiones, toda la potencia desde el sistema auxiliar. Como los
ultracapacitores varan su tensin de acuerdo a la carga que contienen y la tensin de
entrada del inversor de potencia del vehculo se mantiene cercana a los 312 V, es
necesaria una topologa que pueda transferir potencia bajo estas condiciones en todo
momento. En nuestro caso la topologa utilizada corresponde a una configuracin tipo
Buck-Boost. El convertidor fue fabricado utilizando IGBTs y su potencia mxima es de
60 [KW] (Ortzar, 2002).

Figura 2.8: Ubicacin del Convertidor en el vehculo.
22
2.6 Estrategia Actual de Control de Carga
El principal objetivo de los ultracapacitores es apoyar a las bateras u otra
fuente primaria durante las aceleraciones y frenado del vehculo. Sin embargo, el
sistema de control debe predecir tambin la necesidad de energa antes de aceleraciones
y dejar espacio para almacenamiento de energa antes de cada frenada. Para ello, se debe
monitorear la velocidad del vehculo, la corriente de carga y el Estado de Carga (SOC)
de los ultracapacitores.

Figura 2.9: Circuito de Potencia de la Camioneta LUV
Considerando las bateras como un elemento pasivo, la corriente a travs de
stas puede ser controlada monitoreando la corriente de carga y controlando la corriente
a travs del Buck-Boost (como se puede ver en la figura 2.9). El SOC de los
ultracapacitores puede ser controlado con un lazo de control simple que manipule la
corriente por ellos (Iuc), la cual, al mismo tiempo, es controlada por un segundo lazo.
Adems, se tiene un mdulo para controlar los lmites de corriente en las bateras. Un
diagrama del sistema de control se presenta en la figura 2.10 (Dixon, 2000), (Dixon y
Ortzar, 2002).
23
Figura 2.10: Diagrama de la Estrategia de Control
Esta estrategia de control fue implementada en un DSP (TMS320F241) junto
a un sistema de monitoreo, el cual permite la comunicacin en tiempo real con un PC
para la captura de datos (Dixon et al., 2002). La figura 2.11 muestra un fragmento de la
corriente del sistema y la velocidad del vehculo durante un ciclo de manejo. Se puede
observar que la corriente de las bateras est limitada a 30 y -3 [A] durante la aceleracin
y frenado respectivamente.
Los resultados promedio obtenidos tras numerosas pruebas se resumen en la
tabla 2.2. En ellas se recorri un circuito de ciudad de 14.2 Km en 3 condiciones: sin
regeneracin; con regeneracin, sin el convertidor BB; con regeneracin, con sistema
auxiliar de energa.

24
0 50 100 150 200 250 300 350 400
-200
-100
0
100
200
Corrientes Durante el Ciclo de Manejo
C
o
r
r
i
e
n
t
e

[
A
]
I
BB
I
Load
I
Bat
0 50 100 150 200 250 300 350 400
0
10
20
30
40
50
60
Velocidad del Vehculo
Tiempo [s]
V
e
l
o
c
i
d
a
d

[
k
m
/
h
r
]
Velocidad [km/hr]

Figura 2.11: Corrientes en el sistema durante parte del ciclo de manejo
Tabla 2.2: Resultados de pruebas en circuito de ciudad.


Con Regeneracin

Sin Regeneracin

y sin UC *
Sin UC Con UC

Km

14.2
14.2 14.2
Rendimiento Km/KWh
2.61
3.09
3.25
Aumento en Rendimiento (*)


18.2 % 24.4 %

En el primer caso (sin regeneracin) el vehculo puede recorrer 2.61 km con
un kWh de energa. Agregando la capacidad de recuperar la energa a las bateras, se
aumenta su autonoma, llegando esta a 3.09 km/kWh que representa un aumento de
18.2%. Ahora, cuando el convertidor Buck-Boost y los Ultracapacitores son conectados,
la eficiencia del sistema en trminos de su autonoma se incrementa en un 24.4% (3.25
25
km/kWh). La conexin del sistema reduce tambin considerablemente la potencia
mxima entregada por las bateras. Esto es de 54 kW a solo 10.7 kW.
2.7 Conclusin
Segn lo presentado anteriormente, se concluye que el diseo de la estrategia
de control se ha hecho en base al conocimiento heurstico del sistema. El objetivo de
este trabajo es presentar el diseo de una nueva estrategia, en la cual las consideraciones
de eficiencia en la operacin del sistema sean consideradas.



26
III. MODELACIN DEL CONVERTIDOR BUCK BOOST
3.1 Introduccin
En gran cantidad de aplicaciones industriales es necesario convertir de una
fuente de voltaje dc no regulado a otro nivel de voltaje dc regulado, para lo cual se debe
utilizar un convertidor dc-dc (Figura 3.1). Por lo general es posible encontrarlo en
fuentes de alimentacin de corriente continua, alimentacin de motores dc, etc.

Figura 3.1: Sistema con Convertidor DC-DC
Como se expuso en el captulo anterior, en el vehculo elctrico las bateras
operan a un voltaje de 312 Vdc, el cual para efectos de modelacin se puede suponer
constante (en la prctica suele variar segn la carga). Por otra parte, los ultracapacitores
operan a un voltaje variable, segn su estado de carga (SOC
uc
). Por lo que se debi
utilizar un convertidor DCDC para hacer posible los traspasos de energa, en forma
controlada, en uno y otro sentido. Es decir, cuando el vehculo acelere, los
condensadores deben entregar energa al lado de alta tensin para as no exigir
demasiado a las bateras, y por otra parte, durante el proceso de frenado, stos deben
recibir toda la corriente generada por el motor. La topologa utilizada para estos
propsitos corresponde a un convertidor BuckBoost, la que fue mostrada en la figura
2.10.
En este captulo se pretende introducir en ms detalle el funcionamiento del
convertidor Buck-Boost. Para ello se presentar su anlisis en rgimen permanente de
Fuente DC
no
Regulada
Convertidor
DC-DC
Fuente DC
Regulada
LOAD
control
v
Fuente DC
no
Regulada
Convertidor
DC-DC
Fuente DC
Regulada
LOAD
Fuente DC
no
Regulada
Convertidor
DC-DC
Fuente DC
Regulada
LOAD
control
v
27
cada uno de sus modos de operacin (Buck y Boost) y se obtendr una expresin
analtica para representar su eficiencia de operacin.
3.2 Anlisis de la Topologa Buck
El convertidor Buck produce en la salida un voltaje medio menor que el
voltaje en la entrada. En el caso de la camioneta LUV, el voltaje en la entrada al
convertidor Buck corresponde al voltaje de bateras y la salida es el voltaje en el lado de
los condensadores. La figura 3.2 muestra el circuito bsico de esta topologa. En ella,
V
bat
corresponde al voltaje en las bateras, R
bat
es la resistencia interna de las bateras. El
voltaje y la resistencia serie de la bobina estn dados por V
L
y R
L
respectivamente. V
uc

es el voltaje de los ultracapacitores y R
uc
es la resistencia interna de estos.

Figura 3.2: Convertidor Buck
En la operacin del convertidor Buck se pueden distinguir dos estados, esto
es, con el IGBT en modo de conduccin y con el IGBT apagado. Los circuitos
resultantes en ambos casos se muestran en la figura 3.3b y 3.3c respectivamente, en las
cuales el diodo es modelado por una fuente dc (V
D
) junto a una resistencia serie R
D
, y el
IGBT en conduccin se asume como una fuente de tensin constante V
igbt
. En la figura
3.3a se puede observar una simulacin del voltaje y la corriente en la bobina para V
bat
=
320 V, V
uc
= 160 V e I
L
= 55 A.
28

Figura 3.3: Estados del Convertidor Buck: (a) Voltaje y Corriente en la
Bobina, (b) IGBT en ON, (c) IGBT en OFF.
Al activarse el IGBT la corriente pasa a travs de ste y de la inductancia (L)
en el sentido de las flechas (Figura 3.3b). En ese instante, parte de la energa se
transfiere a los Ultracapacitores (V
uc
), una fraccin de sta se disipa en las resistencias
serie de los elementos y en el semiconductor, y otra parte se carga en la inductancia L.
Cuando se abre el IGBT la energa que se carg en la inductancia L se descarga en los
ultracapacitores, a travs del diodo (D), obligando a la corriente a continuar en la
direccin de I
L
.
En modo de conduccin, el voltaje en la bobina va a ser igual a la diferencia
entre el voltaje en el lado de alta tensin (Bateras) y el voltaje en el lado de baja
(Ultracapacitores). Por otra parte, cuando el IGBT esta apagado, el voltaje en la bobina
corresponde slo al voltaje de los condensadores (con polaridad inversa). Sin embargo,
se cumple que la integral del voltaje en la bobina en un periodo de tiempo es cero, es
decir:
t
on
t
off
t
on
t
off

I
L

(a)

(b)

I
c

I
L

(c)

I
c

I
L

29
0
0 0
= + =
+ =

s
T
on
t
L
on
t
L
s
T
L
off on
dt v dt v dt v
t t T

En condiciones ideales, es decir, suponiendo que las resistencias interna
serie de las bateras, inductancia y condensadores es cero, se tendr:
( ) ( )
onn uc on uc bat
t T V t V V =
luego: D
T
t
V
V
on
bat
uc
= = (duty cycle) (3.1)
Por lo que el voltaje de salida vara linealmente con el duty cycle del IGBT
para un voltaje dado en la entrada. Ahora, como la potencia de entrada debe ser igual a
la de salida, se tiene:
L uc bat bat
out in
I V I V
P P
=
=

Obtenindose:
D V
V
I
I
uc
bat
bat
L
1
= = (3.2)
De lo cual se puede concluir que en condiciones ideales, el convertidor Buck
es equivalente a un transformador, en donde la razn de transformacin puede ser
variada continuamente regulando el tiempo de encendido y apagado del IGBT.
Si la tensin modulada en el lado de baja tensin es menor que la tensin de
los Ultracapacitores no circular corriente, ya que sta no puede pasar por el diodo D
(sentido inverso) ni por el IGBT (est apagado). Si la tensin modulada es mayor que
V
uc
la corriente que circule depender de estas tensiones y de la resistencias series de
cada uno de los elementos. El valor de la corriente est dado por (ms detalle en Anexo
N 1):
( )
( )
d uc L bat
d uc igbt bat
L
R D R R R D
V D V DV DV
I
+ + +

=
1
1
2

30
Por otra parte, si se consideran las resistencias series de cada uno de los
elementos, se tendr:
in out
P P * =
En donde la eficiencia del convertidor, , est dada por la siguiente
expresin (el detalle de su obtencin se desarrolla en el Anexo n 1):
( ) ( )
( ) ( ) ( ) ( )
d uc igbt bat bat d uc L
uc d uc L bat
V D V DV R D V R D D DR DR
V R D R R R D
+ + + + +
+ + +
=
1 1
1
2
2


En la expresin anterior, D corresponde al duty cycle aplicado al IGBT, que
para condiciones dadas de voltaje y corriente en los condensadores, y voltaje en las
bateras, estar dado por:
( ) ( )
L bat
L d uc L d uc L bat L d igbt bat d L d igbt d bat
I R
I R R R V V I R I R V V V I R V V V
D
2
) ( 4
2
2 , 1
+ + + + + + + +
=

La figura 3.4 muestra el mapa de eficiencia del convertidor Buck. En ella, se
grafica la eficiencia en funcin del voltaje de los ultracapacitores y la corriente que
circula por estos en un momento determinado.

Figura 3.4: Mapa de eficiencia del convertidor Buck
(3.3)
31
3.2 Anlisis de la Topologa Boost
La configuracin del convertidor Boost se muestra en la figura 3.5. Su
operacin consiste en conmutar el semiconductor (IGBT) para transferir energa desde
los ultracapacitores al lado de alta tensin (bateras). Esto se logra cargando la
inductancia L al producir un cortocircuito de corta duracin a travs de sta cuando se
prende el IGBT. Luego, cuando ste se apaga, la energa contenida en la inductancia se
descarga sobre las bateras a travs del diodo D. La transferencia de energa se logra
debido a que, al interrumpir violentamente la corriente por la inductancia, el alto di/dt
induce una tensin en sta, que sumada a la tensin de los ultracapacitores superan la
tensin en las bateras haciendo entrar en conduccin al diodo.

Figura 3.5: Convertidor Boost
Del mismo modo que en el convertidor Buck, se pueden distinguir dos
estados, esto es, con el IGBT en modo de conduccin y con el IGBT apagado. Los
circuitos resultantes en ambos casos se muestran en la figura 3.6b y 3.6c
respectivamente. En la figura 3.6a se puede observar una simulacin del voltaje y la
corriente en la bobina para V
bat
= 320 V, V
uc
= 200 V y I
L
= 55 A.




32

a)
Figura 3.6: Estados del Convertidor Boost: (a) Voltaje y Corriente en la
Bobina, (b) IGBT encendido, (c) IGBT apagado.
Despreciando las perdidas en las resistencias serie de los elementos, y la
cada de tensin directa en el IGBT, V
igbt
, el voltaje en la bobina cuando el IGBT est
encendido va a ser igual a la tensin de los Ultracapacitores. Por otra parte, cuando el
IGBT esta apagado, el voltaje en la bobina corresponde a la diferencia entre el voltaje en
los Ultracapacitores y el voltaje del lado de alta tensin (Bateras). Sin embargo, al igual
que en el caso Buck, se cumple que la integral del voltaje en la bobina en un periodo de
tiempo es cero. Procediendo de la misma forma que en el convertidor Buck, se obtiene
que:
D
V
V
uc
bat

=
1
(3.4)
y que:
( )
bat L
I
D
I

=
1
1
(3.5)
Por lo que la tensin modulada en el lado de alta tensin varia con el
recproco del tiempo en que el IGBT esta apagado. En teora si el convertidor fuese
I
L
I
c
I
L

I
c
I
bat
t
on
t
off I
L

t
on

t
off
b)



c)
33
considerado ideal, y la resistencia serie de los elementos igual a cero, la tensin
modulada en el lado de alta tensin podra ser infinitamente grande. Sin embargo,
debido a los elementos parsitos presentes, esto no ocurre. En la figura 3.7 se muestra
una simulacin para la razn de voltajes entre el lado de alta y baja tensin del
convertidor, considerando los valores reales de resistencia serie de la bobina (37 [m]) y
de los ultracapacitores (135 [m]). A modo de comparacin se grafica, en color verde,
la curva de tensin ideal en el ultracapacitor en funcin del Duty Cycle (todas las
resistencias serie iguales a cero).
0 .20 .40 .60 .80 1
0
1
2
3
4
5
Efecto de Componentes Parasitos en la razon de Conversion de Voltaje
Duty Cycle (D)
V
o
u
t

/

V
u
c
Real
Ideal

Figura 3.7: Modulacin de Voltaje en un Convertidor Boost ideal y real.
El valor de la corriente en la bobina en funcin del Duty Cycle aplicado al
IGBT, del voltaje de los ultracapacitores y del voltaje en el lado de alta tensin, est
dado por la siguiente expresin (detalle en el Anexo N 2):
( ) ( )
( ) ( )
bat d L uc
bat igbt d uc
L
R D R D R R
V D DV V D V
I
2
1 1
1 1
+ + +

=
34
Si se consideran las resistencias serie de cada uno de los elementos, las
prdidas en el diodo, y las prdidas por conmutacin, se tendr:

in out
P P * =
En donde la eficiencia del convertidor, , est dada por la siguiente
expresin (el detalle de su obtencin se desarrolla en el Anexo N 2):
( ) ( ) ( ) ( ) ( )
( ) ( )
bat d L uc
uc
bat
d L uc
uc
igbt
uc
d
bat
R D R D R R
V
V
R D R R D
V
V
D
V
V
D D R
2
2
1 1
1 1 1 1 1
+ + +
+ + +
|
|
.
|

\
|

=
En la expresin anterior, D corresponde al Duty Cycle aplicado al IGBT,
que para condiciones dadas de voltaje y corriente en los condensadores, y voltaje en las
bateras, estar dado por:
( ) ( ) | | ( ) | |
L bat
bat d uc L uc L d bat L bat igbt bat d L bat d L bat d igbt bat d
I R
V V V I R R R R I R V V V I R R I R R V V V
D
2
4 2 2
2
2 , 1
+ + + + + + + + + + +
=

La figura 3.8 muestra el mapa de eficiencia del convertidor Boost. En ella, se grafica la
eficiencia en funcin del voltaje de los ultracapacitores y la corriente que circula por
stos en un momento determinado.

Figura 3.8: Mapa de eficiencia del convertidor Boost
35
Como conclusin se puede decir en este captulo se ha descrito
detalladamente la operacin del convertidor DC-DC tipo Buck-Boost. Se ha logrado
obtener un modelo de la eficiencia de operacin del convertidor en funcin del voltaje
de los ultracapacitores y la corriente circulante. Se incluye el anlisis de las prdidas en
las resistencias serie de los componentes, perdidas en el diodo e IGBT.

36
IV. CONTROL PTIMO
El diseo de una lgica de control que lleve un sistema dinmico a un estado
deseado, o que simplemente aumente su estabilidad, ha sido el objeto principal en
innumerables campos de la ingeniera. Ejemplos de ello se encuentran en la toma de
decisiones para sistemas econmicos, el control de trayectorias de robots y vehculos, la
aplicacin de nociones de inteligencia artificial, etc. Ahora bien, si el objetivo de control
lo expresamos en forma cuantitativa, la optimizacin de este criterio tambin constituye
una manera factible de disear la estructura de control.
El objetivo de este captulo es introducir la teora de control ptimo, sus
objetivos, los mtodos para el planteamiento de problemas y su posterior resolucin
numrica (Bryson y Ho, 1975), (Stengel, 1994).
4.1 Objetivos del Control ptimo
El control ptimo describe la aplicacin de fuerzas a un sistema con el
propsito de maximizar una cierta medida de desempeo, o minimizar una funcin de
costo. Si la informacin que debe utilizar el sistema de control es incierta o si el sistema
dinmico est sometido a perturbaciones aleatorias, puede que no sea posible optimizar
el criterio con certeza; y a lo que ms se pueda aspirar es a maximizar o minimizar el
valor esperado de dicho criterio (dadas las suposiciones estadsticas del factor incierto).
Ejemplos de funciones de costos que se podran maximizar o minimizar para
un sistema dado son:
1. Minimizar el tiempo requerido para transferirse de un estado
dinmico a otro.
2. Minimizar la energa o combustible utilizado para transferirse
de un estado a otro.
3. Minimizar el error en llegar a un estado final.
37
4. Maximizar el retorno de una inversin al finalizar un periodo
fijo de tiempo.
5. Regular un sistema para que se mantenga cercano a una
condicin nominal a pesar de las perturbaciones.
Es importante considerar que el movimiento de un sistema dinmico
involucra el paso del tiempo, por lo tanto el criterio a ser optimizado debe estar
expresado en trmino de valores finales, o la integral en el tiempo del movimiento y
variables de control.
4.2 Condiciones de Optimalidad
Para estudiar las condiciones de optimalidad a aplicar en sistemas dinmicos,
en primer lugar se comenzar con el caso ms simple correspondiente a un sistema de
una etapa. Luego, se generalizar el resultado para sistemas multietapas.
4.2.1 Sistemas de una Etapa
Se tiene un sistema en un estado inicial x(0) (x es de dimensin n). La
eleccin del vector de control m dimensional, u(0), determina la transicin al estado x(1)
segn la siguiente relacin (esquema en la figura 4.1).
( ) ( ) | | 0 ), 1 ( 1
0
u x f x = (4.1)

Figura 4.1: Diagrama de Flujo de un Sistema de una Etapa
f
0 x(0) x(1)
u(0)
38
Se desea escoger u(0) de modo de minimizar una medida de desempeo de
la forma:
( ) | | ( ) ( ) | | 0 , 0 1
0
u x L x J + = (4.2)
En donde representa una condicin final para el sistema. Esto corresponde
a un problema de optimizacin de parmetros con restricciones de igualdad. Para
adjuntar la restriccin (4.1) a (4.2) se emplean los multiplicadores ( ) 1 de la siguiente
forma:
( ) | | ( ) ( ) | | ( ) ( ) ( ) | | ( ) { } 1 0 , 0 1 0 , 0 1
0 0
x u x f u x L x J
T
+ + = (4.3)
Expresin que corresponde a la funcin de costos aumentada. Ahora,
llamando
| | ( ) | | ) 0 ( ), 0 ( 1 ) 0 ( ), 0 (
0 0 0
u x f u x L H
T
+ = (4.4)
Reemplazando (4.4) en (4.3), se tiene
( ) | | ( ) ( ) ( ) | | ( ) ( ) 1 1 1 , 0 , 0 1
0
x u x H x J
T
+ = (4.5)
Suponiendo que H es derivable con respecto a x y u. Considerando cambios
infinitesimales en J debidos a cambios en u(0), x(1), y x(0), se obtiene:
( )
( ) ( )
( )
( )
( )
( ) 0
0
0
0
1 1
1
0 0
dx
x
H
du
u
H
dx
x
J d
T

+
(

(4.6)
Ahora, escogiendo,
( )
( ) 1
1
x
T

=

(4.7)
Se evita calcular, a partir de la ecuacin (4.1), el coeficiente dx(1) en funcin
de du(0). Con esto, la expresin (4.6) queda expresada como:
( )
( )
( )
( ) 0
0
0
0
0 0
dx
x
H
du
u
H
J d

=
39
Como x(0) representa la condicin inicial para el problema (est dada), la
expresin dx(0) = 0. Por lo que un valor estacionario de J , y por lo tanto de J, se
obtendr si:
( )
0
0
0
=

u
H
(4.8)
De las expresiones (4.1), (4.7) y (4.8) se ha formado un sistema de n+n+m
ecuaciones para determinar las n+n+m expresiones de x(1), ( ) 1 y u(0).
4.2.2 Sistemas Multietapa
Un sistema dinmico puede ser considerado como la generalizacin de los
sistemas de una etapa, en otras palabras, la interconexin de sistemas de una etapa da
como consecuencia la representacin de un sistema dinmico cuya representacin
matemtica est dada por el siguiente conjunto de ecuaciones de diferencia:
| | 1 , 0, k dado, ) 0 ( ) ( ), ( ) 1 ( = = + N x k u k x f k x
k
K (4.9)
Expresin que corresponde a un conjunto de restricciones de igualdad, en
donde x(k), es un vector de dimensin n, determinado por u(k), de dimensin m (ver
figura 4.2).
.
Figura 4.2: Diagrama de Flujo de un Sistema Multietapa


x(N)
x(0)
x(1)
u(0)
x(2)
x(N-1)
u(1)
u(N-1)
f
N-1
f
0
f
1
40
Considerando la medida de desempeo como:
( ) | | ( ) ( ) | |

=
+ =
1
0
,
N
k
k
k u k x L N x J (4.10)
El problema ser encontrar una secuencia de control u(k) que minimice (o
maximice) la funcin J para un determinado valor de N. Utilizando la secuencia de
multiplicadores ( ) k se puede agregar el sistema de ecuaciones dado por (4.9) a J:
( ) | | ( ) ( ) | | ( ) ( ) ( ) | | ( ) { } | |

=
+ + + + =
1
0
1 , 1 ,
N
k
k T k
k x k u k x f k k u k x L N x J (4.11)
Ahora, definiendo
( ) ( ) | | ( ) ( ) ( ) | | 1 - N , 0, k , , 1 , K = + + = k u k x f k k u k x L H
k T k k
(4.12)
Reemplazando en (4.11) se tiene:
( ) | | ( ) ( ) ( ) ( ) | |
0
1
1
H k x k H N x N N x J
N
k
T k T
+ + + =

=
(4.13)
El diferencial de J se expresa segn:
( )
( ) ( )
( )
( ) ( )
( )
( )
( )
( )
( )
( ) 0
0
0
0
0 0
1
1
du
u
H
dx
x
H
k du
k u
H
k dx k
k x
H
N dx N
N x
J d
N
k
k
T
k
T

+
(

+
(

(4.14)
Para evitar el clculo del coeficiente dx(k) en funcin de la secuencia du(k),
se escoge la secuencia del multiplicador ( ) k dada por:
( )
( )
( )
( )
( )
( )
1 , , 0 ; 1 0 =

+ +

= =

N k
k x
f
k
k x
L
k
k x
H
k
k
T
k
T
k
T
K (4.15)
Sujeta a la condicin de borde
41
( )
( ) N x
N
T


= (4.16)
Ahora, rescribiendo (4.14) segn lo expresado en (4.15) y (4.16):
( )
( ) ( ) ( ) 0 0
1
1
dx k du
k u
H
J d
T
N
k
k
+

=
(4.17)
En donde
( ) k u
H
k

corresponde al gradiente de J con respecto a u(k)


manteniendo x(0) constante y cumpliendo la condicin dada por (4.9). Ahora, como x(0)
es dado, se tiene dx(0) = 0.
En un punto ptimo (mnimo local o global) se debe cumplir que J d sea
igual a cero para cualquier secuencia du(k). Lo cual solo se cumple si:
( )
0 =

k u
H
k
, k = 0, 1, , N-1 (4.18)
Finalmente, para encontrar una secuencia del vector de control u(k) que
produzca un valor estacionario en la medida de desempeo J, se debe resolver el sistema
dado por las siguientes expresiones:
| | ) ( ), ( ) 1 ( k I k x f k x
uc
k
= + (4.19)
( )
( )
( )
( ) k x
f
k
k x
L
k
k
T
k
T

+ +

= 1 (4.20)
( ) ( )
( )
( )
0 1 =

+ +

k u
f
k
k u
L
k u
H
k
T
k k
, k = 0, , N-1 (4.21)
Sujeto a las condiciones de borde para k = 0, y para k = N,
x(0) dado (4.22)
( )
( )
T
N x
N
(


=

(4.23)
42
El cual representa un problema con doble condicin de borde, en donde las
expresiones dadas por (4.19) y (4.20) estn acopladas (ya que de (4.21) se obtiene que
u(k) depende de ( ) k , el que a su vez, segn la expresin (4.20) depende de x(k) y
u(k)).
4.3 Optimizacin Numrica - Mtodo del Gradiente
Encontrar una solucin analtica a la gran mayora de los problemas
planteados de la forma vista en el captulo anterior no es fcil, ms an si los sistemas
involucrados son no lineales. Por este motivo existen diversos mtodos iterativos para
encontrar, ya sea de manera aproximada o exacta, una solucin al sistema planteado.
Dentro de este campo se pueden destacar la Programacin Dinmica y el Mtodo del
Gradiente.
En el desarrollo de esta tesis, en trminos prcticos, solo fue utilizado el
mtodo del gradiente por lo que solamente ste ser explicado. Informacin sobre
Programacin Dinmica puede ser encontrada en (Bertsekas, 2000).
El mtodo del Gradiente es una alternativa para resolver el sistema dado por
el conjunto de ecuaciones (4.19), (4.20), (4.21) y (4.23). Su particularidad es que las
ecuaciones que rigen la dinmica del sistema son resueltas de manera exacta en cada
iteracin, perturbando la variable de control en cada iteracin de modo de acercarse a la
solucin ptima. En otras palabras, el algoritmo simula la respuesta dinmica del
sistema variando la historia de la variable de control en cada una de las iteraciones, y el
efecto fsico que se produce en la optimizacin es visible en cada paso.
El mtodo comienza con la especificacin de las condiciones iniciales
(slo x(0)), y una trayectoria nominal para el control (u(k)). Se debe integrar la ecuacin
(4.19) desde t
0
a t
f
para obtener x
0
(k), vector que representa la trayectoria inicial para las
variables de estado. Al mismo tiempo, se evala la funcin de costo, las matrices de
sensibilidad F(k) y G(k), que corresponden a

y
u
f
x
f

respectivamente, los
gradientes del Lagrangiano (L
x
(k) y L
u
(k)). Luego, el vector adjunto es integrado hacia
43
atrs desde la condicin final para obtener
0
(k). Una vez obtenido
0
(k), se puede
determinar H
u
(k). En las primeras iteraciones H
u
(k) no estar cercano a cero, debido a
que la trayectoria inicial elegida para el control no es ptima. Luego, en la siguiente
iteracin la historia del control es perturbada por una funcin de H
u
(k) y el proceso se
repite hasta que se perciba que la solucin est lo suficientemente cerca del ptimo.

Una alternativa de perturbacin para la variable de control es:
T
i
i
i i
u
k H
k u k u
(

=
+
) (
) ( ) (
1

En donde
i
es un escalar. Este mtodo tambin se conoce como el
algoritmo steepest descendent. En la figura 4.3 se presenta el diagrama de flujos del
algoritmo.

Figura 4.3: Mtodo del Gradiente
Como conclusin, se quiere decir que en este captulo se ha dado una
introduccin a una rama del control automtico denominada control ptimo dinmico,
44
en donde el objetivo de control es expresado de forma cuantitativa. La estructura de
control es diseada para minimizar maximizar dicho objetivo. Se ha expuesto la forma
de plantear problemas y las condiciones de optimalidad. Finalmente, como mtodo de
solucin, se propone la utilizacin del mtodo del gradiente, el cul da una muy buena
aproximacin a punto ptimo.

45
V. CONTROL PTIMO DE FLUJOS DE ENERGA EN VEHCULOS
HBRIDOS (HEV)
Se pretende aplicar la teora expuesta en el captulo anterior a la
minimizacin del consumo de energa de las bateras en un vehculo hbrido,
particularmente a la camioneta LUV. En primer lugar, se exponen consideraciones
generales de diseo, desde el punto de vista del consumo energtico, aplicables a
cualquier tipo de vehculo. Luego, se plantea el modelo de optimizacin, se desarrollan
detalladamente las condiciones de optimalidad y finalmente se presentan los resultados
tras diversas simulaciones en MATLAB.
5.1 Reduccin del Consumo de Energa en Vehculos.
En primer lugar, si se habla de diseo de vehculos en general, es
fundamental conocer como se distribuye el consumo de energa. Es decir, la idea es
entender cmo los parmetros de diseo afectan al consumo energtico de un vehculo
con caractersticas determinadas y cunto afecta la variacin de cada uno de estos
parmetros al consumo total. Para ello se utiliza la siguiente ecuacin, la cual modela el
consumo energtico P
road
de un vehculo para condiciones de manejo dadas (Matthew et
al.).
aux accel aero hill roll road
P P P P P P + + + + = (5.1)
Para disminuir el consumo energtico del vehculo, se debe reducir la
potencia consumida, lo cual se logra disminuyendo la magnitud de cada uno de los
coeficientes que componen (5.1).
El trmino P
roll
corresponde a la potencia de rodadura, el cual esta dado por
la expresin (5.2). Donde m es la masa del vehculo en kg, g la aceleracin de gravedad
en m/seg
2
, V la velocidad en m/seg, C
rr
el coeficiente de resistencia de rodadura y la
inclinacin del camino en grados.
( ) cos =
rr roll
C V g m P (5.2)
46
El segundo trmino, P
hill
, corresponde a la potencia requerida por el vehculo
para subir un camino inclinado (5.3).
( ) sin V g m P
hill
= (5.3)
P
aero
afecta el consumo de potencia dado por la resistencia aerodinmica. En
donde, es la densidad del aire, A corresponde al rea frontal del vehculo, y C
d
es el
coeficiente de resistencia aerodinmica, el cual tiene que ver con el perfil del vehculo.
d aero
C V A P =
3
5 . 0 (5.4)
El consumo de potencia debido a la aceleracin esta dado por:
dt
dV
V m P
accel
= (5.5)
Finalmente, P
aux
corresponde a la potencia consumida en los sistemas
auxiliares (radio, luces, etc).
Desde el punto de vista de diseo, analizando las expresiones anteriores, se
puede notar que para reducir la potencia requerida por el vehculo, las variables que
pueden ser modificadas son: la masa, el rea frontal y el coeficiente de rodadura de los
neumticos. La figura 5.1(a) muestra una grfica de la potencia requerida por la
camioneta LUV segn la velocidad y la figura 5.1(b) muestra cunto afecta la reduccin
de cada uno de los parmetros a la potencia requerida.
Se concluye que, desde el punto de vista de diseo, la variable ms crtica a
una velocidad de 50 km/h o menor es la masa del vehculo, por lo que para lograr
vehculos ms eficientes, se debe trabajar fuertemente en reducir su peso. Sin embargo, a
velocidades mayores, el parmetro aerodinmico es el que ms afecta el rendimiento. A
modo de ejemplo, si se lograra reducir en un 20% el peso de la camioneta LUV, esto es
a 1900 Kg aproximadamente, lograramos cerca de un 15% de ahorro en energa a 50
km/hr. Sin embargo, para el desarrollo de esta tesis no se considerar ningn cambio en
el hardware del vehculo. Por lo que para lograr una mayor eficiencia en el sistema slo
se realizarn cambios en el modo de control segn la teora planteada en el captulo IV.
47

0
50
100
150
200
250
0 20 40 60 80 100 120 140 160 180 200
Velocidad [km/h]
P
o
t
e
n
c
i
a

d
e

T
r
a
c
c
i

n

[
k
W
]
P max [kW]
P nom [kW]
P [kW]

(a)
1.00
1.05
1.10
1.15
1.20
1.25
1.30
1.35
0% 10% 20% 30% 40% 50%
Reduccin en el Parmetro
E
c
o
n
o
m

a

d
e

P
o
t
e
n
c
i
a
Masa
Perd. por Rodadura
Aerodinmica

(b)
Figura 5.1: (a) Potencia requerida por la camioneta LUV vs velocidad; (b)
Mejora porcentual en el consumo de potencia de la camioneta vs reduccin de
parmetros de diseo (a 50 km/hr)
5.2 Planteamiento del Modelo
El objetivo es determinar una nueva modalidad de control, la cual, para un
recorrido especfico del vehculo, minimice la descarga de las bateras, teniendo en
consideracin que los ultracapacitores son slo una fuente temporal, por lo que al final
del recorrido, deben estar nuevamente cargados (Paganelli et al., 2002), (Delprat et al.,
2001), (Guezennec et al., 2003).
De la figura 2.10 se desprende que
BB bat load
P P P + = . Escribiendo la potencia
suministrada por las bateras en funcin de la potencia en la carga y la potencia
suministrada por el BuckBoost, se obtiene
BB load bat
P P P = . Considerando las
variables de estado del sistema como el estado de carga de las bateras (SOC
bat
) y el
estado de carga de los condensadores (SOC
uc
), se tiene que las ecuaciones que rigen la
dinmica del sistema son:
48
( ) T k
uc
P k
uc
SOC k
uc
SOC
T
bat
k
load
P k
BB
P k
bat
SOC k
bat
SOC
= +
+ = +
* ) ( ) 1 (
* * )) ( ) ( ( ) ( ) 1 (
(5.6)
Donde, SOC
bat
(k): Estado de carga de las bateras en el instante k; SOC
uc
(k):
Estado de carga de los ultracapacitores en el instante k; P
uc
(k): Potencia neta producida
por los ultracapacitores en el instante k (lado de baja); P
load
(k): Potencia del motor en el
instante k; P
BB
(k): Potencia suministrada por el convertidor Buck-Boost en el lado de
alta;
bat

: Eficiencia en la conversin de energa de las bateras; T: Tiempo de


muestreo.
La variable a minimizar corresponde a la descarga de las bateras, cuya
expresin est dada por:

=
=
1
0
* )) ( (
N
k
bat bat
T k I C O S J
&
(5.7)
En donde
bat
C O S
&
representa el consumo de energa de las bateras en el
instante k. Ahora, la potencia suministrada por el Buck-Boost en el lado de alta tensin
(lado de las bateras) expresada en funcin de la corriente y el voltaje de los
condensadores es:
)) ( ) ( ( * ) ( * ) ( ) ( * ) ( ) ( , k I k V k V k I k V k I k P
uc uc BB uc uc bat BB BB
= = (5.8)
donde,

( ) ( ) ( ) k I k V
uc uc BB
, : Eficiencia del convertidor Buck-Boost.
Se debe incorporar al modelo la restriccin ) 0 ( ) (
uc uc
SOC N SOC = , con lo
cual se pretende asegurar que los condensadores sean un sistema auxiliar temporal de
energa, por cuanto estos, al trmino del recorrido, deben estar nuevamente cargados.
Luego, el planteamiento del modelo de control ptimo es como sigue:
( ) | |

=
+ =
1
0
* )) ( ) ( ( ,
N
k
BB load bat uc
T k I k I C O S N SOC J Min
&
(5.9)
49
sujeto a:
( )
T k I k SOC V k I k SOC k SOC
T k I k V k I k SOC V k I
T k P k SOC k SOC
uc uc uc uc uc uc uc
bat uc uc BB uc uc uc uc
bat load bat bat
= +
+
= +
* )) ( ), ( ( * ) ( * ) ( ) 1 (
* * )) ( ), ( ( * ) ( ), ( * ) (
* * ) ( ) ( ) 1 (


Para fines prcticos, la expresin ( ) | | N SOC
uc
, que corresponde a la
restriccin de estado final para los condensadores, se ha tomado como el error
cuadrtico entre el estado inicial y final. Es decir:
( ) | | ( ) ( ) | |
2
0
uc uc uc
SOC N SOC N SOC =
Definiendo la variable de estado x(k) como: ( ) ( ) ( ) | |
T
uc bat
k SOC k SOC k x =
Por efectos de simplificacin, se considerar el conjunto motor inversor del
vehculo como una caja negra cuyos requerimientos de potencia son conocidos para un
recorrido dado, por lo cual no se puede influir sobre I
load
. Como se dijo con anterioridad
se cuenta con un vehculo elctrico con un programa de adquisicin de datos, por lo que
la corriente de carga para un recorrido especfico es conocida. Luego, la variable
bat
C O S
&
depender slo de la corriente suministrada por los condensadores, por lo que
se tendr ( ) ( ) k I C O S
uc bat
&
.
5.3 Desarrollo de las Condiciones de Optimalidad
Aplicando las condiciones de optimalidad desarrolladas en el capitulo IV
(expresiones 4.19 a 4.23) al modelo planteado en la ecuacin (5.9), se tiene:
| |
T k P
T k I k V k I k SOC V k I
k SOC k SOC T k C O S k I k x L
bat load
bat uc uc BB uc uc uc uc
bat bat bat uc
k

=
+ = =
* * ) (
* * )) ( ) ( ( * )) ( ) ( ( * ) (
) ( ) 1 ( * ) ( ) ( ), (
, ,


&
(5.10)
Por lo que, derivando con respecto a la variable de control:
50
( )
( ) ( ) ( ) ( )
( )
( ) ( )
( ) ( )
( ) ( ) ( )
( ) ( )
T
I
k I k V
k I k SOC V k I
T k I k V
I
k I k SOC V
k I
T k I k V k I k SOC V
I
T k C O S
k I
L
bat
uc
uc uc BB
uc uc uc uc
bat uc uc BB
uc
uc uc uc
uc
bat uc uc BB uc uc uc
uc
bat
uc
k

+ =


* *
) (
* ) ( *
* * ) ( *
) (
*
* * ) ( * ) (
*
) (
,
,
,
,
, ,



&
(5.11)
Ahora, en la ecuacin (4.20), se define
(
(
(

(
(
(

uc
bat
k
uc uc
bat bat
k
SOC
L
SOC
L
k
L
SOC
f
SOC
f
SOC
f
SOC
f
k
f
) (

) (
2 1
2 1
x x
(5.12)
Calculando cada uno de los trminos dados en (5.12),
0 0 1
2 1
=


bat
k
bat bat
SOC
L
SOC
f
SOC
f
(5.13)
( )
( )
( ) T
SOC
k I k V
k I k SOC V k I
T k I k V
SOC
k I k SOC V
k I
T k I k V k I k SOC V
SOC
k I
SOC
f
bat
uc
uc uc BB
uc uc uc uc
bat uc uc BB
uc
uc uc uc
uc
bat uc uc BB uc uc uc
uc
uc
uc


* *
)) ( ) ( (
* ) ( ) ( * ) (
* * )) ( ) ( ( *
) ( ) (
* ) (
* * )) ( ) ( ( * ) ( ) ( *
) (
,
,
,
,
, ,
1



(5.14)
( )
( )
T
SOC
k I k SOC V
k I
T k I k SOC V
SOC
k I
SOC
f
uc
uc
uc uc uc
uc
uc uc uc uc
uc
uc
uc


* *
) ( ) (
* ) (
* * ) ( ) ( *
) (
1
,
,
2

(5.15)
51
( )
( )
( )
( ) T
SOC
k I k V
k I k SOC V k I
T k I k V
SOC
k I k SOC V
k I
T k I k V k I k SOC V
SOC
k I
SOC
L
bat
uc
uc uc BB
uc uc uc uc
bat uc uc BB
uc
uc uc uc
uc
bat uc uc BB uc uc uc
uc
uc
uc
k


* *
)) ( ) ( (
* ) ( ) ( * ) (
* * )) ( ) ( ( *
) ( ) (
* ) (
* * )) ( ) ( ( * ) ( ) ( *
,
,
,
,
, ,



(5.16)
Reemplazando las expresiones obtenidas en (5.13) (5.16) en la (4.20), se
obtiene la condicin de optimalidad para
1
y
2
.
( ) ( )
( ) ( ) ( ) ( ) ( ) ( ) 16 . 5 15 . 5 * 1 14 . 5 * 1
1
2 1 2
1 1
ec ec k ec k k
k k
+ + + + =
= +


(5.17)
En donde ec(5.14), ec(5.15) y ec(5.16) corresponden a las expresiones
calculadas en las ecuaciones (5.14) (5.16) respectivamente.
La condicin final para lambda esta dada por (4.23), por lo que:
( ) ) 0 ( ) ( 2
) (
) (
2 uc uc
T
uc
SOC N SOC
N SOC
N =
(


=

(5.18)
La tercera condicin de optimalidad, dada por (4.21), corresponde a:
( )
( )
( ) T
I
k I k V
k I k SOC V k I
T k I k V
I
k I k SOC V
k I
T k I k V k I k SOC V
I
f
bat
uc
uc uc BB
uc uc uc uc
bat uc uc BB
uc
uc uc uc
uc
bat uc uc BB uc uc uc
uc

+ =

* *
)) ( ) ( (
* ) ( ) ( * ) (
* * )) ( ) ( ( *
) ( ) (
* ) (
* * )) ( ) ( ( * ) ( ) (
,
,
,
,
, ,
1



(5.19)
( )
( )
T
I
k I k SOC V
k I T k I k SOC V
I
f
uc
uc
uc uc uc
uc uc uc uc uc
uc

* *
) ( ) (
* ) ( * * ) ( ) (
,
,
2

(5.20)
Por lo que se obtiene
52
( ) ( ) 0 ) 20 . 5 ( 1 ) 19 . 5 ( * 1
1 1
= + + + +

*ec k ec k
I
L
uc
(5.21)
En donde ec(5.19) y ec(5.20) se refieren a las expresiones calculadas en
(5.19) y (5.20) respectivamente, adems
uc
I
L

est dado por la ecuacin (5.11).


En las ecuaciones anteriores, las expresiones para
uc
uc uc BB
uc
uc uc BB
SOC
k I k V
SOC
k I k V

)) ( ) ( (
y
)) ( ) ( ( , ,
fueron obtenidas numricamente a
partir de (3.3) y (3.6).
5.4 Solucin Numrica - Resultados
Se ha implementado en Matlab un programa de simulacin para el sistema
antes descrito (Anexo n 3). Para efectos de simular el vehculo elctrico lo que se ha
hecho es efectuar distintos recorridos de ciudad, obteniendo las corrientes requeridas y
generadas por el grupo motorinversor en cada instante de tiempo. Tal como se ha
dicho, esto ha sido posible debido a que se cuenta con el vehculo con las caractersticas
ya mencionadas y con un sistema de adquisicin de datos. Por lo cual, tal como se ha
dicho, el vehculo es visto como una caja negra que tiene requerimientos de potencia
conocidos en el tiempo.
Luego, para cada uno de los recorridos efectuados, se simul el sistema
segn (5.9), tomando como datos de entrada las corrientes de la carga en cada instante
de tiempo. Por otra parte, se conoce tambin el estado de carga inicial de las bateras y
de los condensadores.
El objetivo, tal como lo hemos planteado, es determinar la corriente ptima
que debe entregar el BuckBoost. Para comenzar a iterar con el mtodo del gradiente, se
debe fijar una historia de control nominal. En este caso la variable de control es I
uc
, la
cual, para la primera iteracin, se consider que es funcin de la corriente de carga. Una
vez fijados estos parmetros se resolvi el sistema planteado por las ecuaciones (4.19) a
(4.23), obtenindose los resultados que se muestran en la figura 5.2. En ella se compara
53
la estrategia de control ptimo simulada con la de control de carga propuesta en una
primera instancia. En primer lugar, se grafican las corrientes en el lado de baja tensin
del convertidor Buck-Boost. La segunda grfica corresponde a la evolucin del estado
de carga de los ultracapacitores. Finalmente, se muestra la evolucin del estado de carga
de las bateras. Es importante notar que, observando esta ltima grfica, la descarga de
las bateras durante el recorrido es mucho ms pareja, asemejndose fuertemente a una
lnea recta.
Se observa que se cumple la restriccin final propuesta en el algoritmo, es
decir que el estado de carga inicial de los condensadores sea igual al final. De este
modo, se ha logrado obtener una corriente de referencia para el convertidor BuckBoost
que disminuye notablemente la descarga de las bateras. Para este recorrido especfico,
se disminuy la descarga de las bateras en un 7.2%. Se procedi de la misma forma
para un universo de 30 recorridos distintos (Anexo n 4), y se obtuvo una mejora en
promedio de 4.9% comparado con la estrategia de control de carga convencional.
-200
-100
0
100
200
Corriente en los Ultracapacitores
I
uc
Control de Estado de Carga
I
uc
Control Optimo
200
250
300
350
Estado de Carga de los Ultracapacitores
SOC
uc
Control de Estado de Carga
SOC
uc
Control Optimo
0 500 1000 1500 2000 2500 3000 3500 4000
1.6
1.62
1.64
1.66
x 10
4
Estado de Carga de las Baterias
Tiempo (segundos)
SOC
bat
Control de Estado de Carga
SOC
bat
Control Optimo

Figura 5.2: Resultado control ptimo sistema BuckBoost lado de baja tensin
54
En la figura 5.3 se muestran los resultados obtenidos, orientados al lado de
alta tensin del convertidor Buck-Boost. Se puede observar que la variabilidad de la
corriente de la batera es menor para esta nueva estrategia. Con ello, se est ms cerca
del caso en que stas entregan la potencia media del recorrido.
0 500 1000 1500 2000 2500 3000 3500 4000
-150
-100
-50
0
50
100
150
200
C
o
n
t
r
o
l

d
e

E
s
t
a
d
o

d
e

C
a
r
g
a
I
bat
I
load
I
BB
0 500 1000 1500 2000 2500 3000 3500 4000
-200
-100
0
100
200
C
o
n
t
r
o
l

O
p
t
i
m
o
Tiempo (segundos)

Figura 5.3: Resultado control ptimo sistema BuckBoost lado de alta tensin
A modo de conclusin, se quiere hacer notar que se ha logrado plantear,
desarrollar y resolver, un modelo de control ptimo para un vehculo hbrido que, desde
el punto de vista energtico, minimiza la descarga de las bateras para un recorrido
especfico. Ahora bien, desde el punto de vista prctico no es posible conocer a priori
cual va a ser el recorrido que efectuar el vehculo, y cules sern las condiciones en que
ste lo realizar, esto es, desde el nmero de detenciones, velocidad y aceleracin, por lo
que el sistema se podra considerar aleatorio. Sin embargo, tras efectuar una gran
cantidad de recorridos en condiciones de ciudad, es posible suponer que, luego de
simular particularmente cada uno de ellos y promediar los resultados, hemos logrado
minimizar el valor esperado de la descarga en las bateras.
55
VI. ENTRENAMIENTO DE REDES NEURONALES PARA
APROXIMAR EL CONTROL PTIMO
Ya ha sido obtenida una forma matemtica (iterativa) de generar corrientes
de referencia ptimas para el convertidor Buck-Boost, de modo de minimizar la
descarga de las bateras (Captulo V). Sin embargo, hay que pensar en desarrollar el
sistema de modo que este funcione en tiempo real. Para ello, se debe encontrar un
mtodo para realizar la optimizacin del sistema de una manera rpida, eficiente y
aplicable a ser programada en un microprocesador. Dentro de esta problemtica, el
campo de la identificacin de sistemas aparece como una buena solucin.
6.1 Introduccin a la Identificacin de Sistemas
La identificacin de sistemas corresponde a un campo de la ingeniera en
donde el objetivo es inferir un modelo de un sistema dinmico a partir de una serie de
mediciones de ste. Otra aplicacin importante corresponde a la aproximacin de
funciones no lineales desconocidas (Ljung, 1999).

Figura 6.1: Sistema dinmico con entrada x(t) y salida y(t)
En la figura 6.1, llamemos t a un mltiplo de la frecuencia de muestreo.
Segn lo anterior, y(t) representa la salida actual, e y(t-1) corresponde a la salida
observada un instante de muestreo anterior. Si se asume que la salida del sistema
dinmico puede ser descrita como funcin de entradas y salidas anteriores, se tiene:
( ) ) ( , ), 1 ( ), ( , ), 1 ( ) ( m t u t u n t y t y F t y = K K
Sistema
Entrada, x(t)
Salida, y(t)
56
Por lo que a priori no es necesario un conocimiento fsico. Aplicaciones
tpicas corresponden al campo de la simulacin, prediccin, deteccin de fallas, y diseo
de sistemas de control. En la figura 6.2, x
i
corresponde al vector de entrada, d
i

corresponde a la salida deseada del sistema e y
i
es la salida del modelo. De estas dos
ltimas seales se obtiene un error, e
i
, que es utilizado para el ajuste de los parmetros
del modelo (etapa de entrenamiento).

Figura 6.2: Diagrama de Bloques Identificacin de Sistemas.
Un conocimiento de la dinmica del sistema puede ayudar en gran medida a
la tarea de identificacin. Algunos puntos importantes de conocer pueden ser: el orden
del sistema, si la dinmica es lenta o rpida, estabilidad, rango de operacin, retardos y
grado de no linealidad.
El siguiente esquema de la Figura 6.3 muestra el procedimiento a seguir en
la tarea de identificar un modelo para un sistema dinmico.

+
-
e
i
d
i
y
i
x
i
Funcin
Desconocida
Modelo
57

Figura 6.3: Identificacin de sistemas - procedimiento
En la etapa de experimentacin, el objetivo es recolectar datos que describan
el comportamiento del sistema en un amplio rango de operacin, esto es, tanto en
amplitud como frecuencia. La idea es variar la entrada y observar el impacto producido
en la salida. Estos datos entrada-salida sern utilizados ms tarde en el proceso de
entrenamiento y validacin del sistema. Luego de esto, en la etapa de seleccin de la
estructura del modelo, se debe contar con un conjunto de modelos candidatos. Estos
pueden ser modelos lineales (ARX), modelos no-lineales (Redes Neuronales), etc. en
una amplia gama de topologas o configuraciones. Una vez que se cuenta con un
conjunto de modelos distintos, sigue la etapa de estimacin, en la cual es escogido un
modelo particular y es entrenado. Esto es, se ejecuta un algoritmo por medio del cual
se logra minimizar un cierto criterio, tpicamente el error cuadrtico medio entre la seal
deseada y la estimada por el modelo. Finalmente, en la etapa de validacin, se le
presentan al modelo datos que no fueron utilizados en la etapa de entrenamiento. La
tarea finaliza si el resultado en la prediccin, para este nuevo conjunto de datos es
bueno, en trminos del error cuadrtico medio en la prediccin.
Experimento
Seleccionar la Estructura
del Modelo
Estimar el Modelo
Modelo Aceptado
Modelo No
Aceptado
Validacin
58
6.1 Introduccin a Redes Neuronales Multicapa
El desarrollo de la inteligencia artificial (AI) ha sido notable en la ltima
dcada. Su importancia radica en la capacidad de representar o emular el conocimiento
humano, es decir, memorizar, adquirir conocimiento, percibir y tomar decisiones
inteligentes. Dentro de este campo se encuentra, la aplicacin de redes neuronales (NN)
a la identificacin de sistemas, control de procesos, prediccin, diagnstico, etc. En el
rea de la electrnica de potencia, la utilizacin de NN ha logrado grandes avances.
(Bose, 2001)
Una Red Neuronal puede ser definida como un sistema de elementos simples
de procesamiento, neuronas, que son conectadas en una red. La funcin de la red esta
determinada por su arquitectura, la magnitud de los pesos que conectan las neuronas y
el tipo de elemento de procesamiento (neuronas).
6.1.1 Concepto de Neurona
La neurona es la unidad bsica de procesamiento. A sta llega un nmero
finito de entradas, las cuales son ponderadas por importancia o pesos. Luego se suma
cada una de las ponderaciones, y el resultado es utilizado como argumento para evaluar
una funcin especfica denominada funcin de activacin (Figura 6.4).
Expresando matemticamente, se tiene:
( )
|
|
.
|

\
|
+ = =

=
0 ,
1
, i
n
j
j j i i i i i
f h f y (6.1)
Las entradas a una neurona pueden ser salidas de otras unidades de
procesamientos (neuronas) o simplemente entradas externas. El trmino
0 i
se
denomina bias y puede ser interpretado como el peso correspondiente a una entrada
de magnitud constante igual a 1. Finalmente, la funcin de activacin puede tomar
cualquier forma. Sin embargo, las ms utilizadas corresponden a funciones monotnicas.
La figura 6.5 muestra las funciones de activacin ms utilizadas.
59

Figura 6.4: Esquema de una Neurona
En aplicaciones de identificacin de sistemas, las funciones de activacin
ms utilizadas son las lineales y tangente hiperblica (notar que esta ltima, por medio
de una transformacin lineal, es similar a la sigmoidal). (En aplicaciones de clasificacin
ms comn ver funciones de activacin tipo signo).
(a) (b)
(c) (d)
Figura 6.5: Funciones de activacin. (a) lineal; (b) tangente hiperblica; (c)
sigmoidal; (d) signo
5

5 i

i
f
h
i
y
i
0 i

1

2

3

4

2 i

60
6

f
1

f
2

f
3

f
4

F
1

F
2

1
1

2

3

4

5

1
w
4, 0
w
1, 6
W
1, 1
W
2, 0
1
y
2
y
6.1.2 Redes Neuronales Multicapa
Las neuronas pueden ser combinadas en redes de diversas formas. Uno de
los libros introductorios ms importantes en este tema es: Haykin, S., Neural Networks:
A Comprehensive Foundation (Haykin, 1998). La arquitectura ms utilizada es el
Perceptron Multicapas (MLP), en la cual las neuronas son ordenadas en capas. Las
entradas a cada una de estas unidades de procesamiento estn dadas por salidas de otras
neuronas de la capa anterior, o entradas externas. Esta arquitectura es conocida en la
literatura como feedforward network cuyo esquema es presentado en la figura 6.6.



Figura 6.6: Esquema de una feedforward network de seis entradas, dos
capas intermedias y dos salidas.
La segunda capa de neuronas, en la figura 6.6, es conocida como output
layer, ya que es sta la que produce la salida de la red. La primera capa es conocida
como hidden layer, debido a que es una etapa intermedia entre las entradas externas
(
6 2 1
, , , K ) y la salida. La red presentada se dice que es fully conected debido a
que todas las entradas y unidades de una capa estn conectadas con todas las unidades de
la capa siguiente.
61
Matemticamente, la red presentada en la figura 6.6 se puede expresar como
sigue:
( ) | |
(
(

+
|
|
.
|

\
|
+ = =

= =
h
n
j
i j
n
l
l l j j j i i i i
W w w f W F g t y
1
0 , 0 ,
1
, ,
,

(6.2)
En (6.2), representa el vector de parmetros, que contiene todos los
parmetros ajustables de la red (pesos y bias, {
j i l j
W w
, ,
, }).
6.1.3 Eleccin de la arquitectura de la Red
Antes de entrenar una red neuronal deben ser resueltas algunas interrogantes.
Qu tipo de relacin puede ser aprendida por una red multicapa?, Cuntas capas
intermedias debe tener la red?, Cuntas neuronas se deben incluir en cada una de las
capas? y Qu funcin de activacin se utilizar?
Las redes neuronales (perceptron multicapas) pueden ser utilizadas para
efectuar cualquier relacin no lineal entre un espacio de entrada y uno de salida
(teorema de aproximacin universal de funciones - Anexo N 5). Por lo anterior
cualquier funcin no lineal, continua, puede ser aproximada con una precisin deseada
utilizando una red cuya capa intermedia posea neuronas de funcin de activacin
sigmoidal (o tangente hiperblica) y una capa de salida con neuronas lineales (Cybenko,
1989). Luego, Barron (1993) realiz un estudio sobre el nmero de neuronas que debe
tener cada capa. Sin embargo, esto es difcil de llevar a la prctica (Barron, 1993).
Segn el resultado anterior, no es necesaria una red de ms de dos capas
(capa intermedia con neuronas sigmoidales, y capa de salida con neurona lineal). Sin
embargo este resultado no es totalmente cierto, y el error de aproximacin puede ser
disminuido considerablemente si se utilizan arquitecturas ms complejas. Ahora, si se
piensa en una implementacin prctica, arquitecturas ms complejas significan un mayor
tiempo de procesamiento, se dificulta el entrenamiento y se requiere un conjunto de
datos ms grande para la etapa de entrenamiento y validacin.
62
6.2 Entrenamiento de Redes Neuronales
Consiste en utilizar parte de los datos obtenidos en la etapa de
experimentacin, para intentar obtener el mejor modelo a partir de un conjunto de
candidatos. Generalmente, esta etapa requiere de un gran trabajo computacional, pero
suele ser la ms simple dentro del proceso de identificacin, ya que no es muy complejo
implementar un algoritmo de entrenamiento, y como alternativa, existen softwares ya
implementados en forma de Toolbox.
El problema de entrenamiento puede ser planteado, de manera ms formal,
de la siguiente forma. Dado un conjunto de datos,
( ) ( ) | | { } N T t y t u Z
N
, , 1 , , K = =
y un conjunto de modelos candidatos
( ) ( ) ( ) | | ( ) t e t g t e t y t y + = + = , /
El objetivo del entrenamiento es determinar una transformacin que lleve
desde el espacio de los datos, al espacio de los parmetros que determinan el modelo, es
decir,

N
Z , con lo cual se obtiene un modelo cuyas predicciones estn, segn algn
criterio, cerca de las salidas reales del sistema (o deseadas). El criterio ms utilizado en
estos casos es el error cuadrtico medio, el que est dado por la siguiente expresin:
( ) ( ) ( ) | | ( )

= =
= =
N
t
N
t
N
N
t
N
t y t y
N
Z V
1
2
1
2
,
2
1
/
2
1
, (6.3)
Este mtodo se conoce en la bibliografa como Prediction Error Method
(PEM) (Ljung, 1999) y el objetivo es minimizar la suma de un cierto criterio, en este
caso del error cuadrtico medio, durante un periodo de tiempo. Con este planteamiento,
el PEM corresponde a un estimador de mxima verosimilitud suponiendo que la
distribucin de la seal del error, e(t), es Gaussiana.
Las principales caractersticas de este mtodo son: i) es relativamente
simple, ii) se puede obtener una regla para actualizar los pesos y iii), el conocimiento de
63
la funcin de distribucin del ruido es de poca importancia. En la prctica, se pueden
obtener buenos modelos, incluso si la distribucin del ruido no es Gaussiana.
Luego, tal como se ha dicho, el objetivo es encontrar los pesos de la red,

,
que minimicen el criterio dado en (6.3). Por lo que:
( )
N
N
Z V , min arg



=
Por lo que estamos en presencia de un problema de optimizacin, sin
restricciones, que se asemeja en cierta forma a los planteados en el capitulo IV.
Planteando la expansin de Taylor (de segundo orden) del criterio dado por (6.3) en
*
,
se tiene:
( ) ( ) ( ) ( ) ( ) ( )( )
* * ' ' * * ' * *
,
2
1
, , , + + =
N
N
T
N
N
T
N
N
N
N
Z V Z V Z V Z V
En donde el Gradiente de define como:
( ) ( )
( )
*
* ' *
,
,


=
= =
d
Z dV
Z V G
N
N N
N

y la derivada de segundo orden, el Hessiano, se define como:
( ) ( )
( )
*
2
2
* ' ' *
,
,


=
= =
d
Z V d
Z V G
N
N N
N

En el mnimo, es decir, cuando
*
= se debe cumplir que el Gradiente sea
igual a cero, y que la matriz Hessiana sea definida positiva.
Para fines prcticos la bsqueda de un mnimo, tal como se expuso en el
capitulo IV, debe comenzar a partir de un valor inicial para el vector de parmetros ,
0
, el cual es ajustado de manera iterativa por el mtodo de entrenamiento de la
siguiente forma:
i i i i
f =
+1

64
En donde
i
especifica el valor de los parmetros en la iteracin actual,
i
f
es la direccin de bsqueda, y
i
representa el tamao del paso de bsqueda.
Durante el proceso de entrenamiento se debe probar para distintas
condiciones iniciales, ya que estos criterios no garantizan la convergencia a un punto
ptimo global.
Existen varios algoritmos para realizar la bsqueda. Ellos difieren
bsicamente en la forma en que son escogidas la direcciones de bsqueda y el paso
(
i
f ,
i
). Se clasifican en:
Mtodos de Primer Orden: Utilizan slo la informacin proveniente del
Gradiente. En la literatura se conocen como Mtodo del Gradiente Steepest Decent
(similar al descrito en la seccin 4.3). Una implementacin particular es conocida como
Back-Propagation, el cual es uno de los algoritmos ms utilizados en el entrenamiento
de redes neuronales.
Mtodos de Segundo Orden: Estos utilizan, aparte de la informacin
proveniente del Gradiente, la derivada de segundo orden (Hessiano) o una aproximacin
de ste. Por enumerar algunos, podemos encontrar el Mtodo de Newton, de Gauss-
Newton, pseudo-Newton y el Levenberg-Marquardt. Este ltimo es altamente
recomendado debido a su convergencia rpida y robustez.
Para profundizar ms en la forma de proceder de cada uno de los mtodos, se
puede revisar Haykin, 1998 y Norgaard, 2000.
6.3 Resultados de la Aproximacin de la Funcin de Control ptimo
En una primera etapa se procedi a resolver numricamente el sistema de
optimizacin planteado para un universo de 30 recorridos de ciudad, y con ello se
obtuvieron los datos de entrada y salida necesarios.
Como datos de entrada a la red, se utiliz la corriente de la carga (I
load
), la
potencia de la carga (P
load
), la velocidad del vehculo (v), y la energa cintica de ste
65
(E), todas en los instantes (k) y (k-1). La salida de la red est dada por la corriente
ptima que deben entregar los ultracapacitores (I
uc
). Para entrenar la red se utiliz el
algoritmo LevenbergMarquardt, el cual se caracteriza por su convergencia rpida y
robustez. Luego, para definir la arquitectura ptima de la red, se han utilizado algoritmos
de Podar, en particular, se utiliz el mtodo de Optimal Brain Surgeon (OBS)
(Norgaard, 2000). En trminos prcticos de implementacin y programacin, se utiliz
el Toolbox de MATLAB desarrollado por Nrgaard, M. (Tech. Report 00-E-891).
Finalmente, para validar la red se analiz el error cuadrtico medio. Del universo de 30
recorridos, 10 de ellos fueron escogidos como datos de entrenamiento y 20 como datos
de validacin. En la figura 6.7 se muestra la arquitectura de la red obtenida. Se
determin un total de 32 parmetros (pesos), con un nmero de 4000 datos de cada serie
de entrenamiento, por lo que se cuenta con una razn de 125 datos por parmetro a
determinar. Se obtuvo un error rms de 0.09 [A] en la aproximacin. Considerando que la
corriente media es 37.2 [A], se tiene un error en la estimacin de 0.24%. En el Anexo
N 6 se exponen los pesos obtenidos.

Figura 6.7: Esquema de la Red Neuronal Entrenada
I
load
(k)
I
load
(k-1)
P
load
(k)
P
load
(k-1)
v (k)
v (k-1)
E (k)
E(k-1)
Bias (+1) Bias (+1)
PI
I
uc ref
I
uc medida
PWM
Duty
I
load
(k)
I
load
(k-1)
P
load
(k)
P
load
(k-1)
v (k)
v (k-1)
E (k)
E(k-1)
Bias (+1) Bias (+1)
PI
I
uc ref
I
uc medida
PWM
Duty
66
Tal como se muestra en la figura 6.7, la aproximacin de la corriente ptima
entregada por la Red Neuronal ser utilizada como referencia para un control PI de
corriente, en el lado de baja tensin del Buck-Boost. En la figura 6.8, se muestra el
resultado de uno de los datos de validacin
0 500 1000 1500 2000 2500 3000 3500 4000
-150
-100
-50
0
50
100
150
tiempo (segundos)
Resultado de la Estimacin
C
o
r
r
i
e
n
t
e

[
A
]
I
uc

opt
Prediccin

Figura 6.8: Resultados Simulacin de la Red para un recorrido especfico
A modo de conclusin se tiene que, como resultado del entrenamiento, se
obtuvo un sistema capaz de generar las corrientes ptimas obtenidas por el mtodo
expuesto en el captulo V con un error rms de 0.09. Considerando que la corriente media
es 37.2 [A], se tiene un error en la estimacin de 0.24% (Detalle de tablas en Anexo N
7).
67
VII. IMPLEMENTACIN PRCTICA
7.1 Introduccin
Para la implementacin del sistema de control propuesto (figura 6.7), que
consta de una red neuronal para la elaboracin de corrientes de referencia y un control PI
de corriente operando a 12 kHz, existen ciertas caractersticas que hacen de los
microprocesadores herramientas especialmente tiles. Algunas de estas caractersticas
son:
Capacidad de generar mltiples seales PWM a alta frecuencia.
Procesamiento veloz de datos pudindose implementar algoritmos
avanzados.
Posibilidad de implementar variadas tareas en un mismo elemento, tareas
de control, comunicaciones, etc.
Alta integracin, es decir posibilidad de realizar soluciones con un mnimo
nmero de componentes.
Soluciones flexibles que permiten modificaciones futuras a bajo costo solo
mediante cambios de software.
Existen dos grandes familias de microcontroladores, por un lado se
encuentran los microprocesadores de uso general, y por otro, los llamados procesadores
digitales de seales o DSP. Los DSP tienen aproximadamente el mismo nivel de
integracin que los microprocesadores de uso general y trabajan a frecuencias de reloj
similares, pero en tareas especficas de procesamiento de seales, los DSP pueden
realizar tareas dos a tres veces ms rpido debido a la optimizacin de su arquitectura
orientada a estas tareas especficas (Lilein, 1996). Algunas caractersticas especiales de
los DSP frente a los microprocesadores de uso general son:
Arquitectura de la ALU (Arithmetic Logic Unit)
Incorporacin de unidades especiales (como multiplicadores)
68
Ciclos de instruccin regulares (similar a la arquitectura RISC)
Capacidad de procesamiento paralelo
Bus de datos con arquitectura Harvard
La arquitectura Harvard tiene dos buses de memoria separados. Eso permite
realizar dos accesos simultneos a memoria. La arquitectura Harvard original posee un
bus dedicado al acceso a instrucciones, mientras otro bus est disponible para el acceso a
datos (operandos). Esto en el caso de los DSP no es adecuado pues generalmente las
operaciones se realizan sobre dos datos por lo que en ocasiones es utilizado el bus de
programas para obtener datos. Esta es la arquitectura conocida generalmente como
Harvard modificada.
La arquitectura clsica de los microprocesadores de uso general es la
llamada arquitectura de Von Neuman, la cual hace uso de slo un bus de memoria. La
mayor ventaja de esta arquitectura es que es ms econmica y requiere de menos
conexiones entre la ALU y la memoria.
Existe en el mercado una amplia gama de microprocesadores y DSPs que
ofrecen estas caractersticas, siendo algunos especialmente diseados para su utilizacin
en tareas de control industrial y de motores, los que se analizaron para la seleccin
descrita a continuacin.
7.2 Caractersticas y seleccin del Microcontrolador
7.2.1 Seleccin del Microprocesador
Se opt por utilizar la plataforma de procesadores DSP de la empresa Texas
Instruments, en particular su familia de la serie 2000, principalmente porque este
procesador ya estaba siendo utilizado en el sistema de control del convertidor Buck-
Boost, por lo que de implementar la red neuronal en la plataforma ya existente no
implicara ningn cambio en el hardware. Adems, este procesador presenta una serie de
caractersticas especialmente diseadas para las aplicaciones de control digital. Entre las
69
caractersticas fundamentales analizadas se encuentran la velocidad de procesamiento,
incorporacin de conversores anlogo digitales de alta velocidad y resolucin,
generacin de salidas de modulacin de ancho de pulso (PWM) y capacidad de realizar
operaciones de multiplicacin por hardware (Tabla 7.1).
Tabla 7.1: Caractersticas del microprocesador TMS320F241
Texas Instruments
TMS320F241
Procesador 16 bits
Frecuencia de Operacin 20 Mhz
Memoria de Programa 8k Flash
Memoria de Datos 544 bits
ADC 8 canales de 10 bits
Tiempo conversin 1,7 us
Timers 2 de 16 bits
Comparadores 2
Perifericos SCI, SPI
Puertos I/O 26

La principal desventaja de este procesador es el procesamiento serie.
7.2.2 Caractersticas del DSP TMS320F241
En la figura 7.1 se muestra el diagrama funcional del microprocesador
TMS320F241. Se observan los distintos bloques que se comentarn a continuacin
(Texas Instruments, SPRU276C, 2000), (Texas Instruments, SPRU160C, 1999).
El diagrama funcional proporciona una descripcin de cada componente del
DSP, de sus interconexiones internas y las conexiones hacia el mundo exterior. El
procesador se puede dividir en tres grandes reas funcionales: el ncleo del DSP (unidad
de procesamiento), las memorias internas y los perifricos. Se destaca que el procesador
en cuestin posee una arquitectura Harvard de 16 bits con tres buses independientes para
datos, programas y manejo de perifricos. Esto hace posible efectuar lecturas de datos y
programas al mismo tiempo. Lo anterior, sumado a la existencia de un pipeline de
70
cuatro niveles, permite que casi todas las instrucciones sean ejecutadas en un solo ciclo
de reloj, que corresponde a 50 [ns] o lo que es equivalente a una tasa de 20 MIPS
(Million Instructions per Second).

Figura 7.1: Diagrama Funcional del DSP TMS320F241
La CPU de este procesador posee las siguientes caractersticas: tiene un
corredor (shifter) de escalamiento de 16 bits, una unidad de multiplicacin de 16x16
71
bits, una unidad central lgica-aritmtica de 32 bits y un acumulador tambin de 32 bits.
El diagrama de la CPU se muestra en la Figura 7.2, en la que se ilustran las
interconexiones entre las distintas unidades componentes de ella.

Figura 7.2: Diagrama Funcional de la CPU
Dentro de los perifricos se encuentra el bloque de pines de entrada/salida.
Para el caso del DSP utilizado este est compuesto por 26 pines, los que adems
72
comparten sus funciones con otros perifricos. Para el control de estos pines existen dos
registros que son el I/O Mux Control Register y el I/O Port Data and Direction
Register.
El mdulo de conversores anlogo digitales est conformado por un
conversor de 10 bits que incorpora un circuito de sample-and-hold. Un total de ocho
canales anlogos estn disponibles mediante un multiplexor 8 a 1. El tiempo mximo de
conversin es de 1[us] y los voltajes de referencia con niveles de 0 y 5 Volts son
suministrados externamente. Este mdulo posee la capacidad de realizar dos
conversiones en forma pseudo-simultnea con lo que se logra obtener velocidades
mximas de conversin de dos adquisiciones en 1,7[us] y con una sola instruccin de
inicio de conversin.
Otro de los perifricos es el mdulo de manejo de eventos (EV2), en el que
se encuentran los timers de uso general, unidades comparadoras y de PWM, unidades de
captura y de cuadratura. Finalmente el procesador incluye tres bloques de comunicacin,
que son el SCI o de comunicacin serial asncrona, el SPI o serial de alta velocidad y el
mdulo de comunicacin CAN (controller area network).
7.3 Software del Controlador
Lo que se ha hecho en este trabajo es modificar el software ya existente en el
sistema Buck-Boost. Se eliminaron las partes del programa que no se aplican en este
desarrollo; tarea que result bastante complicada, ya que no es fcil analizar un
programa realizado por otra persona, ms an si el lenguaje utilizado es assembler.
Adems, haba que mantener el protocolo de comunicacin por el sistema de monitoreo.
Una vez eliminadas todas las partes que no se consideraban tiles para la
nueva aplicacin, lo que se hizo fue agregar un bloque en forma de caja negra, el cual
recibe como entradas las variables ya calculadas por el programa, y su salida
corresponde a la referencia de corriente a utilizar por el control PI.
73
Se opt por realizar el desarrollo del software utilizando lenguaje de bajo
nivel (assembler). Esto debido a que as es posible obtener rutinas ms rpidas y
eficientes que al utilizar compiladores en base a lenguajes de alto nivel como C. Si bien
el tiempo de desarrollo es mayor que en los lenguajes de alto nivel, en la presente
aplicacin las ventanas de tiempo para realizar los clculos, especialmente los referentes
a la red neuronal, son limitados, por lo que es fundamental optimizar las rutinas con
objeto de hacerlas de ejecucin lo ms rpida posible.
Para compilar el programa se utiliz el paquete de software CodeComposer,
que adems ofrece la posibilidad de realizar simulaciones de las rutinas compiladas
facilitando el debugging. Por otro lado, para programar la memoria flash del DSP, se
utiliza la comunicacin serial entre ste y el computador mediante la herramienta
BOOTLOADER. Este es un software residente en el DSP que permite su
programacin.
En cuanto a la arquitectura del software diseado, se opt por utilizar un
esquema de interrupciones a un ciclo dummy o de espera, al cual se llega despus de
haber realizado las inicializaciones necesarias al sistema. Por tanto, el software est
dividido en seis grandes bloques o mdulos, que son:
1. Mdulo de Inicializacin del Sistema.
2. Mdulo de Verificacin de Fallas.
3. Mdulo de Interrupcin de Timer.
a. Adquisicin de Variables.
b. Mdulo de Clculo de Corriente de Referencia (Red Neuronal)
c. Mdulo de Control de Corriente.
d. Mdulo de Verificacin de Variables de Control.
4. Mdulo de Lectura del Ah Meter.
5. Mdulo de Comunicacin Serial.
74
6. Mdulo de Datos (Pesos de la Red, Tabla de tanh)
Como se dijo anteriormente, el alumno slo hizo cambios al software ya
existente eliminando una parte importante de l y agregando el mdulo correspondiente
a la generacin de seales de referencia para el control PI de corriente. Especficamente
los mdulos desarrollados fueron el 3.a, 3.b y 6 de la lista anterior.
A continuacin se describen de manera ms detallada algunos de los
mdulos del programa, especficamente los ms relevantes para el desarrollo del sistema
de optimizacin.
7.3.1 Mdulo de Inicializacin del Sistema
El primer mdulo es bsicamente una inicializacin de variables y ajuste de
parmetros de funcionamiento del DSP. Este mdulo se ejecuta slo una vez al
momento de energizar el sistema.
En la Figura 7.3 se presenta un diagrama de bloques que resume las
principales acciones que se realizan durante la ejecucin de este mdulo. Una vez
finalizado, el microprocesador queda en un loop de espera, del cual saldr slo cuando
reciba alguna interrupcin, ya sea de timer o bien por la llegada de algn dato a su
puerto serial.
Cabe destacar que en la configuracin de interrupciones, se habilitan cuatro
de los seis niveles disponibles. Estos corresponden a: interrupcin por recepcin de un
dato a travs del puerto serial, interrupcin por trmino del perodo del timer ajustado a
12 [kHz] (frecuencia de conmutacin de la PWM), interrupciones externas para detectar
falla en alguno de los IGBT e interrupciones de captura para detectar pulsos
provenientes del medidor de Ah.
75

Inicio
Seteo de Constantes
Declaracin de
Variables
Inicializacin de
Variables
Configuracin de
Interrupciones
Deshabilitacin
Watchdog Timer
Configuracin de
Perifricos
LOOP
(Espera de interrupciones)
Fin Inicializaciones

Figura 7.3: Diagrama de Bloques Modulo 1
7.3.2 Mdulo de Interrupcin de Timer
En esta parte del programa se realizan todas las tareas de control del sistema.
En primer lugar se adquieren las seales necesarias, estas son: voltaje de las bateras,
voltaje de los condensadores, corriente en los condensadores (lado de baja tensin del
Buck Boost) y velocidad del vehculo. Posterior a esto, para evitar las posibles
perturbaciones provenientes de la medicin del rizado de la corriente, sta es filtrada.
Luego, basado en el valor del voltaje de los condensadores, es calculada la
carga de stos. Para ello se debe corregir el efecto de la ESR (resistencia serie de los
condensadores, ESR = 132 [m]) en la medicin de voltaje.
Una vez que se ha terminado de adquirir y procesar las seales, se verifica la
frecuencia de muestreo de la red neuronal, 11 Hz, Este valor fue escogido debido a que
los datos utilizados para su entrenamiento fueron adquiridos con esa frecuencia. Si se
76
cumple el tiempo de muestreo, se procede a cargar los datos en el buffer de entrada a la
red. Se debe calcular la potencia elctrica consumida por el vehculo (
2
load
I ) y su energa
cintica (
2
v k ).
Una vez que se tienen todos los datos de entrada a la red, se procede a
calcular cada una de las neuronas de la capa intermedia. La parte ms complicada en este
punto fue lograr una buena aproximacin para la funcin no lineal, tangente hiperblica,
con un bajo requerimiento computacional (tiempo de procesamiento). Esto fue
solucionado guardando una tabla de 255 valores de la funcin muestreada, e
interpolando entre valores intermedios.

Figura 7.4: Interpolacin de datos de tabla.
Es importante recalcar que el procesador utilizado es de punto fijo. En
muchas partes del programa fue necesario utilizar nmeros decimales, por lo que para
representarlos se debe optar por una representacin numrica decimal de punto fijo. Este
formato es conocido como formato Q(N) (Anexo N 8).
La figura 7.5 ilustra el error porcentual obtenido tras el cmputo de la
tangente hiperblica.
x
i
x x
i+1
y
i+1
y
y
i

( )
i i
i i
i
i
y y
x x
x x
y y

+ =
+
+
1
1
77
-4 0 4
-40000
-20000
0
20000
40000
TANH Obtenida con Punto Flotante - C (Formato Q15)
-4 0 4
-40000
-20000
0
20000
40000
TANH Obtenida por Interpolacion - Tabla (Formato Q15)
-4 0 4
0
0.1
0.2
0.3
0.4
Porcentaje de Error con respecto al Punto Flotante

Figura 7.5: Comparacin entre el clculo de la funcin tanh mediante punto
flotante e interpolacin de tabla.
Finalizado el clculo de la capa intermedia de la red, se procede a calcular la
neurona de la capa de salida con lo cual se obtiene una estimacin para la corriente de
referencia ptima que deben tener los ultracapacitores en el lado de baja tensin.
La figura 7.6 muestra el trabajo computacional requerido para calcular la red
neuronal utilizada en la estimacin. Al comienzo de la rutina, se lleva un pin del DSP a 5
Volts y cuando finaliza la rutina vuelve a 0 Volts. En primer lugar, de la figura 7.6a se
concluye que el tiempo requerido para hacer todos los clculos es aproximadamente 30
[seg]. De este tiempo, 6.4 [useg] son utilizados en el procesamiento de cada una de las
neuronas no lineales de la capa intermedia, (figura 7.6b) y 2.9 [seg] son utilizados en el
clculo de la neurona de la capa de salida (figura 7.6c). El tiempo restante es utilizado en
el procesamiento de los datos a la entrada de la red, y en el control de flujo.
78






Figura 7.6: Tiempos de clculo. (a) Red Neuronal Completa, (b)
Neurona Capa Intermedia, (c) Neurona Capa de Salida
Finalmente, la corriente de referencia es utilizada como entrada a un control
PI, el cual manipula el duty cycle de la PWM.
La figura 7.7 muestra el diagrama de bloques de las tareas realizadas durante
el periodo de interrupcin. Las regiones marcadas en verde corresponden a las rutinas
realizadas por el alumno en el desarrollo de la tesis. El cdigo del programa del DSP se
expone en detalle en el Anexo N 9.
10 useg/div

2 useg/div 1 useg/div
(a)

(b)

(c)

79

Figura 7.7: Diagrama de Bloques Interrupcin de Timer
Como conclusin se puede decir que se ha logrado el objetivo de
programacin de un sistema que realice una aproximacin de la funcin de control
ptimo en tiempo real. Para ello se ha utilizado un DSP de Texas Instruments de la serie
2000. El sistema demora tan solo 30 [useg] en realizar todos los clculos por lo que
podra operar a una frecuencia cercana a los 30 KHz. Sin embargo, la actualizacin de la
corriente de referencia se realiza tan solo 11 veces por segundo, pues los datos de
entrenamiento de la red fueron adquiridos a esa frecuencia. El control de corriente se
realiza a 12 KHz.
Cumple tiempo
de Muestreo
Red?
Adquisicin de los
ADC
Filtrado y
Modificacin de
Seales
Calcula Control PI
de Corriente
Comprueba
Lmites de Seal
FIN de
Interrupcin
Actualiza PWM
Calcula Datos de
Entrada de la Red
Finaliza
Calcular Capa
Intermedia?
i = 0
Calcula Neurona
Capa
De Salida
No
Si
Si
No
i= i + 1
Calcula Neurona
i de Capa
Intermedia
Inicio de
Interrupcin
80
VIII. RESULTADOS EXPERIMENTALES
En este captulo se exponen los resultados prcticos obtenidos. En primer
lugar se muestran pruebas en el control de corriente del sistema. Luego se exponen los
resultados de la implementacin de la red neuronal. Finalmente se muestran los
resultados promedios de numerosas pruebas en la eficiencia del sistema. En particular,
se mostrar que efectivamente, con el sistema implementado se logra reducir el consumo
de energa del vehculo en trminos de kWh. consumido por kilmetro recorrido.
8.1 Pruebas Control de Corriente
Tal como se ha dicho, el sistema se basa en el control de la corriente
proporcionada por el convertidor Buck-Boost, por lo que es fundamental que esta etapa
est bien diseada.
El nuevo sistema implementado tiene una leve diferencia con el que exista
anteriormente, la que radica en que la corriente se controla en el lado de baja tensin, y
no en el de alta tensin del convertidor Buck-Boost. Como conclusin a esto se logra un
sistema ms mucho ms estable, principalmente en el control de corrientes bajas. Esto es
porque la corriente se mide en el lado de baja tensin, por lo que para controlarla en el
lado de alta se deba hacer:
uc
bat
uc
BB
I
V
V
I =
Por lo que si el voltaje en los condensadores es pequeo se debe tener una
corriente muy elevada en el lado de los condensadores, lo que puede ser peligroso.
La figura 8.1 muestra el resultado en el control de corriente ante un escaln
de 200 [A] para el caso Buck (derecha) y Boost (izquierda).
81

Figura 8.1: Pruebas de control de corriente en el convertidor Buck-Boost
Cambio en el escaln de 200 [A].
Se aprecia un sobrepaso mximo superior a 50 [A]. Sin embargo, esto no es
muy crtico debido a dos razones. En primer lugar, el fusible no lo alcanza a detectar, ya
que este pico de corriente dura menos de 50 [mseg]. El segundo motivo, y el ms
importante, es que la planta es de dinmica lenta, por lo que nunca se ve sometida a
cambios tan drsticos en la referencia. La figura 8.2 muestra la corriente en una prueba
prctica de control durante un recorrido. Se puede ver que la corriente en los
condensadores es capaz de seguir perfectamente su referencia.
Convertidor
Boost
Convertidor
Buck
82
100 150 200 250 300 350
-200
-100
0
100
200
Corriente de Buck-Boost Lado de Baja Tension
C
o
r
r
i
e
n
t
e

[
A
]
I
uc
[A]
I
uc
ref [A]
100 150 200 250 300 350 400
-100
-50
0
50
Error - Control de Corriente
C
o
r
r
i
e
n
t
e

[
A
]
tiempo [s]

Figura 8.2: Resultado control de corriente en el convertidor Buck-Boost
8.2 Pruebas de Red Neuronal
Se realizaron diversas pruebas para corroborar el correcto funcionamiento
del clculo de la red neuronal en el DSP. Su implementacin prctica ya fue descrita en
el prrafo 7.3.2 del captulo anterior. La figura 8.3 muestra el resultado de una de estas
pruebas. En este caso en particular lo que se hizo fue efectuar un recorrido en la
camioneta. Se grafica la corriente de referencia generada por la red neuronal en el DSP,
y la corriente de referencia generada, en las mismas condiciones, por la red en
MATLAB. Se obtuvo un error rms de 0.0902 [A], sobre una corriente media de 54.9 [A]
lo que representa alrededor de un 0.16 %.
83
Notar que las zonas encerradas en rojo, son las de mximo error, y esto es
porque en la prctica se ha limitado la corriente de referencia generada en el DSP a 160
[A] (en trminos absolutos).
100 150 200 250 300 350 400
-200
-100
0
100
200
Comparacion entre la referencia de corriente teorica y practica
C
o
r
r
i
e
n
t
e

[
A
]
I
uc

ref
Red Neuronal Practica [A]
I
uc

ref
Red Neuronal Teorica [A]
100 150 200 250 300 350 400
-100
-50
0
50
100
Error Estimacion Practica en el DSP
C
o
r
r
i
e
n
t
e

[
A
]
tiempo [s]

Figura 8.3: Validacin de la Red Neuronal en el DSP
8.3 Resultados de Eficiencia
Se ha diseado un circuito de pruebas de manejo en ciudad de 14.2 Km
alrededor del campus San Joaqun (figura 8.3). Este posee dos detenciones obligatorias
(puntos negros), adems de las paradas aleatorias producto del trfico, y condiciones de
la va (esquinas). El procedimiento es el siguiente: se dan dos vueltas completas
alrededor del campus, y dos vueltas en donde se entra por la variante dada por las
84
flechas rojas. En la ltima vuelta alrededor del campus se entra por la variante dada por
las flechas negras para volver a departamento.
Respecto al sistema de manejo, el conductor debe acelerar cada vez que
pueda hasta 60 Km/hr y tratar de mantener la velocidad. Las condiciones de trfico
agregan la componente aleatoria a cada recorrido. Para hacer ms objetiva la prueba, el
conductor no sabe qu programa est cargado en el sistema, es decir, no sabe si se est
operando con control de carga de los condensadores, o con el sistema de control ptimo
diseado. Adems, tampoco tiene acceso a mirar el medidor de Ah, el cual es un
indicador del gasto de energa del sistema.
Antes de realizar cada prueba se revisaba la presin de los neumticos para
tratar de hacer que las condiciones de operacin, entre una prueba y otra, fuesen lo ms
similar posible.

Figura 8.3: Mapa del Recorrido
85
Se realizaron 4 tipos diferentes de pruebas: i) con bateras sin regeneracin
(para emular el comportamiento de un HEV que posea slo celdas de combustible o
bateras de Zinc); ii) con bateras con regeneracin; iii) con bateras y ultracapacitores
con control SOC; y finalmente iv) con bateras y ultracapacitores utilizando control
ptimo con redes neuronales. Los resultados promedio obtenidos tras numerosas
repeticiones del recorrido se resumen en las tablas 8.1 y 8.2.
Tabla 8.1: Resultado de pruebas en circuito de ciudad.

Circuito de
Manejo (Km) Kwh Gastado
Ah
Gastado Km/KWh
Mejora en
Km/KWh
(%)
Bateras sin
Regeneracin 14.2 5.45 13.90 2.61 -
Bateras con
Regeneracin 14.2 4.61 11.23 3.09 18.2%
Bateras con AES
(Control SOC) 14.2 4.36 10.55 3.25 24.4%
Bateras con AES
(Control Optimo con
Redes Neuronalesl) 14.2 4.24 10.58 3.36 28.7%

Se puede observar que con la estrategia de control ptimo propuesta el
ndice Km/KWh es mejorado en un 3.3% respecto a la estrategia de control del SOC de
los ultracapacitores (ver detalle en el Anexo N 10).
Tabla 8.2: Resultado de pruebas en circuito de ciudad - Comparacin de las
estrategias de control.
Km/KWh
Mejora en
Km/KWh (%)
Bateras con AES (Control SOC) 3.25 -
Bateras con AES (Control Optimo
con Red Neuronall) 3.36 3.3%
86
En la figura 8.4 se muestra un fragmento de las corrientes, voltajes y
velocidad del vehculo en un recorrido.
-200
-100
0
100
Corrientes Durante el Ciclo de Manejo
C
o
r
r
i
e
n
t
e

[
A
]
I
BB
I
Load
I
Bat
150
200
250
300
350
Voltaje de Bateras y Ultracapacitores Durante el Ciclo de Manejo
V
o
l
t
a
j
e

[
V
]
Voltaje de Bateras [V]
Voltaje de Condensadores [V]
0 50 100 150 200 250 300 350 400
0
20
40
60
80
Velocidad del Vehculo
Tiempo
V
e
l
o
c
i
d
a
d

[
k
m
/
h
r
]
Velocidad del Vehculo [km/hr]

Figura 8.4: Corrientes, voltajes y velocidad durante parte de un recorrido
Otra caracterstica importante es que se logr reducir considerablemente la
potencia mxima entregada por la fuente primaria de 54kW a slo 12kW.
A modo de conclusin, se quiere decir que se han presentado los resultados
prcticos del sistema implementado, cuyas ventajas son principalmente el aumento de la
estabilidad en el control para corrientes pequeas y que efectivamente reduce el
consumo de energa del vehculo.
87
IX. CONCLUSIONES Y TRABAJO FUTURO
9.1 Conclusiones
En este trabajo se present el desarrollo de una nueva estrategia de control
para un HEV basndose en las consideraciones de eficiencia de un sistema auxiliar de
energa formado por ultracapacitores y un convertidor Buck-Boost. Para ello, se plante
el modelo de control ptimo y luego, tras la resolucin numrica del sistema y posterior
simulacin, se obtuvo que tericamente se poda mejorar la estrategia anterior (basada
en el estado de carga de los ultracapacitores) en un 4.9%.. Para darle un enfoque prctico
a esta nueva estrategia se entren una red neuronal en base a los resultados obtenidos de
las simulaciones de diferentes ciclos de manejo. Se utiliz un DSP (TMS320F241) para
su implementacin en tiempo real.
Tras numerosas pruebas de manejo en ciudad, se obtuvo un 3.3% de mejora
en km/kWh en relacin a la estrategia de control del estado de carga de los
ultracapacitores. Es importante dejar en claro, que la importancia de este resultado
radica en que el aumento en la autonoma del vehculo ha sido logrado slo con cambios
en el software del sistema, por lo que no se ha incurrido en ningn costo adicional desde
el punto de vista de hardware.
Ahora, considerando el caso en que la fuente primaria no acepte
regeneracin, con el sistema propuesto se logra incrementar en un 28.7% el ndice
km/kWh.
9.2 Trabajo Futuro
Desde el punto de vista prctico, el trabajo futuro se puede definir en tres
lneas. En primer lugar, se considera importante probar el sistema en un rango ms
amplio de operacin, esto es, aumentar el recorrido a una distancia cercana a los 30 Km,
pero teniendo en cuenta siempre que se deben hacer recorridos tpicos de ciudad, es
decir, en donde el nmero de detenciones sea importante, tpicamente cada 400 metros.
88
Este anlisis no fue incluido en el desarrollo de esta tesis debido principalmente a que de
la forma en que fueron hechas las pruebas, recorrido de 14.2 km, se permita hacer dos
por da. De la otra manera toma el doble de tiempo, ya que la camioneta tardara un poco
ms de media jornada en cargar las bateras nuevamente.
La segunda lnea de investigacin puede ser el entrenamiento on-line del
sistema. Existen algoritmos recursivos para entrenar on-line las redes neuronales. Un
punto muy importante a tener en cuenta, es que el sistema fue entrenado con condiciones
de regeneracin especficas, en donde la calibracin del pedal de regeneracin juega un
rol fundamental. Una posible descalibracin de este pedal puede hacer que las corrientes
de regeneracin cambien significativamente, por lo que las entradas de corriente a la red
neuronal pueden cambiar notablemente para condiciones similares de velocidad. Esto
trae como consecuencia la exposicin a condiciones distintas al sistema, para el cual no
fue entrenado. Como solucin a esto ltimo se deriva al tema de deteccin y diagnstico
de fallas en sistemas de control.
Finalmente, sera importante incluir un anlisis tcnico y econmico en el
diseo desde el punto de vista de hardware de potencia. Es decir, cul es el tamao
ptimo del banco de ultracapacitores. Es importante tener en cuenta que el banco actual
de condensadores est sobredimensionado para el sistema, lo que se traduce en exceso
de peso. Si se logra disear un banco de condensadores ms reducido, aparte de ganar
eficiencia por el ptimo manejo de los flujos de energa, se tendr un pequeo aumento
por la reduccin de masa del vehculo.


89
BIBLIOGRAFIA
ABOUT.COM (2002) History of Electric Vehicles, Pgina Internet.
http://inventors.about.com/library/weekly/aacarselectrica.htm
OMAN, H., June 2002, Electric Car Progress, IEEE AESS System Magazine.
WYCZALEK, F. A., March 2001, Hybrid Electric Vehicles, Year 2000 Status. IEEE
AES System Magazine.
CALIFORNIA AIR RESOURCES BOARD (2002) Zero Emission Vehicle Incentive
Programs. Pgina Internet. http://www.arb.ca.gov/msprog/zevprog/zevprog.htm
U.S DEPARTMEN OF ENERGY, HYBRID ELECTRIC VEHICLE PROGRAM, Tax
Credit For Hybrid Electric Vehicles. Pgina Internet.
http://www.ott.doe.gov/hev/pdfs/032873mFS_TAX_FS2.pdf
ORTUZAR, M. (2002) Diseo y Construccin de un Convertidor DC-DC para Control
de Ultracapacitores en Vehculo Elctrico. Memoria para optar al ttulo de Ingeniero.
DIXON, J. E., ORTUZAR, M. & WIECHMANN, E. , Regenerative Braking for an
Electric Vehicle, Using Ultracapacitors and a Buck-Boost Converter, EVS'17, 17th
Electric Vehicle Symposium, Montreal, Canada, 13-18 October 2000.
J. W. DIXON AND MICAH ORTZAR, Ultracapacitors + DC-DC Converters in
Regenerative Braking System. IEEE Aerospace and Electronic Systems Magazine, Vol.
17, N 8, August 2002, pp. 16-21.
DIXON, J. E., ORTUZAR, M. & MORENO, J., Monitoring System for Testing the
Performance of an Electric Car Using Ultracapacitors, The 19th International Battery,
Hybrid and Fuel Cell Electric Vehicle Symposium , October 19 to 23, 2002, Bexco,
Busan, Korea.
90
J. DIXON, M. ORTZAR, I. LEAL, A. AMARO, R. SCHMIDT, M. RODRGUEZ, G.
LAZO & E. WIECHMANN, Performance Characteristics of the First, State-of-the-art
Electric Vehicle Implemented in Chile, EVS'17, 17th Electric Vehicle Symposium,
Montreal, Canada, 13-18 October 2000.
BURKE, A.F. AND MILLER, M., Comparisons of Ultracapacitors and Advanced
Batteries for Pulse Power in Vehicle Applications: Performance, Life, and Cost.
Proceedings of the 19th International Electric Vehicle Symposium, Busan, Korea,
October 2002.
BURKE, A.F., Ultracapacitors: why, how, and where is the technology. Journal of
Power Sources, 91 (2000) 37-50.
RASHID, M., Power Electronics Handbook. Publisher by Academic Press, 2001.
BRYSON, A.E.; HO, Y-C. (1975): Applied optimal control. Optimization, estimation
and control, Hemisphere Publishing Corporation, Washington DC, John Wiley & Sons
STEGEL, R., Optimal Control and Estimation. Publisher by Dover Pubns, 1994.
BERTSEKAS, D.P. , Dynamic Programming and Optimal Control, Volume I, 2nd
edition, Athena Scientific 2000.
MATTHEW P. THIEL, BRIAN L. SWENSON, AND GLENN R. BOWER, The
Development of the University of Wisconsin's Parallel Hybrid-Electric Aluminum
Intensive Vehicle, pgina internet www.cae.wisc.edu/~vehicle/tech_report
PAGANELLI, G., GUERRA, T.M., DELPRAT, S., GUEZENNEC, Y., RIZZONI, G.,
Optimal Control Theory Applied to Hybrid Fuel Cell Powered Vehicle. 15th IFAC
World Congress on Automatic Control, Barcelona, Spain, 2002.
91
DELPRAT, S., GUERRA, T.M., RIMAUX, J., Optimal Control of a Parallel
Powertrain : From Global Optimization to Real Time Control Strategy, Proceedings of
the 18th International Electric Vehicle Symposium, Berlin, October 2001, on CD-ROM.
GUEZENNEC, Y., CHOI, T., PAGANELLI, G., Supervisory Control of Fuel Cell
Vehicles and Its Link to Overall System Efficiency and Low-Level Control
Requirements, IGERT Graduate Student Research Conference, University of California,
Davis, June 2003.
LJUNG, L., System Identification Theory for the User. Pretince Hall, Upper Saddle
River, N.J., 2
nd
edition, 1999.
BOSE, B.K., Artificial Neural Network Applications in Power Electronics, IEEE
IECON Conf. Rec, IECON01, November 29 to December 2, 2001, pp. 1631-1638.
HAYKIN, S., Neural Networks: A Comprehensive Foundation. Pretince Hall, 2
nd

edition, 1998.
CYBENKO, G., Approximation by superpositions of a sigmoidal function.
Mathematics of Control, Signal, and Systems, 2(4), 303-314, 1989.
BARRON, A., R., Universal approximation bounds for superpositions of a sigmoid
function. IEEE Transaction on Information Theory, 39, 930-945, 1993.
NRGAARD, M., POULSEN, N.K., RAVN, O., HANSEN, L., Neural Networks for
Modelling and Control Dynamic System. Ch 2. Publisher by Springer Verlag, 2000.
NRGAARD, M., Neural Network Based System Identification Toolbox. Tech. Report.
00-E-891, Department of Automation, Technical University of Denmark, 2000.
A.L. LILEIN (1996) Digital Signal Procesors vs. Universal Microprocessors. Texas
Instruments Literature Number: SPRA344, Paris, Septiembre 1996.
92
TI (2000) TMS320F243/F241/C242 DSP Controllers Reference Guide System and
Peripherals. Texas Instruments Literature Number: SPRU276C, Enero 2000.
TI (1999) TMS320F/C24x DSP Controllers Reference Guide CPU and Instruction
Set. Texas instruments Literature Number: SPRU160C, Junio 1999.
93
ANEXO N 1: ANLISIS DE EFICIENCIA DEL CONVERTIDOR BUCK

IGBT ON

Convertidor Buck




IGBT OFF

Nota: El IGBT en conduccin se modela como una fuente de voltaje constante.
Figura A1.1: Convertidor Buck y sus modos de operacin
Cuando el IGBT est en ON
( )
( )
L
bat
cond bat
c L c
bat
cond bat
uc L uc L igbt cond L
uc L uc L L igbt cond
I
R
V V
I I I
R
V V
V I R R V V V
V I R R V V V

= + =

+ =
= + + + + + 0

Cuando el IGBT est en OFF
94
( )
uc L uc L L d d L
bat
cond bat
c
V I R R I R V V
R
V V
I
+ =

=

Ahora, el valor medio de V
L
en un periodo es aproximadamente cero: 0
L
V
Definiendo D como el duty cycle aplicado al IGBT. Se tiene:
( ) ( ) 0 ) 1 ( ) 1 ( ) 1 ( ) 1 ( = + +
uc L uc L L d d uc L uc L igbt cond
V D I R R D I R D V D DV I R R D DV DV
(*)
Balance de Carga en el Condensador

+

L
bat
cond bat
DI
R
V V
D (1-D)
bat
cond bat
R
V V
= 0


bat
cond bat
L
R
V V
D
I

=
1
Luego, I
alta
= D * I
baja

Luego, de (*) se obtiene:
( ) 0 ) 1 ( ) 1 ( = +
L d d uc L uc L igbt cond
I R D V D V I R R DV DV
Reemplazando el valor de I
L
( ) ( )
( )
( ) ( )
0
1 1
1
1 1
=


+
+
+

cond
bat
d
bat
bat
d
d uc cond
bat
uc L
bat
bat
uc L
igbt cond
V
DR
R D
V
DR
R D
V D V V
R
R R
D
V
R
R R
D
DV DV
Agrupando,
( ) ( ) ( ) ( )
( ) 0 1
1 1 1 1
=
|
|
.
|

\
|
+
+

|
|
.
|

\
|
+
+
+
d uc igbt bat
bat
d
bat
uc L
cond
bat
d
bat
uc L
V D V DV V
DR
R D
R
R R
D
V
DR
R D
R
R R
D
D

( ) ( )
( ) 0 1
1 1
2
=
+ +

+ + +
d uc igbt bat
bat
d uc L
cond
bat
d uc L bat
V D V DV V
DR
R D R R
V
DR
R D R R R D

Luego,
I
alta
: Lado de las Bateras.
I
baja
: Lado de los condensadores.
95

( )
( )
( ) ( )
( )
d uc L bat
d uc igbt bat
bat
d uc L bat
d uc L
cond
R D R R R D
V D V DV DR
V
R D R R R D
R D R R
V
+ + +
+ +
+
+ + +
+ +
=
1
1
1
1
2 2

Por otra parte, se sabe que:

cond
bat
bat
bat
L
V
DR
V
DR
I
1 1
=
Por lo que I
L
estar dado por:
( )
( ) ( )
( )
( )
d uc L bat
d uc igbt
bat
bat d uc L bat
d uc L
bat
bat
L
R D R R R D
V D V DV
V
DR R D R R R D
R D R R
V
DR
I
+ + +
+ +

+ + +
+ +
=
1
1
1
1 1
2 2


( ) ( )
( ) ( )
( )
( )
d uc L bat
d uc igbt
bat
bat d uc L bat
d uc L d uc L bat
L
R D R R R D
V D V DV
V
DR R D R R R D
R D R R R D R R R D
I
+ + +
+ +

+ + +
+ + +
=
1
1
1
1 1
2 2
2

Finalmente, se obtiene que I
L
est dado por:

( )
( )
d uc L bat
d uc igbt bat
L
R D R R R D
V D V DV DV
I
+ + +

=
1
1
2
(1)
Se define la eficiencia del convertidor como:
( )D R DI V
V
R I D DI V
I V
R I I V
I V
P
P
bat L bat
uc
bat
L
L bat
L uc
bat
bat
bat bat
L uc
in
out

= =
2 2 2

Reemplazando el valor de I
L
, se tiene:
D uc L bat
D uc igbt bat bat D uc L
bat L bat
D uc L bat
D uc igbt bat bat D uc L
bat L bat
D uc L bat
D bat uc bat igbt bat bat bat bat D bat uc bat L bat bat
bat L bat
D uc L bat
D bat uc bat igbt bat bat bat
bat bat L bat
R D R R R D
V D V DV R D V R D R R D
R DI V D
R D R R R D
V D V DV DR V R D R R
R DI V
R D R R R D
V D DR V DR V R D V R D V R D V R V R V R D
R DI V
R D R R R D
V D DR V DR V R D V R D
V R DI V
) 1 (
) ) 1 ( ( ) ) 1 ( (
) (
) 1 (
) ) 1 ( ( ) ) 1 ( (
) 1 (
) 1 ( ) 1 (
) 1 (
) 1 (
2
2
2
2
2 2 2
2
2 2
+ + +
+ + + + +
=
+ + +
+ + + + +
=
+ + +
+ + + + + +
=
+ + +

=

96
Finalmente, se obtiene que la eficiencia del convertidor est dada por:
( ) ( )
( ) ( ) ( ) ( )
d uc igbt bat bat d uc L
uc d uc L bat
V D V DV R D V R D D DR DR
V R D R R R D
+ + + + +
+ + +
=
1 1
1
2
2


Con esto hemos obtenido la eficiencia de un convertidor Buck en funcin
del voltaje del banco de condensadores, del voltaje de la batera, y del duty aplicado a
los IGBTs.
Ahora, nos interesa expresar la eficiencia como funcin de la corriente
entregada, para ello se proceder como sigue.
De la ecuacin (1) se obtiene el duty cycle necesario dadas las
condiciones de corriente y voltajes. Luego, se tiene:
0 ) (
) 1 ( ) 1 ( ) (
2
2
= + + + + + +
= + + +
d d uc igbt bat L d L d L uc L bat L
d uc igbt bat L d L uc L L bat
DV V V DV DV I DR I R I R R D R I
V D V DV DV I R D I R R D I R

Agrupando trminos,
( ) ( )
( ) ( )
L bat
L d uc L d uc L bat L d igbt bat d L d igbt d bat
d uc L d uc L d igbt bat L d L bat
I R
I R R R V V I R I R V V V I R V V V
D
V V I R R R D V V V I R D I R
2
) ( 4
: por dado esta duty el Luego,
0
2
2 , 1
2
+ + + + + + + +
=
= + + + + + + +

Ahora, reemplazando este resultado en la ecuacin (2) se obtendr la
eficiencia en funcin de los voltajes y corrientes.

97
ANEXO N 2: ANLISIS DE EFICIENCIA DEL CONVERTIDOR BOOST

IGBT ON

Convertidor Boost







IGBT OFF

Nota: El IGBT en conduccin se modela como una fuente de voltaje constante.
Figura A2.1: Convertidor Buck y sus modos de operacin

Cuando el IGBT est en ON

( )
( )
bat
cond bat
c
igbt L L uc uc L
igbt L L L uc uc
R
V V
I
V I R R V V
V V I R R V

=
+ =
= + + + + 0

98
Cuando el IGBT est en OFF

( )
( )
bat
cond bat
L c
bat L c
cond d L D L uc uc L
cond D L L D L uc uc
R
V V
I I
I I I
V V I R R R V V
V V V I R R R V

+ =
+ =
+ + =
= + + + + + + 0


En rgimen, el voltaje medio de la bobina en un periodo es cero, 0
l
V
( ) ( ) ( ) ( ) ( ) 0 1 = + + + +
cond L uc L d d uc L uc L igbt uc
V I R R R V V D I R R V V D (3)
Balance de Carga en el Condensador

( )
( ) 0 1
0 1
=

+
=
|
|
.
|

\
|
+ +

bat
cond bat
L
bat
cond bat
L
bat
cond bat
R
V V
I D
R
V V
I D
R
V V
D



bat L
I
D
I
) 1 (
1

=
( )
alta Baja
I
D
I

=
1
1
(4)
Ahora, de la ecuacin (3), se obtiene:

I
alta
: Lado de las Bateras.
I
baja
: Lado de los condensadores.
99
( )
bat
bat D L uc
D L uc
bat D L uc
igbt bat D bat
uc
bat D L uc
bat
cond
bat
bat
D L uc
igbt D cond
bat
bat D L uc
uc
cond D igbt
bat
bat cond
D L uc uc
cond D igbt L D L uc uc
cond D igbt L D L uc uc
cond D L D L L uc igbt uc
cond D L D L uc uc igbt L L uc uc
V
R D R D R R
R D R R
R D R D R R
V R D D V R D
V
R D R D R R
R D
V
V
R D
R D R R
DV V D V
R D
R D R D R R
V
V D V D DV
R D
V V
R D R R V
V D V D DV I R D R R V
V D V D DV I R D R R V
V D V D I R D I R R DV V
V D V D I R R R D V D DV DI R R DV
2 2
2
2
2
) 1 ( ) 1 (
) 1 (
) 1 ( ) 1 (
) 1 ( ) 1 (
) 1 ( ) 1 (
) 1 (
) 1 (
) 1 (
) 1 (
) 1 (
) 1 ( ) 1 (
) 1 ( ) 1 (
) 1 (
) ) 1 ( (
) 1 ( ) 1 ( ) ) 1 ( (
0 ) 1 ( ) 1 ( ) ) 1 ( (
0 ) 1 ( ) 1 ( ) 1 ( ) (
0 ) 1 ( ) 1 ( ) )( 1 ( ) 1 ( ) (
+ + +
+ +
+
+ + +
+

+ + +

=

+ +
+ +

+ + +
=
+ + +


+ + =
+ + + + + =
= + +
= +
= + + + +

Luego,


( ) ( ) ( ) ( ) ( )
( ) ( )
bat d uc L
bat d uc L igbt bat d bat uc bat
cond
R D R D R R
V R D R R V DR D V R D V R D
V
2
2
1 1
1 1 1 1
+ + +
+ + +
=

Por otra parte de la ecuacin (4) se sabe que:

( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
bat d uc L bat
bat bat igbt bat d bat uc bat
L
bat
bat bat d uc L bat
bat d uc L igbt bat d bat uc bat
L
bat
bat cond
L
R D R D R R R D
V R D V DR D V R D V R D
I
V
R D R D R D R R R D
V R D R R V DR D V R D V R D
I
R
V V
D
I
2
2 2
2
2
1 1 1
1 1 1 1
1
1
1 1 1
1 1 1 1
: obtiene se do reemplazan que lo Por
1
1
+ + +

=

+ + +
+ + +
=

=

100
Con lo que se obtiene que I
L
est dado por:


( ) ( )
( ) ( )
bat d L uc
bat igbt d uc
L
R D R D R R
V D DV V D V
I
2
1 1
1 1
+ + +

= (5)
Ahora, definiendo la eficiencia como la relacin entre la potencia de salida y la potencia
de entrada, se tiene:

( )
( ) ( )
bat L bat
uc L uc
bat bat bat bat
in
out
V I D R
V
D
I V
I V I R
P
P
+

=
+
= = 1
1
2
(6)

Reemplazando I
L
, se obtiene:

( ) ( )
uc
bat
bat d L uc
uc
bat
bat
uc
igbt
bat
uc
d
bat bat
V
V
D
R D R D R R
V
V
R D
V
V
DR D
V
V
R D D R
) 1 (
1 1
) 1 ( ) 1 ( ) 1 ( ) 1 (
2
3 2 3 2
+
+ + +

=


Finalmente, la eficiencia en funcin del voltaje en las bateras, condensadores, y el duty
cycle aplicado al convertidor, queda definida como:

( ) ( ) ( ) ( ) ( )
( ) ( )
bat d L uc
uc
bat
d L uc
uc
igbt
uc
d
bat
R D R D R R
V
V
R D R R D
V
V
D
V
V
D D R
2
2
1 1
1 1 1 1 1
+ + +
+ + +
|
|
.
|

\
|

= (7)

Ahora, como interesa expresar la eficiencia en funcin de la corriente
entregada, se deber proceder como sigue.
101
De la ecuacin (5) se obtiene el duty cycle necesario dadas las condiciones
de corriente y voltajes. Luego, se tiene:

( ) | | ( ) 0 2
2 ) (
2
2
= + + + + + + + + +
+ + = + + + +
bat d uc L bat d uc L bat igbt d L bat d L bat
bat bat igbt d d uc L bat L bat L bat L D L D L L uc
V V V I R R R R D V V V I R R D I R
DV V DV DV V V I R D I DR I R I DR I R I R R


Luego, el duty estar dado por:
( ) ( ) | | ( ) | |
L bat
bat d uc L uc L d bat L bat igbt bat d L bat d L bat d igbt bat d
I R
V V V I R R R R I R V V V I R R I R R V V V
D
2
4 2 2
2
2 , 1
+ + + + + + + + + + +
=

Ahora, reemplazando este resultado en la ecuacin (6) se obtendr la
eficiencia en funcin de los voltajes y corrientes.



102
ANEXO N 3:PROGRAMA DE SIMULACIN MTODO DEL GRADIENTE
%
% Resulucion Problema de Control Optimo NO Lineal para la Distribucion de Energia en un HEV
%
% M E T O D O D E L G R A D I E N T E
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function y = simular(archivo_entrada, archivo_salida)

[I_uc_p, I_BB_Alta, I_Carga, I_Bat, V_bat, V_uc, P_load, velocidad] = obtener_datos(archivo_entrada);

dT = 0.098625; % Tiempo de Muestreo
C = 20.454545; % Capacidad del Banco de Ultracapacitores
MAX_T = length(I_uc_p); % Largo de la Muestra
MAX_ITERACION = 65; % Maximo de Iteracion Metodo del Gradiente
MAX_A = 1; % Maximo de Iteracion--Correccion de Restricciones
%Fi = V_uc(MAX_T);

SOC_uc_lim = .5*C*300^2;
I_lim_pos = 180;
I_lim_neg = -180;
I_uc = 1.3*I_Carga.*(I_Carga>0) + 2.2*I_Carga.*(I_Carga<0); % Historia Nominal del Control.
I_uc = (I_uc.*not(I_uc>I_lim_pos)+I_lim_pos.*(I_uc>I_lim_pos)).*(I_uc>I_lim_neg) + I_lim_neg.*not(I_uc>I_lim_neg);

for a=1:MAX_A

condicion_inicial = condiciones_iniciales;
SOC_bat(1) = condicion_inicial(1);
SOC_uc(1) = condicion_inicial(2);

for i=1:MAX_ITERACION

for t=1:MAX_T

V_uc(t) = sqrt(2/C*SOC_uc(t));
[eff_bat, eff_cap, eff_ucap] = sim_eficiencia(V_bat(t), V_uc(t), I_uc(t), P_load(t)); %inicialmente decia V_bat(t)
eff_BB(t) = eff_cap;

103
% Simulacion del Sistema (Se utiliza como entrada P_load, y un I_uc "nominal"

SOC_bat(t+1)= SOC_bat(t) - P_load(t)*eff_bat*dT + I_uc(t)*sqrt(2/C*SOC_uc(t))*eff_BB(t)*eff_bat*dT;
SOC_uc(t+1) = SOC_uc(t) - I_uc(t) * sqrt(2/C*SOC_uc(t)) * eff_ucap * dT;

J_opt(t) = (SOC_bat(t+1) - SOC_bat(t))/3600; % Funcional de Costo

if i==MAX_ITERACION & a==MAX_A
break
end
% Calculo de condiciones de Optimalidad

if t==MAX_T
I_uc_t_1 = 0;
else
I_uc_t_1 = I_uc(t+1);
end

[dV_uc_SOC_uc, dV_uc_I_uc, deff_uc_V_uc, deff_uc_I_uc, ddSOC_bat_I_uc, dI_uc_SOC_uc] = derivadas(SOC_bat(t),
SOC_uc(t), I_uc_t_1, I_uc(t), P_load(t), eff_bat, eff_BB(t));

F(1,1,t) = 1; %dF1/dSOC_bat
F(2,1,t) = 0; %dF2/dSOC_bat
F(1,2,t) = (dI_uc_SOC_uc * sqrt((2/C)*SOC_uc(t)) * eff_BB(t) * eff_bat * dT)+...
(I_uc(t) * eff_BB(t) * eff_bat * dV_uc_SOC_uc * dT) + ...
(I_uc(t) * deff_uc_V_uc * dV_uc_SOC_uc * eff_bat * sqrt((2/C)*SOC_uc(t)) * dT); %dF1/dSOC_uc

F(2,2,t) = 1 - dI_uc_SOC_uc * sqrt((2/C)*SOC_uc(t)) * eff_ucap * dT - I_uc(t) * dV_uc_SOC_uc * eff_ucap * dT;
%dF2/dSOC_uc

G(1,1,t) = sqrt((2/C)*SOC_uc(t)) * eff_BB(t) * eff_bat * dT + ...
I_uc(t) * dV_uc_I_uc * eff_BB(t) * eff_bat * dT + ...
I_uc(t) * sqrt((2/C)*SOC_uc(t)) * deff_uc_I_uc * eff_bat * dT; %dF1/dI_uc

G(2,1,t) = - sqrt((2/C)*SOC_uc(t)) * eff_ucap * dT - I_uc(t) * dV_uc_I_uc * eff_ucap * dT; %dF2/dI_uc

L_x(1,1,t) = 0;
L_x(2,1,t) = dI_uc_SOC_uc * sqrt((2/C)*SOC_uc(t)) * eff_BB(t) * eff_bat * dT +...
I_uc(t) * eff_BB(t) * eff_bat * dV_uc_SOC_uc * dT + ...
I_uc(t) * deff_uc_V_uc * dV_uc_SOC_uc * eff_bat * sqrt((2/C)*SOC_uc(t)) * dT;

104
L_u(t) = ddSOC_bat_I_uc;

end

Funcion_Costo = -sum(J_opt) + ((SOC_uc(MAX_T + 1) - SOC_uc(1))/3600)^2
Descarga_Bat_opt = -sum(J_opt)

if i==MAX_ITERACION & a==MAX_A
break
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Computo de Lambda
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

lambda(:,MAX_T+1) = [0; 2*((SOC_uc(MAX_T + 1) - SOC_uc(1)))/3600]; %Inicialmente en watt hora... creo que no es asi

for t=MAX_T:-1:1

lambda(:,t) = F(:,:,t)'*lambda(:,t+1) + L_x(:,:,t);

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Condicion de Optimalidad
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

for t=1:MAX_T
Hu(t) = L_u(t) + lambda(:,t+1)'*G(:,1,t);
end

if i==1 & a==1
Hu_inicial = Hu;
end
K = 0.0001;

I_uc = I_uc - K*Hu';
105

%figure,plot(1:MAX_T+1,lambda(2,:)),title('Lambda 2');
%figure,plot(1:MAX_T,L_u),title('L_u');
%figure,plot(1:MAX_T,Hu),title('Hu');
%figure,plot(1:MAX_T,I_uc),title('Iuc');
end

if a==MAX_A
break
end
SOC_uc_copy = SOC_uc(1,1:MAX_T);
I_uc = (0.00000001*(SOC_uc_copy > SOC_uc_lim)'.*(I_uc<=0) + I_uc.*not((SOC_uc_copy > SOC_uc_lim)'.*(I_uc<=0)));
V_uc = sqrt(2/C*SOC_uc);
fprintf('---------------------------------------------------------------------------------------------\n')

end


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% FIN METODO DEL CRADIENTE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


figure,plot(1:MAX_T,Hu_inicial,1:MAX_T,Hu);
title('H_u');
legend('H_u inicial','H_u final');

figure,subplot(3,1,1),plot(1:MAX_T,I_uc_p,1:MAX_T,I_uc);
title('Corriente en los Condensadores');
legend('I_u_c real','I_u_c optima');



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Simulacion del Sistema con Control de Carga en los Condensadores y Limite de Corriente en la Bateria
% Comparacion con resultado Control Optimo
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
106


SOC_bat_pi(1) = condicion_inicial(1);
SOC_uc_pi(1)=condicion_inicial(2);

for t=1:MAX_T

V_uc(t) = sqrt(2/C*SOC_uc_pi(t));

[eff_bat, eff_cap, eff_ucap] = sim_eficiencia(V_bat(t), V_uc(t), I_uc_p(t), P_load(t));

eff_BB_pi(t) = eff_cap;

SOC_bat_pi(t+1)= SOC_bat_pi(t) - P_load(t) * eff_bat * dT + I_uc_p(t) * sqrt(2/C*SOC_uc_pi(t)) * eff_BB_pi(t) * eff_bat * dT;
SOC_uc_pi(t+1) = SOC_uc_pi(t) - I_uc_p(t)*sqrt(2/C*SOC_uc_pi(t))* eff_ucap *dT;
J_pi(t) = (SOC_bat_pi(t+1) - SOC_bat_pi(t))/3600;
end
Descarga_Bat_pi = -sum(J_pi)


subplot(3,1,2),plot(0:MAX_T,sqrt(2/C*SOC_uc_pi),0:MAX_T,sqrt(2/C*SOC_uc)); %En Watt Hr
title('Estado de Carga de los Condensadores');
legend('SOC_u_c Control de Carga','SOC_u_c Control Optimo');

subplot(3,1,3),plot(0:MAX_T,SOC_bat_pi/3600,0:MAX_T,SOC_bat/3600); %En Watt Hr
title('Estado de Carga de la Bateria');
legend('SOC_b_a_t Control de Carga','SOC_b_a_t Control Optimo');

eff_BB = eff_BB.*(eff_BB<1) + 1./eff_BB.*(eff_BB>=1);
eff_BB_pi = eff_BB_pi.*(eff_BB_pi<1) + 1./eff_BB_pi.*(eff_BB_pi>=1);
figure,plot(1:MAX_T,eff_BB_pi,1:MAX_T,eff_BB);
title('eff_u_c');
legend('eff_u_c Control de Carga','eff_u_c Control Optimo');

y = [sqrt(2/C*SOC_uc(1:length(SOC_uc)-1)); I_uc'; SOC_bat(1:length(SOC_bat)-1)/3600; I_Carga';
sqrt(2/C*SOC_uc_pi(1:length(SOC_uc_pi)-1)); I_uc_p'; SOC_bat_pi(1:length(SOC_bat_pi)-1)/3600; velocidad';P_load'];
% y = V_uc_opt I_uc_opt Soc_bat_opt I_carga SOC_uc_pi I_uc_pi SOC_bat_pi velocidad P_load

if nargin==2
fid = fopen(archivo_salida,'w');
107
fprintf(fid,'%9.4f, %9.4f, %9.4f, %9.4f, %9.4f, %9.4f, %9.4f, %9.4f, %9.4f\n',y);
fclose(fid);
end


function y = condiciones_iniciales()


SOC_bat_t0 = 59400000; %Carga inicial de las Baterias. Si estan 100% cargadas, SOC_bat = V*Ah*3600 = 330*50*3600
SOC_uc_t0 = 841000; %CArga inicial de los Condensadores. Se asume que 100% de carga corresponde a 290 [V],
%Luego, SOC_uc = 0.5*C*V^2 = 0.5*20*290^2 = 841000
%por lo general parte con V_cond = 278

y = [SOC_bat_t0 SOC_uc_t0];





%Condiciones iniciales para las variables SOC_bat, SOC_uc, Lambda1 y lambda2
%----------------------------------------------------------------------------
function [I_uc_p, I_BB_Alta, I_Carga, I_Bat, V_bat, V_uc, P_load, velocidad] = obtener_datos(archivo)

datos = csvread(archivo);

datos = inicializa(datos); %Setea los datos erroneos en la medicion de corriente en 0
P_load = datos(:,4).*datos(:,6); %Potencia requerida por la carga

datos_entrada = [datos P_load];

I_uc_p = datos_entrada(:,1);
I_BB_Alta = datos_entrada(:,2);
I_Carga = datos_entrada(:,4);
I_Bat = datos_entrada(:,5);
V_bat = datos_entrada(:,6);
V_uc = datos_entrada(:,7);
P_load = datos_entrada(:,16);
velocidad = datos_entrada(:,10);


108

function [eff_bat, eff_cap, eff_ucap] = sim_eficiencia(V_bat, V_uc, I_uc, P_load)

if I_uc > 0
eff_cap = eff_boost(V_bat,V_uc,I_uc);
eff_ucap = 1/0.95;
elseif I_uc < 0
eff_cap = 1/eff_buck(V_bat,V_uc,-I_uc); %se cambio por 1/eff
eff_ucap = 0.95;
else
eff_cap = 1;
eff_ucap = 1;
end

if P_load >= 0;
eff_bat = 1.25;
else P_load <0;
eff_bat = 0.75;
end



% Calculo de Eficiencia de Convertidor Buck
function y=eff_buck(V_bat, V_cond, I_uc)

%Parametros Conocidos del Convertidor

R_l = 0.037; %[Ohm]
R_cond = 0.135; %[Ohm]
R_bat = 0.342; %[Ohm] Se debe incorporar la dependencia del SOC inicalmente decia 0.312

D = (V_bat - sqrt((-V_bat)^2 - 4*R_bat*I_uc*((R_l + R_cond)*I_uc + V_cond)))/(2*R_bat*I_uc);

eff_buck = (R_bat*(D)^2 + (R_l + R_cond))*V_cond/(D*(R_l + R_cond)*V_bat + R_bat*V_cond*(D)^2);

y=eff_buck;




109
% Calculo de Eficiencia de Convertidor Boost
function y=eff_boost(V_bat, V_cond, I_uc)

%Parametros Conocidos del Convertidor

R_l = 0.037; %[Ohm]
R_cond = 0.135; %[Ohm]
R_bat = 0.342; %[Ohm] Agregar la dependencia del SOC inicalmente decia 0.312

D = (V_bat + 2*R_bat*I_uc - sqrt((-2*R_bat*I_uc - V_bat)^2 - 4*R_bat*I_uc*((R_l + R_cond + R_bat)*I_uc...
- V_cond + V_bat)))/(2*R_bat*I_uc);

eff_boost = (R_bat*(1-D)^2 + (R_l + R_cond)*(1-D)*(V_bat/V_cond))/(R_l + R_cond + R_bat*(1-D)^2);

y=eff_boost;


function [dV_uc_SOC_uc, dV_uc_I_uc, deff_uc_V_uc, deff_uc_I_uc, ddSOC_bat_I_uc, dI_uc_SOC_uc] = derivadas(SOC_bat,
SOC_uc, I_uc_t_1, I_uc, P_load, eff_bat, eff_uc)

R_l = 0.037; %[Ohm]
R_cond = 0.135; %[Ohm]
R_bat = 0.342; %[Ohm] Agregar la dependencia del SOC inicialmente decia 0.312
V_bat = 315; %[Volts] Inicialmente dedia 330
C = 20.454545; %Capacidad del Banco de Ultracapacitores

%Otros Parametros

dT = 0.098625; %Delta T en la medicion de P_load
%Se determino dT midiendo el tiempo que se demora en capturar los datos
%ver Archivo time1 y 2 en la carpeta tiempo de muestreo. Se dividio el tiempo
%total por el numero de datos, en este caso 4000. Se promediaron los resultados de
%ambos archivos.

%Derivadas del Voltaje en los Ultracapacitores con respecto al SOC_uc y a I_uc
%-----------------------------------------------------------------------------

% dV_uc 1
% dV_uc_SOC_uc = ------- = ---------------------
% dSOC_uc (2*C*SOC_uc_t)^1/2
110

dV_uc_SOC_uc = (2*C*SOC_uc)^-(1/2);

% 1 I_uc_t * dT
% dV_uc_I_uc = --- * ---------------------
% C I_uc(t+1) - I_uc(t)

if (I_uc_t_1 - I_uc)==0
dV_uc_I_uc = 0;
else
dV_uc_I_uc = 0;%((1/C)*I_uc_t_1*dT)/(I_uc_t_1 - I_uc);
end


%Derivadas de la eficciencia en los Ultracapacitores con respecto al SOC_uc y a I_uc
%-----------------------------------------------------------------------------------

%Para ver como se han obtenido estas expresiones ver programa "simbolic_dif_eff_BB.m"

% deff_BB
% deff_uc_V_uc = ---------
% V_uc

% deff_uc
% deff_uc_I_uc = ---------
% I_uc

% Voltaje en los condensadores en funcion de SOC_uc
%-----------------------------------------------------
V_cond = sqrt((2/C)*SOC_uc);

if (P_load > 0) %eff_boost Inicialmente dice P_load

deff_uc_V_uc = (I_uc*R_l+I_uc*R_cond)/V_cond^2;
deff_uc_I_uc = -(R_l+R_cond)*(V_bat^2*(V_bat^2-4*R_bat*I_uc^2*R_l-
4*R_bat*I_uc^2*R_cond+4*R_bat*I_uc*V_cond)^(1/2)-V_bat^3+4*V_bat*R_bat*I_uc^2*R_l+4*V_bat*R_bat*I_uc^2*R_cond-
4*V_bat*R_bat*I_uc*V_cond+2*V_cond*(V_bat^2-4*R_bat*I_uc^2*R_l-
4*R_bat*I_uc^2*R_cond+4*R_bat*I_uc*V_cond)^(1/2)*R_bat*I_uc)/(V_bat^2-4*R_bat*I_uc^2*R_l-
4*R_bat*I_uc^2*R_cond+4*R_bat*I_uc*V_cond)^(1/2)/(V_bat^2-V_bat*(V_bat^2-4*R_bat*I_uc^2*R_l-
4*R_bat*I_uc^2*R_cond+4*R_bat*I_uc*V_cond)^(1/2)+2*R_bat*I_uc*V_cond)/V_cond;

else
111

deff_uc_V_uc = (-I_uc*R_l-I_uc*R_cond)/(2*I_uc^2*R_l*R_cond-2*I_uc*R_l*V_cond-
2*V_cond*I_uc*R_cond+V_cond^2+I_uc^2*R_cond^2+I_uc^2*R_l^2);
deff_uc_I_uc = (V_cond*R_l+R_cond*V_cond)/(2*I_uc^2*R_l*R_cond-2*V_cond*I_uc*R_l-
2*V_cond*I_uc*R_cond+I_uc^2*R_l^2+V_cond^2+I_uc^2*R_cond^2);

end



% Derivada de la variacion del SOC_bat con respecto a I_uc
%---------------------------------------------------------

ddSOC_bat_I_uc = sqrt((2/C)*SOC_uc) * eff_uc * eff_bat * dT + ...
I_uc * dV_uc_I_uc * eff_uc * eff_bat * dT + ...
I_uc * sqrt((2/C)*SOC_uc) * deff_uc_I_uc * eff_bat * dT;



% Derivada de la I_uc con respecto a SOC_uc
%---------------------------------------------------------

% dI_uc dI_uc dV_uc
%--------- = --------- * ---------
% dSOC_uc dV_uc dSOC_uc

V_uc = sqrt((2/C)*SOC_uc);

dI_uc_SOC_uc = 0;

if I_uc > 0

D = (V_bat + 2*R_bat*I_uc - sqrt((-2*R_bat*I_uc - V_bat)^2 - 4*R_bat*I_uc*((R_l + R_cond + R_bat)*I_uc - V_uc +
V_bat)))/...
(2*R_bat*I_uc);
dI_uc_SOC_uc = 0;%(1/(R_l + R_cond + ((1-D)^2)*R_bat)) * dV_uc_SOC_uc;

elseif I_uc < 0
D = (V_bat - sqrt((-V_bat)^2 - 4*R_bat*I_uc*((R_l + R_cond)*I_uc + V_uc)))/(2*R_bat*I_uc);
dI_uc_SOC_uc = 0;%(-1/(R_l + R_cond + D^2*R_bat)) * dV_uc_SOC_uc;
end
112
ANEXO N 4: DETALLE DE RESULTADOS DE SIMULACIONES
Se adjunta tabla con los resultados de simulaciones del software de control
ptimo. Se simularon 30 recorridos y se compara con la descarga en las bateras cuando
se emplea el sistema de control de carga de los ultracapacitores.
Control de Carga Control Optimo Teorico
dato1_02-07 143.3 119.7 16.5%
dato2_02-07 449.9 441.2 2.0%
dato3_02-07 602.3 627.0 0.0%
dato4_02-07 638.0 626.8 1.8%
dato5_02-07 406.7 437.0 0.0%
dato6_02-07 351.6 326.2 7.2%
dato7_02-07 312.3 289.9 7.2%
dato8_02-07 659.2 683.4 0.0%
dato9_02-07 417.6 416.4 0.3%
dato1_03-07 217.2 198.5 8.6%
dato2_03-07 321.2 321.3 0.0%
dato3_03-07 407.1 405.2 0.5%
dato4_03-07 471.5 476.0 0.0%
dato5_03-07 217.7 169.2 22.3%
dato6_03-07 203.5 195.4 4.0%
dato7_03-07 403.5 365.2 9.5%
dato8_03-07 601.92 641.3 0.0%
dato9_03-07 264.94 219.2 17.2%
dato3_09-06 412.17 444.8 0.0%
dato1_19-12 589.67 567.2 3.8%
dato1_27-01 419.22 415.2 1.0%
dato_prac_soc02-04-03 376.85 372.3 1.2%
dato_prac_soc01-04-03 405.54 393.5 3.0%
dato_prac_soc03-04-03 400.11 386.5 3.4%
dato_prac_soc06_05-03 312.48 268.9 13.9%
dato_prac_soc02_08-03 575.43 541.8 5.8%
dato_prac_soc05_10-03 434.17 430.8 0.8%
dato_prac_soc03_26-03 425.7 420.9 1.1%
dato_prac_soc04_26-03 406.4 372.0 8.5%
dato_prac_soc03_30-03 399.0 374.2 6.2%
Promedio 4.9%
Descarga de las Baterias Mejora %
desc. bat
Nombre Archivo

Tabla A4.1: Simulacin de la descarga en las bateras con sistema de control
ptimo y control con control de carga.
Nota: El caso en que se tiene una mejora de 0%, negativa en estricto rigor, se
debe a que los condensadores quedan con un estado de carga mayor que en la estrategia
de control de carga.
113
ANEXO N 5: TEOREMA DE APROXIMACIN UNIVERSAL DE FUNCIONES
Sea ( ) una funcin continua, no constante, acotada y montonamente
creciente. Sea I
m0
una representacin del hipercubo unitario de dimensin m
0
, [0,1]
m
0
. El
espacio de funciones continuas en I
m0
est dado por C(I
m0
). Luego, dada cualquier
funcin ( )
0
m
I C f y un 0 > , debe existir una constante m
1
y un conjunto de
constantes reales
i
,
i
b , y
j i,
, donde i = 1, , m
1
y j = 1, , m
0
de modo que se
puede definir:
( )

= =
|
|
.
|

\
|
+ =
1
1
0
1
,
0
1
, ,
m
i
i
m
j
j j i i m
b x x x F K
como una aproximacin de la funcin ( ) f , de modo que:
( ) ( ) <
0
1
0
1
, , , ,
m m
x x f x x F K K
para todos los x
1
, x
2
, ,x
m0
que pertenecen al espacio de entrada.

114
ANEXO N 6: DETALLE DE LA RED NEURONAL ENTRENADA
La siguiente tabla muestra los coeficientes (pesos) de la red neuronal
implementada.
Tabla A6.1: Coeficientes de la Red Neuronal obtenidos con MATLAB
I(1) I(z-1) P(1) P(z-1) V(1) V(z-1) E(1) E(z-1) offset
0.09326166 0.0062637 -0.31624943 -0.01443101 0.004894 -0.00449948 -0.00024917 0 0.11139364
0.00823758 0 0.00117113 0.00015189 0.00016281 -0.00016264 0 0 -0.80734457
-0.09842342 -0.00619975 0.24583612 0.02001523 -0.00457347 0.00488039 0 0 0.2775231
0.01909002 0 0.00175983 0.00043487 -0.00019756 0 0 8.7304E-05 0.81467831
Neurona 4
Coeficientes Red Neuronal
Primera Capa
Neurona 1
Neurona 2
Neurona 3

N1 N2 N3 N4 offset
15.907036 147.254062 16.0595611 97.8801759 14.3275784
Segunda Capa

Para implementar la red en el DSP se utiliz la representacin de los
nmeros en formato Q15. La tabla A6.2 muestra el resultado.
Tabla A6.2: Representacin de los coeficientes en formato Q15 en el DSP
I(1) I(z-1) P(1) P(z-1) V(1) V(z-1) E(1) E(z-1) offset
3055 205 -10362 -472 160 -147 -8 0 3650
269 0 38 4 5 -5 0 0 -26455
-3225 -203 8055 655 -149 159 0 0 9093
625 0 57 14 -6 0 0 2 26695
Neurona 3
Neurona 4
Coeficientes Red Neuronal Q15
Primera Capa
Neurona 1
Neurona 2

115
N1 N2 N3 N4 offset
2036 18848 2055 12528 1833
Segunda Capa


Estos nmeros fueron implementados en una tabla en la memoria de
programa del DSP, de esta forma se permite el acceso simultaneo para su multiplicacin,
a el dato proveniente de la captura anloga digital y el peso correspondiente, en una sola
instruccin.
Finalmente, la siguiente tabla ilustra cuales seran los pesos reales de la
Red al utilizar la representacin en formato Q15. Esto es porque, en dicha representacin
se incurre en una pequea perdida de informacin dada por la resolucin del formato.
Tabla A6.3: Coeficientes reales de la Red Implementada en el DSP.
I(1) I(z-1) P(1) P(z-1) V(1) V(z-1) E(1) E(z-1) offset
0.0932312 0.0062561 -0.31622314 -0.0144043 0.00488281 -0.00448608 -0.00024414 0 0.11138916
0.00820923 0 0.00115967 0.00012207 0.00015259 -0.00015259 0 0 -0.80734253
-0.09841919 -0.00619507 0.24581909 0.01998901 -0.00454712 0.00485229 0 0 0.27749634
0.01907349 0 0.0017395 0.00042725 -0.00018311 0 0 6.1035E-05 0.81466675
Coeficientes Red Neuronal Ajustados Q15
Primera Capa
Neurona 1
Neurona 2
Neurona 3
Neurona 4

N1 N2 N3 N4 offset
15.90625 147.25 16.0546875 97.875 14.3203125
Segunda Capa


116
ANEXO N 7: TABLA DE VALIDACIN RED NEURONAL
Tabla A7.1: Resultados de Validacin Red Neuronal
Error rms
Corriente Media
(absoluta)
dato1_02-07 0.15 19.6
dato2_02-07 0.02 36.2 (*)
dato3_02-07 0.15 36.9
dato4_02-07 0.24 36.0
dato5_02-07 0.07 45.5
dato6_02-07 0.10 41.6 (*)
dato7_02-07 0.10 35.3
dato8_02-07 0.27 62.4
dato9_02-07 0.02 42.6 (*)
dato1_03-07 0.11 23.5
dato2_03-07 0.02 30.8 (*)
dato3_03-07 0.03 27.7
dato4_03-07 0.09 34.4
dato5_03-07 0.13 23.8
dato6_03-07 0.11 24.5
dato7_03-07 0.01 42.1 (*)
dato8_03-07 0.15 34.2
dato9_03-07 0.12 28.5
dato3_09-06 0.05 35.8
dato1_19-12 0.03 56.9
dato1_27-01 0.02 44.4
dato_prac_soc02-04-03 0.03 41.7
dato_prac_soc01-04-03 0.07 50.6
dato_prac_soc03-04-03 0.07 37.5
dato_prac_soc06_05-03 0.09 26.2
dato_prac_soc02_08-03 0.03 42.4
dato_prac_soc05_10-03 0.03 39.2
dato_prac_soc03_26-03 0.03 43.4
dato_prac_soc04_26-03 0.07 36.4
dato_prac_soc03_30-03 0.04 44.2
Promedio 0.09 37.2
0.24%
(*) Datos utilizados durante el entrenamiento
Nota: - En los valores promedio no se consideraron los datos
de entrenamiento
Nombre Archivo
Estimacin de Corriente Optima
% Error de Estimacin

117
ANEXO N 8: FORMATO NUMRICO DIGITAL Q
M,N
(Q
N
)
En un formato Q
m,n
se utilizan m bits para representar en complemento de 2
la parte entera de un nmero y n bits para representar en complemento de 2 la parte
fraccionaria. Son necesarios m + n + 1 bits para almacenar un nmero en formato Q
m,n
.
El bit extra es usado para almacenar, en la posicin ms significativa, el signo del
nmero. El rango entero representable es (-2
m
, 2
m
2
-n
) con una resolucin de 2
-n
.
A modo de ejemplo, para el caso de un sistema digital de 16 bits y su uso
con una representacin numrica con formato de Q
4,12
Q
12
, se utilizan 3 bits para
representar nmeros enteros, 12 para cantidades fraccionarias y 1 bit de signo.

S E E E d d d d d d d d d d d d
La resolucin del formato es:
5 0002441406 . 0
2
1
12
=
La correspondencia entre la magnitud interpretada y el valor de 16 bit del
DSP es la siguiente:
( ) ( ) 32767 : 32768 8 9997558593 . 7 : 8
o en formato hexadecimal
( ) ( ) FFFh 7 : 8000 8 9997558593 . 7 : 8
Grficamente lo anterior es representado de la siguiente manera:
118

Figura A8.1: Correspondencia entre valores decimales y enteros para
representacin digital en formato Q
12
.
De la misma forma en que se define el formato Q
12
es posible definir
cualquier otro formato, por ejemplo: Q
8
, Q
15
, etc.
Reglas para la operacin con nmeros en este tipo de notacin:
n m n m
m m m
Q Q Q
Q Q Q
+
=
= +
. 2
. 1

La multiplicacin de dos nmeros en formato Q
12
se obtiene de la siguiente
forma:

Figura A8.2: Multiplicacin de nmeros en formato Q
12
.
Dado que la multiplicacin suma el nmero de cifras decimales, el
resultado debe ser truncado para poder representarlo en 16 bits del DSP. Los 12
119
primeros bits, los menos significativos, se eliminan, quedando slo los 16 bits ms
significativos que representan el resultado de la multiplicacin.
Se debe tener especial cuidado con la multiplicacin, ya que es fcil que
ocurran overflow debido a la operacin con nmeros grandes. Por ello, es importante
tener claro el tipo de cantidades que se operan y los rangos que stas ocupan.
120
ANEXO N 9: PROGRAMA IMPLEMENTADO EN EL DSP
Se adjunta el programa implementado en el DSP.
;***************************************************************
;* *
;* Implementacin de Red Neuronal en DSP *
;* Control de Flujos de Energia en HEV *
;* *
;***************************************************************

;1.- Funciona el Control de Corriente en el lado de baja tensin.
;2.- Funciona la transmisin de los distintos datos al PC.
;3.- Funciona el Clculo de I_ref por la Red Neuronal
;4.- Se corrigi el error de 3% en la medicin de voltaje
;5.- Probar la velocidad de muestreo de la Red (10 - 11 Hz)

;================================================================
.include "243_dsk.h"
;============================================================
;================================================================
;Definicin de variables
.bss TABLA_CARGA, 1 ;dir 514
.bss CODIGO_FALLA, 1 ;dir 584
.bss IFILT, 1 ; 585
.bss V_BATT, 1 ; 586
.bss V_COND, 1 ; 587
.bss IREF, 1 ; 588
.bss ANA3, 1
.bss VELOCIDAD, 1 ; 590.
.bss ANA5, 1
.bss REF_CARGA, 1 ; 592
.bss AH, 1 ; 593
.bss I_UC, 1 ; 96
.bss I_BB, 1 ; 600
.bss PWM, 1 ; 1
.bss ERROR, 1 ; 2
.bss IANTERIOR, 1 ; 3
.bss ACCALTO,1 ; 4
.bss ACCBAJO, 1 ; 5
.bss KP, 1 ; 6
.bss KI, 1 ; 7
.bss KP1, 1 ; 8
.bss KI1, 1 ; 9
.bss I_LIM, 1 ; 10
.bss V_LIM, 1 ; 11
.bss CERO, 1 ; 12
.bss FRECUENCIA, 1 ; 13

.bss MODO, 1 ; 16
.bss I_BATT, 1 ; 17
.bss ANA01, 1 ; 18
.bss ANA02, 1 ; 19
.bss ANA03, 1 ; 20
.bss ANA04, 1 ; 21
.bss IREF_TEMP, 1 ; 22
.bss IANTERIOR2, 1 ; 23
.bss PWM_TEMP, 1 ; 24
121
.bss CONTADOR_AH, 1 ; 25
.bss SIGN, 1 ; 26
.bss SIGN_TEMP, 1 ; 27
.bss CONT, 1 ; 28
.bss IANT_CARGA2, 1 ; 31
.bss SALIDA2, 1 ; 32
.bss TEMP,1 ; 33
.bss CARGA, 1 ; 35
.bss CONTADOR_RX, 1 ; 37
.bss CONTADOR_TX, 1 ; 38
.bss CONTADOR_COMM, 1 ; 39
.bss I_LOAD, 1 ; 42
.bss CONT_DIV, 1 ; 44
.bss DIVISION_ALTO,1 ; 45
.bss DIVISION_BAJO,1 ; 46
.bss V_BATT_2, 1 ; 48
.bss MULTIPLO,1 ; 49
.bss READY, 1 ; 53
.bss READY2, 1 ; 54
.bss CONTADORSPI, 1 ; 55
.bss CONTADORSPI_TX, 1 ; 56
.bss CONTADORSPI_RX, 1 ; 57
.bss DIRSPI, 1 ; 58
.bss BUFFERSCI, 1 ; 59
.bss FLAG_HISTERESIS, 1 ; 60
.bss FLAG_FALLA, 1 ; 61
.bss FLAG_ESCALA, 1 ; 62
.bss DIRECCION_PEDIDA, 1 ; 63
.bss REGISTRO_PRUEBA, 1 ; 64
.bss DIVISOR, 1 ; 65
;*********** Variables Red Neuronal ***********************
.bss CONTADOR_REFERENCIA, 1
.bss TEMP_NEURONA, 2
.bss NEURONA, 1
.bss I_NEURONA, 4
.bss COMPRUEBA, 1
.bss DATOS_RED, 9

;----------------------------------------------------------
;Definicin de variable global
.global INICIO

;================================================================
;================================================================

.sect "vectors"
RSVECT B 1F00h

INT1 B GISR1 ;Int externas
INT2 B GISR2 ;Int Timer 1
INT3 B PHANTOM ; PM 6 Int level 3
INT4 B INT4_ISR ; PM 8 Int level 4
INT5 B INT5_ISR ; PM A Int level 5
INT6 B PHANTOM ; PM C Int level 6
;================================================================

;Inicializaciones generales

.text

122
INICIO
LDP #0h
SETC INTM ;Interrupt mode,
CLRC CNF ;DARAM config, 1=RAM para datos.
CLRC SXM ;Sign extension, 0=supress extension.
CLRC OVM ;Overflow mode, 0=resultado de overfl va al acc.
SETC XF ;XF es un flag externo, 0=pin en low.
SPLK #0000h, IMR ;Mascaras de interrupcin (1-6).
LDP #0E0h
SPLK #068h, WDCR ;Desabilita el Watch Dog timer.

; Configuracin PWM
LDP #0E8h
SPLK #00000h, T1CNT ;Inicializo contadores en 1.
SPLK #00000h, T2CNT
SPLK #00000h, T1CMPR ;Se inicia en PWM=0.
SPLK #00000h, T2CMPR
SPLK #00320h, T1PR ;Seteo Perodo timer a 833 ciclos
SPLK #01187h, T2CON ;Seteo de control del contador 2.
SPLK #01146h, T1CON ;Seteo de control del contador 1.
SPLK #00045h, GPTCON ;enciendo los pwm.



;Configuracin de Comparadores del modulo Capture
SPLK #00h, CAPFIFO
SPLK #0010001001010000b, CAPCON


;=====================================================================
; Borrar datos en la RAM
;=====================================================================
LAR AR0,#0200h ; AR2 -> B0 start address
MAR *,AR0 ; Set ARP=AR2
ZAC ; Set ACC = 0
RPT #0255 ; Set repeat cntr for 255+1 loops
SACL *+ ; Write zeros to B0 RAM
LDP #04h
;*********************************************************************
; Inicializacion Variables Red Neuronal
;*******************************************************************
SPLK #00000h, CONTADOR_REFERENCIA
SPLK #00001h, DATOS_RED ; peso del offset de la neurona
SPLK #00001h, NEURONA
;=====================================================================


;Bloque de Configuracin Puertos I/O
LDP #000E1h ;Pgina 225 (7080h)
SPLK #0301Fh, OCRA ;Registro de control de puertos de entrada y
SPLK #0031Ch, OCRB ; salida.
SPLK #0E000h, PADATDIR ;Configura los pines del Puerto A para lectura
SPLK #0CF00h, PBDATDIR ;Configura los pines del Puerto B para lectura
SPLK #06020h, PCDATDIR
SPLK #00000h, PDDATDIR

;Bloque Conversores A/D
LDP #00E0h
SPLK #00000h, ADCTRL2
SPLK #3910h, ADCTRL1 ;Se inicia conversin de datos 0 y 1
123
ESPERA10 BIT ADCTRL1, 7
BCND ESPERA10, NTC
LACL ADCFIFO1 ;Clear ADC FIFOs
LACL ADCFIFO1
LACL ADCFIFO2 ;Clear ADC FIFOs
LACL ADCFIFO2

;Configuracin SPI
SPLK #00h, SPICCR
SPLK #0Ah, SPIBRR
SPLK #00000110b, SPICTL
SPLK #040h, SPIPRI
SPLK #10001111b, SPICCR



;=====================================================================
; Inicializacin de rutina de comunicacin
;=====================================================================
SCI_INIT: LDP #00E0h
SPLK #0027h, SCICCR ;1 stop bit,odd parity,8 char bits,
;async mode, idle-line protocol
SPLK #0003h, SCICTL1 ;Disable RX ERR, SLEEP, TXWAKE
SPLK #0003h, SCICTL2 ;Enable RX INT,enable TX INT
SPLK #0000h, SCIHBAUD
SPLK #0040h, SCILBAUD ;Baud Rate=38400 b/s (20 MHz SYSCLK)
SPLK #0023h, SCICTL1 ;Relinquish SCI from Reset.
SPLK #0060h, SCIPRI ;Prioridad baja para el SCI

LAR AR1, #SCITXBUF ;Load AR0 with SCI_TX_BUF address
LAR AR2, #SCIRXBUF ;Load AR1 with SCI_RX_BUF address


;================================================================
;Bloque principal
;================================================================

;Lectura de Ah y parametros en mem Flash

CALL LEER_PARAM_FLASH
CALL LEER_AH_FLASH
LDP #04
LACL CERO
SACL IANT_CARGA2

SPLK #0, MODO ;****** TEMPORAL

;================================================================
;Seteo de interrupciones
;================================================================
LDP #0h
LACC IFR ;Load ACC with Interrupt flags
SACL IFR ;Clear all pending interrupt flags
CLRC INTM ;Enable interrupts

SPLK #011011b, IMR ;Desenmascaro (INT1 e) INT2

LDP #0E0h
SPLK #0101b, XINT1CR ;Configuracin de las interrupciones
SPLK #0101b, XINT2CR ; externas.
124

LDP #0E8h
SPLK #080h, EVIMRA ;habilita interrupcin de periodo1.
SPM #00h
SPLK #03h, EVIMRC ;habilita interrupcin de captura


LDP #04h ;Se almacena el cero en el registro de
LACL CERO ;integracin del control de corriente de
SACL IANT_CARGA2 ;referencia para que no parta en otro valor.

;================================================================
;LOOP principal, dummy
;================================================================
LOOP LDP #04h
LACL FRECUENCIA
LDP #0E8h
SACL T1PR
LDP #0E1h ;Esta parte del Loop verifica que est prendido
BIT PCDATDIR, 8 ;el inversor principal de la camioneta para
BCND NO_READY, NTC ;setear el bit Ready.
LDP #04h
SPLK #01h, READY
SPLK #01h, READY2
B XXXX
NO_READY LDP #04h
SPLK #00h, READY
BIT READY2, 15
; CC ESCRIBIR_AH_FLASH, TC


XXXX LDP #0E1h ;en el loop principal solo se verifica una
BIT PDDATDIR,15 ;entrada digital para ver si el AH counter
BCND RESETEA_AH, NTC ;tiene valores negativos, si es as se
B LOOP ;resetea a cero la cuenta de AH en el DSP.

RESETEA_AH LDP #04
LACL AH
SPLK #00h, AH
CC ESCRIBIR_AH_FLASH, NEQ ;la cuenta de AH en el DSP se guarda en el

;Registro de codigo de falla.
B LOOP
;****************************************************************
; FUNCIONES DE RED NEURONAL
;****************************************************************
CARGA_DATOS_RED ;;;;; OJO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
SETC SXM ;;;;; HAY QUE CORREGIR LA CORRIENTE DE
LACC I_LOAD ;;;;; CARGA CUANDO ESTA ES NEGATIVA
BCND CORRIGE_I_LOAD, LT ;;;;; CREO QUE POR UN FACTOR DE 0.85
CLRC SXM ;;;;; ESTO POR Efecto de Descalibracion del
SACL DATOS_RED + 1; CORRIENTE;;;;; pedal
SACL TEMP_NEURONA
B NO_CORRIGE
CORRIGE_I_LOAD
SPM #3
LT I_LOAD
MPY #03Ah ;0.85 EN Q6... se cambio por 0.9
PAC
SACL DATOS_RED + 1
125
SACL TEMP_NEURONA
SPM #0
CLRC SXM
NO_CORRIGE
SPM #3
LT TEMP_NEURONA
MPY TEMP_NEURONA
PAC
RPT #2
SFR
SACL DATOS_RED + 3 ; POTENCIA
SPM #0
LACL VELOCIDAD
SACL DATOS_RED + 5 ; VELOCIDAD
LT VELOCIDAD
MPY VELOCIDAD
PAC
RPT #4
SFR
SACL DATOS_RED + 7 ; ENERGIA

RET

CALCULA_NEURONA_CAPA1

LDP #4
SPM #0
LAR AR6, #DATOS_RED + 8 ; Estn en Q0
MAR *, AR7
LACC #0h
MPY #0h ; PREG = 0
SETC SXM ; Se distingue en qu neurona
LACC *, AR6 ; de la capa 1 est
SUB #01h
BCND N1, EQ
SUB #01h
BCND N2, EQ
SUB #01h
BCND N3, EQ
SUB #01h
BCND N4, EQ
N1 RPT #8
MAC #NEURONA_1, *- ; Los pesos de la red estn en Q15
B SUMA_OFFSET
N2 RPT #8
MAC #NEURONA_2, *-
B SUMA_OFFSET ;NEURONA_X corresponde a los pesos asignados
N3 RPT #8 ;a cada neurona.
MAC #NEURONA_3, *-
B SUMA_OFFSET
N4 RPT #8
MACD #NEURONA_4, *-
SUMA_OFFSET APAC ; se suma el offset de la neurona
LAR AR6, #TEMP_NEURONA
MAR *, AR6
SACH *+
SACL *-
SFL ; ver caso en que Q13 no alcance a
SACH COMPRUEBA ; representar el nmero... esto es
LACC COMPRUEBA ; que sea mayor que 4
126
SUB #04h
BCND SATURA_POS, GEQ
LACC COMPRUEBA
ABS
SUB #04h
BCND SATURA_NEG, GEQ
CLRC SXM ; dejo la salida del "filtro" en Q13
LACC *+, 16 ; para normalizarlo por 4... que seria el mximo
ADD *-, AR5 ; de salida de una neurona suponiendo que esta
SETC SXM ; opera en la zona -4:4 ..... se deja igual y
RPT #1 ; se hace como entrada a la funcion tanh
SFR ; considerando como si fuese Q15
SACL *
B ESCALA
SATURA_POS SPLK #07FFFh, *
B ESCALA ;Si es mayor que 4 o menor que -4 se satura
SATURA_NEG SPLK #08000h, *

ESCALA CLRC SXM
LACC *
BIT *, 0
BCND ESCALA_POS, NTC ;Como la entrada a la tabla tanh est de
BCND ESCALA_NEG, TC ; 0 -> 255h... se debe escalar... esto corres
ESCALA_POS ADD #08000h ;ponde a -4 a 4
SACL *
B EVALUA_TANH
ESCALA_NEG SETC SXM
LACC *
ABS
SACL *
LACC #08000h
SUB *
SACL *
EVALUA_TANH ; Se calcula la tanh.
SETC SXM ; para ello se lee una tabla de 255 valores
LACL *, AR6 ; y se interpola entre numeros sucesivos.

SFL
SACH *+,7 ; se ven los 8 digitos ms significativos
; y se guardan en temp(1). Los 8 menos significativos
AND #01FEh ; se guardan en temp(2)
SACL *-,6

LACC #TANH_TABLE
ADDS *

TBLR *+
LT *
ADD #1h
TBLR *

LACL *-
SUB *+
SACL *
MPY *
PAC
SACH *-,1

LACC *+
ADD *-, AR5
127
;BCND FIN_TANH, GEQ ;Esto se hace para que los numeros negativos queden
;ABS ;en formato Q15...similar a planilla excel pero
CLRC SXM ;no es necesario.. ya que deben ponerse como
;ADD #08000h ;entrada a "CALCULA_NEURONA_CAPA2".........
FIN_TANH SACL *+, AR7 ;Ahora, pongo el putero en la siguiente neurona
LACL * ;#I_NEURONA y NEURONA se incrementan
ADD #01h
SACL * ;La salida se entrega en Q15

RET

CALCULA_NEURONA_CAPA2

LDP #4
SPM #3
LAR AR6, #I_NEURONA + 3 ; Estn en Q15
MAR *, AR6
LACC #0h
MPY #0
SETC SXM
RPT #3
MAC #CAPA_2, *- ; los pesos de la red estn en Q7
APAC
RPT #8
SFR
ADD #0729h ; Le agrego el offset en Q7
RPT #5 ; Lo tengo que dejar en Q1
SFR
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ESTO ES NUEVO... PARA DISMINUIR LAS CORRIENTES POSITIVAS
; DE REFERENCIA......... SOLO PARA PROBAR
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BCND CORRIGE_SALIDA, GT
SACL SALIDA2
B NO_CORRIGE_SALIDA
CORRIGE_SALIDA
SACL SALIDA2
SUB #06h
BCND AFIRMATIVO, GEQ
LT SALIDA2
MPY #010h
PAC
AFIRMATIVO
SACL SALIDA2
NO_CORRIGE_SALIDA
CLRC SXM
SPM #0
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ESCALA_IREF SETC SXM
LT SALIDA2
MPY #0FFFFh ;MULTIPLICO POR -1
PAC
ADD CERO
CLRC SXM
SACL SALIDA2
RET
;****************************************************************
128
;****************************************************************
;Escritura de Ah
;================================================================
; Interrupcin por falla
;================================================================

GISR1 MAR *,AR0 ;Esta es la pequea rutina que almacena
lAR AR0,#0200h ;los valores de configuracin al entrar a
SST #1, *+ ;una Interrupcin. se guarda ST0 y ST1,
SST #0, * ;adems de el acumulador alto y bajo.

LDP #04h
SACL ACCBAJO
SACH ACCALTO

LDP #0h
LDP #0E0h
LACL PIVR ;Se carga el Periferal Interrupt Vector,
SUB #01h ;Para ver si la falla fue en el IGBT 1 o 2.
BCND FALLA1, EQ
LACL PIVR
SUB #011h
BCND FALLA2, EQ
B SALIDA


FALLA1 LDP #0E0h
LACL XINT1CR ;se borra el flag de interrupcin
SACL XINT1CR
LDP #04h ;Falla en IGBT1
SPLK #01, FLAG_FALLA
B SALIDA
FALLA2 LDP #0E0h
LACL XINT2CR ;se borra el flag de interrupcin
SACL XINT2CR
LDP #04h
SPLK #02, FLAG_FALLA
B SALIDA

SALIDA LDP #04h
LACL ACCBAJO ;Se recupera el acumulador y los
LACC ACCALTO, 16 ;registros de estado
MAR *, AR0
LAR AR0,#0201h
LST #0, *- ; load ST0
LST #1, * ; load ST1
CLRC INTM
RET


;================================================================
; Interrupcin de conversin A/D y PI
;================================================================

GISR2 MAR *,AR0 ;Almacenaje de datos para la int.
lAR AR0,#0200h

SST #1, *+ ; save ST1
SST #0, * ; save ST0
SETC XF
129
LDP #04h
SACL ACCBAJO
SACH ACCALTO

RPT #120
NOP
LDP #0E0h
SPLK #00000h, ADCTRL2
SPLK #3910h, ADCTRL1 ;Se inicia conversin de datos 0 y 1
ESPERA1 BIT ADCTRL1, 7
BCND ESPERA1, NTC
SPLK #3934h, ADCTRL1 ;Se inicia conversin de datos 2 y 3
ESPERA2 BIT ADCTRL1, 7
BCND ESPERA2, NTC
LACC ADCFIFO1, 10 ;Se guardan datos 0 y 2
LDP #04h
SACH I_UC
LDP #0E0h
LACC ADCFIFO1, 10
LDP #04h
SACH V_COND
LDP #0E0h
LACC ADCFIFO2, 10 ;Se guardan datos 1 y 3
LDP #04h
SACH V_BATT
LDP #0E0h
LACC ADCFIFO2, 10
LDP #04h
SACH ANA3


LDP #0E0h
SPLK #3958h, ADCTRL1 ;Se inicia conversin de datos 4 y 5
ESPERA3 BIT ADCTRL1, 7
BCND ESPERA3, NTC
LACC ADCFIFO1, 10 ;Se guardan datos 4 y 6
LDP #04h
SACH VELOCIDAD
LDP #0E0h
LACC ADCFIFO2, 10 ;Se guardan datos 5 y 7
LDP #04h
SACH ANA5

;================================================================
;FITRO
DMOV ANA03 ;Se suman los ultimos cuatro valores
DMOV ANA02 ;de corriente y se dividen por 4
DMOV ANA01 ; (promedio movil simple)
LACL I_UC
SACL ANA01
ADD ANA02
ADD ANA03
ADD ANA04
SFR
SFR
SACL IFILT
LACL CERO
ADD CERO
SUB IFILT
SACL IFILT
130
;================================================================
;Ajuste de Voltaje
LACL V_BATT ;Se carga el valor de voltaje de
SFR ;Batt y se divide por dos, para
SACL V_BATT ;obtener el valor real, se guarda.


;================================================================
;Control de carga
;================================================================
;Valor de carga real Corregida

LACL V_COND
SFR
SACL V_COND
LT V_COND ;ESTO ES NUEVO, PARA CORREGIR EL ERROR
SPM #03 ;EN LA MEDICION DE VOLTAJE
MPY #0F89h ;multiplico por 0.971 en Q12
PAC
RPT #05
SFR
SACL V_COND
SPM #0 ;--------------------------------------
LACL CERO
SUB IFILT ;(IFILT - CERO)/16=~(IFILT - CERO)/(2*7.5).
BCND C_NEG, C
LACL IFILT
SUB CERO
RPT #03
SFR
SACL I_BB
LACL V_COND
SUB I_BB
SACL I_BB
BCND NO_CERO,C
ZAC
B NO_CERO
C_NEG RPT #03
SFR
SACL I_BB ;Se guarda el valor de la operacin como I_BB.
ADD V_COND ;a esto se le resta I_BB, *** ;***
NO_CERO SACL I_BB ;con esto se calcula la tensin del condensador,
SQRA I_BB ;corregida con la corriente, y elevada al cuadrado.
PAC
SFL ;se divide por 256, ya que 300^2=90.000
SACH CARGA, 7 ;y ese numero no cabe en 16 bits
;================================================================
; Valor de ref. de carga ;Se asume que el divisor de tensin se ha ajustado
;para que a 6825 RPM (o 6,825 V) se tengan 5 V en
LACC VELOCIDAD, 13 ;el ADC, 6825 RPM equivale a 130 KPH =~ 1023/8
SACH VELOCIDAD ;se almacena como velocidad la entrada analoga

;================================================================
;Verificacin de comunicain y Bit Ready.

LDP #04h
BIT READY, 15
BCND MODO_0, NTC

LDP #04h ;cuando se esta funcionando conectado
131
LACL MODO ;a un PC y se hacen pruebas de PWM
SUB #03h ;fijo o ref de corriente fija, se debe
BCND VALIDA_FALLA, EQ ;tener la precaucin de comprobar que
;existe comunicacin para continuar
LACL CONTADOR_COMM ;ya que si no se puede sobrecargar el
SUB #24000 ;ultracapacitor, esto evita que el
BCND OK, NC ;equipo quede a la deriva con corriente.
SPLK #0, MODO ;Si se ha perdido la comunicacin se
;hace cero la corriente y se pasa a
SPLK #01, CODIGO_FALLA ;modo CERO, o sea apagado.
SPLK #00, CONTADOR_COMM ;OJO que si se deja el equipo en
OK ADD #24001 ;MODO_3 y se pierde la conexin
SACL CONTADOR_COMM ;el eqipo sigue funcionando.

;================================================================
;Rutina para verificar que las fallas detectadas sean reales y no solo Ruido.

VALIDA_FALLA
LDP #04h
BIT FLAG_FALLA, 15
BCND PRUEBA_FALLA2, NTC
SPLK #10000b, FLAG_FALLA
LDP #000E1h ;Pgina 225 (7080h)
SPLK #0301Bh, OCRA
BIT PADATDIR, 13
BCND NOHAY, NTC
LDP #000E1h ;Pgina 225 (7080h)
SPLK #0301Fh, OCRA
LDP #04h ;Falla en IGBT1
SPLK #02, CODIGO_FALLA ;almaceno el codigo de falla corresp.
B APAGA
NOHAY LDP #000E1h ;Pgina 225 (7080h)
SPLK #0301Fh, OCRA
LDP #04h
PRUEBA_FALLA2
BIT FLAG_FALLA, 14
BCND NOFALLA, NTC
SPLK #100000b, FLAG_FALLA
LDP #000E1h
SPLK #0011Ch, OCRB
BIT PDDATDIR, 14
BCND NOHAY2, NTC
LDP #000E1h
SPLK #0031Ch, OCRB
LDP #04h
SPLK #03, CODIGO_FALLA
APAGA SPLK #00h, MODO ;pasamos a modo cero
LDP #0E8h
SPLK #00000h, T1CMPR ;se apagan los PWMs
SPLK #00000h, T2CMPR
LDP #0E1h
SPLK #0CF40h, PBDATDIR ;Se prende la luz de falla

NOHAY2 LDP #000E1h
SPLK #0031Ch, OCRB
NOFALLA LDP #04h
BIT CODIGO_FALLA, 15
BCND CODIG_1, NTC
LDP #0E1h
SPLK #0CF40h, PBDATDIR
132
LDP #04
CODIG_1 LACL CODIGO_FALLA
BCND MODO_0, NEQ

;================================================================
; SELECCIN DE MODO DE FUNCIONAMIENTO
LACL MODO ;Verifica el modo de funcionamiento
BCND MODO_0, EQ ;y salta al codigo correspondiente.
SUB #01h
BCND MODO_1, EQ
LACL MODO
SUB #02h
BCND MODO_21, EQ
LACL MODO
SUB #03h
BCND MODO_3, EQ
SPLK #0, MODO
B MODO_0
;================================================================
;Calculo del error, saturacin y control PI

MODO_3 LDP #04h
LACL V_COND ;Al encender el sistema primero hay que cargarlo con
SUB #20 ;corrientes moderadas, para esto se hace una
escala
SPLK #525, IREF ;de corrientes hasta los 80 volts para cargar en forma
BCND MODO_2, NC ;lenta.
LACL V_COND
SUB #50
SPLK #545, IREF
BCND MODO_2, NC
LACL V_COND
SUB #80
SPLK #575, IREF
BCND MODO_2, NC


;================================================================
;Control de corriente de batt
LACL ANA3 ;se carga el valor de corriente
SUB #512 ;de carga, se centra en cero ??????"SUB #512"
BCND CORR_NEG, NC ;si I_load era neg se salta.
LDP #04h
SACL I_LOAD ;si no se guarda y se escala:
LT I_LOAD ;para escalar se multiplica por
MPY #300 ;300 y luego se divide por 512
PAC
RPT #8
SFR
SACL I_LOAD ;************** arreglar problema del cero y linker!!!!
B ADELANTE ;salto adelante.
CORR_NEG LDP #04h
SACL I_LOAD
LT I_LOAD ;la multiplico por 200 y la divido
MPY #200 ;por 512, segun la escala de la
PAC ;fuente de datos.
RPT #8
SFR
SACL I_LOAD ;guardo.
ADELANTE
133
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

LACC CONTADOR_REFERENCIA
ADD #01h
SACL CONTADOR_REFERENCIA
SUB #049Ah
BCND CALCULA_REF, EQ
B MODO_21

CALCULA_REF
LDP #000E1h
LACL PBDATDIR
ADD #00002h
SACL PBDATDIR

LDP #04h
LAR AR7, #NEURONA
LAR AR5, #I_NEURONA

CALL CARGA_DATOS_RED
CALL CALCULA_NEURONA_CAPA1
CALL CALCULA_NEURONA_CAPA1
CALL CALCULA_NEURONA_CAPA1
CALL CALCULA_NEURONA_CAPA1
SUB #04h
SACL * ;Dejo el puntero en la neurona 1
CALL CALCULA_NEURONA_CAPA2

SPLK #00000h, CONTADOR_REFERENCIA

CALL ESCALA_IREF

LDP #000E1h
LACL PBDATDIR
AND #0FFFDh
SACL PBDATDIR
LDP #04h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Ajuste de ref de corriente para escala de voltaje de condensador
MODO_21 LDP #04
LACL SALIDA2
SACL IREF
;================================================================
;Control de corrientes maximas para buck_boost y carga minima
;la corriente maxima se fija en 200
; LACL IREF ;compruebo que este por debajo
ADD #320
SUB CERO ;de este valor, si no, se fija al
BCND MAX_NEG, C ;tope.
LACL CERO
SUB #320
SACL IREF
MAX_NEG LACL CERO ;lo mismo para el maximo negativo
ADD #320
SUB IREF ;que es -200.
134
BCND MAX_POS, C
LACL CERO
ADD #320
SACL IREF
MAX_POS LACL CARGA ;si la carga es mayor que 22500
SUB #351 ;(que es el maximo) se impiden las
BCND V_MAX, NC ;corrientes negativas, es decir
LACL IREF ;no se permite cargar mas los
SUB CERO ;condensadores.
BCND V_MAX, NC
LACL CERO
SACL IREF
V_MAX LACL CARGA ;si la carga es menor que 2250
SUB #35 ;(que es el minimo 10%) se impiden
BCND V_MIN, C ;las corrientes positivas, es decir
LACL IREF ;no se permite descargar los
SUB CERO ;condensadores.
BCND V_MIN, C
LACL CERO
SACL IREF
V_MIN

B MODO_2

;=====================================================================

MODO_0 LDP #04h
SPLK #00h, IANTERIOR
SPLK #00, IANTERIOR2
SPLK #00h, PWM
MODO_01 LDP #0E1h ;en modo cero solo se monitorean
SPLK #0E000h, PADATDIR ;las variables, ambas PWM son 0.
LACL PBDATDIR ;se modifican las salidas
AND #0CF40h ;digitales correspondientes a los
OR #00001h ;leds.
SACL PBDATDIR
LDP #0E8h
SPLK #00000h, T1CMPR
SPLK #00000h, T2CMPR
LDP #04h
SPLK #0, FLAG_ESCALA
LDP #04h
B FIN
;--------------------------------------------------
MODO_1 LACL SIGN_TEMP ;En el modo_1 se trabaja segun una
SUB SIGN ;PWM determinada por el programa
BCND DALE_NOMAS, EQ ;o recibida del PC monitor.
LACL CONT
BCND TIEMPO_MTO, NEQ ;se implement un tiempo muerto que
SPLK #05, CONT ;tiene el largo del N en esta lnea
B MODO_0 ;por la duracin del perodo de PWM.
TIEMPO_MTO SUB #01
SACL CONT
BCND FIN_TM, EQ
B MODO_0
FIN_TM LACL SIGN_TEMP
SACL SIGN

DALE_NOMAS BIT SIGN, 15 ;Segn el signo que aparece en el
BCND PWMEN1, TC ;mismo registro de la PWM se enva
135
LACL PWM ;la seal al IGBT correspondiente
LDP #0E1h ;y el otro ...callaito no mas.
SPLK #0E080h, PADATDIR ;Tambin se encienden las luces
SPLK #0CF00h, PBDATDIR ;correspondientes.
NOLUZ LDP #0E8h
SPLK #00000h, T1CMPR
SACL T2CMPR
CTRL_CARGA:
LDP #04h
LACL V_COND ;si la carga es mayor que 22500( CARGA)
SUB #290
LDP #04h ;(que es el maximo) se impiden las (V_COND MAX =
290)
BCND CTRL_CARGA2, NC ;corrientes negativas, es decir
SPLK #01, FLAG_HISTERESIS
LDP #04h
B MODO_0

CTRL_CARGA2 BIT FLAG_HISTERESIS, 15
BCND FIN, NTC
LDP #04h
LACL V_COND
SUB #285 ;Control de voltaje de condensador V de
recuperacin=288
BCND CTRL_CARGA3, NC
LDP #04h
B MODO_0
CTRL_CARGA3 LDP #04h
SPLK #00, FLAG_HISTERESIS
B FIN


PWMEN1 LACL PWM
LDP #0E1h
SPLK #0E040h, PADATDIR
SPLK #0CF00h, PBDATDIR ;correspondientes.
NOLUZ2 LDP #0E8h
SPLK #00000h, T2CMPR
SACL T1CMPR

LDP #04
LACL V_COND
SUB #40
BCND CONTROL_DESC, C
B MODO_0
CONTROL_DESC
B FIN

;--------------------------------------------------
MODO_2 LDP #04
LACL CERO ;En MODO_2 se debe seguir una referencia
SUB IREF ;de corriente obtenida del programa
BCND MODO_0, EQ ;o recibida del PC monitor.
BCND I_POS, C ;Aqu se decide si la corriente es positiva
;o negativa.
I_NEG LACL IREF ;Si es negativa se saca el valor de error
SUB IFILT ;y se setea el signo en cero (equivale a -)
SACL ERROR
SPLK #00, SIGN_TEMP
B PI
136

I_POS LACL IFILT ;Si es positiva, lo mismo pero al revs.
SUB IREF
SACL ERROR
SPLK #01, SIGN_TEMP
B PI


FIN LDP #0E8h ;este pedacito de rutina es el que finaliza
LACL EVIFRA ;la interrupcin, borra los flags y ese
SACL EVIFRA ;tipo de cosas.
LDP #04h
LACL ACCBAJO ;recupera el acumulador y los registros
LACC ACCALTO, 16 ;de estado
MAR *, AR0
LAR AR0,#0201h
LST #0, *-
LST #1, *
CLRC INTM
CLRC XF
RET


;================================================================
PI ;Esta es la rutina de control PI,
;aqui se calcula el PI para obtener
;la PWM necesaria.
LDP #04h
BIT FLAG_ESCALA, 15
CC ESCALA_CORRIENTE, NTC
LDP #04h ;Cargo el error para multiplicarlo por
LT ERROR ;Ki
MPY KI
PAC ;El resultado pasa al acumulador
ADD IANTERIOR ;le sumo la integral anterior *1024
ADD IANTERIOR2, 16
SACL IANTERIOR ;guardo todo dividido por 1024
SACH IANTERIOR2
ROL ;saco el bit mas significativo,
BCND SATURNEG, C ;si es 1 esta negativo, en ese caso...
LACL IANTERIOR2 ;devuelvo el bit mas significativo
SUB FRECUENCIA ;le resto el PWM mas grande posible
SUB #01
ROL ;para ver si esta saturado,
BCND NOSATURADO, C ;si no es as salto,
LACL FRECUENCIA
ADD #01
SACL IANTERIOR2 ;pero si esta saturado, guardo este N
B NOSATURADO ; y salto igual
SATURNEG SPLK #0, IANTERIOR ;... se pone un cero en la integral
SPLK #0, IANTERIOR2
NOSATURADO MPY KP ;multiplico el error por Kp
PAC ;lo paso al Acc.
ADD IANTERIOR2,10 ;le sumo la integral *1024,
ROL ;le saco el bit mas signif. para ver
BCND TODOCERO, C ;si esta negativo, si es as salto...
ROR ;, si no devuelvo el bit
SACH PWM,6 ;y guardo la suma como PWM
B MODO_1 ;Paso al Modo_1 donde aplico la PWM.

137
TODOCERO SPLK #00h, PWM ;... y pongo un Cero.
B MODO_0 ;luego salto a Modo_0

;=====================================================================
ESCALA_CORRIENTE
LDP #04h
LACL V_BATT
LDP #04h
SACL V_BATT_2
LDP #04h
BIT SIGN_TEMP, 15
BCND ESCALA_BOOST, TC
LT V_COND
MPY FRECUENCIA
LDP #04h
PAC ;el resultado de la mult. se pasa al
SACH DIVISION_ALTO ;ACC y se guarda para ser dividido
SACL DIVISION_BAJO
B ESCALAR
ESCALA_BOOST
LACL V_BATT
SUB V_COND
SACL TEMP
LT TEMP
MPY FRECUENCIA
LDP #04h
PAC
SACH DIVISION_ALTO
SACL DIVISION_BAJO

ESCALAR SPLK #00, CONT_DIV
SPLK #0400h, MULTIPLO ;comienza la divisin con 2^10.
DIVIDIR31 LACC DIVISION_ALTO, 16 ;cargo el numero a dividir
ADD DIVISION_BAJO
LT MULTIPLO ;cargo el multiplo y multiplico por
MPY V_BATT_2 ;el numero divisor
SPAC ;este se resta al numero a dividir
BCND MENOR31,NC ;si la resta es negativa se salta,
SACH DIVISION_ALTO ;si no es negativa se guarda el numero
SACL DIVISION_BAJO ;a dividir restado y al resultado se
LACL CONT_DIV ;le suma el multiplo
ADD MULTIPLO
SACL CONT_DIV
MENOR31 BIT MULTIPLO, 15 ;pruebo si llegue al fin de la division
BCND FIN_DIV31, TC ;si es asi, salto al final,
LACL MULTIPLO ;si no es asi corro la coma del
SFR ;multiplo una posicin.
SACL MULTIPLO
B DIVIDIR31 ;vuelvo a iterar.
FIN_DIV31 SPLK #01, FLAG_ESCALA
LT CONT_DIV
MPY #29
PAC
RPT #4
SFR
LDP #04h
SACL IANTERIOR2
SPLK #0, ERROR
RET
;=====================================================================
138
RUTINA_DIV
LDP #04
SPLK #0400h, MULTIPLO ;comienza la divisin con 2^10.
SPLK #0, CONT_DIV
XDIVIDIR31 LACC DIVISION_ALTO, 16 ;cargo el numero a dividir
ADD DIVISION_BAJO
LT MULTIPLO ;cargo el multiplo y multiplico por
MPY DIVISOR ;el numero divisor
SPAC ;este se resta al numero a dividir
BCND XMENOR31,NC ;si la resta es negativa se salta,
SACH DIVISION_ALTO ;si no es negativa se guarda el numero
SACL DIVISION_BAJO ;a dividir restado y al resultado se
LACL CONT_DIV ;le suma el multiplo
ADD MULTIPLO
SACL CONT_DIV
XMENOR31 BIT MULTIPLO, 15 ;pruebo si llegue al fin de la division
BCND XFIN_DIV31, TC ;si es asi, salto al final,
LACL MULTIPLO ;si no es asi corro la coma del
SFR ;multiplo una posicin.
SACL MULTIPLO
B XDIVIDIR31 ;vuelvo a iterar.
XFIN_DIV31 RET
;=====================================================================
;Captura de corriente ;Esta rutina captura los pulsos del Ah
;meter y los suma consistentemente para
INT4_ISR MAR *,AR0 ;calcular el valor de Ah consumido.
LAR AR0,#0200h
SST #1, *+
SST #0, * ;Primero se hece la rutina de guardar

LDP #04h ;datos para la interrupcin.
SACL ACCBAJO
SACH ACCALTO

LDP #0E8h ;Se carga el registro de flags de interr.
LACL EVIFRC ;por captura para ver que unidad captur
SUB #01h ;un flanco de subida.
BCND CAP1_INT, EQ
LACL EVIFRC
SUB #02h
BCND CAP2_INT, EQ
SPLK #03h, EVIFRC
LDP #04
LACL IFILT
LDP #04
SACL REGISTRO_PRUEBA
B BAD_INT2

CAP1_INT SPLK #01h, EVIFRC ;Si fue la unidad 1 se borra ese flag,
LACL CAP1FIFO ;se lee el registro cap1fifo para borrarlo
LDP #04h ;y asi se puede producir otra int.
LACL CONTADOR_AH ;Se suma 1 al contador de Ah.
ADD #01
SACL CONTADOR_AH ;Se guarda el resultado,
SUB #00B40h ;resto 2880 para ver si pas 1/5 Ah,
BCND SUMA_UNO, C ;si es as se suma uno al contador oficial.
B FIN_INT_CAP ;si no se salta al final de la int.

SUMA_UNO LACL AH ;este es el contador oficial, aqui se
ADD #01 ;le suma 1 (corrido en 8 bits).
139
SACL AH
SPLK #0, CONTADOR_AH ;se resetea el contador Ah.
B FIN_INT_CAP ;salto al fin de la int.

CAP2_INT SPLK #02h, EVIFRC ;Si fue la unidad 2 se borra ese flag,
LACL CAP2FIFO ;se lee el registro cap2fifo para borrarlo
LDP #04h
LACL CONTADOR_AH
BCND RESTA_UNO, EQ;...el resto es analogo al anterior...
SUB #01
SACL CONTADOR_AH
B FIN_INT_CAP

RESTA_UNO LACL AH
BCND FIN_INT_CAP, EQ
SPLK #00B40h, CONTADOR_AH
LACL AH
SUB #01h
SACL AH

FIN_INT_CAP
LACL ACCBAJO
LACC ACCALTO, 16
MAR *, AR0
LAR AR0,#0201h
LST #0, *-
LST #1, *
CLRC INTM
RET

;=====================================================================
INT5_ISR: ;Esta rutina es la que maneja las
;comunicaciones con el PC Monitor.
MAR *,AR0
lAR AR0,#0200h ;Esta es la rutina de inicio de la int.
SST #1, *+
SST #0, *
LDP #04h
SACL ACCBAJO
SACH ACCALTO


LDP #00E0h
LACL PIVR ;cargo el registro de flags de interrupciones
SUB #0006h ;salto a la rutina correspondiente a la
BCND SCI_RX_ISR,EQ ;evento que inici la interr.
LACL PIVR
SUB #0007h
BCND SCI_TX_ISR,EQ
B BAD_INT ;si no es ninguna de las ant. salto a bad_int

SCI_RX_ISR: LDP #04h ;esta es la rutna de recepcin de datos
SPLK #0, CONTADOR_COMM ;Reseteo el contador de seguridad.
LACL CONTADOR_RX ;Cargo el contador de recepcin.
MAR *,AR2 ;activo el registro auxiliar AR2.
BCND NO_GUARDA, EQ ;Si el contador es 0 salto a NO_GUARDA.
BIT CONTADOR_RX, 15 ;pruebo el bit menos signif para ver
BCND IMPAR, TC ;si el contador esta impar. salta...
LACC *,8,AR4 ;si es par carga el pedazo mas signif de dato
SACL * ;y lo manda a su direccion destino en AR4.
140
B ISR_END1 ;pasa al fin de la int.

IMPAR LACC *,AR4 ;si es impar carga el pedazo menos signif de dato
OR * ;se hace OR con el pedazo mas signif y luego
SACL *+ ;se guarda en la direccin destino, esta se incrementa.
B ISR_END1 ;paso al final de la interrupcin.

NO_GUARDA LACL * ;en el caso de no estar esperando datos, lo
SUB #032h ;que llega se interpreta como un comando, para
BCND GUARDAR_PAR, EQ ;lo que se identifica el valor del
LACL * ;comando y se salta a su rutina
SUB #033h ;correspondiente.
BCND CONTINUAR_0, EQ
LACL *
SUB #037h
BCND ENVIAR_PAR, EQ
LACL *
SUB #038h
BCND BORRA_FALLA, EQ
LACL *
SUB #039h
BCND NUEVO_CERO, EQ
LACL *
SUB #031h
BCND RECIBIR_TABLA, EQ
LACL *
SUB #034h
BCND CONTINUAR_1, EQ
LACL *
SUB #035h
BCND CONTINUAR_2, EQ
LACL *
SUB #036h
BCND CONTINUAR_3, EQ
LACL *
SUB #045h
BCND RECIBIR_DIRECCION, EQ
LACL *
SUB #046h
BCND ENVIAR_DIRECCION, EQ
LACL *
SUB #047h
BCND ESCRIBIR_DIRECCION, EQ
LACL *
SUB #041h
CC GUARDAR_TABLA_FLASH, EQ
LACL *
SUB #042h
CC LEER_TABLA_FLASH, EQ
LACL *
SUB #043h
CC GUARDAR_PARAM_FLASH, EQ
LACL *
SUB #044h
CC LEER_PARAM_FLASH, EQ
B ISR_END


GUARDAR_PAR: ;Esta rutina guardar los parametros de
DMOV MODO ;funcinamiento como p Ej. Kp o Ki...
141
SPLK #0, MODO ;estos datos son 7 por lo que se pone un
SPLK #16, CONTADOR_RX ;16 en el contador de recepcin.
LAR AR4, #KP ;Se apunta el AR4 al Kp que es el primero
B ISR_END ;de los datos a almacenar.

RECIBIR_TABLA: ;Aqui se espera recibir la tabla de ref de
DMOV MODO ;cargas la que tiene una longitud de 70,
SPLK #0, MODO ;por lo que se pone un 140 en el contador
SPLK #2, CONTADOR_RX ;de recepcin.
LAR AR4, #TABLA_CARGA ;Y apunto al comianzo de la tabla
B ISR_END ;con el AR4.

RECIBIR_DIRECCION:
DMOV MODO
SPLK #0, MODO
SPLK #2, CONTADOR_RX
LDP #04
LAR AR4, #DIRECCION_PEDIDA
B ISR_END

ESCRIBIR_DIRECCION
DMOV MODO
SPLK #0, MODO
SPLK #2, CONTADOR_RX
LDP #04
LAR AR4, DIRECCION_PEDIDA
B ISR_END

CONTINUAR_0: ;Continuar_0 significa que seguimos en
SPLK #0, MODO ;modo apagado (0) y solo enviamos datos.
ENVIAR_DATO SPLK #20, CONTADOR_TX ;los datos a enviar son 9 por lo que
LAR AR3, #CODIGO_FALLA ;ponemos un 18 en el contador TX y
LDP #0E0h ;apuntamos con AR3 al primer dato a enviar.
B SCI_TX_ISR

ENVIAR_DIRECCION
SPLK #2, CONTADOR_TX
LDP #04
LAR AR3, DIRECCION_PEDIDA
LDP #0E0h
B SCI_TX_ISR

CONTINUAR_1:
;Esta rutina prepara la recepcin del
SPLK #2, CONTADOR_RX ;valor de PWM desde el PC.
SPLK #1, MODO
LAR AR4, #PWM_TEMP
B ENVIAR_DATO


CONTINUAR_2: ;Esta recibir un valor de referencia de
SPLK #2, CONTADOR_RX ;corriente y lo pasar al control
SPLK #2, MODO ; de corriente para que la produzca.
LAR AR4, #IREF_TEMP
B ENVIAR_DATO

CONTINUAR_3: ;Aqui solo se setea el modo y se pasa al
SPLK #3, MODO ;pedazo de rutina de Continuar_0 que enva
B ENVIAR_DATO ;los datos.

142

ENVIAR_PAR: SPLK #16, CONTADOR_TX ;Enva los parametros almacenados en
LAR AR3, #KP ;el DSP. (LAR AR3, #KP)
LDP #0E0h
B SCI_TX_ISR

BORRA_FALLA: ;Esta rutina es llamada desde el PC cuando
SPLK #00, CODIGO_FALLA ;detecta una falla para borrarla del codigo
;Tambin apaga la luz de falla.
LDP #04h
B ENVIAR_DATO

NUEVO_CERO ;
LACL IFILT ;Esta rutina invocada por el PC resetea el 0
SACL CERO ;al valor de corriente medido en el instante,
B ENVIAR_DATO ;obviamente no se llama a esta rutina si
;se esta funcionando en un modo distinto
;de 0.
SCI_TX_ISR:
BIT SCICTL2, BIT7 ;Antes de enviar datos se prueba el bit
BCND SCI_TX_ISR, NTC ;que indica que se est listo para
LDP #04h ;mandar datos.
LACL CONTADOR_TX ;se carga el contador de TX y si no es
BCND CONTINUAR1, NEQ ;0 se enva lo que este esperando.
B ISR_END ;si es 0 se pasa al fin de la int.

CONTINUAR1: MAR *,AR3 ;Aqui se hace algo analogo a la recepcin.
BIT CONTADOR_TX, 15
BCND TX_IMPAR, TC
LACC *+,8,AR1
SACH *
LDP #04h
SACL BUFFERSCI
B FIN_TX0

TX_IMPAR: LDP #04h
LACC BUFFERSCI,8
MAR *, AR1
SACH *
B FIN_TX0


ISR_END1: LACL CONTADOR_RX ;Esta es la rutina que fianliza para la RX
SUB #01 ;disminuye el contador de RX y si este
SACL CONTADOR_RX ;no queda en 0 pasa afinalizar la int.
BCND ISR_END, NEQ;

CAMBIAMODO LACL MODO ;si era 0 el contador prueba en que modo
;se encuetra funcionando, por que si es 1
SUB #1 ; 2 carga la ref de PWM o de Corriente
BCND PRUEB_MODO, NEQ ;respectivamente para ser utilizadas.
LACL PWM_TEMP
SACH SIGN_TEMP,1 ;en los modos 1 y 2 el PC manda la PWM o
AND #07FFFh ;una ref de Corriente que el DSP utiliza
SACL PWM ;para obtener las salidas.
B ISR_END
PRUEB_MODO LACL MODO
SUB #2
BCND ISR_END, NEQ
LACL IREF_TEMP
143
SACL SALIDA2
B ISR_END


FIN_TX0: LDP #04h ;Esta rutina disminuye en 1 el contador TX.
LACL CONTADOR_TX
SUB #1
SACL CONTADOR_TX

ISR_END: LDP #04h ;Aqu se finaliza la interrupcin de comm.
LACL ACCBAJO ;y para eso se recuperan todos los datos
LACC ACCALTO, 16 ;relevantes.
MAR *, AR0
LAR AR0,#0201h
LST #0, *-
LST #1, *
CLRC INTM ;se habilitan nuevamente las interrupciones.
RET

GUARDAR_TABLA_FLASH:
CALL APAGA2
LDP #04h
LACL CONTADORSPI_RX
ADD CONTADORSPI_TX
RETC NEQ
SPLK #2, CONTADORSPI_TX
SPLK #00, CONTADORSPI_RX
SPLK #00, DIRSPI
LDP #04h
SPLK #07, CODIGO_FALLA
LAR AR7, #TABLA_CARGA
GRABA1 LDP #04h
SPLK #0, CONTADORSPI
CALL STAT
CALL WRITE_ENABLE
CALL WRITE
CALL DIRECCION
B ENVIASPI

LEER_TABLA_FLASH:
CALL APAGA2
LDP #04h
LACL CONTADORSPI_RX
ADD CONTADORSPI_TX
RETC NEQ
SPLK #2, CONTADORSPI_RX
SPLK #00, CONTADORSPI_TX
SPLK #00, DIRSPI
LDP #04h
SPLK #09, CODIGO_FALLA
LAR AR7, #TABLA_CARGA
LEE1 CALL STAT
CALL LEESPI
CAll DIRECCION
SPLK #00, SPITXBUF
ESP6 BIT SPISTS, 9
BCND ESP6, NTC
B RECIBESPI

GUARDAR_PARAM_FLASH:
144
CALL APAGA2
LDP #04h
LACL CONTADORSPI_RX
ADD CONTADORSPI_TX
RETC NEQ
SPLK #16, CONTADORSPI_TX
SPLK #00, CONTADORSPI_RX
SPLK #160, DIRSPI
LDP #04h
SPLK #07, CODIGO_FALLA
LAR AR7, #KP
B GRABA1

LEER_PARAM_FLASH:
CALL APAGA2
LDP #04h
LACL CONTADORSPI_RX
ADD CONTADORSPI_TX
RETC NEQ
SPLK #16, CONTADORSPI_RX
SPLK #00, CONTADORSPI_TX
SPLK #160, DIRSPI
LDP #04h
SPLK #09, CODIGO_FALLA
LAR AR7, #KP
B LEE1

LEER_AH_FLASH
CALL APAGA2
LDP #04h
LACL CONTADORSPI_RX
ADD CONTADORSPI_TX
RETC NEQ
SPLK #2, CONTADORSPI_RX
SPLK #00, CONTADORSPI_TX
SPLK #180, DIRSPI
LDP #04h
SPLK #09, CODIGO_FALLA
LAR AR7, #AH
B LEE1

ESCRIBIR_AH_FLASH
CALL APAGA2
LDP #04h
LACL CONTADORSPI_RX
ADD CONTADORSPI_TX
RETC NEQ
SPLK #00h, READY2
SPLK #2, CONTADORSPI_TX
SPLK #00, CONTADORSPI_RX
SPLK #180, DIRSPI
LDP #04h
SPLK #08, CODIGO_FALLA
LAR AR7, #AH
B GRABA1


ENVIASPI:
LDP #04h
LACL CONTADORSPI
145
SUB #32
BCND NUEVA_PAG, EQ
ADD #34
SACL CONTADORSPI
LACL CONTADORSPI_TX
BCND SALTO1, NEQ
LDP #0E1h
SPLK #06020h, PCDATDIR
RET
SALTO1 SUB #02
SACL CONTADORSPI_TX
MAR *, AR7
LACL *+
LDP #0E0h
SACL SPITXBUF
ESP7 BIT SPISTS, 9
BCND ESP7, NTC
LACL SPIRXBUF
B ENVIASPI

NUEVA_PAG SPLK #00, CONTADORSPI
LACL DIRSPI
ADD #32
SACL DIRSPI
LDP #0E1h
SPLK #06020h, PCDATDIR
B GRABA1

RECIBESPI LDP #0E0h
LACL SPIRXBUF
MAR *, AR7
SACL *+
LDP #04h
LACL CONTADORSPI_RX
SUB #2
SACL CONTADORSPI_RX
BCND SALTO2, NEQ
LDP #0E1h
SPLK #06020h, PCDATDIR
RET
SALTO2 LDP #0E0h
SPLK #00, SPITXBUF
ESP8 BIT SPISTS, 9
BCND ESP8, NTC
B RECIBESPI



BAD_INT: LDP #04h ;Cuando se produce una interrupcin
SPLK #04, CODIGO_FALLA ;y no se logra identificar el periferico
LDP #0E1h ;que la produjo, se llama a esta rutina
SPLK #0CF40h, PBDATDIR ;que avisa de la situacin mediante el

LDP #04h ;codigo de falla y vuelve al
LACL ACCBAJO ;funcionamiento normal, recuperando antes
LACC ACCALTO, 16 ;los datos de configuacin.
MAR *, AR0
LAR AR0,#0201h
LST #0, *-
LST #1, *
146
CLRC INTM
RET

BAD_INT2: LDP #04h ;Cuando se produce una interrupcin
SPLK #10, CODIGO_FALLA ;y no se logra identificar el periferico
LDP #0E1h ;que la produjo, se llama a esta rutina
SPLK #0CF40h, PBDATDIR ;que avisa de la situacin mediante el
LDP #04
LACL IFILT
LDP #04
SACL REGISTRO_PRUEBA

LDP #04h ;codigo de falla y vuelve al
LACL ACCBAJO ;funcionamiento normal, recuperando antes
LACC ACCALTO, 16 ;los datos de configuacin.
MAR *, AR0
LAR AR0,#0201h
LST #0, *-
LST #1, *
CLRC INTM
RET
;*****************************************************************************
STAT LDP #0E1h
SPLK #06000h, PCDATDIR
LDP #0E0h
SPLK #10001111b, SPICCR
SPLK #0500h, SPITXBUF
ESP1 BIT SPISTS, 9
BCND ESP1, NTC
LACL SPIRXBUF
LDP #0E1h
SPLK #06020h, PCDATDIR
ROR
BCND STAT, C
RET

WRITE_ENABLE:
LDP #0E1h
SPLK #06000h, PCDATDIR
LDP #0E0h
SPLK #10000111b, SPICCR
SPLK #0600h, SPITXBUF
ESP2 BIT SPISTS, 9
BCND ESP2, NTC
LACL SPIRXBUF
LDP #0E1h
SPLK #06020h, PCDATDIR
NOP
NOP
NOP
RET

WRITE SPLK #06000h, PCDATDIR
LDP #0E0h
SPLK #10000111b, SPICCR
SPLK #0200h, SPITXBUF
ESP3 BIT SPISTS, 9
BCND ESP3, NTC
LACL SPIRXBUF
NOP
147
NOP
RET

DIRECCION LDP #0E0h
SPLK #10001111b, SPICCR
LDP #04h
LACL DIRSPI
LDP #0E0h
SACL SPITXBUF
ESP4 BIT SPISTS, 9
BCND ESP4, NTC
LACL SPIRXBUF
RPT #10
NOP
RET

LEESPI LDP #0E1h
SPLK #06000h, PCDATDIR
LDP #0E0h
SPLK #10000111b, SPICCR
SPLK #0300h, SPITXBUF
ESP5 BIT SPISTS, 9
BCND ESP5, NTC
LACL SPIRXBUF
NOP
NOP
RET

APAGA2 LDP #0E8h
SPLK #00000h, T1CMPR
SPLK #00000h, T2CMPR
LDP #0E1h
SPLK #0CF40h, PBDATDIR
RET
;=====================================================================
; I S R - PHANTOM
;
; Description: Dummy ISR, used to trap spurious interrupts.
;=====================================================================
PHANTOM: MAR *,AR0
lAR AR0,#0200h ;Phantom es una rutina de interrupcin
SST #1, *+ ;solo por si se desencadena accidentalmente
SST #0, * ;una de las interrupciones que estan
LDP #04h ;enmascaradas.
SACL ACCBAJO ;la situacin se avisa mediante el codigo
SACH ACCALTO ;de falla y luego se retorna al
SPLK #05, CODIGO_FALLA;funcionamiento normal.
LDP #0E1h
SPLK #0CF40h, PBDATDIR
LDP #04
LACL IFILT
LDP #04
SACL REGISTRO_PRUEBA
LDP #04h
LACL ACCBAJO
LACC ACCALTO, 16
MAR *, AR0
LAR AR0,#0201h
LST #0, *-
LST #1, *
148
CLRC INTM
RET

.sect ".coef"

NEURONA_1 .int 0 ;los pesos van alrevs
.int -8
.int -147
.int 160
.int -472
.int -10362
.int 205
.int 3055
.int 3650 ;offset

NEURONA_2 .int 0 ;los pesos van alrevs
.int 0
.int -5
.int 5
.int 4
.int 38
.int 0
.int 269
.int -26455 ;offset

NEURONA_3 .int 0 ;los pesos van alrevs
.int 0
.int 159
.int -149
.int 655
.int 8055
.int -203
.int -3225
.int 9093 ;offset

NEURONA_4 .int 2 ;los pesos van alrevs
.int 0
.int 0
.int -6
.int 14
.int 57
.int 0
.int 625
.int 26695 ;offset

CAPA_2 .int 12528
.int 2055
.int 18848
.int 2036

; Valor tanh (Q15) Indice Argumento Valor tanh

TANH_TABLE .int -32746 ; 0 -4.000000000; -0.999329300
.int -32744 ; 1 -3.968750000; -0.999286059
.int -32743 ; 2 -3.937500000; -0.999240031
.int -32741 ; 3 -3.906250000; -0.999191037
.int -32739 ; 4 -3.875000000; -0.999138886
.int -32737 ; 5 -3.843750000; -0.999083374
.int -32736 ; 6 -3.812500000; -0.999024286
.int -32733 ; 7 -3.781250000; -0.998961390
149
.int -32731 ; 8 -3.750000000; -0.998894443
.int -32729 ; 9 -3.718750000; -0.998823182
.int -32726 ; 10 -3.687500000; -0.998747332
.int -32724 ; 11 -3.656250000; -0.998666595
.int -32721 ; 12 -3.625000000; -0.998580659
.int -32718 ; 13 -3.593750000; -0.998489189
.int -32715 ; 14 -3.562500000; -0.998391828
.int -32711 ; 15 -3.531250000; -0.998288199
.int -32708 ; 16 -3.500000000; -0.998177898
.int -32704 ; 17 -3.468750000; -0.998060496
.int -32700 ; 18 -3.437500000; -0.997935538
.int -32695 ; 19 -3.406250000; -0.997802538
.int -32691 ; 20 -3.375000000; -0.997660979
.int -32686 ; 21 -3.343750000; -0.997510313
.int -32681 ; 22 -3.312500000; -0.997349955
.int -32675 ; 23 -3.281250000; -0.997179283
.int -32669 ; 24 -3.250000000; -0.996997635
.int -32663 ; 25 -3.218750000; -0.996804309
.int -32656 ; 26 -3.187500000; -0.996598555
.int -32649 ; 27 -3.156250000; -0.996379578
.int -32641 ; 28 -3.125000000; -0.996146531
.int -32633 ; 29 -3.093750000; -0.995898513
.int -32624 ; 30 -3.062500000; -0.995634567
.int -32615 ; 31 -3.031250000; -0.995353675
.int -32605 ; 32 -3.000000000; -0.995054754
.int -32595 ; 33 -2.968750000; -0.994736652
.int -32584 ; 34 -2.937500000; -0.994398146
.int -32572 ; 35 -2.906250000; -0.994037935
.int -32560 ; 36 -2.875000000; -0.993654634
.int -32546 ; 37 -2.843750000; -0.993246775
.int -32532 ; 38 -2.812500000; -0.992812795
.int -32517 ; 39 -2.781250000; -0.992351033
.int -32501 ; 40 -2.750000000; -0.991859725
.int -32484 ; 41 -2.718750000; -0.991336996
.int -32465 ; 42 -2.687500000; -0.990780856
.int -32446 ; 43 -2.656250000; -0.990189189
.int -32425 ; 44 -2.625000000; -0.989559749
.int -32403 ; 45 -2.593750000; -0.988890151
.int -32380 ; 46 -2.562500000; -0.988177862
.int -32355 ; 47 -2.531250000; -0.987420196
.int -32329 ; 48 -2.500000000; -0.986614298
.int -32301 ; 49 -2.468750000; -0.985757143
.int -32271 ; 50 -2.437500000; -0.984845517
.int -32239 ; 51 -2.406250000; -0.983876017
.int -32205 ; 52 -2.375000000; -0.982845029
.int -32169 ; 53 -2.343750000; -0.981748725
.int -32131 ; 54 -2.312500000; -0.980583047
.int -32091 ; 55 -2.281250000; -0.979343695
.int -32047 ; 56 -2.250000000; -0.978026115
.int -32002 ; 57 -2.218750000; -0.976625484
.int -31953 ; 58 -2.187500000; -0.975136698
.int -31901 ; 59 -2.156250000; -0.973554356
.int -31846 ; 60 -2.125000000; -0.971872746
.int -31787 ; 61 -2.093750000; -0.970085827
.int -31725 ; 62 -2.062500000; -0.968187217
.int -31659 ; 63 -2.031250000; -0.966170173
.int -31589 ; 64 -2.000000000; -0.964027580
.int -31514 ; 65 -1.968750000; -0.961751926
.int -31435 ; 66 -1.937500000; -0.959335293
.int -31351 ; 67 -1.906250000; -0.956769334
150
.int -31262 ; 68 -1.875000000; -0.954045260
.int -31167 ; 69 -1.843750000; -0.951153820
.int -31066 ; 70 -1.812500000; -0.948085286
.int -30960 ; 71 -1.781250000; -0.944829436
.int -30846 ; 72 -1.750000000; -0.941375538
.int -30726 ; 73 -1.718750000; -0.937712339
.int -30599 ; 74 -1.687500000; -0.933828043
.int -30464 ; 75 -1.656250000; -0.929710307
.int -30321 ; 76 -1.625000000; -0.925346225
.int -30170 ; 77 -1.593750000; -0.920722322
.int -30009 ; 78 -1.562500000; -0.915824544
.int -29839 ; 79 -1.531250000; -0.910638259
.int -29659 ; 80 -1.500000000; -0.905148254
.int -29469 ; 81 -1.468750000; -0.899338735
.int -29268 ; 82 -1.437500000; -0.893193340
.int -29055 ; 83 -1.406250000; -0.886695149
.int -28830 ; 84 -1.375000000; -0.879826700
.int -28592 ; 85 -1.343750000; -0.872570011
.int -28341 ; 86 -1.312500000; -0.864906618
.int -28076 ; 87 -1.281250000; -0.856817601
.int -27796 ; 88 -1.250000000; -0.848283640
.int -27501 ; 89 -1.218750000; -0.839285062
.int -27190 ; 90 -1.187500000; -0.829801910
.int -26863 ; 91 -1.156250000; -0.819814012
.int -26519 ; 92 -1.125000000; -0.809301070
.int -26156 ; 93 -1.093750000; -0.798242755
.int -25775 ; 94 -1.062500000; -0.786618812
.int -25375 ; 95 -1.031250000; -0.774409187
.int -24955 ; 96 -1.000000000; -0.761594156
.int -24515 ; 97 -0.968750000; -0.748154470
.int -24054 ; 98 -0.937500000; -0.734071520
.int -23570 ; 99 -0.906250000; -0.719327501
.int -23065 ; 100 -0.875000000; -0.703905604
.int -22537 ; 101 -0.843750000; -0.687790205
.int -21986 ; 102 -0.812500000; -0.670967074
.int -21411 ; 103 -0.781250000; -0.653423588
.int -20812 ; 104 -0.750000000; -0.635148952
.int -20189 ; 105 -0.718750000; -0.616134427
.int -19541 ; 106 -0.687500000; -0.596373555
.int -18869 ; 107 -0.656250000; -0.575862391
.int -18173 ; 108 -0.625000000; -0.554599722
.int -17451 ; 109 -0.593750000; -0.532587286
.int -16706 ; 110 -0.562500000; -0.509829974
.int -15936 ; 111 -0.531250000; -0.486336017
.int -15142 ; 112 -0.500000000; -0.462117157
.int -14325 ; 113 -0.468750000; -0.437188785
.int -13486 ; 114 -0.437500000; -0.411570056
.int -12624 ; 115 -0.406250000; -0.385283966
.int -11742 ; 116 -0.375000000; -0.358357398
.int -10840 ; 117 -0.343750000; -0.330821117
.int -9919 ; 118 -0.312500000; -0.302709729
.int -8980 ; 119 -0.281250000; -0.274061589
.int -8025 ; 120 -0.250000000; -0.244918662
.int -7055 ; 121 -0.218750000; -0.215326340
.int -6072 ; 122 -0.187500000; -0.185333200
.int -5078 ; 123 -0.156250000; -0.154990730
.int -4074 ; 124 -0.125000000; -0.124353002
.int -3063 ; 125 -0.093750000; -0.093476304
.int -2045 ; 126 -0.062500000; -0.062418747
.int -1023 ; 127 -0.031250000; -0.031239831
151
.int 0 ; 128 0.000000000; 0.000000000
.int 1023 ; 129 0.031250000; 0.031239831
.int 2045 ; 130 0.062500000; 0.062418747
.int 3063 ; 131 0.093750000; 0.093476304
.int 4074 ; 132 0.125000000; 0.124353002
.int 5078 ; 133 0.156250000; 0.154990730
.int 6072 ; 134 0.187500000; 0.185333200
.int 7055 ; 135 0.218750000; 0.215326340
.int 8025 ; 136 0.250000000; 0.244918662
.int 8980 ; 137 0.281250000; 0.274061589
.int 9919 ; 138 0.312500000; 0.302709729
.int 10840 ; 139 0.343750000; 0.330821117
.int 11742 ; 140 0.375000000; 0.358357398
.int 12624 ; 141 0.406250000; 0.385283966
.int 13486 ; 142 0.437500000; 0.411570056
.int 14325 ; 143 0.468750000; 0.437188785
.int 15142 ; 144 0.500000000; 0.462117157
.int 15936 ; 145 0.531250000; 0.486336017
.int 16706 ; 146 0.562500000; 0.509829974
.int 17451 ; 147 0.593750000; 0.532587286
.int 18173 ; 148 0.625000000; 0.554599722
.int 18869 ; 149 0.656250000; 0.575862391
.int 19541 ; 150 0.687500000; 0.596373555
.int 20189 ; 151 0.718750000; 0.616134427
.int 20812 ; 152 0.750000000; 0.635148952
.int 21411 ; 153 0.781250000; 0.653423588
.int 21986 ; 154 0.812500000; 0.670967074
.int 22537 ; 155 0.843750000; 0.687790205
.int 23065 ; 156 0.875000000; 0.703905604
.int 23570 ; 157 0.906250000; 0.719327501
.int 24054 ; 158 0.937500000; 0.734071520
.int 24515 ; 159 0.968750000; 0.748154470
.int 24955 ; 160 1.000000000; 0.761594156
.int 25375 ; 161 1.031250000; 0.774409187
.int 25775 ; 162 1.062500000; 0.786618812
.int 26156 ; 163 1.093750000; 0.798242755
.int 26519 ; 164 1.125000000; 0.809301070
.int 26863 ; 165 1.156250000; 0.819814012
.int 27190 ; 166 1.187500000; 0.829801910
.int 27501 ; 167 1.218750000; 0.839285062
.int 27796 ; 168 1.250000000; 0.848283640
.int 28076 ; 169 1.281250000; 0.856817601
.int 28341 ; 170 1.312500000; 0.864906618
.int 28592 ; 171 1.343750000; 0.872570011
.int 28830 ; 172 1.375000000; 0.879826700
.int 29055 ; 173 1.406250000; 0.886695149
.int 29268 ; 174 1.437500000; 0.893193340
.int 29469 ; 175 1.468750000; 0.899338735
.int 29659 ; 176 1.500000000; 0.905148254
.int 29839 ; 177 1.531250000; 0.910638259
.int 30009 ; 178 1.562500000; 0.915824544
.int 30170 ; 179 1.593750000; 0.920722322
.int 30321 ; 180 1.625000000; 0.925346225
.int 30464 ; 181 1.656250000; 0.929710307
.int 30599 ; 182 1.687500000; 0.933828043
.int 30726 ; 183 1.718750000; 0.937712339
.int 30846 ; 184 1.750000000; 0.941375538
.int 30960 ; 185 1.781250000; 0.944829436
.int 31066 ; 186 1.812500000; 0.948085286
.int 31167 ; 187 1.843750000; 0.951153820
152
.int 31262 ; 188 1.875000000; 0.954045260
.int 31351 ; 189 1.906250000; 0.956769334
.int 31435 ; 190 1.937500000; 0.959335293
.int 31514 ; 191 1.968750000; 0.961751926
.int 31589 ; 192 2.000000000; 0.964027580
.int 31659 ; 193 2.031250000; 0.966170173
.int 31725 ; 194 2.062500000; 0.968187217
.int 31787 ; 195 2.093750000; 0.970085827
.int 31846 ; 196 2.125000000; 0.971872746
.int 31901 ; 197 2.156250000; 0.973554356
.int 31953 ; 198 2.187500000; 0.975136698
.int 32002 ; 199 2.218750000; 0.976625484
.int 32047 ; 200 2.250000000; 0.978026115
.int 32091 ; 201 2.281250000; 0.979343695
.int 32131 ; 202 2.312500000; 0.980583047
.int 32169 ; 203 2.343750000; 0.981748725
.int 32205 ; 204 2.375000000; 0.982845029
.int 32239 ; 205 2.406250000; 0.983876017
.int 32271 ; 206 2.437500000; 0.984845517
.int 32301 ; 207 2.468750000; 0.985757143
.int 32329 ; 208 2.500000000; 0.986614298
.int 32355 ; 209 2.531250000; 0.987420196
.int 32380 ; 210 2.562500000; 0.988177862
.int 32403 ; 211 2.593750000; 0.988890151
.int 32425 ; 212 2.625000000; 0.989559749
.int 32446 ; 213 2.656250000; 0.990189189
.int 32465 ; 214 2.687500000; 0.990780856
.int 32484 ; 215 2.718750000; 0.991336996
.int 32501 ; 216 2.750000000; 0.991859725
.int 32517 ; 217 2.781250000; 0.992351033
.int 32532 ; 218 2.812500000; 0.992812795
.int 32546 ; 219 2.843750000; 0.993246775
.int 32560 ; 220 2.875000000; 0.993654634
.int 32572 ; 221 2.906250000; 0.994037935
.int 32584 ; 222 2.937500000; 0.994398146
.int 32595 ; 223 2.968750000; 0.994736652
.int 32605 ; 224 3.000000000; 0.995054754
.int 32615 ; 225 3.031250000; 0.995353675
.int 32624 ; 226 3.062500000; 0.995634567
.int 32633 ; 227 3.093750000; 0.995898513
.int 32641 ; 228 3.125000000; 0.996146531
.int 32649 ; 229 3.156250000; 0.996379578
.int 32656 ; 230 3.187500000; 0.996598555
.int 32663 ; 231 3.218750000; 0.996804309
.int 32669 ; 232 3.250000000; 0.996997635
.int 32675 ; 233 3.281250000; 0.997179283
.int 32681 ; 234 3.312500000; 0.997349955
.int 32686 ; 235 3.343750000; 0.997510313
.int 32691 ; 236 3.375000000; 0.997660979
.int 32695 ; 237 3.406250000; 0.997802538
.int 32700 ; 238 3.437500000; 0.997935538
.int 32704 ; 239 3.468750000; 0.998060496
.int 32708 ; 240 3.500000000; 0.998177898
.int 32711 ; 241 3.531250000; 0.998288199
.int 32715 ; 242 3.562500000; 0.998391828
.int 32718 ; 243 3.593750000; 0.998489189
.int 32721 ; 244 3.625000000; 0.998580659
.int 32724 ; 245 3.656250000; 0.998666595
.int 32726 ; 246 3.687500000; 0.998747332
.int 32729 ; 247 3.718750000; 0.998823182
153
.int 32731 ; 248 3.750000000; 0.998894443
.int 32733 ; 249 3.781250000; 0.998961390
.int 32736 ; 250 3.812500000; 0.999024286
.int 32737 ; 251 3.843750000; 0.999083374
.int 32739 ; 252 3.875000000; 0.999138886
.int 32741 ; 253 3.906250000; 0.999191037
.int 32743 ; 254 3.937500000; 0.999240031
.int 32744 ; 255 3.968750000; 0.999286059
.int 32746 ; 256 4.000000000; 0.999329300










154
ANEXO N 10: DETALLE DE DATOS PRUEBAS EN CIUDAD
La siguiente tabla muestra el resumen de los resultados obtenidos en cada
una de las pruebas efectuadas empleando el sistema con redes neuronales.
Tabla A10.1: Resultado de pruebas en circuito de ciudad utilizando Sistema de
Control con Redes Neuronales.
02/03/2004 13.6 42 min 905.5 909.3 3.8 9.59 0.71 3.58 0.28
04/03/2004 14.2 919.2 923.5 4.3 10.62 0.75 3.30 0.30
05/03/2004 14.15 938 942.6 4.6 10.91 0.77 3.08 0.33
08//03/2004 14.23 932.4 936.7 4.3 11.39 0.80 3.31 0.30
10//03/2004 14.2 952.45 956.7 4.25 10.67 0.75 3.34 0.30
16//03/2004 14.25 975.1 979.3 4.2 10.68 0.75 3.39 0.29
23/03/2003 14.24 1007.4 1011.8 4.4 10.54 0.74 3.24 0.31
23/03/2003 14.25 1011.8 1015.9 4.1 10.17 0.71 3.48 0.29
25/03/2003 14.23 1017.2 1021.5 4.3 10.56 0.74 3.31 0.30
25/03/2003 14.21 1021.62 1025.55 3.93 9.84 0.69 3.62 0.28
31/03/2003 14.25 1042 1046.5 4.5 11.48 0.81 3.17 0.32
07/04/2003 14.25 1052.6 1056.75 4.15 10.5 0.74 3.43 0.29
Promedio 4.24 10.58 0.75 3.36 0.30
Anlisis de Resultados Prcticos Red Neuronal
Fecha Km Recorrido Tiempo [s] KWh Inicial KWh Final KWh Ah KWh/km Km/KWh Ah/Km

Observaciones:
1.- Ah inicial = 0.95.
2.- Los Ah finales se miden despus de pasar la carga sobrante de los
condensadores a las bateras.
3.- Presin Neumticos: 52 atrs y 44 adelante.
4.- En la primera muestra de ambas pruebas se cargaron las bateras hasta
resetear el Ah meter. Despus, se cargaron hasta prender la luz verde del
cargador.
155
La siguiente tabla muestra el resumen de los resultados obtenidos en cada
una de las pruebas efectuadas empleando el sistema con el control clsico de carga en
los ultracapacitores.
Tabla A10.2: Resultado de pruebas en circuito de ciudad utilizando Sistema de
Control de Carga de los Ultracapacitores.
04/03/2004 14.2 927.9 932.4 4.5 10.8 0.76 3.16 0.32
08//03/2004 14.5 942.1 946.8 4.7 10.67 0.74 3.09 0.32
10//03/2004 14.23 947.6 952.2 4.6 11.25 0.79 3.09 0.32
11//03/2004 14.23 980.1 984.45 4.35 10.77 0.76 3.27 0.31
17//03/2004 14.25 984.5 988.9 4.4 10.08 0.71 3.24 0.31
26/03/2004 14.22 1026.2 1030.5 4.3 10.48 0.74 3.31 0.30
26/03/2004 14.2 1030.6 1034.6 4 9.87 0.70 3.55 0.28
30/03/2004 14.25 1036.7 1041 4.3 10.5 0.74 3.31 0.30
13/04/2004 14.23 1057.5 1061.85 4.35 10.7 0.75 3.27 0.31
Promedio 4.36 10.55 0.74 3.25 0.31
Ah Ah/Km
Anlisis de Resultados Prcticos Control SOC
KWh/km Km/KWh Fecha Km Recorrido KWh Inicial KWh Final KWh

La siguiente tabla muestra el resumen de los resultados obtenidos en cada
una de las pruebas efectuadas empleando el sistema con regeneracin en las bateras.
Tabla A10.3: Resultado de pruebas en circuito de ciudad utilizando Sistema con
Regeneracin en Bateras.
03/03/2004 14.2 963.1 967.65 4.55 11.18 0.79 3.12 0.32
19/03/2004 14.35 989.9 994.6 4.7 11.41 0.80 3.05 0.33
19/03/2004 14.2 994.6 999 4.4 10.76 0.76 3.23 0.31
06/04/2004 14.22 1047.2 1052 4.8 11.58 0.81 2.96 0.34
Promedio 4.6125 11.23 0.79 3.09 0.32
Ah Ah/Km Km/KWh KWh/km
Anlisis de Resultados Prcticos Regeneracin en Bateras
Fecha Km Recorrido Tiempo [s] KWh Inicial KWh Final KWh

156
La siguiente tabla muestra el resumen de los resultados obtenidos en cada
una de las pruebas efectuadas empleando el sistema sin regeneracin.
Tabla A10.4: Resultado de pruebas en circuito de ciudad utilizando Sistema sin
Regeneracin.
11//03/2004 14.23 957.8 963.1 5.3 13.94 0.98 2.68 0.37
22/03/2004 14.25 1001.1 1006.7 5.6 13.85 0.97 2.54 0.39
Promedio 5.45 13.90 0.98 2.61 0.38
Km/KWh KWh/km
Anlisis de Resultados Prcticos sin Regeneracin
Fecha Km Recorrido Tiempo [s] KWh Inicial KWh Final KWh Ah Ah/Km

You might also like