Author Topic: Oscillations in closed loop dual EGO control  (Read 10997 times)

Offline dnb

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 837
  • BHP: 19
Oscillations in closed loop dual EGO control
« on: July 09, 2014, 07:39:12 pm »
I read this from a previous post

Quote
It is triggered by having a non-zero "engine cycles before changing correction" in dual wideband ego mode. This cycle delay invalidates the back to back sequencing (gated by the active sampling/computed lambda channel) of the ego controllers, giving one controller a higher update rate than the other.

I deduced that the correct value for "engine cycles before changing correction" is zero for FW 1.2.27 running with dual EGO.  However, this makes the fuelling oscillate like mad, and causes RPM oscillations too.  It doesn't oscillate when the VE table is very wrong and the EGO correction is set to take out close to the maximum fuel it is allowed to do, but when the VE table is corrected to be about right, the corrections fluctuate wildly.  This behaviour seems to stop if "engine cycles before changing correction" is set to 10 or so, but I am concerned that I am missing samples on one of the banks and thus only half the engine is controlled properly.

Clearly I'm missing some vital piece of information here about the new way the dual channel EGO correction works...  Are there any pointers?  I am sorting out logs and charts to illustrate.

Offline dnb

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 837
  • BHP: 19
Re: Oscillations in closed loop dual EGO control
« Reply #1 on: July 09, 2014, 10:22:45 pm »
Here is a chart of the oscillations.  The throttle is not moved during the run.


Offline VEMS

  • Administrator
  • Sr. Member
  • *****
  • Posts: 487
  • BHP: 22
Re: Oscillations in closed loop dual EGO control
« Reply #2 on: July 10, 2014, 12:56:40 pm »
Hello David,

To get the correct dual ego behavior it is imperative that both injector mapping, as well as the selected ego channel per injector output (both are available in Injector Outputs Visual) are correct.
If you provide the relevant vemslog file i will review and check for anomalies.

Best regards, Dave


Offline dnb

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 837
  • BHP: 19
Re: Oscillations in closed loop dual EGO control
« Reply #3 on: July 10, 2014, 01:59:25 pm »
That much I know...  I am confident that the injector mapping is correct and that the ego bank settings are correct.   Are there any other settings to look at?  I won't be able to send the log file until late tonight but will have a chance to check and test configuration items if I know what to look for.

Offline fphil

  • Sr. Member
  • ****
  • Posts: 398
  • BHP: 6
Re: Oscillations in closed loop dual EGO control
« Reply #4 on: July 10, 2014, 05:47:52 pm »
By setting all the injectors to first wbo2, is the Ego correction stable?

What the colors of the chart are for? Green for first  wbo2 and blue for the injectors related to?

This happens just after start-up ? When no egocorrection, do you have a table idle without oscillation?
Is your lambda regulation not tuned too slow?.

Any way nice resonance.

Philippe

Offline VEMS

  • Administrator
  • Sr. Member
  • *****
  • Posts: 487
  • BHP: 22
Re: Oscillations in closed loop dual EGO control
« Reply #5 on: July 10, 2014, 05:57:30 pm »
Hello David,

Good news about the injector mapping, after reviewing MembersPage/DavidBlades/DualWb i concluded the same. Excellent info on your MembersPage!

If the configuration you posted last when reworking trigger settings for camsync is (quite) actual, i would advise lowering ego control speed limit to the recommended value of 40 (32-40 recommended) your current 129 (if actual) is far outside of recommended range. This will certainly improve control stability.

I was able to trace and fix the bug in ego sequencing this will be available in 1.2.28; However at this time it's not recommended for upgrade, still experimental.

Best regards, Dave

Offline dnb

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 837
  • BHP: 19
Re: Oscillations in closed loop dual EGO control
« Reply #6 on: July 10, 2014, 07:32:16 pm »
Thanks!

There's a bit of history with the 129 value.  I'll dig out the reasoning behind it later tonight - hopefully it's historic and no longer required.

Offline dnb

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 837
  • BHP: 19
Re: Oscillations in closed loop dual EGO control
« Reply #7 on: July 10, 2014, 11:04:06 pm »
Thanks for the positive comments on my wiki entry.  I really must update things now I've made progress getting the car back on the road.  It covered 150,000 miles on the original engine, about 40,000 of these were with VEMS installed.  It's now got a new engine and various other improvements.

Answering the other questions:
No oscillations when EGO correction is off.
There's a key on the chart if you scroll right - blue is RPM, red and green are the lambda readings.

The config I posted for the cam sync check is not far off the current state of play. 

Updates:
* I have swapped lambda 1 and lambda 2 round so that 1 is for the odd bank (cyl 1,3,5,7) and 2 is even (2,4,6,8) so that it doesn't confuse me again.
* The VE table and injector opening table is calibrated better.
* Falling edge selected for Hall sensor secondary - it moved secondary pulse closer to the middle of a primary tooth pair.
* Coils rewired to be sensible - now I don't have to use "dual out" they can be connected in cylinder number order.
* Knock noise gains calibrated

I've visually checked the injector wiring, and each is connected to the cylinder I expect. 

The ego control speed limit was set to 129 because of the implementation of the alpha smoothing used in EGO correction back in the day.  It was used to multiply with the current EGO sample and the top 8 bits taken of the resulting word, then this was added to the historic smoothed value and then divided by a scaling factor.  You should note that this limits the precision of the EGO correction dramatically, and prevented it in my case from hitting the target fuelling - leading to large steady state error.  The 129 value means there's only 1 bit of lost precision, so it hits the target at a cost of more fluctuation (which I dealt with by having a long time between applying corrections, which I now can't do with dual EGO).  The upshot of all of this was that I (working with Emil who first noticed the precision issue) suggested the introduction of the dynamic speed and asymmetric speed EGO correction algorithms, plus the idea of noise injection.  The first 2 got implemented.

It would be nice to know if this precision issue still exists or if it's been fixed.

With the speed value set to 40, there are still oscillations, but much slower, and they affect RPM much less, so are far less impressive.  See the log file:
https://dl.dropboxusercontent.com/u/8968424/vems/v3.3_u004371-2014.07.10-18.37.41.vemslog 

I'd be interested to know what the fix in 1.2.28 is!

Offline fphil

  • Sr. Member
  • ****
  • Posts: 398
  • BHP: 6
Re: Oscillations in closed loop dual EGO control
« Reply #8 on: July 13, 2014, 10:17:22 pm »
Thanks for your log which answers my questions.
Have you noticed
"Engine Cycles Before Changing Correction
Use 10 or more cycles, too few may cause oscillation."
Don't ask me why (my value is 6).
Philippe


Offline dnb

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 837
  • BHP: 19
Re: Oscillations in closed loop dual EGO control
« Reply #9 on: July 14, 2014, 09:34:45 am »
Thanks.  Have you read my first post om this thread?  I ask the same question.  I was told to use zero for this parameter when dual ego was in use.  This seems spurious to me when the previous advice was to use 10.

Offline VEMS

  • Administrator
  • Sr. Member
  • *****
  • Posts: 487
  • BHP: 22
Re: Oscillations in closed loop dual EGO control
« Reply #10 on: July 14, 2014, 09:51:31 am »
Value of 0 is merely a workaround to be able to use 1.2.27 and get correct controller sequencing; not advised for normal use. Wait for 1.2.28 which has among other things dual ego control bugfixes allowing non 0 cycle setting (as recommended in help) to work correctly

Offline dnb

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 837
  • BHP: 19
Re: Oscillations in closed loop dual EGO control
« Reply #11 on: July 14, 2014, 10:03:28 am »
Thanks for the clarification.   Is there a plan for when1.2.28 will be available?

Offline fphil

  • Sr. Member
  • ****
  • Posts: 398
  • BHP: 6
Re: Oscillations in closed loop dual EGO control
« Reply #12 on: July 14, 2014, 12:00:49 pm »
If you don't mind David I have got other thoughts when viewing your log, particularly for the clock period 83s-91s
- Idle PID is active, there is an IAC Calcl PE up to 10 @ clock 86s, I do not know why.
- If you follow the markers on the ignition  and VE table for one of the dramatic decreases from 2000rpm to 480rpm you see that the VE path and the Ignition path are both descending. This might explain the observed instability. Of course EgoCorrection during that ski time may take off 3 or 4ms from the PW to compensate some rich lambda which does gloss the skis even better ;)
Philippe

Offline dnb

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 837
  • BHP: 19
Re: Oscillations in closed loop dual EGO control
« Reply #13 on: July 14, 2014, 12:28:44 pm »
The instability was well established before that time.  But I take your point that iac, ve table and timing tables are not set up in any meaningful way except at 2000 rpm and lowish map.

Offline fphil

  • Sr. Member
  • ****
  • Posts: 398
  • BHP: 6
Re: Oscillations in closed loop dual EGO control
« Reply #14 on: July 16, 2014, 09:15:51 am »
I got a similar North-West sliding slope @ cold idle (1200 rpm).
I tried to dig the best I can the ignition and injection map around the steady idle state, but I do not yet fully control the PID play.
Philippe