Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas Embarcados e Sistemas de Controle PDF
Sistemas Embarcados e Sistemas de Controle PDF
SO BERNARDO DO CAMPO
2012
So Bernardo do Campo - SP
Maio de 2012
______________________________________
Nota
________________________________________________________
Orientadores: Prof. Lazaro Pinto, Prof. Andr Perin, Prof. Marcelo Modulo,
Prof. Claudio Torres e Prof. Debora Bezerra
LISTA DE FIGURAS
LISTA DE TABELAS
LISTA DE EQUAES
Equao 1 Lambda............................................................................................. 17
SUMRIO
1 INTRODUO .................................................................................................................... 8
1.1 OBJETIVO ...................................................................................................................... 9
1.2
MOTIVAO .................................................................................................................. 9
2.3
COMBUSTO ............................................................................................................... 21
2.4
3.3
3.4
3.5
1 INTRODUO
1.1
OBJETIVO
MOTIVAO
10
2 EMBASAMENTO TEORICO
2.1
MOTOR
11
12
13
14
em torno de 10:1 e para os motores a lcool ela de 14:1. Em outras palavras, o lcool
sofre uma compresso maior que a gasolina, durante o momento da compresso. O leo
diesel sofre uma compresso ainda maior, 20:1.
2 Tempo Compresso: Neste instante a vlvula de admisso se fecha, vedando
a cmara de combusto, e o mbolo desloca-se do PMI para o PMS, comprimindo a
mistura ar-combustvel. A presso de compresso varia de 60 a 80 kgf/cm e a
temperatura aumenta.
3 Tempo Trabalho (expanso): Neste instante, a vela solta uma centelha
inflamando a mistura, produzindo uma onda de calor muito forte, aumentando a presso e
fazendo retornar o cilindro para o PMI: a realizao do trabalho. As duas vlvulas esto
fechadas.
4 Tempo Escapamento: Neste instante, a vlvula de escapamento se abre,
enquanto o mbolo vai do PMI para o PMS, expulsando os gases da combusto. Com isto
completa-se um ciclo.
A figura abaixo ilustra os quatro tempos do motor de forma mais simplificada.
15
2.1.3
16
Uma expresso lambda uma funo sem um nome que calcula e retorna um
nico valor. Expresses lambda podem ser usadas em qualquer lugar que um tipo de
representante for vlido.
2.2
SONDA LAMBDA
17
Informa unidade de comando eletrnico (UCE) a concentrao de oxignio nos
gases de escape. Seu sinal proporcional a essa concentrao. Portanto, com base no
sinal do sensor de oxignio a UCE pode avaliar a mistura ar/combustvel admitida pelo
motor e fazer correes instantneas se a mesma no estiver sendo dosada na proporo
correta.
A sonda lambda foi inventada pela empresa alem Robert Bosch GmbH em 1976 e
ainda no mesmo ano a sonda foi utilizada nos automveis Volvo. Atualmente a Bosch a
principal fornecedora mundial das montadoras e do mercado de reposio.
O lambda pode ser classificado da seguinte forma de acordo a relao
combustvel-ar, tendo como base a formula abaixo:
Equao 1 Lambda
(Fonte: Ferreira, 2008)
Mistura Rica: baixa concentrao de oxignio ( < 1 ficando entre 450 e 900mV);
Mistura Pobre: alta concentrao de oxignio (> 1 ficando entre 100 e 450mV);
Mistura Estequiomtrica: relao ideal ( = 1V).
A mistura rica prejudica o desempenho do motor e pode at causar falhas, j a
mistura podre gera desperdcio de combustvel e em ambos os casos o catalizador
afetado.
Abaixo temos a ilustrao das diferenas entre as misturas rica e pobre:
18
19
(ZrO2), recoberto, interna e externamente, por uma fina camada de platina porosa,
inserido em uma carcaa metlica, com aberturas ou orifcios para passagem dos gases
de combusto, com funo de proteo e de fixao tubulao de escapamento do
veculo. Um dos lados do elemento cermico (parte interna do eletrodo negativo) est em
contato direto com o ar atmosfrico, enquanto o outro est exposto aos gases de
combusto.
Abaixo uma figura detalhada dos componentes da sonda:
20
utilizado pela unidade de comando (UC). Quando o motor funciona em regimes estveis,
como em marcha lenta, suaves aceleraes, velocidade do veculo constante com
abertura de borboleta menor que 70% e dentro de um certo limite mximo de rotao, o
sistema opera em malha fechada e, o mdulo passa a calcular a mistura ar combustvel
em tempo real, baseada no sensor de oxignio e atravs do tempo de abertura dos bicos
injetores, o que permite uma mistura muito prxima mistura estequiomtrica.
21
2.3
COMBUSTO
O oxignio entra juntamente com o combustvel atravs dos bicos injetores para o
motor do veculo, que por sua vez emite os gases de escape que passaro pela Sonda
Lambda que ir enviar a informao sobre a relao ar/combustvel para a Unidade de
Controle Eletrnico (ECU).
A ECU utiliza esta informao para poder verificar se necessrio alterar a mistura
para que seja possvel atingir a condio ideal desta relao.
22
2.4
ARQUITETURA FPGA
O FPGA escolhido para este projeto foi o Altera Cyclone IV ( GX). Com este FPGA,
23
As funes principais do processador so:
Conjunto de instrues em 32 bits, caminho de dados e espaamento de endereo;
32 registradores de propsitos gerais;
32 fontes de interrupo;
Interface controladora de interrupo externa para mais fontes de interrupo;
24
25
26
2.4.7 Barramento de dados
Responsvel pela leitura dos dados de memria ou perifricos.
Proteo de memria;
Proteo de memria;
Sobrepor regies.
27
28
3 MODELAGEM
3.1
VARIVEIS DE ENTRADA
Massa de ar:
Universo: de 9 a 22kg de massa de ar
Valores lingusticos: Aspirado, Estequiomtrico e Turbinado
A figura abaixo ilustra os conjuntos Fuzzy da varivel massa de ar admitido. Essa
A(X) =
E(X) =
29
T (X) =
B(X) =
30
M(X) =
A(X) =
3.2
VARIVEL DE SAIDA
Lambda
Universo: 0,8 a 1,2 (variao em mV)
Valores lingusticos: Muito Grande, Pouco Grande, Mdio, Pouco Pequeno e
Muito Pequeno
A figura abaixo ilustra os conjuntos Fuzzy da varivel Lambda. Essa varivel
representa os vrios valores que podem ser atribudos para o controle da relao entre o
tempo de injeo de combustvel e a massa de ar admitido.
31
MG(X) =
PG(X) =
32
M(X) =
PP(X) =
MP(X) =
33
3.3
BASE DE CONHECIMENTO
Massa de Ar
Massa de Ar
Estequiomtrico
Turbinado
Lambda Mdio
Lambda Mdio
Massa de Ar Aspirado
Tempo de Injeo
Alto
Tempo de Injeo
Mdio
Tempo de Injeo
Baixo
Lambda Pouco
Pequeno
Lambda Muito
Pequeno
3.4
Pouco Grande
Regra2: Se Massa de Ar Aspirado e Tempo de Injeo Mdio ENTO Lambda
Muito Grande
Regra3: Se Massa de Ar Aspirado e Tempo de Injeo Alto ENTO Lambda
Muito Grande
Regra4: Se Massa de Ar Estequiomtrico e Tempo de Injeo Baixo ENTO
Lambda Pouco Pequeno
34
Regra5: Se Massa de Ar Estequiomtrico e Tempo de Injeo Mdio ENTO
Lambda Mdio
Regra6: Se Massa de Ar Estequiomtrico e Tempo de Injeo Alto ENTO
Lambda Pouco Grande
Regra7: Se Massa de Ar Turbinado e Tempo de Injeo Baixo ENTO Lambda
Muito Pequeno
Regra8: Se Massa de Ar Turbinado e Tempo de Injeo Mdio ENTO Lambda
Pouco Pequeno
Regra9: Se Massa de Ar Turbinado e Tempo de Injeo Alto ENTO Lambda
Mdio
3.5
3.5.1 Fuzzificao
Clculo do grau de pertinncia da entrada ao conjunto nebuloso que representa um
valor da varivel lingustica.
Massa de ar = 13 kg
35
36
37
Regra3: Se Massa de Ar Aspirado e Tempo de Injeo Alto ENTO Lambda
Muito Grande
Massa de Ar: A(13) = 0,5
Tempo de Injeo: A(0,93) = 0
Valor de Disparo: min(0,5;0) = 0
A Regra 3 no disparada
38
A Regra 5 no disparada
39
A unio pode ser calculada encontrando o valor MXIMO entre os graus de
pertinncia desses conjuntos. Caso seja necessrio encontrar um valor escalar para essa
sada, preciso fazer a defuzzificao.
Para PG(X) = 0,2; MG(X) = 0,3; PP(X) = 0,2; M(X) = 0,3 encontrados nos
clculos anteriores, temos:
40
Escolher pontos equidistantes significativos no eixo do X
41
Lambda = (1,635) / (1,9)
Lambda = 0,86
42
4 CONCLUSO
43
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
LambdaRico1,LambdaRico2,LambdaRico3,LambdaRico4;
float
LambdaPobre1,LambdaPobre2,LambdaPobre3,LambdaPobre4;
float
LambdaEstequiometrico1,LambidaEstequiometrico2;
char continua;
/**************************************************************************/
// entrada dos valores de Massa de ar e injeo de combustivel
// definidos pelo conjunto universo
/**************************************************************************/
44
// lao para aceitar somente valor de massa de ar entre 9 e 22
do{
cout << "Digite massa de ar entre 9 e 22kg: ";
cin >> valMassaAr;
}while(valMassaAr < 9 || valMassaAr > 22);
// lao para aceitar somente valor de injeao de combustivel entre 0.8 e 1.2
do{
cout << "Digite o Tempo de injecao de combustivel entre 0.8 e 1.2: ";
cin >> valInjecao;
}while(valInjecao < 0.8 || valInjecao > 1.3);
/**************************************************************************/
// FUZZYFICAO
/**************************************************************************/
// funo Aspirado
if(valMassaAr <= 12)
Aspirado = 1;
else if(valMassaAr >= 14)
Aspirado = 0;
else
Aspirado = (14.0-valMassaAr)/2;
// funo Estequiomtrico
if(valMassaAr <= 12 || valMassaAr >= 18)
Estequiomtrico = 0;
else if(valMassaAr < 12 && valMassaAr < 15)
45
Estequiomtrico = (valMassaAr-12.0)/3;
else
Estequiomtrico = (18.0-valMassaAr)/3;
// funo de Turbinado
if(valMassaAr >= 18)
Turbinado = 1;
else if(valMassaAr <= 16)
Turbinado = 0;
else
Turbinado = (valMassaAr-16.0)/2;
46
else
InjecaoMedio = (1.1-valInjecao)/0.1;
cout << "\nPouca injecao de combustivel = " << InjecaoBaixa << "\n";
cout << "Medio injecao de combustivel = " << InjecaoMedio << "\n";
cout << "Muita injecao de combustivel = " << InjecaoAlta << "\n";
/**************************************************************************/
// regras de produo com o conhecimento do especialista
/**************************************************************************/
// calculando Lambda
LambdaRico1 = 0;
LambdaRico2 = 0;
47
LambdaRico3 = 0;
LambdaRico4 = 0;
LambdaPobre1 = 0;
LambdaPobre2 = 0;
LambdaPobre3 = 0;
LambdaPobre4 = 0;
LambdaEstequiometrico1 = 0;
LambidaEstequiometrico2 = 0;
//Regra 1
if(Aspirado > 0 && InjecaoBaixa > 0)
LambdaRico1 = minimo(Aspirado, InjecaoBaixa);
//Regra 2
if(Aspirado > 0 && InjecaoMedio > 0)
LambdaRico2 = minimo(Aspirado, InjecaoMedio);
//Regra 3
if(Aspirado > 0 && InjecaoAlta > 0)
LambdaRico3 = minimo(Aspirado, InjecaoAlta);
//Regra 4
if(Estequiomtrico > 0 && InjecaoBaixa > 0)
LambdaPobre1 = minimo(Estequiomtrico, InjecaoBaixa);
//Regra 5
if(Estequiomtrico >0 && InjecaoMedio> 0)
LambdaEstequiometrico1 = minimo(Estequiomtrico, InjecaoMedio);
//Regra 6
if(Estequiomtrico >0 && InjecaoAlta > 0)
LambdaRico3 = minimo(Estequiomtrico, InjecaoAlta);
//Regra 7
48
if(Turbinado > 0 && InjecaoBaixa > 0)
LambdaPobre2 = minimo(Turbinado, InjecaoBaixa);
//Regra 8
if(Turbinado > 0 && InjecaoMedio > 0)
LambdaPobre3 = minimo(Turbinado, InjecaoMedio);
//Regra 9
if(Turbinado > 0 && InjecaoAlta > 0)
LambidaEstequiometrico2 = minimo(Turbinado, InjecaoAlta);
maximo(LambdaEstequiometrico1,
LambdaRico
=
maximo(LambdaRico2,maximo(LambdaRico3,LambdaRico4)));
maximo(LambdaRico1,
/**************************************************************************/
// DEFUZZYFICAO
/**************************************************************************/
49
cin >> continua;
getchar();
return 0;
}
/**************************************************************************/
// funo para encontrar o menor entre dois valores reais
/**************************************************************************/
float minimo(float valor1, float valor2){
if(valor1 < valor2)
return valor1;
else
return valor2;
}
/**************************************************************************/
// funo para encontrar o maior entre dois valores reais
/**************************************************************************/
float maximo(float valor1, float valor2){
if(valor1 > valor2)
return valor1;
else
return valor2;
}
50
5 REFERNCIAS BIBLIOGRFICAS
ALTERA.
Cyclone
IV
Device
Handbook.2011.Disponvel
em:
51
LAZARINI,
Marcley.
Sonda
Lambda:
funcionamento.
Disponvel
em
MICROSOFT. Expresses
Lambda. Disponvel
em
< http://msdn.microsoft.com/pt-
NGK
do
Brasil.
Sonda
Lambda.
Disponvel
em:
<
Vlter.
Sensor
de
Oxignio
(Sonda
Lambda).
Disponvel
em
_________.MOTORES
de
Combusto
Interna.
Disponvel
em