Misfire Algorithm Processing
The Misfire Monitor divides two rotations of the crankshaft into 16 half-segments, each 45 degrees of crankshaft rotation. The crankshaft speed shows increases due to combustion of fuel in the cylinder followed by decreases due to friction and other forces between cylinder firing events. The location of the half-segments is chosen such that for each cylinder one half-segment contains the majority of the higher crankshaft speed values (the "high" half segment) and the other half-segment the majority of the lower crankshaft speed values (the "low" half-segment). The range of crankshaft speed within each half-segment is averaged. The sum of the eight low half-segment speeds is subtracted from the sum of the eight high half-segment speeds and the result divided by eight to get an average increase in speed due to combustion. The Misfire Monitor then calculates the difference between the high and low half-segments for a specific cylinder combustion event and increments a misfire counter for the firing cylinder if this value is less than 20% of the average increase in speed due to combustion described above.
The Misfire Monitor collects blocks of data consisting of 20 crankshaft rotations. Upon achieving the correct entry conditions for the Misfire Monitor as described below, the first block of 20 rotations is discarded to ensure stable idle operation. All subsequent blocks of data are counted unless vehicle conditions change such that the entry conditions are no longer satisfied. In this case, any data in the current partial block are discarded, along with the data from the block immediately prior, as stable idle cannot be ensured for these data. The Misfire Monitor completes once 50 valid blocks (1000 crankshaft revolutions) have been collected, and a fault is reported if a cylinder shows 350 or more misfire events (out of 500 possible combustion events) in this time.
Certain engine operating parameters are monitored to ensure misfire operates in a region that yields accurate misfire results. The table below outlines the entry conditions required for executing the misfire monitor algorithm.
| DTCs | P0300 - Random Misfire Detected P0301 - Cylinder 1 Misfire Detected P0302 - Cylinder 2 Misfire Detected P0303 - Cylinder 3 Misfire Detected P0304 - Cylinder 4 Misfire Detected P0305 - Cylinder 5 Misfire Detected P0306 - Cylinder 6 Misfire Detected P0307 - Cylinder 7 Misfire Detected P0308 - Cylinder 8 Misfire Detected |
| Monitor Execution | Continuous, at idle |
| Monitor Sequence | None |
| Sensors OK | Engine Coolant Temperature (ECT), Vehicle Speed (VSS), Crankshaft Position Sensor (CKP) Injector Faults, Injector Bank Faults |
| Monitoring Duration | 1000 revs |
| Entry Condition | Minimum | Maximum |
| Engine Speed (Idle) | 500 rpm | 1150 rpm |
| Engine Coolant Temperature (ECT) | -7 deg C | |
| Vehicle Speed (VSS) | <= 2 km/hr | |
| Total fuel mass | 2.0 mg/stroke | 40.0 mg/stroke |