Showing results for 
Search instead for 
Did you mean: 

Using LABVIEW To Read and generate pressure for fuel injection

Mani's World wrote:

I'll restate the problem as you have outlined to make sure I'm right. The 3 cylinder operate normally with the original injection system. You have separated the 4th cylinder and are using it as a combustion bomb to study fuel injection/spray/combustion characteristics. You want to inject fuel after about every 30 seconds. Here is what you need to explain further.


1. Do you have a separate pump for this 1 cylinder and will the other 3 cylinders operate with the injection pump on the engine with the ECU? If that is the case, then the problem is much simplified.

2. At what point in time do you want the injection to occur after every 30 seconds or so?. If you want to inject before the start of the compression stroke (like GAsoline normally does) or you want to inject during the compression stroke (like a diesel), in either case, you need to the encoder signal to know the crank angle (engine rotational position) as well as the identification of the stroke as I wrote in my earlier post.

3. A PID is a prpoportional-integral-derivative controller. You can google PID and there is tons of information on it.

4. A power drive converts the digital pulse signal (5V TTL) into a 50-200V, upto 20Amps signal to open the injector. Any DAQ card cannot handle this much current so you need a special power drive.

5. If you have to control the pump also as you stated in your first post, then you need a fast loop rate which is difficult to get with windows based LabVIEW. I would prefer atleast a RT system.

6. I would like to see the specs for the injection pump, common rail pressure sensor; the injector and the encoder as those are what you require to develop the system.


Hope this makes things more clear!!




PS: The best way to express your appreciation is to click on the 'Kudos'.

Message Edited by Mani's World on 01-10-2009 11:55 AM

 how can we control the injection using the power drive? a standard enigine injects 30degees b4 tdc lets jus say. so for the other three cylinders this s fixed. but for our 1 cylindeer we want complete freedom on when to inject. will it be possible to do this using a power drive. could you please explain how n what a power drive is. etc pls


0 Kudos
Message 11 of 42

I'm not sure if you completely understand what I wrote earlier but I'll try to explain. You'll have to do the following


1.  Get an extra injector and connect the existing connector from the ECU to the injector on your separate cylinder to this extra injector. This is necessary to fool the ECU so that it still thinks that all the four cylinders are operating. otherwise the ECU will either go into a limp mode or shut off the engine which you don't want. You only connect the electrical connector and no fuel connections to this 'dummy' extra injector. You can hang this extra injector anywhere close to the engine. (Remember this injector will come quite hotso don't touch with bare hands).

2.  To get complete freedom to inject fuel at anytime during the engine cycle, you have to take over the control of the injector opening/closing. To do that you will need to do the following:

     a.  You should have the  encoder Index A & Index Z signals as well as some reference (cam signal/ cyl pr signal) to know which stroke is currently occuring.

     b.  Based on this information, you have to make a program which will use the Index Z and cam/pressure signal to identify the stroke for the single cylinder. Lets say you want to inject 90° before TDC during the compression stroke, then using the index A, you'll have to  to decide when you are at 90° before TDC and then you have to generate a digital TTL pulse. The rise of the TTL signal will correspond to the start of injection crank angle (90° in this case) and the length of the injector opening (called the injection pulsewidth in micro seconds) will decide the duration of the high time for the TTL signal.

     c. This TTL signal is just 5V usually and a few milli/micro amperes. The injector requires a high voltage (upto 200V) and high current (up to 25 amps) to open it. Therefore, you have to in plain lanuage generate a high voltage/high current signal based on the TTL signal. The power drive does this amplification for you. (The orignial ECU/engine has its own power amplifiers but you cannot use them since they are integrated into electrical modules).

     d. The choice of the power drive is also dependent on whether the injector is solenoid actuated type or piezo-actuated. The technology used in the power drives is completely different as well as the cost also varies. So you need to know if your injector is a solenod (coil)- or a piezo-type. A french company EFS ( makes excellent programmable power drives. You can google to find a lot of other manufacturers.

     e. The Index Z is used to count the number of revolutions as well and you can decide to inject after a 100 or whatever revolutions ou want. You can use the Index Z to even estimate the time for each revolution and inject once after every 20 or 30 or seconds.


I hope, this will help you to understand the problem at hand and the solution as well.



Message 12 of 42

hi thanks for the comments. firstly, The engine we are using does NOT have an ECU.  While the common-rail that we have for the 1 cylinder came off an engine that did originslly have an ecu.


secondly, the info about the power drive, im researching into that to see what type it is.


However, as im very very new to labview the tutorials that ive done are very basic ( Learn labview in 3hours) so ive got not the faintest clue how to go about doin the program. any advice? which books or tutorials that will of use to me??




0 Kudos
Message 13 of 42
hi i done some more research and came across the control deesign and simulation toolkit. is that what i will need for my project?
0 Kudos
Message 14 of 42

Hi. The control design and simulation toolkit is not essential for the task at hand. The pump control can be adequately performed using a PID controller. The fuel injection control is more of sorting out the exact logic since both the geometric and the time domains have to be tracked, the start of injection being decided based on the geometry (crank angle) and the time for which the injector remains opens is usually in micro seconds (time domain).


As far as learning LabVIEW is concerned, the basic tutorial and the examples that come with labview, I consider them sufficient to start with. If you have the logic for your program ready, its not difficult to translate into a labview code. But thats just my opinion!



Message 15 of 42

 If #4 is just a bomb, and you don't want to jack up the system.... leave everything on the system alone except for the injector #4. Use the Siemens ECU that you already have, from the other engine.


Just add a timing circuit at the injector that counts the power ONs form the ECU (or other circuits, what ever).  have it setup to activate at say the 99th event (or allow the signal to advance to the injector at the 100th event.)   This will keep the engine running smoothly, and kill all the safety problems you are worried about.   I would go and see if you have a simple PLC in stock somewhere and use it. Have the signal come into the input and have it just count to what ever level you want, and them allow a singal to pass to the output (to the injector), and reset the count to zero.  The programming would be in ladder logic and not labview.  Even the really old PLCs are fast enough to do this. 


Your timing would be based on the RPM, and you would have to track that.  But you can modify the timing by just changing the RPM and not editing the programming.


I would just use labview to do the actual mesurements, and really the basic version of labview can do that.


Message Edited by Zinnium on 01-24-2009 03:39 PM
0 Kudos
Message 16 of 42
thePID controller. can i use the PID toolkit  opn labview?
0 Kudos
Message 17 of 42



could you please contact me by email? it is



0 Kudos
Message 18 of 42
MAni if you could do the program for me please let me know. im willing to pay
Message Edited by jamran on 01-29-2009 06:09 AM
0 Kudos
Message 19 of 42

Hi Jamran


I can provide guidance as much as I possibly can rt now. I'm currently wirting my PhD dissertation and am really busy. After May 09, I can help you with the code if you can wait till that time.


Cheers 🙂

Message 20 of 42