boost overshoot arrester circuit
#1
boost overshoot arrester circuit
I have an AEM, a 5 psi wastegate can, 10 psi target, and a GT2560.
The AEM boost control algorithm is great (includes a 3D, TPS vs. RPM, boost target table), but for one thing. It has no 'D' term to help prevent overshoots. Tuning it, I either get slowish spoolup and little overshooting, or fast spoolup and massive(up to 4 psi) overshoots.
So I built an overshoot arrestor circuit. Because my wares are hard and not soft (i.e. I'm not a big software weenie), I built an analog circuit. Only took me a couple of hours lol.
The circuit cuts the power to the boost solenoid when the max boost target is gonna be hit in the next 150 ms given the rate of rise of boost. The idea is to pulse the solenoid open when overshoot is imminent.
It will not open the solenoid if the rate of rise is < 50 kPa per second. I determined this number from examining datalogs, overshoots only happen when boost rises >50 kpa/sec... and BTW I see >300 at say 5000 RPM, when I do a violent floor-lift-floor.
The circuit needs to tap into the MAP sensor, and has 2 *****:
- max boost target
- 'D' multiplier.
The latter **** simply adjusts the above-mentioned 150 ms number, from 100~300 ms.
It works pretty well after just 3 datalogged runs of tweaking. I used to get 4 psi of overshoots, I now get 0 to 0.7 psi.
Attached is the circuit's first iteration. It has been designed for the Smokorola 2.5 Bar MAP sensor. (MPX4250A)
On the left, from top to bottom, the terminals are: 12V, MAP sensor, MAP sensor ground. On the right is the output for the solenoid, the wire which normally goes to 12V. (i.e. the other wire for the solenoid goes to the ECU).
The left pot is for the D term, the right one is the max boost setpoint. The testpoint is for measuring the setpoint voltage - it has a 1:1 correspondence with the MAP sensor voltage at max boost.
I layed out this thing for SMD resistors and capacitors for compactness.
The AEM boost control algorithm is great (includes a 3D, TPS vs. RPM, boost target table), but for one thing. It has no 'D' term to help prevent overshoots. Tuning it, I either get slowish spoolup and little overshooting, or fast spoolup and massive(up to 4 psi) overshoots.
So I built an overshoot arrestor circuit. Because my wares are hard and not soft (i.e. I'm not a big software weenie), I built an analog circuit. Only took me a couple of hours lol.
The circuit cuts the power to the boost solenoid when the max boost target is gonna be hit in the next 150 ms given the rate of rise of boost. The idea is to pulse the solenoid open when overshoot is imminent.
It will not open the solenoid if the rate of rise is < 50 kPa per second. I determined this number from examining datalogs, overshoots only happen when boost rises >50 kpa/sec... and BTW I see >300 at say 5000 RPM, when I do a violent floor-lift-floor.
The circuit needs to tap into the MAP sensor, and has 2 *****:
- max boost target
- 'D' multiplier.
The latter **** simply adjusts the above-mentioned 150 ms number, from 100~300 ms.
It works pretty well after just 3 datalogged runs of tweaking. I used to get 4 psi of overshoots, I now get 0 to 0.7 psi.
Attached is the circuit's first iteration. It has been designed for the Smokorola 2.5 Bar MAP sensor. (MPX4250A)
On the left, from top to bottom, the terminals are: 12V, MAP sensor, MAP sensor ground. On the right is the output for the solenoid, the wire which normally goes to 12V. (i.e. the other wire for the solenoid goes to the ECU).
The left pot is for the D term, the right one is the max boost setpoint. The testpoint is for measuring the setpoint voltage - it has a 1:1 correspondence with the MAP sensor voltage at max boost.
I layed out this thing for SMD resistors and capacitors for compactness.
#3
While trying to improve my circuit I realized I could implement a real 'D' algorithm to add to the AEM's PI simply by processing the AEM's boost solenoid PWM output. My original circuit would reduce the overshoot but would sometimes cause undershoot, and if I tried to speed up the boost response it could still overshoot some.
So I built a circuit that implemented the 'D', and the results are attached. On the left is a typical overshoot without the D, on the right is with the 'D' circuit. Note that there is little overshoot even when I do a sudden throttle lift then floor it again, while at full boost, even at >5500 RPM.
Having a 'D' in many feedback loops is important.
So I built a circuit that implemented the 'D', and the results are attached. On the left is a typical overshoot without the D, on the right is with the 'D' circuit. Note that there is little overshoot even when I do a sudden throttle lift then floor it again, while at full boost, even at >5500 RPM.
Having a 'D' in many feedback loops is important.
#7
Rounding is a consequence of the 'D' to prevent overshoot.
Think about running full speed towards a spot on the ground on a slippery floor. You need to start braking and slowing down soon so you don't overshoot your target.
Yes you can sacrifice and allow a bit of overshoot if it's OK to pass your target a bit and run back, by reducing the magnitude of the 'D' term, in order to hit (pass) your target a bit sooner.
Think about running full speed towards a spot on the ground on a slippery floor. You need to start braking and slowing down soon so you don't overshoot your target.
Yes you can sacrifice and allow a bit of overshoot if it's OK to pass your target a bit and run back, by reducing the magnitude of the 'D' term, in order to hit (pass) your target a bit sooner.
Thread
Thread Starter
Forum
Replies
Last Post
StratoBlue1109
Miata parts for sale/trade
21
09-30-2018 01:09 PM