11. Diagnostics: symptoms and causes
This chapter links what you see in the log or on the vehicle to the probable cause, to the channel that confirms it and to what to change.
The channel GDI - Pressure error rail 1 is the target minus the filtered pressure: a positive error means the rail is below the target.
Values marked "field experience" come from field tuning: confirm them in your own log.
#Measurement rules
- Judge by the error and by the pulse in ms, not by the duty.
- The duty is the fraction of the window upper limit, not a PWM ratio: a wider window gives a lower duty for the same pulse.
- Compare maps by the GDI - Commanded pulse rail 1 in ms (the calculation of the pulse from the duty is in Reading the log).
- Saturation: read the four limit flags (GDI - Trim at limit rail 1, GDI - Angular upper limit (max Theta) rail 1, GDI - Lobe window upper limit rail 1 and GDI - Guard 1 trimming rail 1).
- With feed-forward on, a duty of 99% or more only indicates saturation when the Angled window upper limit is greater than or equal to the width.
- Flat-target window: the Fuel pressure rail target - HPFP channel is already smoothed when feed-forward is on.
- Break the error down only where the target varies little (field experience: less than 0.5 bar).
- Four metrics, in this order of veto (field experience): maximum pressure against the guard and the full scale (a margin of less than about 10 bar is a veto); peak to peak in a 1 s window; error tail (fraction of the time with an error above 15, 25 and 35 bar); only then median and saturation.
- The standard deviation alone is misleading.
- Classify the frequency before touching any gain (field experience): duty alternating between 0 and the ceiling; a 10 to 16 Hz cycle that scales with rpm; a peak at lobes × rpm ÷ 120 Hz (pump stroke); a frequency that is constant at every rpm.
- Use the error spectrum for each nearly constant rpm window. It only shows frequencies up to half the logging rate (see Reading the log).
- A phase cycle does not go away by cutting gain.
- Compare logs only from the same day and in the same rpm and consumption range.
- Measure the load by MAP or consumption, never by TPS.
- When you ask the customer for a log, ask for the condition (for example, a pull in a high gear, from 2500 to 4500 rpm, with positive MAP), not the duration.
- A channel at zero is not a real value: check a channel known to be alive in the same log (RPM, MAP) before concluding.
#Log state signatures
When duty and pulse make no sense, identify the pump state first.
| State | Duty and pulse | Effective window (opening / closing) | Other channels |
|---|---|---|---|
| Rail off | duty 0, pulse 0 ms | 0 / 0 | limit flags at 0; GDI - Overpressure cut rail 1 at 1 if it was Guard 2 |
| Start, valve held on | duty 100, pulse 0 ms | 0 / 0 | trim, feed-forward and error at 0 |
| Start, after the crank-out RPM and before the minimum pressure | duty and pulse greater than 0 with G(W) filled in; with G(W) at zero, the pulse comes from the frozen trim, the kick and the pressurization and can be 0 ms | valid | doubled feed-forward; limit flags can light up |
| Deceleration cut | duty 0, pulse 0 ms | opening equal to closing | consumption below 0.3 ms and pressure 10 bar above the target; trim freezes above 1400 rpm |
| Sensor safe mode (with feed-forward) | duty and pulse greater than 0 with G(W) filled in; with G(W) at zero, pulse 0 ms at steady state | valid | GDI - Rail 1 sensor fault and GDI - Rail 1 in limp-home at 1; trim 0 |
Without feed-forward, a sensor declared failed turns the pump off: the state is rail off.
#Start and pump with no delivery
| Symptom | Probable cause | What to check in the log | What to change |
|---|---|---|---|
| Duty fixed at 0 with the engine running; the pressure stays at low-side pressure | Rail off: invalid window, no sync or Guard 2 latched; or feed-forward on with G(W), Kp and Ki at zero | GDI - Rail 1 window: effective opening and GDI - Rail 1 window: effective closing at 0 / 0; Engine Sync; GDI - Overpressure cut rail 1; feed-forward and trim at 0; the map diagnostics list | Closing greater than opening and width less than 720 ÷ lobes (a window that crosses crankshaft 0°: add 720 ÷ lobes to both angles); fill in G(W) and the gains |
| No pump channel moves and the pressure does not rise | Rail output not assigned: the function does not start | Output (Rail #1) and Output (Rail #2) assigned; duty, window and pulse stuck | Assign the output, write the map and restart the VCU |
| Duty 0 with a normal effective window (opening equal to closing) | Pulse at zero: feed-forward plus trim less than or equal to zero, or deceleration cut | GDI - Commanded pulse rail 1 at 0; negative trim; GDI - Trim at limit rail 1 at 1; pressure above the target | G(W) too high or t0 too high; see the first row of High RPM and load |
| The rail does not rise at start and stays at low-side pressure | Wrong polarity; no sync; feed-forward off or sensor declared failed (no start routine); Guard 2 latched; output not assigned; weak low-side pressure or battery | Duty Rail #1 - HPFP at 100 while cranking; Engine Sync; DI Rail pressure #1; GDI - Rail 1 sensor fault; Fuel pressure; Battery voltage | Output behavior: write and restart the VCU. Check the output and the sensor (see Commissioning and tuning step by step) |
| The rail goes to full scale at the end of the start and crosses Guard 1 or Guard 2 | Guards above the sensor full scale or with no margin | DI Rail pressure #1 against the guards and the full scale; GDI - Overpressure cut rail 1 | Guard 1, latch and release below full scale: step 2 of Commissioning and tuning step by step |
| Rail good at start and, about 5 s later, it goes to full scale with the pulse falling (field experience) | Cam dependence using an invalid or non-zero deviation: the effective window jumps | Intake/Exhaust cam position ... leaving 0 at the instant the effective closing jumps | Cam dependence at None if the deviation is invalid. If it is valid, the typed angles apply to the cam at rest |
#Steady state: unstable pressure or off target
| Symptom | Probable cause | What to check in the log | What to change |
|---|---|---|---|
| Oscillation at a constant frequency (about 6 Hz) at every rpm, with the amplitude growing with rpm | Fixed gain against a pump response that grows with rpm | Spectrum of GDI - Pressure error rail 1 by window; Kp and Ki flat along the axis | Kp and Ki by rpm, lower above about 2500 rpm (field experience) |
| A 10 to 16 Hz cycle that scales with rpm | Loop delay (transport) | Error spectrum by window: frequency against rpm; cycle in a narrow band | Cut only the Kp at the rpm point of the band and keep the Ki (field experience) |
| Exact peak at lobes × rpm ÷ 120 Hz in the raw DI Rail pressure #1 channel (only with a logging rate above twice that frequency) | Mechanical ripple of the pump stroke | Does the peak appear in GDI - Pressure error rail 1? The loop uses the filtered pressure | Act only if the ripple reaches the error or the trim; then adjust the sensor filter (note below) |
| Duty alternating between 0 and the ceiling, with an amplitude that grows with rpm | G(W) at zero at the operating W: the feed-forward stays near 0 and the PID does everything | GDI - Feedforward rail 1 near 0; large trim; maximum W of the log against the last point of the G(W) axis | Extend the W axis up to the maximum W of the log; fill in G(W) from the trim after the gains are stable |
| Trim at the limit about 50% of the time with the map already calibrated, touching both sides | G(W) wrong, trim floor, or a Kp that saturates the trim by itself | GDI - PID trim rail 1 by rpm range (field target: ±0.25 ms); GDI - Trim at limit rail 1 | Correct G(W); adjust Trim floor: feedforward fraction; reduce the Kp where it saturates by itself |
| Pressure above the target for seconds when you lift the pedal, with trim at the floor and duty 0 | The pump only fills: what relieves the pressure is the consumption of the injectors, and the deceleration cut already zeroes the pulse | Prolonged negative error; GDI - Commanded pulse rail 1 at 0; injection time below 0.3 ms | Do not touch the G(W) cells. Use a flatter target in the vacuum region |
| With 2 rails, one rail with a trim always larger than the other | The feed-forward is common to both rails; only the trim corrects the difference | GDI - PID trim rail 1 against GDI - PID trim rail 2 | Accept the trim as the correction of the asymmetry: splitting the banks between the rails does not change the feed-forward |
Pressure sensor filter: with Input sensor set to Default the VCU uses a fixed 10 Hz filter (Q 0.6, 7-point average) and does not apply the Digital filter group of the screen; it only applies in Custom (field experience: Filter frequency 50 Hz, Q factor 0.6 and Average points 7).
Field experience: a tight filter (12 Hz) is associated with a cycle of about 6 Hz in the loop. With this cycle, check the filter before the gains.
Two rails that drop together to low-side pressure: first check the supply and the valve driver (field experience) and, in the log, Engine Sync and the overpressure cut of both rails, before touching the control.
#High RPM and load
| Symptom | Probable cause | What to check in the log | What to change |
|---|---|---|---|
| Pressure stuck at a constant value above the target (looks like a dead sensor), trim at the negative floor, pulse near t0 or at 0, error growing with rpm | t0 floor: the smallest non-zero pulse is t0, and it takes up more degrees at each rpm | GDI - Commanded pulse rail 1 near t0 or in blocks of zero. If the pressure drops when the consumption rises, the sensor is alive | Reduce t0, last and on its own (field experience) |
| The duty alternates between 0 and a high value from a well-defined rpm, the same one at which the VVT target leaves 0 | The window shifts with the cam deviation (Cam dependence on) | GDI - Rail 1 window: effective closing against Intake/Exhaust cam position ..., 1 to 1 with the sign reversed | Control: zero the VVT target of that cam. If the problem goes away, the trigger is the VVT, not the feed-forward or the gain |
| Pressure is lacking (sustained positive error) with the pulse at the ceiling or the trim against the limit | Lack of authority: the window, the angular limit or the trim limit the command | GDI - Lobe window upper limit rail 1, GDI - Angular upper limit (max Theta) rail 1 and GDI - Trim at limit rail 1 | Window: widen it by the opening if there is margin up to the guard (field experience: more than 10 bar). Angular limit: raise it up to the width. Trim: fill in G(W), then raise PID maximum trim |
| The rail rises with the commanded pulse at 0 above a certain rpm; at a lower rpm, with the same zero, it drops (field experience) | The pressure rises even with the command at zero, and the loop cannot command less than zero | GDI - Commanded pulse rail 1 at 0 with the pressure rising; feed-forward plus trim near zero | On the first test, limit the rpm below that point. Guard 2 acts by cutting the pump command, so with the commanded pulse already at 0 it cannot lower the pressure. Reduce t0 and redo G(W) until feed-forward plus trim is above 1 ms, and repeat. If it persists, keep the log and the map and contact FuelTech technical support, with the FuelTech Vision and firmware versions. |
#Sensor, protections and cuts
| Symptom | Probable cause | What to check in the log | What to change |
|---|---|---|---|
| Pressure pinned at an exact value (that of the last point of the sensor table) while the pulse changes | Sensor saturated at the last point of the table; guards and target above it never act (except Guard 2 through the condition target plus 20 bar, with the release below full scale) | DI Rail pressure #1 constant at the last point; if it follows the consumption, the sensor is alive | Correct the conversion table (real full scale); target and guards below it |
| Alert "GDI: rail pressure sensor fault"; rail in safe mode | Harness, connector, noise (reading jump greater than 20 bar) or signal above 4.95 V | GDI - Rail 1 sensor fault and GDI - Rail 1 in limp-home, and those of rail 2 (the alert applies to both) | Repair the sensor or harness. The pump comes back by itself after 2 s of good signal |
| Maximum pressure near Guard 1 or 2; overpressure cuts in cycles | Window too wide or gain too high; t0 high; low sensor full scale; pressure rising with the command at zero | Maximum DI Rail pressure #1; GDI - Guard 1 trimming rail 1; GDI - Overpressure cut rail 1 (number of cycles) | Do not open the window further; lower the target at high rpm; see the row of the rail that rises with pulse 0 |
| The engine misfires in blocks and the injection time of the bank goes to 0 | Low-pressure cut acting (the injectors only come back above the limit plus 2 bar) or start lockout | Injection time of the bank (for example, Injection time B) at 0 with DI Rail pressure #1 below the limit plus 2 bar | Limit below the lowest operating pressure and the lowest target; measure the minimum with the engine turning before enabling the cut |
The behavior of the injector cut and of Guard 2 is in Cranking and protections.