You are on page 1of 93

UNIVERSIDADE ESTADUAL DO OESTE DO PARAN UNIOESTE

CENTRO DE ENGENHARIAS E CINCIAS EXATAS


CAMPUS DE FOZ DO IGUAU
CURSO DE ENGENHARIA ELTRICA

AQUISIO, ARMAZENAMENTO E ANLISE DOS PARMETROS DO


VECULO ELTRICO DA ITAIPU BINACIONAL

IGOR BERTOLINO SCHRAM

FOZ DO IGUAU - PR
2011

IGOR BERTOLINO SCHRAM

AQUISIO, ARMAZENAMENTO E ANLISE DOS PARMETROS DO


VECULO ELTRICO DA ITAIPU BINACIONAL

Relatrio de estgio apresentado ao Curso de


Engenharia Eltrica da Universidade Estadual
do Oeste do Paran, como parte dos requisitos
para obteno do ttulo de Engenheiro
Eletricista.

Orientador:

Prof.

Dr.

Carlos

Henrique

Zanelato Pantaleo
Supervisor Tcnico: Eng. Marcio Massakiti
Kubo, MSc.

FOZ DO IGUAU
2011

ii

IGOR BERTOLINO SCHRAM

AQUISIO, ARMAZENAMENTO E ANLISE DOS PARMETROS DO


VECULO ELTRICO DA ITAIPU BINACIONAL

Relatrio de estgio apresentado ao Curso de Engenharia Eltrica da Universidade Estadual


do Oeste do Paran, aprovado pela comisso julgadora:

_______________________________________________________________
Docente Orientador de Estgio: Prof. Dr. Carlos Henrique Zanelato Pantaleo
UNIOESTE Campus de Foz do Iguau

_______________________________________________________________
Aluizio Henrique Bezagio
Assessoria de Mobilidade Eltrica e Sustentvel Itaipu Binacional

_______________________________________________________________
Jos Paulo Nunes
Centro de Tecnologia Industrial Bsica CETIB/FPTI

_______________________________________________________________
Prof. Dr. Eldio de Carvalho Lobo
Coord. de Estgio Supervisionado do Curso de Eng. Eltrica
UNIOESTE Campus de Foz do Iguau

Foz do Iguau, 03 de Novembro de 2011

iii

Dedico este trabalho minha famlia, que so os alicerces das minhas conquistas.

iv

AGRADECIMENTOS

Primeiramente minha famlia pelo incentivo e apoio ao longo de todos esses anos de
formao acadmica, Irene Capinos pela ajuda e companheirismo.
A todos envolvidos no Projeto VE: Celso Ribeiro Barbosa de Novais, meu supervisor
Marcio Massakiti Kubo pelas dicas e orientaes, Aluizio Henrique Bezagio pela ajuda de
grande valia e pacincia, Bruno Henrique de Moraes Giacchetta, Rodrigo Estevan Baez,
Carlos Eduardo Jacobi, e aos meus amigos e companheiros de estgio Rafael Delapria Dias
dos Santos e Tiago Sartor.
Ao Wagner Geroletti pelo apoio e direcionamento que foram fundamentais, ao pessoal
do laboratrio de automao da UNIOESTE e ao meu professor orientador Carlos Henrique
Zanelato Pantaleo pelo suporte e orientao.

LISTA DE ILUSTRAES
Figura 1.1 Veculo eltrico, modelo Palio Weekend. .............................................................. 3
Figura 1.2 Veculos eltricos desenvolvidos pelo Projeto VE. ............................................... 5
Figura 1.3 Stakeholders do Projeto VE. .................................................................................. 6
Figura 1.4 Diagrama funcional do veculo eltrico. .............................................................. 11
Figura 2.1 Diagrama funcional do projeto. ........................................................................... 14
Figura 2.2 Diagrama de conexes do sistema de aquisio de dados. .................................. 15
Figura 2.3 Gravador USB de microcontroladores PIC Microchip 40 ZIF iCA01. ............... 16
Figura 2.4 Projeto implementado na protoboard. ................................................................. 17
Figura 2.5 Bancada de testes. ................................................................................................ 18
Figura 2.6 Computador de bordo da bancada de testes. ........................................................ 18
Figura 2.7 Pinos do conector DB9 fmea. ............................................................................. 19
Figura 2.8 Microcontrolador PIC18F4580. ........................................................................... 19
Figura 2.9 Pinagem do microcontrolador PIC18F4580. ....................................................... 20
Figura 2.10 Transceiver MCP2551. ...................................................................................... 22
Figura 2.11 Pinagem do transceiver MCP2551. ................................................................... 23
Figura 2.12 Ligaes entre o microcontrolador, o transceiver e o barramento CAN. .......... 25
Figura 2.13 Pinos do carto SD. ............................................................................................ 26
Figura 2.14 Ligaes entre o microcontrolador e o carto SD. ............................................. 26
Figura 2.15 Display LCD 20x04 alfanumrico. .................................................................... 27
Figura 2.16 Cdigo de caracteres do display LCD alfanumrico.......................................... 27
Figura 2.17 Ligaes entre o microcontrolador e o display LCD. ........................................ 28
Figura 2.18 Sensor de temperatura LM35DZ. ....................................................................... 28
Figura 2.19 Relao linear entre temperatura e tenso do sensor de temperatura................. 29
Figura 2.20 Fluxograma da rotina principal. ......................................................................... 31
Figura 2.21 Diagrama de clock. ............................................................................................. 33
Figura 2.22 Diagrama de blocos do timer 0 (modo 16 bits). ................................................. 34
Figura 2.23 Fluxograma da interrupo por overflow do timer 0.......................................... 37
Figura 2.24 Diagrama de blocos das interrupes. ................................................................ 38
Figura 2.25 Diagrama de blocos do timer 1 (modo 16 bits). ................................................. 40
Figura 2.26 Grfico da quantidade de pulsos do sinal em 0,25 segundos. ............................ 41

vi

Figura 2.27 Fluxograma da interrupo externa e da interrupo por overflow do timer 1. . 43


Figura 2.28 Sinais do encoder. .............................................................................................. 45
Figura 2.29 Grfico da derivada da velocidade em relao ao tempo. .................................. 47
Figura 2.30 Grfico da integral da velocidade em relao ao tempo. ................................... 48
Figura 2.31 Grfico da velocidade em relao ao tempo. ..................................................... 57
Figura 2.32 Grfico da corrente em relao ao tempo. ......................................................... 57
Figura 2.33 Grfico de comparao entre velocidade e corrente. ......................................... 58
Figura 2.34 Grfico da tenso em relao ao tempo. ............................................................ 58
Figura 2.35 Grfico da potncia em relao ao tempo. ......................................................... 59
Figura 2.36 Grfico de SOC em relao ao tempo. ............................................................... 59
Figura 2.37 Grfico da temperatura em relao ao tempo. ................................................... 60
Figura 3.1 Prottipo final, primeira tela. ............................................................................... 61
Figura 3.2 Prottipo final, segunda tela. ................................................................................ 62

vii

LISTA DE TABELAS
TABELA 2.1 Relao dos parmetros do microcontrolador PIC18F4580. .......................... 20
TABELA 2.2 Relao dos pinos do transceiver MCP2551. ................................................. 23
TABELA 2.3 Relao entre modo de operao e tenso resultante no pino Rs. .................. 24
TABELA 2.4 Configurao dos bits PCFG3:PCFG0. .......................................................... 50
TABELA 4.1 Planilha de custo prevista na montagem do projeto. ...................................... 64

viii

RESUMO
SCHRAM, I. B. (2011). AQUISIO, ARMAZENAMENTO E ANLISE DOS
PARMETROS DO VECULO ELTRICO DA ITAIPU BINACIONAL. Relatrio de Estgio
(Graduao) Curso de Engenharia Eltrica, Universidade Estadual do Oeste do Paran
UNIOESTE, Foz do Iguau, 2011.

Devido necessidade de uma anlise da variao dos parmetros do veculo eltrico da Itaipu
Binacional durante uma trajetria, o presente trabalho apresenta um sistema de aquisio
destes parmetros, utilizando um transceiver MCP2551 e um microcontrolador PIC18F4580,
que possui um controlador Controller Area Network (CAN) interno, formando um n que se
comunica via um barramento CAN com o Battery Management Interface (BMI) da bateria
eltrica Zero Emission Battery Research Activity (ZEBRA), fabricada pela empresa italiana
FIAMM SoNick, adquirindo seus principais parmetros, tais como, corrente, temperatura,
tenso e estado de carga. Alm dos parmetros da bateria, outros parmetros tambm foram
obtidos, como temperatura interna e externa do veculo eltrico, assim como a velocidade,
acelerao e deslocamento. Todos os dados adquiridos so apresentados em um dislplay LCD
e salvos em uma unidade mvel de armazenamento de memria um carto SD para uma
posterior anlise grfica desses dados em relao ao tempo atravs de um programa
desenvolvido no software MATLAB especificamente para o projeto. Os resultados finais
foram notoriamente satisfatrios, pois os principais parmetros do veculo eltrico foram
apresentados instantaneamente atravs de um display LCD e armazenados no carto SD com
sucesso, podendo avaliar as caractersticas de autonomia e rendimento do veculo atravs das
curvas das variaes dos dados obtidos durante um percurso.
Palavras-chave: rede CAN, PIC18F4580, aquisio de dados, veculo eltrico, carto SD.

ix

ABSTRACT
SCHRAM, I. B. (2011). AQUISITION, STORAGE, AND ANALYSIS OF PARAMETERS OF
THE ELECTRIC VEHICLE. Traineeship Report (Graduation) Electrical Engineering,
Western Paran State University UNIOESTE, Foz do Iguau, 2011.

Due to the need for an analysis of the variation of the Itaipu electric vehicle parameters during
a trajectory, this paper presents an acquisition system of these parameters. The project
developed consists on the acquisition of the parameters of the electric vehicle from Itaipu
Binational, using a MCP2551 transceiver and a PIC18F4580 microcontroller, which has a
Controller Area Network (CAN) controller within, building a node that communicates with
the battery Management Interface (BMI) of the Zero Emission Battery Research Activity
(ZEBRA) electric battery (manufactured by Italian company FIAMM SoNick) through a
CAN bus, acquiring its main parameters, such as current, temperature, voltage and state of
charge. Besides the parameters of the battery, other parameters were also obtained, such as
internal and external temperature of the electric vehicle, as well as speed, acceleration and
displacement. All acquired data are presented in a LCD display and saved in a mobile storage
memory - SD card - for subsequent graphical analysis of these data over time through a
program developed in MATLAB software specifically for the project. The final results
were remarkably satisfactory, since the main parameters of the electric vehicle are presented
instantly via an LCD display and stored on the SD card successfully, and can evaluate the
characteristics of autonomy and efficiency of the vehicle through the curves of variations
in data during a route.
Key-words: CAN network, PIC18F4580, data acquisition, electric vehicle, SD card.

SUMRIO

INTRODUO ................................................................................................................. 1
1.1

Descrio do Problema ......................................................................................... 1

1.2

Justificativas ....................................................................................................... 11

1.3

Objetivos............................................................................................................. 12

METODOLOGIA ........................................................................................................... 13
2.1

Microcontrolador ................................................................................................ 19

2.2

Transceiver ......................................................................................................... 22

2.3

Armazenador de Dados ...................................................................................... 25

2.4

Display LCD ....................................................................................................... 27

2.5

Sensor de Temperatura ....................................................................................... 28

2.6

Programa Desenvolvido no Software MikroC.................................................... 30

2.7

Programa Desenvolvido no Software MATLAB ............................................... 54

VERSO FINAL DO PROTTIPO ............................................................................. 61

PLANILHA DE CUSTO ................................................................................................ 64

RESULTADOS ................................................................................................................ 65

CONCLUSES ............................................................................................................... 66

REFERNCIAS ..................................................................................................................... 68
APNDICE A Cdigo Fonte MATLAB ............................................................................ 69
APNDICE B Diagrama de Ligaes do Projeto ............................................................. 81
ANEXO A Certificado de Divulgao Tcnica Cientfica ............................................... 82

1 INTRODUO

Com o desenvolvimento tecnolgico no meio automotivo e com a constante demanda


de conforto e praticidade houve um aumento de componentes eltricos/eletrnicos nos
veculos. Entretanto, medida que o nmero de componentes foi crescendo, tambm foi
aumentando o cabeamento necessrio para interlig-los.
Em consequncia disto, o protocolo Controler Area Network (CAN) supriu a
necessidade de uma comunicao com um significante decremento de cabos e um servio
confivel. A rede CAN foi primeiramente desenvolvida para a rea automotiva e
posteriormente foi utilizada tambm no meio industrial em nvel de cho de fbrica, devido a
sua vantajosa reduo de cabos, praticidade, confiabilidade e imunidade a perturbaes. A
rede CAN pode ser tranquilamente aplicada em ambientes hostis, que possuem rudos ou
presena de campos eletromagnticos.
Conforme os dispositivos microprocessadores foram se desenvolvendo, sistemas
computacionais passaram a ser utilizados em sistemas automotivos, motivados pelos
requisitos dos usurios e pela legislao de reduo de poluentes. Assim como numa estrutura
de um computador pessoal, um sistema computacional automotivo basicamente estruturado
por uma Central Processing Unit (CPU), memrias e unidades eletrnicas de controle
denominadas Electronic Control Unit (ECU). Uma ECU interage com o ambiente externo,
interligando grandezas fsicas atravs de sensores, atuadores e transdutores [1].
Atualmente existem vrios estudos relacionados aquisio de dados de veculos e at
mesmo empresas que oferecem sistemas de aquisio (dataloggers) que utilizam protocolos
de comunicao e softwares desenvolvidos para armazenamento, gerenciamento e anlise de
dados. Estes sistemas adquirem informaes dos veculos atravs de sensores internos ou
externos ao dispositivo datalogger de forma contnua no tempo. A facilidade de comunicao
utilizando redes de comunicao embarcada e o avano da tecnologia microprocessada
permitem o desenvolvimento desta tecnologia.

1.1

Descrio do Problema

Devido s novas demandas de fontes renovveis de energia, o Projeto Veculo Eltrico


(VE) da Itaipu Binacional apresenta a proposta do desenvolvimento de um veculo no

poluente. Para tanto preciso que solues inteligentes atendam as necessidades da empresa
em promover e aperfeioar o veculo eltrico. Com base nisto, a Itaipu possui parcerias com
universidades que auxiliam na pesquisa e desenvolvimento do Projeto VE.
A necessidade da nacionalizao dos componentes do veculo eltrico e da anlise de
seu comportamento em uma trajetria tornaram-se a proposta deste trabalho.

INFORMAES GERAIS SOBRE A EMPRESA

A Itaipu se preocupa com o tema sustentabilidade desde seu surgimento. A demanda


mundial por transporte vem crescendo de modo vertiginoso e, aliada a essa demanda, h a
preocupao com o impacto das fontes de energia que agridem o meio ambiente. O Projeto
VE une a misso de Itaipu em produzir energia com qualidade e eficincia adoo de
solues que faam uso de alternativas sociais, econmicas, tecnolgicas e tursticas
sustentveis. Com pesquisa e avanos tecnolgicos, os carros movidos a eletricidade so
capazes de se transformar em uma alternativa vivel para o transporte coletivo e individual
urbano [2].

Fonte: Itaipu Binacional.


Figura 1.1 Veculo eltrico, modelo Palio Weekend.

Em 2006 foi formalizada parceria com a empresa sua controladora de usinas


hidreltricas Kraftwerke Oberhasli AG (KWO), visando pesquisa e desenvolvimento de
alternativas de transporte movidas a eletricidade por meio da execuo de linhas de pesquisa,
com participao de instituies de ensino.
Para Itaipu, os principais benefcios do projeto so:

Preservar o meio ambiente;

Aperfeioar o veculo eltrico existente;

Capacitar profissionais;

Adquirir know-how;

Gerar emprego e renda;

Utilizar crditos de carbono;

Empregar o VE em frota prpria;

Reduzir custos com combustveis;

Propiciar a produo de componentes nacionais;

Fomentar a produo de VEs pelas indstrias;

Propagar pesquisa;

Desenvolvimento e tecnologia nacionais;

Promover a linearidade na curva de carga ao carregar as baterias fora do horrio de


pico de consumo.

As principais metas objetivadas pela Itaipu so:

Nacionalizar os componentes dos VEs;

Aperfeioar os componentes, reduzindo seus custos e aumentando sua robustez e


confiabilidade;

Incitar a efetiva aplicao das patentes desenvolvidas dentro do projeto, para motivar a
produo industrial de VEs em larga escala;

Colaborar com solues de transporte coletivo eficiente e ambientalmente corretas;

Elaborar tcnicas e solues para fomentar o aumento da autonomia dos veculos e


reduzir o tempo de recarga das baterias;

Desenvolver, no conceito smart grid, solues para aproveitar as vantagens de


integrao dos VEs com a rede;

Buscar meios de tornar compatvel a integrao do setor de energia com o novo


mercado consumidor de veculos eltricos;

Estudar e empregar solues de recarga dos VEs utilizando fontes renovveis;

Transferir conhecimentos, promover a capacitao profissional e gerar emprego e


renda;

Incentivar o uso de veculos eficientes sem agredir o meio ambiente.

Apesar de manter-se em escala laboratorial, o Projeto VE trata-se da maior linha de


montagem de carros eltricos do Brasil. Em cinco anos mais de 50 prottipos, modelo Palio
Weekend, em parceria com a Fiat, foram construdos, com recursos da Eletrobras [2].
Os prottipos usam bateria de 15 kW (20 CV), que exige 8 horas de recarga, com
autonomia de 100 km e velocidade mxima de 110 km/h. O desafio do Projeto VE viabilizar
autonomia de 450 km, velocidade mxima de 150 km/h e recarga de apenas 20 minutos,
aliados a um valor de mercado compatvel com o do veculo convencional. Os modelos que

saem atualmente do Centro de Pesquisa, Desenvolvimento e Montagem de Veculos Eltricos


(CPDM-VE) j so equipados com ar condicionado e utilizam motores e baterias mais
potentes [2].
O Projeto VE, alm do transporte individual, tambm busca solues para o transporte
coletivo e de carga. O primeiro caminho eltrico desenvolvido na Amrica Latina, em
parceria com a Iveco, est em uso na Itaipu. Emprega trs baterias Zero Emission Battery
Research Activity (ZEBRA), de 165 kg cada, carrega at 7 pessoas e carga de 2,5 toneladas,
utiliza motor de 40 kW, possui autonomia de 100 km e velocidade mxima de 70 km/h. Da
parceria com as empresas Iveco, Mascarello e Euroar foi desenvolvido o primeiro mininibus
completamente eltrico do pas, com capacidade para 17 passageiros [2].

Fonte: Itaipu Binacional.


Figura 1.2 Veculos eltricos desenvolvidos pelo Projeto VE.

O Projeto VE fez surgir o interesse pela produo do primeiro nibus eltrico hbrido a
etanol. Trata-se de um prottipo de nibus desenvolvido sob a coordenao de Itaipu, com um
consrcio de vrias empresas brasileiras: Eletra, Weg, Mascarello, tuttoTrasporti, Mitsubishi,
Euroar e Magneti Marelli [2].

Fonte: Itaipu Binacional.


Figura 1.3 Stakeholders do Projeto VE.

A abrangncia e complexidade tecnolgica do Projeto VE demandou o


estabelecimento de parcerias entre Itaipu e entidades brasileiras, paraguaias e europias, as
quais so: Fiat, Eletrobras, Cepel, Copel, Lactec, Ande, Cemig, CPFL, Chesf, Weg, Correios,
Iveco, Mascarello, Petrobras, Euroar, Grupo Moura, Agrale, Light, alm das empresas
associadas KWO. Os ramos de atividade das entidades incluem fabricantes de baterias,
fabricantes de acessrios eletrnicos, montadoras automotivas, fabricantes de motores
eltricos e sistemas de controle, concessionrias de energia eltrica, institutos de pesquisa e
universidades. A seguir so apresentadas algumas caractersticas do veculo eltrico [2].

Inversor de Frequncia

Pode ser considerado o crebro do VE por promover um controle eficaz do veculo ao


receber informaes de vrios sensores; controlar a velocidade e o torque do motor, variando
a frequncia e a tenso; e transformar a energia oriunda da bateria de corrente contnua em
corrente alternada trifsica para alimentar o motor eltrico [2].

Motor Eltrico

Tem dimenses e peso significativamente diminudos por ser refrigerado a gua. Seu
torque equivalente a um carro 1.0 a combusto [2].

Tipo: assncrono trifsico (motor de induo);

Alimentao: 85 V / 100 Hz / trifsico;

Potncia nominal: 15 kW (21,8 CV);

Potncia mxima: 28 kW (37,8 CV);

Torque nominal: 50 N.m (5,1 kgf.m);

Torque mximo: 124 N.m (12,6 kgf.m);

Rotao nominal: 2850 rpm;

Rotao mxima: 9000 rpm;

Peso: 41,5 kg [2].

Bateria de Trao

O VE exige uma grande quantidade de energia, para tanto, utiliza a bateria ZEBRA,
que possui sais (cloretos de sdio e nquel) em sua composio qumica, o que a torna
praticamente 100 % reciclvel [2].
A bateria trabalha aquecida a 270 C e apesar disso, sua temperatura externa oscila
entre 5 C e 10 C acima da temperatura ambiente devido ao isolamento a vcuo. Para manter
sua temperatura, a bateria consome aproximadamente 10 % da carga por dia quando o veculo
no est conectado rede eltrica. Pode ser carregada a partir de uma tomada eltrica de
127/220 V, 50/60 Hz [2].

Tipo: bateria de sal fundido (sdio-nquel-cloro);

Tenso: 253 V (em circuito aberto);

Tenso final a vcuo: 278 V;

Mnima tenso de operao: 186 V;

Corrente mxima: 266 A;

Energia: 19,2 kWh;

Capacidade: 76 Ah;

Corrente de recarga: 16 A;

Tempo de recarga total: 8 horas;

Consumo de energia a cada 100 km: 15 kWh;

Dimenses: 680 x 609 x 292 mm;

Peso: 165 kg [2].

Battery Management Interface (BMI)

responsvel por adquirir e gerenciar os parmetros da bateria ZEBRA. O BMI se


comunica com outros componentes do veculo eltrico atravs da rede CAN utilizando um
baud rate de 125 kbps.

Carregador da Bateria

Converte a energia da rede eltrica, que de corrente alternada, para energia de


corrente contnua. O controle de energia que o carregador precisa fornecer feito pela prpria
bateria [2].
O conector para o cabo de alimentao est localizado no local onde seria o bocal do
tanque de gasolina em um veculo convencional [2].

Conversor DC/DC

Converte a tenso da bateria de aproximadamente 250 V para 12 V para alimentar


diversos dispositivos eletrnicos do veculo [2].

Sistema de Freios

De servio: hidrulico com comando a pedal;

Dianteiro: a disco ventilado ( de 257 mm) com pina flutuante;

Traseiro: a tambor ( de 185 mm) com sapatas autocentrantes e regulagem automtica


[2].

Bomba de Vcuo

Cria vcuo para o sistema de freio servoassistido oferecendo ao motorista maior


sensibilidade, segurana e conforto ao acionar o freio [2].

Cmbio

Marchas: frente, neutro e r;

Trao: dianteira [2].

Suspenso Dianteira

Tipo: MacPherson com rodas independentes, braos oscilantes inferiores transversais


e barra estabilizadora;

Amortecedores: hidrulicos, telescpicos de duplo efeito;

Elemento elstico: molas helicoidais [2].

Suspenso Traseira

Tipo: com rodas independentes, braos oscilantes longitudinais e barra estabilizadora;

Amortecedores: hidrulicos, telescpicos de duplo efeito, tipo WET;

Elemento elstico: molas helicoidais [2].

Desempenho

Velocidade mxima: 110 km/h;

Acelerao de 0 a 50 km/h: 7 s;

Acelerao de 0 a 100 km/h: 28 s;

Autonomia: 100 km [2].

10

Peso

Em ordem de marcha (Std A): 1029 kg;

Carga til (com condutor): 342 kg [2].

Dimenses Externas

Comprimento: 3827 mm;

Largura: 1834 mm;

Altura: 1433 mm;

Distncia entre eixos: 2373 mm;

Bitola dianteira: 1418 mm;

Bitola traseira: 1378 mm [2].

O esquema de ligaes da Figura 1.4 demonstra a interao entre os componentes do


veculo eltrico, onde:

Bateria eltrica ZEBRA e BMI: manufaturados pela FIAMM SoNick;

Demais componentes: manufaturados pela MES S.A.

11

Fonte: Manual do inversor da MES S.A.


Figura 1.4 Diagrama funcional do veculo eltrico.

1.2

Justificativas

Como no existem estudos no que diz respeito variao dos parmetros do veculo
eltrico da Itaipu Binacional em um percurso, o presente trabalho apresenta um sistema de
aquisio de dados do VE que proporciona uma viso de como o veculo se comporta a cada
instante durante um trajeto para obter um resultado de autonomia e desempenho atravs da
anlise da variao de cada parmetro adquirido.
Todos os equipamentos e softwares que adquirem dados do veculo eltrico so
importados da empresa sua MES S.A., o que onera o Projeto VE. Como essa empresa
detentora do conhecimento, os aspectos de projeto e programao dos equipamentos no so

12

divulgados aos usurios. Portanto, alm de vivel economicamente, o projeto desenvolvido


nacional, aberto e pode-se posteriormente aperfeio-lo ou adapt-lo a diferentes
necessidades.
Em vista da atual evidncia do veculo eltrico, projetos e estudos que proporcionem o
desenvolvimento deste veculo so de grande interesse de concessionrias e fabricantes
relacionados rea automotiva para atender a demanda futura de mercado.

1.3

Objetivos

O projeto desenvolvido consiste em uma ECU de aquisio de dados do veculo


eltrico da Itaipu Binacional. Esta ECU se comunica via um barramento CAN com o BMI da
bateria eltrica ZEBRA, fabricada pela empresa italiana FIAMM SoNick, adquirindo seus
principais parmetros. Alm dos parmetros da bateria outros dados tambm so adquiridos,
como temperatura interna e externa, velocidade, acelerao e deslocamento do veculo
eltrico. Todas essas informaes so salvas em uma unidade mvel de armazenamento para
posterior anlise.

13

2 METODOLOGIA

Materiais/componentes utilizados:

1 microcontrolador PIC18F4580;

1 transceiver MCP2551;

1 fotoacoplador 4N33TFK;

1 regulador de tenso LM7805;

1 regulador de tenso MC33269DT-3.3;

2 sensores de temperatura LM35DZ;

1 display LCD 20x04 alfanumrico;

1 cabo com conector DB9 fmea;

1 carto de memria SD de 1 GB;

1 conector para carto de memria de 9 vias;

Fios condutores;

2 LEDs;

6 chaves tctil;

Capacitores;

Resistores.

Equipamentos utilizados:

Bancada de testes;

Protoboard;

Gravador USB de microcontroladores PIC Microchip 40 ZIF iCA01;

Fonte 127/220 Vac, 50/60 Hz input 5 Vdc output;

Osciloscpio digital colorido Fluke 196C.

Softwares utilizados:

AutoCAD R14;

MikroC 8.2.0.0 verso demonstrativa;

MATLAB R2010a;

PICkit 2 2.61.

14

Fonte: Autor.
Figura 2.1 Diagrama funcional do projeto.

A Figura 2.1 representa o diagrama funcional do projeto. O microcontrolador


PIC18F4580 a CPU do sistema, ou seja, todas as informaes vo at ele e nele so
processadas, e posteriormente so transmitidas ao display LCD e ao carto de memria SD.
Os sensores de temperatura LM35DZ so responsveis por enviar as informaes de
temperatura interna e temperatura externa do veculo eltrico ao microprocessador. Ambos
so ligados s entradas analgicas do Programmable Interface Controller (PIC).
O transceiver MCP2551 responsvel por criar uma interface entre a rede CAN e o
microcontrolador, sabendo que ambos possuem nveis lgicos de tenso diferentes. Atravs
do transceiver as mensagens da rede CAN so enviadas ao controlador CAN (que se encontra
integrado ao PIC18F4580) e desta forma o controlador CAN envia as informaes ao
microcontrolador.
O BMI possui uma rede CAN, que utilizada para a comunicao entre alguns
componentes do veculo, qual foi inserido o projeto, e atravs do barramento CAN envia
suas principais informaes como temperatura, tenso, corrente e State Of Charge (SOC).
Sendo assim, o microcontrolador e o BMI so ambos ns (ou ECUs) da rede CAN,
conforme ilustra a Figura 2.2. Contudo, o n do BMI envia os dados ao barramento, e o n do
projeto adquire estes dados.
A velocidade do veculo e a rotao do motor foram adquiridas atravs da frequncia

15

do sinal gerado pelo encoder do motor ligado a uma interrupo externa do PIC. Desta forma,
integrando a velocidade em relao ao tempo, obteve-se o deslocamento, e derivando a
velocidade em relao ao tempo obteve-se a acelerao.
O display LCD e o carto SD so as unidades de apresentao de dados do projeto,
isto , so os componentes que apresentam os dados aps serem coletados e processados. O
display LCD possui a funo de interface homem/mquina, pois nele possvel ver
instantaneamente a variao de todos os parmetros obtidos, enquanto que o carto SD possui
a funo de apresentar os dados adquiridos depois de uma trajetria completa, sendo que esses
dados so plotados em um grfico em relao ao tempo em um programa desenvolvido no
software MATLAB especificamente para o projeto, que ser abordado no item 2.7.
O esquema de ligaes detalhado do projeto de aquisio de dados do veculo eltrico
encontra-se no Apndice B.

Fonte: Autor.
Figura 2.2 Diagrama de conexes do sistema de aquisio de dados.

16

Os componentes do projeto podem ser classificados da seguinte forma:

BMI da Bateria ZEBRA: unidade de sada de dados;

Motor: unidade de sada de dados;

Transceiver MCP2551: unidade de entrada e sada de dados;

Microcontrolador PIC18F4580: unidade de entrada, processamento e sada de dados;

Sensores de temperatura LM35DZ: unidades de sada de dados;

Display LCD 20x04 alfanumrico: unidade de entrada e apresentao de dados;

Carto SD: unidade de entrada e armazenamento.

Figura 2.3 Gravador USB de microcontroladores PIC Microchip 40 ZIF iCA01.

O projeto foi primeiramente testado em uma placa de prototipagem de contato


matricial (protoboard) e posteriormente desenvolvido um prottipo em uma placa de circuito
impresso. Toda a programao do microcontrolador foi realizada utilizando o software
MikroC 8.2.0.0 verso demonstrativa que um compilador para microcontroladores PIC da
Microchip. As rotinas de programao sero explanadas detalhadamente no item 2.6. O
programa elaborado no MikroC foi gravado no PIC18F4580 utilizando o gravador de
microcontroladores Microchip modelo iCA01 e o software de interface de gravao PICkit 2.
A bancada de testes (Figura 2.5) que rene todos os componentes do veculo eltrico
em um nico mdulo foi bastante utilizada para testes que no necessitavam do veculo em
movimento, entretanto, para os demais testes houve a necessidade de uso do veculo eltrico.
Para visualizao e anlise de sinais foi utilizado o osciloscpio digital Fluke 196C, e
a alimentao do circuito foi atravs da fonte 5 Vdc quando utilizada a bancada de testes.
Quando utilizado o veculo eltrico, a alimentao do circuito foi atravs da prpria bateria 12

17

Vdc do veculo, porm com o regulador de tenso de 5 Vdc LM7805 na entrada do PIC para
condicionar a tenso de 12 Vdc em sua tenso nominal.

Fonte: Autor.
Figura 2.4 Projeto implementado na protoboard.

18

Fonte: Autor.
Figura 2.5 Bancada de testes.

Fonte: Autor.
Figura 2.6 Computador de bordo da bancada de testes.

19

A comunicao CAN foi feita atravs de um cabo com conector DB9 fmea ligado
porta CAN do veculo. A Figura 2.7 ilustra o conector com seus referentes pinos, sendo o pino
7 ligado ao CAN high e o pino 2 ligado ao CAN low do barramento.

Figura 2.7 Pinos do conector DB9 fmea.

2.1

Microcontrolador

Figura 2.8 Microcontrolador PIC18F4580.

O PIC18F4580 um microcontrolador da famlia 18 que possui um processamento de


dados de 8 bits fabricado pela empresa norte-americana de semicondutores Microchip
Technology Inc. O seu diagrama de pinos encontra-se na Figura 2.9. As setas indicam se o
pino pode ser uma entrada ou uma sada de dados, ou mesmo ambas.
Este microcontrolador foi escolhido para o projeto devido ao seu mdulo Enhanced
Controller Area Network (ECAN), que dispensa a necessidade de utilizar um controlador
CAN stand-alone entre o transceiver e o microcontrolador, e tambm devido s vrias outras
caractersticas e perifricos includos em um nico circuito integrado descritas na sequncia.

20

Fonte: Folha de dados do microcontrolador.


Figura 2.9 Pinagem do microcontrolador PIC18F4580.

O microcontrolador possui os seguintes parmetros:


TABELA 2.1 Relao dos parmetros do microcontrolador PIC18F4580.

PARMETRO
Tipo de memria de programa
Memria de programa (KB)
Velocidade do CPU (MIPS)
RAM bytes
Dados EEPROM (bytes)
Perifricos de comunicao digital
Perifricos de Captura/Comparao/PWM
Timers
Interrupo externa
Conversores analgico/digital (ADC)
Comparadores
CAN
mbito de temperatura (C)
mbito de operao de tenso (V)
Nmero de pinos
Pinos de entrada/sada

PROPRIEDADE
Flash
32
10
1536
256
1-A/E/USART, 1-MSSP (SPI/I2C)
1 CCP, 1 ECCP
1 x 8-bit, 3 x 16-bit
3
11 canais, 10-bit
2
1 ECAN
-40 a 125
2 a 5,5
40
36

Fonte: Folha de dados do microcontrolador.

21

E as seguintes caractersticas:

ECANTM;

Caractersticas nanoWatt;

Oscilador interno;

Autoprogramao;

Proteo do cdigo;

Mxima velocidade de clock de 40 MHz;

LIN USART [3].

Neste projeto foram utilizados os seguintes perifricos do microcontrolador:

Oscilador interno;

Timers;

Conversores analgico/digital;

ECAN;

Portas de entrada/sada de dados [3].

O PIC18F4580 possui o mdulo ECAN, que um controlador de comunicao que


suporta os protocolos definidos pela especificao CAN desenvolvida pela Bosch. O mdulo
suporta CAN 1.2, CAN 2.0A, e as verses CAN 2.0B passiva e CAN 2.0B ativa do protocolo
[3].
O controlador CAN responsvel por transmitir ou receber as mensagens (data
frames) no barramento no formato do protocolo CAN. Alm de ser capaz de filtrar mensagens
recebidas e gerenci-las.
O mdulo CAN possui os seguintes tipos de mensagens:

Mensagem padro;

Mensagem remota;

Mensagem de erro;

Recepo de sobrecarga de mensagem;

Gerao/deteco de espao entre mensagens [3].

A sequncia abaixo demonstra os passos de inicializao necessrios para utilizar o


mdulo ECAN para transmitir ou receber uma mensagem. Esses passos podem ser

22

adicionados ou removidos dependendo dos requisitos da aplicao:


1. Garantir que o mdulo ECAN est no modo de configurao;
2. Selecionar ECAN modo operacional;
3. Configurar os registradores de baud rate;
4. Configurar os registradores de filtro e mscara;
5. Configurar o mdulo ECAN em modo normal ou qualquer outro modo exigido pela
aplicao [3].

Como o MikroC possui uma biblioteca especfica para o mdulo ECAN dos
microcontroladores PIC da famlia 18, todos os passos acima foram configurados pela
linguagem do software.

2.2

Transceiver

Figura 2.10 Transceiver MCP2551.

O transceiver (ou transceptor) serve basicamente como uma interface entre o


controlador CAN e a camada fsica (barramento), isto , serve tanto para enviar dados ao
barramento, quanto ao controlador CAN.
O transceptor MCP2551 tambm fabricado pela Microchip Technology Inc. e possui
as seguintes caractersticas:

Suporta operao de 1 Mbps;

Implementa requisitos da camada fsica da norma ISO-11898;

Adequado para sistemas de 12 V e 24 V;

Inclinao externa-controlada para reduo de interferncia por emisso de


radiofrequncia;

Deteco de falta a terra (permanente dominante) na entrada TXD;

23

Power-on reset e proteo tenso brown-out;

Um n desligado ou evento brown-out no perturba o barramento CAN;

Operao de espera (standby) de baixa corrente;

Proteo contra danos de condies de curto-circuito (tenso positiva ou negativa da


bateria);

Proteo contra transitrios de alta tenso;

Proteo trmica de desligamento automtico;

At 112 ns podem ser conectados;

Alta imunidade a rudos devido implementao do barramento diferencial;

mbito de temperatura:
o Industrial: -40C a 85C;
o Estendido: -40C a 125C [4].

A Figura 2.11 apresenta o diagrama de pinos do transceptor MCP2551 e a Tabela 2.2


relaciona cada pino com a sua respectiva funo.

Fonte: Folha de dados do transceiver.


Figura 2.11 Pinagem do transceiver MCP2551.
TABELA 2.2 Relao dos pinos do transceiver MCP2551.

NMERO
1
2
3
4
5
6
7
8

NOME
TXD
VSS
VDD
RXD
VREF
CANL
CANH
RS

FUNO
Entrada de transmisso de dados
Terra
Alimentao
Sada de recebimento de dados
Referncia de tenso de sada
CAN tenso nvel baixo (entrada/sada)
CAN tenso nvel baixo (entrada/sada)
Entrada de controle de inclinao

Fonte: Folha de dados do transceiver.

24

O transmissor (TXD) tem a funo de converter o sinal recebido pelo controlador


CAN em um sinal apropriado para o barramento, ou seja, converte em dois estados distintos:
o estado dominante e o estado recessivo.
O receptor (RXD) tem a funo de realizar o processo inverso do transmissor:
transformar os estados dominante ou recessivo do barramento CAN em nveis de tenso
adequados ao controlador CAN, geralmente nveis de tenso Transistor Transitor Logic
(TTL).
O pino Rs permite trs configuraes diferentes do transceiver:

Alta velocidade (high speed);

Controle de inclinao (slope controll);

Espera (standby ou sleep mode) [4].

Para uma configurao em alta velocidade, necessrio ligar o pino Rs ao terra do


circuito. Nesta configurao, o transmissor tem uma alta taxa de borda de subida e descida
para suportar uma alta taxa de comunicao do barramento CAN [4].
O controle de inclinao reduz interferncias eletromagnticas limitando a taxa de
subida e descida do CANH e do CANL, para tanto necessrio conectar um resistor com um
valor de resistncia conveniente (na ordem de k especificados na folha de dados do
componente) entre o pino Rs e o terra do circuito [4].
Para uma configurao de standby, basta ligar o pino Rs ao positivo do circuito. Nesta
configurao, o transmissor desligado, e o receptor opera em menor corrente. Desta forma, o
receptor continua operando, porm em uma menor taxa [4].
A Tabela 2.3 relaciona o modo de operao do trasceiver com o nvel de tenso
necessrio no pino Rs.
TABELA 2.3 Relao entre modo de operao e tenso resultante no pino Rs.

MODO
CORRENTE NO PINO RS
Standby
-IRs < 10 A
Slope-control 10 A < -IRs < 200 A
High-speed
-IRs < 610 A

TENSO RESULTANTE NO PINO RS


VRs > 0.75 VDD
0.4 VDD < VRs < 0.6 VDD
0 < VRs < 0.3VDD

Fonte: Folha de dados do transceiver.

A configurao escolhida para o projeto foi a configurao de alta velocidade,


colocando um resistor com uma resistncia muito baixa (10 ) entre o pino Rs e o terra do

25

circuito, atendendo o requisito de tenso do pino Rs: 0 > VRs > 0,3VDD. A Figura 2.12
indica as ligaes entre o microcontrolador, o transceiver e o barramento CAN.

Fonte: Adaptado [10].


Figura 2.12 Ligaes entre o microcontrolador, o transceiver e o barramento CAN.

2.3

Armazenador de Dados

Todos os dados foram salvos em uma unidade mvel de armazenamento: o carto SD.
Este carto possui a seguinte pinagem:

26

Figura 2.13 Pinos do carto SD.

A biblioteca Multi Media Card (MMC) do software de programao do


microcontrolador especfica para a famlia PIC18 e permite a formatao do carto SD
apenas com sistema de arquivos FAT16.
Todos os dados so salvos, juntamente com o horrio (hora, minuto e segundo), em
uma taxa de 1 segundo na extenso de arquivo de texto (.txt). A Figura 2.14 demonstra as
ligaes entre o microcontrolador e o carto SD. Observe que a tenso nominal do carto SD
de 3,3 V, para tanto, fez-se necessrio utilizar um regulador de tenso MC33269DT-3.3 para
a alimentao do carto SD e divisores de tenso em suas portas de comunicao.

Fonte: Adaptado [10].


Figura 2.14 Ligaes entre o microcontrolador e o carto SD.

27

2.4

Display LCD

Figura 2.15 Display LCD 20x04 alfanumrico.

Para visualizar a variao instantnea dos dados foi utilizado um display LCD
alfanumrico de 4 linhas por 20 colunas. Os dados recebidos pelo microcontrolador so
atualizados a cada loop de programao utilizando uma biblioteca do software MikroC
especfica para displays LCD alfanumricos. A Figura 2.16 mostra o cdigo de caracteres
deste display, relacionando cada caractere com seu respectivo nmero binrio, e a Figura 2.17
indica as ligaes entre o microcontrolador e o display LCD.

Figura 2.16 Cdigo de caracteres do display LCD alfanumrico.

28

Fonte: Adaptado [10].


Figura 2.17 Ligaes entre o microcontrolador e o display LCD.

2.5

Sensor de Temperatura

Figura 2.18 Sensor de temperatura LM35DZ.

Foram utilizados dois sensores de temperatura de preciso LM35DZ, manufaturados


pela empresa norte-americana National Semicondutor Corporation, para a aquisio das
temperaturas interna e externa do veculo ligados s portas analgicas AN0 e AN1 do
microcontrolador. Este sensor possui uma relao linear entre temperatura e tenso, isto , a
temperatura aumenta 1 C a cada 10 mV de tenso conforme ilustra o grfico da Figura 2.19.

29

Fonte: Folha de dados do sensor de temperatura.


Figura 2.19 Relao linear entre temperatura e tenso do sensor de temperatura.

Com base nesta caracterstica linear foi estabelecida a seguinte relao na rotina de
programao para adquirir a temperatura interna e externa do veculo:
(2.1)

(2.2)

Onde:

Temperatura Interna e Temperatura Externa so as variveis que recebem o valor da


temperatura a cada loop do programa;

Analog Read 0 e Analog Read 1 so as leitura analgicas do microcontrolador.

Para adquirir um valor mais exato, a taxa de aquisio das temperaturas foi de 100
aquisies por loop de programao. Deste modo os valores so mais confiveis, pois o valor
da mdia destas 100 aquisies praticamente no diverge do valor real para uma eventual
leitura incoerente e tambm evita que ocorram pequenas variaes de leitura.
O sensor de temperatura LM35DZ possui as seguintes caractersticas:

Calibrado em Celcius;

30

Fator linear de escala de + 10,0 mV/C;

Possui um mbito de medida de -55 C at + 150 C [5].


2.6

Programa Desenvolvido no Software MikroC

O compilador MikroC criado pela empresa srvia mikroElektronika para


microcontroladores da Microchip que utiliza a linguagem de alto nvel C possui biblioteca
de programao especfica para a comunicao com carto SD, rede CAN e display LCD
alfanumrico.
A programao desenvolvida para o microcontrolador pode ser representada pelo
fluxograma da Figura 2.20.

31

Fonte: Autor.
Figura 2.20 Fluxograma da rotina principal.

32

Aps a inicializao do programa foram declaradas as variveis utilizadas. Essas


variveis vo desde o tipo short (variveis que possuem um mbito numrico de -128 a +127)
at variveis

do tipo

float

(variveis

que possuem um

mbito

numrico de

1,17549435082.10-38 a 6,80564774407.1038). Ao contrrio das variveis do tipo short estas


variveis representam nmeros reais com certa preciso.
Posteriormente, necessrio configurar os registradores dos perifricos do
microcontrolador, tais como:

Oscilador interno;

Interrupo;

Timers;

Entradas analgicas/digitais;

Comparadores;

Portas de entrada/sada.

Todos os registradores destes perifricos esto devidamente detalhados na folha de


dados (datasheet) do microcontrolador.
Tambm necessrio configurar as unidades de comunicao que possuem bibliotecas
especficas no software MikroC:

Display LCD;

Rede CAN;

Carto SD.

O registrador correspondente ao oscilador interno o OSCCON. Para o


microcontrolador trabalhar em 8 MHz necessrio configurar os seguintes bits deste
registrador:

Bit 6-4 (IRCF2:IRCF0) = 111;

Bit 1-0 (SCS1:SCS0) = 00.

Os bits de 1 a 0 habilitam o oscilador interno do microcontrolador e os bits de 6 a 4


ajustam o clock em 8 MHz.
Alm disso, necessrio desabilitar o multiplicador de frequncia de clock, que se
encontra no registrador OSCTUNE:

33

Bit 6 (PLLEN) = 0.

Aps isto, o microcontrolador est devidamente configurado com um clock de 8 MHz.


Utilizando esta frequncia de processamento, o PIC18F4580 apresentou um excelente
desempenho, realizando todas as rotinas de programao sem nenhuma dificuldade.

Fonte: Folha de dados do microcontrolador.


Figura 2.21 Diagrama de clock.

Uma interrupo caracteriza-se por suspender a sequncia da rotina principal (main


function), independentemente de qual linha de comando esta se encontra, e realizar os
comandos referentes interrupo. Depois de realizados estes comandos o programa volta de
onde havia parado na rotina principal.
O funcionamento do relgio consiste na interrupo do programa quando ocorre
overflow do timer 0. Para tanto, os bits do registrador de interrupo INTCON foram
configurados da seguinte maneira:

Bit 7 (GIE/GIEH) = 1;

Bit 5 (TMR0IE) = 1;

Bit 2 (TMR0IF) = 0.

34

O bit 7 habilita todas as interrupes, o bit 5 habilita interrupo por overflow e o bit 2
limpa a flag de interrupo por overflow do timer 0.
Os bits do registrador T0CON configuram o timer 0:

Bit 7 (TMR0ON) = 1;

Bit 6 (T08BIT) = 0;

Bit 5 (T0CS) = 0;

Bit 4 (T0SE) = 0;

Bit 3 (PSA) = 0;

Bit 2-0 (T0PS2:T0PS0) = 100.

O bit 7 habilita o timer 0, o bit 6 configura o timer como um contador de 16 bits, o bit
5 configura transio por clock interno, o bit 4 incrementa o contador do timer em borda de
subida de nvel lgico, o bit 4 atribui o prescaler, e os bits de 2 a 0 configuram o valor do
prescale em 1:32.

Fonte: Folha de dados do microcontrolador.


Figura 2.22 Diagrama de blocos do timer 0 (modo 16 bits).

O timer 0 responsvel por estabelecer o segundo em uma interrupo, ou seja, o


programa interrompido a cada segundo (quando ocorre o overflow do timer 0) em qualquer
comando em que se encontre dentro do loop infinito e incrementa a varivel do tipo short
segundo. Em seguida o programa volta ao ponto em que tinha ocorrido a interrupo dentro
do loop infinito. Quando o programa entra na rotina da interrupo as variveis segundo,

35

minuto e hora passam pelas condies que definem o horrio, atualizando-o. A Figura
2.24 ilustra o fluxograma desta rotina. O horrio pode ser ajustado utilizando dois botes: um
que incrementa o minuto (porta RA4) e outro que incrementa a hora (porta RA3).
Entretanto necessrio definir o valor inicial do timer 0 para que a interrupo ocorra
precisamente em 1 segundo. Para tal, utiliza-se a seguinte frmula:

(2.3)

Onde:

T = 1 s;

TMR0 o valor inicial do timer 0;

(Frequncia de oscilao) = 8 MHz;


Prescale = 1:32.

Portanto,

(2.4)

(2.5)

O valor 65535 na base decimal corresponde ao nmero FFFF na base hexadecimal e


ao nmero 111111111111111 na base binria. Este nmero possui 16 bits e o valor mximo
possvel do timer 0 (configurado em 16 bits).
Os registradores TMR0L e TMR0H configuram o valor do timer 0. necessrio
atribuir os seguintes nmeros para estes registradores para obter um valor inicial de 3035:

TMR0L = 0xDB;

TMR0H = 0x0B.

Desta forma o timer 0 ter incio com o valor 3035 (em base decimal) e quando for

36

maior que o seu valor limite (65535 em base decimal) ocorre o overflow que ir interromper o
programa e incrementar a varivel segundo. Na sequncia, o timer 0 receber novamente o
valor 3035 para a prxima interrupo e assim por diante.

37

Fonte: Autor.
Figura 2.23 Fluxograma da interrupo por overflow do timer 0.

38

A velocidade adquirida atravs de uma sequncia de pulsos de 12 V de pico que


gerada pelo encoder do motor. Este sinal ligado ao fotoacoplador 4N33TFK que limita esta
tenso em 5 V atravs de um isolamento ptico para que seja possvel ligar este trem de
pulsos porta de interrupo externa do microcontrolador (RB0/INT0).
O registrador INTCON configura a interrupo externa INT0:

Bit 4 (INT0IE) = 1;

Bit 1 (INT0IF) = 0.

O bit 4 habilita a interrupo externa INT0, e o bit 1 a flag de interrupo externa.


Esta flag indica que ocorreu a interrupo INT0 e deve ser zerada no software.
A Figura 2.25 apresenta um diagrama de blocos com a lgica de todas as interrupes.

Fonte: Folha de dados do microcontrolador.


Figura 2.24 Diagrama de blocos das interrupes.

39

O clculo da velocidade est relacionado com a frequncia dos pulsos gerados pelo
encoder. Em outras palavras, a frequncia dos pulsos diretamente proporcional velocidade
do motor. Cada vez que ocorre uma interrupo externa a varivel do tipo inteira pulsos
incrementada.
Atravs da interrupo por overflow do timer 1, o programa interrompido a cada 0,25
segundos e verifica quantos pulsos ocorreram neste intervalo de tempo.
Os bits do registrador T1CON configuram o timer 1:

Bit 7 (RD16) = 1;

Bit 6 (T1RUN) = 1;

Bit 5-4 (T1CKPS1:T1CKPS0) = 11;

Bit 3 (T1OSCEN) = 1;

Bit 1 (TMR1CS) = 0;

Bit 0 (TMR1ON) = 1.

O bit 7 habilita o funcionamento do timer 1 em modo de operao de 16 bits, o bit 6


configura o clock derivado do oscilador do timer 1, os bits de 5 a 4 atribuem um prescale de
1:8, o bit 3 habilita o oscilador do timer 1, o bit 1 configura o clock interno do
microcontrolador como fonte de clock do timer, e o bit 0 habilita o timer 1.

40

Fonte: Folha de dados do microcontrolador.


Figura 2.25 Diagrama de blocos do timer 1 (modo 16 bits).

Para que a interrupo ocorra precisamente em 0,25 segundos, necessrio utilizar a


seguinte frmula para determinar o valor inicial do timer 1:

(2.6)

Onde:

T = 0,25 s;

TMR1 o valor inicial do timer 1;

(frequncia de oscilao) = 8 MHz;


Prescale = 1:8.

Portanto,

(2.7)

41

(2.8)

Consequentemente os registradores abaixo recebem os seguintes valores:

TMR1L = 0xDB;

TMR1H = 0x0B.

Fonte: Autor.
Figura 2.26 Grfico da quantidade de pulsos do sinal em 0,25 segundos.

Por conseguinte, a cada 0,25 segundos o programa verifica a quantidade de pulsos


neste perodo e calcula a frequncia do sinal:

(2.9)

(2.10)

42

Onde:

Period Out o perodo do sinal enviado pelo encoder;

Pulsos a varivel do tipo inteira que incrementada a cada interrupo externa;

Frequency Out a frequncia obtida atravs do inverso do perodo do sinal calculado.

A Figura 2.27 ilustra um exemplo onde o programa verifica 4 interrupes (uma


interrupo a cada pulso) na porta de interrupo externa INT0 durante um perodo de 0,25
segundos, e os fluxograma da Figura 2.28 representam as rotinas de programao da
interrupo externa e da interrupo por overflow do timer 1 respectivamente.

43

Fonte: Autor.
Figura 2.27 Fluxograma da interrupo externa e da interrupo por overflow do timer 1.

44

A frmula abaixo relaciona a velocidade do veculo frequncia do sinal gerado pelo


encoder:

(2.11)

(2.12)

Onde:

Frequency Out a frequncia do sinal do encoder do motor;

Motor Velocity a rotao do motor;

Vehicle Velocity a velocidade do veculo eltrico;

Wheel Circumference = 1845 mm;

Motor Reduction = 8,654;

P37 = 360.

A constante P37 o valor da sada do divisor do tacmetro do inversor [6].


Substituindo a equao 2.11 na equao 2.12 e rearranjando os termos, temos uma
constante que multiplica a frequncia para obter a velocidade do veculo em km/h:

(2.13)

E uma constante que multiplica a frequncia do sinal para obter a rotao do motor em
rpm:

(2.14)

O sinal enviado pelo encoder varia de 3 a 3200 Hz. A frequncia do sinal com o motor
parado de 3 Hz, consequentemente, para esta frequncia a velocidade considerada nula.

45

A Figura 2.29 ilustra uma imagem do sinal enviado pelo encoder (sinal A) e o mesmo
sinal condicionado com o fotoacoplador (sinal B). Ambos os sinais foram obtidos com o
osciloscpio digital. O sinal A uma sequncia de pulsos de 5 V, enquanto o sinal B uma
sequncia de pulsos de 12 V. Note que, o sinal A est numa escala de 5 V por diviso,
enquanto o sinal B est em uma escala de 10 V por diviso. Contudo, ambos os sinais esto
em fase com um perodo de 100 ms por diviso. possvel verificar que a frequncia dos
sinais de 3 Hz, logo conclui-se que o veculo estava esttico no momento da leitura.
Pode-se observar que os sinais possuem certo rudo, porm o rudo do sinal do
encoder foi significativamente reduzido aps o seu condicionamento.

Fonte: Autor.
Figura 2.28 Sinais do encoder.

Com posse da velocidade do veculo, atravs das definies da integral e derivada, foi
possvel obter o deslocamento percorrido durante uma trajetria e a acelerao instantnea do
veculo.
Das definies de acelerao e deslocamento temos:

46

(2.15)

(2.16)

Como a velocidade foi amostrada dentro da rotina de programao com um perodo T


igual a 1 segundo (ou 1/3600 horas), pode-se definir a derivada e a integral atravs de
equaes diferena. O prprio microcontrolador foi utilizado como amostrador, adequando o
perodo de amostragem na rotina de programao.
A reta tangente ao ponto de uma curva qualquer, vista na Figura 2.30, pode ser
descrita da seguinte forma:

(2.17)

(2.18)

Simplificando a notao, ou seja, omitindo o perodo de amostragem T,

(2.19)

47

Fonte: Autor.
Figura 2.29 Grfico da derivada da velocidade em relao ao tempo.

A derivada da velocidade em relao ao tempo em cada ponto amostrado representa a


acelerao instantnea. Repare que, para uma curva crescente, haver uma acelerao
positiva, enquanto que para uma curva decrescente, haver uma acelerao negativa, isto ,
uma desacelerao.
A integral da velocidade em relao ao tempo o somatrio da rea de todos os
trapzios da curva da funo, conforme ilustra a Figura 2.31. A integral trapezoidal possui um
erro menor que a integral retangular, portanto optou-se pela trapezoidal.

48

Fonte: Autor.
Figura 2.30 Grfico da integral da velocidade em relao ao tempo.

Temos que, a soma da rea do retngulo (A1) com a rea do tringulo (A2) igual
rea do trapzio (AT), ou seja,

(2.20)

Portanto,

(2.21)

49

Simplificando,

(2.22)

Esta equao representa o deslocamento a partir da integrao da velocidade


amostrada em relao ao tempo. Perceba que deve-se obter o mdulo da variao da
velocidade, caso contrrio, o deslocamento apresentar um valor incorreto, pois para uma
curva decrescente o valor desta variao negativo.
Tanto a equao diferena da acelerao instantnea quanto a equao diferena do
deslocamento foram adaptadas rotina de programao utilizando a equao 2.19, que
representa a derivada da velocidade em relao ao tempo e a equao 2.22, (fazendo uso de
variveis acumulativas dentro de um loop) que representa a integral da velocidade em relao
ao tempo, apresentando a variao instantnea de ambas as grandezas no display LCD.
Para configurar as entradas analgicas/digitais necessrio configurar o registrador
ADCON0:

Bit 0 (ADON) = 1.

Esse bit habilita a converso A/D (analgica/digital).


A atribuio das portas analgicas/digitais feita no registrador ADCON1:

Bit 5 (VCFG1) = 0;

Bit 4 (VCFG0) = 0;

Bit 3-0 (PCFG3:PCFG0) = 1101.

O bit 5 a referncia negativa e o bit 4 a referncia positiva dos canais analgicos.


Ambos so configurados com referncia positiva e negativa da alimentao do
microcontrolador.
Os bits 3 at 0 definem quais portas sero analgicas ou digitais. A configurao
atribuda (1101) corresponde a duas portas analgicas e nove digitais conforme a Tabela 2.4:

50

TABELA 2.4 Configurao dos bits PCFG3:PCFG0.

PCFG3:PCFG0 AN10 AN9 AN8 AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0
0001
A
A
A
A
A
A
A
A
A
A
A
0010
A
A
A
A
A
A
A
A
A
A
A
0011
A
A
A
A
A
A
A
A
A
A
A
0100
A
A
A
A
A
A
A
A
A
A
A
0101
D
A
A
A
A
A
A
A
A
A
A
0110
D
D
A
A
A
A
A
A
A
A
A
0111
D
D
D
A
A
A
A
A
A
A
A
1000
D
D
D
D
A
A
A
A
A
A
A
1001
D
D
D
D
D
A
A
A
A
A
A
1010
D
D
D
D
D
D
A
A
A
A
A
1011
D
D
D
D
D
D
D
A
A
A
A
1100
D
D
D
D
D
D
D
D
A
A
A
1101
D
D
D
D
D
D
D
D
D
A
A
1110
D
D
D
D
D
D
D
D
D
D
A
1111
D
D
D
D
D
D
D
D
D
D
D
Fonte: Folha de dados do microcontrolador.

Como no foram utilizados comparadores, os mesmos foram desligados. Para tanto


necessrio configurar o registrador CMCON:

Bit 2-0 (CM2:CM0) = 111.

Estes bits desabilitam todos os comparadores.


Logo aps, deve-se configurar as portas de entra e sada. Os registradores TRISA,
TRISB, TRISC, TRISD, e TRISE so responsveis por definir se a porta ir receber ou enviar
dados. O bit igual a 0 corresponde a uma porta de sada de dados, enquanto que um bit igual a
1 corresponde a uma porta de entrada de dados:

TRISA:
o Bit 7-0 = 11111111;

TRISB:
o Bit 7-4 = 0000;
o Bit 1 = 1;
o Bit 0 = 0;

TRISC:
o Bit 3-2 = 00;
o Bit 4 = 1;

51

o Bit 5 = 0;

TRISD:
o Bit 7-0 = 11111111.

No projeto no foram utilizadas nenhumas das portas RE, portanto no foi necessrio
configur-las.
Com as portas de entrada e sada determinadas, pode-se configurar as portas do
microcontrolador que sero ligadas aos referentes pinos do display LCD:

PORTD:
o Bit 0: RS;
o Bit 1: EN;
o Bit 2: WR;
o Bit 4: D4;
o Bit 5: D5;
o Bit 6: D6;
o Bit 7: D7.

A configurao do controlador CAN do microcontrolador foi realizada atravs da


biblioteca CAN do MikroC, definindo as flags:

CAN_CONFIG_SAMPLE_THRICE;

CAN_CONFIG_PHSEG2_PRG_ON;

CAN_CONFIG_XTD_MSG;

CAN_CONFIG_DBL_BUFFER_ON;

CAN_CONFIG_LINE_FILTER_OFF.

O modo de operao da rede CAN foi configurado em CAN mode listen. Neste modo
de operao somente possvel receber dados do barramento.
O baud rate pode ser definido como a quantidade de bits que so transmitidos por
unidade de tempo, isto , a taxa de transmisso de dados entre as ECUs [1].
Para existir comunicao entre o microcontrolador e o BMI necessrio que ambos
estejam com a mesma taxa de transmisso de dados. Como o baud rate do BMI de 125 kbps
e cumpre com a especificao CAN 2.0B, o controlador foi configurado com o mesmo baud

52

rate atravs dos bits a seguir do mdulo ECAN do PIC:

SJW = 1;

BRP = 4;

PHSEG1 = 3;

PHSEG2 = 3;

PROPSEG = 1.

Com estes bits foi possvel estabelecer o baud rate em 125 kbps utilizando as
seguintes frmulas:

(2.23)

(2.24)

(2.25)

Assim,

(2.26)

(2.27)

(2.28)

Onde:

TQ o time quanta ou mnimo perodo de tempo;


(frequncia de oscilao) = 8 MHz;

53

Nominal Bit Time o tempo nominal de bit;

Baud Rate a taxa de transmisso de dados.

O carto SD inicializado na sequncia, e o programa verifica se o carto encontra-se


inserido no conector. Caso o carto seja encontrado, este carregado com sucesso, caso
contrrio, no carregado e o programa prossegue normalmente.
Aps isto, o programa entra em um loop infinito, para que a rotina do fluxograma da
Figura 2.20 esteja sempre se repetindo.
Em seguida o programa entra em uma condio, que verifica se o usurio optou por
salvar os dados do veculo caso o usurio tenha pressionado o boto salvar dados (porta
RA2), os dados sero salvos at que o boto seja pressionado novamente.
Se a condio for verdadeira, todos os dados adquiridos so salvos no carto SD, caso
a condio seja falsa nenhum dado salvo. Porm os dados so salvos apenas uma vez a cada
segundo, independentemente de quantas vezes o programa repetir o loop infinito neste
perodo, at o usurio optar por interromper o armazenamento dos dados pressionando
novamente o boto salvar dados.
A cada segundo os seguintes parmetros so salvos no carto:

Segundo;

Minuto;

Hora;

Velocidade [km/h];

Corrente [A];

Tenso [V];

Potncia [W];

SOC [%];

Temperatura da bateria [C];

Temperatura interna [C];

Temperatura externa [C].

Os dados de velocidade, temperatura interna e temperatura externa do veculo so


obtidos na sequncia. Cada vez que o programa repete o loop infinito so feitas 100
aquisies de velocidade, temperatura interna e temperatura externa e logo aps feita a

54

mdia desses valores.


Posteriormente o programa entra em outra condio, que verifica se o
microcontrolador est comunicando com a rede CAN e se recebeu uma mensagem enviada
pelo BMI da bateria atravs do barramento CAN com o identificador (ID) desejado. Neste
identificador encontram-se os seguintes parmetros da bateria ZEBRA:

Corrente;

Tenso;

SOC;

Temperatura.

Caso ambas as condies sejam satisfeitas, os quatro parmetros sero adquiridos e


um LED verde ir piscar indicando que houve comunicao e que os dados referentes ao ID
desejado esto sendo recebidos. Caso contrrio, o LED permanecer desligado.
Finalmente, todos os dados que foram adquiridos so apresentados no display LCD.
Desta forma, os parmetros so constantemente atualizados, pois o tempo de durao de um
loop na ordem de milisegundos.
Sequencialmente, o programa volta ao incio do loop infinito, salva os novos dados
atualizados no carto SD e repete novamente todos os passos descritos anteriormente.
2.7

Programa Desenvolvido no Software MATLAB

O software MATLAB desenvolvido pela empresa norte-americana The MathWorks


Inc. utiliza uma linguagem de alto nvel que permite um alto desempenho em clculo
numrico. Com este software foi desenvolvido um programa com uma interface grfica
utilizando o editor especial GUIDE.
O objetivo do programa criar uma interface amigvel, simples e de fcil
comunicao com o usurio. O programa importa o arquivo de dados (data.txt), armazenado
no carto SD, atravs do boto abrir arquivo, e apresenta a variao do(s) parmetro(s)
selecionado(s) em relao ao tempo (em horas) durante a trajetria.
possvel visualizar os seguintes parmetros:

Velocidade [km/h];

Corrente [A];

55

Tenso [V];

Potncia [W];

SOC [%];

Temperatura da bateria [C];

Temperatura interna [C];

Temperatura externa [C];

Deslocamento [km];

Energia Regenerada [J];

Energia Consumida [J].


Para visualizar os parmetros, basta selecion-los e pressionar o boto plotar ou

plotar 2. Alm disso, o programa possui uma barra de ferramentas onde possvel executar
algumas aes no grfico.
O comando plotar apresenta todos os parmetros com um autoscale no parmetro de
maior valor. Conseguintemente, os parmetros de menor valor ficaro em uma escala maior
que seus valores. Todavia, o comando plotar 2 apresenta apenas dois parmetros, cada um
deles em uma ordenada do grfico (ordenada esquerda e ordenada direita), porm ambos com
autoscale.
Alm dos comandos de plotagem, existe tambm o comando limpar, onde o grfico
fica em branco e todos os parmetros so des-selecionados, e o comando grade (ou grid),
onde inserido no grfico linhas de grade para melhor visualizao dos valores.
A energia consumida e a energia regenerada so obtidas integrando a potncia em
relao ao tempo, aplicando as definies da integral amostrada e utilizando a funo de
integrao numrica trapezoidal do MATLAB.
O deslocamento tambm obtido atravs da funo de integrao numrica
trapezoidal, integrando a velocidade em relao ao tempo. No Apndice A encontra-se a
programao desenvolvida no MATLAB.
A energia consumida toda a energia necessria para deslocar o veculo de um ponto
at outro, ao passo que a energia regenerada toda energia que atravs do recupero do
veculo eltrico restituda bateria ZEBRA.
Na sequncia, os grficos ilustram as variaes dos parmetros do VE em um trajeto
de Foz do Iguau a Itaipulndia. Este trajeto teve uma durao prxima de 1 hora e 15

56

minutos, onde os dados foram adquiridos 4481 vezes. Observe que os grficos da Figura 2.33
e da Figura 2.36 apresentam valores negativos. Estes valores indicam a energia restituda
bateria atravs do recupero do VE.
A Figura 2.34 compara o grfico da velocidade do veculo com o grfico da corrente
da bateria. possvel notar em alguns pontos do trajeto, onde ocorre desacelerao e a
velocidade diminui, que a corrente regenerada bateria.
Como o trajeto do veculo eltrico foi em uma rodovia, note que sua velocidade
manteve-se em valores entre 60 e 90 km/h durante quase todo o andamento da viagem
conforme o grfico da velocidade da Figura 2.32.
O grfico de SOC da Figura 2.37 indica um estado de carga inicial de
aproximadamente 100 % e um estado de carga final de 39 % ao longo da trajetria. Este
grfico possui pequenos pontos de ascendncia que representam os instantes onde a energia
retornou bateria.
A temperatura da bateria atingiu um valor mximo de aproximadamente 270 C
durante todo o percurso e um valor final de aproximadamente 259 C de acordo com a Figura
2.38.
Neste trajeto o programa aponta um deslocamento de 72,93 km, uma energia
consumida de 34674254,73 J e uma energia regenerada bateria de 1980139,10 J.
Atravs destes valores alguns aspectos referentes ao veculo eltrico podem ser
determinados, como sua autonomia, onde foi calculado um valor de 118 km com uma carga
completa de bateria (100 % de SOC).

57

Fonte: Autor.
Figura 2.31 Grfico da velocidade em relao ao tempo.

Fonte: Autor.
Figura 2.32 Grfico da corrente em relao ao tempo.

58

Fonte: Autor.
Figura 2.33 Grfico de comparao entre velocidade e corrente.

Fonte: Autor.
Figura 2.34 Grfico da tenso em relao ao tempo.

59

Fonte: Autor.
Figura 2.35 Grfico da potncia em relao ao tempo.

Fonte: Autor.
Figura 2.36 Grfico de SOC em relao ao tempo.

60

Fonte: Autor.
Figura 2.37 Grfico da temperatura em relao ao tempo.

61

3 VERSO FINAL DO PROTTIPO

A Figura 3.1 apresenta a tela 1 do prottipo final do trabalho. Nesta tela observam-se
os seguintes parmetros:

Linha 1 coluna 1: estado de carga da bateria ZEBRA (SOC);


Linha 2 coluna 1: temperatura da bateria ZEBRA;
Linha 3 coluna 1: temperatura interna do veculo;
Linha 4 coluna 1: temperatura externa do veculo;
Linha 1 coluna 2: velocidade do veculo;
Linha 2 coluna 2: corrente da bateria ZEBRA;
Linha 3 coluna 2: tenso da bateria ZEBRA;
Linha 4 coluna 2: potncia da bateria ZEBRA.

Fonte: Autor.
Figura 3.1 Prottipo final, primeira tela.

Enquanto a Figura 3.2 apresenta a tela 2 do prottipo final do trabalho. Podem ser

62

observados os seguintes parmetros nesta tela:

Linha 1: horrio;
Linha 2: deslocamento do veculo;
Linha 3: acelerao do veculo;
Linha 4: rotao do motor.

Fonte: Autor.
Figura 3.2 Prottipo final, segunda tela.

O prottipo final possui 6 botes, sendo eles:

Muda tela: este boto muda de uma tela outra;


Salvar dados: pressionando uma vez este boto os dados sero salvos continuamente
at que o usurio pressione novamente interrompendo o armazenamento. O LED
vermelho aceso indica que os dados esto sendo salvos.
Hora: incrementa a hora;
Minuto: incrementa o minuto;
On/off: liga/desliga o prottipo;
Reset: reinicia o programa.

63

Possui tambm um conector para carto SD e dois LEDs indicadores:


LED verde: indica que existe comunicao com a bateria ZEBRA atravs da rede
CAN;
LED vermelho: indica que os dados esto sendo armazenados no carto SD.

64

4 PLANILHA DE CUSTO
TABELA 4.1 Planilha de custo prevista na montagem do projeto.

VALOR
VALOR
QUANTIDADE
ITEM
INDIVIDUAL ACUMULADO
(R$)
(R$)
1
Microcontrolador PIC18F4580
26,53
26,53
1
Transceiver MCP2551
3,99
3,99
1
Fotoacoplador 4N33TFK
0,94
0,94
1
Regulador de tenso LM7805
0,99
0,99
1
Regulador de tenso MC33269DT-3.3
1,88
1,88
2
Sensor de temperatura LM35DZ
3,99
7,98
1
Display LCD alfanumrico 20x04
39,99
39,99
1
Conector DB9 fmea
0,59
0,59
1
Carto de memria SD 1 GB
15,00
15,00
1
Conector para carto SD 9 vias
7,73
7,73
2
LED
0,15
0,30
6
Chave tctil 4 terminais
0,15
0,90
1
Resistor 10 , 5 %, 1/4 W
0,10
0,10
1
Resistor 100 , 5 %, 1/4 W
0,10
0,10
1
Resistor 120 , 5 %, 1/4 W
0,10
0,10
8
Resistor 1 k, 5 %, 1/4 W
0,10
0,80
3
Resistor 2,2 k, 5 %, 1/4 W
0,10
0,30
3
Resistor 3,3 k, 5 %, 1/4 W
0,10
0,30
1
Resistor 10 k, 5 %, 1/4 W
0,10
0,10
1
Resistor 100 k, 5 %, 1/4 W
0,10
0,10
2
Capacitor cermico 100 nF x 16 V
0,09
0,18
1
Capacitor eletroltico 0,47 F x 50 V
0,12
0,12
1
Capacitor eletroltico 10 F x 10 V
0,15
0,15
Placa de circuito impresso de fenolite
1
2,79
2,79
virgem 10x10 cm
1
8,80
8,80
Percloreto de ferro em p 250 g
VALOR TOTAL (R$)
120,76
Fonte: Autor.

A Tabela 4.1 relaciona os componentes utilizados no desenvolvimento do projeto com


seus respectivos custos, apresentando somente o custo de montagem do prottipo.

65

5 RESULTADOS
Inicialmente, utilizando um clock de 2 MHz, o microcontrolador apresentou uma
velocidade de processamento muito baixa e as rotinas de programao no foram realizadas
de forma satisfatria pelo PIC18F4580. No entanto, utilizando um clock de 8 MHz, o
microcontrolador realizou todas as rotinas de programao sem dificuldades e com alta
velocidade de processamento. As variaes dos dados adquiridos foram apresentadas
instantaneamente no display LCD e salvas no carto SD com sucesso.
Em posse da velocidade foi possvel determinar a acelerao e o deslocamento do
veculo utilizando conceitos de clculo e fsica atravs das definies de integral e derivada.
Portanto, o conhecimento terico adquirido ao longo da formao acadmica foi aplicado na
prtica do trabalho desenvolvido.
O programa elaborado no MATLAB mostrou-se muito til para a visualizao das
variaes dos parmetros devido alta taxa de aquisio do circuito (1 segundo), sendo
possvel analisar, atravs dos grficos, o comportamento do veculo durante o trajeto de Foz
do Iguau a Itaipulndia, onde se observou uma autonomia do veculo de 118 km por carga
completa de bateria e uma porcentagem de 5,71 % da energia consumida restituda bateria
do VE ao longo do percurso.

66

6 CONCLUSES
O sistema de aquisio de dados desenvolvido demonstra-se extremamente vivel e
adequado ao Projeto VE, pois ao contrrio do sistema importado, apresenta a variao do
deslocamento, acelerao e potncia do veculo eltrico no display LCD e armazena os
parmetros mais importantes do veculo em uma memria mvel podendo posteriormente
fazer uma anlise atravs do programa desenvolvido no MATLAB, que oferece o recurso de
visualizao grfica da variao desses parmetros em uma trajetria, para a avaliao do
rendimento, autonomia e desempenho do veculo eltrico.
Tendo em vista que os equipamentos e softwares de aquisio de dados da bateria so
importados da mesma empresa que manufatura a bateria eltrica ZEBRA, nota-se atravs da
planilha de custos da Tabela 4.1 que o projeto relativamente parcimonioso e acima de tudo,
um produto nacional, contribuindo com algumas das metas de Itaipu, tais como nacionalizar
os componentes do VE e reduzir seus custos.
Os softwares MikroC e MATLAB mostraram-se ferramentas teis e eficientes,
atendendo todas as necessidades para o desenvolvimento do projeto.
Grande parte dos perifricos existentes no microcontrolador foi utilizada, como
oscilador interno, timers, interrupes, entradas analgicas e o mdulo ECAN, aproveitando
ao mximo sua aplicabilidade.
A interdisciplinaridade do trabalho fica evidente por envolver conhecimento de
disciplinas como eletrnica, microcontroladores, programao, clculo, fsica, entre outras,
alm da experincia com os softwares e equipamentos utilizados na execuo do projeto.
Desta forma, aplicou-se o conhecimento adquirido ao longo da graduao e novos
conhecimentos foram obtidos para o desenvolvimento do projeto durante o estgio.
As relaes interpessoais dentro da empresa, a necessidade de cumprimento de prazos
e o desenvolvimento do trabalho foram de fundamental importncia na preparao para o
mercado profissional.
O projeto pode ser perfeitamente adaptado a diferentes necessidades ou at mesmo ser
aperfeioado utilizando microcontroladores mais avanados (como os DSPICs) que permitem
adquirir mais dados do veculo eltrico utilizando sensores para obter corrente, tenso,
temperatura e SOC, sem a necessidade de adquiri-los via rede CAN do BMI, que j possui
sensores inerentes bateria. Desta forma, o projeto poderia ser utilizado em qualquer veculo
eltrico com qualquer bateria.

67

Como alguns DSPICs possuem 2 controladores CAN internos, os parmetros


adquiridos poderiam ser enviados atravs de 2 barramentos CAN distintos para diversos
componentes do veculo, conforme a necessidade, onde o microcontrolador poderia funcionar
como um gateway entre estes barramentos assim como em um veculo convencional que
utiliza comunicao CAN separando os dados de alta prioridade (como comunicao dos
componentes de powertrain do veculo) com um alto baud rate, dos dados de baixa prioridade
(como vidros eltricos, travas, equipamentos de entretenimento, etc.) com um menor baud
rate.

68

REFERNCIAS
[1] SANTOS, Max Mauro Dias. Redes de comunicao automotiva: caractersticas,
tecnologias e aplicaes. 1. ed. So Paulo: rica, 2010.
[2] ITAIPU BINACIONAL. Projeto veculo eltrico. Disponvel em:
<http://www2.itaipu.gov.br/ve/>. Acesso em: 20 setembro 2011.
[3] MICROCHIP TECHNOLOGY INC. PIC18F4580 datasheet: folha de dados do
PIC18F4580 (publicao DS39637C), 2007.
[4] MICROCHIP TECHNOLOGY INC. MCP2551 datasheet: folha de dados do MCP2551
(publicao DS21667D), 2003.
[5] NATIONAL SEMICONDUCTOR. LM35 precision centigrade temperature sensors
datasheet: folha de dados do LM35 (publicao DS005516), 2000.
[6] MES-DEA S.A. Traction inverter module TIM300 TIM400 TIM600: installation and use
handbook. Version 6.2, 2007.
[7] MES-DEA S.A. Battery management interface manual: multiple battery server user
interface (standard identifier 11 bit) and user interface (extended identifier 29 bit). Version
4.03, 2009.
[8] MES-DEA S.A. ZEBRA battery handbook for vehicle applications, 2006.
[9] BOSCH, Robert. CAN Specification. Version 2.0. Stuttgart, 1991.
[10] MIKROC. V.8.2.0.0 manual guide. mikroElektronika, Srvia, Copyright 2002-2008.
[11] MATLAB. R2010a manual guide. The MathWorks Inc., USA, Copyright 1984-2010.

69

APNDICE A Cdigo Fonte MATLAB


function varargout = VEsoftware(varargin)
% VESOFTWARE M-file for VEsoftware.fig
%
VESOFTWARE, by itself, creates a new VESOFTWARE or raises the
existing
%
singleton*.
%
%
H = VESOFTWARE returns the handle to a new VESOFTWARE or the handle
to
%
the existing singleton*.
%
%
VESOFTWARE('CALLBACK',hObject,eventData,handles,...) calls the local
%
function named CALLBACK in VESOFTWARE.M with the given input
arguments.
%
%
VESOFTWARE('Property','Value',...) creates a new VESOFTWARE or
raises the
%
existing singleton*. Starting from the left, property value pairs
are
%
applied to the GUI before VEsoftware_OpeningFcn gets called. An
%
unrecognized property name or invalid value makes property
application
%
stop. All inputs are passed to VEsoftware_OpeningFcn via varargin.
%
%
*See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
%
instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help VEsoftware
% Last Modified by GUIDE v2.5 16-Sep-2011 23:21:39
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @VEsoftware_OpeningFcn, ...
'gui_OutputFcn', @VEsoftware_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback',
[]);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before VEsoftware is made visible.


function VEsoftware_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.

70

% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% varargin
command line arguments to VEsoftware (see VARARGIN)
% Choose default command line output for VEsoftware
handles.output = hObject;
set(hObject,'toolbar','figure');
handles.velocidade=0;
handles.corrente=0;
handles.tensao=0;
handles.potencia=0;
handles.soc=0;
handles.tempbateria=0;
handles.tempinterna=0;
handles.tempexterna=0;
handles.toogle=1;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes VEsoftware wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = VEsoftware_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject
handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in checkbox1.
function checkbox1_Callback(hObject, eventdata, handles)
% hObject
handle to checkbox1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkbox1
if (get(hObject, 'Value'))
handles.velocidade=1;
else
handles.velocidade=0;
end

71

guidata(hObject, handles);%atualiza
% --- Executes on button press in checkbox2.
function checkbox2_Callback(hObject, eventdata, handles)
% hObject
handle to checkbox2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkbox2
if (get(hObject, 'Value'))
handles.corrente=1;
else
handles.corrente=0;
end
guidata(hObject, handles);
% --- Executes on button press in checkbox3.
function checkbox3_Callback(hObject, eventdata, handles)
% hObject
handle to checkbox3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkbox3
if (get(hObject, 'Value'))
handles.tensao=1;
else
handles.tensao=0;
end
guidata(hObject, handles);
% --- Executes on button press in checkbox4.
function checkbox4_Callback(hObject, eventdata, handles)
% hObject
handle to checkbox4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkbox4
if (get(hObject, 'Value'))
handles.potencia=1;
else
handles.potencia=0;
end
guidata(hObject, handles);
% --- Executes on button press in checkbox5.
function checkbox5_Callback(hObject, eventdata, handles)
% hObject
handle to checkbox5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkbox5
if (get(hObject, 'Value'))
handles.soc=1;
else
handles.soc=0;
end
guidata(hObject, handles);
% --- Executes on button press in checkbox6.
function checkbox6_Callback(hObject, eventdata, handles)
% hObject
handle to checkbox6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB

72

% handles
structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkbox6
if (get(hObject, 'Value'))
handles.tempbateria=1;
else
handles.tempbateria=0;
end
guidata(hObject, handles);
% --- Executes on button press in checkbox7.
function checkbox7_Callback(hObject, eventdata, handles)
% hObject
handle to checkbox7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkbox7
if (get(hObject, 'Value'))
handles.tempinterna=1;
else
handles.tempinterna=0;
end
guidata(hObject, handles);
% --- Executes on button press in checkbox8.
function checkbox8_Callback(hObject, eventdata, handles)
% hObject
handle to checkbox8 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkbox8
if (get(hObject, 'Value'))
handles.tempexterna=1;
else
handles.tempexterna=0;
end
guidata(hObject, handles);
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles) %ABRIR ARQUIVO
% hObject
handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
[FileName, PathName, filterindex] = uigetfile( ... %pega o arquivo e a
pasta
{ '*.*', 'Arquivos de texto(*.txt)'}, ...
'Abra o arquivo de dados .txt', ...
'MultiSelect', 'on');
local=[PathName FileName];
%varivel "local" recebe o nome do arquivo
e a pasta do dado
handles.data=dlmread(local,','), %l dados do arquivo txt e armazena na
matriz handles.data
data_size=size(handles.data);
%recebe a dimenso da matriz dos dados
(handles.data)
data_rows=data_size(1,1);
%l o nmero de linhas da matriz de dados
data_field=data_size(1,2);
%l o nmero de colunas da matriz de dados
for l=1:data_rows
%transforma o horrio das aquisies em
uma nica varivel de tempo e armazena no vetor handles.h

73

handles.h(l,1)=handles.data(l,3)+(handles.data(l,2)/60)+(handles.data(l,1)/
3600); %tempo em horas
handles.s(l,1)=l;
%tempo em segundos
energia_gerada(l,1)=handles.data(l,7);
energia_consumida(l,1)=handles.data(l,7);
if handles.data(l,7)>0 %pega parte negativa da potncia
energia_gerada(l,1)=0;
end
if handles.data(l,7)<0 %pega parte positiva da potncia
energia_consumida(l,1)=0;
end
end
format bank;
set(handles.text2,'String',num2str((1)*trapz(handles.s(:,1),energia_gerada(:,1)))); %integra a parte negativa
da potncia para obter a energia gerada
format bank;
set(handles.text4,'String',num2str(trapz(handles.s(:,1),energia_consumida(:
,1))));
%integra a parte positiva da potncia para obter a energia
consumida
format bank;
set(handles.text5,'String',num2str(trapz(handles.h(:,1),handles.data(:,4)))
);
%integra a velocidade para obter o deslocamento
guidata(hObject, handles);
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles) %PLOTAR
% hObject
handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
cla(handles.axes1,'reset'); %limpa eixos de coordenadas
axes(handles.axes1);
%seleciona axes1 como eixos de coordenadas
%plots the x and y data in axes1
if handles.velocidade==1
plot(handles.h(:,1),handles.data(:,4),'k');
hold on; %mantm a curva no grfico
end
if handles.corrente==1
plot(handles.h(:,1),handles.data(:,5),'g');
hold on;
end
if handles.tensao==1
plot(handles.h(:,1),handles.data(:,6),'r');
hold on;
end
if handles.potencia==1
plot(handles.h(:,1),handles.data(:,7),'y');
hold on;
end
if handles.soc==1
plot(handles.h(:,1),handles.data(:,8),'c');
hold on;
end
if handles.tempbateria==1
plot(handles.h(:,1),handles.data(:,9),'b');

74

hold on;
end
if handles.tempinterna==1
plot(handles.h(:,1),handles.data(:,10),'m');
hold on;
end
if handles.tempexterna==1
p=plot(handles.h(:,1),handles.data(:,11));
set(p,'Color',[1 0.5 0]);
hold on;
end
xlabel('TEMPO [h]'); %nome da abscissa
guidata(hObject, handles);
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles) %PLOTAR 2
% hObject
handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
cla(handles.axes1,'reset');
axes(handles.axes1);
if ((handles.velocidade==1)&&(handles.corrente==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,4),handles.h(:,1),handles.d
ata(:,5));
set(get(AX(1),'Ylabel'),'String','VELOCIDADE');
set(get(AX(2),'Ylabel'),'String','CORRENTE');
set(AX(1),'YColor','k');
set(AX(2),'YColor','g');
set(H1,'Color','k');
set(H2,'Color','g');
end
if ((handles.velocidade==1)&&(handles.tensao==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,4),handles.h(:,1),handles.d
ata(:,6));
set(get(AX(1),'Ylabel'),'String','VELOCIDADE');
set(get(AX(2),'Ylabel'),'String','TENSO');
set(AX(1),'YColor','k');
set(AX(2),'YColor','r');
set(H1,'Color','k');
set(H2,'Color','r');
end
if ((handles.velocidade==1)&&(handles.potencia==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,4),handles.h(:,1),handles.d
ata(:,7));
set(get(AX(1),'Ylabel'),'String','VELOCIDADE');
set(get(AX(2),'Ylabel'),'String','POTNCIA');
set(AX(1),'YColor','k');
set(AX(2),'YColor','y');
set(H1,'Color','k');
set(H2,'Color','y');
end

75

if ((handles.velocidade==1)&&(handles.soc==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,4),handles.h(:,1),handles.d
ata(:,8));
set(get(AX(1),'Ylabel'),'String','VELOCIDADE');
set(get(AX(2),'Ylabel'),'String','S.O.C.');
set(AX(1),'YColor','k');
set(AX(2),'YColor','c');
set(H1,'Color','k');
set(H2,'Color','c');
end
if ((handles.velocidade==1)&&(handles.tempbateria==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,4),handles.h(:,1),handles.d
ata(:,9));
set(get(AX(1),'Ylabel'),'String','VELOCIDADE');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA BATERIA');
set(AX(1),'YColor','k');
set(AX(2),'YColor','b');
set(H1,'Color','k');
set(H2,'Color','b');
end
if ((handles.velocidade==1)&&(handles.tempinterna==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,4),handles.h(:,1),handles.d
ata(:,10));
set(get(AX(1),'Ylabel'),'String','VELOCIDADE');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA INTERNA');
set(AX(1),'YColor','k');
set(AX(2),'YColor','m');
set(H1,'Color','k');
set(H2,'Color','m');
end
if ((handles.velocidade==1)&&(handles.tempexterna==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,4),handles.h(:,1),handles.d
ata(:,11));
set(get(AX(1),'Ylabel'),'String','VELOCIDADE');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA EXTERNA');
set(AX(1),'YColor','k');
set(AX(2),'YColor',[1 0.5 0]);
set(H1,'Color','k');
set(H2,'Color',[1 0.5 0]);
end
if ((handles.corrente==1)&&(handles.tensao==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,5),handles.h(:,1),handles.d
ata(:,6));
set(get(AX(1),'Ylabel'),'String','CORRENTE');
set(get(AX(2),'Ylabel'),'String','TENSO');
set(AX(1),'YColor','g');
set(AX(2),'YColor','r');
set(H1,'Color','g');
set(H2,'Color','r');

76

end
if ((handles.corrente==1)&&(handles.potencia==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,5),handles.h(:,1),handles.d
ata(:,7));
set(get(AX(1),'Ylabel'),'String','CORRENTE');
set(get(AX(2),'Ylabel'),'String','POTNCIA');
set(AX(1),'YColor','g');
set(AX(2),'YColor','y');
set(H1,'Color','g');
set(H2,'Color','y');
end
if ((handles.corrente==1)&&(handles.soc==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,5),handles.h(:,1),handles.d
ata(:,8));
set(get(AX(1),'Ylabel'),'String','CORRENTE');
set(get(AX(2),'Ylabel'),'String','S.O.C.');
set(AX(1),'YColor','g');
set(AX(2),'YColor','c');
set(H1,'Color','g');
set(H2,'Color','c');
end
if ((handles.corrente==1)&&(handles.tempbateria==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,5),handles.h(:,1),handles.d
ata(:,9));
set(get(AX(1),'Ylabel'),'String','CORRENTE');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA BATERIA');
set(AX(1),'YColor','g');
set(AX(2),'YColor','b');
set(H1,'Color','g');
set(H2,'Color','b');
end
if ((handles.corrente==1)&&(handles.tempinterna==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,5),handles.h(:,1),handles.d
ata(:,10));
set(get(AX(1),'Ylabel'),'String','CORRENTE');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA INTERNA');
set(AX(1),'YColor','g');
set(AX(2),'YColor','m');
set(H1,'Color','g');
set(H2,'Color','m');
end
if ((handles.corrente==1)&&(handles.tempexterna==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,5),handles.h(:,1),handles.d
ata(:,11));
set(get(AX(1),'Ylabel'),'String','CORRENTE');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA EXTERNA');
set(AX(1),'YColor','g');
set(AX(2),'YColor',[1 0.5 0]);

77

set(H1,'Color','g');
set(H2,'Color',[1 0.5 0]);
end
if ((handles.tensao==1)&&(handles.potencia==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,6),handles.h(:,1),handles.d
ata(:,7));
set(get(AX(1),'Ylabel'),'String','TENSO');
set(get(AX(2),'Ylabel'),'String','POTNCIA');
set(AX(1),'YColor','r');
set(AX(2),'YColor','y');
set(H1,'Color','r');
set(H2,'Color','y');
end
if ((handles.tensao==1)&&(handles.soc==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,6),handles.h(:,1),handles.d
ata(:,8));
set(get(AX(1),'Ylabel'),'String','TENSO');
set(get(AX(2),'Ylabel'),'String','S.O.C.');
set(AX(1),'YColor','r');
set(AX(2),'YColor','c');
set(H1,'Color','r');
set(H2,'Color','c');
end
if ((handles.tensao==1)&&(handles.tempbateria==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,6),handles.h(:,1),handles.d
ata(:,9));
set(get(AX(1),'Ylabel'),'String','TENSO');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA BATERIA');
set(AX(1),'YColor','r');
set(AX(2),'YColor','b');
set(H1,'Color','r');
set(H2,'Color','b');
end
if ((handles.tensao==1)&&(handles.tempinterna==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,6),handles.h(:,1),handles.d
ata(:,10));
set(get(AX(1),'Ylabel'),'String','TENSO');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA INTERNA');
set(AX(1),'YColor','r');
set(AX(2),'YColor','m');
set(H1,'Color','r');
set(H2,'Color','m');
end
if ((handles.tensao==1)&&(handles.tempexterna==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,6),handles.h(:,1),handles.d
ata(:,11));
set(get(AX(1),'Ylabel'),'String','TENSO');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA EXTERNA');

78

set(AX(1),'YColor','r');
set(AX(2),'YColor',[1 0.5 0]);
set(H1,'Color','r');
set(H2,'Color',[1 0.5 0]);
end
if ((handles.potencia==1)&&(handles.soc==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,7),handles.h(:,1),handles.d
ata(:,8));
set(get(AX(1),'Ylabel'),'String','POTNCIA');
set(get(AX(2),'Ylabel'),'String','S.O.C.');
set(AX(1),'YColor','y');
set(AX(2),'YColor','c');
set(H1,'Color','y');
set(H2,'Color','c');
end
if ((handles.potencia==1)&&(handles.tempbateria==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,7),handles.h(:,1),handles.d
ata(:,9));
set(get(AX(1),'Ylabel'),'String','POTNCIA');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA BATERIA');
set(AX(1),'YColor','y');
set(AX(2),'YColor','b');
set(H1,'Color','y');
set(H2,'Color','b');
end
if ((handles.potencia==1)&&(handles.tempinterna==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,7),handles.h(:,1),handles.d
ata(:,10));
set(get(AX(1),'Ylabel'),'String','POTNCIA');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA INTERNA');
set(AX(1),'YColor','y');
set(AX(2),'YColor','m');
set(H1,'Color','y');
set(H2,'Color','m');
end
if ((handles.potencia==1)&&(handles.tempexterna==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,7),handles.h(:,1),handles.d
ata(:,11));
set(get(AX(1),'Ylabel'),'String','POTNCIA');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA EXTERNA');
set(AX(1),'YColor','y');
set(AX(2),'YColor',[1 0.5 0]);
set(H1,'Color','y');
set(H2,'Color',[1 0.5 0]);
end
if ((handles.soc==1)&&(handles.tempbateria==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,8),handles.h(:,1),handles.d
ata(:,9));

79

set(get(AX(1),'Ylabel'),'String','S.O.C.');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA BATERIA');
set(AX(1),'YColor','c');
set(AX(2),'YColor','b');
set(H1,'Color','c');
set(H2,'Color','b');
end
if ((handles.soc==1)&&(handles.tempinterna==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,8),handles.h(:,1),handles.d
ata(:,10));
set(get(AX(1),'Ylabel'),'String','S.O.C.');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA INTERNA');
set(AX(1),'YColor','c');
set(AX(2),'YColor','m');
set(H1,'Color','c');
set(H2,'Color','m');
end
if ((handles.soc==1)&&(handles.tempexterna==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,8),handles.h(:,1),handles.d
ata(:,11));
set(get(AX(1),'Ylabel'),'String','S.O.C.');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA EXTERNA');
set(AX(1),'YColor','c');
set(AX(2),'YColor',[1 0.5 0]);
set(H1,'Color','c');
set(H2,'Color',[1 0.5 0]);
end
if ((handles.tempbateria==1)&&(handles.tempinterna==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,9),handles.h(:,1),handles.d
ata(:,10));
set(get(AX(1),'Ylabel'),'String','TEMPERATURA BATERIA');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA INTERNA');
set(AX(1),'YColor','b');
set(AX(2),'YColor','m');
set(H1,'Color','b');
set(H2,'Color','m');
end
if ((handles.tempbateria==1)&&(handles.tempexterna==1))
[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,9),handles.h(:,1),handles.d
ata(:,11));
set(get(AX(1),'Ylabel'),'String','TEMPERATURA BATERIA');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA EXTERNA');
set(AX(1),'YColor','b');
set(AX(2),'YColor',[1 0.5 0]);
set(H1,'Color','b');
set(H2,'Color',[1 0.5 0]);
end
if ((handles.tempinterna==1)&&(handles.tempexterna==1))

80

[AX,H1,H2]=plotyy(handles.h(:,1),handles.data(:,10),handles.h(:,1),handles.
data(:,11));
set(get(AX(1),'Ylabel'),'String','TEMPERATURA INTERNA');
set(get(AX(2),'Ylabel'),'String','TEMPERATURA EXTERNA');
set(AX(1),'YColor','m');
set(AX(2),'YColor',[1 0.5 0]);
set(H1,'Color','m');
set(H2,'Color',[1 0.5 0]);
end
xlabel('TEMPO [h]');
guidata(hObject, handles);
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles) %LIMPAR
% hObject
handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
hold off
handles.velocidade=0;
handles.corrente=0;
handles.tensao=0;
handles.potencia=0;
handles.soc=0;
handles.tempbateria=0;
handles.tempinterna=0;
handles.tempexterna=0;
cla(handles.axes1,'reset')
%limpa eixos de coordenadas
set(handles.checkbox1, 'Value', 0); %limpa checkbox1
set(handles.checkbox2, 'Value', 0); %limpa checkbox2
set(handles.checkbox3, 'Value', 0); %limpa checkbox3
set(handles.checkbox4, 'Value', 0); %limpa checkbox4
set(handles.checkbox5, 'Value', 0); %limpa checkbox4
set(handles.checkbox6, 'Value', 0); %limpa checkbox6
set(handles.checkbox7, 'Value', 0); %limpa checkbox7
set(handles.checkbox8, 'Value', 0); %limpa checkbox8
handles.toogle=1;
%valor inicial da varivel "toogle"
guidata(hObject, handles);
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles) %GRADE
% hObject
handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
handles.toogle=handles.toogle*(-1); %alterna a varivel toogle
if handles.toogle==(-1)
grid on; %habilita linhas de grade
end
if handles.toogle==1
grid off; %desabilita linhas de grade
end
guidata(hObject, handles);

81

APNDICE B Diagrama de Ligaes do Projeto

82

ANEXO A Certificado de Divulgao Tcnica Cientfica

You might also like