Detect Misfires Using On-Board Diagnostics
This example shows how to implement onboard-diagnostics (OBD) and detect engine misfires. The example uses Powertrain Blockset™ and AUTOSAR Blockset to introduce, detect, mature, and report misfire events from the SI Core Engine.
On the Simulation tab, click Run. As the simulation runs, the Diagnostic Probe output displays trouble codes appear. P0300 is a general warning for a misfire issue in one or more cylinders. P0303 indicates a specific misfire issue with Cylinder 3.
Diagnostic Service Component
The Diagnostic Service Component (AUTOSAR Blockset) configures the AUTOSAR Diagnostic Event Manager (Dem) service functions. The Diagnostic Event manager associates the client ports for engine events, including cylinder misfires, to diagnostic Event IDs.
The Diagnostic Probe model reference uses DiagnosticInfoCaller (AUTOSAR Blockset) blocks to call AUTOSAR Dem service functions. The Get Status blocks get the diagnostic status for the four engine cylinders. The Get Counter blocks get the fault detection counter for the engine cylinders.
ECU With TPU and Diagnostics
This subsystem detects misfire events, using crankshaft acceleration as an indicator. Navigate to autoblkSICoreOBDMisfire > ECU_With_TPU_and_Diagnostics > TPU Level Misfire Detection. Open the Diagnosis Parameters block. You can modify the OBD threshold calibrations for detection and maturation.
OBD Breakout Box
This subsystem defines misfire events to inject into the simulation. Navigate to autoblkSICoreOBDMisfire > OBD Breakout Box > Injector Pulsewidth Fault Injection. Open the Misfire Events block. You can modify the misfire fault injection timing.
Engine Plant With Sensors and Actuators
The SI Core Engine computes cylinder pressure as a function of crank angle. The Crank VRS Sensor and Measurement Circuit simulates the 58-tooth wheel that tracks the progression of the 4-stroke engine cycle.
Open the Cranktrain block to modify the engine cranktrain geometry and dynamics.