SI Controller

Spark-ignition engine controller that uses the driver torque request

  • Library:
  • Powertrain Blockset / Propulsion / Combustion Engine Controllers

Description

The SI Controller block implements a spark-ignition (SI) controller that uses the driver torque request to calculate the open-loop air, fuel, and spark actuator commands that are required to meet the driver demand.

You can use the SI Controller block in engine control design or performance, fuel economy, and emission tradeoff studies. The core engine, throttle, and turbocharger wastegate subsystems require the commands that are output from the SI Controller block.

The block uses the commanded torque and engine speed to determine these open-loop actuator commands:

  • Throttle position percent

  • Wastegate area percent

  • Injector pulse-width

  • Spark advance

  • Intake cam phaser angle

  • Exhaust cam phaser angle

  • Exhaust gas recirculation (EGR) valve area percent

The SI Controller block has two subsystems:

  • The Controller subsystem — Determines the commands based on the commanded torque, measured engine speed, and estimated cylinder air mass.

  • The Estimator subsystem — Determines the estimated air mass flow, torque, and exhaust gas temperature from intake manifold gas pressure, intake manifold gas temperature, engine speed, and cam phaser positions.

The figure illustrates the signal flow.

The figure uses these variables.

N

Engine speed

MAP

Cycle average intake manifold pressure

IAT

Intake air temperature

Tin,EGR

Temperature at EGR valve inlet

MAT

Cycle average intake manifold gas absolute temperature

φICP, φICPCMD

Intake cam phaser angle and intake cam phaser angle command, respectively

φECP, φECPCMD

Exhaust cam phaser angle and exhaust cam phaser angle command, respectively

EGRap, EGRapcmd

EGR valve area percent and EGR valve area percent command, respectively

ΔPEGR

Pressure difference at EGR valve inlet and outlet

WAPcmd

Turbocharger wastegate area percent command

SA

Spark advance

Pwinj

Fuel injector pulse-width

TPPcmd

Throttle position percent command

The Model-Based Calibration Toolbox™ was used to develop the tables that are available with the Powertrain Blockset™.

Controller

Air

The block determines the commanded engine load (that is, normalized cylinder air mass) from a lookup table that is a function of commanded torque and measured engine speed.

Lcmd=fLcmd(Tcmd,N)

To achieve the commanded load, the controller sets the throttle position percent and turbocharger wastegate area percent using feed forward lookup tables. The lookup tables are functions of the commanded load and measured engine speed.

TAPcmd=fTAPcmd(Lcmd,N)

TPPcmd=fTPPcmd(TAPcmd)

WAPcmd=fWAPcmd(Lcmd,N)

To determine the cam phaser angle commands, the block uses lookup tables that are functions of estimated engine load and measured engine speed.

φICPCMD=fICPCMD(Lest,N)

φECPCMD=fECPCMD(Lest,N)

The block calculates the desired engine load using this equation.

Lest=CpsRairTstdm˙air,estPstdVdN

The equations use these variables.

Lest

Estimated engine load

LcmdCommanded engine load
N

Engine speed

Tcmd

Commanded engine torque

TAPcmd

Throttle area percent command

TPPcmd

Throttle position percent command

WAPcmd

Turbocharger wastegate area percent command

Cps

Crankshaft revolutions per power stroke

Pstd

Standard pressure

Tstd

Standard temperature

Rair

Ideal gas constant for air and burned gas mixture

Vd

Displaced volume

m˙air,est

Estimated engine air mass flow

The controller subsystem uses these lookup tables for the air calculations.

  • The throttle area percent command lookup table, fTAPcmd, is a function of commanded load and engine speed

    TAPcmd=fTAPcmd(Lcmd,N)

    where:

    • TAPcmd is throttle area percentage command, in percent.

    • Lcmd=L is commanded engine load, dimensionless.

    • N is engine speed, in rpm.

  • To account for the non-linearity of the throttle position to throttle area, the throttle position percent lookup table linearizes the open-loop air mass flow control.

    The throttle position percent command lookup table, fTPPcmd, is a function of the throttle area percentage command

    TPPcmd=fTPPcmd(TAPcmd)

    where:

    • TPPcmd is throttle position percentage command, in percent.

    • TAPcmd is throttle area percentage command, in percent.

  • The wastegate area percent command lookup table, fWAPcmd, is a function of the commanded engine load and engine speed

    WAPcmd=fWAPcmd(Lcmd,N)

    where:

    • WAPcmd is wastegate area percentage command, in percent.

    • Lcmd=L is commanded engine load, dimensionless.

    • N is engine speed, in rpm.

  • The commanded engine load lookup table, fLcmd, is a function of the commanded torque and engine speed

    Lcmd=fLcmd(Tcmd,N)

    where:

    • Lcmd=L is commanded engine load, dimensionless.

    • Tcmd is commanded torque, in N·m.

    • N is engine speed, in rpm.

  • The intake cam phaser angle command lookup table, fICPCMD, is a function of the engine load and engine speed

    φICPCMD=fICPCMD(Lest,N)

    where:

    • φICPCMD is commanded intake cam phaser angle, in degrees crank advance.

    • Lest=L is estimated engine load, dimensionless.

    • N is engine speed, in rpm.

  • The exhaust cam phaser angle command lookup table, fECPCMD, is a function of the engine load and engine speed

    φECPCMD=fECPCMD(Lest,N)

    where:

    • φECPCMD is commanded exhaust cam phaser angle, in degrees crank retard.

    • Lest=L is estimated engine load, dimensionless.

    • N is engine speed, in rpm.

EGR

EGR is typically expressed as a percent of total intake port flow.

EGRpct=100m˙EGRm˙EGR+m˙air

To calculate the EGR area percent command, the block uses equations and a lookup table.

Equations

m˙EGRstd,cmd=m˙EGR,cmdPstdPin,EGRTin,EGRTstdm˙EGRstd,max=fEGRstd,max(Pout,EGRPin,EGR)m˙EGR,cmd=EGRpct,cmdm˙intk,est

Lookup table

The EGR area percent command, EGRapcmd, lookup table is a function of the normalized mass flow and pressure ratio

EGRapcmd=fEGRap,cmd(m˙EGRstd,cmdm˙EGRstd,max,Pout,EGRPin,EGR)

where:

  • EGRapcmd is commanded EGR area percent, dimensionless.

  • m˙EGRstd,cmdm˙EGRstd,max is the normalized mass flow, dimensionless.

  • Pout,EGRPin,EGR is the pressure ratio, dimensionless.

The equations and table use these variables.

EGRap, EGRapcmd

EGR valve area percent and EGR valve area percent command, respectively

EGRpct,cmd

EGR percent command

m˙EGRstd,cmd

Commanded standard mass flow

m˙EGRstd,max

Maximum standard mass flow

m˙EGR,cmd

Commanded mass flow

m˙intk,est

Estimated intake port mass flow

Tstd, Pstd

Standard temperature and pressure

Tin,EGR

Temperature at EGR valve inlet

Pout,EGR, Pin,EGR

Pressure at EGR valve inlet and outlet, respectively

Fuel

The air-fuel ratio (AFR) impacts three-way-catalyst (TWC) conversion efficiency, torque production, and combustion temperature. The engine controller manages AFR by commanding injector pulse-width from a desired relative AFR. The relative AFR, λcmd, is the ratio between the commanded AFR and the stoichiometric AFR of the fuel.

λcmd=AFRcmdAFRstoich

AFRcmd=m˙air,estm˙fuel,cmd

The SI Controller block accounts for the extra fuel delivered to the SI engine during startup. If the engine speed is greater than the startup engine cranking speed, the SI Controller block enriches the optimal AFR, lambda, with an exponentially decaying delta lambda. To initialize the delta lambda, the block uses the engine coolant temperature at startup. The delta lambda exponentially decays to zero based on a time constant that is a function of the engine coolant temperature.

You can configure the block for open-loop and closed-loop AFR control.

To

Use

Controls > Fuel > Closed-loop feedback Parameter Setting

  • Assess the dynamic and steady-state accuracy of the controller airflow estimation and fuel delivery.

(default) Open-loop control

off

  • Hold the average AFR close to stoichiometric AFR to maintain a high TWC conversion efficiency.

Closed-loop control

on

Open-Loop Control

To create an input port for the commanded AFR (lambda), on the Controls > Fuel > Open-loop fuel pane, select Input lambda.

You can manually tune the catalyst for maximum efficiency during open-loop AFR control with or without dither. If you want to implement dither during open-loop control, on the Fuel tab, on the Closed-loop fuel pane, select Dither.

By default, the block is configured to use a lookup table for the commanded AFR.

The commanded lambda, λcmd, lookup table is a function of estimated engine load and measured engine speed

λcmd=fλcmd(Lest,N)

where:

  • λcmd is commanded relative AFR, dimensionless.

  • Lest=L is estimated engine load, dimensionless.

  • N is engine speed, in rpm.

The block calculates the estimated fuel mass flow rate using the commanded lambda, λcmd, stoichiometric AFR, and estimated air mass flow rate.

m˙fuel,cmd=m˙air,estAFRcmd=m˙air,estλcmdAFRstoich

The block assumes that the battery voltage and fuel pressure are at nominal settings where pulse-width correction is not necessary. The commanded fuel injector pulse-width is proportional to the fuel mass per injection. The fuel mass per injection is calculated from the commanded fuel mass flow rate, engine speed, and the number of cylinders.

Pwinj={m˙fuel,cmdCps(60smin)(1000mgg)(1000gkg)NSinjNcylwhen  Trqcmd>00when  Trqcmd0

Closed-Loop Control

TWC converters are most efficient when the exhaust AFR is near the stoichiometric AFR, where the air and fuel burn most completely. Around this ideal point, the AFR is within the catalyst window in which the catalyst is most efficient at converting carbon monoxide, hydrocarbons, and nitrogen oxides to non-harmful exhaust products. Empirical studies show that oscillating the AFR around stoichiometry at an optimized AFR frequency, amplitude, and bias widens the TWC window, increasing catalyst conversion efficiency in the presence of unavoidable disturbances.

To keep production hardware costs down, AFR control systems include inexpensive switching oxygen sensors positioned in the engine exhaust stream upstream and downstream of the catalyst. The oxygen sensors have a narrow range. Essentially, they switch between too lean (i.e., more air is available than is required to burn the available fuel) and too rich (i.e., more air is available than is required to burn the available fuel).

The block implements a period-based method to control the average AFR at a value within the catalyst window for maximum conversion efficiency. Period-based AFR control is independent of the transport delay across the engine from the fuel injection point to the sensor measurement point. For more information about the method, see Developing a Period-Based Air-Fuel Ratio Controller Using a Low-Cost Switching Sensor.

Spark

Spark advance is the crank angle before top dead center (BTDC) of the power stroke when the spark is delivered. The spark advance has an impact on engine efficiency, torque, exhaust temperature, knock, and emissions.

The spark advance lookup table is a function of estimated load and engine speed.

SA=fSA(Lest,N)

where:

  • SA is spark advance, in crank advance degrees.

  • Lest=L is estimated engine load, dimensionless.

  • N is engine speed, in rpm.

The equations use these variables.

Lest

Estimated engine load, based on normalized cylinder air mass

N

Engine speed

fSA

Lookup table for spark advance

N

Spark advance

Idle Speed

When the commanded torque is below a threshold value, the idle speed controller regulates the engine speed.

IfIdle Speed Controller
Trqcmd,input < Trqidlecmd,enableEnabled
Trqidlecmd,enableTrqcmd,inputNot enabled

The idle speed controller uses a discrete PI controller to regulate the target idle speed by commanding a torque.

The PI controller uses this transfer function:

Cidle(z)=Kp,idle+Ki,idletsz1

The idle speed commanded torque must be less than the maximum commanded torque:

0 ≤ TrqidlecomdTrqidlecmd,max

Idle speed control is active under these conditions. If the commanded input torque drops below the threshold for enabling the idle speed controller (Trqcmd,input < Trqidlecmd,enable), the commanded engine torque is given by:

Trqcmd = max(Trqcmd,input,Trqidlecmd).

The equations use these variables.

Trqcmd

Commanded engine torque

Trqcmd,input

Input commanded engine torque

Trqidlecmd,enable

Threshold for enabling idle speed controller

Trqidlecmd

Idle speed controller commanded torque

Trqidlecmd,max

Maximum commanded torque

Nidle

Base idle speed

Kp,idle

Idle speed controller proportional gain

Ki,idle

Idle speed controller integral gain

Speed Limiter

To prevent over revving the engine, the block implements an engine speed limit controller that limits the engine speed to the value specified by the Rev-limiter speed threshold parameter on the Controls > Idle Speed tab.

If the engine speed, N, exceeds the engine speed limit, Nlim, the block sets the commanded engine torque to 0.

To smoothly transition the torque command to 0 as the engine speed approaches the speed limit, the block implements a lookup table multiplier. The lookup table multiplies the torque command by a value that ranges from 0 (engine speed exceeds limit) to 1 (engine speed does not exceed the limit).

Estimator

The estimator subsystem determines the estimated air mass flow, torque, EGR mass flow, and exhaust temperature based on sensor feedback and calibration parameters.

m˙air,est

Estimated engine air mass flow

Trqest

Estimated engine torque

Texh,est

Estimated engine exhaust temperature

m˙EGR,est

Estimated low-pressure EGR mass flow

Air Mass Flow

To calculate engine air mass flow, configure the SI engine to use either of these air mass flow models.

Air Mass Flow ModelDescription
SI Engine Speed-Density Air Mass Flow Model

Uses the speed-density equation to calculate the engine air mass flow, relating the engine air mass flow to the intake manifold pressure and engine speed. Consider using this air mass flow model in engines with fixed valvetrain designs.

SI Engine Dual-Independent Cam Phaser Air Mass Flow Model

To calculate the engine air mass flow, the dual-independent cam phaser model uses:

  • Empirical calibration parameters developed from engine mapping measurements

  • Desktop calibration parameters derived from engine computer-aided design (CAD) data

In contrast to typical embedded air mass flow calculations based on direct air mass flow measurement with an air mass flow (MAF) sensor, this air mass flow model offers:

  • Elimination of MAF sensors in dual cam-phased valvetrain applications

  • Reasonable accuracy with changes in altitude

  • Semiphysical modeling approach

  • Bounded behavior

  • Suitable execution time for electronic control unit (ECU) implementation

  • Systematic development of a relatively small number of calibration parameters

To determine the estimated air mass flow, the block uses the intake air mass fraction. The EGR mass fraction at the intake port lags the mass fraction near the EGR valve outlet. To model the lag, the block uses a first order system with a time constant.

yintk,EGR,est=m˙EGR,estm˙intk,esttszτEGRz+tsτEGR

The remainder of the gas is air.

yintk,air,est=1yintk,EGR,est

The equations use these variables.

yintk,EGR,est

Estimated intake manifold EGR mass fraction

yintk,air,est

Estimated intake manifold air mass fraction

m˙EGR,est

Estimated low-pressure EGR mass flow

m˙intk,est

Estimated intake port mass flow

τEGR

EGR time constant

Torque

To calculate the brake torque, configure the SI engine to use either of these torque models.

Brake Torque ModelDescription
SI Engine Torque Structure Model

For the structured brake torque calculation, the SI engine uses tables for the inner torque, friction torque, optimal spark, spark efficiency, and lambda efficiency.

SI Engine Simple Torque Model

For the simple brake torque calculation, the SI engine block uses a torque lookup table map that is a function of engine speed and load.

EGR

The controller estimates low-pressure mass flow, EGR valve inlet pressure, and EGR valve outlet pressure using an algorithm developed by F. Liu and J. Pfeiffer. The estimator requires measured EGR valve differential pressure, EGR valve area percent, intake air temperature, and EGR valve inlet temperature.

To estimate the EGR valve commands, the block uses:

  • Equations

    m˙air,std=m˙air,estPstdPambIATTstdPin,EGR=Pout,EGR+ΔPEGRm˙EGR,est=m˙EGR,stdPin,EGRPstdTstdTin,EGR

  • Tables

    • The EGR valve standard mass flow lookup table is a function of EGR valve area percent and the pressure ratio

      m˙EGR,std=fEGR,std(EGRap,Pout,EGRPin,EGR)

      where:

      • m˙EGR,std is EGR valve standard mass flow, dimensionless.

      • EGRap is EGR valve flow area percent, in percent.

      • Pout,EGRPin,EGR is the pressure ratio, dimensionless.

    • The pressure ratio is a function of the standard mass flow

      Pout,EGRPamb=fintksys,pr(m˙air,std)

      where:

      • m˙air,std is standard mass flow, in g/s.

      • Pout,EGRPamb is pressure ratio, dimensionless.

The equations use these variables.

EGRap

EGR valve area percent command

IAT

Intake air temperature

m˙air,std, m˙EGR,std

Standard air and EGR valve mass flow, respectively

m˙air,est,m˙EGR,est

Estimated air and EGR valve mass flow, respectively

Tstd, Pstd

Standard temperature and pressure

Tamb, Pamb

Ambient temperature and pressure

ΔPEGR

Pressure difference at EGR valve inlet and outlet

Tin,EGR, Tout,EGR

Temperature at EGR valve inlet and outlet, respectively

Pin,EGR, Pout,EGR

Pressure at EGR valve inlet and outlet, respectively

Exhaust Temperature

The exhaust temperature lookup table, fTexh, is a function of engine load and engine speed

Texh=fTexh(L,N)

where:

  • Texh is engine exhaust temperature, in K.

  • L is normalized cylinder air mass or engine load, dimensionless.

  • N is engine speed, in rpm.

Ports

Input

expand all

Commanded engine torque, Trqcmd,input, in N·m.

Measured engine speed, N, in rpm.

Measured ambient pressure, PAmb, in Pa.

Measured intake manifold absolute pressureMAP, in Pa.

Measured intake manifold absolute temperature, MAT, in K.

Intake cam phaser angle, φICP, in degCrkAdv, or degrees crank advance.

Exhaust cam phaser angle, φECP, in degCrkRet, or degrees crank retard.

Intake air temperature, IAT, in K.

Engine cooling temperature, Tcoolant, in K.

EGR valve inlet temperature, Tin,EGR, in K.

EGR valve area percent, EGRap, in %.

EGR valve delta pressure, ΔPEGR, in Pa.

Oxygen sensor voltage for closed-loop air-fuel-ratio (lambda) control, in mV.

To configure the block to use closed-loop air-fuel-ratio control, on the Fuel tab, on the Closed-loop fuel pane, select Closed-loop feedback.

Commanded air-fuel-ratio (lambda), λcmd, dimensionless.

Dependencies

To create this port, on the Fuel tab, on the Open-loop fuel pane, select Input lambda.

Output

expand all

Bus signal containing these block calculations.

SignalDescriptionVariableUnits

TrqCmd

Engine torque

Trqcmd

N·m

LdCmd

Commanded load

Lcmd

N/A

ThrPosCmd

Throttle area percent command

TAPcmd

%

WgAreaPctCmd

Wastegate area percent command

WAPcmd

%

InjPw

Fuel injector pulse-width

Pwinj

ms

SpkAdv

Spark advance

SA

degBTDC

IntkCamPhaseCmd

Intake cam phaser angle command

φICPCMD

degCrkAdv

ExhCamPhaseCmd

Exhaust cam phaser angle command

φECPCMD

degCrkRet

EgrVlvAreaPctCmd

Exhaust cam phaser angle command

EGRapcmd

%

FuelMassFlwCmd

EGR valve area percent command

m˙fuel,cmd

kg/s

AfrCmd

Commanded air-fuel ratio

AFRcmdN/A

EstEngTrq

Estimated engine torque

Trqest

N·m

EstNrmlzdAirCharg

Estimated normalized cylinder air mass

N/A

N/A

EstIntkPortMassFlw

Estimated intake port air mass flow rate

kg/s

EstIntkAirMassFlw

Estimated air mass flow rate

m˙air,est

kg/s

EstEgrMassFlw

Estimated low-pressure EGR mass flow rate

m˙EGR,estkg/s

EstExhManGasTemp

Estimated exhaust manifold gas temperature

Texh,est

K

EngRevLimAct

Flag that indicates if rev-limiter control is active

N/A

N/A

ClsdLpFuelMult

Fuel injector pulse-width multiplier for closed-loop AFR control

Pwinj_mult

N/A

Throttle area percent command, TAPcmd.

Wastegate area percent command, WAPcmd.

Fuel injector pulse-width, Pwinj, in ms.

Spark advance, SA, in degrees crank angle before top dead center (degBTDC).

Intake cam phaser angle command, φICPCMD.

Exhaust cam phaser angle command, φECPCMD.

EGR valve area percent command, EGRapcmd, in %.

Parameters

expand all

Configuration

To calculate engine air mass flow, configure the SI engine to use either of these air mass flow models.

Air Mass Flow ModelDescription
SI Engine Speed-Density Air Mass Flow Model

Uses the speed-density equation to calculate the engine air mass flow, relating the engine air mass flow to the intake manifold pressure and engine speed. Consider using this air mass flow model in engines with fixed valvetrain designs.

SI Engine Dual-Independent Cam Phaser Air Mass Flow Model

To calculate the engine air mass flow, the dual-independent cam phaser model uses:

  • Empirical calibration parameters developed from engine mapping measurements

  • Desktop calibration parameters derived from engine computer-aided design (CAD) data

In contrast to typical embedded air mass flow calculations based on direct air mass flow measurement with an air mass flow (MAF) sensor, this air mass flow model offers:

  • Elimination of MAF sensors in dual cam-phased valvetrain applications

  • Reasonable accuracy with changes in altitude

  • Semiphysical modeling approach

  • Bounded behavior

  • Suitable execution time for electronic control unit (ECU) implementation

  • Systematic development of a relatively small number of calibration parameters

Dependencies

The table summarizes the parameter dependencies.

Air Mass Flow Estimation ModelEnables Parameters on Estimation > Air Tab

Dual Variable Cam Phasing

Cylinder volume at intake valve close table, f_vivc

Cylinder volume intake cam phase breakpoints, f_vivc_icp_bpt

Cylinder trapped mass correction factor, f_tm_corr

Normalized density breakpoints, f_tm_corr_nd_bpt

Engine speed breakpoints, f_tm_corr_n_bpt

Air mass flow, f_mdot_air

Exhaust cam phase breakpoints, f_mdot_air_ecp_bpt

Trapped mass flow breakpoints, f_mdot_trpd_bpt

Air mass flow correction factor, f_mdot_air_corr

Engine load breakpoints for air mass flow correction, f_mdot_air_corr_ld_bpt

Engine speed breakpoints for air mass flow correction, f_mdot_air_n_bpt

Simple Speed-Density

Speed-density volumetric efficiency, f_nv

Speed-density intake manifold pressure breakpoints, f_nv_prs_bpt

Speed-density engine speed breakpoints, f_nv_n_bpt

To calculate the brake torque, configure the SI engine to use either of these torque models.

Brake Torque ModelDescription
SI Engine Torque Structure Model

For the structured brake torque calculation, the SI engine uses tables for the inner torque, friction torque, optimal spark, spark efficiency, and lambda efficiency.

SI Engine Simple Torque Model

For the simple brake torque calculation, the SI engine block uses a torque lookup table map that is a function of engine speed and load.

Dependencies

The table summarizes the parameter dependencies.

Torque Estimation ModelEnables Parameters on Estimation > Torque Tab

Torque Structure

Inner torque table, f_tq_inr

Friction torque table, f_tq_fric

Engine temperature modifier on friction torque, f_fric_temp_mod

Engine temperature modifier breakpoints, f_fric_temp_bpt

Pumping torque table, f_tq_pump

Optimal spark table, f_sa_opt

Inner torque load breakpoints, f_tq_inr_l_bpt

Inner torque speed breakpoints, f_tq_inr_n_bpt

Spark efficiency table, f_m_sa

Spark retard from optimal, f_del_sa_bpt

Lambda efficiency, f_m_lam

Lambda breakpoints, f_m_lam_bpt

Simple Torque Lookup

Torque table, f_tq_nl

Torque table load breakpoints, f_tq_nl_l_bpt

Torque table speed breakpoints, f_tq_nl_n_bpt

Controls

Air

The commanded engine load lookup table, fLcmd, is a function of the commanded torque and engine speed

Lcmd=fLcmd(Tcmd,N)

where:

  • Lcmd=L is commanded engine load, dimensionless.

  • Tcmd is commanded torque, in N·m.

  • N is engine speed, in rpm.

Torque command breakpoints, in N·m.

Speed breakpoints, in rpm.

The throttle area percent command lookup table, fTAPcmd, is a function of commanded load and engine speed

TAPcmd=fTAPcmd(Lcmd,N)

where:

  • TAPcmd is throttle area percentage command, in percent.

  • Lcmd=L is commanded engine load, dimensionless.

  • N is engine speed, in rpm.

Throttle area percent load breakpoints, dimensionless.

Throttle area percent speed breakpoints, in rpm.

The throttle position percent command lookup table, fTPPcmd, is a function of the throttle area percentage command

TPPcmd=fTPPcmd(TAPcmd)

where:

  • TPPcmd is throttle position percentage command, in percent.

  • TAPcmd is throttle area percentage command, in percent.

Throttle area percent to position percent area breakpoints, dimensionless.

The wastegate area percent command lookup table, fWAPcmd, is a function of the commanded engine load and engine speed

WAPcmd=fWAPcmd(Lcmd,N)

where:

  • WAPcmd is wastegate area percentage command, in percent.

  • Lcmd=L is commanded engine load, dimensionless.

  • N is engine speed, in rpm.

Load breakpoints, dimensionless.

Speed breakpoints, in rpm.

The intake cam phaser angle command lookup table, fICPCMD, is a function of the engine load and engine speed

φICPCMD=fICPCMD(Lest,N)

where:

  • φICPCMD is commanded intake cam phaser angle, in degrees crank advance.

  • Lest=L is estimated engine load, dimensionless.

  • N is engine speed, in rpm.

The exhaust cam phaser angle command lookup table, fECPCMD, is a function of the engine load and engine speed

φECPCMD=fECPCMD(Lest,N)

where:

  • φECPCMD is commanded exhaust cam phaser angle, in degrees crank retard.

  • Lest=L is estimated engine load, dimensionless.

  • N is engine speed, in rpm.

Load breakpoints, dimensionless.

Speed breakpoints, in rpm.

The EGR percent command, EGRpct,cmd, lookup table is a function of estimated engine load and engine speed

EGRpct,cmd=fEGRpct,cmd(Lest,N)

where:

  • EGRpct,cmd is commanded EGR percent, dimensionless.

  • Lest=L is estimated engine load, dimensionless.

  • N is engine speed, in rpm.

Engine load breakpoints, L, dimensionless.

Engine speed breakpoints, N, in rpm.

The EGR area percent command, EGRapcmd, lookup table is a function of the normalized mass flow and pressure ratio

EGRapcmd=fEGRap,cmd(m˙EGRstd,cmdm˙EGRstd,max,Pout,EGRPin,EGR)

where:

  • EGRapcmd is commanded EGR area percent, dimensionless.

  • m˙EGRstd,cmdm˙EGRstd,max is the normalized mass flow, dimensionless.

  • Pout,EGRPin,EGR is the pressure ratio, dimensionless.

Maximum standard EGR valve mass flow breakpoints, m˙EGRstd,max, in N·m.

Normalized mass flow breakpoints, m˙EGRstd,cmdm˙EGRstd,max, dimensionless.

Pressure ratio breakpoints, Pout,EGRPin,EGR, dimensionless.

Fuel

Fuel injector slope, Sinj, in mg/ms.

Stoichiometric air-fuel ratio, AFRstoich.

The commanded lambda, λcmd, lookup table is a function of estimated engine load and measured engine speed

λcmd=fλcmd(Lest,N)

where:

  • λcmd is commanded relative AFR, dimensionless.

  • Lest=L is estimated engine load, dimensionless.

  • N is engine speed, in rpm.

Dependencies

To create this parameter, on the Fuel tab, on the Open-loop fuel pane, clear Input lambda.

Load breakpoints, dimensionless.

Dependencies

To create this parameter, on the Fuel tab, on the Open-loop fuel pane, clear Input lambda.

Speed breakpoints, in rpm.

Dependencies

To create this parameter, on the Fuel tab, on the Open-loop fuel pane, clear Input lambda.

Engine startup lambda enrichment delta as a function of coolant temperature, dimensionless.

The SI Controller block uses this parameter to account for the extra fuel delivered to the spark-ignition (SI) engine during startup. If the engine speed is greater than the Engine cranking speed parameter, the SI Controller block enriches the optimal relative air-fuel ratio (lambda) with an exponentially decaying delta lambda. To initialize the delta lambda, the block uses the Engine startup lambda enrichment delta vs coolant temperature parameter to create a lambda enrichment table that is a function of the engine coolant temperature. The delta lambda exponentially decays to zero based on a time constant specified with the Engine startup lambda enrichment delta time constant vs coolant temperature parameter.

Dependencies

To create this parameter, on the Fuel tab, on the Open-loop fuel pane, clear Input lambda.

Engine startup lambda enrichment delta time constant versus coolant temperature, in s.

The SI Controller block uses this parameter to account for the extra fuel delivered to the spark-ignition (SI) engine during startup. If the engine speed is greater than the Engine cranking speed parameter, the SI Controller block enriches the optimal relative air-fuel ratio (lambda) with an exponentially decaying delta lambda. To initialize the delta lambda, the block uses the Engine startup lambda enrichment delta vs coolant temperature parameter to create a lambda enrichment table that is a function of the engine coolant temperature. The delta lambda exponentially decays to zero based on a time constant specified with the Engine startup lambda enrichment delta time constant vs coolant temperature parameter.

Dependencies

To create this parameter, on the Fuel tab, on the Open-loop fuel pane, clear Input lambda.

Engine startup coolant temperature breakpoints, in C.

The SI Controller block uses this parameter to account for the extra fuel delivered to the spark-ignition (SI) engine during startup. If the engine speed is greater than the Engine cranking speed parameter, the SI Controller block enriches the optimal relative air-fuel ratio (lambda) with an exponentially decaying delta lambda. To initialize the delta lambda, the block uses the Engine startup lambda enrichment delta vs coolant temperature parameter to create a lambda enrichment table that is a function of the engine coolant temperature. The delta lambda exponentially decays to zero based on a time constant specified with the Engine startup lambda enrichment delta time constant vs coolant temperature parameter.

Dependencies

To create this parameter, on the Fuel tab, on the Open-loop fuel pane, clear Input lambda.

Select option to minimize the commanded air-fuel-ratio (lambda), λcmd error.

Dependencies

Selecting this parameter enables these parameters:

  • Closed-loop fuel proportional gain, ClsdLpFuelPGain

  • Closed-loop fuel integral gain, ClsdLpFuelIGain

  • Closed-loop fuel integrator limit, ClsdLpFuelIntgLmt

  • Lambda dither amplitude, LambdaDitherAmp

  • Lambda dither frequency, LambdaDitherFrq

  • Oxygen sensor stoichiometric reset voltage, O2ResetStoichVoltSen

  • Oxygen sensor minimum voltage reset, O2ResetMinVoltSen

  • Oxygen sensor maximum voltage reset, O2ResetMaxVoltSen

  • Oxygen sensor voltage learn update period, O2LearnUpdatePerSen

  • Oxygen sensor voltage amplitude minimum, O2AmpMinVoltSen

  • Oxygen sensor ready voltage, O2ReadyVoltSen

  • Oxygen sensor not ready voltage, O2NotReadyVoltSen

Configure the block to model dither. For open-loop analysis, select this option to tune for maximum catalytic conversion efficiency.

Dependencies

By default, selecting Closed-loop feedback configures the block to model dither.

To enable this parameter for open-loop air-fuel-ratio (lambda) commands, clear Closed-loop feedback.

Selecting this parameter enables these parameters:

  • Lambda dither amplitude, LambdaDitherAmp

  • Lambda dither frequency, LambdaDitherFrq

Closed-loop fuel proportional gain, dimensionless.

Dependencies

To enable this parameter, on the Fuel tab, on the Closed-loop fuel pane, select Closed-loop feedback.

Closed-loop fuel integral gain, dimensionless.

Dependencies

To enable this parameter, on the Fuel tab, on the Closed-loop fuel pane, select Closed-loop feedback.

Closed-loop fuel integrator limit, dimensionless.

Dependencies

To enable this parameter, on the Fuel tab, on the Closed-loop fuel pane, select Closed-loop feedback.

Lambda dither amplitude, dimensionless.

Dependencies

To enable this parameter, on the Fuel tab, on the Closed-loop fuel pane, select either Closed-loop feedback or Dither.

Lambda dither frequency, in Hz.

Dependencies

To enable this parameter, on the Fuel tab, on the Closed-loop fuel pane, select either Closed-loop feedback or Dither.

Oxygen sensor stoichiometric reset voltage, O2ResetStoichVoltSen, in mV.

Dependencies

To enable this parameter, on the Fuel tab, on the Closed-loop fuel pane, select Closed-loop feedback.

Oxygen sensor minimum voltage reset, O2ResetMinVoltSen, in mV.

Dependencies

To enable this parameter, on the Fuel tab, on the Closed-loop fuel pane, select Closed-loop feedback.

Oxygen sensor maximum voltage reset, O2ResetMaxVoltSen, in mV.

Dependencies

To enable this parameter, on the Fuel tab, on the Closed-loop fuel pane, select Closed-loop feedback.

Oxygen sensor voltage learn update period, O2LearnUpdatePerSen, in mV.

Dependencies

To enable this parameter, on the Fuel tab, on the Closed-loop fuel pane, select Closed-loop feedback.

Oxygen sensor voltage amplitude minimum, O2AmpMinVoltSen, in mV.

Dependencies

To enable this parameter, on the Fuel tab, on the Closed-loop fuel pane, select Closed-loop feedback.

Oxygen sensor ready voltage, O2ReadyVoltSen, in mV.

Dependencies

To enable this parameter, on the Fuel tab, on the Closed-loop fuel pane, select Closed-loop feedback.

Oxygen sensor not ready voltage, O2NotReadyVoltSen, in mV.

Dependencies

To enable this parameter, on the Fuel tab, on the Closed-loop fuel pane, select Closed-loop feedback.

Spark

The spark advance lookup table is a function of estimated load and engine speed.

SA=fSA(Lest,N)

where:

  • SA is spark advance, in crank advance degrees.

  • Lest=L is estimated engine load, dimensionless.

  • N is engine speed, in rpm.

Load breakpoints, dimensionless.

Speed breakpoints, in rpm.

Idle Speed

Target idle speed, Nidle, in rpm.

Torque to enable the idle speed controller, Trqidlecmd,enable, in N·m.

Maximum idle controller commanded torque, Trqidlecmd,max, in N·m.

Proportional gain for idle speed control, Kp,idle, in N·m/rpm.

Integral gain for idle speed control, Ki,idle, in N·m/(rpm·s).

Engine speed limit, Nlim, in rpm.

If the engine speed, N, exceeds the engine speed limit, Nlim, the block sets the commanded engine torque to 0.

To smoothly transition the torque command to 0 as the engine speed approaches the speed limit, the block implements a lookup table multiplier. The lookup table multiplies the torque command by a value that ranges from 0 (engine speed exceeds limit) to 1 (engine speed does not exceed the limit).

Estimation

Air

Number of engine cylinders, Ncyl.

Crankshaft revolutions per power stroke, Cps, in rev/stroke.

Displaced volume, Vd, in m^3.

Ideal gas constant, Rair, in J/(kg·K).

Standard air pressure, Pstd, in Pa.

Standard air temperature, Tstd, in K.

The engine volumetric efficiency lookup table, fηv, is a function of intake manifold absolute pressure and engine speed

ηv=fηv(MAP,N)

where:

  • ηv is engine volumetric efficiency, dimensionless.

  • MAP is intake manifold absolute pressure, in KPa.

  • N is engine speed, in rpm.

Dependencies

To enable this parameter, for the Air mass flow estimation model parameter, select Simple Speed-Density.

Intake manifold pressure breakpoints for speed-density volumetric efficiency lookup table, in KPa.

Dependencies

To enable this parameter, for the Air mass flow estimation model parameter, select Simple Speed-Density.

Engine speed breakpoints for speed-density volumetric efficiency lookup table, in rpm.

Dependencies

To enable this parameter, for the Air mass flow estimation model parameter, select Simple Speed-Density.

The cylinder volume at intake valve close table (IVC), fVivc is a function of the intake cam phaser angle

VIVC=fVivc(φICP)

where:

  • VIVC is cylinder volume at IVC, in L.

  • φICP is intake cam phaser angle, in crank advance degrees.

Dependencies

To enable this parameter, for the Air mass flow estimation model parameter, select Dual Variable Cam Phasing.

Engine speed breakpoints, in rpm.

Dependencies

To enable this parameter, for the Air mass flow estimation model parameter, select Dual Variable Cam Phasing.

Cylinder volume at intake valve close table breakpoints.

Dependencies

To enable this parameter, for the Air mass flow estimation model parameter, select Dual Variable Cam Phasing.

The trapped mass correction factor table, fTMcorr, is a function of the normalized density and engine speed

TMcorr=fTMcorr(ρnorm, N)

where:

  • TMcorr, is trapped mass correction multiplier, dimensionless.

  • ρnorm is normalized density, dimensionless.

  • N is engine speed, in rpm.

Dependencies

To enable this parameter, for the Air mass flow estimation model parameter, select Dual Variable Cam Phasing.

Normalized density breakpoints.

Dependencies

To enable this parameter, for the Air mass flow estimation model parameter, select Dual Variable Cam Phasing.

The phaser intake mass flow model lookup table is a function of exhaust cam phaser angles and trapped air mass flow

m˙intkideal=fintkideal(φECP,TMflow)

where:

  • m˙intkideal is engine intake port mass flow at arbitrary cam phaser angles, in g/s.

  • φECP is exhaust cam phaser angle, in degrees crank retard.

  • TMflow is flow rate equivalent to corrected trapped mass at the current engine speed, in g/s.

Dependencies

To enable this parameter, for the Air mass flow estimation model parameter, select Dual Variable Cam Phasing.

Exhaust cam phaser breakpoints for air mass flow lookup table.

Dependencies

To enable this parameter, for the Air mass flow estimation model parameter, select Dual Variable Cam Phasing.

Trapped mass flow breakpoints for air mass flow lookup table.

Dependencies

To enable this parameter, for the Air mass flow estimation model parameter, select Dual Variable Cam Phasing.

The intake air mass flow correction lookup table, faircorr, is a function of ideal load and engine speed

m˙air=m˙intkidealfaircorr(Lideal,N)

where:

  • Lideal is engine load (normalized cylinder air mass) at arbitrary cam phaser angles, uncorrected for final steady-state cam phaser angles, dimensionless.

  • N is engine speed, in rpm.

  • m˙air is engine intake air mass flow final correction at steady-state cam phaser angles, in g/s.

  • m˙intkideal is engine intake port mass flow at arbitrary cam phaser angles, in g/s.

Dependencies

To enable this parameter, for the Air mass flow estimation model parameter, select Dual Variable Cam Phasing.

Engine load breakpoints for air mass flow final correction.

Dependencies

To enable this parameter, for the Air mass flow estimation model parameter, select Dual Variable Cam Phasing.

Engine speed breakpoints for air mass flow final correction.

Dependencies

To enable this parameter, for the Air mass flow estimation model parameter, select Dual Variable Cam Phasing.

EGR flow time constant, τEGR, in s.

The pressure ratio is a function of the standard mass flow

Pout,EGRPamb=fintksys,pr(m˙air,std)

where:

  • m˙air,std is standard mass flow, in g/s.

  • Pout,EGRPamb is pressure ratio, dimensionless.

Standard mass flow, m˙air,std, in g/s.

The EGR valve standard mass flow lookup table is a function of EGR valve area percent and the pressure ratio

m˙EGR,std=fEGR,std(EGRap,Pout,EGRPin,EGR)

where:

  • m˙EGR,std is EGR valve standard mass flow, dimensionless.

  • EGRap is EGR valve flow area percent, in percent.

  • Pout,EGRPin,EGR is the pressure ratio, dimensionless.

EGR valve standard flow pressure ratio,Pout,EGRPin,EGR, dimensionless.

EGR valve flow area percent, EGRap, in percent.

Torque

For the simple torque lookup table model, the SI engine uses a lookup table map that is a function of engine speed and load, Tbrake=fTnL(L,N), where:

  • Tbrake is engine brake torque after accounting for spark advance, AFR, and friction effects, in N·m.

  • L is engine load, as a normalized cylinder air mass, dimensionless.

  • N is engine speed, in rpm.

The simple torque lookup model assumes that the calibration has negative torque values to indicate the non-firing engine load (L) versus speed (N) condition. The calibrated table (L-by-N) contains the non-firing data in the first table row (1-by-N). When the fuel delivered to the engine is zero, the model uses the data in the first table row (1-by-N) at or above 100 AFR. 100 AFR results from fuel cutoff or very lean operation where combustion cannot occur.

Dependencies

To enable this parameter, for the Torque model parameter, select Simple Torque Lookup.

Engine load breakpoints, L, dimensionless.

Dependencies

To enable this parameter, for the Torque model parameter, select Simple Torque Lookup.

Engine speed breakpoints, N, in rpm.

Dependencies

To enable this parameter, for the Torque model parameter, select Simple Torque Lookup.

The inner torque lookup table, fTqinr, is a function of engine speed and engine load, Tqinr=fTqinr(L,N), where:

  • Tqinr is inner torque based on gross indicated mean effective pressure, in N·m.

  • L is engine load at arbitrary cam phaser angles, corrected for final steady-state cam phaser angles, dimensionless.

  • N is engine speed, in rpm.

Dependencies

To enable this parameter, for the Torque model parameter, select Torque Structure.

The friction torque lookup table, fTfric, is a function of engine speed and engine load, Tfric=fTfric(L,N), where:

  • Tfric is friction torque offset to inner torque, in N·m.

  • L is engine load at arbitrary cam phaser angles, corrected for final steady-state cam phaser angles, dimensionless.

  • N is engine speed, in rpm.

Dependencies

To enable this parameter, for the Torque model parameter, select Torque Structure.

Engine temperature modifier on friction torque, ƒfric,temp, dimensionless.

Dependencies

To enable this parameter, for the Torque model parameter, select Torque Structure.

Engine temperature modifier breakpoints, in K.

Dependencies

To enable this parameter, for the Torque model parameter, select Torque Structure.

The pumping torque lookup table, ƒTpump, is a function of engine speed and injected fuel mass, TpumpTpump(L,N), where:

  • Tpump is pumping torque, in N·m.

  • L is engine load, as a normalized cylinder air mass, dimensionless.

  • N is engine speed, in rpm.

Dependencies

To enable this parameter, for the Torque model parameter, select Torque Structure.

The optimal spark lookup table, fSAopt, is a function of engine speed and engine load, SAopt=fSAopt(L,N), where:

  • SAopt is optimal spark advance timing for maximum inner torque at stoichiometric air-fuel ratio (AFR), in deg.

  • L is engine load at arbitrary cam phaser angles, corrected for final steady-state cam phaser angles, dimensionless.

  • N is engine speed, in rpm.

Dependencies

To enable this parameter, for the Torque model parameter, select Torque Structure.

Inner torque load breakpoints, dimensionless.

Dependencies

To enable this parameter, for the Torque model parameter, select Torque Structure.

Inner torque speed breakpoints, in rpm.

Dependencies

To enable this parameter, for the Torque model parameter, select Torque Structure.

The spark efficiency lookup table, fMsa, is a function of the spark retard from optimal

Msa=fMsa(ΔSA)ΔSA=SAoptSA

where:

  • Msa is the spark retard efficiency multiplier, dimensionless.

  • ΔSAis the spark retard timing distance from optimal spark advance, in deg.

Dependencies

To enable this parameter, for the Torque model parameter, select Torque Structure.

Spark retard from optimal inner torque timing breakpoints, in deg.

Dependencies

To enable this parameter, for the Torque model parameter, select Torque Structure.

The lambda efficiency lookup table, fMλ, is a function of lambda, Mλ=fMλ(λ), where:

  • Mλ is the lambda multiplier on inner torque to account for the air-fuel ratio (AFR) effect, dimensionless.

  • λ is lambda, AFR normalized to stoichiometric fuel AFR, dimensionless.

Dependencies

To enable this parameter, for the Torque model parameter, select Torque Structure.

Lambda effect on inner torque lambda breakpoints, dimensionless.

Dependencies

To enable this parameter, for the Torque model parameter, select Torque Structure.

Exhaust

The exhaust temperature lookup table, fTexh, is a function of engine load and engine speed

Texh=fTexh(L,N)

where:

  • Texh is engine exhaust temperature, in K.

  • L is normalized cylinder air mass or engine load, dimensionless.

  • N is engine speed, in rpm.

Engine load breakpoints used for exhaust temperature lookup table.

Engine speed breakpoints used for exhaust temperature lookup table, in rpm.

References

[1] Gerhardt, J., Hönninger, H., and Bischof, H., A New Approach to Functional and Software Structure for Engine Management Systems — BOSCH ME7. SAE Technical Paper 980801, 1998.

[2] Heywood, John B. Internal Combustion Engine Fundamentals. New York: McGraw-Hill, 1988.

[3] Leone, T. Christenson, E., Stein, R., Comparison of Variable Camshaft Timing Strategies at Part Load. SAE Technical Paper 960584, 1996, doi:10.4271/960584.

[4] Liu, F. and Pfeiffer, J., Estimation Algorithms for Low Pressure Cooled EGR in Spark-Ignition Engines. SAE Int. J. Engines 8(4):2015, doi:10.4271/2015-01-1620.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Introduced in R2017a