Skip to content
Manual / Part X / 16 Torque Model & Inversion
Chapter 16 · Torque Management, Driveline & Transmission

Torque Model & Inversion

KFMIRL vs KFMIOP, the inversion rule, and why E-Gas goes limp.

Calibration symbols
KFMIOP KFMIRL MISOLV NMOT_W WPED_W DMLLR KFPED LDRXN G186 MIFA ASR GRA MSR N75
ECUs covered
06A906032LP
Size
14 symbols · 1 diagram · ~916 words

KFMIRL vs KFMIOP, the inversion rule, and why E-Gas goes limp.

One of the most profound innovations of Bosch Motronic ME7.5 is the transition from direct throttle-angle actuation to a fully decoupled, torque-based engine management architecture (Momentenstruktur). In ME7.5, the accelerator pedal does not command throttle plate opening; instead, it generates an indicated engine torque request (m_{\text{ifa}}). All competing vehicular demands—including the driver, cruise control (GRA), traction control (ASR), engine drag torque regulation (MSR), electronic stability control (ESP), and transmission shift torque interventions—are arbitrated by a centralized torque coordinator into a single commanded torque value.

To convert torque requests into physical airflow and conversely verify that actual engine power matches commanded intent, the ECU relies on two tightly coupled, mathematically inverted 3D maps: KFMIRL and KFMIOP. Understanding and maintaining their mathematical symmetry is mandatory for preventing electronic throttle limp-home mode.

┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
│                   BOSCH ME7.5 TORQUE-BASED CONTROL & SAFETY MONITORING ARCHITECTURE              │
├──────────────────────────────────────────────────────────────────────────────────────────────────┤
│                                        DRIVER INPUT                                              │
│                                  Pedal Position (wped_w)                                         │
│                                            │                                                     │
│                                            ▼                                                     │
│                                   [ KFPED Driver Request ]                                       │
│                                            │                                                     │
│                                            ▼                                                     │
│                   TORQUE COORDINATION (Arbitration of Internal & External Demands)               │
│                   • Cruise Control (misolv)      • Traction Control (ASR)                        │
│                   • Idle Speed Control (DMLLR)   • Transmission Shift Intervention               │
│                                            │                                                     │
│                                            ▼                                                     │
│                              Target Indicated Torque (misolv)                                    │
│                                            │                                                     │
│                       ┌────────────────────┴────────────────────┐                                │
│                       ▼                                         ▼                                │
│            [ KFMIRL Target Load ]                     [ ELECTRONIC MONITORING ]                  │
│       Torque + RPM ──► Target Load (rlsol)            Compares Actual vs Commanded Torque        │
│                       │                                         ▲                                │
│                       ▼                                         │                                │
│             Throttle & Boost Control                  [ KFMIOP Actual Torque ]                   │
│       Actuates Throttle (DK) & N75 Wastegate          Actual Load (rl) + RPM ──► Actual Torque   │
│                       │                                         │                                │
│                       ▼                                         ▼                                │
│                ENGINE COMBUSTION  ──────────────────────► SAFETY COMPARATOR                      │
│            Cylinder Air Filling (rl)                  If Actual > Commanded: LIMP MODE           │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘

16.1. The Dual-Map Equilibrium: KFMIRL vs. KFMIOP#

1. KFMIRL (Kennfeld Sollfüllung / Target Cylinder Filling)#
  • Role: Forward translation path (Feedforward Air Request).
  • Inputs: Engine Speed (nmot_w, X-axis) and Target Indicated Torque (misolv, Y-axis).
  • Output: Target Relative Cylinder Air Filling (r_{\text{lsol}}, in %).
  • Descriptor Address (06A906032LP): 0x015088 (Data at 0x0150CC, 16x16 grid).
  • Physical Meaning: "To produce X\% torque at Y\text{ RPM}, how much air mass must enter the cylinder?"
2. KFMIOP (Kennfeld Optimales Motormoment / Optimal Indicated Torque)#
  • Role: Inverse feedback path (Safety & Ignition Coordination).
  • Inputs: Engine Speed (nmot_w, X-axis) and Actual Relative Cylinder Air Filling (r_l, Y-axis).
  • Output: Actual Indicated Engine Torque (m_{\text{iind}}, in % of maximum theoretical torque).
  • Descriptor Address (06A906032LP): 0x014E54 (Data at 0x014E84, 11x16 grid).
  • Physical Meaning: "Given that the engine has ingested Z\% air mass at Y\text{ RPM}, how much torque is it currently generating?"

16.2. The Inversion Rule & The Cause of Electronic Throttle Limp Mode#

In a correctly calibrated ECU, KFMIOP must be the exact mathematical inverse of KFMIRL:

r_l = \mathbf{KFMIRL}(N, \text{Torque}) \iff \text{Torque} = \mathbf{KFMIOP}(N, r_l)

The Fatal Calibration Error#

A common amateur tuning error is raising KFMIRL values (or raising LDRXN boost ceiling) to increase boost pressure while leaving factory KFMIOP untouched.

  1. When the turbocharger spools, actual cylinder filling (r_l) rises to 170\%.
    • Cuts current to the electronic throttle actuator, allowing the return spring to pull the butterfly plate back to the mechanical limp-home position (6.5\text{°}).
    • Illuminates the EPC warning lamp and Check Engine Light.
    • Sets DTC P1297 / 17705 (Pressure Drop Between Turbo and Throttle Valve) or P1176 (Torque Monitoring Exceeded).
  2. The ECU feeds r_l = 170\% into the un-rescaled factory KFMIOP table.
  3. Factory KFMIOP saturates or reports that the engine is producing far more torque than the driver commanded via pedal (mifa).
  4. Safety Level 2 Monitoring Fault (E-Gas Überwachung): The safety monitor concludes that the electronic throttle motor (G186) or accelerator pedal potentiometer (G79/G185) has suffered a mechanical failure or stuck-open defect.
  5. Immediate Retaliation:

16.3. Algorithmic Inverter Implementation (me7_torque_inverter.py)#

To eliminate torque-monitoring faults when raising boost targets, KFMIOP must be recalculated using 2D piecewise linear surface inversion. Below is the Python mathematical generator that inverts any modified KFMIRL map into a fully compliant KFMIOP table:

#!/usr/bin/env python3
"""
Bosch ME7.5 Torque Matrix Inverter (KFMIRL -> KFMIOP)
Generates mathematically compliant, limp-free inverse torque surfaces.
"""

import numpy as np

def invert_kfmirl_to_kfmiop(kfmirl_rpm_axis, kfmirl_torque_axis, kfmirl_data,
                             target_load_axis):
    """
    Inverts KFMIRL (Torque -> Load) into KFMIOP (Load -> Torque).
    kfmirl_data: 2D array [len(torque_axis), len(rpm_axis)]
    target_load_axis: Desired Y-axis breakpoints for KFMIOP
    """
    num_rpm = len(kfmirl_rpm_axis)
    num_load = len(target_load_axis)
    kfmiop_data = np.zeros((num_load, num_rpm))

    for col_idx in range(num_rpm):
        # Extract the load response curve for this specific RPM column
        load_curve = kfmirl_data[:, col_idx]
        torque_curve = kfmirl_torque_axis

        # Ensure monotonic increase for clean 1D interpolation
        sort_indices = np.argsort(load_curve)
        clean_load = load_curve[sort_indices]
        clean_torque = torque_curve[sort_indices]

        # Interpolate: Given target load, find corresponding torque
        # np.interp handles monotonic 1D interpolation with flat extrapolation
        interpolated_torque = np.interp(target_load_axis, clean_load, clean_torque)
        kfmiop_data[:, col_idx] = np.round(interpolated_torque, 2)

    return kfmiop_data

# Example Demonstration:
if __name__ == '__main__':
    # Sample RPM Breakpoints (16 points)
    rpm_axis = np.array([800, 1200, 1600, 2000, 2400, 2800, 3200, 3600,
                         4000, 4400, 4800, 5200, 5600, 6000, 6400, 6800])
    # KFMIRL Commanded Torque Axis (0% to 100%)
    torque_req = np.array([0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100])

    # Target KFMIOP Load Axis Breakpoints (up to 210% high-boost load)
    kfmiop_load_axis = np.array([15, 30, 45, 60, 75, 90, 110, 130, 150, 175, 210])

    print("ME7.5 Torque Inverter initialized. Ready for KFMIRL surface processing.")

Cross-referenced on shared calibration symbols, not on subject matter — these are the chapters that touch the same maps.

← Previous chapter · Contents · Next chapter →

Related

Cross-referenced on shared calibration symbols, not on subject matter — these are the chapters that touch the same maps.

25 Troubleshooting & Failsafes
KFMIOPWPED_WKFMIRLLDRXNN75NMOT_W
02 Bosch Project Taxonomy
MSRASRKFMIRLN75NMOT_W
03 Benchmark Calibrations
KFPEDKFMIOPKFMIRLLDRXN
06 Memory Geometry & Axes
KFPEDKFMIOPKFMIRLLDRXN
11 Flash Checksum Hierarchy
KFPEDKFMIOPKFMIRLLDRXN
55 Flash Map & Task Tree
MSRASRG186NMOT_W