PDA

View Full Version : understanding dashpot decay rate (CRAI8)


QWKSNKE
03-19-2006, 12:13 PM
Anybody else toy'd with this or understand it.

Found this by Rockin_Rick


[EDIT - this first post of mine is a bit confusing. Read down farther and I explain it more clearly and with the important points more emphasized. Rick]

This is my understanding of dashpot decay rate after a thorough research of the CRAI8 strategy document. This info applies specifically to CRAI8, but I would guess that it also works this way for CBAZA, and other EEC-V's. This may also be the way it works in A9L, but I haven't verified.

--------------------------------------------------

First - ISC operational explanation:

The ISC strategy can operate in any one of four modes: DASHPOT PREPOSITION, DASHPOT, RPM CONTROL, or LOCKOUT.

Regardless of which of the four modes is active, the strategy first calculates a total desired idle airflow, DESMAF. DESMAF
represents the total engine airflow required for idle and is comprised of both feedforward terms, i.e DESMAF_PRE and DASPOT,
and feedback terms, i.e DESMAF_PID. DESMAF is given by:

DESMAF = DESMAF_PRE + DASPOT + DESMAF_PID

Where the feedback term, DESMAF_PID, is given by:

DESMAF_PID = IPSIBR + ISCKAM + ISC_A_PROP + ISC_A_DER

There are slight differences in the calculation of DESMAF depending on which mode is active. These differences are
summarized below.


* ISCFLG = 0 DASHPOT PRE-POSITION

In engine run/underspeed mode and when operating at part or wide open throttle the ISC system is placed in dashpot
pre-position mode. In this mode the ISC duty cycle is incremented a calibratable amount in anticipation of a required
dashpot action. Proper dashpot operation is essential on systems having speed density fuel controls in order to avoid
tip in/tip out stalls and HC spiking on decels.


DESMAF_PRE = Initial prediction, based on rpm, load, & temperature
DASPOT = DASPTK * (DSTPBR - (RATCH + DELHYS)) + FN830
DESMAF_PID :=
IPSIBR = Fixed at last calculated value (not updated in this mode)
ISCKAMn = KAM cell n, where n is selected by ISFLAG
ISC_A_PROP & ISC_A_DER are both zero



* ISCFLG = -1 DASHPOT CONTROL

In engine run/underspeed mode and having just transitioned from part to closed throttle the system is placed in ISC
dashpot control mode. The length of time the ISC system will remain in dashpot control is both hardware/strategy
dependent (some applications have VSS; some manual transmission applications have gear and clutch switches). Regardless
of the length of time required to enter RPM control, as long as closed throttle operation is maintained the amount of
airflow specified by the dashpot pre-position (see dashpot pre- position logic) is decremented at a constant rate until
exhausted (until DASPOT = 0).


DESMAF_PRE = Initial prediction, based on rpm, load, & temperature
DASPOT = old DASPOT - FN879(DASPOT)
DESMAF_PID :=
IPSIBR = Fixed at last calculated value (not updated in this mode)
ISCKAMn = KAM cell n, where n is selected by ISFLAG
ISC_A_PROP & ISC_A_DER are both zero


* ISCFLG = 1 CLOSED LOOP RPM CONTROL

Typical Idle RPM control (not at issue here)


* ISCFLG = 2 CLOSED LOOP RPM CONTROL (Lock-out entry to RPM control)

'Hanging' RPM control in neutral when coming to a stop. This is often a few/several hundred more RPMs than idle RPM. (not at issue here)

-------------------------------------------

While at PT or WOT (DASHPOT PRE-POSITION mode), airflow is added to the DASPOT term to prepare for a deceleration. It is mainly determined from the ISC_Dashpot_Pre-Position function. Then when going to closed throttle mode, the ISC strategy changes to DASHPOT CONTROL mode, and the airflow which was previously added to the DASPOT term is bled away.

I BELIEVE that FN879 (ISC_dashpot_decay_rate) decay value (Y axis) represents the amount of air (in lb/min) to subtract from the value DASPOT, per background loop when in DASHPOT CONTROL mode. DASPOT was previously built up in DASHPOT PRE-POSITION mode. I believe that the X axis value is actually the current DASPOT value (in lb/min), rather than 'time' as known in caledit.

So you are then able to adjust the amount of air that is decremented from DASPOT, as DASPOT itself decrements. So IOW, whatever the DASPOT value is going into the function, that becomes the X value, and the corresponding Y axis value is then subtracted from it. Most calibrations start out decrementing air quickly, and then ramp down the 'drop' as time goes on. This seems to make the function's 'decay' values go from right to left as the RPM drops. The DASPOT value is clipped to 0 (not allowed to go lower than zero).

Thus setting 'decay' larger will subtract more from DASPOT each background loop, making for a larger/faster drop in RPMs (ultimately due to a smaller DESMAF value).

--------------------------------------------

I also believe that the ISC_Dashpot_Pre-Position function's axis labels are wrong. It should have 'RPM's' on it's X axis, rather than 'Time', and 'air' on the Y, rather than decay.

ROM fox_type FN830;
/* Dashpot preposition offset.
Resolution: 0.000240 Base Value: Units: PPM
Min. Value: 0.000000 Max. Value: 2.000000 Cal. Level: RCON/VECTR
XY Pairs: 6 X Input: N X Input Units: RPM*/


I also believe that the ISC_dashpot_decay_rate function's axis labels are wrong. It should have 'DASPOT value' (or 'air') on it's X axis, rather than 'Time', and 'air' (or 'air decay') on the Y.

ROM fox_type FN879;
/* A background driven decrement to the dashpot preposition airflow register as a function of
DASPOT.
Resolution: 0.000244 Base Value: Units: PPM
Min. Value: 0.000300 Max. Value: 0.500000 Cal. Level: RCON/VECTR
XY Pairs: 7 X Input: DASPOT X Input Units: PPM*/

-----------------------------------------------

Looking at the function definitions, it lists the values of air as PPM. I believe that PPM isn't "parts per million" as commonly known, but that it is really "Pounds Per Minute" (lb/min), as commonly used in the strategy for air units. I found these (non-important to this discussion) ram locations and descriptions in the CRAI8 document.


RAM F32 pcomp_ppm;
/* PCOMP IN POUNDS PER MINUTE.
Resolution: 0.000000 Units: PPM Init. Value: 0.000000
Min. Value:0.000000 Max. Value: 63.990002 Reg. Type: RAM*/

AND

RAM F32 pgm_pcomp_w;
/* Filtered PCOMP flow in pounds per minute.
Resolution: 0.000002 Units: PPM Init. Value: 0.000000
Min. Value:0.000000 Max. Value: 0.124000 Reg. Type: RAM*/



I haven't tested out these decay values, does my description reflect the operational charastics observed by others?




Perhaps I didn't emphasize the point of this, or my post wasn't read or understood.

While most everyone knows that larger 'decay' values = faster drop, and smaller values = slower drop, I have never seen it posted exactly what the values in that function actually mean or specifically do, nor does it seem that anyone really knows. Everyone seems confused. I believe that I have solved the mystery of this function.

The Dashpot decay rate function's X axis value is NOT time, but rather the value in the RAM location DASPOT.

The Y axis value (known as decay) is the amount of air (in lb/min) to be subtracted from RAM location DASPOT, per background loop.

The function doesn't work based on time, although coincidently (or indirectly) it sorta does.

************************************************** *****

RAM location DASPOT is the amount of air (in lb/min) added to the ISC to prepare for the closing of the throttle while in PT or WOT mode. This value is mainly comprised of the dashpot pre-position. DASPOT is the amount of air above the amount required to maintain desired idle speed.

Once the throttle is closed, the EEC bleeds off the extra air that DASPOT adds. To do this, it uses the Dashpot decay rate function to figure out how much to subtract. It looks to that function, the current DASPOT value is the X axis. Then it exits the function with the amount to be subtracted, the Y axis value. This occurs once per background loop. Then the next time the function is applied (the next background loop), the new (slightly reduced) DASPOT value is the X value this time, and the 'decay' rate (Y axis value) is output and subtracted from DASPOT. This then continues until DASPOT is zero.

Once all of this is bled off, then the ISC is told to let the amount of air past to maintain the desired RPM. When the vehicle is in motion, DASPOT is not allowed to completely go to zero, there is another function that clips it to a minimum per vehicle speed. Then once the speed has dropped under that speed, the remaining DASPOT amount is allowed to be bled off.

************************************************** *****

So taking CManT1914's values posted:

0.3000500-----0.4499500-----0.649900-----0.929930-----16.00000
0.0039063-----0.0080566-----0.023926-----0.050049-----0.050049

Assume you are driving in PT mode and DASPOT = 0.929930, and you go closed throttle, the EEC goes to the daspot decay rate function to start bleeding off that 0.929930 air adder. The first time through, it will compute a 'decay' rate of 0.050049. It then subtracts that from the 0.929930 and the new DASPOT value is 0.879881. During the next background loop, it goes to the dashpot decay rate function and the X axis value used is 0.879881. It then computes a 'decay' amount of about 0.045 (interpolated). Then it subtracts that 0.045 from 0.879881 to get the new DASPOT value of 0.834881. This continues until DASPOT = 0, or DASPOT = min clip value due to VSS. With CManT1914's given function, as DASPOT get's smaller, the 'decay' also slows down.

************************************************** *****

I have also checked GFUB, and the dashpot decay rate function also works this way - with the X input being DASPOT, and the Y output being a subtractor.

I realize that this information will not have much of an impact on everyone's tune, but is more intended to be another piece of the puzzle - to increase our understanding of the EEC.

indy2000
03-25-2006, 07:47 AM
Yes I understand it, and i'll be trying it in the next few weeks.

On some decels, when i close the throttle quickly, rpm drops to near stall, especially when the Mark8 fan is on. I believe its is a combination of the extra load (KB whipple) and Fan(when on).

I'll try to post some results as they come.

BTW i resussurected that thread on eectuning.:jester: