FuelTech ManualsGlossarySearch

9. Examples

Version 1.1Software: FuelTech Vision 3.0Products: FT700, FT470, VisionFT2026-10-13

The seven examples, in increasing order of size, are models to study and starting points: adjust the values to your vehicle, test with the engine off (step 9) and confirm in the log (step 10) before using one in a car. Each example is independent of the others. Added together, they exceed the map's memory limit and use the same log channels: install one at a time or renumber the Custom measurement entries.

ExampleBlocksWorking (of 512 B)Configuration (of 2048 B)
Fan on/off by temperature520 B38 B
Output by RPM and TPS1044 B71 B
Acceleration enrichment by derivative17100 B350 B
Solenoid current control30144 B237 B
Timed single pulse38212 B324 B
Deceleration fuel cut46292 B478 B
Idle by torque reserve62312 B902 B

In the tables, the blocks appear in signal order and with the type name, as in the menu. In your map, use the names you gave in step 7. Examples 3 to 7 change the fuel injection and command a solenoid, an actuator, a fuel cut and the throttle: read the warning of each before testing.

The User screen line of each example says what to expose to the end customer, following the policy in the User screen chapter: channels, outputs and the VCU action limits stay hidden.

#Fan on/off by temperature

Turns a fan on when the temperature goes above one limit and only turns it off when it falls below another, lower one, so that it does not keep turning on and off right at the limit.

Example graph: Fan on/off by temperature. The Hysteresis drives the output and records the state; the temperature read also goes to the log.
Example graph: Fan on/off by temperature. The Hysteresis drives the output and records the state; the temperature read also goes to the log.
Example 1 in FuelTech Vision: Engine temperature feeds the Fan hysteresis, which drives the Fan output and records the Fan state.
Example 1 in FuelTech Vision: Engine temperature feeds the Fan hysteresis, which drives the Fan output and records the Fan state.
Block on screenRole in the exampleMain value or setting
VCU valueReads the temperatureVCU data: Engine temperature
HysteresisTurns on above the upper limit and off below the lower limitUpper limit 95 °C and lower limit 90 °C (example values)
On/off outputDrives the fanOutput: Custom function #1 output
Value for VCU (2)Records the state and the temperature readCustom measurement #03 and #04
User screen tab of example 1: the Turns on above (95) and Turns off below (90) fields and a text box.
User screen tab of example 1: the Turns on above (95) and Turns off below (90) fields and a text box.

#Output by RPM and TPS

Drives an output only when the engine speed goes above a value and the throttle goes above an opening. It serves as a base for any output that depends on two conditions.

Example graph: Output by RPM and TPS. Two Switch blocks compare TPS and RPM with their limits; the Logic only turns the output on when both are 1.
Example graph: Output by RPM and TPS. Two Switch blocks compare TPS and RPM with their limits; the Logic only turns the output on when both are 1.
Block on screenRole in the exampleMain value or setting
VCU value (2)Reads opening and engine speedTPS and Engine RPM
Fixed value (4)True result, false result and the two limits1; 0; 50; 5000
Switch (TPS)Is 1 if the TPS goes above the limitMode Above; upper limit 50
Switch (RPM)Is 1 if the engine speed goes above the limitMode Above; upper limit 5000
LogicIs 1 only if both Switch blocks are 1Operation AND
On/off outputDrives the outputCustom function output of your choice

#Acceleration enrichment by derivative

Injects extra fuel on a quick pedal press (tip-in), proportional to the speed at which the throttle opens, with a smooth decay and scaled by load and by engine temperature.

Example graph: Acceleration enrichment by derivative. The derivative of the source becomes enrichment, decays, is scaled by load and temperature and enters the VCU action only with the engine running.
Example graph: Acceleration enrichment by derivative. The derivative of the source becomes enrichment, decays, is scaled by load and temperature and enters the VCU action only with the engine running.
Block on screenRole in the exampleMain value or setting
VCU valueTip-in sourceTPS (default) or Pedal pos.
DerivativeOpening speed, in % per secondFilter factor 0.15
Vector 1x8 (attack)Turns the derivative into enrichment (%)Axis −100 to 600; values −20 to 120
EMA filterMakes the enrichment decayAlpha 0.005
Math operationMaximum of the attack and the decayOperation Maximum
Table 4x4 (load)Multiplier by RPM and MAPRPM 1000 to 8000; MAP −0.8 to +0.4 bar; cells 0 to 1.2
Math operationApplies the loadMultiply
Vector 1x8 (temperature)Multiplier by engine temperature−10 to 100 °C; 3.0 to 1.0
Math operationApplies the temperatureMultiply
Fixed value, SwitchOnly lets it through with the engine runningMode Above; 400 rpm
VCU actionFuel injection compensation, in %Minimum −30; maximum 350
Value for VCU (2)Records the derivative and the correction appliedCustom measurement #01 and #02

#Solenoid current control

Keeps the current of a proportional coil at the value requested by a 0 to 100% command, through a PWM output, with feedback from the measured current.

Example graph: Solenoid current control. The command becomes the target current; the PID and the feedforward form the duty, which receives the dither and drives the PWM output.
Example graph: Solenoid current control. The command becomes the target current; the PID and the feedforward form the duty, which receives the dither and drives the PWM output.
Block on screenRole in the exampleMain value or setting
VCU value, Limiter, Fixed value (2), Math operation (2)Command from 0 to 100% becomes target currentTarget = command ÷ 100 × maximum current; maximum current 2.0 A
VCU valueReads the measured currentYellow #1 and 2# current (written this way on the screen), in A
EMA filterFilters the measured currentAlpha 0.5
Fixed value (3)Proportional (Kp), integral (Ki) and derivative (Kd) gains of the PID20; 1000; 0
PIDCompares the target with the measurement and correctsLoop time 1; anti windup 0.1
Fixed value, VCU value, Math operation (3)Feedforward: duty the target would demand by itselfTarget × resistance ÷ Battery voltage × 100; resistance 5 ohms
Math operationAdds the feedforward and the PID correctionAdd
Fixed value (2), Math operation, Cyclic timerDither: adds to the duty a square wave of +5 and −5Amplitude 5%; 7 ms on and 7 ms off
Math operationAdds the dither to the dutyAdd
LimiterKeeps the duty between 0 and 100%0 to 100
SwitchZeroes the duty if the command falls below the thresholdMode Below; threshold 0.5%
PWM outputDrives the coilFrequency 1000 Hz, from a Fixed value
On/off outputKeeps the pair's second output offInput 0
Value for VCURecords the filtered currentCustom measurement #03

#Timed single pulse

Turns an output on only once per launch, for a fixed time, after a valid launch, triggered by a quick lift off the throttle pedal or by a button. It only re-arms when the launch stops being valid.

Example graph: Timed single pulse. The time since the launch opens the windows of the two triggers; the SR Latch latches the trigger and a Delay forms the pulse of the On/off output.
Example graph: Timed single pulse. The time since the launch opens the windows of the two triggers; the SR Latch latches the trigger and a Delay forms the pulse of the On/off output.
Block on screenRole in the exampleMain value or setting
VCU value (3)Reads the launch, the TPS and the buttonValidated launch, TPS, 2-step button
Logic (NOT), IntegratorCounts the seconds since the valid launch and resets when it stops being validGain 1; reset by the invalid launch
Switch (2), Logic (2, AND)Window of each trigger, combined with its on/offTPS from 2.0 to 10.0 s; button from 1.0 to 10.0 s
Switch (Above), Delay (Off-Delay)TPS went above 70% a moment ago70%; 0.25 s
Switch (Below), Delay (On-Delay)TPS below 20% for a short time, to discard an isolated reading20%; 0.03 s
Logic (AND)Quick lift-off: was above 70% and is below 20%
Delay (On-Delay)Debounces the button0.03 s
Logic (3: AND, AND and OR)Trigger 1, trigger 2 and firing request (one or the other)
SR LatchLatches the trigger and only releases with the invalid launchPriority Set; threshold 0.5
Derivative, Switch (Above)Edge detector: is 1 only in the run in which the latch risesFilter factor 0; limit 1
Delay (Off-Delay)Stretches the pulse0.5 s
On/off outputDrives the actuatorCustom function #1 output
Logic (OR), Math operation (3), Value for VCU (2)State code and quick lift-off, in the logCustom measurement #03 and #04

#Deceleration fuel cut

Cuts the injection (deceleration fuel cut-off, DFCO) when the driver lifts off the pedal at high RPM and with engine-braking vacuum. The cut comes in as a ramp and the return is smoothed by ignition and by a short enrichment.

Example graph: Deceleration fuel cut. The conditions combine into an armed signal that drives the cut ramp; the opposite signal drives the ignition and enrichment ramps for the return.
Example graph: Deceleration fuel cut. The conditions combine into an armed signal that drives the cut ramp; the opposite signal drives the ignition and enrichment ramps for the return.
Block on screenRole in the exampleMain value or setting
VCU value (6)Reads engine speed, pedal, temperature, MAP, speed and clutchEngine RPM, Pedal pos., Engine temperature, MAP, Speed, Clutch button
Vector 1x8Released-pedal threshold, by RPM0 to 15% from 0 to 7000 rpm; 2% at 1000 and 2000 rpm
Switch (5)Pedal released, engine warm, vacuum, speed and clutch releasedTemperature above 60 °C; MAP below −0.45 bar; speed above −1 (disabled); button below 0.5
Switch (2), SR LatchEngine speed hysteresis: allows the cut above one engine speed and releases below another1800 rpm and 1500 rpm; Priority Reset
Math operation (5, Minimum)Chained AND: is 1 only if the six conditions are 1
Delay (On-Delay)Grace period: only arms the cut if the conditions hold for 0.1 s in a row0.1 s; if the condition drops earlier, the count is canceled
RampCut entry: rises from 0 to 100%1000 ms; Rearm below: 0.5
Math operation (Multiply)Zeroes the cut as soon as the armed signal dropsRamp output × armed
VCU actionFuel injection cut, level from 0 to 100%Minimum 0; maximum 100
Math operationOpposite of the armed signalSubtract: 1 minus armed
Ramp, Math operationIgnition on return, only with the pedal released−10 degrees returning to 0 in 800 ms
VCU actionIgnition compensationMinimum −15; maximum 0 degrees
Ramp, Math operationEnrichment on return, only with the pedal released25% returning to 0 in 1000 ms
VCU actionFuel injection compensationMinimum 0; maximum 30%
Value for VCU (4)Records the cut and the compensationsCustom measurement #03 to #06

#Idle by torque reserve

Holds idle at the RPM target with two actuators: the ignition, which is fast and works with a few degrees of reserve, and the air from the electronic throttle, which is slow. It is the most complete example: it serves as a case study, and the table shows the drawing in groups of blocks.

Example graph: Idle by torque reserve. The RPM error feeds the ignition and the air; the "out of idle" state releases or freezes each part, and engine start only releases the actions above 400 rpm.
Example graph: Idle by torque reserve. The RPM error feeds the ignition and the air; the "out of idle" state releases or freezes each part, and engine start only releases the actions above 400 rpm.
Block on screenRole in the exampleMain value or setting
VCU value (3), Fixed value (3)Inputs and constants 0, 1 and 0.5Engine temperature, Engine RPM, Pedal #1
Vector 1x4, Value for VCURPM target by temperature, recorded1110, 985, 960, 960 rpm at 20, 50, 70, 90 °C; #05
Low pass filterFilters the RPMFrequency 4 Hz; Q factor 0.707
Math operationError = target − filtered RPMSubtract
Vector 1x8, Math operation (4), Vector 1x4Ignition: error curve in degrees, separation of advance and retard, retard that fades out at high RPMReserve −8 degrees; maximum retard −15; maximum advance +2; full retard up to 1300 and zero above 1800 rpm
Switch (2), SR Latch, Fixed value (2)"Out of idle": enters idle with the pedal below 1% and leaves with the pedal above 2%Priority Set
Switch, Vector 1x4, Math operation, VCU action, Value for VCUZeroes the ignition outside idle, releases between 400 and 600 rpm and applies the Ignition compensationMinimum −15; maximum +15 degrees; #04
Vector 1x8, Deadband, Vector 1x4, Switch, Math operation (2), Fixed value (2)Air: error curve into rate, deadband and asymmetric gainDeadband ±2; open 3; close 1.2
Integrator, Switch (2), Fixed value (2)Air reserve: integrates the rate, freezes outside idle and drains with the engine stoppedGain 0.02; limits 0 and 3%; minimum RPM 400; drain −200
Vector 1x8, Switch, Fixed value, Math operationAir push when the RPM error is largeThreshold 300 rpm; maximum 3%
Integrator, Vector 1x8, Fixed value (2), Math operation (6)Cushion: extra initial opening used up slowly near the target, only at idleOpening 1.5%; decay 0.25% per second
Math operation (5), Fixed valueAir decay as the pedal goes above 1%0.5 per % of pedal
Math operation, VCU action, Value for VCUStart gate and ETC compensationMinimum 0; maximum 5%; #03