Originally Posted by JasonC SBB
Now if only for boost control they added:
1) 3D table of solenoid duty cycle with RPM and boost target as the axes
Originally Posted by Reverant
That's the default if you choose open loop. Otherwise it makes no sense in closed loop.
The system I describe is called "PID feedback with feedforward". Even Wikipedia says:
PID controller - Wikipedia, the free encyclopedia
The control system performance can be improved by combining the feedback (or closed-loop) control of a PID controller with feed-forward (or open-loop) control. Knowledge about the system (such as the desired acceleration and inertia) can be fed forward and combined with the PID output to improve the overall system performance. The feed-forward value alone can often provide the major portion of the controller output. The PID controller can be used primarily to respond to whatever difference or error remains between the setpoint (SP) and the actual value of the process variable (PV). Since the feed-forward output is not affected by the process feedback, it can never cause the control system to oscillate, thus improving the system response and stability.
Picture this. As a first assumption, the MS open loop system using a 3D lookup table, will produce target boost every time. However, 2 things spoil this:
1) transients - it takes time for the pneumatic wastegate actuator to fill and move to the target position (which is determined by the boost pressure and the duty cycle). And, an open loop system cannot, for example, keep the wastegate shut to speed up spoolup.
2) other variables which affect final boost, such as IAT, and any errors in the filling of said table
Which brings us to closed loop operation.
The idea is that the PID loop "finds" the correct duty cycle to hit the target. Yes the integrator term finds the exact duty cycle that hits the target, but as time approaches infinity - during steady state. The motor never really has a steady state, RPMs change, and TPS (boost target) changes. Also, "finding" the correct steady-state duty cycle takes time. You can't make this time very short by increasing the I gain arbitrarily because that causes overshoots and oscillations. If the required duty cycle changes as say, RPMs climb, there needs to be an error to begin with, to force the PID output to change the duty cycle. Again, response speed and accuracy will not be perfect.
If you combine the open loop scheme with PID:
Output = table value + PID
... then the duty cycle will *immediately* hit that which is required for steady state (PID doesn't need to "find" it), and then the PID takes care of the transients and any remaining errors.
The result is much better performance. There are 3 measures of performance:
- Spoolup time - wastegate should be shut until the very last moment and opens just so that it prevents overshoot
- Settling time - how quickly it reaches a new target within a certain error when the target is abruptly changed
- accuracy - how close it reaches target boost
- overshoot - how little overshoot there is
The performance shortcomings of the PID system in the MS will be evident as:
- overshoots when comparing say, a 4th gear spoolup run from 2000 RPM, vs. 2nd gear, and a very abrupt step-lift-step at 5500 RPM where the turbo spools very quickly. If you tune PID for best performance for one of the 3 conditions, you will get overshoot or sub-optimal response speed with the other 2.
- difficult tuning when you have a low-pressure wastegate (e.g. 5 psi) and a high boost target (e.g. 15 psi). Everyone will say "run a 10 psi can", which will make tuning a lot easier, but, the advantage of a low psi can is THROTTLE MODULABILITY. Your foot can easily command say 5 psi at half throttle, vs. when you have a 10 psi can it wants to hit 10 psi at half throttle.
- More difficult tuning with a small fast-spooling turbo
Check out my results here
Hi performance boost control pwned
However that's cheating a little, I have a local circuit implementing a fast local feedback loop - input is can gauge pressure target (aka wastegate position), the command coming from the ECU, and it targets the can gauge pressure with a gauge pressure sensor teed off from the line to the wastegate can. This speeds up my system performance even more, and significantly and makes PID tuning at the ECU easier.