SIMK43 Ignition Strategy
This document describes the ignition-angle and ignition-torque model implemented in the Siemens SIMK43 ca663056 calibration.
It documents how the ECU calculates its Reference and Basic ignition angles, applies operating-condition corrections, represents ignition retard as a torque-efficiency quantity, converts torque requests into ignition-angle requests, incorporates knock control, applies the minimum allowable ignition angle, and determines the final spark angle independently for each cylinder.
Index
General Architecture
SIMK43 does not use a simple strategy consisting of one main ignition map followed by a small number of corrections.
Ignition timing is integrated directly into the engine torque model.
The ECU maintains two principal ignition-angle references:
- Reference ignition angle
- Basic ignition angle
The Reference angle represents the ignition timing used by the torque model as its reference point.
The Basic angle represents the normal operating ignition-angle path.
These two paths are corrected independently before entering the torque and final-spark calculations.
The overall structure is:
ENGINE OPERATING POINT
RPM / Load / Temperature / Lambda / VVT
|
+-----------+-----------+
| |
v v
IGA_REF map IGA_BAS map
0x15CA5 0x158ED
| |
v v
Reference corrections Basic corrections
| |
v v
IGA_REF_COR IGA_BAS_COR
| |
| +-------+-------+
| | |
| v v
| Average knock Per-cylinder
| correction knock correction
| |
| v
| Basic + Avg Knock
| |
+-------+-------+
|
v
Ignition efficiency model
|
v
Torque coordinator
|
v
Requested ignition angle
|
+-------------------+
|
Basic + cylinder knock ------------------+
|
Minimum allowable ignition -------------+
|
v
FINAL PER-CYLINDER SPARK
|
v
Final average ignition
|
v
Ignition efficiency
|
v
Torque model feedback
The important point is that ignition timing serves two purposes simultaneously:
- It determines the actual combustion phasing of the engine.
- It acts as a fast torque-control actuator.
The ignition model therefore has to describe both the physical spark angle and the amount of torque that is expected from that spark angle.
Ignition-Angle Conventions
Ignition angle is expressed in crankshaft degrees.
Throughout this document:
IGA
means ignition angle.
degCRK
means crankshaft degrees.
A more advanced spark angle is numerically further toward the advanced direction.
A retarded angle is later relative to the Reference ignition angle.
SIMK43 commonly represents ignition torque loss using a positive retard difference from the Reference angle.
The fundamental relationship is:
IGA_DIF = IGA_REF_COR - IGA
Therefore:
IGA_DIF = 0 deg
means that the current ignition angle is equal to the corrected Reference angle.
A larger positive IGA_DIF means that spark has been moved further away from Reference in the retard direction.
Conceptually:
IGA_REF_COR
|
| 0 deg retard
v
Reference spark
|
| Increasing IGA_DIF
v
More retarded spark
|
v
Lower ignition torque efficiency
Engine Operating Point
The principal ignition maps operate primarily as functions of:
- engine speed
- cylinder air charge
Cylinder air charge is expressed in:
mg/stk
The load quantity is therefore the same cylinder-charge state produced by the SIMK43 airflow/load model.
The basic relationship is:
Engine speed
+
Cylinder air charge
|
v
Ignition base maps
Additional operating conditions modify the resulting ignition angles.
These include functions related to:
- intake-air temperature
- coolant temperature
- lambda
- ambient pressure
- valve timing
- transient operation
- knock control
- exhaust temperature protection
Reference Ignition Angle
The principal Reference ignition-angle map is:
IGA_REF
Address:
0x15CA5
It is a 16 x 12 map indexed by:
- engine speed
- cylinder air charge
Its output is:
degCRK
Functionally:
IGA_REF = f(RPM, MAF_CYL)
The Reference ignition angle is not simply another normal operating spark map.
It establishes the ignition angle that the ECU uses as the reference point for ignition-related torque calculations.
Conceptually:
RPM
+
Cylinder load
|
v
IGA_REF
0x15CA5
|
v
Reference ignition angle
The Reference angle represents the theoretical or reference torque-producing spark angle used by the ECU's ignition-efficiency model.
It therefore acts as the zero-retard reference for the torque calculation.
Reference Ignition Corrections
The Reference ignition path contains additional corrections that modify the base Reference map before it is used by the torque model.
Identified ca663056 calibrations include:
IP_IGA_REF_TEMP
Address:
0x15D6D
This provides a temperature-related correction to the Reference ignition path.
Another identified correction is:
IP_IGA_REF_OFS_IVVT
Address:
0x1942C
This provides a VVT-related Reference ignition offset as a function of engine speed and cylinder load.
The functional structure is therefore:
IGA_REF | +---- Temperature influence | +---- IVVT influence | +---- Other operating-state corrections | v IGA_REF_COR
The corrected Reference angle becomes the zero point used by the ignition-efficiency calculations.
Basic Ignition Angle
The principal Basic ignition-angle map is:
IGA_BAS
Address:
0x158ED
It is also a 16 x 12 map indexed by:
- engine speed
- cylinder air charge
Its output is:
degCRK
Functionally:
IGA_BAS = f(RPM, MAF_CYL)
The Basic ignition angle represents the normal operating ignition path.
Conceptually:
RPM
+
Cylinder load
|
v
IGA_BAS
0x158ED
|
v
Basic operating ignition angle
The Basic map does not have to be identical to the Reference map.
In many operating regions, Basic can be intentionally more retarded than Reference.
The difference between them forms part of the ECU's available ignition torque reserve.
Basic Ignition Corrections
The Basic ignition path contains a larger set of operating-condition corrections.
Identified calibrations include:
IP_IGA_BAS_OFS_IVVT
Address:
0x193EC
This provides a VVT-dependent offset to Basic ignition timing.
IP_IGA_BAS_TEMP
Address:
0x15A95
This provides a temperature-related Basic ignition correction.
IP_IGA_BAS_TEMP_FAC
Address:
0x15AD5
This provides an additional temperature-dependent correction factor.
IP_IGA_BAS_AMP_COR
Address:
0x159AD
This provides an ambient-pressure-related Basic ignition correction.
IP_IGA_BAS_LAMB
Address:
0x159CD
This provides an additive ignition correction associated with lambda setpoint.
The functional Basic path can therefore be represented as:
IGA_BAS | +---- IVVT correction | +---- Temperature correction | +---- Ambient-pressure correction | +---- Lambda correction | +---- Transient / operating-state corrections | v IGA_BAS_COR
The resulting corrected Basic angle is the normal ignition candidate before torque intervention and per-cylinder knock correction are applied.
Ignition Torque Reserve
The corrected Reference and Basic ignition angles define an important torque-control quantity.
Conceptually:
Ignition torque reserve = IGA_REF_COR - IGA_BAS_COR
If Basic is more retarded than Reference, the ECU has the ability to increase engine torque rapidly by advancing ignition timing toward Reference.
Example:
IGA_REF_COR = 30 deg IGA_BAS_COR = 24 deg Reserve = 6 deg
The Basic engine operating point is therefore 6 degrees behind the Reference angle.
The ECU can move toward the Reference angle without waiting for a large air-path change.
Conceptually:
More retarded More advanced
IGA_BAS_COR -----------------------------> IGA_REF_COR
| |
Normal operating Reference torque
spark spark
| |
+------------ Torque reserve --------------+
Ignition therefore provides a very fast torque-control mechanism.
Knock-Control Integration
Knock control operates in parallel with the normal Basic ignition path.
SIMK43 maintains both:
- an average knock correction
- individual per-cylinder knock corrections
These have different roles in the ignition model.
The average knock correction is used when calculating the torque efficiency associated with the Basic ignition path.
The individual cylinder corrections are applied later when determining the actual final ignition angle of each cylinder.
The structure is therefore:
IGA_BAS_COR
|
+-----------+-----------+
| |
v v
Average knock Per-cylinder knock
correction corrections
| |
v |
Basic torque-efficiency |
calculation |
v
Final cylinder spark
This separation allows the torque model to account for the overall torque loss caused by knock retard while still applying the necessary protection independently to each cylinder.
Basic Ignition Angle with Average Knock
For the torque model, the corrected Basic angle is combined with the average knock correction.
Conceptually:
IGA_BAS_KNK = IGA_BAS_COR + IGA_KNK_AVG
A knock correction in the retard direction moves the effective Basic angle later.
The ECU then calculates the retard difference between Reference and the knock-corrected Basic angle:
IGA_DIF_BAS = IGA_REF_COR - IGA_BAS_KNK
Negative retard differences are not physically required for the normal efficiency calculation, so the effective difference is constrained to the valid retard region.
Conceptually:
IGA_DIF_BAS =
max(
IGA_REF_COR - IGA_BAS_KNK,
0
)
This difference is then converted into Basic ignition torque efficiency.
Ignition Efficiency Model
SIMK43 represents the effect of spark retard on torque using an ignition-efficiency model.
The principal calibration is:
IPM_EFF_IGA
Address:
0x14FD4
Definition:
EFF_IGA = f(IGA_DIF)
where:
IGA_DIF
is spark retard relative to corrected Reference ignition.
The fundamental calculation is:
IGA_DIF = IGA_REF_COR - IGA
followed by:
EFF_IGA = IPM_EFF_IGA(IGA_DIF)
Conceptually:
Current ignition angle
|
v
Reference - Current
|
v
Ignition retard
[degCRK]
|
v
IPM_EFF_IGA
0x14FD4
|
v
Ignition torque efficiency
When:
IGA = IGA_REF_COR
then:
IGA_DIF = 0
and ignition efficiency is approximately unity.
As ignition is retarded further from Reference, ignition efficiency decreases.
Meaning of Ignition Efficiency
Ignition efficiency represents the fraction of Reference torque that the ECU expects to remain after ignition retard.
Conceptually:
EFF_IGA = 1.0
means approximately full Reference ignition torque.
A lower value means the ECU expects less torque because combustion has been deliberately phased later.
For example, conceptually:
Reference spark
IGA_DIF = 0
EFF_IGA approximately 1.0
|
v
Small retard
IGA_DIF increases
EFF_IGA decreases
|
v
Large retard
IGA_DIF increases further
EFF_IGA decreases further
The efficiency model therefore converts an ignition-angle difference into a torque-domain quantity.
Basic Ignition Torque Efficiency
The Basic ignition path is converted into a torque-efficiency value using the average knock-corrected Basic angle.
The functional sequence is:
IGA_BAS_COR
|
v
Add average knock correction
|
v
IGA_BAS_KNK
|
v
IGA_REF_COR - IGA_BAS_KNK
|
v
IGA_DIF_BAS
|
v
IPM_EFF_IGA
0x14FD4
|
v
EFF_IGA_BAS
Mathematically:
IGA_BAS_KNK = IGA_BAS_COR + IGA_KNK_AVG
IGA_DIF_BAS =
max(
IGA_REF_COR - IGA_BAS_KNK,
0
)
EFF_IGA_BAS = IPM_EFF_IGA(IGA_DIF_BAS)
This means knock retard is fed back into the torque model.
If knock control retards ignition, the ECU does not continue assuming that the engine is producing the same torque.
The reduced spark efficiency is reflected in the calculated torque state.
Torque Coordinator and Requested Ignition Efficiency
The torque coordinator does not have to request a particular spark angle directly.
Instead, it can express the required ignition intervention as a requested ignition efficiency.
Conceptually:
Requested engine torque
|
v
Torque coordination
|
v
Requested ignition efficiency
|
v
EFF_IGA_SP
A requested efficiency near unity requires ignition close to the Reference angle.
A lower requested efficiency requires additional spark retard.
This creates a clean relationship between the torque-control system and the ignition system:
Torque request
|
v
Required torque fraction
|
v
Requested ignition efficiency
|
v
Required spark retard
Inverse Ignition-Efficiency Model
The ECU contains an inverse calibration that converts requested ignition efficiency back into the spark retard required to produce that efficiency.
The calibration is:
IP_IGA_DIF_SP
Address:
0x15BED
Its functional relationship is:
IGA_DIF_TQ_REQ = IP_IGA_DIF_SP(EFF_IGA_SP)
The structure is:
Requested ignition efficiency
|
v
IP_IGA_DIF_SP
0x15BED
|
v
Required retard from Reference
|
v
IGA_DIF_TQ_REQ
This is effectively the inverse of the forward ignition-efficiency model.
Forward:
Ignition retard
|
v
IPM_EFF_IGA
|
v
Ignition efficiency
Inverse:
Requested ignition efficiency
|
v
IP_IGA_DIF_SP
|
v
Required ignition retard
Torque-Requested Ignition Angle
Once the required retard from Reference has been calculated, the ECU converts it back into an absolute ignition angle.
The relationship is:
IGA_TQ_REQ = IGA_REF_COR - IGA_DIF_TQ_REQ
The complete torque-request path therefore becomes:
Torque request
|
v
Requested ignition efficiency
|
v
IP_IGA_DIF_SP
0x15BED
|
v
Required retard from Reference
|
v
IGA_REF_COR - retard
|
v
IGA_TQ_REQ
This ignition angle represents the spark timing required by the torque coordinator.
Relationship Between Basic and Torque-Requested Spark
At this stage the ECU has at least two important ignition candidates.
The first is the normal operating path:
IGA_BAS_COR + cylinder knock correction + additional cylinder-specific corrections
The second is the torque-control path:
IGA_TQ_REQ
The torque coordinator must be able to reduce torque relative to the Basic path.
Therefore, under normal torque-reduction operation, the more retarded of the two candidates is selected.
Conceptually:
Basic / knock candidate -----+
|
v
Select later
spark angle
^
|
Torque-request candidate ----+
This allows torque intervention to retard spark below the normal Basic ignition request.
If no additional torque reduction is required, the Basic path remains dominant.
Ignition Torque Feedback Loop
The complete ignition-torque relationship therefore forms a closed loop.
The forward physical model is:
Actual spark retard
|
v
IPM_EFF_IGA
|
v
Actual ignition efficiency
|
v
Calculated engine torque
The inverse control model is:
Requested torque
|
v
Requested ignition efficiency
|
v
IP_IGA_DIF_SP
|
v
Required spark retard
|
v
Requested ignition angle
The final spark calculation then determines what angle is actually used.
That result is converted back into ignition efficiency and returned to the torque model.
Conceptually:
Torque request
|
v
Requested efficiency
|
v
Required retard
|
v
Requested spark
|
v
Final arbitration
|
v
Actual spark
|
v
Actual efficiency
|
v
Torque model
Ignition timing is therefore both an actuator and a feedback quantity within the torque-control system.
Minimum Ignition Angle
SIMK43 also calculates a minimum permissible ignition angle.
The main ca663056 calibration involved in this path is:
Base Minimum Ignition Angle Difference
Address:
0x15B1D
It is a 16 x 12 map indexed by:
- engine speed
- cylinder air charge
This calibration participates in the calculation of the minimum ignition-angle limit.
The XDF identifies it as a minimum ignition angle difference rather than simply a direct final spark-angle table.
The disassembly shows that this map is processed through additional scaling and correction logic before the final minimum ignition angle is obtained.
The functional path is therefore better represented as:
RPM
+
Cylinder load
|
v
Minimum-angle base map
0x15B1D
|
v
Scaling / corrections
|
v
Minimum allowable ignition angle
IGA_MIN
The minimum-angle system prevents normal torque-control retard from moving spark beyond the allowed combustion-stability or protection boundary.
Minimum-Angle Temperature Protection
The minimum-angle system also contains an exhaust-temperature-related calibration:
IP_IGA_DIF_MIN_TEG
Address:
0x15BDD
This calibration modifies the permitted minimum ignition behaviour according to dynamic exhaust-gas temperature.
Functionally:
Dynamic exhaust temperature
|
v
IP_IGA_DIF_MIN_TEG
0x15BDD
|
v
Minimum-angle correction
The minimum ignition angle is therefore not simply a fixed RPM/load boundary.
It can be modified by engine thermal conditions and other operating-state corrections.
Interaction Between Minimum Angle and Knock Control
The normal minimum-angle limiter prevents torque control from requesting excessive retard.
Knock control, however, has a different priority.
If additional retard is required to protect an individual cylinder from knock, the normal torque-control minimum-angle restriction must not prevent the required protective retard.
The logic therefore distinguishes between:
- retard requested for torque control
- retard required for knock protection
Conceptually:
Torque-control retard
|
v
Limited by normal IGA_MIN
Knock-required retard
|
v
Special protection authority
|
v
Can override normal retard restriction
This prevents the torque-control minimum-angle system from interfering with knock protection.
Per-Cylinder Ignition Path
Final spark timing is calculated individually for each cylinder.
Each cylinder receives its own knock correction.
Conceptually:
IGA_BAS_COR
|
+--------------+--------------+
| | |
v v v
Cylinder 1 Cylinder 2 ...
knock correction knock correction
| |
v v
Basic + knock Basic + knock
candidate candidate
The torque-request angle is common to the torque-control system, while knock correction can differ from cylinder to cylinder.
The final arbitration is therefore repeated independently for all four cylinders.
Final Ignition Arbitration
The normal final per-cylinder ignition logic can be represented approximately as:
IGA_FINAL_CYL =
max(
IGA_MIN,
min(
IGA_TQ_REQ,
IGA_BAS_COR
+ IGA_KNK_CYL
+ other cylinder corrections
)
)
The inner selection:
min(
IGA_TQ_REQ,
Basic + Knock
)
selects the more retarded of the normal Basic/knock path and the torque-request path.
The outer selection:
max(
IGA_MIN,
selected angle
)
prevents the normal torque-control result from moving beyond the minimum allowable ignition angle.
The functional sequence is:
Basic + cylinder knock
|
+----------------+
|
v
Torque-request angle -> Select more retarded angle
|
v
Apply minimum-angle limit
|
v
Final cylinder ignition
Knock-protection authority modifies this normal limitation when additional knock retard is required.
Final Spark for Each Cylinder
The final result of the arbitration is four independent ignition angles:
IGA_FINAL_CYL1 IGA_FINAL_CYL2 IGA_FINAL_CYL3 IGA_FINAL_CYL4
These represent the actual spark-angle commands after:
- Basic ignition calculation
- Reference-based torque control
- knock correction
- minimum-angle limitation
- cylinder-specific corrections
The structure is:
Final arbitration
|
+----------------+----------------+
| | |
v v v
Cylinder 1 Cylinder 2 Cylinder 3
final IGA final IGA final IGA
|
+---- Cylinder 4
final IGA
Final Average Ignition Angle
The four final cylinder ignition angles are also combined into an average final ignition angle.
Conceptually:
IGA_FINAL_CYL1
+
IGA_FINAL_CYL2
+
IGA_FINAL_CYL3
+
IGA_FINAL_CYL4
|
v
Average
|
v
IGA_FINAL_AVG
The average angle is required because the torque model describes the overall engine rather than one individual cylinder.
Final Ignition Efficiency
Once the final average ignition angle is known, the ECU calculates ignition efficiency again.
First:
IGA_DIF_FINAL = IGA_REF_COR - IGA_FINAL_AVG
Then:
EFF_IGA_FINAL = IPM_EFF_IGA(IGA_DIF_FINAL)
The complete feedback path is:
Final cylinder ignition angles
|
v
Average final ignition
|
v
IGA_REF_COR - IGA_FINAL_AVG
|
v
Final ignition retard
|
v
IPM_EFF_IGA
0x14FD4
|
v
Final ignition efficiency
|
v
Torque model feedback
This is an important part of the SIMK43 torque architecture.
The torque model does not only calculate what ignition timing should be commanded.
It also recalculates the torque effect of the spark angle that actually survived final arbitration.
Final Spark Output and Event Scheduling
After the final spark angle has been calculated for each cylinder, the result is transferred to the low-level ignition event scheduler.
The ca663056 disassembly traces the ignition path all the way from the high-level ignition calculations to the crank-synchronous spark scheduling mechanism.
Functionally:
Final per-cylinder ignition angle
|
v
Ignition output conversion
|
v
Crank-synchronous scheduler
|
v
Physical ignition event
The scheduler converts the requested crankshaft angle into the timing required for the actual ignition event.
This is the final stage between the torque/ignition model and the ignition hardware.
Complete Functional Sequence
The complete ignition path can be represented as:
ENGINE OPERATING POINT
RPM / Load / Temp / Lambda / VVT
|
+-----------+-----------+
| |
v v
IGA_REF IGA_BAS
0x15CA5 0x158ED
| |
v v
Reference corrections Basic corrections
| |
v v
IGA_REF_COR IGA_BAS_COR
| |
| Average knock
| |
| v
| Basic + Avg Knock
| |
| v
| REF - BASIC
| |
| v
| IPM_EFF_IGA
| 0x14FD4
| |
| v
| EFF_IGA_BAS
|
|
TORQUE COORDINATOR
|
v
Torque request
|
v
EFF_IGA_SP
|
v
IP_IGA_DIF_SP
0x15BED
|
v
IGA_DIF_TQ_REQ
|
v
IGA_REF_COR - IGA_DIF_TQ_REQ
|
v
IGA_TQ_REQ
|
+--------------------------+
|
v
Basic + per-cylinder knock ------------ Final arbitration
^
|
Minimum ignition angle ---------------------+
|
v
Final cylinder ignition
|
v
Average final ignition
|
v
IGA_REF_COR - IGA_FINAL_AVG
|
v
IPM_EFF_IGA
0x14FD4
|
v
EFF_IGA_FINAL
|
v
Torque model feedback
|
v
Crank-synchronous scheduler
Complete Mathematical Model
Corrected Reference Angle
IGA_REF_COR = IGA_REF + Reference corrections
Corrected Basic Angle
IGA_BAS_COR = IGA_BAS + Basic corrections
Ignition Torque Reserve
IGA_RESERVE = IGA_REF_COR - IGA_BAS_COR
Basic Angle Including Average Knock
IGA_BAS_KNK = IGA_BAS_COR + IGA_KNK_AVG
Basic Retard from Reference
IGA_DIF_BAS =
max(
IGA_REF_COR - IGA_BAS_KNK,
0
)
Basic Ignition Efficiency
EFF_IGA_BAS = IPM_EFF_IGA(IGA_DIF_BAS)
Torque-Requested Retard
IGA_DIF_TQ_REQ = IP_IGA_DIF_SP(EFF_IGA_SP)
Torque-Requested Ignition Angle
IGA_TQ_REQ = IGA_REF_COR - IGA_DIF_TQ_REQ
Normal Final Per-Cylinder Spark
IGA_FINAL_CYL =
max(
IGA_MIN,
min(
IGA_TQ_REQ,
IGA_BAS_COR
+ IGA_KNK_CYL
+ cylinder corrections
)
)
Knock-protection logic can modify the normal minimum-angle restriction when further protective retard is required.
Final Average Ignition Angle
IGA_FINAL_AVG =
Average(
IGA_FINAL_CYL1,
IGA_FINAL_CYL2,
IGA_FINAL_CYL3,
IGA_FINAL_CYL4
)
Final Retard from Reference
IGA_DIF_FINAL = IGA_REF_COR - IGA_FINAL_AVG
Final Ignition Efficiency
EFF_IGA_FINAL = IPM_EFF_IGA(IGA_DIF_FINAL)
Functional Interpretation
The SIMK43 ignition system can be divided into five principal functional layers.
1. Reference Spark Model
The ECU calculates the corrected Reference ignition angle representing the zero-retard point used by the ignition torque model.
2. Basic Spark Model
The ECU calculates the corrected Basic ignition angle representing the normal operating spark path.
3. Ignition Torque Model
The difference between Reference and actual spark is converted into ignition torque efficiency.
4. Torque Intervention
Requested torque is converted into requested ignition efficiency, then into required spark retard and finally into a requested ignition angle.
5. Final Spark Arbitration
Torque-request spark, Basic spark, knock correction and minimum-angle protection are combined separately for each cylinder before the final ignition event is scheduled.
Ignition timing is therefore simultaneously a combustion parameter, a knock-control mechanism, and one of the ECU's fastest torque-control actuators.
