ITT: MS3 1.4.0+ and Closed Loop EBC
#102
Retired Mech Design Engr
iTrader: (3)
Join Date: Jan 2013
Location: Seneca, SC
Posts: 5,012
Total Cats: 859
Those pulls look great.
Have you guys run your settings at different ambient temps? I've been happy with my new settings, until a couple nights ago I went out when it wasn't obnoxiously hot and humid (like 80 degrees instead of 95) and picked up 10kpa pretty much across the pull. The EBC was dropping duty cycle, but it still wasn't doing enough. I feel like I'm going to be back to starting over in a few months when it cools down.
Maybe it's time for me to dive into Advanced mode.
Have you guys run your settings at different ambient temps? I've been happy with my new settings, until a couple nights ago I went out when it wasn't obnoxiously hot and humid (like 80 degrees instead of 95) and picked up 10kpa pretty much across the pull. The EBC was dropping duty cycle, but it still wasn't doing enough. I feel like I'm going to be back to starting over in a few months when it cools down.
Maybe it's time for me to dive into Advanced mode.
Set up all. Then multiply all of the Bias values by 0.8 and see if the PID actually compensates for imperfect target. If boost drops, the PID is not effective and I'm really running an open loop on the bias table. If PID pushes the output to hold boost, then it is doing it's job.
Pretty sure I'm going to conclude that we really do need massive slider, as in 450+, to get the PID to actually do something.
Will report back.
#104
Retired Mech Design Engr
iTrader: (3)
Join Date: Jan 2013
Location: Seneca, SC
Posts: 5,012
Total Cats: 859
I think you guys are missing the point of closed loop control. The purpose is to allow changes in the system to be corrected for, altering the control output (Boost Duty) to make the Process Variable (Boost) return to SetPoint (Target).
#105
SADFab Destructive Testing Engineer
iTrader: (5)
Join Date: Apr 2014
Location: Beaverton, USA
Posts: 18,642
Total Cats: 1,866
Yes. But they are not the first people with temperature issues. Because the bias duty table is always in effect throughout a pull, it is another factor that can be pulling the control loop in the wrong direction. In the old code it was only the PID control loop controlling boost. With the new method the bias table is a part of it. Which means if temperature affects needed duty cycle, then we should have a temp modifier for the bias table.
I actually ran into this when first testing the bias duty control loop. When it was in beta.
Megasquirt Support Forum (MSEXTRA) ? Boost control duty temperature compensation (View topic)
I actually ran into this when first testing the bias duty control loop. When it was in beta.
Megasquirt Support Forum (MSEXTRA) ? Boost control duty temperature compensation (View topic)
#107
I get the point of closed loop: target what boost I tell you to target. It's just dumb to ignore a very obvious variable that has a huge impact on that closed loop.
We have closed loop idle right? So why bother adding AC idle up? Because it's a variable that screws up our idle, same thing MAT is doing to our closed loop boost targets. If something has a huge affect on a closed-loop target, and it's already a variable we're logging, it makes no sense to ignore it simply because we can try to correct for it after it screws up our target.
We have closed loop idle right? So why bother adding AC idle up? Because it's a variable that screws up our idle, same thing MAT is doing to our closed loop boost targets. If something has a huge affect on a closed-loop target, and it's already a variable we're logging, it makes no sense to ignore it simply because we can try to correct for it after it screws up our target.
#108
Retired Mech Design Engr
iTrader: (3)
Join Date: Jan 2013
Location: Seneca, SC
Posts: 5,012
Total Cats: 859
Aidandj. I understand what is being said, and I may end up conceding, but my entire goal is to have sufficient control that when temps get cold, targets will remain hit.
If the CL is not good enough for that, then the Bias Table was a mistake.
I will add one more step to my experiment described above, repeat the test in open loop (set-up, or whatever it is called).
If I change my bias table by 0.8, should that not represent the effect of the differential from 50F to 110F? If not, what is the expected change that should be tested? (seriously, after the 0.8, I was going to try the other direction of 1.25X. I think I'll lower my targets at the start of the test.
If the CL is not good enough for that, then the Bias Table was a mistake.
I will add one more step to my experiment described above, repeat the test in open loop (set-up, or whatever it is called).
If I change my bias table by 0.8, should that not represent the effect of the differential from 50F to 110F? If not, what is the expected change that should be tested? (seriously, after the 0.8, I was going to try the other direction of 1.25X. I think I'll lower my targets at the start of the test.
#110
Retired Mech Design Engr
iTrader: (3)
Join Date: Jan 2013
Location: Seneca, SC
Posts: 5,012
Total Cats: 859
I get the point of closed loop: target what boost I tell you to target. It's just dumb to ignore a very obvious variable that has a huge impact on that closed loop.
We have closed loop idle right? So why bother adding AC idle up? Because it's a variable that screws up our idle, same thing MAT is doing to our closed loop boost targets. If something has a huge affect on a closed-loop target, and it's already a variable we're logging, it makes no sense to ignore it simply because we can try to correct for it after it screws up our target.
We have closed loop idle right? So why bother adding AC idle up? Because it's a variable that screws up our idle, same thing MAT is doing to our closed loop boost targets. If something has a huge affect on a closed-loop target, and it's already a variable we're logging, it makes no sense to ignore it simply because we can try to correct for it after it screws up our target.
Also note if the issue is MAT or Intake Temps. We do have MAT available, but I suspect it that boost is more changed by Intake.
Anyway, I'll run my test, publish results, and you can determine if the control loop will likely accommodate the temperature affects.
EDIT:
How drastic? Were you adjusting only the bias to accommodate, or the PID settings. Seriously, this is fact finding, not fault finding.
#111
I'm targeting 210kpa, bias duty table at 25% DC, on 2 different logs I see:
210kpa @ 26% DC and 132 deg MAT
220kpa @ 23% DC and 94 deg MAT
This is on "basic" mode, so hopefully tuning advanced will give better results. It seems pretty weak that it's only pulling 2% duty cycle from the bias table even when overshooting the target by 10kpa.
210kpa @ 26% DC and 132 deg MAT
220kpa @ 23% DC and 94 deg MAT
This is on "basic" mode, so hopefully tuning advanced will give better results. It seems pretty weak that it's only pulling 2% duty cycle from the bias table even when overshooting the target by 10kpa.
#113
Yes. But they are not the first people with temperature issues. Because the bias duty table is always in effect throughout a pull, it is another factor that can be pulling the control loop in the wrong direction. In the old code it was only the PID control loop controlling boost. With the new method the bias table is a part of it. Which means if temperature affects needed duty cycle, then we should have a temp modifier for the bias table.
I actually ran into this when first testing the bias duty control loop. When it was in beta.
Megasquirt Support Forum (MSEXTRA) ? Boost control duty temperature compensation (View topic)
I actually ran into this when first testing the bias duty control loop. When it was in beta.
Megasquirt Support Forum (MSEXTRA) ? Boost control duty temperature compensation (View topic)
I know the subarus have an intake air temp modifier for the bias table for their closed loop boost control.
#114
Retired Mech Design Engr
iTrader: (3)
Join Date: Jan 2013
Location: Seneca, SC
Posts: 5,012
Total Cats: 859
As promised, I made a bunch of runs with various levels of bias. All runs with target at 180kPa from 4K up, at ambient of 70F
Runs 1, 2, 3 are with my normal settings of P=165, I= 190, D=10, and slider at 470.
Run 1 with Bias at 33, which will yield 180kPa at ambient of 90 degrees.
Run 2 with Bias at 26, which would normally yield about 168kPa
Run 3 with Bias at 53, which would normally yield about 190kPa
Runs 4, 5, and 6 are duplicates of 1,2, and 3; except Slider at 300.
1-Pull
1-Stab
2-Pull
2-Stab
3-Pull
3-Stab
4-Pull
4-Stab
5-Pull
5-Stab
6-Pull
6-Stab
Evaluation:
At the 70F ambient, the actual Duty for most of each pull ranges from 28 to 31 when hitting target. Hence runs 2 and 5 were pretty much right. The ability of the PID loop to continue to control worked pretty well at 1 and 4, with bias at 33. The PID with 470 slider pulled the output to about 28, very close, or a correction possible of about 6% DC.
However, runs 3 and 6, where the bias was "off" by 27%, the PID was only able to control down 10% to 43 from 53 with slider at 470. The throttle punch resulted in quite a lot of overshoot and boost cut activated.
Looking at the punches 1 and 4, notice that with the 470 slider, Boost Duty goes to 75% (max) at first, whereas it does not at 300 slider. Hence with the lower sensitivity, some delta correction might be needed. In this case, spool time was the same.
Observe pulls 2 and 5. With the low slider, the Boost DC stays at 31, and there is no driving to target.
Conclusions: This test seems to indicate that a sluggish PID will try to drive the boost to target by adjusting the Boost Duty by up to 5%, whereas a more aggressively set PID will try to drive the boost to target by adjusting the Boost Duty by up to 10%.
In the end, it also appears that whether the setting is high slider with lots of output changes, or low slider and little movement of the output, the actual boost is similar. In other words, on the pulls 3 and 6: 3 with 470 Slider ran 193kPa at 43% BDC, and 6 with 300 Slider ran 195kPa at 48% BDC.
So, I do think that pdexta has a good chance to control the temp range stated in post 111, if tuned aggressively, but I do not have conclusive evidence.
Runs 1, 2, 3 are with my normal settings of P=165, I= 190, D=10, and slider at 470.
Run 1 with Bias at 33, which will yield 180kPa at ambient of 90 degrees.
Run 2 with Bias at 26, which would normally yield about 168kPa
Run 3 with Bias at 53, which would normally yield about 190kPa
Runs 4, 5, and 6 are duplicates of 1,2, and 3; except Slider at 300.
1-Pull
1-Stab
2-Pull
2-Stab
3-Pull
3-Stab
4-Pull
4-Stab
5-Pull
5-Stab
6-Pull
6-Stab
Evaluation:
At the 70F ambient, the actual Duty for most of each pull ranges from 28 to 31 when hitting target. Hence runs 2 and 5 were pretty much right. The ability of the PID loop to continue to control worked pretty well at 1 and 4, with bias at 33. The PID with 470 slider pulled the output to about 28, very close, or a correction possible of about 6% DC.
However, runs 3 and 6, where the bias was "off" by 27%, the PID was only able to control down 10% to 43 from 53 with slider at 470. The throttle punch resulted in quite a lot of overshoot and boost cut activated.
Looking at the punches 1 and 4, notice that with the 470 slider, Boost Duty goes to 75% (max) at first, whereas it does not at 300 slider. Hence with the lower sensitivity, some delta correction might be needed. In this case, spool time was the same.
Observe pulls 2 and 5. With the low slider, the Boost DC stays at 31, and there is no driving to target.
Conclusions: This test seems to indicate that a sluggish PID will try to drive the boost to target by adjusting the Boost Duty by up to 5%, whereas a more aggressively set PID will try to drive the boost to target by adjusting the Boost Duty by up to 10%.
In the end, it also appears that whether the setting is high slider with lots of output changes, or low slider and little movement of the output, the actual boost is similar. In other words, on the pulls 3 and 6: 3 with 470 Slider ran 193kPa at 43% BDC, and 6 with 300 Slider ran 195kPa at 48% BDC.
So, I do think that pdexta has a good chance to control the temp range stated in post 111, if tuned aggressively, but I do not have conclusive evidence.
Last edited by DNMakinson; 09-30-2017 at 03:49 PM.
#118
Thank you for taking the time to experiment and share your results, that certainly looks promising for resolving issues with temperature variances. I'm going to steal your PID settings and see how they work for me. There have been hints of slightly cooler weather lately, so hopefully I can find some time to test it out.
I've settled on a 365 setting on the slider, even though I'm not totally sure what I'm adjusting, it has seemed to work the best so far. It's reassuring that my best results on the slider has fallen right between your test points.
I've settled on a 365 setting on the slider, even though I'm not totally sure what I'm adjusting, it has seemed to work the best so far. It's reassuring that my best results on the slider has fallen right between your test points.
#119
I've got an Uprev tuner on my G35 and it's terrible. It's got major issues that should be easy to resolve with software tweaks, but nobody knows anything, nobody is willing to share anything, nobody will/can answer questions, and it's all closely guarded, crappy, proprietary data that you're just stuck with.
#120
I tried running DNMakinson's Advanced settings (P=165, I= 190, D=10) and it was less accurate than basic method for me. No big surprise there, but I guess it was worth a shot. Up until this point I don't think anyone has discussed tuning for advanced settings. If anyone has suggestions, explanations, or even theories of what I'm supposed to be doing I'd love some guidance. I do recall reading that basic mode uses settings of 100 for all 3 PID settings. I tried to start with that as a baseline, left I & D at 100, and started off with adjusting "P". I made 3 pulls with P at 80, 100, 120. All pulls looked identical, no relevant data gathered.
I feel like under normal conditions Basic mode is too good for me to continue tuning Advanced mode. I'm wondering if I need to mess up my Bias Duty table in order to force PID to really work to hit target. Dropping 3-4% off duty cycles on my whole map will force PID to start making changes and I think that's where changes to advanced mode will really start to show up. That's the direction I'm heading as of now at least.
P80:
P100:
P120:
Virtual Dyno of the pulls (If nothing else at least I demonstrated how consistent and repeatable Virtual Dyno is):
I feel like under normal conditions Basic mode is too good for me to continue tuning Advanced mode. I'm wondering if I need to mess up my Bias Duty table in order to force PID to really work to hit target. Dropping 3-4% off duty cycles on my whole map will force PID to start making changes and I think that's where changes to advanced mode will really start to show up. That's the direction I'm heading as of now at least.
P80:
P100:
P120:
Virtual Dyno of the pulls (If nothing else at least I demonstrated how consistent and repeatable Virtual Dyno is):