Como o MegaSquirt Funciona

Compreender como o MegaSquirt controla os injetores de combustível vai auxiliá-lo a montar, testar e ajustar seu MegaSquirt para melhor performance.

O MegaSquirt trabalha em vários níveis para injetar a quantidade correta de combustível em seu motor. O nível mais tangível é o de hardware. Ele consiste de:

A CPU MC68HC908 é controlada por “software embutido”. Isto é “gravado” na memória não-volátil (mantém os dados mesmo com a alimentação desligada) da CPU. O software é escrito em linguagem assembly (de montagem). O código embutido e suas variações estão disponíveis livremente. Outra parte da memória da CPU recebe o “bootloader” (carregador de inicialização), que diz à CPU como interpretar e armazenar novas versões do código embutido enviado através da porta de comunicações serial.

O software utiliza um algoritmo para receber as entradas e calcula para quais valores as saídas devem ser definidas. As entradas são sinais de tensão, seja ligado/desligado – também conhecidos como entradas digitais – (como uma entrada de tacômetro) ou tensão variável (como um sensor de temperatura – para o qual uma resistência variável externa é utilizada para criar uma tensão variável no pino do processador com um circuito divisor de tensão).

As entradas definem o estado dos registradores de entrada (registradores são simplesmente endereços fixos na memória do processador, que correspondem a pinos físicos no caso de pinos de Entrada/Saída) forçando-os para “alto” (~5V) ou “baixo” (~0V), normalmente ao fornecer um sinal aterrado ou de 5V para o pino do processador. Já que o processador enxerga um valor de registrador de ~5V = alto como “ligado” (ou “verdadeiro”) e ~0V = baixo como “desligado” (ou “falso”), ele pode ler diretamente um registrador de entrada digital como se fosse uma variável. (Sinais de tensão variável são mais complicados, e são discutidos brevemente abaixo). Pinos do processador também podem ter tensões “pull-up” embutidas, de forma que o pino seja forçado para “alto” se não estiver aterrado, e “baixo” se aterrado.

As saídas são ligadas ou desligadas ao definir-se um valor de bit em seus respectivos registradores de saída. O valor “ligado” é um “1”, que é representado nos registradores por uma pequena carga. Esta carga é constantemente recarregada, pois de outra forma pode ser perdida. Como a carga é recarregada, podemos utilizar esse fluxo de carga para ligar um transistor (que simplesmente amplifica o fluxo de carga no pino de porta para criar um fluxo de corrente muito maior em um dispositivo externo). Para desligar o fluxo externo de corrente, escrevemos um “0” para o bit do registrador daquele pino. É dessa forma que usamos um comando no código para ligar e desligar um injetor, relê ou módulo de ignição – definindo o valor do registrador para “0” (desligado) ou “1” (ligado) e ligando este registrador a um pino de saída que está conectado à base (camada do meio) de um transistor. Entretanto, precisamos saber quando ligar ou desligar a saída, e para isso precisamos ter parâmetros de configuração e ajuste.

Os parâmetros que ajustam o código embutido a um veículo específico são configurados utilizando-se um computador e software de ajuste, como o MegaTune. O software pode ler informações vindas diretamente do Controlador MegaSquirt, assim como enviar parâmetros para o MegaSquirt para uso e armazenamento.

A quantidade de combustível injetada pelo MegaSquirt depende de diversos fatores:

O MegaSquirt utiliza todos estes fatores para determinar a largura de pulso de combustível – larguras maiores significam mais combustível (mistura mais rica), larguras menores significam menos combustível (mistura mais pobre).

Para compreender estes fatores, vamos iniciar com o básico: A Lei dos Gases Ideais, o valor REQ_FUEL, e a equação de cálculo de combustível.

A Lei dos Gases Ideais

Você pode lembrar-se das aulas de física do segundo grau que um gás ideal (ao qual o ar é razoavelmente semelhante) obedece à relação:

PV = nRT

Onde:

 

P = pressão;

V = volume;

n = número de mols (relacionado à massa do gás, ou seja, 1 mol = 6,023 x 1023 moléculas do gás, e n = massa (em gramas) / massa molar (MM));

R = a constante dos gases ideais;

T = temperatura absoluta.

O que isso tem a ver com injeção de combustíveis? Para saber quanto combustível injetar, precisamos saber quanto ar está entrando no motor, de forma que a mistura quimicamente correta (chamada “estequiométrica”) possa ser alcançada. Então para um motor com injeção de combustível, utilizamos sensores para determinar a pressão no coletor de admissão e a temperatura do ar. No entanto, a temperatura nessa equação é “absoluta”, medida em Kelvins, que é igual à temperatura em °C somada a 273.

A eficiência volumétrica (VE) é um valor que nos diz a proporção da pressão dentro do cilindro em relação à pressão no coletor. Como nós conhecemos o volume (V) do motor (pela cilindrada), podemos calcular a massa de ar (M) no cilindro (proporcional a n) a partir de

n = PV/RT

M = n x MM = PV/RT x MM

= (VE x MAP x CYL_DISP) / (R x (IAT-32) x 5/9 + 273) x MMar


Dados:

P = VE x MAP (ou seja, a pressão no cilindro em kPa);

V 167>= CYL_DISP (o deslocamento de um cilindro em litros);

1R = 8,3143510 J/mol K;

e T = (IAT-32) x 5/9 + 273 para converter a IAT (temperatura de ar no coletor) de Fahrenheit para Kelvin.

Note que podemos combinar as constantes R e MMar em uma só, e as ignoraremos deste ponto em diante já que podem ser codificadas diretamente e deixadas de lado.

Já que sabemos a quantidade de ar em um cilindro a partir dos valores de MAP e IAT e o valor “acertado” para VE, precisamos saber a quantidade de combustível a injetar. Especificamos isso com um parâmetro chamado REQ_FUEL.

Injetores

Os injetores operam utilizando uma alimentação de 12V para operar um solenóide (através da bobina do injetor) que abre uma válvula na ponta do injetor. Na maioria das instalações de injeção eletrônica de combustível (e todas as instalações do MegaSquirt), a abertura e fechamento da válvula são obtidos através da ligação do aterramento dos injetores. Ou seja, a alimentação de 12V está sempre presente quando o motor está ligado, e o controlador de injeção eletrônica abre o injetor ao fornecer um caminho de aterramento para estes 12V através do injetor. Note que alguns injetores (chamados de “de baixa impedância” ou “peak and hold”) requerem alguma forma de limitação de corrente para evitar o sobreaquecimento dos injetores. O MegaSquirt possui provisões para controlar e ajustar a corrente que passa através dos injetores – veja a seção “Injetores e Sistema de Combustível” deste manual para mais detalhes. Exceto pelos breves períodos em que estão abrindo e fechando (geralmente cerca de 1 milissegundo), os injetores estão ou completamente abertos (e fluindo à sua capacidade especificada para a pressão de combustível aplicada) ou completamente fechados e sem nenhum fluxo.

As capacidades de vazão dos injetores são especificadas em libras por hora (lbs/h) ou centímetros (milímetros) cúbicos por minuto. Você precisará encontrar esse número para seus injetores para poder calcular seu REQ_FUEL. Veja a seção “Injetores e Sistema de Combustível” deste manual para mais detalhes.

REQ_FUEL

A variável REQ_FUEL (abreviação para “required fuel” - combustível necessário) é a parte da computação que diz ao MegaSquirt qual o tamanho de seus injetores, e qual é o deslocamento de seus cilindros (CYL_DISP). Ela é o tempo (em milissegundos – ms) que o MegaSquirt deve “injetar” para fornecer a quantidade estequiométrica de combustível (proporção de ar/combustível de 14,7 para gasolina) a 100% de eficiência volumétrica (VE), pressão absoluta do coletor de 100kPa e temperatura do ar de 70° Fahrenheit (21,1 °C) para um ciclo completo.

A proporção de ar/combustível (AFR) é a massa de ar comparada à massa de combustível que entram no motor, portanto para uma AFR de 14,7:1 temos 14,7 vezes mais ar (em termos de peso) que de combustível. A taxa de volume é muito mais extrema, de cerca de 9000:1, e varia consideravelmente com a temperatura, portanto a AFR é sempre especificada pela massa.

Uma mistura estequiométrica é quimicamente correta para queima completa sem nenhuma sobra de combustível OU de ar. Para a gasolina, uma AFR de 14,7 é considerada a quantidade correta para queima sem nenhuma sobra de ar ou combustível. Note que ela não é necessariamente a proporção que dá a maior potência ou eficiência.

REQ_FUEL é calculada através da equação:

REQ_FUEL x 10 = 36000000 x CID x AIRDEN(100kPA, 70°F)/(NCYL x AFR x INJFLOW) x 1/DIVIDE_PULSE

Onde:

36000000 é o número de décimos de milissegundos em uma hora, utilizado para obter libras por 1/10 de milissegundo a partir da especificação de libras por hora dos injetores;

REQ_FUEL = Tempo computado de abertura do injetor em décimos de milissegundo;

CID = Cubic Inch Displacement, deslocamento em polegadas cúbicas;

AIRDEN = Densidade do ar (libras por polegada cúbica) à pressão MAP de 100 kPa, temperatura de 70 °F e pressão barométrica de 1 atm (100 kPa);

NCYL = Número de cilindros;

INJFLOW = Fluxo do injetor em libras por hora;

DIVIDE_PULSE = número de divisão de injeção para o número de injeções por ciclo do motor.

A função AIRDEN utilizada acima é definida por:

AIRDEN(MAP, temp) = 1,2929 x 273,13/(T + 273,13) x MAP/101,325

Onde:

MAP = Pressão no coletor em kPa

T = Temperatura do ar em °C

Portanto, o valor REQ_FUEL é a quantidade de combustível (em milissegundos) necessária para uma leitura de MAP de 100 kPa, temperatura do ar no coletor de 70°F (21,1°C), e pressão atmosférica de 1 atm, para um preenchimento completo de um cilindro (eficiência volumétrica = 100%), sem nenhum enriquecimento.

Para um motor quatro tempos, um ciclo completo é de 720° de rotação do virabrequim (ou seja, duas voltas); para um motor dois tempos, é de 360° (isso também é levado em consideração no valor de REQ_FUEL carregado para o MegaSquirt – tecnicamente, para o MegaSquirt, um ciclo é definido pelos eventos de ignição em nCyl). No software de ajuste, a caixa superior de REQ_FUEL é a quantidade por cilindro, como notado acima. O valor da caixa inferior é o valor carregado para o controlador de injeção eletrônica – o mesmo número acima, mas colocado em escala pelo seu modo de injeção (numero de injeções e alternado/simultâneo). Por exemplo, se você injetar simultâneo e com apenas uma injeção, e possuir o mesmo número de injetores e cilindros (injeção multiponto), então o REQ_FUEL inferior é o mesmo do superior, assim como injetar alternado e duas injeções. Se você selecionar simultâneo e duas injeções, então o REQ_FUEL será dividido por dois – já que está-se injetando duas vezes, cada injeção necessita de metade do combustível.

Para ver como o REQ_FUEL funciona, entre com o número de cilindros e o deslocamento do motor em polegadas cúbicas (1.0L = 1000cc = 61cid), assim como o fluxo dos injetores em lbs/hr e a proporção estequiométrica de ar/combustível, no formulário abaixo e pressione o botão “Computar REQ_FUEL”.

Engine Displacement (cubic inches)
Number of Cylinders
Number of Injectors
Number of Squirts
Injector Flow (lbs/hour)
per injector
Injector Staging
Fuel Type
Engine displacement in cubic inches. The total number of cylinders for your (piston) engine The total number of injectors, whether port fuel injection or throttle body Number of squirts per engine cycle (720º or two revolutions for a 4-stroke cycle engine) Injector flow in lbs/hour of one injector Injector Staging - simultaneous fires all injectors each injection event, alternating fires only half the injectors on one injection event, then the other half on the next event. Fuel type - used to set the stoichiometric air/fuel ratio (AFR)

Req_Fuel
(ms)
Downloaded
Req_Fuel

(ms)

Note que o formulário acima NÃO impede que você coloque valores que não funcionarão com o MegaSquirt. Por exemplo, o número de injeções deve ser múltiplo do número de cilindros, etc. Quando estiver em dúvida, confie na calculadora do software MegaTune.

Equação de Combustível do MegaSquirt

O que o MegaSquirt faz é pegar o valor carregado de REQ_FUEL e multiplicar (ou adicionar) valores que coloquem este número em escala, de forma a obter a largura de pulso do injetor (PW). Assim, a largura de pulso é:

PW = REQ_FUEL x VE x MAP x E + accel + Injector_open_time

O “E” acima é o resultado de todos os enriquecimentos, tais como aquecimento, after-start, correções de pressão e temperatura, closed-loop, etc.:

E = gamma_Enrich = (Warmup/100) x (O2_ClosedLoop/100) x (AirCorr/100) x (BaroCorr/100)

e

Warmup é o valor de enriquecimento para aquecimento da tabela que o usuário preenche no MegaTune;

O2_ClosedLoop é o ajuste de EGO baseado na leitura do sensor de oxigênio (sonda lambda) e os parâmetros EGO preenchidos no MegaTune;

AirCorr é o ajuste para a densidade do ar (baseado na temperatura do ar no coletor); e

BaroCorr é a correção de pressão baseado na pressão atmosférica ambiente (normalmente tomada na ignição, mas um segundo sensor de pressão atmosférica pode ser adicionado ao MegaSquirt-II para atualizações contínuas do valor de BaroCorr).

Gamma_Enrich (E) é o valor de escala aplicado ao valor de REQ_FUEL, em conjunto com VE(RPM,MAP) e MAP.

Para todas as correções, 100% significa nenhum enriquecimento/empobrecimento, já que o valor é normalizado por 100 para obter-se um multiplicador fracionário.

Note que há dois outros fatores adicionados a isto – um é o enriquecimento de aceleração, e o outro é o tempo de abertura do injetor.

Mesmo que você defina o REQ_FUEL para zero você ainda tem o tempo de abertura do injetor (e enriquecimento de aceleração, se ativado). A razão para se adicionar o tempo de abertura é que leva-se uma quantidade finita de tempo para se abrir o injetor antes que se chegue a um estado de controle linear onde o tempo do injetor se correlacione corretamente com fluxo de combustível. O controlador compensa o tempo de abertura ao adicioná-lo ao total aplicado da largura do pulso, pois em outro caso o pulso seria muito curto.

O que se deve notar é que REQ_FUEL é um número pré-computado carregado no MegaSquirt pelo software de ajuste baseado em tamanho de injetores etc. O MegaSquirt utiliza isso ao aplicar a lei dos gases ideais para calcular a densidade relativa de carga baseado nas condições dadas acima, e então coloca o valor de REQ_FUEL em escala de acordo, para obter a largura de pulso. Para mudanças em pressão e temperatura do ar no coletor, há tabelas nas quais os valores são obtidos (por exemplo airdenfactor).

O laço principal (a área do código embarcado onde a largura do pulso é calculada) para o MegaSquirt-I normalmente executa a 1500Hz (1500 vezes por segundo) e pode variar alguns Hz para cima ou para baixo dependendo se se está no modo de ajuste ou se acontece algo que necessita de atenção (isso é chamado de interrupção). Para o MegaSquirt-II, o laço principal executa a cerca de o dobro da velocidade.

Por exemplo, em um “pior caso” bem razoável, 1500Hz é cerca de 4 vezes a taxa de IRQ (requisição de interrupção) – 6000 rpm x 8 cilindros = 400Hz. Então em um V8 a 6000 rpm, a largura de pulso é atualizada quatro vezes entre cada centelhamento (e oito vezes entre cada evento de injeção de combustível, se estiver executando em modo de duas injeções). O MegaSquirt-II dobra estes valores, assim como executar em um motor de quatro cilindros (já que há metade dos eventos em um mesmo rpm). A 600 rpm, teríamos 10 vezes mais atualizações por evento de centelhamento/injeção.

Para maior compreensão das equações, leia o Documento de Ajustador da VE. Este documento descreve uma implementação do MegaTune que não estava finalizada quando o documento foi escrito. A seção superior contém as equações de combustivel do MegaSquirt.

Como vimos acima a equação de combustível é:

PW = REQ_FUEL x VE x MAP x E + accel + Injector_open_time

Então para ver um exemplo de como o MegaSquirt calcula larguras de pulso, verificaremos um dado pontual de uma volta a baixos rpm de um arquivo de registro de dados, com MAP= 40kPa, VE=74%, E=97% e uma largura de pulso reportada de 4.0 milissegundos, com as constantes REQ_FUEL = 10ms e Injector_open_time = 1.3ms.

Então:

PW = 10 x 74/100 x 40/100 x 97/100 + 1.3 = 4.17ms

O software de ajuste apenas reporta o que o MegaSquirt está gerando, 4.0ms neste exemplo.

Você pode não obter exatamente o número reportado pelo MegaSquirt nos registros de dados. Lembre-se que a rotina de transferência serial trabalha de forma assíncrona ao laço principal de cálculo, portanto sempre há a chance de você obter leituras onde VE, MAP etc. não correspondam exatamente à largura de pulso. Em outras palavras, enquanto a “matemática” está sendo feita no laço principal (logo após a obtenção dos valores dos sensores), o controlador pode transferir a largura do pulso antes de ela ter sido calculada para esta iteração. Na verdade, o laço principal irá executar várias vezes antes que o SCI tenha enviado uma iteração de todos os 22 bytes de variáveis de execução (a 9600 baud).

Para verificar os cálculos, é necessário executar tudo em um estado constante. Por exemplo, execute o MegaSquirt no Stimulator, e então repasse os cálculos. Lembre-se também que a resolução é de 0.1ms para largura de pulso, e os cálculos intermediários do MegaSquirt são executados com números de 8 e 16 bits, então se você deseja um resultado exatamente igual, você deve lidar com os números intermediários da mesma forma que o MegaSquirt lida com eles.

Finalmente, note que o valor absoluto final para VE não é tão importante, desde que tudo seja reproduzível para um dado conjunto de parâmetros de entrada (ou seja, que o MegaSquirt retorne a mesma largura de pulso para um dado conjunto de parâmetros todas as vezes, ou seja, reproduzívelmente). Você ajusta o veículo para a melhor operação.

Um computador de injeção eletrônica poderia utilizar a eficiência de preenchimento do cilindro (VE) relativa a dois pontos – a atmosfera, e a pressão no coletor de admissão (tal qual medida pelo sensor MAP). Se você utiliza a pressão absoluta no coletor (MAP) como sua pressão de referência para computar o preenchimento do cilindro (como o MegaSquirt faz), então um motor turbo é normalmente pior que um motor aspirado naturalmente, por causa da adição do retorno de pressão do coletor de escape e da própria turbina. Se você referencia a VE à pressão ambiente, o valor de VE sobe excessivamente quando o boost da turbina aumenta.

Algoritmos de Speed Density (tal qual o utilizado no MegaSquirt) normalmente utilizam a primeira definição em seus cálculos de VE, e então multiplicam o valor de VE pelo valor de MAP para obter a massa de preenchimento. Entretanto, valores de VE acima de 100% podem ser utilizados em um motor turboalimentado para resfriar a alimentação e evitar detonação ao tornar a mistura mais rica.

Valores Medidos

Como dito acima, o MegaSquirt utiliza diversos valores medidos em suas computações. Estes incluem a pressão absoluta no coletor (MAP) e temperatura do ar na admissão (IAT). O sensor MAP MPX4250 trabalha ao receber uma tensão de referência de 5V (frequentemente abreviada para 5Vref) fornecida pelo MegaSquirt, e retornando um sinal de 0 a 5V cuja tensão é uma função linear da pressão absoluta no sensor. Pressão absoluta é a pressão comparada a um vácuo perfeito. A pressão atmosférica normal é cerca de 101.3 kPa, ou cerca de 14.7 psi ou 1 atm (bar). Mostradores de diagnóstico veiculares no Brasil utilizam frequentemente medidas em atm (bar) ou psi. A MegaSquirt utiliza exclusivamente kPa para medidas de pressão.

Para converter entre medidas de pressão, utilize o calculador de Erik F.

Pressões mais baixas retornam tensões mais baixas do sensor MPX4250. O MegaSquirt utiliza um conversor analógico-digital (ADC) para transformar o sinal de tensão do sensor em um número digital entre 0 e 255 (ou seja, 1 byte = 8 bits). O arquivo “kpafactor4250.inc” é utilizado pelo MegaSquirt para colocar a “conversão” de volts para bits em escala. O software MegaTune utiliza um arquivo similar para seus cálculos. O código embutido no MegaSquirt utiliza a variável “kpa” para armazenar o valor da pressão medida no coletor para utilizar em seus cálculos (quando o código em linguagem de montagem é compilado).

Note que o MegaSquirt também utiliza o sensor MAP para obter uma leitura “barométrica” na inicialização para aplicar correções barométricas que compensem o retorno de pressão reduzido da exaustão a grandes altitudes. Este valor é armazenado em uma variável chamada “baro”. As correções em si ficam em uma variável chamada “aircor”.

O MegaSquirt também utiliza conversão analógica para digital (ADC) para traduzir a resistência variável do sensor de temperatura de ar no coletor para um valor digital (“clt”) entre 0 e 255 para controladores MS-I, ou entre 0 e 1024 para controladores MS-II. A resistência do sensor pode variar de 10.000 ohms a -40°C até 185 ohms a 99°C. Outros sensores podem ser utilizados ao recompilar-se o código utilizando o EasyTherm para os controladores MS-I, ou diretamente no MegaTune para controladores MS-II.

Em adição às medidas necessárias para calcular a lei dos gases ideais, outros sensores são utilizados pelo MegaSquirt para compensar os momentos em que o motor necessita de outras misturas que não a estequiométrica. Estes outros sensores incluem um sensor de temperatura do líquido refrigerante para enriquecimento no aquecimento, e um sensor de posição do acelerador para enriquecimento ou empobrecimento em aceleração ou desaceleração.

O MegaSquirt possui um sensor de temperatura do líquido refrigerante (CLT) que é eletricamente idêntico ao IAT, mas é utilizado apenas para enriquecimento durante o aquecimento, determinação de largura de pulso de partida, e controle da válvula de lenta. A baixas temperaturas, o combustível vaporiza-se de forma ineficiente, e mais combustível é necessário para garantir combustível vaporizado o bastante para combustão adequada.

A variável “coolant”, que é igual a “clt” + a diferença da temperatura para 40°F (4,5°C), é utilizada para indicar ao MegaSquirt quando o enriquecimento para aquecimento (variável “warmcor”) é necessário. Largura de pulsos de ignição são determinados por tanto a definição de baixa temperatura (-40°F = -40°C) quanto a definição de alta temperatura (170°F = 75,5°C) (“CWH”). A largura de pulso propriamente dita é determinada por uma interpolação linear entre estas duas definições baseada na temperatura do líquido refrigerante (“clt”). A válvula de lenta é ativada a qualquer momento em que CLT estiver abaixo do valor “FASTIDLE”.

O sensor TPS diz ao MegaSquirt qual a posição atual do acelerador. Esta variável é comparada às leituras mais recentes para determinar se o acelerador está abrindo ou fechando rapidamente. Em caso positivo, combustível extra pode ser adicionado para um acelerador que está abrindo para compensar por condições transientes (temporárias). Isso funciona exatamente como uma bomba de aceleração em um carburador.

O sensor TPS também realiza duas outras funções importantes. Primeiro, se o acelerador estiver aberto mais que uma determinada quantidade durante a ignição, o modo “flood clear” é ativado para reduzir a largura de pulso para 0.3ms. Segundo, se o acelerador estiver mais de 70% aberto a correção pelo retorno do sensor de oxigênio é desligada.

O sensor de oxigênio no gás de exaustão (EGO) diz ao MegaSquirt se está sendo injetada a quantidade correta de combustível. O sensor EGO (também chamado de sensor O2, sensor de oxigênio ou sonda lambda) mede a quantidade de oxigênio presente nos gases de exaustão, e envia um sinal de 0 a 1 volt (para um sensor narrow-band, mais sobre sensores wide-band posteriormente) para o MegaSquirt (a variável da contagem ADC não processada é “ego”). O MegaSquirt então computa o ajuste que deve ser feito na duração da injeção (“egocorr”) para o próximo evento de injeção. Tensões mais baixas significam misturas mais pobres, e tensões mais altas significam misturas mais ricas.

Entretanto, as sondas narrow-band convencionais não são particularmente precisas muito longe das misturas estequiométricas, portanto situações necessitando de misturas enriquecidas ou empobrecidas devem desabilitar a correção por EGO. O MegaSquirt utiliza medidas de TPS para desligar a correção por EGO a mais de 70% de acelerador. O MegaSquirt também fornece a opção de desligar a correção por EGO abaixo de uma determinada temperatura de líquido refrigerante (“egotemp”) e abaixo de uma rpm especificada.

As ÚNICAS diferenças entre sondas narrow-band e controladores/sensores wide-band no MegaSquirt são a inclinação e ponto de definição. A lógica de controle de combustível por realimentação é a mesma.

O tamanho do passo é uma constante, e é definida pelo usuário na página de enriquecimentos. O número total de passos permitido é definido com EGO ± limit (%).

O tempo entre os passos depende do valor de Eventos de ignição por passo ('Ignition events per step'). O MegaSquirt aguarda este número de centelhamentos, e então:

Por exemplo, suponha que temos:

Ego step size = 5

EGO ± limit (%) = 30%

Ignition events per step = 8

E suponha que temos um sensor imaginário com um ponto de definição estequiométrico de 1.0V e a mesma inclinação de um sensor narrow-band (tensões baixas = pobre, tensões altas = rica).

Então se estivermos rodando em um rpm acima do valor rpm active above setting, o MegaSquirt estiver ligado a 30 segundos, o motor estiver mais quente que o ponto de ativação da temperatura do líquido refrigerante, etc., então:

  1. após a última correção por EGO, aguardamos 7 eventos de ignição, e no 8º verificamos o sensor. Se ele estiver abaixo de 1.0V adicionaríamos 5% (o valor de EGO step size) à correção por EGO, para torná-la 105, se ela fosse 100 anteriormente;

  2. após mais 7 eventos, verificamos o sensor novamente (no 16º evento). Se a leitura agora for rica (maior que 1.0V), subtraímos 5% para voltar para 100%;

  3. após mais 7 eventos, verificamos o sensor novamente (no 24º evento). Se a leitura ainda for rica (maior que 1.0V), subtraímos 5% para atingir 95%;

  4. 584>após mais 7 eventos, verificamos o sensor novamente (no 32º evento). Se a leitura ainda for rica (maior que 1.0V), subtraímos 5% para atingir 90%;

  5. após mais 7 eventos, verificamos o sensor novamente (no 40º evento). Se a leitura agora for pobre (menor que 1.0V), adicionamos 5% para atingir 95%;

  6. e assim por diante.

Com uma sonda wide-band, a diferença seria que onde adicionamos acima (porquê a leitura estava abaixo de 1.0V) iríamos agora subtrair, e vice versa. Isso é porque uma sonda wide-band possui uma inclinação oposta, e baixas tensões significam misturas ricas, altas tensões significam misturas pobres. Note que com sensores reais, as características são:


Narrow-band

Wide-band (DIY-WB)

Ponto de definição estequiométrico

0,450V

2,500V

Tensão rica

> 0,450V

<2,500V

Tensão pobre

< 0,450V

>2,500V

A outra diferença crucial entre sondas narrow e wide é que para uma sonda narrow-band, apenas o ponto de definição estequiométrico garante uma proporção ar/combustível em particular (14,7:1). Com uma sonda wide-band, outras tensões correspondem a outras proporções ar/combustível (por exemplo, 2,08V = 12,5:1), então o ponto de definição no MegaSquirt pode ser movido para obter-se outras AFRs. Por exemplo, você poderia defini-lo para 2,65V para obter uma mistura de loop fechado “de cruzeiro” de 16,5:1.

Obviamente, isso só acontece se a temperatura do líquido refrigerante estiver acima do patamar de ativação, a MegaSquirt estiver em operação a 30 segundos ou mais, o rpm estiver acima do patamar rpm active above e a contagem do ADC do TPS estiver abaixo de 178 (~3,5V).

Entrada de Ignição

Ok, agora que o MegaSquirt sabe quanto combustível injetar, como ele sabe quando injetar? Esta é uma função do circuito de entrada de ignição. Um sinal é tomado do distribuidor ou do negativo da bobina. Idealmente, há um “pico” a cada vez que um cilindro dispara. O MegaSquirt injeta combustível em múltiplos pares destes sinais.

Um trabalho considerável foi realizado no campo para garantir sinais limpos de ignição, sem eventos perdidos e sem eventos falsos. Isso é coberto em mais detalhes na subseção de Disparo de Ignição da seção de Ajustes.

O ponto dos eventos de injeção depende dos parâmetros que você define utilizando o software de ajuste (Injection Per Engine Cycle, Injector Staging, Number of Cylinders, etc.). Estes serão vistos em detalhes na seção de Ajustes deste manual.

Injeção por Banco, Banco a banco alternado, Sequencial

Existem dois tipos comuns de injeção:

  1. Injeção monoponto – normalmente um ou dois injetores para o motor todo

  2. Injeção multiponto – um injetor por cilindro

Além disso, existem três modos comuns de controle de ponto de injeção:

Carros com injeção monoponto são normalmente banco ou banco a banco alternado, simplesmente por causa da geometria. A maioria das instalações multiponto mais antigas também eram banco a banco.

A injeção sequencial necessita de:


O MegaSquirt possui apenas dois drivers de injetores (que conseguem lidar com até dez injetores cada), e nenhuma provisão para um sinal de sensor de comando, então seria difícil transformá-la em um sistema de injeção sequencial.

Os benefícios da injeção sequencial são que:

O efeito em potência máxima é geralmente negligível.

O Al Grippo tem um controlador EFI332 em seu veículo que é capaz de fazer injeção sequencial. A título de teste de uso no mundo real, ele programou o EFI332 para iniciar a injeção quando a válvula de escape fechar (admissão já aberta), mas se a largura de pulso fosse tal que a injeção não pudesse terminar antes de a admissão fechar, então o controlador avançaria o ponto de forma que a injeção terminasse quando a admissão fechasse. Partindo deste “ótimo teórico”, ele variou o ponto por todo o ciclo e confirmou que o que ele escolhia como padrão funcionava de forma ótima baseado na rpm mais alta, leitura de map mais baixa. Isso tudo foi feito em lenta. Havia uma pequena mas mensurável diferença se o ponto fosse tal que a injeção ocorresse com a válvula de exaustão aberta.

Entretanto, injeção sequencial não significa necessariamente que você está injetando em uma válvula de admissão aberta o tempo todo. A válvula de admissão fica aberta por menos de 30% do tempo em um motor de quatro tempos típico. No momento em que você tenta produzir mais que 25% da potência máxima do motor, seus injetores estarão disparando por mais tempo que o tempo de abertura da válvula de admissão. Se sua potência máxima estiver calibrada corretamente para um ciclo de trabalho seguro de 80%, seus injetores estarão disparando bem mais que metade do tempo em válvulas fechadas.

A rotações mais altas, torna-se progressivamente mais difícil injetar enquanto a válvula está aberta. Por exemplo, se seu REQ_FUEL = 15ms, e seu ciclo máximo de trabalho for 85%, então o intervalo entre injeções não pode ser menor que 17,6ms. O tempo disponível para injetar durante todo o ciclo de 4 tempos é:

tempociclo = 120/RPM

a admissão fica normalmente aberta por menos de 240° de 720° em um ciclo de motor em um motor de rua preparado, cerca de 1/3 do tempo de um ciclo completo. Então:

tempoinjeção = 40/RPM

e

RPMmax = 40/tempoinjeção

utilizando os números acima,

RPMmax = 40/0,0176 = ~2300rpm

Acima desta rotação, não é possível injetar a quantidade completa de combustível em uma válvula aberta a 100% VE e 100kPa. Em lenta, entretanto, a VE pode ser 30%, e a pressão pode ser 35kPa, resultando em uma largura de pulso de ~1,8ms, o que certamente pode ser injetado durante a abertura da válvula de admissão. Portanto a injeção sequencial é primariamente eficaz em lenta, e não muito diferente de injeção por banco conforme as larguras de pulso aumentam a velocidades e cargas de motor mais altas.

Em qualquer caso, quando o combustível é injetado enquanto a válvula está fechada, ele simplesmente ficará na porta até que a válvula abra. Em alguns casos, este período de tempo pode permitir aquecimento suficiente da mistura para vaporizar melhor o combustível líquido, melhorando a eficiência e as emissões.

Então o efeito do timing sequencial é relativamente pequeno, e aplica-se majoritariamente a baixas rotações. Os fabricantes utilizam este sistema primariamente por razões de emissões (a maioria dos sistemas de injeção de fábrica costumam ser banco-a-banco). Entretanto, há um benefício real em sistemas sequenciais, que é a possibilidade de ajuste cilindro a cilindro (se você tiver o tempo, habilidade e equipamento).

Esta foi uma breve introdução à maneira de trabalho do MegaSquirt. Você pode aprender mais ao estudar os esquemas eletrônicos, o código e os datasheets do hardware, assim como ao montar e utilizar o MegaSquirt.


Útima Atualização 23/02/2008 17:06:06 por Bruce Bowling and Al Grippo. Traduzido por MSBR, Última Revisão 13/05/2008


MegaSquirt ® é um dispositivo experimental destinados a fins educativos.

 © 2004, 2007 Bruce Bowling e Al Grippo. Todos os direitos reservados. MegaSquirt ® é uma marca registrada.