Você está na página 1de 53

UNIVERSIDADE METODISTA DE SO PAULO

FACULDADE DE CINCIAS EXATAS E TECNOLGICAS


CURSO DE ENGENHARIA DA COMPUTAO

Carlos Roney Fernandes


Henrique Vieira da Silva
Mariana de Oliveira Kasza
Raquel Calil

TRABALHO INTEGRADOR DO PERODO: SISTEMAS


EMBARCADOS E SISTEMAS DE CONTROLE

SO BERNARDO DO CAMPO
2012

Carlos Roney Fernandes


Henrique Vieira da Silva
Mariana de Oliveira Kasza
Raquel Calil

TRABALHO INTEGRADOR DO PERODO: SISTEMAS EMBARCADOS E


SISTEMAS DE CONTROLE

Trabalho apresentado como exigncia parcial


para aprovao nas disciplinas Sistemas
Embarcados e Sistemas de Controle do curso
de Engenharia da Computao, com nfase em
Engenharia de Software da Universidade
Metodista de So Paulo.

Orientador: Prof. Lazaro Pinto, Prof. Andr


Perin, Prof. Marcelo Modulo, Prof. Claudio
Torres e Prof. Debora Bezerra.

So Bernardo do Campo - SP
Maio de 2012

UNIVERSIDADE METODISTA DE SO PAULO

Engenharia da Computao, com nfase em Engenharia de Software

TRABALHO INTEGRADOR DO PERODO: SISTEMAS EMBARCADOS E


SISTEMAS DE CONTROLE

Projeto para obteno parcial da aprovao na concluso do curso de


Engenharia da Computao

Aluno1: Carlos Roney Fernandes


Aluno2: Henrique Vieira da Silva
Aluno3: Mariana de Oliveira Kasza
Aluno4: Raquel Calil

______________________________________
Nota

________________________________________________________

Orientadores: Prof. Lazaro Pinto, Prof. Andr Perin, Prof. Marcelo Modulo,
Prof. Claudio Torres e Prof. Debora Bezerra

So Bernardo do Campo, 28 de Maio de 2012.

LISTA DE FIGURAS

Figura 1 - Relao entre os sensores, atuadores e a unidade de controle do


motor (ECU).........................................................................................................................9
Figura 2 - Motor diesel em corte .........................................................................11
Figura 3 - Acionamentos dos pistes e das vlvulas ......................................12
Figura 4 - Esquema de um motor quatro tempos .............................................13
Figura 5 - Ilustraes de como funcionam os quatro tempos do motor .......15
Figura 6 - Evoluo dos sistemas eletromecnicos.........................................16
Figura 7 - Mistura Rica e Pobre do Sensor Lambda .........................................18
Figura 8 - Componentes da sonda Lambda.......................................................19
Figura 9 - Sistema de malha fechada .................................................................20
Figura 10 - Diferenas entre sonda nova e velha (Bosch) ............................... 21
Figura 11 - Processo de Combusto ..................................................................22
Figura 12 - Diagrama de blocos do processador Nios II..................................24
Figura 13 - Funo de Pertinncia da varivel Massa de ar ............................ 28
Figura 14 - Funo de Pertinncia da varivel tempo de injeo de
combustvel .......................................................................................................................29
Figura 15 - Funo de Pertinncia do Lambda .................................................31
Figura 16 - Funo de Pertinncia da varivel massa de ar II ........................35

Figura 17 - Funo de Pertinncia da varivel tempo de injeo de


combustvel II ....................................................................................................................36
Figura 18 - Funo de Pertinncia do Lambda II ..............................................39
Figura 19 - Funo de Pertinncia do Lambda III .............................................40

LISTA DE TABELAS

Tabela 1 - Componentes de um motor diesel ....................................................11


Tabela 2 - Base de Conhecimento ......................................................................33

LISTA DE EQUAES
Equao 1 Lambda............................................................................................. 17

SUMRIO
1 INTRODUO .................................................................................................................... 8
1.1 OBJETIVO ...................................................................................................................... 9
1.2

MOTIVAO .................................................................................................................. 9

2 EMBASAMENTO TEORICO ............................................................................................ 10


2.1 MOTOR ......................................................................................................................... 10
2.1.1 Componentes de um motor de combusto interna ..................................................... 10
2.1.2 Motor Quatro Tempos .................................................................................................. 12
2.1.3 Evoluo tecnolgica no segmento automotivo .......................................................... 15
2.2

SONDA LAMBDA ......................................................................................................... 16

2.3

COMBUSTO ............................................................................................................... 21

2.4

ARQUITETURA FPGA ................................................................................................. 22

2.4.1 O processador NIOS II ................................................................................................. 22


2.4.2 Arquivos de registros .................................................................................................... 24
2.4.3 A unidade lgica e aritmtica ....................................................................................... 24
2.4.4 Controlador de exceo ............................................................................................... 25
2.4.5 Controlador interno ou externo de interrupes .......................................................... 25
2.4.6 Barramento de instrues ............................................................................................ 25
2.4.7 Barramento de dados ................................................................................................... 26
2.4.8 Unidade de gerenciamento de memria (MMU) ......................................................... 26
2.4.9 Unidade de proteo de memria................................................................................ 26
2.4.10 Cache de memria e de instrues de dados........................................................... 26
2.4.11Modulo de Debug JTag............................................................................................... 27
3 MODELAGEM................................................................................................................... 28
3.1 VARIVEIS DE ENTRADA .......................................................................................... 28
3.2

VARIVEL DE SAIDA .................................................................................................. 30

3.3

BASE DE CONHECIMENTO ....................................................................................... 33

3.4

REGRAS QUE COMPE A BASE DE CONHECIMENTO ........................................ 33

3.5

EXEMPLO DE UTILIZAO DO SISTEMA NEBULOSO DE CALCULO DE

MISTURA AR E COMBUSTVEL ......................................................................................... 34


3.5.1 Fuzzificao .................................................................................................................. 34
3.5.2 Calculo do valor de disparo da regra ........................................................................... 36

3.5.3 Calculo do valor resultante das regras ........................................................................ 38


4 CONCLUSO ................................................................................................................... 42
APENDICE A: PROGRAMAO LINGUAGEM C.......................................................... 43
5 REFERNCIAS BIBLIOGRFICAS................................................................................ 50

1 INTRODUO

Na atualidade, a preocupao das indstrias em obter uma melhor performance


nos automveis num custo reduzido, ou seja, com um menor gasto de combustvel, vem
crescendo a cada dia. Isso porque, alm de um smbolo de status, o carro considerado,
para determinado grupo de pessoas, uma necessidade, como meio de locomoo ideal
para o trajeto casa trabalho casa.
Existem diversas manifestaes por parte das indstrias automobilsticas, quanto a
alterao em peas que compe o motor dos automveis, dentre outras formas de
aperfeioar a relao performance X custo.
Existe o dispositivo sonda lambda, localizada na tubulao do escapamento do
automvel, que responsvel pelo envio de um sinal eltrico injeo eletrnica,
indicando a presena de oxignio nos gases do escape, possibilitando o controle da
quantidade de combustvel a ser enviada ao motor.
No decorrer deste trabalho, o termo Lambda mencionado e refere-se a letra
grega utilizada tecnicamente para descrever o volume de ar na mistura ar-combustvel, e
que tem o valor 1 quando atingida a relao ideal.
Conceitualmente, sero abordados ainda os componentes do motor e seu
funcionamento bsico.
Como forma de aplicao da Lgica Fuzzy, foram adotadas variveis de entrada e
sada, assim como a execuo dos clculos adotando situao especfic a para
exemplificar uma situao real.
Foi ainda confeccionado cdigo fonte, na linguagem C, que realiza os clculos, de
acordo com a Lgica Fuzzy.

1.1

OBJETIVO

O objetivo deste trabalho desenvolver uma simulao da mistura de ar e


combustvel em motores de combusto interna, usando tecnologia fuzzy, sendo as
variveis manipuladas o ar e o combustvel e a varivel controlada o elemento
carburante do motor, ou seja, a sada.
Abaixo apresentado o processo completo de combusto.

Figura 1 - Relao entre os sensores, atuadores e a unidade de controle do motor (ECU)


(Fonte: Gomes, So Paulo)

O processo ento escolhido para o desenvolvimento desse trabalho a combusto


de um motor interno.
1.2

MOTIVAO

A principal motivao deste trabalho a de exemplificar o uso de sistemas


embarcados e sistemas de controle, utilizando a modelagem fuzzy, arquitetura de
handware e programao.

10
2 EMBASAMENTO TEORICO

2.1

MOTOR

Segundo Costa (2002), O motor a fonte de energia do automvel. Converte a


energia calorfica produzida pela combusto da gasolina em energia mecnica, capaz de
imprimir movimento nas rodas. O carburante, normalmente constitudo por uma mistura
de gasolina e ar (a mistura gasosa), queimado no interior dos cilindros do motor.
Os motores de combusto interna podem ser classificados segundo seus ciclos de
operao: ciclo Otto, para os que utilizam lcool e gasolina; e ciclo Diesel para motores
movidos a leo diesel. Os carros movidos a Gs Natural Veicular (GNV) podem operar
nos dois ciclos, entretanto so mais usuais para os motores Otto.
Os Motores de combusto interna podem se dividir, tambm, em motores de dois
tempos e motores de quatro tempos. Os motores dois tempos caram em desuso por
serem mais poluentes.

2.1.1 Componentes de um motor de combusto interna


Para entender como o motor funciona preciso conhecer suas partes integrantes.
Muitos elementos dos motores transformam movimentos de translao em movimentos
de rotao, ou movimentos de rotao em movimentos de translao (movimentos
alternados).

11

Figura 2 - Motor diesel em corte


(Fonte: Motores de combusto Interna)

Tabela 1 - Componentes de um motor diesel

A figura abaixo mostra um esquema mais simplificado dos acionamentos de um


motor de combusto interna.

12

Figura 3 - Acionamentos dos pistes e das vlvulas


(Fonte: Motores de combusto Interna)

O princpio de funcionamento dos motores o mesmo, embora haja variaes


quanto s disposies de seus acionamentos, ou seja, muitos motores vm com a rvore
de comando de vlvulas atuando diretamente sobre elas, ao invs de usar balancins e
hastes (como na figura acima); outros motores mais modernos no possuem carburador,
mas um sistema de injeo eletrnica de combustvel; etc.

2.1.2 Motor Quatro Tempos

Os motores de quatro tempos funcionam segundo o esquema mostrado pelas


figuras abaixo:

13

Figura 4 - Esquema de um motor quatro tempos


(Fonte: Motores de combusto Interna)

1 Tempo Admisso: Durante o 1 tempo, ou seja, a admisso, a vlvula de


admisso se abre, e a mistura ar-combustvel entra na cmara de combusto enquanto
ela se expande, indo do ponto morto superior (PMS) ao ponto morto inferior (PMI). A
rvore de manivela gira 180.
Nota: No PMS, a cmara de combusto, formada pelo pisto e sua camisa, possui
o menor volume. No PMI ela possui o seu maior volume. Portanto, a taxa de compresso
de um motor a razo entre os volumes no PMI e no PMS. Para um motor a gasolina ela

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

Figura 5 - Ilustraes de como funcionam os quatro tempos do motor


(Fonte: Gomes, So Paulo)

2.1.3

Evoluo tecnolgica no segmento automotivo


Na figura abaixo, possvel observar a curva ascendente da evoluo dos

sistemas eletromecnicos com o passar das dcadas.

16

Figura 6 - Evoluo dos sistemas eletromecnicos


(Fonte: Gomes, So Paulo)

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

A sonda Lambda, varivel de sada escolhida para esse trabalho, tambm


conhecida como sonda de oxignio.
Sua funo o controle do nvel de oxignio no escapamento do veculo,
verificando a necessidade de injetar mais ou menos combustvel. Ela tambm proporciona
a auto-regulao dos sistemas de injeo eletrnica e sua unidade de medida Volts.
O Vlter Ravagnani explica em detalhes o funcionamento do 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

Figura 7 - Mistura Rica e Pobre do Sensor Lambda


(Fonte: Ferreira, 2008)

O lambda pode ser classificado de 2 maneiras:

Aquecido: Quando possuem um resistor interno e so conhecidos como sensor


lambda HEGO (Heated Exhaust Gas Oxygen Sensor). Divide-se em:
o trs fios: Onde dois fios so para alimentao do aquecedor, um fio para o
sinal de sada e o aterramento feito no prprio chassi.
o quatro fios: Onde dois fios so para a alimentao do aquecedor, os outros
dois fios para o sinal de sada e o retorno isolado do chassi.
No aquecido: No possuem resistor e seu aquecimento ocorre somente devido ao
contato direto com os gases presentes no escapamento. No se sub-divide, pois
s possui um fio, que o sinal de sada. Tambm conhecido como sensor
lambda EGO (Exhaust Gas Oxygen Sensor).
De acordo Marcley Lazarini a sonda lambda formada internamente por um
elemento cermico envolto por um cilindro (eletrodo negativo), e externamente, por um
cone concntrico (eletrodo positivo). O elemento cermico a base de dixido de zircnio

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:

Figura 8 - Componentes da sonda Lambda


(Fonte: Ferreira, 2008)

O sistema pode atuar de duas formas: no sistema de malha aberta e no sistema de


malha fechada.
Diego Roberto explica quais as diferenas desses dois tipos de funcionamento:
Em regimes transitrios, ou seja, bruscas variaes na posio da borboleta,
durante a partida a frio (warm-up) e em plena carga, o sistema opera em malha aberta
com lambda objetivo menor que 1. Nessas condies o sinal gerado pela sonda no

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.

Figura 9 - Sistema de malha fechada


(Fonte: Gadelha, 2008)

No veiculo a sonda lambda se localiza num local de passagem dos gases de


escape do motor e sua outra parte da sonda fica em contato com o ar exterior.
preciso ficar atento tambm validade da sonda lambda, pois quando a mesma
envelhece causa problemas para o veiculo.

A empresa Bosch realizou um estudo e

comparou os efeitos de uma sonda velha e uma nova.

21

Figura 10 - Diferenas entre sonda nova e velha (Bosch)


(Fonte: Bosch, 2008-2009)

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

Figura 11 - Processo de Combusto


(Fonte: NGK do Brasil)

2.4

ARQUITETURA FPGA
O FPGA escolhido para este projeto foi o Altera Cyclone IV ( GX). Com este FPGA,

possvel desenvolver uma interface que se programada por ns (alunos) para a


transmisso dos dados. Fato este que foi evidenciado durante este semestre no curso de
engenharia de computao, mdulo de sistemas embarcados.

Neste FPGA, o processador utilizado o NIOS II.

2.4.1 O processador NIOS II


O processador NIOS II um
configurvel para 16 ou 32 Bits.

processador RISC com barramento de dados

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;

Este processador foi desenvolvido para executar aes em tempo real.


Responsvel por processar sinais digitais.
O NIOS II constitudo apenas por circuitos necessrios para a implantao da
arquitetura no mesmo.
A arquitetura do NIOS II definida pelas seguintes unidades funcionais:
Arquivos de registros;
A unidade lgica e aritmtica;
Controle de exceo;
Controlador interno ou externo de interrupo;
Instruo de barramento;
Dados de barramento;
Unidade de gerenciamento de memria;
Unidade de proteo de memria;
Cache de memrias e instrues;
Modulo de debug JTAG.
Na figura abaixo, demonstrado um diagrama de blocos que ilustra a arquitetura
do processador:

24

Figura 12 - Diagrama de blocos do processador Nios II


(Fonte: Altera, 2011)

2.4.2 Arquivos de registros


suportado pelo processador NIOS II, o arquivo de registro que consistido por 32
bits de uso geral e at 32 bits de registros de controle. Contem suporte a cdigos que
protege o registrador contra aplicaes com erros.

2.4.3 A unidade lgica e aritmtica


O Nios II suporta operaes na unidade lgica e aritmtica abaixo:

Aritmticas: Adio, subtrao, multiplicao e diviso;

25

Relacionais: ==(igual), !=(no igual), >= (maior ou igual) e <= (menor ou


igual)

Lgicas: And, or ou xor.

Deslocamento e rotao: podendo deslocar e fazer a rotao de dados entre


os bits 0 e 31.

2.4.4 Controlador de exceo


O processador NIOS II, possui um hardware para o tratamento de qualquer tipo de
excees. Incluindo interrupes de hardware. Tambm est disponvel um controlador
de interrupo externa opcional.
Essas excees so enviadas para um endereo especfico que identificar cada
tipo de exceo e enviar para a rotina adequada que ir fazer o tratamento da mesma.

2.4.5 Controlador interno ou externo de interrupes


A arquitetura do NIOS II suporta 32 interrupes de hardware internas. O
processador tem 32 niveis de interrupes de entrada. A prioridade das interrupes
determinada pelo Software.
O software pode habilitar ou desabilitar qualquer fonte de interrupo atravs do
controle de registro.
Para todas as interrupes externas, o EIC ( External Interrupt Controller) atribui
um nvel.

2.4.6 Barramento de instrues


O barramento de instrues executa uma simples funo, que buscar instrues
para serem executadas pelo processador.

26
2.4.7 Barramento de dados
Responsvel pela leitura dos dados de memria ou perifricos.

2.4.8 Unidade de gerenciamento de memria (MMU)


A Unidade de gerenciamento de memria tem as seguintes funes:

Mapeamento de endereos virtuais para fsicos;

Proteo de memria;

Endereamento virtual e fsico de 32 bits. Conseguindo mapear at 4 gigas


para endereos virtuais e fsicos;

Baixa 512 MB de espao de endereo fsico disponvel para acesso direto.

2.4.9 Unidade de proteo de memria


A unidade de proteo de memria dispe das seguintes funcionalidades:

Proteo de memria;

At 32 regies de instrues e de regies de dados;

Instrues e dados de tamanhos variveis;

Tamanho de regies de memria definidas pelo campo ou endereo de


limite superior;

Permisso de leitura e gravao para regies de dados.

Permisso para regies de instruo;

Sobrepor regies.

2.4.10 Cache de memria e de instrues de dados


O Processador NIOS II suporta cache de memria de instrues e de dados. O
cache de memria est integrado ao ncleo do processador.
O cache de memria pode melhorar o tempo de acesso para o processador. O
gerenciamento do cach feito por um software.

27

2.4.11 Modulo de Debug JTag


O Mdulo de debug Jtag permite que seja emulado um processador remotamente
atravs de qualquer computador host. Este mdulo permite as seguintes funes:

Baixar programas para a memria;

Iniciar e parar a execuo;

Configurar breakpoints e watch points;

Analisar registros e memrias;

Coletar dados em tempo real e rastreamento de execuo.

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

varivel representa a massa admitida pelo MCI (motor de combusto interna).

Figura 13 - Funo de Pertinncia da varivel Massa de ar


(Fonte: Prpria)

Funo de Pertinncia para Massa de Ar:

A(X) =

E(X) =

29

T (X) =

Tempo de injeo de combustvel:


Universo: de 0,8 a 1,2 segundos
Valores lingusticos: Alto, Mdio e Baixo
A figura abaixo ilustra os conjuntos Fuzzy da varivel tempo de injeo de
combustvel. Essa representa o tempo de abertura do injetor de combustvel na cmara
de combusto do MCI.

Figura 14 - Funo de Pertinncia da varivel tempo de injeo de combustvel


(Fonte: Prpria)

Funo de Pertinncia para injeo de combustvel:

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

Figura 15 - Funo de Pertinncia do Lambda


(Fonte: Prpria)

Funo de Pertinncia para Lambda:

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 Muito Grande

Lambda Pouco Grande

Lambda Mdio

Lambda Muito Grande

Lambda Mdio

Lambda Pouco Grande

Lambda Pouco Pequeno

Massa de Ar Aspirado

Tempo de Injeo
Alto
Tempo de Injeo
Mdio
Tempo de Injeo
Baixo

Lambda Pouco
Pequeno
Lambda Muito
Pequeno

Tabela 2 - Base de Conhecimento

3.4

REGRAS QUE COMPE A BASE DE CONHECIMENTO


Regra1: Se Massa de Ar Aspirado e Tempo de Injeo Baixo ENTO Lambda

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

EXEMPLO DE UTILIZAO DO SISTEMA NEBULOSO DE CALCULO DE


MISTURA AR E COMBUSTVEL
Verificar qual a mistura ar e combustvel para as entradas:
Massa de ar = 13 kg
Tempo de injeo de combustvel = 0,93 segundos

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

Substituindo o valor da Massa de ar no x, temos:

35

Localizando o resultado da funo no Grfico, temos:

Figura 16 - Funo de Pertinncia da varivel massa de ar II


(Fonte: Prpria)

Tempo de injeo de combustvel = 0,93 segundos

Substituindo o valor da Injeo de combustvel no x, temos:

Localizando o resultado da funo no Grfico, temos:

36

Figura 17 - Funo de Pertinncia da varivel tempo de injeo de combustvel II


(Fonte: Prpria)

3.5.2 Calculo do valor de disparo da regra


Regra1: Se Massa de Ar Aspirado e Tempo de Injeo Baixo ENTO Lambda
Pouco Grande
Massa de Ar: A(13) = 0,5
Tempo de Injeo: B(0,93) = 0,2
Valor de Disparo: min(0,5;0,2) = 0,2
A Regra 1 disparada com Lambda Pouco Grande em PG(X) = 0,2

Regra2: Se Massa de Ar Aspirado e Tempo de Injeo Mdio ENTO Lambda


Muito Grande
Massa de Ar: A(13) = 0,5
Tempo de Injeo: M(0,93) = 0,3
Valor de Disparo: min(0,5;0,3) = 0,3
A Regra 2 disparada com Lambda Muito Grande em MG(X) = 0,3

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

Regra4: Se Massa de Ar Estequiomtrico e Tempo de Injeo Baixo ENTO


Lambda Pouco Pequeno
Massa de Ar: E(13) = 0,33
Tempo de Injeo: B(0,93) = 0,2
Valor de Disparo: min(0,33;0,2) = 0,2
A Regra 4 disparada com Lambda Pouco Pequeno em PP(X) = 0,2

Regra5: Se Massa de Ar Estequiomtrico e Tempo de Injeo Mdio ENTO


Lambda Mdio
Massa de Ar: E(13) = 0,33
Tempo de Injeo: M(0,93) = 0,3
Valor de Disparo: min(0,33;0,3) = 0,3
A Regra 5 disparada com Lambda Estequiomtrico em M(X) = 0,3

Regra6: Se Massa de Ar Estequiomtrico e Tempo de Injeo Alto ENTO


Lambda Pouco Grande
Massa de Ar: E(13) = 0,33
Tempo de Injeo: A(0,93) = 0
Valor de Disparo: min(0,33;0) = 0

38

A Regra 5 no disparada

Regra7: Se Massa de Ar Turbinado e Tempo de Injeo Baixo ENTO Lambda


Muito Pequeno
Massa de Ar: T(13) = 0
Tempo de Injeo: B(0,93) = 0,2
Valor de Disparo: min(0;0,2) = 0
A Regra 7 no disparada
Regra8: Se Massa de Ar Turbinado e Tempo de Injeo Mdio ENTO Lambda
Pouco Pequeno
Massa de Ar: T(13) = 0
Tempo de Injeo: M(0,93) = 0,3
Valor de Disparo: min(0;0,3) = 0
A Regra 8 no disparada
Regra9: Se Massa de Ar Turbinado e Tempo de Injeo Alto ENTO Lambda
Mdio
Massa de Ar: T(13) = 0
Tempo de Injeo: A(0,93) = 0
Valor de Disparo: min(0;0) = 0
A Regra 9 no disparada
3.5.3 Calculo do valor resultante das regras
O valor resultante da aplicao de uma regra a UNIO entre os conjuntos
nebulosos de cada varivel de sada.

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:

Figura 18 - Funo de Pertinncia do Lambda II


(Fonte: Prpria)

3.5.3.1 Centro da rea


Calcula o centro de gravidade ou o centroide da figura geomtrica formada pelo
grfico da unio dos conjuntos nebulosos da varivel de sada. Passos:

40
Escolher pontos equidistantes significativos no eixo do X

Figura 19 - Funo de Pertinncia do Lambda III


(Fonte: Prpria)

Calcular o somatrio da multiplicao de cada um desses pontos pelo seu grau de


pertinncia
Dividir pelo somatrio dos graus de pertinncia utilizado no item anterior
Ento:
Lambda = [(0,55x0,3) + (0,65x0,3) + (0,75x0,3) + (0,85x0,2) + (0,95x0,2) +
(1,05x0,2) + (1,15x0,2) + (1,25x0,2)] \ (0,3 + 0,3 +0,3 +0,2 +0,2 +0,2 +0,2 +0,2)
Lambda = [(0,165) + (0,195) + (0,225) + (0,17) +(0,19) +(0,21) +(0,23) +(0,25)] \
(1,9)

41
Lambda = (1,635) / (1,9)
Lambda = 0,86

42

4 CONCLUSO

Com o desenvolvimento desse trabalho aplicamos no nosso cotidiano coisas que


no temos por costume analisar no ponto de vista tcnico, por exemplo, a Sonda Lambda,
que um equipamento comum nos automveis e que serve para monitorar a relao
ar/combustvel.
Atravs da modelagem fuzzy, podemos constatar como ocorre o processo no
interior da Sonda Lambda, para a melhor combinao ar/combustvel. Tambm foi criado
um sistema para verificar, calcular e apresentar o valor dessa relao.
Na parte de infraestrutura, pesquisamos principalmente no site da Altera e
verificamos a melhor arquitetura para implantao do sistema. Alm de obtermos
conhecimento aprofundado sobre a arquitetura do microprocessador Nios II.

43

APENDICE A: Programao Linguagem C

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

float minimo(float, float);


float maximo(float, float);

int main(int argc, char *argv[]){

float valMassaAr, valInjecao, valVazao;


float Aspirado, Estequiomtrico, Turbinado, InjecaoBaixa, InjecaoAlta,InjecaoMedio;
float LambdaRico,LambdaPobre,LambdaEstequiometrico;
float

LambdaRico1,LambdaRico2,LambdaRico3,LambdaRico4;

float

LambdaPobre1,LambdaPobre2,LambdaPobre3,LambdaPobre4;

float

LambdaEstequiometrico1,LambidaEstequiometrico2;

char continua;

do{ //lao para controlar a entrada de novos valores

/**************************************************************************/
// 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;

// funo de pertinncia de Injecao Baixa


if(valInjecao <= 0.85)
InjecaoBaixa = 1;
else if(valInjecao >= 0.95)
InjecaoBaixa = 0;
else
InjecaoBaixa = (0.95-valInjecao)/0.1;

// funo de pertinncia de Injecao medio


if(valInjecao <= 0.9 || valInjecao >= 1.1)
InjecaoMedio = 0;
else if(valInjecao < 0.9 && valInjecao < 1.0)
InjecaoMedio = (valInjecao-0.9)/0.1;

46
else
InjecaoMedio = (1.1-valInjecao)/0.1;

// funo de pertinncia de Injecao Alta


if(valInjecao >= 1.15)
InjecaoAlta = 1;
else if(valInjecao <= 1.05)
InjecaoAlta = 0;
else
InjecaoAlta = (valInjecao-1.05)/0.1;

// mostrando os valores de pertinncia calculados


cout << "\nMassa de ar Baixa = " << Turbinado << "\n";
cout << "Massa de ar Media = " << Estequiomtrico << "\n";
cout << "Massa de ar Alta = " <<

Aspirado << "\n";

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);

// encontrando o maior entre os valores lingusticos iguais


LambdaPobre = maximo(LambdaPobre1,maximo(LambdaPobre2,LambdaPobre3));
LambdaEstequiometrico
LambidaEstequiometrico2);

maximo(LambdaEstequiometrico1,

LambdaRico
=
maximo(LambdaRico2,maximo(LambdaRico3,LambdaRico4)));

maximo(LambdaRico1,

// mostrando os valores de pertinncia calculados


cout << "\n

Graus de pertinencia da Vazao:\n";

cout << "Lambda Pobre = " << LambdaPobre << "\n";


cout << "Lambda Estequiometrico = " << LambdaEstequiometrico << "\n";
cout << "Lambda Rico = " << LambdaRico << "\n";

/**************************************************************************/
// DEFUZZYFICAO
/**************************************************************************/

// verificando se o usurio quer digitar mais valores


cout << "\nDeseja digitar mais valores? (s/n): ";

49
cin >> continua;
getchar();

}while(continua != 'n' && continua != 'N'); // retorna ao primeiro DO

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:

<http://www.altera.com/literature/hb/cyclone-iv/cyclone4-handbook.pdf> Acesso em: 27


maio. 2012

ALTERA. Nios II Processor Reference Handbook: Introduction. 2011. Disponvel em:


<http://www.altera.com/literature/hb/nios2/n2cpu_nii51001.pdf> Acesso em: 27 maio. 2012

ALTERA.Nios II Processor Reference Handbook: Processor Architeture.2011.Disponvel


em: <http://www.altera.com/literature/hb/nios2/n2cpu_nii51002.pdf>. Acesso em: 27 maio.
2012

BOSCH. Sonda Lambda. So Paulo, 2008-2009.

FERREIRA, Marcos Aparecido Chaves. Sensores de Gs Sonda Lambda. So Paulo,


2008.

GADELHA, Diego Roberto. Sonda Lambda Instrumentao Eletrnica. 2008.

GOMES, Cleber Willian. Simulao de um sistema de calculo de mistura ar e combustvel.


So Paulo.

51

LAZARINI,

Marcley.

Sonda

Lambda:

funcionamento.

Disponvel

em

< http://arquivo.oficinabrasil.com.br/noticias/?COD=851> Acesso em: 30 abr. 2012

MICROSOFT. Expresses

Lambda. Disponvel

em

< http://msdn.microsoft.com/pt-

br/library/bb531253(v=vs.90).aspx> Acesso em: 29 abr. 2012

NGK

do

Brasil.

Sonda

Lambda.

Disponvel

em:

<

http://www.ngkntk.com.br/sens_ox/default.html> Acesso em: 27 maio. 2012


RAVAGNANI,

Vlter.

Sensor

de

Oxignio

(Sonda

Lambda).

Disponvel

em

< http://arquivo.oficinabrasil.com.br/noticias/?COD=834> Acesso em: 30 abr. 2012

WILKER, Brulio. A bblia do carro. Disponvel em:


< http://www.ebah.com.br/content/ABAAAAy14AD/a-biblia-carro> Acesso em: 30 abr.
2012

_________.MOTORES

de

Combusto

Interna.

Disponvel

em

< ftp://ftp.cefetes.br/Cursos/Eletrotecnica/MecanicaTecnica/Capitulo3.prn.pdf> Acesso em:


29 abr. 2012

Você também pode gostar