ECU Boost Control Duty Cycle info
#1
Thread Starter
EvoM Guru
iTrader: (6)
Joined: Mar 2007
Posts: 9,486
Likes: 66
From: Melbourne, Australia
ECU Boost Control Duty Cycle info
Hi Guys,
In my search for improved boost control I came across some interesting information.
The code that controls the DutyCycle output only loops between 0 and 47.
Now for those of us that are good with maths, you will see that 100/48 = 2.08333...
So when converting out requested WGDC to actual BCS dutycycle we get the following:
73% WGDC = 35/48 = 73%
74% WGDC = 36/48 = 75%
75% WGDC = 36/48 = 75%
76% WGDC = 36/48 = 75%
So you can see that if you ask for 73% you will get 73%, but if you request 74% it will jump to 75%.
What this effectively means is we have a 2% resolution on WGDC, forget 0.5% its useless...
I hope this makes sense
Cheers
D.
In my search for improved boost control I came across some interesting information.
The code that controls the DutyCycle output only loops between 0 and 47.
Now for those of us that are good with maths, you will see that 100/48 = 2.08333...
So when converting out requested WGDC to actual BCS dutycycle we get the following:
73% WGDC = 35/48 = 73%
74% WGDC = 36/48 = 75%
75% WGDC = 36/48 = 75%
76% WGDC = 36/48 = 75%
So you can see that if you ask for 73% you will get 73%, but if you request 74% it will jump to 75%.
What this effectively means is we have a 2% resolution on WGDC, forget 0.5% its useless...
I hope this makes sense
Cheers
D.
#3
Would it be beneficial to change the scaling in the EcuFlash XML to make it easier to understand, like having it go from 0 - 47? Just throwing it out there. This might be another reason why I am having some difficulty in tuning my boost, small increments of .5 or 1 might not change anything.
#4
Thread Starter
EvoM Guru
iTrader: (6)
Joined: Mar 2007
Posts: 9,486
Likes: 66
From: Melbourne, Australia
Well the good news I have created a patch to increase the resolution to 1%.
Now rather than just bumping up the counter to 100, I basically broke 100 into groups.
Initially I started with 4 groups of 25.
So for 73% WGDC you get the following:
73/4 = rounds to 18.
18*4 = 72, so 1 remainder
So for the first 3 loops I turn on the BCS 18 out 25 loops, for the last loop (ie the 4th) I turn on the BCS for 19 out of 25 loops.
So over 100loops I have 73 ON. Which of course is a 73% DutyCycle.
When I ran this code I found my boost dropped from 24psi to 19psi....
Now I have buggered off 4 loops of 25 and am now using 2 loops of 50.
It works fine.
MrFred and I think that there must be some latency involved in open/closing the BCS, which is why the same WGDC accounts for a lower psi. MrFred will be testing the latency of his BCS latter this week.
Now rather than just bumping up the counter to 100, I basically broke 100 into groups.
Initially I started with 4 groups of 25.
So for 73% WGDC you get the following:
73/4 = rounds to 18.
18*4 = 72, so 1 remainder
So for the first 3 loops I turn on the BCS 18 out 25 loops, for the last loop (ie the 4th) I turn on the BCS for 19 out of 25 loops.
So over 100loops I have 73 ON. Which of course is a 73% DutyCycle.
When I ran this code I found my boost dropped from 24psi to 19psi....
Now I have buggered off 4 loops of 25 and am now using 2 loops of 50.
It works fine.
MrFred and I think that there must be some latency involved in open/closing the BCS, which is why the same WGDC accounts for a lower psi. MrFred will be testing the latency of his BCS latter this week.
#6
Thread Starter
EvoM Guru
iTrader: (6)
Joined: Mar 2007
Posts: 9,486
Likes: 66
From: Melbourne, Australia
If it turns out to be a worthwhile patch then yes it will be integrated.
I was hoping more smaller loops would create smoother boost - but since we can't run more smaller loops then really the only advantage is increased resolution on the BCS DC...
I was hoping more smaller loops would create smoother boost - but since we can't run more smaller loops then really the only advantage is increased resolution on the BCS DC...
Trending Topics
#10
Here is the part of code that tephra means.
But I am not sure that the solenoid is so accurate that this factor plays an important role.
Code:
ROM:0000AD54 mov.l @(h'1F4,pc), r4 ; [0000AF4C] = WG_Duty_Cycle ROM:0000AD56 mov.w @r4, r4 ROM:0000AD58 extu.w r4, r4 ROM:0000AD5A mov #h'30, r5 ; '0' Here is the 48 ROM:0000AD5C mov.w @(h'24,pc), r6 ; [0000AD84] = h'C8 dez 200 maximum internal Value of WGDC ROM:0000AD5E mov.l @(h'30,pc), r10 ; [0000AD90] = r4_mul_r5_div_r6_round ROM:0000AD60 jsr @r10 ; r4_mul_r5_div_r6_round ROM:0000AD62 nop ROM:0000AD64 mov r0, r1 ; r0= WG*0.24 (48/200) ROM:0000AD66 mov.l @(h'2A4,pc), r10 ; [0000B00C] = Backup_sr ROM:0000AD68 jsr @r10 ; Backup_sr ROM:0000AD6A nop ROM:0000AD6C extu.w r1, r1 ROM:0000AD6E mov.l @(h'1FC,pc), r10 ; [0000AF6C] = WGDC_Set_Counter ROM:0000AD70 mov.w @r10, r10 ROM:0000AD72 extu.w r10, r10 ROM:0000AD74 cmp/hi r10, r1 ROM:0000AD76 bf loc_AD94 ROM:0000AD78 mov.l @(h'1D4,pc), r10 ; [0000AF50] = PFDR ROM:0000AD7A mov.b @r10, r0 ROM:0000AD7C or #8, r0 ROM:0000AD7E mov.b r0, @r10
#13