Bi-Fuel and LPG
Most relevant firmware functions are:
- [config/table switching (VemsTune help)] (also see the referred tutorial)
- runtime switch between 2 independent injection and ignition maps and different configurations
- [anytrim (VemsTune help)]
- to change fuel pulsewidth, sparkadv or other depending on analog input (eg. LPG pressure or alcohol-content sensor)
A dummy's intro to automotive LPG and bi-fuel systems
Questions and comments are welcome, as always.
In the Netherlands, many other European countries and in Australia it's fairly common to fit cars with aftermarket LPG kits. In the Netherlands, there's a fairly good infrastructure, where about one out of every 2 or 3 fuel stations have LPG pumps.
LPG kits usually consist of an LPG fuel system running off an extra tank that can be installed in the trunk, in the spare wheel well or anywhere else you may find an empty spot. LPG, although gaseous at atmospheric pressure, is stored in liquid form. The [tank] is usually a thick walled steel cylinder or donut shape tank, although composite tanks are being developed.
Automotive LPG tanks in most countries have limiters installed that do not allow them to be filled past 80%. Along with controlled let-off by a safety valve, this prevents the tank from bursting in case of extreme heat (sun) or even fire. During normal use, it contents will be part liquid and part vapor at all times, just like in a common disposable cigarette lighter. Pressure in the tank is determined by vapor pressure of the LPG mixture in use and therefore varies with temperature.
The graph below is for propane, but quite close to actual LPG pressures.
Most "dry" LPG systems don't have a pump. The converter is fed by the pressure in the tank and then regulates pressure down to a fixed value much below in-tank pressure. "wet" systems on the other hand have an in-tank pump that pressurizes the liquid fuel much above in-tank pressure. None depend on in-tank pressure for fuel metering.
When installing LPG, the stock petrol fuel system is usually retained and kept fully functional. The driver can switch between the two fuel systems, hence a bi-fuel car.
LPGandBiFuel/Switching contains further details about switching between different fuels while driving.
(GoranJurkovic) My idea is this:
I'm driving on LPG, and when I press hard and LPG injectors reach like 95% of duty cycle, VEMS opens gasoline injectors as needed (staged injectors)... Is this possible in double configs?
On the other hand, when I switch config to gasoline, and I'm driving on gasoline, and when I press hard and gasoline injectors reach 95% of duty cycle, VEMS opens LPG injectors as needed (staged injectors)... If I get big enough injectors for gasoline, this would never happen, but it's to solve the problem of injector left open when switching configs... Is this possible on 1.1.33? Or not all the config is doubled?
LPG fuel systems come in roughly four flavors.
- The classic mechanical venturi type system. Consists of a converter that evaporates the liquid LPG and a venturi type gas/air mixer in the engine's intake. All "dry" LPG systems have a converter. The converter is heated by engine coolant to keep it from freezing up, with all that evaporation going on inside.
- Single point gas injection (either using a single large pulsed injector or a stepper motor controlled valve)
- "dry" port injection using a thick fuel rail @ 15 psi and big "injectors" that inject gaseous LPG. Early systems had problems with injector lubrication, this has been solved.
- "wet" port injection. Has a fuel rail and injectors resembling those used for petrol. The most common "wet" system over here (Vialle LPi) has standardized injectors that will support about 50hp each. The injectors are controlled by a small computer that converts the existing petrol fuel injector signal to the right pulse width for the LPi injectors. LPi runs off an in-tank pump that pressurizes the liquid LPG much more than its "standard" 150psi, to prevent cavitation in lines and injectors (do you have more info on this?). So it is a very high pressure system.
All of these systems, when installed on fuel injected cars, have some electronics in place to "fool" the standard ECU into thinking its injectors are still working (while in fact they aren't and control over fuelling has been taken over by the LPG system).
Depending on emissions regulations, LPG installers had to add more and more electronics over time, making those kits troublesome at times when development wasn't done properly. The latest generation of port injection systems works a bit better because they leave the standard ECU mostly in control of fuelling, basically only connecting different injectors to it.
LPG - origin, smell, octane
Automotive LPG (Liquid Petroleum Gas) is a waste byproduct of oil refineries. It is a mixture of mainly propane and butane, with a slight smell artificially added to make leaks a bit more obvious. Octane ratings are always over 100 and can be up to 120 depending on actual propane/butane ratio.
Beware: some lambda meters display 14.7*lambda and say it is AFR - which is not real AFR except for gasoline
Actual air/fuel mixtures (by mass) are slightly different than on petrol. Lambda 1.00 on LPG (stoich) is 15.5:1 A/F by mass. All O2 sensors still work correctly though and their readings require no adjustment. O2 sensors measure lambda, not actual AFR.
A/F meters often display a calculated AFR instead of actual lambda. When using one of those meters, you could choose to pretend you're running on petrol and simply assume an indicated 14.7:1 as stoich (actual mixture would be 15.5:1, but who cares as long as you know what to aim for). In short: Use Lambda, not AFR. AFR can be confusing.
I've found a [PDF file] that contains (near the bottom) AFR to lambda graphs for various fuels including petrol and LPG.
While gasoline hesitates to mix with air at low temperatures (=> significant cold enrichment is required), LPG mixes very well (cold enrichment value can be set small).
Why LPG? - more why-s
One could use [google] and find several sites listing pros and cons of LPG as an automotive fuel. So I will keep this section short and list only my personal reasons to use it.
- It's cheap. Dirt cheap. Where I live, it's about 1/3rd the price of petrol. Fuel consumption is a bit higher on LPG, but still. I do pay extra road tax as a penalty but it's still worthwhile.
- Emissions. If I keep NOx emissions down, only CO2 and water will come out my tailpipe. (isn't the case similar for gasoline?)
- High octane. Nice to have when playing with turbos.
- Did I mention it's cheap? I can actually floor the accelerator without EVER feeling guilty!
Using GenBoard for LPG + Gasoline control underdevelopment
- Two different fuels. This will not require two different VE maps (only asymetric intake requires dual VE-maps). It requires different injector settings (including injopen) and cold-enrichment settings.
- 8 injector drivers is just enough for a bi-fuel 4-cylinder. For an 8 cyl, 8 primary injector drivers + using the 2 extra FETs for 2 TBI injectors (or more injectors arranged in 2 banks) for the 2nd fuel requires minor firmware change (so the extra FETs can be used for inj).
- Dual ignition maps are nice for a later stage of the project. LPG will run fine on petrol ignition maps, but only a specialized map will make the most of it in both power and economy.
- Implementing switching between the two.
- GenBoard related info on using it for direct LPG + gasoline control
- GenBoard related info on using it as supplementary controller, when used with factory ECU (which is usually dumber, wbo2-less, but at least configured in factory): measuring injector PW of factory ECU, calculations, controlling LPG valve(s) Comment : I don't see why anyone would want to use the GenBoard in this way. It is certainly not my intention.
- needs more links
Physics basics for injector pulsewidth
Looking at normal pump gasoline :
An injector injects a certain volume, proportional to the pulsewidth and the injector capacity. and depending on fuel pressure across it.
For a liquid, density depends little on temperature. The injector flowrate is proportional to the squareroot of the liquid pressure across it - but the pressure differential is usually kept the same with FPR, so the injector flowrate stays the same. Disregarding opening and closing issues here.
Fuel temperature will have some impact, because it changes the density of the liquid, but I this effect is marginal: I don't know any oem that has a fuel temp sensor.
The lpg injector also injects a certain volume, proportional to pulsewidth and injector flow. The nr of molecules however in this volume (~density) is pressure and temperature dependent.
The vaporiser /pressure reducer holds the fuel pressure at 0.8 bar above MAP. It has a vacuum connection, just like a FPR.
All dry LPG injection systems have some kind of fuel pressure transducer and temp sensor. [ for some reason I kinda doubt the latter... will pick up some of this gear to play with soon ]
The universal gas law is: PV=nRT
- P= pressure (kPa)
- V= volume (m3)
- n = the nr of molecules
- R is a constant which is related to molecule size and shape: same for 1 atom (noble-gas) molecules, 2-atom molecules, and shape-dependent for bigger molecules (like LPG)
- T = temperature (in Kelvin scale)
The goal is now to derive an algorithm indicating the relationship between pulsewidth and injected nr of molecules.
The V in the formula can also be expessed as the injector flow multiplied by the pulsewidth.
Q(cc/min) * t ( millisec) = V
If I rearrange this :
n = ( P *Q*t )/R*T or
X being all the constants put together (stuffed to an enrichment value).
This indicates, to keep a lineair relationship between pulsewidth and the injected amount of fuel, the pulsewidth has to go down if pressure rises, and has to go up if temperature rises.
Now how am I going to integrate this into the fuel equation?
If the temperature doubles, the pulsewidth has to double also.
If the pressure doubles, the pulsewidth has to be divided by two.
I think it should be possible to tune the engine for a given set of
variables , say T = coolant tempareture with a warm engine ,
P = MAP at idle + 0.8 .
Then calculate how much % correction is needed, and adjust pulsewidth accordingly.
Basic fueling equation:
PW = reqFuel * MAP * VE(MAP,RPM) * gamma_enrichment
where gamma_enrichment already is a multiple of several enrichments, multiplier due to gas pressure and temp should be stuffed in or a new multiplier created:
enrichment_fueldens(fP, fT) = constant / (fT * fP)
(fT up -> PW down, fP up -> PW down)
where fT and fP are in absolute values (fT in K, fP in bar absolute?) based on some ideal conditions.
fT could be measured by a second IAT sensor stuffed in the vapor fuel rail if vapor injection systems don't all come with such a sensor already, fP either by a second MAP sensor (ugly but precise) or calculated from MAP and the constant pressure-differential (not quite precise but likely close enough)
- Bosch already developed this sensor.
TODO move these PW issues to separate page.
I'me really interested in the bi-fuil workout. Have some experience in lpg modifying cars and hope I can give some insight in the more advanced systems on the market. Many components are useful for the vems project.
First off, Many dry gas injectors are not really linear. so if Pressure changes the output could vary more or less depending on piston stroke and nozzle calibration. These routines should be logged some day by piggybacking a lpg system in action and letting these parameters change.
Modern lpg systems use a combined map and differential pressure sensor in their setup. A temperature sensor is installed in the injector body or vapor line to keep taps on lpg temperature.
The computer is a (as we all could expect) Motorola or atmega. All hardware in the case is for injector simmulating, injector cutting, sensor reading, and a fully adjustable 3d map. System teaches petrol map and keeps ajusting log map till the petrol computer is back to the original map.
Adding Petrol under heavy load or idle is also pretty common. Even Spark advance modification can be done.
My personal interest in vems is the gen2 board and the idea to combine it with one of the newest generation lpg computer. Might even want to try to strip the gen2 even further to make a small controller just for lambda controlled fuel injection on oldtimers. I think the lpg computers are this advanced (and cheap)by now that integrating it in The vems system is not really necessary. Shure its a nice option.
An atmega 128 controlled lpg computer costs less then 120 euro including all the wires, sensors and connectors needed. The evaporator and an injector block is for a 4 cylinder up to 250 HP is about 80 to 140 euro here.
I know its a lazy way but learning how the lpg systems respont to all the changes would seem a smart move. Saves a howl lot of trouble, dyno tests and possibly broken engines.
Specially cylinder by cylinder switching of the fuils is a thing that should be done. Also a double run time of a number of milliseconds to fill the hoses from injector to manifold. Another strange thing is that most dry lpg injectors need is a preheating/priming cycle. they will open the injector for less than a millisecond during evaporator heat up cycle. This is done till the coolant reaches 35 degrees. Apparently it prevents them from sticking.
- You have many mistakes. You can control lpg injectors with vems and it's better to do that way. If you have piggyback, you will have a lot of problems(wrong warmup maps, cranking, acceleration ...). Pigy back sucks for lgp.
Cold start on lpg on dry system at -9 deg C, no problems. With pigyback impossible
Also race with bmw m3(343HP), me on lpg
So, just by low-z drivers for vems i connect like here
Well, To clairyfy things. a piggyback is used to log data about presure and temperature compensation. All safeguards are inportant for street usage.
My fiat v6 did also start on lpg with -10 without isues. Only risk was a frozen evaporator if that is to small by volume. Since a 3 litre thema engine does likes quite a bit of fuil.
You sound like someone who knows a great deal about cars and lpg so you understand that you want to have a gas phase temperature compensation and a low temperature safeguard. Just because a frozen evaporator can be pretty unpredictable.
Injector wear is worse when they are not primed/preheated. The oilofin is sticky and causes early failing by wearing the seals and bump stops. the croma wore a set out in 100.000 km that way. Now i prime and switch at 20 degrees coolant and the same brand and model is holding for 150.000 and still counting without issues.
If And separate lpg controller is so bad. How can my car still run perfect on lpg with only having to adjust the valves once till now. Only issue I ever had was worn injectors.
The main issue here is that the lpg controller i use has perfect temperature compensation and pressure compensation map. An euro 5 car can cold start and run on lpg without ever having a misfire, it wont ever set the mil light on the original ecu.
The system basicly uses the same routings as a vems ecu. Its on the same atmel controller. It has its own map profile, will use petrol injector behaviour to check for and correct wearing lpg injectors.
It will save quite a bit of time if you get to understand how the lpg computer calculates everything.
Not worth getting words about this. Seen lpg systems come a long way in the past 7 years and specially the polish manufacturers are leading in configurabilaty and the ability to understand and correct fuelling errors between cylinders.
If you have a race setup you for sure want to control lpg with vems, specially with nos or anti lag. Then injector response is everything.
I will keep away from this topic since everything is already known about lpg and the pitfalls many people have found.
I have landi renzo injectors, so far 170 000km without problems(turbo engine). With original landi renzo piggyback, they fall around 80 000km.
Well couldnt stay away,
Med (thats what landi is using) injectors can last for ages when mounted correctly. The membrane will wear and tear when the oilofin can build up inside. seen injectors fail in 30.000 km and seen them last for 300.000 km with the landi system. It all depends on how its fitted.
A second note is that med injectors are pretty linear, Just like keihin, hannah and aeb injectors. Matrix could work to. In general piston injectors tend to not respond linear to pressure changes. Thios is due to port opening becomes harder compared to membrane or needle injectors. Hanna and keihin are needle types. The others membrane.
So after some thinking those more expensive injectors are easier to setup then the cheap valtek injectors and their clones. Valtek isn't bad at all but they wouldn't last 200.000 km and a pressure modified map would like linear response.
The lpg pressure sensor has a second really nice option. empty tank switchback, High pressure warning switchback and fuel line break switchback. Would work if the shut-off valves are controlled by a second vems port in true bi fuel setup. (so you can switch while driving.) Its also that I wouldn't like to see al the shut-off valves opened when driving on petrol. Gives some issues with the reducer compensates pressure under high boost but cant loose it after you stop the car. Could lead to lpg leaking in the intake.
I didt quite a bot of lpg modifications and really agree letting vems control lpg is the best option, if the bifuel rom is done properly. Specially concerning the safety. With bifuel there is a risk that a lpg leak occurs while driving on petrol. Closed shut-off valves would prevent strange accidents.
Just don't underestimate the lpg pressure and temperature sensors as a safety feature. I once fooled a temp sensor by clients request. He fitted stronger hoses after his vapour hoses bursted due to a pressure spike. It resulted in a broken membrane and liquid lpg found a way in the vapour system. The results were interesting but did do some damage and costed quite a bit due to the fire truck that investigated the lpg leak.