Fuel Pump speed control

Fuel Pump speed control

Author
Discussion

anonymous-user

55 months

Monday 25th April 2011
quotequote all
Unfortunately, due to other commitments, not much progress on this one for a couple of weeks. However i have ordered a nice little fuel injector delta p sensor, as used on various FORD models. It has a push fit O ring stub for fuel rail pressure, and a firtree fitting for manifold pressure. Hence it measures the actual injector DeltaP. I'm going to use this in conjunction with a std FPR and small dia return line to control the pump speed to try to hold a fixed DeltaP across the injectors.


stevieturbo

17,271 posts

248 months

Sunday 24th July 2011
quotequote all
bump

anonymous-user

55 months

Sunday 7th August 2011
quotequote all
Well, its been a while, but progress is being made ;-)

As tends to be the way, when you start projects like this, it is easy to find that actually you need to do a bit more work in other areas to make the inital idea work!

On my car, which is a port throttled turbo, i had been using throttle position as the "Load" determination. But with forced induction cars, it is really hard to get the fuelling/ignition correct against all loads as engine intake mass flow is only marginaly depeandant on actual throttle position! So, in an effort to kill 2 birds with 1 stone, i have developed my "multi-MAP" system:



That little box basically outputs a "digitally regenerated" MAP signal both on CAN and via a 0-5V analogue output (so it can be read by any normal EMS system just like a conventional MAP sensor)


(for those interested(and concentrate, here comes the science bit....;-) it does this by using 4 high speed MAP sensors (20 to 460kPa abs) that are sampled multiple times at high speed (up to 10kHz) during each individual cylinders intake event. The system uses a PhaseLockedLoop (PLL) that is locked from the digital "edge" of the cam postion sensor. This means the system knows exactly the rotational position of the engine mechanics, and can trigger the sampling of the correct sensor. Each intake event is actually sampled 32 times, and a digital filtering algorithm is used to calculate the "average" air charge density during that event. The device then can either output that value synchronously to the DAC out, or it can be combined with the MAP reading for each of the other 3 cylinders and output as various "averaged" MAP values. The CAN output is updated every 10ms with the rolling average of those values.



As this device is also mounted right next to the 0-10bar gauge fuel pressure sensor, i also use it to read the fuel rail pressure, and also send this out on CAN to, wait for it, yup, the fuel pump controller mounted down by the pumps.



The FPC is in charge of the lift pump (mounted in the tank) and the 2 high pressure pumps (2x 044 Bosch in series in my case). The FPC knows the instantaneous MAP and Fuel Rail Pressure (FRP) from which it can either just control FRP directly, or by simple maths calculate and control to an Injector Delta Pressure (IDP). Using some failry trick digital filtering, i remove the pressure wave harmonics from the FRP signal, then use a non linear filter to generate a control output for the pressure pumps to target. In my case, i allow the system to build pressure much faster than i allow it to drop pressure (as it is better to have "excessive" IDP rather than insufficient IDP!). The instantaneous value of IDP is output on CAN or via a 0-5v DAC and read into my EMS system, where a calibrated channel adjusts pulsewidth based on IDP (maintaining a constant fuel quantity regardless of the actual IDP).

The lift pump starts in "prime/purge" mode at key on, and runs a calibrated sequence of flows with the aim of ensuring the swirl pot is full. At engine start, the lift pump has a speed that is calibratable against engine rpm and load (which approximates to fuel consumption). I actually have a spare input to the FPC that could also read a lateral/longitudinal G sensor, and aim to run the lift pump harder when fuel slosh is occuring.

In order to minimise current consumption and cabin noise, the high pressure fuel system is disabled when the engine is not running (also prevents fuel loss in the case of an accident etc). FRP or IDP (depending on mode) is set by a calibratable table against rpm and load when the engine is running.

To calibrate the fuel pressure control, and target the digital filtering, i built a quick "false plenum" that the injectors and fuel rail plug into, and allow me to run various injector pulsewidths, returning the fuel directly to the tank (so i don't end up with fuel everywhere!!!)




So far, it works nicely !



(note the large pressure dynamic waves present in the 50% duty graph, and how the control ignores these dyamics and manages to "centre" the mean pressure on the target ;-) (in reality, those dynamics are beyond worst case, because i was simultaneously opening all 4 injectors on the rail at once, where in reality they will be operating in firing order at 50% for normal engine running)

(lots left to do, including, a leak detection algorithm, pump current monitoring (and auto shutdown) and develop some code to automaticaly extend the calibrated IDP to a higher pressure if the system senses the injector duty has exceeded the maximum allowed)

Edited by anonymous-user on Sunday 7th August 17:54

stevieturbo

17,271 posts

248 months

Sunday 7th August 2011
quotequote all
Call me dumb, but why go to such lengths with the MAP signal ? When single plenum based MAP signal would work ? or in an ITB case a MAP signal taken from all four runners then calmed, as opposed to electronically filtering the pulses out ?

Is this the flow metered setup that uses no FPR ?

eliot

11,442 posts

255 months

Sunday 7th August 2011
quotequote all
Very impressive, I assume you have a significant background in automotive stuff like this. But i fear this is starting to become complicated for others who are looking for a relatively simple controller.

stevieturbo

17,271 posts

248 months

Sunday 7th August 2011
quotequote all
eliot said:
Very impressive, I assume you have a significant background in automotive stuff like this. But i fear this is starting to become complicated for others who are looking for a relatively simple controller.
Agreed, although I'm sure it can be made simple ?

I'd be more than happy with a setup that references pump output to either MAP or probably better, TPS, or perhaps IDC.
And in the way you describe, the lift pump gets a lead of a few seconds before the secondary pump primes. Or at least comes on at full power straight away, with the main pump powering up at a slower rate or something ?

Having to wire in multiple inputs like cam sensors etc really does invite more problems ( especially with my wiring lol )

Does the unit max out at 14v, or can it increase voltage to say 16 volts for a little extra boost ?

anonymous-user

55 months

Sunday 7th August 2011
quotequote all
stevieturbo said:
Call me dumb, but why go to such lengths with the MAP signal ? When single plenum based MAP signal would work ? or in an ITB case a MAP signal taken from all four runners then calmed, as opposed to electronically filtering the pulses out ?

Is this the flow metered setup that uses no FPR ?
I can't use the plenum MAP signal because as you mention, i have ITB's so the actual plenum is never below atmospheric pressure.

If you try to "mechanically filter" a MAP signal (by for example, joining all 4 intake runner together, then into a small volume to damp the fluctuations, you end up with a massive compromise between damping and response (in technical terms, you seriously degrade your signal to noise ratio (because the bit you are interested in (the intake stroke average pressure) only is 180deg of the cycle. By using high speed sensors, and only looking at them over the pertanent intake stroke portion of the cycle, you get the highest accuracy in your load determination).

I did quite a bit of simulation with Matlab from pressure data logged on my engine to determine the best digital filter in order to capture the maximum data accuracy. My system returns a perfectly stable 30kPa MAP signal at idle rpm. (it also can account for runner to runner differences if your EMS is fast enough to sample the MAP signal synchronously before each injection event.

Luckily, you don't need to bother with all this if you don't have ITB's or are less picky about your fueling and load accuracy under part throttle operation ;-)


The fuel system is indeed returnless, without any mechanical regulator, just a single -6 line to the rail (although i have added a large pressure damper to the rail to help damp the dynamic pressure fluctuations).


The simplest system would just control to a fixed fuel rail pressure, only requiring a simple fuel rail pressure sensor. however, i don't do simple......... ;-)

stevieturbo

17,271 posts

248 months

Sunday 7th August 2011
quotequote all
And on the other hand....I very much do simple lol

andygtt

8,345 posts

265 months

Monday 8th August 2011
quotequote all
I like simple as well smile

on a related subject, you may remember me saying that the 044's on nobles buzz like crazy... others are still having there single units fail and turn very noisy etc... however my dual 044's and lifter pumps (ie 4 pumps rather than the std one pump setup) is proving quiet and reliable... and they are actually closer to you on my setup so should be noisier.

so all the shoulder crying and help I received on here resulted in a very effective package thumbup

JontyR

1,915 posts

168 months

Monday 8th August 2011
quotequote all
andygtt said:
I like simple as well smile

on a related subject, you may remember me saying that the 044's on nobles buzz like crazy... others are still having there single units fail and turn very noisy etc... however my dual 044's and lifter pumps (ie 4 pumps rather than the std one pump setup) is proving quiet and reliable... and they are actually closer to you on my setup so should be noisier.

so all the shoulder crying and help I received on here resulted in a very effective package thumbup
Thats good smile

anonymous-user

55 months

Monday 8th August 2011
quotequote all
I spent a hr or two this afternoon on a little bit of mapping, with encouraging results:

A nice crisp MAP signal:



(turns out the multi-MAP box is very easy to set up, just 1 parameter to tune (the offset crank angle between the CAM sensor signal "edge" and TDC no1 cyl (and in fact, you don't even have to work this out, just idle the engine and swing the cal parameter around slowly until the MAP signal reads the lowest value - job done!))


and a 1st cut cal for the injector delta pressure compensation table in my MoTec ecu:



(note, rail pressure is varied from 2 to 9 bar with only a small change in exhaust lambda (approx 0.08, and i reckon with a bit of finessing i can get that to better than 0.05 lambda ;-)


I can't think of too many other fuel systems that would deal with a 7 bar swing in rail pressure so undramatically!

Looking at the pump data, it actually seems that it would be possible to have a returnless system with no external sensors required at all. The data shows a pretty much perfect correlation between pump current and rail pressure. So putting the FP controller into closed loop current mode would just force it to hold a given pressure whatever the flow. (the problem being if anything in the system changes or wears (like the pumps themselves) it would have no way of telling that had occurred. For most people, i suspect the cost / complexity of a Rail pressure sensor would be worth paying (and the system could always resort to "open loop" if that sensor failed))

Edited by anonymous-user on Monday 8th August 20:36


Edited by anonymous-user on Monday 8th August 20:38

The Excession

11,669 posts

251 months

Monday 8th August 2011
quotequote all
I am loving reading this thread

stevieturbo

17,271 posts

248 months

Tuesday 9th August 2011
quotequote all
Simple version please lol

So if I read correctly. In closed loop mode, it measures the current draw, and from this it will maintain a fixed fuel pressure ( what about boost ? ) all the time ?

What if the engine starts to consume more fuel than the pump can supply ? What happens ?

I'd still be happy with a pump controller that just operates the lift pump at full power. And can vary the power of the 2 044's on demand. Retaining an FPR and a return as most systems will do.
And perhaps with the bonus of an overvoltage to say 16v for an extra boost if needed.

anonymous-user

55 months

Tuesday 9th August 2011
quotequote all
For a positive displacement mechanical pump (which is what most fuel pumps are)

The "torque" the motor applies to the pump is directly related to the fuel pressure (think of a piston in a cylinder, the harder you push down, the higher the pressure under the piston).

The "speed" of the motor relates to the volume of fuel moved from inlet port to outlet port (becuase each rotation pushes a certain volume of fuel through the pump)


For an electric motor, the current (in Amperes) relates to the motor's torque, and the Voltage (in Volts) relates to the speed. Hence, if you closed loop control to a specific current, you end up controling pump pressure (actually, technically the pumps pressure ratio, but we will assume for now that the "upstream" low pressure side of the pump is being fed from a nice large constant pressure resevoir (like a swirl pot!))

Say the engine is using 100cc/min of fuel at 3 bar, requiring say 10amps to do so. If they engine starts to use say 200cc/min, the pressure in the system will fall briefly, and as it does so the pump current will fall. The closed loop control will spot this fall in current, and apply more voltage to try to get back to the level of current it previously had. This extra voltage will cause the pump to spin faster, delivering more fuel but at the original pressure.


Of course, with no external feedback, the system cannot react to things like boost pressure etc. You would just have to run with a fixed fuel rail pressure all the time (which is actualy what most modern MPPI (MultiPointPortInjected) engines do.

With a fixed rail pressure, you have 2 options for mapping:

1) Don't both to correct for injector delta pressure changes, just "absorb" them into your fuel map (as the load axis for you fuel map is probably MAP, this requires no special tricks)

2) Fit a injector delta pressure sensor (like the Ford one ^^^) so your EMS is able to modify fuel pulse width in accordance with injector delta pressure.

stevieturbo

17,271 posts

248 months

Tuesday 9th August 2011
quotequote all
On a n/a or low boost setup then a fixed rail pressure is certainly an option. But on a setup like that, a FPC is hardly that necessary either.

But for something making a little power, using maybe 30-40psi of boost. Fixed rail pressure is not an option.

Still awaiting the simple version lol


eliot

11,442 posts

255 months

Tuesday 9th August 2011
quotequote all
Max_Torque said:
Say the engine is using 100cc/min of fuel at 3 bar, requiring say 10amps to do so. If they engine starts to use say 200cc/min, the pressure in the system will fall briefly, and as it does so the pump current will fall. The closed loop control will spot this fall in current, and apply more voltage to try to get back to the level of current it previously had. This extra voltage will cause the pump to spin faster, delivering more fuel but at the original pressure.
And how long does this take - i.e. how much of a sag in fuel pressure is there?

anonymous-user

55 months

Tuesday 9th August 2011
quotequote all
stevieturbo said:
But for something making a little power, using maybe 30-40psi of boost. Fixed rail pressure is not an option.

Still awaiting the simple version lol
Why is fixed rail pressure not an option??

From my current detailed investigation into fuel pressure control with normal "regulated" systems, i bet if came round and put my high speed pressure transducer and logger onto your fuel rail you would be shocked by the errors and lags in your system ;-) (normally though, you just either "map" around them, or ignore them (afterall, thats why things like transient fuelling corrections are required etc)

The only issue with running a "fixed" rail pressure is at idle (rather than any issue under load) as you end up with very short injector pulse widths to only supply small quantities of fuel.
As long as your fixed pressure is sufficient to flow the max quanity of fuel with the worst case injector delta pressure then you are fine!

Of course, in reality, like all control systems, you are trading "simplicity" for "capability", and finding the happy medium is the trick ;-)

On my car, i want the best, so have designed and calibrated a complicated but accurate fuel delivery and control system, For someone else the minimum practical system would i think be as follows:

either:
1) MAP sensor input to FPC box (can just be piggybacked off the signal from your existing MAP sensor)

plus

2) Fuel rail pressure sensor input to FPC box (additional sensor required)

OR

3) STD additional injector delta pressure sensor (like the FORD one) input to the FPC box.


those allow the system to control to a nominal IjDP (InjectorDeltaPressure)= (FuelRailPressure - MAP)


To be able to change the "setpoint" for IjDP, the system needs to know the engine operating condition. Several options exist for this, but imo, the simplest is just to tap a wire into one injector switched ground (the side driven low by your EMS) from which both engine rpm and "injector duty" can be recovered simply. In fact, all you really need is injector duty, because pretty much you want a large IjDP when using lots of fuel, and small IjDP when using small amounts of fuel.

This would just leave you with 1 main table to calibrate, Target IjDP Vs InjectorDuty.

With a simple fuel pressure damper on the rail, you can then bin off your return line and regulator completely ;-)

Editted to add: I will run "my" system for a while on my car to prove it's robustness and suitability, which if it proves ok, it could be worth me designing a downspec'd "public" suitable system. BTW, if anyone would like to see the system running on my car just ask (i'm midlands based, as you might expect for an automotive engineer ;-)

Edited by anonymous-user on Tuesday 9th August 17:00

anonymous-user

55 months

Tuesday 9th August 2011
quotequote all
eliot said:
Max_Torque said:
Say the engine is using 100cc/min of fuel at 3 bar, requiring say 10amps to do so. If they engine starts to use say 200cc/min, the pressure in the system will fall briefly, and as it does so the pump current will fall. The closed loop control will spot this fall in current, and apply more voltage to try to get back to the level of current it previously had. This extra voltage will cause the pump to spin faster, delivering more fuel but at the original pressure.
And how long does this take - i.e. how much of a sag in fuel pressure is there?
At the moment, my system does it's control loop every 9ms (~100hz). The pressure response of my fuel system seems to approximate to 10hz (in the first order) giving a decade of margin between control and process. With the system controlling rail pressure directly, dynamic errors exist for approximately 100ms during very large state changes, but typical errors of <30kPa exist for <30ms.

if you look at the graph of "50% injector duty" on the second thread post on this page^^^^, you can actually see where i started logging data without "enabling" my system. So right at the start of that graph the target is high(5bar), but the actual pressure zero. The axis along the bottom is in seconds, so you can see the system response when suddenly enabled, bringing up rail pressure from zero to the 5 bar target (pretty much a worst case with pumps stationary and zero presure etc) in approx 0.1sec !

(There actually is capability within the processor i use to move the control loops to over 1kHz, but this just makes calibrating the control a lot harder (as effective system gain goes up with system iteration frequency) and already with a decade of response headroom there is little or no improvement) (in fact, i suspect the mechanical inertia of the fuel pumps is actually the limiting factor, probably why most OEM high pressure pumps are now highspeed/low inertia centrifugal pumps rather than the old style positive displacement roll cell devices we all still use.)

I have not logged a running mechanically controlled fuel system in any detail, but i bet that has errors that are an order larger (at least!) (normally, you just don't know about them...... ;-)



Edited by anonymous-user on Tuesday 9th August 17:07


Edited by anonymous-user on Tuesday 9th August 17:09

stevieturbo

17,271 posts

248 months

Tuesday 9th August 2011
quotequote all
I say fixed rail pressure is not an option, as in some cases with large injectors and high boost etc, it would surely be undesirable to run maybe 80-100psi base pressure all the time, which is a quite realistic pressure to be required in a high boost setup, and indeed one of the beauties about using an 044 in the first place. They can cope and maintain these pressures whilst still flowing fuel.

But a clearly you have a system that can vary pressure on demand, and very quickly too, just with some electronic trickery.

So would this only be a dead end option, as I guess there isnt really any way to implement it in a return style setup ? And would likely be more desirable as a dead end anyway ?

That could actually be a big plus point given some modern cars that run dead end systems that people apply forced induction to.

anonymous-user

55 months

Tuesday 9th August 2011
quotequote all
100psi is a walk in the park for my system (that runs up to 150psi, and thats just limited by the rail pressure sensor. (although std fuel injectors cannot open against much more than 10bar).

Certainly holding a rail at 80psi is easy, the only issue is if you were to sit with the system operational but not running the engine for ages (>30mins) the the pressure pumps do start to get a bit warm as no fuel is flowing through them to cool them.

There is really no advantage in keeping the mechanical pressure regulator, as you would have to set it above the max pressure you want to ever run. Once you have seen how well the electronically managed system works, you'll never want to go back to the mechanical version anyway ;-)

I slowly adding the diagnostic routines into my system for test, things like automatic leak detection, error limit flagging (identifies when the system is unable to maintain a suitable level of control of fuel pressure (sensor failure, lack of fuel, pump failure etc) and to act accordingly. So far i have a caution/warn led mounted in the dash, which buld checks on key-on, then goes out if all is well. Minor faults (like small pressure errors) set the led to slowly flash (and store a suitable code in volatile memory so you can interogate the unit for the cause of the error) Major faults (shorted pump, insufficent pressure, system leak etc) disable the system completely, turn the led on continously, and trigger another output that can be used to remove power from either the injectors or coils to stop the engine if required.

Faults are reset by power cycling the unit ie a key/ignition cycle, but are stored in memory until cleared by the cal tool program.

One thing rallying teaches me is that you never have time to look at the dash in a stage......... ;-)