MS-II Closed Loop Boost Control - PID
#104
What range for the I-term would you expect to see. Lower by a few points, or 20 points?
The higher I made the I-term, the faster it seemed to ramp to the target. Lowering I seems to bring it to target slower.
#105
Yeah, most of the cars I have tuned boost on used something like 30 for I. P should be set to get you close to the target, then I should be set so it keeps you there. When you start using I you will probably have to increase P. With just P and I you should tune for some overshoot. Then add just enough D to kill the overshoot.
Ken
Ken
#106
It was strange the way it worked. I tuned the P until it reached target. I expected it to ramp quickly, but it didn't. I actually though I had a leak. I then decided to play with I just in case it would make a difference. I started at 20, which had almost no improvement. I increased to 30 and noticed a much quicker ramp up to target. 45 and above provide very fast ramp up. With the I term above 90 it starts to overshoot the target.
Does D kill the initial overshoot, or tighten the oscillation around the target? I had to raise D because boost was oscillating slightly above and below the intended target.
I'll leave P and D alone, and start decreasing I in increments of 10.
Overall, I'm very happy. It's pretty good as is.
Does D kill the initial overshoot, or tighten the oscillation around the target? I had to raise D because boost was oscillating slightly above and below the intended target.
I'll leave P and D alone, and start decreasing I in increments of 10.
Overall, I'm very happy. It's pretty good as is.
#108
2. Set Proportional gain to 100% and slowly lower - While tuning Proportional gain, higher numbers mean slower boost climb and lower final boost. For safety, start with a very high gain (100% should be sufficient). Find the RPM that typically spools quickly, and fully and quickly depress the accelerator. Note how much boost is reached. If boost overshoots the target dramatically, increase the Proportional gain. Otherwise, reduce the Proportional gain and try again. Do this until boost reaches the target with a small amount of overshoot.
3. Tune the Integral Gain - The next step after the target is reached consistently is to tune the Integral gain. Starting from the RPM used to tune the P-gain, fully depress the accelerator and watch the boost as the engine climbs through the RPM range. As the engine accelerates through the rev range, the boost will probably creep away from the target. Keep increasing the I gain until the controller adequately maintains the target with minimal oscillation. It may be necessary to increase the P gain a bit after tuning the I gain since the two gains tend to counteract each other.
4. tune the Derivative Gain - Increase the D gain until the overshoot is minimized. Care must be taken when increasing the D gain as too much D gain can over-dampen the effects of the P and I gains.
#109
The reason for what is in bold is that I did not use the "ideal" form of PID. Because I made the PID output additive, I had to take the derivative of the PID equation.
The result is the behavior you see. Lower P makes the P part of the controller respond slower, allowing boost to climb faster.
I used the "type B" form of PID found here:
http://bestune.50megs.com/typeABC.htm
I used type C initially but that made the algorithm slow to respond to changes in target due to throttle movement since the P term did not contain the setpoint. I switched to type B to solve this.
Ken
The result is the behavior you see. Lower P makes the P part of the controller respond slower, allowing boost to climb faster.
I used the "type B" form of PID found here:
http://bestune.50megs.com/typeABC.htm
I used type C initially but that made the algorithm slow to respond to changes in target due to throttle movement since the P term did not contain the setpoint. I switched to type B to solve this.
Ken
#112
The reason for what is in bold is that I did not use the "ideal" form of PID. Because I made the PID output additive, I had to take the derivative
I used the "type B" form of PID found here:
http://bestune.50megs.com/typeABC.htm
I used type C initially but that made the algorithm slow to respond to changes in target due to throttle movement since the P term did not contain the setpoint. I switched to type B to solve this.
Ken
I used the "type B" form of PID found here:
http://bestune.50megs.com/typeABC.htm
I used type C initially but that made the algorithm slow to respond to changes in target due to throttle movement since the P term did not contain the setpoint. I switched to type B to solve this.
Ken
. Left no D, right, with D
#113
I'll start by reducing I, It is a difficult process for me since I am alone in the car. I have to log, pull over, log pull over, etc. The rough adjustments weren't so bad because I could make a few pulls in one log, as I started fine tuning it was one pull and analyze. I'm hoping to get a couple of runs in today.
I expect that I will have to increase P slightly after I am done reducing I.
What is more important? Initially tuning the target, or the stability of the curve (ie straight line)
Are you tuning P so that you hit target at the beginning of curve or that it is close across the entire curve?
I expect that I will have to increase P slightly after I am done reducing I.
What is more important? Initially tuning the target, or the stability of the curve (ie straight line)
Are you tuning P so that you hit target at the beginning of curve or that it is close across the entire curve?
#114
I is what makes the boost reach target relatively gradually after the initial ramp up.
P is what gives you the rapid ramp and getting close to the target initially.
D allows more P without overshoot. Too much D gives you "undershoot" in the initial fast ramp - it ramps up quickly, then "pauses" before the target, then climbs more slowly. Without D. the P has to be low to prevent overshoot, and the response will be slow.
To get close initially, the open loop settings have to be close - i.e. in open loop, the table that tells the ECU the duty cycle vs. target boost (over RPM), has to be close. Any remaining error will be removed by the I. If the open loop table is off, the I will have a bigger error to correct. The purpose of the I, when the open loop table is close, is to make up for error in the open loop table due to other factors such as temperature.
P is what gives you the rapid ramp and getting close to the target initially.
D allows more P without overshoot. Too much D gives you "undershoot" in the initial fast ramp - it ramps up quickly, then "pauses" before the target, then climbs more slowly. Without D. the P has to be low to prevent overshoot, and the response will be slow.
To get close initially, the open loop settings have to be close - i.e. in open loop, the table that tells the ECU the duty cycle vs. target boost (over RPM), has to be close. Any remaining error will be removed by the I. If the open loop table is off, the I will have a bigger error to correct. The purpose of the I, when the open loop table is close, is to make up for error in the open loop table due to other factors such as temperature.
#116
I lowered the I-term from 90 down to 40 in increments of 10. This caused a much longer ramp to target. I did see less oscillation.
From what others have written, their appears to be multiple ways to get to an end result. In one word, sucks, would be the way I describe this.
The tuning instructions are essentially useless if you tune the p-term initially.
I followed the instructions, and this is what I saw.
Adjust P-term lower until it doesn't drastically overshoot the target. I reduced P until the overshoot was ~ 1 psi. Changing P by 1 point starts to make a big difference when you are close to target. At this point the boost ramped up so slow that I though I had a leak. I reverted to open loop to check.
I-term: I started with an I-term of 20 and increased until I had a fast ramp up. I-term of 45 gave fast ramp, but boos had a lot of oscillation. Increasing I too much caused an overshoot of the target. I had to adjust the P term by 1 point to compensate. I adjusted the I term until the oscillation around target was fairly small mainly less than 1 psi.
D-term. I then used the D term to try and tighten the oscillations further. It helped, but not across the entire time at target boost. It has a couple of initial oscillations, and then really tightens in on the target.
I reverted back to my initial settings. Next I will try to increase P-term. This will lower the initial target, but I'm hoping removing the initial overshoot will allow it to smoothly get to target with no oscillation. I probably won't get to it for a couple of days.
I find it very annoying that multiple people can have such different ratios of PID. I don't expect the same values to work on every system, but I would expect very similar ratios of PID.
I think we should compile a list of values associated with the type of EBC that is being used.
From what others have written, their appears to be multiple ways to get to an end result. In one word, sucks, would be the way I describe this.
The tuning instructions are essentially useless if you tune the p-term initially.
I followed the instructions, and this is what I saw.
Adjust P-term lower until it doesn't drastically overshoot the target. I reduced P until the overshoot was ~ 1 psi. Changing P by 1 point starts to make a big difference when you are close to target. At this point the boost ramped up so slow that I though I had a leak. I reverted to open loop to check.
I-term: I started with an I-term of 20 and increased until I had a fast ramp up. I-term of 45 gave fast ramp, but boos had a lot of oscillation. Increasing I too much caused an overshoot of the target. I had to adjust the P term by 1 point to compensate. I adjusted the I term until the oscillation around target was fairly small mainly less than 1 psi.
D-term. I then used the D term to try and tighten the oscillations further. It helped, but not across the entire time at target boost. It has a couple of initial oscillations, and then really tightens in on the target.
I reverted back to my initial settings. Next I will try to increase P-term. This will lower the initial target, but I'm hoping removing the initial overshoot will allow it to smoothly get to target with no oscillation. I probably won't get to it for a couple of days.
I find it very annoying that multiple people can have such different ratios of PID. I don't expect the same values to work on every system, but I would expect very similar ratios of PID.
I think we should compile a list of values associated with the type of EBC that is being used.
#119
Jason, we do not use the open loop table at all for closed loop, though I am planning to make that an option in ms3.
As far as my instructions go, that is how I have tuned basically every boost control setup on MS that I have tuned. Can I see your whole msq?
Also, lowering P will allow more overshoot. I term should be used only for holding a target. If you want it to spool faster, lower P considerably and bump up D a bit.
I may add the setting that lets you keep the wastegate closed until you are a certain distance from the target too.
Also, maybe I am missing it, but I do not see boost duty in the graphs you are posting.
Also, have you tried making the control interval a little longer?
Ken
As far as my instructions go, that is how I have tuned basically every boost control setup on MS that I have tuned. Can I see your whole msq?
Also, lowering P will allow more overshoot. I term should be used only for holding a target. If you want it to spool faster, lower P considerably and bump up D a bit.
I may add the setting that lets you keep the wastegate closed until you are a certain distance from the target too.
Also, maybe I am missing it, but I do not see boost duty in the graphs you are posting.
Also, have you tried making the control interval a little longer?
Ken