SIMK43 Airflow and Load Model: Difference between revisions

From OpenGK
mNo edit summary
(Update major parts about final load selections and VE model)
 
(One intermediate revision by the same user not shown)
Line 65: Line 65:
SIMK43 should therefore not be regarded simply as a MAF-based ECU.
SIMK43 should therefore not be regarded simply as a MAF-based ECU.


It is more accurately described as a '''model-based cylinder-charge control system using the HFM sensor as its primary airflow measurement'''.
It is more accurately described as a '''model-based cylinder-charge control system using the MAF sensor as its primary airflow measurement'''.


== 2. Airflow and Load Units ==
== 2. Airflow and Load Units ==
Line 74: Line 74:


* Unit: V or internal ADC representation
* Unit: V or internal ADC representation
* Meaning: electrical output of the HFM sensor.
* Meaning: electrical output of the MAF sensor.


'''Engine airflow'''
'''Engine airflow'''
Line 345: Line 345:


<pre>
<pre>
MAF_MDL = O + S x P_EFF
MAF = S x P - O
</pre>
</pre>


where:
where:


<pre>
O = effective airflow offset
S = effective airflow slope
P = pressure-domain model input
</pre>
<pre>
<pre>
O = IP_EFF_VOL_OFS(N, VO)
O = IP_EFF_VOL_OFS(N, VO)
</pre>
</pre>
and:
and:
<pre>
<pre>
S = IP_EFF_VOL_SLOP(N, VO)
S = IP_EFF_VOL_SLOP(N, VO)
</pre>
</pre>


The units verify the relationship:
The subtraction is performed using an unsigned saturating subtraction.
 
Therefore the complete relationship is more accurately represented as:


<pre>
<pre>
kg/h + [kg/(h*hPa)] x hPa = kg/h
MAF = max(0, S x P - O)
</pre>
</pre>


The ca663056 disassembly loads the offset and slope calibrations as separate coefficients used in the same airflow calculation.
This is important because the offset is not an airflow quantity added to the calculated airflow.


The effective pressure term should not automatically be interpreted as a raw MAP sensor-like value. It belongs to the larger manifold model and represents the pressure-domain state used by the cylinder-flow equation.
It is subtracted from the pressure-dependent term.


Functionally:
The units remain consistent:
 
<pre>
[kg/(h*hPa)] x [hPa] - [kg/h]
=
[kg/h]
</pre>
 
The ca663056 executable uses this same slope-minus-offset relationship at several locations in the manifold model.
 
However, the pressure-domain input is not always the same quantity.
 
Two important examples are:
 
<pre>
MAF_MODEL_BASE =
max(0, EFF_VOL_SLOP x MAP - EFF_VOL_OFS)
</pre>
 
and:


<pre>
<pre>
RPM
MAF_FOR_LOAD =
+
max(0, EFF_VOL_SLOP x MAP_MODEL_DELTA - EFF_VOL_OFS)
Valve overlap
+
Effective manifold pressure
        |
        v
Offset / slope cylinder model
        |
        v
Predicted engine airflow
      [kg/h]
</pre>
</pre>
The second equation is particularly important because it is the airflow quantity from which the normal manifold-model cylinder-load value is calculated.
The effective pressure term should therefore not automatically be interpreted as raw manifold pressure in every part of the model.


== 9. Effect of Valve Overlap ==
== 9. Effect of Valve Overlap ==
Line 410: Line 429:
     |
     |
     v
     v
Cylinder filling characteristic
IP_EFF_VOL_OFS
IP_EFF_VOL_SLOP
    |
    v
Cylinder-filling characteristic
     |
     |
     v
     v
Predicted airflow
Calculated airflow
</pre>
</pre>


Line 482: Line 505:
</pre>
</pre>


where:
The filtered result is:
 
<pre>
EFF_VOL_TEMP_FAC
</pre>
 
Conceptually:
 
<pre>
Engine speed
    +
Operating load
    +
TIA
    +
TCO
    |
    v
Thermal correction calculation
    |
    v
EFF_VOL_TEMP_FAC_RAW
    |
    v
IP_CRLC_EFF_VOL_COR
    |
    v
EFF_VOL_TEMP_FAC
</pre>
 
The filtered thermal factor is applied to the cylinder-flow slope.


'''LPF''' represents the filtering applied by the ECU.
The offset does not pass through the same thermal multiplication path..


== 11. Ambient-Pressure Compensation ==
== 11. Ambient-Pressure Compensation ==
Line 554: Line 607:
<pre>
<pre>
S_EFF = S_0 x F_THERM x F_SLOP_AMP
S_EFF = S_0 x F_THERM x F_SLOP_AMP
</pre>
The corresponding runtime variables are:
<pre>
O_EFF = EFF_VOL_OFS
        RAM 0xF8CE
S_EFF = EFF_VOL_SLOP
        RAM 0xF8D0
</pre>
</pre>


Line 570: Line 633:
== 13. Manifold Filling and Pressure-Ratio Model ==
== 13. Manifold Filling and Pressure-Ratio Model ==


The effective pressure term used by the cylinder-flow equation comes from the larger intake-manifold model.
The cylinder-flow equation is only one part of a larger dynamic intake-manifold model.
 
The model maintains several internal representations of airflow and manifold pressure.


SAM identifies several associated functions relating to:
One basic airflow calculation is:


* throttle effective area
<pre>
* pressure ratio across the throttle
MAF_MODEL_BASE =
* upstream pressure
max(0, MAP x EFF_VOL_SLOP - EFF_VOL_OFS)
* intake-system pressure loss
</pre>
* intake-air temperature
* manifold filling dynamics
* predicted manifold state


One relevant calibration is:
The resulting airflow is stored as:


'''IP_FAC_AR_RED_COR'''
<pre>
MAF_MODEL_BASE
RAM 0xCC36
</pre>


Definition:
It is also converted into a corresponding base cylinder-load quantity:


<pre>
<pre>
IP_FAC_AR_RED_COR = f(PQ)
LOAD_MODEL_BASE
RAM 0xCC38
</pre>
</pre>


where:
The manifold model additionally contains pressure-ratio-dependent airflow functions.
 
'''PQ''' represents a pressure-ratio quantity.


Additional functions include:
These include:


'''ID_MAF_FAC_OFS'''
ID_MAF_FAC_OFS


<pre>
<pre>
Line 606: Line 670:
and:
and:


'''ID_MAF_FAC_SLOP'''
ID_MAF_FAC_SLOP


<pre>
<pre>
Line 612: Line 676:
</pre>
</pre>


These functions describe nonlinear airflow behaviour associated with the pressure ratio across the intake restriction.
where PQ and PQ_ESTIM represent pressure-ratio states used by the intake model.
 
Another coefficient is:
 
IP_MAF_MDL_CON_1
 
which provides a temperature-dependent manifold-model coefficient.


Another manifold-model coefficient is:
The executable combines these quantities with the dynamic manifold state to calculate:


'''IP_MAF_MDL_CON_1'''
<pre>
MAF_MODELED_RAW
RAM 0xCC34
</pre>


Definition:
This quantity is subsequently filtered to form:
 
<pre>
MAF_MODELED
RAM 0xCC88
</pre>
 
The model also predicts the evolution of manifold pressure.
 
Important runtime quantities include:
 
<pre>
MAP_MODEL_PRED
MAP_MODEL_ESTIMATE
MAP_MODEL_LIMITED
MAP_MODEL_DELTA
</pre>
 
The final pressure difference used by the normal modeled-load calculation is formed as:
 
<pre>
MAP_MODEL_DELTA =
MAP_MODEL_LIMITED
-
MAP_MODEL_ESTIMATE
</pre>
 
with:


<pre>
<pre>
C_MAN = f(TIA)
MAP_MODEL_DELTA
RAM 0xCC68
</pre>
</pre>


Its engineering unit is approximately:
The modeled-load airflow calculation then uses this pressure-domain difference:


<pre>
<pre>
s/m
MAF_FOR_LOAD =
max(0, EFF_VOL_SLOP x MAP_MODEL_DELTA - EFF_VOL_OFS)
</pre>
</pre>


This coefficient participates in the physical manifold-filling model.
The important consequence is that the normal modeled cylinder load is not calculated directly from raw MAP.
 
It is calculated from a pressure state produced by the dynamic manifold model.


The intake-manifold model can therefore be represented as:
The overall structure is therefore closer to:


<pre>
<pre>
Throttle effective area
RPM / VVT / temperature / ambient pressure
        |
                    |
        +---- Upstream pressure
                    v
        |
          EFF_VOL_SLOP / OFS
        +---- Pressure ratio
                    |
        |
          +----------+----------+
        +---- Intake temperature
          |                    |
        |
          v                    v
        +---- Manifold filling dynamics
  Base airflow model      Manifold dynamics
        |
          |                    |
        v
          |              MAP_MODEL_PRED
Effective manifold pressure state
          |                    |
        |
          |              MAP_MODEL_ESTIMATE
        v
          |                    |
Cylinder offset / slope model
          |              MAP_MODEL_LIMITED
        |
          |                    |
        v
          |                    v
Predicted engine airflow
          |              MAP_MODEL_DELTA
          |                    |
          +----------+----------+
                    |
                    v
              MAF_FOR_LOAD
                    |
                    v
              LOAD_VE_MODEL
</pre>
</pre>


The modeled airflow is therefore derived from pressure and filling behaviour rather than from a simple throttle-angle-to-load lookup.
This also explains why changing IP_EFF_VOL_SLOP or IP_EFF_VOL_OFS does not necessarily produce a directly proportional change in LOAD_VE_MODEL.
 
The coefficients influence both the airflow calculation and the internal dynamic manifold state from which MAP_MODEL_DELTA is produced.


== 14. Intake-System Pressure Loss ==
== 14. Intake-System Pressure Loss ==
Line 685: Line 799:
== 15. Modeled Airflow to Modeled Cylinder Charge ==
== 15. Modeled Airflow to Modeled Cylinder Charge ==


Once the model has calculated total engine airflow in kg/h, that airflow is converted into cylinder charge using the same physical relationship as the measured-airflow path.
An important distinction exists between the ECU's modeled airflow and its modeled cylinder-load calculation.
 
These are related quantities but they are not the same calculation.
 
=== 15.1 Modeled Airflow ===
 
The manifold model first calculates:
 
<pre>
MAF_MODELED_RAW
RAM 0xCC34
</pre>
 
This value is passed through the modeled-airflow filter.


For the four-cylinder engine:
The resulting quantity is:


<pre>
<pre>
MAF_CYL_MDL [mg/stk] = 8333.333 x MAF_MDL_KGH [kg/h] / RPM
MAF_MODELED
RAM 0xCC88
</pre>
</pre>


The measured and modeled paths therefore converge into the same engineering domain:
MAF_MODELED is one of the two candidates used by the airflow source selector.
 
The other candidate is the measured MAF signal.
 
=== 15.2 Load-Model Airflow ===
 
The normal modeled cylinder-load path independently calculates:


<pre>
<pre>
mg/stk
MAF_FOR_LOAD =
max(
    0,
    EFF_VOL_SLOP x MAP_MODEL_DELTA
    -
    EFF_VOL_OFS
)
</pre>
 
The result is stored as:
 
<pre>
MAF_FOR_LOAD
RAM 0xCC32
</pre>
 
This airflow is then converted using engine speed into:
 
<pre>
LOAD_VE_MODEL
RAM 0xCC7C
</pre>
 
For the four-cylinder engine, the engineering relationship is approximately:
 
<pre>
LOAD_VE_MODEL [mg/stk] =
8333.333
x MAF_FOR_LOAD [kg/h]
/
RPM
</pre>
 
Therefore:
 
<pre>
MAF_MODELED
</pre>
 
is not simply converted directly into:
 
<pre>
LOAD_VE_MODEL
</pre>
</pre>


This allows the two airflow estimates to be compared, supervised and substituted.
They are separate outputs of the same manifold-model system.
 
This distinction is fundamental to understanding the later source-selection logic.


== 16. MAF Pulsation Supervision ==
== 16. MAF Pulsation Supervision ==
Line 709: Line 887:
One of the principal calibrations is:
One of the principal calibrations is:


'''IP_MAF_PULS_MAX'''
IP_MAF_PULS_MAX


Address:
Address:
Line 723: Line 901:
</pre>
</pre>


The system also contains maximum-difference and hysteresis parameters.
The measured-MAF routine records the maximum and minimum raw MAF values over the sampling interval.
 
The spread is calculated as:
 
<pre>
MAF_RAW_SPREAD =
MAF_RAW_MAX
-
MAF_RAW_MIN
</pre>
 
The spread is then converted into the cylinder-charge domain using engine speed.


The ECU evaluates the spread of the sampled MAF signal.
The result is stored as:


That spread is converted into the cylinder-charge domain using engine speed.
<pre>
MAF_PULSATION_AMPLITUDE
</pre>


The calculated pulsation is then compared with the permissible pulsation limit.
The pulsation state is represented by:
 
<pre>
FD24.9
</pre>
 
When the pulsation state is active, the physical MAF is no longer accepted by the normal airflow-source selector.


Conceptually:
Conceptually:
Line 743: Line 940:
     |
     |
     v
     v
Compare with IP_MAF_PULS_MAX
Compare with
IP_MAF_PULS_MAX
    |
    v
Debounce / hysteresis
     |
     |
     v
     v
MAF pulsation state
FD24.9
MAF pulsation active
</pre>
</pre>


The pulsation state participates directly in airflow-source supervision.
The pulsation state therefore participates directly in airflow-source selection and is not merely a diagnostic indication.


It is therefore part of the functional airflow model and not merely a diagnostic function.


== 17. Measured-Airflow and Modeled-Airflow Arbitration ==
== 17. Measured-Airflow and Modeled-Airflow Arbitration ==


SIMK43 contains source-selection logic between the measured and modeled airflow paths.
SIMK43 contains an explicit source-selection stage between measured and modeled airflow.


Functionally:
The principal source-selection state is:
 
<pre>
FD44.8
</pre>
 
The executable sets FD44.8 only when the measured MAF is considered suitable for use.
 
The selection logic can be represented as:


<pre>
<pre>
If measured airflow is accepted:
If MAF diagnostic fault is active:
     MAF_WORK_KGH = MAF_MES_KGH
     FD44.8 = 0
 
Else if MAF pulsation is active:
    FD44.8 = 0
 
Else if additional MAF/model fallback
qualification is active:
    FD44.8 = 0


If measured airflow is rejected:
Else:
     MAF_WORK_KGH = MAF_MDL_KGH
     FD44.8 = 1
</pre>
</pre>


During normal operation, the physical MAF measurement is the primary airflow source.
The selected airflow is then:
 
<pre>
If FD44.8 = 1:
 
    MAF_SELECTED = MAF_MES


When the measured signal is considered unsuitable because of pulsation, faults or other fallback conditions, the independently calculated manifold-model airflow can replace it.


The airflow architecture therefore contains two complete sources for engine airflow:
If FD44.8 = 0:
 
    MAF_SELECTED = MAF_MODELED
</pre>
 
The runtime variables are:


<pre>
<pre>
Measured MAF airflow      Modeled manifold airflow
MAF_MES
        |                            |
RAM 0xCC26
        +--------------+--------------+
                      |
                      v
                Source selector
                      |
                      v
                Working airflow


MAF_SELECTED
RAM 0xCC5C
MAF_MODELED
RAM 0xCC88
</pre>
</pre>
The airflow architecture can therefore be represented as:
<pre>
Measured MAF
MAF_MES
    |
    |
    +-----------+
                |
                v
          FD44.8 selector
                |
                v
          MAF_SELECTED
                ^
                |
    +-----------+
    |
Modeled MAF
MAF_MODELED
</pre>
However, this airflow-source selector does not by itself determine the final cylinder-load source.
The ECU contains a second and separate arbitration stage for LOAD_FINAL.


== 18. Final Cylinder-Load Determination ==
== 18. Final Cylinder-Load Determination ==


Following airflow supervision, the ECU maintains several representations of cylinder charge.
The final cylinder-load logic is more complex than a direct conversion of MAF_SELECTED.
 
SIMK43 maintains several simultaneous cylinder-load representations.
 
Important runtime values are:
 
<pre>
LOAD_DIRECT
RAM 0xCC2A
 
LOAD_FINAL
RAM 0xCC30
 
LOAD_VE_MODEL
RAM 0xCC7C
 
LOAD_ALT
RAM 0xCC7E
</pre>
 
=== 18.1 Direct Measured-MAF Load ===
 
The measured-MAF routine converts MAF_MES directly into cylinder charge.
 
Conceptually:
 
<pre>
LOAD_DIRECT =
8333.333
x MAF_MES
/
RPM
</pre>
 
LOAD_DIRECT therefore represents the direct cylinder-load equivalent of the physical MAF measurement.
 
=== 18.2 Alternate Load ===
 
Under normal conditions, LOAD_ALT is filtered toward LOAD_DIRECT.
 
Conceptually:
 
<pre>
LOAD_ALT =
Filter(
    previous LOAD_ALT,
    LOAD_DIRECT
)
</pre>
 
LOAD_ALT therefore normally follows the measured-MAF-derived cylinder load while providing additional smoothing.
 
Under some fallback/model states, LOAD_ALT can instead be reconstructed from the manifold model.
 
LOAD_ALT should consequently be regarded as an alternate working load state rather than as a simple duplicate of LOAD_DIRECT.
 
=== 18.3 Normal Modeled-Load Candidate ===
 
The normal manifold-model branch calculates:
 
<pre>
MAF_FOR_LOAD =
max(
    0,
    EFF_VOL_SLOP x MAP_MODEL_DELTA
    -
    EFF_VOL_OFS
)
</pre>
 
and then:
 
<pre>
LOAD_VE_MODEL =
8333.333
x MAF_FOR_LOAD
/
RPM
</pre>
 
=== 18.4 Final Normal-Path Source Selector ===
 
After LOAD_VE_MODEL has been calculated, the ECU executes another source-selection stage.
 
A calibration byte is located at:
 
<pre>
0x1045A
</pre>
 
Stock ca663056 value:
 
<pre>
1
</pre>
 
The current reverse-engineering descriptive name is:
 
<pre>
C_LOAD_FORCE_VE_MODEL
</pre>
 
The official Siemens calibration name has not yet been confirmed.
 
The executable logic is:
 
<pre>
If 0x1045A != 0:
 
    LOAD_FINAL = LOAD_VE_MODEL
 
 
Else:
 
    If FD44.8 = 1:
 
        LOAD_FINAL =
        LOAD_ALT x LOAD_ALT_SCALE
 
    Else:
 
        LOAD_FINAL = LOAD_VE_MODEL
</pre>
 
This means that the stock value:
 
<pre>
0x1045A = 1
</pre>
 
forces the normal final-load path to use LOAD_VE_MODEL.
 
This occurs independently of the earlier MAF source selector.
 
Consequently the following state is completely valid in the stock software:
 
<pre>
FD44.8 = 1
 
MAF_SELECTED = MAF_MES
 
but:
 
LOAD_FINAL = LOAD_VE_MODEL
</pre>
 
Measured MAF selection therefore does not imply measured-MAF-derived final load.
 
The ECU contains two distinct decisions:
 
<pre>
Decision 1:
 
Which airflow source is selected?
 
MAF_MES
or
MAF_MODELED
 
 
Decision 2:
 
Which cylinder-load representation
becomes LOAD_FINAL?
 
LOAD_ALT
or
LOAD_VE_MODEL
or
diagnostic fallback load
</pre>
 
This distinction is one of the most important characteristics of the SIMK43 airflow architecture.
 
=== 18.5 LOAD_ALT_SCALE ===
 
When 0x1045A is zero and the measured MAF is accepted, the normal branch does not copy LOAD_ALT directly.
 
It applies:
 
<pre>
LOAD_FINAL =
LOAD_ALT x LOAD_ALT_SCALE
</pre>
 
LOAD_ALT_SCALE is calculated dynamically by the manifold model.
 
It should therefore not automatically be assumed to equal 1.0.
 
This scaling allows the alternate measured-air-derived load state to remain coordinated with the dynamic manifold model.
 
=== 18.6 Alternate and Fallback Load Branches ===
 
Additional diagnostic and plausibility states can bypass the normal 0x1045A branch.
 
Under one alternate branch, when the hard MAF signal diagnostic is not active, the ECU performs:
 
<pre>
MAF_FOR_LOAD = MAF_MES
 
LOAD_FINAL = LOAD_ALT
</pre>
 
This branch therefore uses the alternate load directly without passing through the normal LOAD_VE_MODEL / 0x1045A arbitration.
 
The complete final-load logic is consequently state-dependent.
 
The 0x1045A selector describes the normal modeled-load branch but is not the only possible route to LOAD_FINAL.
 
=== 18.7 MAF Signal Diagnostic ===
 
The ECU contains a separate electrical/range diagnostic for the physical MAF signal.
 
The principal calibrated thresholds identified in ca663056 are:
 
<pre>
CAL_MAF_SIGNAL_RANGE_HIGH_THRESHOLD
0x105CC
 
CAL_MAF_SIGNAL_RANGE_LOW_THRESHOLD
0x105D4
</pre>
 
The ECU compares MAF_MES against these limits under qualified operating conditions.


The principal sources include:
The low-airflow check is additionally restricted to a calibrated engine-speed operating window.


* measured-air-derived cylinder charge
After diagnostic qualification and debounce, the ECU produces:
* manifold-model-derived cylinder charge
* filtered or alternate cylinder-charge representations
* fallback cylinder charge


These ultimately produce one effective load quantity:
<pre>
MAF_SIGNAL_RANGE_DIAG_ACTIVE
</pre>
 
which causes:


<pre>
<pre>
MAF_CYL_WORK
FD46.5 = 1
</pre>
</pre>


with units:
FD46.5 therefore represents an active MAF signal diagnostic fault.
 
The airflow source-selection routine also responds to this state by clearing FD44.8.
 
Conceptually:
 
<pre>
MAF signal outside valid range
          |
          v
Diagnostic qualification
          |
          v
MAF_SIGNAL_RANGE_DIAG_ACTIVE
          |
          v
FD46.5 = 1
          |
          +----------------------+
          |                      |
          v                      v
FD44.8 cleared            Fallback load logic
</pre>
 
=== 18.8 IP_MAF_TPS_DIAG Failsafe Airflow ===
 
SIMK43 contains a dedicated calibrated airflow table for the MAF diagnostic fallback path.
 
The Siemens calibration name is:
 
IP_MAF_TPS_DIAG
 
Address:
 
<pre>
0x130DC
</pre>
 
RPM axis:
 
<pre>
0x10D1F
</pre>
 
SAM describes this calibration as:
 
<pre>
Limp home mass air flow in kg/h
in case of MAF and TPS failure
</pre>
 
In the ca663056 executable, the table is used in the hard MAF-fault fallback branch to produce MAF_FOR_LOAD.
 
The resulting airflow is converted directly into LOAD_FINAL using engine speed.
 
Conceptually:
 
<pre>
MAF diagnostic fallback state
          |
          v
IP_MAF_TPS_DIAG(N)
          |
          v
MAF_FOR_LOAD
          |
          v
RPM conversion
          |
          v
LOAD_FINAL
</pre>
 
The ca663056 calibration contains the following breakpoints and airflow values:


<pre>
<pre>
mg/stk
RPM      MAF fallback
 
512        9 kg/h
800      13 kg/h
1504      15 kg/h
2016      20 kg/h
3008      27 kg/h
4992      30 kg/h
</pre>
</pre>


The rest of the combustion-control system uses this working cylinder-charge state without needing to know whether its source originated from the MAF measurement or the manifold model.
IP_MAF_TPS_DIAG is therefore a replacement-airflow calibration.
 
It is not the threshold used to determine whether the MAF sensor is faulty.
 
The MAF fault decision is made by the separate signal-range diagnostic described above.
 


== 19. Reference Torque Model ==
== 19. Reference Torque Model ==
Line 815: Line 1,374:
The principal forward relationship between cylinder charge and torque is:
The principal forward relationship between cylinder charge and torque is:


'''IP_TQI_REF'''
IP_TQI_REF


Address:
Address:
Line 831: Line 1,390:
where:
where:


* '''MAF_CYL''' is cylinder fresh-air charge in mg/stk.
* MAF_CYL is cylinder fresh-air charge in mg/stk.
* '''TQI_REF''' is reference indicated torque in Nm.
* TQI_REF is reference indicated torque in Nm.


The function therefore represents:
The function therefore represents:
Line 849: Line 1,408:


This map describes the torque the engine is expected to produce from a given amount of cylinder fresh air.
This map describes the torque the engine is expected to produce from a given amount of cylinder fresh air.
The load quantity ultimately presented to the surrounding combustion and torque functions is based on LOAD_FINAL.


== 20. Torque Loss Model ==
== 20. Torque Loss Model ==
Line 858: Line 1,420:
The principal calibration is:
The principal calibration is:


'''IP_TQFR'''
IP_TQFR


Address:
Address:
Line 879: Line 1,441:
TQ_EFFECTIVE =
TQ_EFFECTIVE =
TQI
TQI
- TQ_FRICTION
-
- TQ_PUMPING
TQ_FRICTION
- TQ_ACCESSORY
-
- other losses
TQ_PUMPING
-
TQ_ACCESSORY
-
other losses
</pre>
</pre>


The torque system therefore combines the calculated indicated combustion torque with independently calculated engine losses.
The torque system therefore combines the calculated indicated combustion torque with independently calculated engine losses.


== 21. Inverse Torque-to-Air Model ==
== 21. Inverse Torque-to-Air Model ==
Line 893: Line 1,460:
The relevant calibration is:
The relevant calibration is:


'''IP_MAF_SP'''
IP_MAF_SP


Address:
Address:
Line 917: Line 1,484:
The two principal torque/air relationships are therefore:
The two principal torque/air relationships are therefore:


'''Forward model'''
Forward model


<pre>
<pre>
Line 925: Line 1,492:
through:
through:


'''IP_TQI_REF'''
IP_TQI_REF


and:
and:


'''Inverse model'''
Inverse model


<pre>
<pre>
Line 937: Line 1,504:
through:
through:


'''IP_MAF_SP'''
IP_MAF_SP


Together, these functions form the central air-to-torque and torque-to-air relationship of SIMK43.
Together, these functions form the central air-to-torque and torque-to-air relationship of SIMK43.


== 22. Air-Charge Control Objective ==
== 22. Air-Charge Control Objective ==
Line 949: Line 1,517:
</pre>
</pre>


it can be compared with the estimated actual cylinder charge:
it can be compared with the estimated actual cylinder charge represented by the ECU's working load state.
 
Conceptually:


<pre>
<pre>
E_AIR =
MAF_CYL_SP
-
MAF_CYL_ACT
MAF_CYL_ACT
</pre>
</pre>


The conceptual air-control error is:
The air-path controller can then act on the available air-control actuators, mainly the idle-air actuator because the main throttle is mechanically cable operated.
 
<pre>
E_AIR = MAF_CYL_SP - MAF_CYL_ACT
</pre>


The air-path controller can then act on the available air-control actuators (mainly the IAC Valve, as the throttle is driven by a steel cable) in order to move actual cylinder charge toward requested cylinder charge.
This illustrates why the SIMK43 torque-control structure is fundamentally based around cylinder air charge rather than throttle angle alone.


This illustrates why the SIMK43 torque-control structure is fundamentally based around '''cylinder air charge''' rather than throttle angle alone.


== 23. IVVT Airflow Prediction ==
== 23. IVVT Airflow Prediction ==
Line 971: Line 1,539:
One relevant calibration is:
One relevant calibration is:


'''IP_MAF_IVVT_1'''
IP_MAF_IVVT_1


Address:
Address:
Line 979: Line 1,547:
</pre>
</pre>


Definition:
SAM definition:
 
<pre>
IP_MAF_IVVT_1 [mg/TDC]
=
f(N_32, TPS)
</pre>
 
SAM describes this map as:
 
<pre>
Calculated value for mass air flow
when no TPS error is present
</pre>
 
The associated calibration family includes:
 
* IP_MAF_IVVT_2 - calculated airflow used when a TPS error exists.
* IP_MAF_TPS_FAC - throttle-position weighting used by the IVVT airflow calculation.
* IP_MAF_ADD_ISAPWM - calculated additional airflow through the idle-air actuator.
* IP_MAF_FAC_TIA - intake-air-temperature correction for the IVVT airflow calculation.
 
The ca663056 disassembly confirms a direct reference to:
 
<pre>
IP_MAF_IVVT_1
0x193A4
</pre>
 
A second one-dimensional lookup immediately following this table is located at:
 
<pre>
0x193E4
</pre>
 
Its position, size and lookup form are consistent with the Siemens IP_MAF_IVVT_2 calibration.
 
The executable reference to IP_MAF_IVVT_1 occurs in the knock-reference calculation.
 
The calculated value is combined with the knock-reference operating-point factor before the final knock-reference factor is filtered.
 
Therefore this IVVT airflow estimator is not the source used directly to write:
 
<pre>
MAF_FOR_LOAD
</pre>
 
or:


<pre>
<pre>
MAF_IVVT = f(N, TPS)
LOAD_FINAL
</pre>
</pre>


Its output represents calculated airflow for the VVT-related airflow-prediction path.
during the main airflow/load calculation.


SAM also identifies:
The IVVT estimator should therefore be distinguished from both:


* '''IP_MAF_IVVT_2''' - alternate airflow calculation used when a TPS error exists.
<pre>
* '''IP_MAF_TPS_FAC''' - throttle-position weighting.
Main manifold / cylinder-filling model:
* '''IP_MAF_ADD_ISAPWM''' - estimated additional airflow through the idle-air actuator.
* '''IP_MAF_FAC_TIA''' - intake-air-temperature correction.


This auxiliary IVVT airflow estimator should be distinguished from the main manifold and cylinder-filling model.
IP_EFF_VOL_OFS
IP_EFF_VOL_SLOP
</pre>


The primary physical cylinder model is based on:
and:


* '''IP_EFF_VOL_OFS'''
<pre>
* '''IP_EFF_VOL_SLOP'''
MAF diagnostic fallback:


The IVVT airflow calculation represents an additional prediction path associated with VVT, throttle and idle-air operating conditions.
IP_MAF_TPS_DIAG
</pre>


== 24. End-to-End Functional Sequence ==
The three systems serve different purposes.


=== 24.1 Measured-Air Path ===
Conceptually:


<pre>
<pre>
MAF electrical signal
IP_EFF_VOL_OFS / SLOP
         |
         |
         v
         v
ID_MAF_TAB
Main manifold and
0x11B4E
cylinder-load model
 
 
IP_MAF_IVVT_1 / 2
         |
         |
         v
         v
Total engine airflow
Auxiliary IVVT airflow estimate
kg/h
used by IVVT-related /
knock-reference calculations
 
 
IP_MAF_TPS_DIAG
         |
         |
         v
         v
Sampling and averaging
Diagnostic substitute airflow
for MAF fallback
</pre>
 
 
== 24. End-to-End Functional Sequence ==
 
=== 24.1 Measured-Air Path ===
 
<pre>
MAF electrical signal
         |
         |
         v
         v
Operating-point MAF correction
Sensor conversion
IP_MAF_KGH_MES_FAC
         |
         |
         v
         v
Corrected measured airflow
Repeated sampling
kg/h
         |
         |
         v
         v
RPM conversion
MAF_RAW_AVG
         |
         |
         v
         v
Measured cylinder air charge
Measured-airflow scaling
mg/stk
         |
         |
         v
         v
Airflow / load source supervision
MAF_MES
kg/h
         |
         |
         v
         +--------------------------+
Final working cylinder load
        |                          |
mg/stk
        v                          v
LOAD_DIRECT                  MAF source
mg/stk                       supervision
                                  |
                                  v
                            MAF_SELECTED
</pre>
</pre>


=== 24.2 Modeled-Air Path ===
=== 24.2 Modeled-Air Path ===
Line 1,051: Line 1,686:
Valve overlap
Valve overlap
Ambient pressure
Ambient pressure
IAT
TIA
Coolant temperature
TCO
Throttle / manifold state
Throttle / manifold state
         |
         |
Line 1,066: Line 1,701:
         |
         |
         v
         v
Corrected offset and slope
EFF_VOL_OFS
EFF_VOL_SLOP
         |
         |
         v
        +--------------------------+
Effective manifold pressure
        |                          |
         |
         v                          v
         v
Static / dynamic            Dynamic manifold
Predicted engine airflow
airflow model                pressure observer
kg/h
         |                          |
         |
         v                         v
         v
MAF_MODELED_RAW            MAP_MODEL_DELTA
RPM conversion
        |                          |
        |
        v                          v
        v
Filtering                  EFF_VOL slope/offset
Predicted cylinder charge
         |                          |
mg/stk
         v                         v
        |
MAF_MODELED                MAF_FOR_LOAD
        v
                                  |
Airflow / load source supervision
                                  v
                              RPM conversion
                                  |
                                  v
                            LOAD_VE_MODEL
</pre>
 
=== 24.3 Airflow and Load Arbitration ===
 
The two arbitration stages are separate.
 
<pre>
AIRFLOW SOURCE SELECTION
 
MAF_MES ------------------+
                          |
                          v
                      FD44.8
                          |
                          v
                    MAF_SELECTED
                          ^
                          |
MAF_MODELED --------------+
</pre>
 
The final load is selected separately:
 
<pre>
LOAD_DIRECT
    |
    v
LOAD_ALT -----------------------------+
                                      |
                                      |
LOAD_VE_MODEL -------------------------+----+
                                            |
                                            v
                              Final load-source logic
                                            |
                              0x1045A / status bits
                                            |
                                            v
                                      LOAD_FINAL
</pre>
</pre>


Both paths therefore converge before the main combustion-control functions.
A measured MAF can therefore be selected while the final cylinder load still comes from the manifold model.




Line 1,094: Line 1,773:


<pre>
<pre>
MAF_RAW = ID_MAF_TAB(V_MAF)
MAF_RAW_AVG =
Average(MAF samples)
</pre>


MAF_AVG = Filter(MAF_RAW)
The averaged signal is converted using the ECU's runtime MAF conversion scale:


MAF_MES_COR = MAF_AVG x F_MAF(N, TPS)
<pre>
MAF_MES =
Scale(
    MAF_RAW_AVG,
    MAF_CONVERSION_SCALE
)
</pre>
</pre>


=== 25.2 Measured Cylinder Charge ===
=== 25.2 Direct Measured Cylinder Charge ===


<pre>
<pre>
MAF_CYL_MES =
LOAD_DIRECT =
8333.333 x MAF_MES_COR / RPM
8333.333
x MAF_MES
/
RPM
</pre>
</pre>


=== 25.3 Base Modeled Cylinder-Flow Coefficients ===
=== 25.3 Base Cylinder-Flow Coefficients ===


<pre>
<pre>
O_0 = IP_EFF_VOL_OFS(N, VO)
O_0 =
IP_EFF_VOL_OFS(N, VO)


S_0 = IP_EFF_VOL_SLOP(N, VO)
S_0 =
IP_EFF_VOL_SLOP(N, VO)
</pre>
</pre>


Line 1,119: Line 1,810:


<pre>
<pre>
O_EFF = O_0 x F_OFS_AMP
O_EFF =
O_0
x F_OFS_AMP
</pre>
 
<pre>
S_EFF =
S_0
x F_THERM
x F_SLOP_AMP
</pre>
 
where:
 
<pre>
O_EFF = EFF_VOL_OFS


S_EFF = S_0 x F_THERM x F_SLOP_AMP
S_EFF = EFF_VOL_SLOP
</pre>
</pre>


=== 25.5 Modeled Airflow ===
=== 25.5 Base Modeled Airflow ===


<pre>
<pre>
MAF_MDL_KGH = O_EFF + S_EFF x P_EFF
MAF_MODEL_BASE =
max(
    0,
    MAP x S_EFF
    -
    O_EFF
)
</pre>
</pre>


=== 25.6 Modeled Cylinder Charge ===
=== 25.6 Dynamic Pressure State ===


<pre>
<pre>
MAF_CYL_MDL = 8333.333 x MAF_MDL_KGH / RPM
MAP_MODEL_DELTA =
MAP_MODEL_LIMITED
-
MAP_MODEL_ESTIMATE
</pre>
</pre>


=== 25.7 Working Engine Load ===
=== 25.7 Modeled Load Airflow ===


<pre>
<pre>
MAF_CYL_WORK =
MAF_FOR_LOAD =
Select(
max(
     MAF_CYL_MES,
     0,
     MAF_CYL_MDL,
     MAP_MODEL_DELTA x S_EFF
     MAF_CYL_FALLBACK
    -
     O_EFF
)
)
</pre>
</pre>


=== 25.8 Forward Torque Model ===
=== 25.8 Modeled Cylinder Load ===
 
<pre>
LOAD_VE_MODEL =
8333.333
x MAF_FOR_LOAD
/
RPM
</pre>
 
=== 25.9 Selected Engine Airflow ===
 
<pre>
If FD44.8 = 1:
 
    MAF_SELECTED = MAF_MES
 
 
Else:
 
    MAF_SELECTED = MAF_MODELED
</pre>
 
=== 25.10 Normal Final-Load Selection ===
 
<pre>
If C_LOAD_FORCE_VE_MODEL != 0:
 
    LOAD_FINAL =
    LOAD_VE_MODEL
 
 
Else if FD44.8 = 1:
 
    LOAD_FINAL =
    LOAD_ALT
    x LOAD_ALT_SCALE
 
 
Else:
 
    LOAD_FINAL =
    LOAD_VE_MODEL
</pre>
 
The stock ca663056 calibration uses:
 
<pre>
C_LOAD_FORCE_VE_MODEL = 1
</pre>
 
at:
 
<pre>
0x1045A
</pre>
 
=== 25.11 MAF Diagnostic Substitute Airflow ===
 
In the appropriate diagnostic fallback state:
 
<pre>
MAF_FAILSAFE =
IP_MAF_TPS_DIAG(N)
</pre>
 
followed by:
 
<pre>
LOAD_FINAL =
8333.333
x MAF_FAILSAFE
/
RPM
</pre>
 
=== 25.12 Forward Torque Model ===


<pre>
<pre>
Line 1,153: Line 1,945:
IP_TQI_REF(
IP_TQI_REF(
     RPM,
     RPM,
     MAF_CYL_WORK
     LOAD_FINAL
)
)
</pre>
</pre>


=== 25.9 Inverse Torque Model ===
=== 25.13 Inverse Torque Model ===


<pre>
<pre>
Line 1,166: Line 1,958:
)
)
</pre>
</pre>


== 26. Functional Interpretation ==
== 26. Functional Interpretation ==


The SIMK43 airflow architecture can be divided into four principal functional layers.
The SIMK43 airflow architecture can be divided into five principal functional layers.
 
1. Measurement
 
The physical MAF signal is sampled, averaged and converted into measured total engine airflow.
 
The same measured airflow is directly converted into LOAD_DIRECT.


'''1. Measurement'''
2. Physical Manifold Model


The physical MAF signal is converted into corrected total engine airflow in kg/h.
An independent dynamic intake-manifold model predicts airflow and manifold state using engine speed, valve overlap, pressure, temperature, ambient conditions and intake-system behaviour.


'''2. Physical Model'''
3. Airflow Source Arbitration


An independent intake-manifold model predicts airflow using manifold conditions, engine speed, valve overlap, temperature and ambient pressure.
The ECU chooses between:


'''3. Load Estimation'''
<pre>
MAF_MES
</pre>


Measured and modeled airflow are converted into cylinder charge in mg/stk and supervised to produce the ECU's effective working load.
and:
 
<pre>
MAF_MODELED
</pre>
 
to produce:
 
<pre>
MAF_SELECTED
</pre>
 
4. Cylinder-Load Arbitration
 
The ECU independently maintains and arbitrates between:
 
<pre>
LOAD_DIRECT
LOAD_ALT
LOAD_VE_MODEL
diagnostic fallback load
</pre>
 
to produce:
 
<pre>
LOAD_FINAL
</pre>
 
The stock ca663056 calibration explicitly permits the selected MAF to remain the physical sensor value while LOAD_FINAL is forced to the manifold-model-derived LOAD_VE_MODEL.
 
5. Torque Coordination
 
The ECU converts final cylinder air charge into estimated torque and requested torque back into required cylinder air charge.
 
The resulting architecture is therefore not simply:
 
<pre>
MAF sensor
    |
    v
Engine load
</pre>
 
Instead it is:
 
<pre>
            MEASURED AIRFLOW
                    |
                    +----------------+
                    |                |
                    v                v
              LOAD_DIRECT      MAF source
                    |          arbitration
                    |                |
                    v                v
                LOAD_ALT      MAF_SELECTED
                    |
                    |
                    +---------------------------+
                                                |
                                                v
                                      FINAL LOAD ARBITRATION
                                                |
                                                v
                                          LOAD_FINAL
                                                ^
                                                |
                    +---------------------------+
                    |
                    v
          MANIFOLD / CYLINDER MODEL
                    |
                    +----------------+
                    |                |
                    v                v
              MAF_MODELED      LOAD_VE_MODEL
</pre>


'''4. Torque Coordination'''
Physical airflow measurement and the independent manifold model therefore remain parallel throughout a significant part of the ECU.


The ECU converts actual cylinder air charge into estimated torque and requested torque back into required cylinder air charge.
The selected airflow source and the selected cylinder-load source are related, but they are not identical decisions.


Physical HFM measurement and a parallel intake-manifold model are used together to determine the amount of fresh air available for combustion and to provide a consistent load quantity for the torque, ignition and fueling systems.
This separation explains how the ECU can use the physical MAF sensor as the accepted airflow source while still using the modeled cylinder-filling value as the authoritative final engine load.

Latest revision as of 22:06, 9 October 2026

This document describes the airflow and engine-load model implemented in the Siemens SIMK43 ca663056 calibration, which should also apply on all other G4GC CVVT calibrations.

It documents how the ECU measures incoming air using the hot-film MAF sensor, independently calculates airflow using the intake-manifold model, determines cylinder air charge, supervises the measured and modeled airflow paths, and integrates the resulting load value into the torque, ignition and fueling systems.

Index

1. General Architecture

The SIMK43 airflow system contains two parallel representations of engine airflow:

  • Measured airflow derived from the physical hot-film MAF sensor.
  • Modeled airflow calculated from engine speed, manifold conditions, valve overlap, temperature and ambient pressure.

These paths ultimately describe the same physical quantity: the mass of fresh air entering the engine.

The MAF sensor measures air travelling through the intake tract, while the combustion system ultimately requires an estimate of the amount of fresh air entering an individual cylinder.

The overall architecture is:

                     AIR ENTERING ENGINE
                            |
             +--------------+--------------+
             |                             |
             v                             v
       HFM / MAF SENSOR           INTAKE MANIFOLD MODEL
             |                             |
             v                             v
      Sensor linearization         RPM / pressure / VVT
             |                     temperature / ambient
             v                             |
      Measured airflow                     v
          [kg/h]                  Modeled engine airflow
             |                          [kg/h]
             |                             |
             v                             v
      Convert using RPM             Convert using RPM
             |                             |
             v                             v
     Measured cylinder             Modeled cylinder
          air charge                    air charge
          [mg/stk]                    [mg/stk]
             |                             |
             +--------------+--------------+
                            |
                            v
                  AIRFLOW SUPERVISION
                            |
                            v
                  FINAL CYLINDER LOAD
                         [mg/stk]
                            |
          +-----------------+-----------------+
          |                 |                 |
          v                 v                 v
       IGNITION           FUELING           TORQUE
                                             |
                                     actual load -> torque
                                             |
                                     torque request -> load

SIMK43 should therefore not be regarded simply as a MAF-based ECU.

It is more accurately described as a model-based cylinder-charge control system using the MAF sensor as its primary airflow measurement.

2. Airflow and Load Units

Siemens uses the term MAF for several related quantities. The engineering unit must therefore always be considered when interpreting a calibration or internal calculation.

MAF sensor signal

  • Unit: V or internal ADC representation
  • Meaning: electrical output of the MAF sensor.

Engine airflow

  • Unit: kg/h
  • Meaning: total fresh-air mass flowing through the complete engine intake.

Cylinder air charge

  • Unit: mg/stk
  • Meaning: fresh-air mass entering one cylinder during one intake event.

Torque

  • Unit: Nm
  • Meaning: indicated or effective engine torque.

The two principal airflow domains are:

MAF_KGH

and:

MAF_CYL

They describe the same airflow from two different perspectives.

MAF_KGH measured in kg/h represents the total airflow of the complete engine.

MAF_CYL measured in mg/stk represents the mass of fresh air entering one cylinder during one intake event.

Most combustion-related calibration maps operate in the cylinder-charge domain.

3. Measured Airflow Path

3.1 MAF Sensor Characteristic

The primary MAF characteristic in ca663056 is:

ID_MAF_TAB

Address:

0x11B4E

This table converts the electrical MAF sensor representation into total engine mass airflow.

Its output is expressed in kg/h.

Functionally:

MAF electrical signal
        |
        v
   ID_MAF_TAB
      0x11B4E
        |
        v
Engine airflow
     [kg/h]

The ca663056 disassembly directly references address 0x11B4E during initialization of the MAF conversion path, confirming that the table is actively used for MAF conversion.

The sensor characteristic can therefore be represented as:

MAF_RAW = ID_MAF_TAB(V_MAF)

This is the stage responsible for converting the physical MAF sensor signal into an engineering airflow quantity.

4. MAF Acquisition and Signal Conditioning

The ECU does not use a single instantaneous MAF sample directly as engine load.

The ca663056 disassembly shows that MAF measurements are accumulated over repeated acquisition periods and subsequently divided by the number of samples.

The measurement path therefore performs averaging before the airflow value is used elsewhere.

Conceptually:

MAF_AVG = Average(MAF_RAW)

The averaged airflow then passes through an operating-point-dependent correction.

The relevant calibration is:

IP_MAF_KGH_MES_FAC

Address:

0x193EC

SAM defines the function as:

IP_MAF_KGH_MES_FAC = f(N, TPS_SEG)

where:

  • N = engine speed
  • TPS_SEG = throttle operating region

The output of this map is a dimensionless correction factor.

The corrected measured airflow can therefore be represented as:

MAF_MES_COR = MAF_AVG x F_MAF(N, TPS)

The resulting quantity remains in:

kg/h

and represents the ECU's corrected physical measurement of total engine airflow.

5. Conversion from Engine Airflow to Cylinder Air Charge

The combustion model itself does not primarily operate in kg/h.

After corrected measured airflow has been obtained, the ECU converts total engine airflow into cylinder air charge using engine speed.

For a four-cylinder, four-stroke engine:

Intake events per hour = (RPM / 2) x 4 x 60

Therefore:

MAF_CYL [mg/stk] =
MAF_KGH [kg/h] x 1,000,000
--------------------------------
(RPM / 2) x 4 x 60

For a four-cylinder engine this simplifies to:

MAF_CYL [mg/stk] = 8333.333 x MAF_KGH [kg/h] / RPM

Example:

400 kg/h at 3000 rpm

MAF_CYL = 1111 mg/stk

At twice the engine speed:

400 kg/h at 6000 rpm

MAF_CYL = 556 mg/stk

The same total engine airflow therefore represents a different cylinder load depending on engine speed.

This distinction is fundamental to the SIMK43 load model.

6. Definition of Engine Load

For the remainder of the combustion-control system, the principal load quantity is cylinder air charge.

Conceptually:

LOAD = MAF_CYL

with units:

mg/stk

The basic conversion chain is:

MAF signal
    |
    v
Engine airflow
   [kg/h]
    |
    v
RPM conversion
    |
    v
Cylinder charge
   [mg/stk]
    |
    v
Engine load

This cylinder-charge quantity is used as the load coordinate by many ignition, fueling and torque-model functions.

7. Independent Intake-Manifold and Cylinder-Filling Model

In parallel with the physical MAF measurement, SIMK43 independently calculates airflow using a model of the intake system and the engine's cylinder-filling characteristics.

The core cylinder-flow model consists of two calibrations.

7.1 IP_EFF_VOL_OFS

Address:

0x1245E

Definition:

IP_EFF_VOL_OFS [kg/h] = f(N, VO)

where:

  • N = engine speed
  • VO = valve overlap

This calibration provides the base airflow offset of the cylinder-filling model.

7.2 IP_EFF_VOL_SLOP

Address:

0x1252A

Definition:

IP_EFF_VOL_SLOP [kg/(h*hPa)] = f(N, VO)

This calibration provides the pressure-dependent slope of the cylinder-filling model.

Together, the two maps describe the relationship between effective manifold pressure and cylinder airflow.

8. Offset and Slope Representation of Cylinder Filling

SIMK43 does not represent cylinder filling using one conventional percentage-VE table.

Instead, airflow is represented approximately as a linear relationship between an effective pressure quantity and airflow.

The basic relationship is:

MAF = S x P - O

where:

O = effective airflow offset
S = effective airflow slope
P = pressure-domain model input
O = IP_EFF_VOL_OFS(N, VO)

and:

S = IP_EFF_VOL_SLOP(N, VO)

The subtraction is performed using an unsigned saturating subtraction.

Therefore the complete relationship is more accurately represented as:

MAF = max(0, S x P - O)

This is important because the offset is not an airflow quantity added to the calculated airflow.

It is subtracted from the pressure-dependent term.

The units remain consistent:

[kg/(h*hPa)] x [hPa] - [kg/h]
=
[kg/h]

The ca663056 executable uses this same slope-minus-offset relationship at several locations in the manifold model.

However, the pressure-domain input is not always the same quantity.

Two important examples are:

MAF_MODEL_BASE =
max(0, EFF_VOL_SLOP x MAP - EFF_VOL_OFS)

and:

MAF_FOR_LOAD =
max(0, EFF_VOL_SLOP x MAP_MODEL_DELTA - EFF_VOL_OFS)

The second equation is particularly important because it is the airflow quantity from which the normal manifold-model cylinder-load value is calculated.

The effective pressure term should therefore not automatically be interpreted as raw manifold pressure in every part of the model.


9. Effect of Valve Overlap

Both base airflow coefficients depend on valve overlap.

O = f(N, VO)

S = f(N, VO)

The model is therefore explicitly aware of camshaft timing.

Changing valve overlap changes the predicted relationship between manifold pressure and cylinder airflow.

Conceptually:

Valve timing
     |
     v
Valve overlap
     |
     v
IP_EFF_VOL_OFS
IP_EFF_VOL_SLOP
     |
     v
Cylinder-filling characteristic
     |
     v
Calculated airflow

VVT therefore forms part of the physical air model rather than being treated only as an independent actuator.

10. Temperature Correction of Cylinder Filling

Cylinder filling changes with intake air temperature and engine thermal state.

The principal temperature-dependent corrections are:

IP_EFF_TIA_FAC

Address:

0x15539

Definition:

F_TIA = f(N, MAF)

This represents the effect of intake-air temperature on the cylinder-filling model.

IP_EFF_TCO_FAC

Address:

0x154F9

Definition:

F_TCO = f(N, MAF)

This represents the effect of coolant temperature on the cylinder-filling model.

The ECU combines the temperature influences into a common correction quantity.

The resulting correction is filtered before it is applied to the cylinder-flow model.

The relevant filtering calibration is:

IP_CRLC_EFF_VOL_COR

Address:

0x154ED

Definition:

CRLC_VE = f(N)

The resulting thermal correction can therefore be represented conceptually as a low pass filter:

F_THERM = LPF[f(TIA, TCO, N, LOAD)]

The filtered result is:

EFF_VOL_TEMP_FAC

Conceptually:

Engine speed
     +
Operating load
     +
TIA
     +
TCO
     |
     v
Thermal correction calculation
     |
     v
EFF_VOL_TEMP_FAC_RAW
     |
     v
IP_CRLC_EFF_VOL_COR
     |
     v
EFF_VOL_TEMP_FAC

The filtered thermal factor is applied to the cylinder-flow slope.

The offset does not pass through the same thermal multiplication path..

11. Ambient-Pressure Compensation

The base cylinder-flow characteristic is also corrected according to ambient pressure.

The relevant calibrations are:

IP_EFF_VOL_OFS_AMP

Address:

0x1251E

Definition:

F_OFS_AMP = f(AMP_AD)

and:

IP_EFF_VOL_SLOP_AMP

Address:

0x125EA

Definition:

F_SLOP_AMP = f(AMP_AD)

Both outputs are dimensionless correction factors.

AMP_AD represents the ECU's adapted ambient-pressure state.

The ambient-pressure corrections modify both the offset and slope of the cylinder-flow characteristic.

12. Corrected Cylinder-Flow Coefficients

The complete cylinder-flow coefficients can be represented as follows.

The base offset is:

O_0 = IP_EFF_VOL_OFS(N, VO)

The base slope is:

S_0 = IP_EFF_VOL_SLOP(N, VO)

The effective offset is:

O_EFF = O_0 x F_OFS_AMP

The effective slope is:

S_EFF = S_0 x F_THERM x F_SLOP_AMP

The corresponding runtime variables are:

O_EFF = EFF_VOL_OFS
        RAM 0xF8CE

S_EFF = EFF_VOL_SLOP
        RAM 0xF8D0

The disassembly shows the slope being corrected by the filtered thermal correction and then by the ambient-pressure correction.

The offset is separately corrected by its own ambient-pressure factor.

The final modeled airflow equation is:

MAF_MDL_KGH = O_EFF + S_EFF x P_EFF

This is the central cylinder-filling relationship of the SIMK43 airflow model.

13. Manifold Filling and Pressure-Ratio Model

The cylinder-flow equation is only one part of a larger dynamic intake-manifold model.

The model maintains several internal representations of airflow and manifold pressure.

One basic airflow calculation is:

MAF_MODEL_BASE =
max(0, MAP x EFF_VOL_SLOP - EFF_VOL_OFS)

The resulting airflow is stored as:

MAF_MODEL_BASE
RAM 0xCC36

It is also converted into a corresponding base cylinder-load quantity:

LOAD_MODEL_BASE
RAM 0xCC38

The manifold model additionally contains pressure-ratio-dependent airflow functions.

These include:

ID_MAF_FAC_OFS

ID_MAF_FAC_OFS = f(PQ_ESTIM)

and:

ID_MAF_FAC_SLOP

ID_MAF_FAC_SLOP = f(PQ_ESTIM)

where PQ and PQ_ESTIM represent pressure-ratio states used by the intake model.

Another coefficient is:

IP_MAF_MDL_CON_1

which provides a temperature-dependent manifold-model coefficient.

The executable combines these quantities with the dynamic manifold state to calculate:

MAF_MODELED_RAW
RAM 0xCC34

This quantity is subsequently filtered to form:

MAF_MODELED
RAM 0xCC88

The model also predicts the evolution of manifold pressure.

Important runtime quantities include:

MAP_MODEL_PRED
MAP_MODEL_ESTIMATE
MAP_MODEL_LIMITED
MAP_MODEL_DELTA

The final pressure difference used by the normal modeled-load calculation is formed as:

MAP_MODEL_DELTA =
MAP_MODEL_LIMITED
-
MAP_MODEL_ESTIMATE

with:

MAP_MODEL_DELTA
RAM 0xCC68

The modeled-load airflow calculation then uses this pressure-domain difference:

MAF_FOR_LOAD =
max(0, EFF_VOL_SLOP x MAP_MODEL_DELTA - EFF_VOL_OFS)

The important consequence is that the normal modeled cylinder load is not calculated directly from raw MAP.

It is calculated from a pressure state produced by the dynamic manifold model.

The overall structure is therefore closer to:

RPM / VVT / temperature / ambient pressure
                     |
                     v
          EFF_VOL_SLOP / OFS
                     |
          +----------+----------+
          |                     |
          v                     v
   Base airflow model      Manifold dynamics
          |                     |
          |               MAP_MODEL_PRED
          |                     |
          |               MAP_MODEL_ESTIMATE
          |                     |
          |               MAP_MODEL_LIMITED
          |                     |
          |                     v
          |              MAP_MODEL_DELTA
          |                     |
          +----------+----------+
                     |
                     v
               MAF_FOR_LOAD
                     |
                     v
              LOAD_VE_MODEL

This also explains why changing IP_EFF_VOL_SLOP or IP_EFF_VOL_OFS does not necessarily produce a directly proportional change in LOAD_VE_MODEL.

The coefficients influence both the airflow calculation and the internal dynamic manifold state from which MAP_MODEL_DELTA is produced.

14. Intake-System Pressure Loss

The intake model also accounts for pressure loss between the outside atmosphere and the pressure available upstream of the throttle.

SAM defines:

IP_AMP_DEC

as:

DELTA_P_INTAKE = f(MAF_THR)

As airflow increases, the pressure loss through the intake tract also increases.

Conceptually:

P_UPSTREAM = AMP_AD - DELTA_P_INTAKE

This upstream pressure participates in the throttle pressure-ratio and manifold-filling calculations.

The model therefore does not assume that atmospheric pressure is always fully available at the throttle inlet.

15. Modeled Airflow to Modeled Cylinder Charge

An important distinction exists between the ECU's modeled airflow and its modeled cylinder-load calculation.

These are related quantities but they are not the same calculation.

15.1 Modeled Airflow

The manifold model first calculates:

MAF_MODELED_RAW
RAM 0xCC34

This value is passed through the modeled-airflow filter.

The resulting quantity is:

MAF_MODELED
RAM 0xCC88

MAF_MODELED is one of the two candidates used by the airflow source selector.

The other candidate is the measured MAF signal.

15.2 Load-Model Airflow

The normal modeled cylinder-load path independently calculates:

MAF_FOR_LOAD =
max(
    0,
    EFF_VOL_SLOP x MAP_MODEL_DELTA
    -
    EFF_VOL_OFS
)

The result is stored as:

MAF_FOR_LOAD
RAM 0xCC32

This airflow is then converted using engine speed into:

LOAD_VE_MODEL
RAM 0xCC7C

For the four-cylinder engine, the engineering relationship is approximately:

LOAD_VE_MODEL [mg/stk] =
8333.333
x MAF_FOR_LOAD [kg/h]
/
RPM

Therefore:

MAF_MODELED

is not simply converted directly into:

LOAD_VE_MODEL

They are separate outputs of the same manifold-model system.

This distinction is fundamental to understanding the later source-selection logic.

16. MAF Pulsation Supervision

The physical MAF signal can become unreliable when intake-flow pulsation or reverse-flow effects become sufficiently large.

SIMK43 therefore contains a dedicated MAF-pulsation supervision system.

One of the principal calibrations is:

IP_MAF_PULS_MAX

Address:

0x12F50

Definition:

MAF_PULS_MAX = f(N)

The measured-MAF routine records the maximum and minimum raw MAF values over the sampling interval.

The spread is calculated as:

MAF_RAW_SPREAD =
MAF_RAW_MAX
-
MAF_RAW_MIN

The spread is then converted into the cylinder-charge domain using engine speed.

The result is stored as:

MAF_PULSATION_AMPLITUDE

The pulsation state is represented by:

FD24.9

When the pulsation state is active, the physical MAF is no longer accepted by the normal airflow-source selector.

Conceptually:

MAF samples
    |
    v
Maximum / minimum spread
    |
    v
Convert spread to mg/stk
    |
    v
Compare with
IP_MAF_PULS_MAX
    |
    v
Debounce / hysteresis
    |
    v
FD24.9
MAF pulsation active

The pulsation state therefore participates directly in airflow-source selection and is not merely a diagnostic indication.


17. Measured-Airflow and Modeled-Airflow Arbitration

SIMK43 contains an explicit source-selection stage between measured and modeled airflow.

The principal source-selection state is:

FD44.8

The executable sets FD44.8 only when the measured MAF is considered suitable for use.

The selection logic can be represented as:

If MAF diagnostic fault is active:
    FD44.8 = 0

Else if MAF pulsation is active:
    FD44.8 = 0

Else if additional MAF/model fallback
qualification is active:
    FD44.8 = 0

Else:
    FD44.8 = 1

The selected airflow is then:

If FD44.8 = 1:

    MAF_SELECTED = MAF_MES


If FD44.8 = 0:

    MAF_SELECTED = MAF_MODELED

The runtime variables are:

MAF_MES
RAM 0xCC26

MAF_SELECTED
RAM 0xCC5C

MAF_MODELED
RAM 0xCC88

The airflow architecture can therefore be represented as:

Measured MAF
MAF_MES
    |
    |
    +-----------+
                |
                v
           FD44.8 selector
                |
                v
          MAF_SELECTED
                ^
                |
    +-----------+
    |
Modeled MAF
MAF_MODELED

However, this airflow-source selector does not by itself determine the final cylinder-load source.

The ECU contains a second and separate arbitration stage for LOAD_FINAL.


18. Final Cylinder-Load Determination

The final cylinder-load logic is more complex than a direct conversion of MAF_SELECTED.

SIMK43 maintains several simultaneous cylinder-load representations.

Important runtime values are:

LOAD_DIRECT
RAM 0xCC2A

LOAD_FINAL
RAM 0xCC30

LOAD_VE_MODEL
RAM 0xCC7C

LOAD_ALT
RAM 0xCC7E

18.1 Direct Measured-MAF Load

The measured-MAF routine converts MAF_MES directly into cylinder charge.

Conceptually:

LOAD_DIRECT =
8333.333
x MAF_MES
/
RPM

LOAD_DIRECT therefore represents the direct cylinder-load equivalent of the physical MAF measurement.

18.2 Alternate Load

Under normal conditions, LOAD_ALT is filtered toward LOAD_DIRECT.

Conceptually:

LOAD_ALT =
Filter(
    previous LOAD_ALT,
    LOAD_DIRECT
)

LOAD_ALT therefore normally follows the measured-MAF-derived cylinder load while providing additional smoothing.

Under some fallback/model states, LOAD_ALT can instead be reconstructed from the manifold model.

LOAD_ALT should consequently be regarded as an alternate working load state rather than as a simple duplicate of LOAD_DIRECT.

18.3 Normal Modeled-Load Candidate

The normal manifold-model branch calculates:

MAF_FOR_LOAD =
max(
    0,
    EFF_VOL_SLOP x MAP_MODEL_DELTA
    -
    EFF_VOL_OFS
)

and then:

LOAD_VE_MODEL =
8333.333
x MAF_FOR_LOAD
/
RPM

18.4 Final Normal-Path Source Selector

After LOAD_VE_MODEL has been calculated, the ECU executes another source-selection stage.

A calibration byte is located at:

0x1045A

Stock ca663056 value:

1

The current reverse-engineering descriptive name is:

C_LOAD_FORCE_VE_MODEL

The official Siemens calibration name has not yet been confirmed.

The executable logic is:

If 0x1045A != 0:

    LOAD_FINAL = LOAD_VE_MODEL


Else:

    If FD44.8 = 1:

        LOAD_FINAL =
        LOAD_ALT x LOAD_ALT_SCALE

    Else:

        LOAD_FINAL = LOAD_VE_MODEL

This means that the stock value:

0x1045A = 1

forces the normal final-load path to use LOAD_VE_MODEL.

This occurs independently of the earlier MAF source selector.

Consequently the following state is completely valid in the stock software:

FD44.8 = 1

MAF_SELECTED = MAF_MES

but:

LOAD_FINAL = LOAD_VE_MODEL

Measured MAF selection therefore does not imply measured-MAF-derived final load.

The ECU contains two distinct decisions:

Decision 1:

Which airflow source is selected?

MAF_MES
or
MAF_MODELED


Decision 2:

Which cylinder-load representation
becomes LOAD_FINAL?

LOAD_ALT
or
LOAD_VE_MODEL
or
diagnostic fallback load

This distinction is one of the most important characteristics of the SIMK43 airflow architecture.

18.5 LOAD_ALT_SCALE

When 0x1045A is zero and the measured MAF is accepted, the normal branch does not copy LOAD_ALT directly.

It applies:

LOAD_FINAL =
LOAD_ALT x LOAD_ALT_SCALE

LOAD_ALT_SCALE is calculated dynamically by the manifold model.

It should therefore not automatically be assumed to equal 1.0.

This scaling allows the alternate measured-air-derived load state to remain coordinated with the dynamic manifold model.

18.6 Alternate and Fallback Load Branches

Additional diagnostic and plausibility states can bypass the normal 0x1045A branch.

Under one alternate branch, when the hard MAF signal diagnostic is not active, the ECU performs:

MAF_FOR_LOAD = MAF_MES

LOAD_FINAL = LOAD_ALT

This branch therefore uses the alternate load directly without passing through the normal LOAD_VE_MODEL / 0x1045A arbitration.

The complete final-load logic is consequently state-dependent.

The 0x1045A selector describes the normal modeled-load branch but is not the only possible route to LOAD_FINAL.

18.7 MAF Signal Diagnostic

The ECU contains a separate electrical/range diagnostic for the physical MAF signal.

The principal calibrated thresholds identified in ca663056 are:

CAL_MAF_SIGNAL_RANGE_HIGH_THRESHOLD
0x105CC

CAL_MAF_SIGNAL_RANGE_LOW_THRESHOLD
0x105D4

The ECU compares MAF_MES against these limits under qualified operating conditions.

The low-airflow check is additionally restricted to a calibrated engine-speed operating window.

After diagnostic qualification and debounce, the ECU produces:

MAF_SIGNAL_RANGE_DIAG_ACTIVE

which causes:

FD46.5 = 1

FD46.5 therefore represents an active MAF signal diagnostic fault.

The airflow source-selection routine also responds to this state by clearing FD44.8.

Conceptually:

MAF signal outside valid range
          |
          v
Diagnostic qualification
          |
          v
MAF_SIGNAL_RANGE_DIAG_ACTIVE
          |
          v
FD46.5 = 1
          |
          +----------------------+
          |                      |
          v                      v
FD44.8 cleared            Fallback load logic

18.8 IP_MAF_TPS_DIAG Failsafe Airflow

SIMK43 contains a dedicated calibrated airflow table for the MAF diagnostic fallback path.

The Siemens calibration name is:

IP_MAF_TPS_DIAG

Address:

0x130DC

RPM axis:

0x10D1F

SAM describes this calibration as:

Limp home mass air flow in kg/h
in case of MAF and TPS failure

In the ca663056 executable, the table is used in the hard MAF-fault fallback branch to produce MAF_FOR_LOAD.

The resulting airflow is converted directly into LOAD_FINAL using engine speed.

Conceptually:

MAF diagnostic fallback state
          |
          v
IP_MAF_TPS_DIAG(N)
          |
          v
MAF_FOR_LOAD
          |
          v
RPM conversion
          |
          v
LOAD_FINAL

The ca663056 calibration contains the following breakpoints and airflow values:

RPM       MAF fallback

512        9 kg/h
800       13 kg/h
1504      15 kg/h
2016      20 kg/h
3008      27 kg/h
4992      30 kg/h

IP_MAF_TPS_DIAG is therefore a replacement-airflow calibration.

It is not the threshold used to determine whether the MAF sensor is faulty.

The MAF fault decision is made by the separate signal-range diagnostic described above.


19. Reference Torque Model

The principal forward relationship between cylinder charge and torque is:

IP_TQI_REF

Address:

0x14D68

Definition:

TQI_REF = f(N, MAF_CYL)

where:

  • MAF_CYL is cylinder fresh-air charge in mg/stk.
  • TQI_REF is reference indicated torque in Nm.

The function therefore represents:

Cylinder air charge
      [mg/stk]
          |
          v
     IP_TQI_REF
          |
          v
Reference indicated torque
          [Nm]

This map describes the torque the engine is expected to produce from a given amount of cylinder fresh air.

The load quantity ultimately presented to the surrounding combustion and torque functions is based on LOAD_FINAL.


20. Torque Loss Model

Indicated torque is not identical to torque available at the crankshaft.

SIMK43 separately models friction and pumping losses.

The principal calibration is:

IP_TQFR

Address:

0x14AE0

Definition:

TQFR = f(N, MAF_CYL)

This represents base friction and pumping losses as a function of engine speed and cylinder load.

Conceptually:

TQ_EFFECTIVE =
TQI
-
TQ_FRICTION
-
TQ_PUMPING
-
TQ_ACCESSORY
-
other losses

The torque system therefore combines the calculated indicated combustion torque with independently calculated engine losses.


21. Inverse Torque-to-Air Model

SIMK43 also contains the inverse relationship between torque and cylinder air charge.

The relevant calibration is:

IP_MAF_SP

Address:

0x12F5C

Definition:

MAF_SP = f(N, TQI_SP)

The output is:

mg/stk

This calibration converts desired indicated torque into the cylinder air charge required to produce that torque.

The two principal torque/air relationships are therefore:

Forward model

MAF_CYL -> TQI

through:

IP_TQI_REF

and:

Inverse model

TQI_SP -> MAF_CYL_SP

through:

IP_MAF_SP

Together, these functions form the central air-to-torque and torque-to-air relationship of SIMK43.


22. Air-Charge Control Objective

Once the torque system has calculated a desired cylinder charge:

MAF_CYL_SP

it can be compared with the estimated actual cylinder charge represented by the ECU's working load state.

Conceptually:

E_AIR =
MAF_CYL_SP
-
MAF_CYL_ACT

The air-path controller can then act on the available air-control actuators, mainly the idle-air actuator because the main throttle is mechanically cable operated.

This illustrates why the SIMK43 torque-control structure is fundamentally based around cylinder air charge rather than throttle angle alone.


23. IVVT Airflow Prediction

SIMK43 contains an additional airflow estimator associated with the IVVT system.

One relevant calibration is:

IP_MAF_IVVT_1

Address:

0x193A4

SAM definition:

IP_MAF_IVVT_1 [mg/TDC]
=
f(N_32, TPS)

SAM describes this map as:

Calculated value for mass air flow
when no TPS error is present

The associated calibration family includes:

  • IP_MAF_IVVT_2 - calculated airflow used when a TPS error exists.
  • IP_MAF_TPS_FAC - throttle-position weighting used by the IVVT airflow calculation.
  • IP_MAF_ADD_ISAPWM - calculated additional airflow through the idle-air actuator.
  • IP_MAF_FAC_TIA - intake-air-temperature correction for the IVVT airflow calculation.

The ca663056 disassembly confirms a direct reference to:

IP_MAF_IVVT_1
0x193A4

A second one-dimensional lookup immediately following this table is located at:

0x193E4

Its position, size and lookup form are consistent with the Siemens IP_MAF_IVVT_2 calibration.

The executable reference to IP_MAF_IVVT_1 occurs in the knock-reference calculation.

The calculated value is combined with the knock-reference operating-point factor before the final knock-reference factor is filtered.

Therefore this IVVT airflow estimator is not the source used directly to write:

MAF_FOR_LOAD

or:

LOAD_FINAL

during the main airflow/load calculation.

The IVVT estimator should therefore be distinguished from both:

Main manifold / cylinder-filling model:

IP_EFF_VOL_OFS
IP_EFF_VOL_SLOP

and:

MAF diagnostic fallback:

IP_MAF_TPS_DIAG

The three systems serve different purposes.

Conceptually:

IP_EFF_VOL_OFS / SLOP
        |
        v
Main manifold and
cylinder-load model


IP_MAF_IVVT_1 / 2
        |
        v
Auxiliary IVVT airflow estimate
used by IVVT-related /
knock-reference calculations


IP_MAF_TPS_DIAG
        |
        v
Diagnostic substitute airflow
for MAF fallback


24. End-to-End Functional Sequence

24.1 Measured-Air Path

MAF electrical signal
        |
        v
Sensor conversion
        |
        v
Repeated sampling
        |
        v
MAF_RAW_AVG
        |
        v
Measured-airflow scaling
        |
        v
MAF_MES
kg/h
        |
        +--------------------------+
        |                          |
        v                          v
LOAD_DIRECT                   MAF source
mg/stk                        supervision
                                   |
                                   v
                             MAF_SELECTED

24.2 Modeled-Air Path

RPM
Valve overlap
Ambient pressure
TIA
TCO
Throttle / manifold state
        |
        v
IP_EFF_VOL_OFS
IP_EFF_VOL_SLOP
        |
        v
Temperature correction
        |
        v
Ambient correction
        |
        v
EFF_VOL_OFS
EFF_VOL_SLOP
        |
        +--------------------------+
        |                          |
        v                          v
Static / dynamic             Dynamic manifold
airflow model                pressure observer
        |                          |
        v                          v
MAF_MODELED_RAW             MAP_MODEL_DELTA
        |                          |
        v                          v
Filtering                  EFF_VOL slope/offset
        |                          |
        v                          v
MAF_MODELED                 MAF_FOR_LOAD
                                   |
                                   v
                              RPM conversion
                                   |
                                   v
                             LOAD_VE_MODEL

24.3 Airflow and Load Arbitration

The two arbitration stages are separate.

AIRFLOW SOURCE SELECTION

MAF_MES ------------------+
                          |
                          v
                       FD44.8
                          |
                          v
                    MAF_SELECTED
                          ^
                          |
MAF_MODELED --------------+

The final load is selected separately:

LOAD_DIRECT
    |
    v
LOAD_ALT -----------------------------+
                                       |
                                       |
LOAD_VE_MODEL -------------------------+----+
                                            |
                                            v
                              Final load-source logic
                                            |
                               0x1045A / status bits
                                            |
                                            v
                                       LOAD_FINAL

A measured MAF can therefore be selected while the final cylinder load still comes from the manifold model.


25. Complete Mathematical Model

25.1 Measured Airflow

MAF_RAW_AVG =
Average(MAF samples)

The averaged signal is converted using the ECU's runtime MAF conversion scale:

MAF_MES =
Scale(
    MAF_RAW_AVG,
    MAF_CONVERSION_SCALE
)

25.2 Direct Measured Cylinder Charge

LOAD_DIRECT =
8333.333
x MAF_MES
/
RPM

25.3 Base Cylinder-Flow Coefficients

O_0 =
IP_EFF_VOL_OFS(N, VO)

S_0 =
IP_EFF_VOL_SLOP(N, VO)

25.4 Corrected Cylinder-Flow Coefficients

O_EFF =
O_0
x F_OFS_AMP
S_EFF =
S_0
x F_THERM
x F_SLOP_AMP

where:

O_EFF = EFF_VOL_OFS

S_EFF = EFF_VOL_SLOP

25.5 Base Modeled Airflow

MAF_MODEL_BASE =
max(
    0,
    MAP x S_EFF
    -
    O_EFF
)

25.6 Dynamic Pressure State

MAP_MODEL_DELTA =
MAP_MODEL_LIMITED
-
MAP_MODEL_ESTIMATE

25.7 Modeled Load Airflow

MAF_FOR_LOAD =
max(
    0,
    MAP_MODEL_DELTA x S_EFF
    -
    O_EFF
)

25.8 Modeled Cylinder Load

LOAD_VE_MODEL =
8333.333
x MAF_FOR_LOAD
/
RPM

25.9 Selected Engine Airflow

If FD44.8 = 1:

    MAF_SELECTED = MAF_MES


Else:

    MAF_SELECTED = MAF_MODELED

25.10 Normal Final-Load Selection

If C_LOAD_FORCE_VE_MODEL != 0:

    LOAD_FINAL =
    LOAD_VE_MODEL


Else if FD44.8 = 1:

    LOAD_FINAL =
    LOAD_ALT
    x LOAD_ALT_SCALE


Else:

    LOAD_FINAL =
    LOAD_VE_MODEL

The stock ca663056 calibration uses:

C_LOAD_FORCE_VE_MODEL = 1

at:

0x1045A

25.11 MAF Diagnostic Substitute Airflow

In the appropriate diagnostic fallback state:

MAF_FAILSAFE =
IP_MAF_TPS_DIAG(N)

followed by:

LOAD_FINAL =
8333.333
x MAF_FAILSAFE
/
RPM

25.12 Forward Torque Model

TQI_REF =
IP_TQI_REF(
    RPM,
    LOAD_FINAL
)

25.13 Inverse Torque Model

MAF_CYL_SP =
IP_MAF_SP(
    RPM,
    TQI_SP
)


26. Functional Interpretation

The SIMK43 airflow architecture can be divided into five principal functional layers.

1. Measurement

The physical MAF signal is sampled, averaged and converted into measured total engine airflow.

The same measured airflow is directly converted into LOAD_DIRECT.

2. Physical Manifold Model

An independent dynamic intake-manifold model predicts airflow and manifold state using engine speed, valve overlap, pressure, temperature, ambient conditions and intake-system behaviour.

3. Airflow Source Arbitration

The ECU chooses between:

MAF_MES

and:

MAF_MODELED

to produce:

MAF_SELECTED

4. Cylinder-Load Arbitration

The ECU independently maintains and arbitrates between:

LOAD_DIRECT
LOAD_ALT
LOAD_VE_MODEL
diagnostic fallback load

to produce:

LOAD_FINAL

The stock ca663056 calibration explicitly permits the selected MAF to remain the physical sensor value while LOAD_FINAL is forced to the manifold-model-derived LOAD_VE_MODEL.

5. Torque Coordination

The ECU converts final cylinder air charge into estimated torque and requested torque back into required cylinder air charge.

The resulting architecture is therefore not simply:

MAF sensor
    |
    v
Engine load

Instead it is:

             MEASURED AIRFLOW
                    |
                    +----------------+
                    |                |
                    v                v
              LOAD_DIRECT       MAF source
                    |           arbitration
                    |                |
                    v                v
                LOAD_ALT       MAF_SELECTED
                    |
                    |
                    +---------------------------+
                                                |
                                                v
                                      FINAL LOAD ARBITRATION
                                                |
                                                v
                                           LOAD_FINAL
                                                ^
                                                |
                    +---------------------------+
                    |
                    v
          MANIFOLD / CYLINDER MODEL
                    |
                    +----------------+
                    |                |
                    v                v
              MAF_MODELED      LOAD_VE_MODEL

Physical airflow measurement and the independent manifold model therefore remain parallel throughout a significant part of the ECU.

The selected airflow source and the selected cylinder-load source are related, but they are not identical decisions.

This separation explains how the ECU can use the physical MAF sensor as the accepted airflow source while still using the modeled cylinder-filling value as the authoritative final engine load.