
17
8.3
Modifying the Pre-Broadcast Averaging of Data
The Lambda sensor output (Ip1) and pressure (P) data is averaged prior to being broadcast. Each
is averaged by the module every 5ms independent of the TPDO broadcast rate (see section 8.6).
The averaging filter (
α
) can range from 0.001 (heavy averaging) to 1.000 (no averaging). The
averaging filters (also called recursive averaging filters or digital low-pass filters) are used as
follows:
AvgData
n+1
=
α
x Data
n
+ (1 –
α
) x AvgData
n
Where:
AvgData
n+1
= Current averaged data value broadcast by the module.
α
= User-programmable averaging filter, also called “alpha”. (Range 0.001 to 1.000)
Data
n
= Current data value measured by the module.
AvgData
n
= Previous averaged data value broadcast by the module 5ms ago.
There is one
α
for NOx, one
α
for Ip1 and one
α
for pressure. The defaults are 0.375 and are
stored in non-volatile memory (EEprom) in the module. Note that O
2
, Lambda, PHI, AFR and
FAR are calculated from the Ip1 measurement and therefore are affected by the Ip1
averaging
value.
The
α
value is loaded into the module as a scaled (x1000) unsigned 16bit integer sent least
significant byte (LSB) first (Intel format). This value is written to OD address 0x5012 by
performing an SDO Write. Note that the subindex determines which parameter is affected and
averaging values beyond the range specified are limited to the appropriate maximum or
minimum.
CANid
byte 0 byte 1 Byte 2
byte 3
byte 4
byte 5
byte 6 byte 7
0x600+NID 0x2B 0x12 0x50 subindex
α
x 1000
lo byte
α
x 1000
hi byte
subindex = 0x09 for NOx
= 0x08 for Ip1
= 0x06 for Pressure
α
x 1000 = 1-1000 (0x0001 – 0x03E8)
Example: Set the
α
for Ip1 to 0.256 for the module with NID = 0x05. Multiply 0.256 x 1000 =
256 (0x0100).
CANid
byte 0 byte 1
byte 2
byte 3
byte 4
byte 5
byte 6
byte 7
0x605 0x2B
0x12 0x50 0x08 0x00 0x01