<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://opengk.org:443/index.php?action=history&amp;feed=atom&amp;title=SIMK43_Ignition_Strategy</id>
	<title>SIMK43 Ignition Strategy - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://opengk.org:443/index.php?action=history&amp;feed=atom&amp;title=SIMK43_Ignition_Strategy"/>
	<link rel="alternate" type="text/html" href="https://opengk.org:443/index.php?title=SIMK43_Ignition_Strategy&amp;action=history"/>
	<updated>2026-09-17T11:09:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://opengk.org:443/index.php?title=SIMK43_Ignition_Strategy&amp;diff=1017&amp;oldid=prev</id>
		<title>Ardamir: Added new category</title>
		<link rel="alternate" type="text/html" href="https://opengk.org:443/index.php?title=SIMK43_Ignition_Strategy&amp;diff=1017&amp;oldid=prev"/>
		<updated>2026-09-17T07:49:42Z</updated>

		<summary type="html">&lt;p&gt;Added new category&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 07:49, 17 September 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1459&quot;&gt;Line 1,459:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1,459:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ignition timing is therefore simultaneously a combustion parameter, a knock-control mechanism, and one of the ECU&amp;#039;s fastest torque-control actuators.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ignition timing is therefore simultaneously a combustion parameter, a knock-control mechanism, and one of the ECU&amp;#039;s fastest torque-control actuators.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;__INDEX__&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;__NEWSECTIONLINK__&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Siemens L4 2.0L]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Documentation]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ardamir</name></author>
	</entry>
	<entry>
		<id>https://opengk.org:443/index.php?title=SIMK43_Ignition_Strategy&amp;diff=1016&amp;oldid=prev</id>
		<title>Ardamir: Full ignition model of SIMK43</title>
		<link rel="alternate" type="text/html" href="https://opengk.org:443/index.php?title=SIMK43_Ignition_Strategy&amp;diff=1016&amp;oldid=prev"/>
		<updated>2026-09-16T17:54:46Z</updated>

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