Professional Documents
Culture Documents
FOZ DO IGUAU - PR
2011
Orientador:
Prof.
Dr.
Carlos
Henrique
Zanelato Pantaleo
Supervisor Tcnico: Eng. Marcio Massakiti
Kubo, MSc.
FOZ DO IGUAU
2011
ii
_______________________________________________________________
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
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
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
1.2
Justificativas ....................................................................................................... 11
1.3
Objetivos............................................................................................................. 12
METODOLOGIA ........................................................................................................... 13
2.1
Microcontrolador ................................................................................................ 19
2.2
Transceiver ......................................................................................................... 22
2.3
2.4
2.5
2.6
2.7
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
1.1
Descrio do Problema
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.
Capacitar profissionais;
Adquirir know-how;
Propagar pesquisa;
Incitar a efetiva aplicao das patentes desenvolvidas dentro do projeto, para motivar a
produo industrial de VEs em larga escala;
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].
Inversor de Frequncia
Motor Eltrico
Tem dimenses e peso significativamente diminudos por ser refrigerado a gua. Seu
torque equivalente a um carro 1.0 a combusto [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].
Capacidade: 76 Ah;
Corrente de recarga: 16 A;
Carregador da Bateria
Conversor DC/DC
Sistema de Freios
Bomba de Vcuo
Cmbio
Suspenso Dianteira
Suspenso Traseira
Desempenho
Acelerao de 0 a 50 km/h: 7 s;
10
Peso
Dimenses Externas
11
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
1.3
Objetivos
13
2 METODOLOGIA
Materiais/componentes utilizados:
1 microcontrolador PIC18F4580;
1 transceiver MCP2551;
1 fotoacoplador 4N33TFK;
Fios condutores;
2 LEDs;
6 chaves tctil;
Capacitores;
Resistores.
Equipamentos utilizados:
Bancada de testes;
Protoboard;
Softwares utilizados:
AutoCAD R14;
MATLAB R2010a;
PICkit 2 2.61.
14
Fonte: Autor.
Figura 2.1 Diagrama funcional do projeto.
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
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.
2.1
Microcontrolador
20
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
21
E as seguintes caractersticas:
ECANTM;
Caractersticas nanoWatt;
Oscilador interno;
Autoprogramao;
Proteo do cdigo;
Oscilador interno;
Timers;
Conversores analgico/digital;
ECAN;
Mensagem padro;
Mensagem remota;
Mensagem de erro;
22
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
23
mbito de temperatura:
o Industrial: -40C a 85C;
o Estendido: -40C a 125C [4].
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
24
MODO
CORRENTE NO PINO RS
Standby
-IRs < 10 A
Slope-control 10 A < -IRs < 200 A
High-speed
-IRs < 610 A
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.
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
27
2.4
Display LCD
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.
28
2.5
Sensor de Temperatura
29
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:
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
31
Fonte: Autor.
Figura 2.20 Fluxograma da rotina principal.
32
do tipo
float
(variveis
que possuem um
mbito
numrico de
Oscilador interno;
Interrupo;
Timers;
Entradas analgicas/digitais;
Comparadores;
Portas de entrada/sada.
Display LCD;
Rede CAN;
Carto SD.
33
Bit 6 (PLLEN) = 0.
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;
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.
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;
Portanto,
(2.4)
(2.5)
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
Bit 4 (INT0IE) = 1;
Bit 1 (INT0IF) = 0.
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 3 (T1OSCEN) = 1;
Bit 1 (TMR1CS) = 0;
Bit 0 (TMR1ON) = 1.
40
(2.6)
Onde:
T = 0,25 s;
Portanto,
(2.7)
41
(2.8)
TMR1L = 0xDB;
TMR1H = 0x0B.
Fonte: Autor.
Figura 2.26 Grfico da quantidade de pulsos do sinal em 0,25 segundos.
(2.9)
(2.10)
42
Onde:
43
Fonte: Autor.
Figura 2.27 Fluxograma da interrupo externa e da interrupo por overflow do timer 1.
44
(2.11)
(2.12)
Onde:
P37 = 360.
(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)
(2.17)
(2.18)
(2.19)
47
Fonte: Autor.
Figura 2.29 Grfico da derivada da velocidade em relao ao tempo.
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)
Bit 0 (ADON) = 1.
Bit 5 (VCFG1) = 0;
Bit 4 (VCFG0) = 0;
50
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.
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.
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
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:
53
Segundo;
Minuto;
Hora;
Velocidade [km/h];
Corrente [A];
Tenso [V];
Potncia [W];
SOC [%];
54
Corrente;
Tenso;
SOC;
Temperatura.
Velocidade [km/h];
Corrente [A];
55
Tenso [V];
Potncia [W];
SOC [%];
Deslocamento [km];
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
A Figura 3.1 apresenta a tela 1 do prottipo final do trabalho. Nesta tela observam-se
os seguintes parmetros:
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
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.
63
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.
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
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
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
82