9. Exemplos
Os sete exemplos estão em ordem crescente de tamanho. São modelos para estudar e pontos de partida: ajuste os valores ao seu veículo, teste com o motor parado (passo 9) e confirme no log (passo 10) antes de usar num carro. Cada exemplo é independente dos outros. Somados, passam do limite de memória do mapa e usam os mesmos canais de registro: instale um de cada vez ou renumere as Medida customizada.
| Exemplo | Blocos | Trabalho (de 512 B) | Configuração (de 2048 B) |
|---|---|---|---|
| Ventoinha liga/desliga por temperatura | 5 | 20 B | 38 B |
| Saída por RPM e TPS | 10 | 44 B | 71 B |
| Enriquecimento na aceleração pela derivada | 17 | 100 B | 350 B |
| Controle de corrente de solenoide | 30 | 144 B | 237 B |
| Pulso único temporizado | 38 | 212 B | 324 B |
| Corte de combustível na desaceleração | 46 | 292 B | 478 B |
| Lenta por reserva de torque | 62 | 312 B | 902 B |
Nas tabelas, os blocos aparecem na ordem do sinal e com o nome do tipo, como no menu. No seu mapa, use os nomes que você deu no passo 7. Os exemplos 3 a 7 mudam a injeção e comandam solenoide, atuador, corte de combustível e borboleta: leia o aviso de cada um antes de testar.
A linha Tela do usuário de cada exemplo diz o que expor ao cliente final, pela política do capítulo Tela do usuário: canais, saídas e os limites da Ação na VCU ficam escondidos.
#Ventoinha liga/desliga por temperatura
Liga uma ventoinha quando a temperatura passa de um limite e só desliga quando cai abaixo de outro, mais baixo, para ela não ficar ligando e desligando em cima do limite.


| Bloco na tela | Papel no exemplo | Valor ou ajuste principal |
|---|---|---|
| Valor da VCU | Lê a temperatura | Dado da VCU: Temperatura do motor |
| Histerese | Liga acima do limite superior e desliga abaixo do inferior | Limite superior 95 °C e limite inferior 90 °C (valores de exemplo) |
| Saída On/Off | Aciona a ventoinha | Saída: Saída custom function 1 |
| Valor para VCU (2) | Grava o estado e a temperatura lida | Medida customizada #03 e #04 |
- Tela do usuário: exponha os dois limites da Histerese, com os nomes "Liga acima de" e "Desliga abaixo de".
- Registro: Medida customizada #03 = estado (1 ligada, 0 desligada). Medida customizada #04 = temperatura como a função lê.
- Adapte: (1) O canal de temperatura em Dado da VCU. (2) Os limites: confira em Medida customizada #04 que a temperatura chega em graus Celsius. (3) Atribua Saída custom function 1 a um pino na tela Saídas, onde ela aparece como Saída custom function 01. Confira no manual de instalação da VCU o tipo e a corrente da saída escolhida. (4) A Histerese começa desligada ao carregar o mapa: se a temperatura já estiver entre os limites, a ventoinha só liga ao passar do limite superior.

#Saída por RPM e TPS
Aciona uma saída só quando o giro passa de um valor e a borboleta passa de uma abertura. Serve de base para qualquer saída que dependa de duas condições.

| Bloco na tela | Papel no exemplo | Valor ou ajuste principal |
|---|---|---|
| Valor da VCU (2) | Lê abertura e giro | TPS e RPM do motor |
| Valor Fixo (4) | Resultado verdadeiro, resultado falso e os dois limites | 1; 0; 50; 5000 |
| Chave (TPS) | Vale 1 se o TPS passar do limite | Modo Acima; limite superior 50 |
| Chave (RPM) | Vale 1 se o giro passar do limite | Modo Acima; limite superior 5000 |
| Lógica | Vale 1 só se as duas Chave valem 1 | Operação AND |
| Saída On/Off | Aciona a saída | Saída custom function a escolher |
- Tela do usuário: o exemplo não tem tela. Para o cliente ajustar, exponha o campo Valor fixo dos dois limites, com nome personalizado.
- Registro: o exemplo não grava nada. Para ver a condição, ligue a saída da Lógica a um Valor para VCU (Medida customizada #03): soma 6 bytes de configuração.
- Adapte: (1) Os limites 50 e 5000. (2) A função de saída, que precisa estar atribuída a um pino na tela Saídas. (3) As duas Chave comparam de forma estrita e sem histerese: com o valor parado em cima do limite a saída pode oscilar. Troque a Chave por Histerese, como no exemplo anterior, se isso acontecer.
#Enriquecimento na aceleração pela derivada
Injeta combustível extra na pisada, proporcional à velocidade com que a borboleta abre, com decaimento suave e escalado pela carga e pela temperatura do motor.

| Bloco na tela | Papel no exemplo | Valor ou ajuste principal |
|---|---|---|
| Valor da VCU | Fonte da pisada | TPS (padrão) ou Pedal pos. |
| Derivada | Velocidade de abertura, em % por segundo | Fator de filtro 0,15 |
| Vetor 1x8 (ataque) | Transforma a derivada em enriquecimento (%) | Eixo −100 a 600; valores −20 a 120 |
| Filtro EMA | Faz o enriquecimento decair | Alpha 0,005 |
| Operação matemática | Máximo entre o ataque e o decaimento | Operação Máximo |
| Tabela 4x4 (carga) | Multiplicador por RPM e MAP | RPM 1000 a 8000; MAP −0,8 a +0,4 bar; células 0 a 1,2 |
| Operação matemática | Aplica a carga | Multiplicação |
| Vetor 1x8 (temperatura) | Multiplicador pela temperatura do motor | −10 a 100 °C; 3,0 a 1,0 |
| Operação matemática | Aplica a temperatura | Multiplicação |
| Valor Fixo, Chave | Só deixa passar com o motor girando | Modo Acima; 400 rpm |
| Ação na VCU | Compensação de injeção, em % | Mínimo −30; máximo 350 |
| Valor para VCU (2) | Registra a derivada e a correção aplicada | Medida customizada #01 e #02 |
- Tela do usuário: 3 campos e 3 tabelas. Campos: o Fator de filtro da Derivada, o Alpha do Filtro EMA e o RPM mínimo da Chave. Tabelas: o vetor de ataque, a tabela de carga e o vetor de temperatura, inteiros.
- Registro: Medida customizada #01 = derivada. Medida customizada #02 = correção aplicada.
- Adapte: (1) A fonte em Dado da VCU: TPS ou Pedal pos. (2) O eixo do Vetor 1x8 de ataque: grave a Medida customizada #01 em pisadas e ajuste o eixo à faixa real. Se a entrada só atualiza de tempos em tempos, a derivada sai em picos: filtre a entrada antes da Derivada. (3) O eixo de MAP vai até +0,4 bar e a linha de +0,4 está zerada: no modo Clamp, acima do último ponto a tabela repete essa linha e não enriquece de +0,4 bar para cima.
#Controle de corrente de solenoide
Mantém a corrente de uma bobina proporcional no valor pedido por um comando de 0 a 100 %, por uma saída PWM, com realimentação pela corrente medida.

| Bloco na tela | Papel no exemplo | Valor ou ajuste principal |
|---|---|---|
| Valor da VCU, Limitador, Valor Fixo (2), Operação matemática (2) | Comando de 0 a 100 % vira corrente alvo | Alvo = comando ÷ 100 × corrente máxima; corrente máxima 2,0 A |
| Valor da VCU | Lê a corrente medida | Corrente saída amarela 1 e 2, em A |
| Filtro EMA | Filtra a corrente medida | Alpha 0,5 |
| Valor Fixo (3) | Ganhos proporcional (Kp), integral (Ki) e derivativo (Kd) do PID | 20; 1000; 0 |
| PID | Compara o alvo com a medida e corrige | Tempo de loop 1; anti windup 0,1 |
| Valor Fixo, Valor da VCU, Operação matemática (3) | Alimentação direta: duty que o alvo exigiria sozinho | Alvo × resistência ÷ Tensão de Bateria × 100; resistência 5 ohms |
| Operação matemática | Soma alimentação direta e correção do PID | Adição |
| Valor Fixo (2), Operação matemática, Timer cíclico | Dither: soma ao duty uma onda quadrada de +5 e −5 | Amplitude 5 %; 7 ms ligado e 7 ms desligado |
| Operação matemática | Soma o dither ao duty | Adição |
| Limitador | Mantém o duty entre 0 e 100 % | 0 a 100 |
| Chave | Zera o duty se o comando ficar abaixo do limiar | Modo Abaixo; limiar 0,5 % |
| Saída PWM | Comanda a bobina | Frequência 1000 Hz, de um Valor Fixo |
| Saída On/Off | Mantém desligada a segunda saída do par | Entrada 0 |
| Valor para VCU | Grava a corrente filtrada | Medida customizada #03 |
- Tela do usuário: 13 campos: corrente máxima, filtro, Kp, Ki, Kd, tempo de loop, anti windup, resistência, amplitude e tempos do dither, limiar de corte e frequência do PWM. Os ganhos são entradas do PID, não campos: por isso cada um vem de um Valor Fixo.
- Registro: Medida customizada #03 = corrente filtrada.
- Adapte: (1) O canal do comando: use um que só você escreve, como uma Medida customizada de outra função. Um canal com dono (entrada física ou CAN) pode ter o valor sobrescrito. (2) O par de saídas amarelas: atribua as duas Saída custom function na tela Saídas e use o canal de corrente do mesmo par. (3) A resistência e a corrente máxima da bobina, e confira em Medida customizada #03 que a corrente medida e o alvo estão na mesma unidade. (4) Os ganhos: acerte por log. (5) O Timer cíclico trabalha em milissegundos inteiros: um valor fracionário vale o próximo inteiro (7,14 vira 8 ms), por isso o exemplo usa 7 ms, perto de 71 Hz. O Filtro EMA com Alpha 0,5 filtra pouco.
#Pulso único temporizado
Liga uma saída uma única vez por largada, por um tempo fixo, depois de uma largada válida, disparada por uma levantada rápida do acelerador ou por um botão. Só rearma quando a largada deixa de ser válida.

| Bloco na tela | Papel no exemplo | Valor ou ajuste principal |
|---|---|---|
| Valor da VCU (3) | Lê a largada, o TPS e o botão | Largada válida, TPS, Botão de 2-step |
| Lógica (NOT), Integrador | Conta os segundos desde a largada válida e zera quando ela deixa de valer | Ganho 1; reset pela largada inválida |
| Chave (2), Lógica (2, AND) | Janela de cada gatilho, combinada com o liga/desliga dele | TPS de 2,0 a 10,0 s; botão de 1,0 a 10,0 s |
| Chave (Acima), Atraso (Off-Delay) | TPS passou de 70 % há pouco | 70 %; 0,25 s |
| Chave (Abaixo), Atraso (On-Delay) | TPS abaixo de 20 % por um tempo curto, para descartar uma leitura isolada | 20 %; 0,03 s |
| Lógica (AND) | Levantada rápida: estava acima de 70 % e está abaixo de 20 % | |
| Atraso (On-Delay) | Estabiliza o botão | 0,03 s |
| Lógica (3: AND, AND e OR) | Gatilho 1, gatilho 2 e pedido de disparo (um ou outro) | |
| SR Latch | Memoriza o disparo e só solta com a largada inválida | Prioridade Set; limiar 0,5 |
| Derivada, Chave (Acima) | Detector de borda: vale 1 só na execução em que o latch sobe | Fator de filtro 0; limite 1 |
| Atraso (Off-Delay) | Estica o pulso | 0,5 s |
| Saída On/Off | Aciona o atuador | Saída custom function 1 |
| Lógica (OR), Operação matemática (3), Valor para VCU (2) | Código de estado e levantada rápida, no log | Medida customizada #03 e #04 |
- Tela do usuário: 9 campos: TPS abre acima de 70 %, TPS fecha abaixo de 20 %, tempo máximo de fechamento 0,25 s, arma do TPS após 2,0 s, arma do botão após 1,0 s, fim da janela em 10,0 s, gatilho do TPS ligado ou não, gatilho do botão ligado ou não, e duração do pulso 0,5 s.
- Registro: Medida customizada #03 = estado (0 desarmado, 1 armado, 2 disparado, 3 saída ligada). Medida customizada #04 = levantada rápida vista.
- Adapte: (1) A função de saída, atribuída a um pino na tela Saídas. (2) Os limiares: Medida customizada #04 vale 1 sempre que a levantada rápida é vista, dentro ou fora da janela: use-a em um teste a seco. (3) O exemplo depende dos canais Largada válida e Botão de 2-step: confira no log que os dois mudam como você espera. (4) Todos os tempos são em segundos, o que o campo Tempo de atraso (s) do Atraso exige.
#Corte de combustível na desaceleração
Corta a injeção quando o motorista solta o pedal com o motor girando alto e com vácuo de freio-motor. O corte entra em rampa e a volta é suavizada por ignição e por um enriquecimento curto.

| Bloco na tela | Papel no exemplo | Valor ou ajuste principal |
|---|---|---|
| Valor da VCU (6) | Lê giro, pedal, temperatura, MAP, velocidade e embreagem | RPM do motor, Pedal pos., Temperatura do motor, MAP, Velocidade, Botão de embreagem |
| Vetor 1x8 | Limiar do pedal solto, por RPM | 0 a 15 % de 0 a 7000 rpm; 2 % em 1000 e 2000 rpm |
| Chave (5) | Pedal solto, motor quente, vácuo, velocidade e embreagem solta | Temperatura acima de 60 °C; MAP abaixo de −0,45 bar; velocidade acima de −1 (desligada); botão abaixo de 0,5 |
| Chave (2), SR Latch | Histerese de giro: permite o corte acima de um giro e solta abaixo de outro | 1800 rpm e 1500 rpm; prioridade Reset |
| Operação matemática (5, Mínimo) | E em cadeia: vale 1 só se as seis condições valem 1 | |
| Atraso (On-Delay) | Carência: só arma o corte se as condições valerem 0,1 s seguidos | 0,1 s; se a condição cair antes, a contagem cancela |
| Rampa | Entrada do corte: sobe de 0 a 100 % | 1000 ms; Rearmar abaixo de: 0,5 |
| Operação matemática (Multiplicação) | Zera o corte assim que o armado cai | Saída da rampa × armado |
| Ação na VCU | Corte de combustível, nível de 0 a 100 % | Mínimo 0; máximo 100 |
| Operação matemática | Sinal contrário ao armado | Subtração: 1 menos armado |
| Rampa, Operação matemática | Ignição na volta, só com o pedal solto | −10 graus voltando a 0 em 800 ms |
| Ação na VCU | Compensação de ignição | Mínimo −15; máximo 0 graus |
| Rampa, Operação matemática | Enriquecimento na volta, só com o pedal solto | 25 % voltando a 0 em 1000 ms |
| Ação na VCU | Compensação de injeção | Mínimo 0; máximo 30 % |
| Valor para VCU (4) | Registra o corte e as compensações | Medida customizada #03 a #06 |
- Tela do usuário: 11 campos e o vetor do limiar do pedal. Campos: temperatura mínima, teto de vácuo, giro de corte, giro de reinjeção, velocidade mínima (−1 desliga), carência, rampa de entrada, retardo e rampa de ignição na volta, enriquecimento e decaimento na volta.
- Registro: Medida customizada #03 = corte armado (0 ou 1). #04 = nível do corte aplicado, depois da multiplicação (%). #05 = compensação de ignição (graus). #06 = enriquecimento (%). Com o corte armado, #05 e #06 já ficam em −10 graus e 25 %, inclusive durante a rampa de entrada do corte: as rampas da volta esperam paradas no valor inicial.
- Adapte: (1) O teto de vácuo: meça no log (a lenta deve ficar acima do teto e o freio-motor abaixo). (2) Os giros de corte e de reinjeção. (3) O limiar do pedal é um vetor por RPM (Vetor 1x8), não um valor fixo: ajuste os pontos ao pedal do carro. (4) Sem botão de embreagem o canal fica em 0 e a condição vale sempre 1: confirme no log. (5) O corte concorre com os cortes nativos pelo maior nível, e a compensação soma com as correções nativas: confira que nenhuma função nativa de corte ou de injeção rápida faz o mesmo trabalho.
#Lenta por reserva de torque
Segura a marcha lenta no alvo de RPM com dois atuadores: a ignição, que é rápida e trabalha com alguns graus de reserva, e o ar da borboleta eletrônica, que é lento. É o exemplo mais completo: serve como estudo de caso, e a tabela mostra o desenho em grupos de blocos.

| Bloco na tela | Papel no exemplo | Valor ou ajuste principal |
|---|---|---|
| Valor da VCU (3), Valor Fixo (3) | Entradas e constantes 0, 1 e 0,5 | Temperatura do motor, RPM do motor, Pedal 1 |
| Vetor 1x4, Valor para VCU | Alvo de RPM por temperatura, registrado | 1110, 985, 960, 960 rpm a 20, 50, 70, 90 °C; #05 |
| Filtro passa baixa | Filtra o RPM | Frequência 4 Hz; Fator Q 0,707 |
| Operação matemática | Erro = alvo − RPM filtrado | Subtração |
| Vetor 1x8, Operação matemática (4), Vetor 1x4 | Ignição: curva do erro em graus, separação de avanço e retardo, retardo que some com RPM alto | Reserva −8 graus; retardo máximo −15; avanço máximo +2; retardo cheio até 1300 e zero acima de 1800 rpm |
| Chave (2), SR Latch, Valor Fixo (2) | "Fora da lenta": entra na lenta com pedal abaixo de 1 % e sai com pedal acima de 2 % | Prioridade Set |
| Chave, Vetor 1x4, Operação matemática, Ação na VCU, Valor para VCU | Zera a ignição fora da lenta, libera entre 400 e 600 rpm e aplica a Compensação de ignição | Mínimo −15; máximo +15 graus; #04 |
| Vetor 1x8, Zona Morta, Vetor 1x4, Chave, Operação matemática (2), Valor Fixo (2) | Ar: curva do erro em taxa, zona morta e ganho assimétrico | Zona morta ±2; abrir 3; fechar 1,2 |
| Integrador, Chave (2), Valor Fixo (2) | Reserva de ar: integra a taxa, congela fora da lenta e drena com o motor parado | Ganho 0,02; limites 0 e 3 %; RPM mínimo 400; dreno −200 |
| Vetor 1x8, Chave, Valor Fixo, Operação matemática | Empurrão de ar quando o erro de RPM é grande | Limiar 300 rpm; máximo 3 % |
| Integrador, Vetor 1x8, Valor Fixo (2), Operação matemática (6) | Colchão: abertura inicial consumida devagar perto do alvo, só na lenta | Abertura 1,5 %; decaimento 0,25 % por segundo |
| Operação matemática (5), Valor Fixo | Decaimento do ar conforme o pedal passa de 1 % | 0,5 por % de pedal |
| Operação matemática, Ação na VCU, Valor para VCU | Gate de partida e Compensação de ETC | Mínimo 0; máximo 5 %; #03 |
- Tela do usuário: os campos de zona morta e ganhos do ar, ganho e limites da reserva de ar, entrada e saída da lenta pelo pedal, RPM mínimo e dreno, limiar do empurrão, decaimento pelo pedal e colchão, e 7 caixas de texto. No FuelTech Vision 3.0, um vetor vai para a tela inteiro, pela caixa Mostrar tabela na Tela do Usuário do bloco: marque-a nos vetores que o cliente precisa ajustar (alvo por temperatura, reserva de ignição, gates e curvas).
- Registro: Medida customizada #03 = compensação de ETC (%). #04 = compensação de ignição (graus). #05 = alvo de RPM.
- Adapte: (1) Só vale em carro com borboleta eletrônica: a lista de ações não tem ação para válvula de marcha lenta. (2) O controle de lenta nativo vem depois da compensação de ignição e pode substituir o total: no menu de controle de lenta, desligue só a chave de controle por ponto de ignição, mantenha o controle nativo ligado para a base de ar e copie o alvo da tabela nativa para o alvo desta função. Os dois alvos precisam ser o mesmo número. (3) Primeiro teste: com a ignição ligada e o motor parado, Medida customizada #03 e #04 devem ler 0,000, porque o gate de partida zera as duas abaixo de 400 rpm.