Sale ends todayGet 30% off any course (excluding packages)
Ends in --- --- ---
Discuss all things tuning in this section. News, products, problems and results.
Recently I got my first gen 12AT RX-7 up and running on MaxxECU and this is my first time working with DBW throttles. Previously the car had been running on Speeduino with a standard cable throttle.
The throttle body in use is a Bosch 74mm EBT (PN, 0280750474) and I'm trying to sort out what my expectations should be in regards to slight overshoots of the commanded throttle position. After spending quite a good deal of time adjusting the PID tune, I seem to be unable to prevent slight (say 1-4%) overshoots on rapid transients. Control outside of such conditions, however, is quite good with no oscillations or the like. Is this considered normal or should I continue trying to reduce the overshoots - I'm just not sure how good is "good enough"? Has anyone used this or a similar throttle (the 68mm and 82mm are seemingly more common) with MaxxECU and have any advice to share? Obviously this is a critical setting, so if this isn't acceptable I don't want to cut any corners.
My PID currently sits at P 60, I 80, D 120. Using only the P term uncontrolled instability sets in around 120. With only I it's around 150. Using P 60 and I 80, the D term introduces small oscillations at around 200. This is using the 10x gain multiplier setting and a tuned feed forward table.
I've also noticed that the Maxx PID tuning suggestion is different than what I found in the webinars. Maxx states that and P and I should be increased together until instability is reached, and then add some D term. After that supposedly it is common to increase I and decrease P some for the best final results - this matches many of their pre-set throttle profiles. The webinars on the other hand indicate that a good starting place is an I that is approximate half of P, with some D added to reduce overshoots. I have not done extensive work with PID tuning in the past, although I do have some limited experience from boost and lambda control. Are these methods dependent on the algorithms that are implemented, or...? Any clarification would be appreciated.
Please let me know whatever other information would be helpful. This is only my second time tuning an EFI car from scratch and I'm most certainly still learning. Thanks.
I haven't done any DBW on MaxxECU's, but I have on other ECU's. Snapping the throttle from 0% to 100% will typically induce a slight overshoot of the 100% position, more so one the larger throttles due to the increase mass and inertia that they have over the smaller throttles. Even OEM ECU controls will show this in some vehicles. You have to do a lot of modelling and PID control to get rid of the overshoots.
Thanks for chiming in Stephen. I've done some more playing around since my last post and perhaps improved it a hair, but really not much. The best results I landed on were from simply increasing the D term to 150. That's after starting from scratch many times and attempting a couple different approaches.
What I've found is that the I term seems to be the problematic one (at least for me). A small enough value to minimize overshoot is too small to correct for long term errors within a reasonable period of time, a slightly higher value overshoots with the same issue, and then increasing it beyond there will frequently overshoot but can stabilize quickly thereafter. Decreasing P in order to reduce the initial overshoot a little only ends up increasing oscillations from the I term, of which the D term generally can't adequately damp.
The best results so far yield an overshoot up to about 4% quickly dropping from full throttle to a target of ~10% throttle. Smaller transients might overshoot by no more than half a percent, although that's still enough to introduce some annoyances with AE at light throttle. Are such results reasonable enough to consider safe, or perhaps even normal? There's never a hint of uncontrolled oscillation, just the one overshoot and then it stabilizes. I don't have a log of just throttle testing on hand but I do have a couple screen snips I'll attach below if that's at all helpful.
One other thing I noticed is that the values in my feedforward table seem to have drifted since initial setup. Originally ~24% duty would reach 100% throttle, but now it requires closer to 30% duty, almost as if internal friction has somehow increased. Since then the values haven't changed again, but I just thought it was odd. In any case, thanks for taking the time to read this. Any input is greatly appreciated.
Due to the way that the spring support is done with the DBW throttles it can be harder to get the closing throttle to track correctly compared to the opening throttle. DBW Throttle Servos have two sets of springs, compared to the single direction spring in a cable throttle. What the two bidirectional springs do in the DBW system is set the "fail-safe" opening position where the forces applied by each spring set are balanced out against each other. This gives a throttle opening of somewhere between 10% ~ 20% (depending on the throttle) when the throttle is not powered, so this if an error occurs, the ECU can turn off the control and let the throttle return to the fail-safe position and allow for the driver to move the vehicle to a safe place (this is also why an Engine Speed Limit should be applied if the DBW goes into fault).
Due to this spring arrangement, when the throttle is closing, there is a strong spring assist to close the throttle blade until it gets to the balance point, at which time the ECU has to go from applying braking to the motor to driving the motor to the aim point, if this is not much past the balance point then the control has to quickly reverse again to apply braking to hit the aim. Your feed forward table can assist here, with negative numbers below the balance point and positive above and the cross over point at the neutral balanced position. Making it more difficult is the PID control setup is usually aimed at the opening side of the operation, and not the closing side so the optimal PID for avoiding overshooting the aim on opening, may be too much for proper closing control.
Usually an overshoot on closing is not much of an issue, as long as it doesn't exceed the safeties built into the DBW control strategy in the ECU. Looking at your traces, the over shoot is reasonable and there is no ringing of the position when it recovers to the aim, so I probably wouldn't do too much more on it.
Alrighty then, it sounds like I should probably move on from throttle tuning for now, thanks for that explanation. There are still some small overshoots even on throttle opening, but not nearly as large as what is seen in those screenshots. Maybe I'll revisit it again at some point and try to further improve it, but so long as it's safe and reasonable I feel good about moving forward. Thanks again Stephen.