You are on page 1of 67

FPGA Controlled Pneumatic Variable Valve

Actuation

Alexandar Milosavljevic
Sasa Trajkovic

April 2005
Abstract

This thesis project is about pneumatic variable valve control in a combustion engine. It
includes development of a control program using LabVIEW combined with a FPGA
(Field Programmable Gate Array) device, which are National Instrument products. A test
rig has been designed to evaluate the program. The purpose of the program is to make it
possible for the user to choose valve lift, duration and valve opening time. It should be
possible to have a lift interval between 2 and 12 mm by steps of 0.1 mm and an engine
speed interval between 300 and 2500 rpm. The program should also offers a closed loop
system.
Test runs have shown that the program works satisfactorily. The only remark is that the I
controller works somewhat too slow and should in the future be replaced with a PID
controller.
The valves are actuated by actuators designed and manufactured by Cargine Engineering
AB. After many hours of test runs the system has proven to be stable in most cases. The
system was unstable at valve lifts below 4 mm and it tended to be unstable at engine
speeds exceeding 1800 rpm. However these instabilities have been eliminated through
adjustments in the actuators done by the manufacturer. Now it is possible to actuate the
valves down to 2.6 mm and the entire engine speed interval can be achieved at any
possible duration.

i
Acknowledgements
We would like to express our gratitude to all the people that have helped us during this
Master thesis. Our supervisor, assistant professor Per Tunestål, who always has offered
help and given valuable advices when needed.

Urban Carlson, CEO, and Anders Höglund, combustion engine expert at Cargine
Engineering AB. They have put a lot of time in supporting us and given guidance
throughout this project.

The technicians, Tom Hademark, Tommy Petersen, Kjell Jonholm, Bertil Andersson and
Jan-Erik Everitt for their happy mood and good will to help.

Everybody at the Division of Combustion Engines for their support and helpfulness.

ii
Contents

1 INTRODUCTION ..................................................................................................................................... 1
1.1 OBJECTIVES .......................................................................................................................................... 1
1.2 LIMITATIONS ........................................................................................................................................ 1
1.3 METHODOLOGY .................................................................................................................................... 1
1.4 CARGINE ENGINEERING ........................................................................................................................ 2
2 INTRODUCTION TO THE INTERNAL COMBUSTION ENGINE .................................................. 3
2.1 THE FOUR STROKE ENGINE .................................................................................................................... 3
3 CONVENTIONAL VALVE CONTROL ................................................................................................ 5
4 VARIABLE VALVE CONTROL ............................................................................................................ 7
4.1 CAMSHAFT-BASED MECHANISMS .......................................................................................................... 7
4.2 HYDRAULIC .......................................................................................................................................... 8
4.3 PNEUMATIC ........................................................................................................................................ 10
4.4 ADVANTAGES WITH VARIABLE VALVE CONTROL ................................................................................ 12
5 EXPERIMENTAL SETUP ..................................................................................................................... 14
6 THE PROGRAM FOR VARIABLE VALVE CONTROL ................................................................. 18
6.1 INTRODUCTION ................................................................................................................................... 18
6.1.1 National Instruments .................................................................................................................. 18
6.1.2 FPGA – Field Programmable Gate Array ................................................................................. 18
6.1.3 LabVIEW for Windows............................................................................................................... 18
6.1.4 Basic concepts of LabVIEW ....................................................................................................... 19
6.2 THE PROGRAM .................................................................................................................................... 20
6.2.1 Background ................................................................................................................................ 20
6.2.2 FPGA module............................................................................................................................. 20
6.2.3 LabVIEW for Windows module .................................................................................................. 25
7 ACQUIRING GUIDING VALUES FOR CONTROL OF THE VALVES ........................................ 27
8 EVALUATION OF THE PROGRAM .................................................................................................. 30
9 ENCOUNTERED PROBLEMS ............................................................................................................. 36
9.1 THEORETICAL PROBLEMS ................................................................................................................... 36
9.2 PRACTICAL PROBLEMS ........................................................................................................................ 38
10 LIMITATIONS OF THE PROGRAM ................................................................................................ 39
11 FUTURE WORK................................................................................................................................... 40
12 SOURCES OF ERROR ........................................................................................................................ 42
13 CONCLUSIONS .................................................................................................................................... 43
14 REFERENCES ...................................................................................................................................... 44
APPENDIX 1 – USER MANUAL ............................................................................................................. 45
APPENDIX 2 – HOST VI .......................................................................................................................... 46
APPENDIX 3 – FPGA VI .......................................................................................................................... 51
APPENDIX 4 – REFLECTIVE OBJECT SENSOR ............................................................................... 54
APPENDIX 5 – SOLENOID ..................................................................................................................... 56

iii
APPENDIX 6 – WIRING SCHEME ........................................................................................................ 57
APPENDIX 7 – MATLAB CODE FOR INLET VALVE 1 .................................................................... 58
APPENDIX 8 – VALVE STEM CAP ....................................................................................................... 59
APPENDIX 9 – PLATE DIMENSIONS................................................................................................... 60
APPENDIX 10 – EXCEL DATA .............................................................................................................. 61
APPENDIX 11 – ABBREVIATIONS ....................................................................................................... 62

iv
1 Introduction

Four-stroke internal combustion engines, the engine type used for cars and trucks
requires valves for controlling the gas exchange process. Intake valves control the inlet of
fresh air and exhaust valves control the outlet of burned gas. For intake and exhaust valve
operation most internal combustion engines use mechanically driven camshafts. Valve
lift, timing and duration have generally fixed values for such conventional valvetrains.
These fixed values are chosen in such way that they give the best performance in the
most used range of engine speed. They depend on what purpose the engine is made for
and represent a compromise between stabile idle running and high engine speed. The
ideal solution is to fully control when and how the valves should open and close. With
such degree of freedom one would be able to optimize the gas exchange for all operating
conditions.

1.1 Objectives

The objective with this Master thesis is to offer variable valve control through the use of
pressurized air. This includes development of a program for valve actuation and making
it work with actuators supplied from Cargine Engineering AB. The pneumatic actuators
will replace the camshaft.
The program, that has to be developed, should have an interface so that the user can
choose valve lift, start of the valve opening and the duration during which the valve is
open. The goal is to be able to actuate the valves from 2 mm and up to 12 mm with steps
by 0.1 mm. Engine speed should be varied between 300 and 2500 rpm.

1.2 Limitations

The purpose with this project is to develop a program for variable valve actuation in a
combustion engine and to design a test rig to evaluate the program. The project includes
neither installation nor testing the system on a real engine.

1.3 Methodology

The graphical programming language LabVIEW combined with a FPGA device is used
to build a control program. These are both National Instruments products, and will be
described later on.
A part of the test rig is designed in ProEngineer, a 3D-CAD program.

1
Some of the calculations are executed trough Matlab.

1.4 Cargine Engineering

Cargine Engineering AB is a Swedish company devoted to development and marketing


of combustion engine technology. The Pneumatic Valve Actuation system is the core
technology of this company and that is the system that has been used in this project. They
have given guidance through many problems that have occurred during this thesis
project.

2
2 Introduction to the internal combustion engine

The basic parts of a combustion engine, are shown in Figure 1. The engine operates with
a piston which slides back and forth in a cylinder. The piston is connected to a rotating
crankshaft through a connecting rod. When the crankshaft has rotated a complete
revolution, the piston has moved back and forth between the two end positions. The
position, when the piston is located at the bottom of the cylinder, is called BDC (Bottom
Dead Center). The opposite position, when the piston is located at the top of the cylinder,
is called TDC (Top Dead Center). A piston movement from TDC to BDC or the opposite
is called a stroke. An engine that uses one revolution on the crankshaft to complete a
working cycle is a two stroke engine while an engine that needs two revolutions is a four
stroke engine. The later one, which requires valves for its operation, is used in this thesis
and will therefore be described beneath.

2.1 The four stroke engine

A valve between the intake system and the cylinder controls the flow of fresh gas into the
engine and a similar valve controls the flow from the cylinder to the exhaust system. In
Figure 1 below one has to look a little closer to see the valve movement.

Figure 1. The four strokes of a Diesel engine: I. Intake, II. Compression, III.
Expansion, IV. Exhaust [1].

3
Diesel cycle according to Figure 1:

I. Intake stroke. The piston moves away from TDC towards BDC while
the intake valve is open. Fresh air is sucked into the cylinder.

II. Compression stroke. At BDC the intake valve closes and the piston is now moving
towards TDC. While the volume decreases and the mass is
constant, the pressure and the temperature must increase. At
the end of the compression stroke fuel is injected and because
of the high pressure and temperature the mix of fuel and air
will self ignite. At this point the pressure will increase
considerably.

III. Expansion stroke. Because of the increased pressure, the piston is pushed down
and work is performed.

IV. Exhaust stroke. At BDC the exhaust valve opens and the exhaust gases can
now be pushed out of the cylinder by the moving piston.

4
3 Conventional valve control

All combustion engines today use the same basic design solution to control the valves.
There is a poppet valve that is connected to a spring, which pushes the valve to the seat.

Figure 2. Schematic picture of conventional valve control [8].

When the valve is supposed to open, it is pushed down by a lobe on a rotating camshaft
and at the same time the valve spring is pressed together. On the way back the spring
pushes the valve against the cam lobe and the valve follows its profile all the way to its
original position. The contact between the valve and the lobe remains throughout the
whole valve movement, see Figure 2.
The placement of camshafts, valves and possible transfer mechanisms between camshaft
and valve can be done in several ways. Figure 3 shows the valvetrain mechanism for a
Scania 12 liter engine which belong to the system used in this project.

Figure 3. Valvetrain mechanism for a Scania 12 liter engine [9].

A lifter transmits the movement of the cam to the pushrod which actuates the rocker arm,
which opens the valve.

5
The overhead camshafts have today replaced the side camshafts on all European and
Japanese passenger car engines while the majority of the larger heavy truck diesel
engines as well as American passenger car engines still have side camshafts and
pushrods.
The function of the camshaft is to open valves at a fixed time and to hold them open for a
fixed duration.
On the Scania cylinder head used in this project there are two intake valves and two
exhaust valves, see Figure 3. The disadvantage with this kind of system is that once the
camshaft has been configured and produced, its characteristics can never be changed. To
solve this problem various solutions have been developed for variable valve control and
some of them will be explained Chapter 4.

6
4 Variable valve control

4.1 Camshaft-based mechanisms

There are many mechanical solutions to achieve variable valve control but one should not
forget that they are not fully variable. Some of the different solutions will be described
below.

Camshaft phase shifting


The first manufacturer to introduce variable valve timing into production was Alfa-
Romeo. Already the model year 1984 used a phasing of the intake cam relative to the
crankshaft.
The phasing mechanism turns the intake cam shaft so that the intake valve opens and
closes later at rotational speeds under 1650 rpm. This system gives more stable idle
running because the residual gas 1 fraction decreases [2].

Figure 4. Camshaft phasing mechanism for Alfa-Romeo [2].

Changing the cam profile


VTEC (Variable valve Timing and lift Electronic Control) is a system that is used in
some Honda engines and allows the engine to have various cam profiles. As the engine
moves into different rpm ranges, the engine controller can activate different lobes on the
camshaft and change the cam timing. In this way, the engine gets the best features of low-
speed and high-speed camshafts in the same engine [2].

1
Residual gas is already burned gas from previous engine cycles that is left
in the cylinder.

7
Figure 5. Components from Hondas’ VTEC [2].

Figure 5 shows the concept of how this system works. At low rotational speeds the
system uses two cam profiles with low lift and short duration. At higher rotational speeds
the previously used cam profiles are locked together with a third cam profile. This profile
gives a higher lift and longer duration.

Combined cam phasing and profile changing


Porsche has shown a system called VarioCam plus which combines the best features of
cam phasing and profile changing. Three cam profiles are used for each valve, one low
lifting and two high lifting. The change between these occurs with the help of a
lockpiston as on the VTEC.

Figure 6. Porches’ VarioCam plus system [2]

4.2 Hydraulic

Schechter et al. [4] describes an Electrohydraulic Camless Valvetrain (ECV) for variable
control of engine valve timing, lift and velocity. The system doesn’t use cams or springs,
instead the valves are both opened and closed by hydraulic force. Throughout the valve
acceleration, the potential energy of the compressed fluid is transformed into kinetic
energy of the valve. During deceleration the energy of the valve motion is returned to the
fluid.

8
Figure 7. Hydraulic pendulum [4].

Figure 7 illustrates the concept of ECV.


The procedure of the system will be described below.

Step 1 – Opening acceleration


The high-pressure solenoid is opened and the high-pressure fluid is
allowed to enter the volume above the valve. The pressure above and
under the valve piston is equal but because the area on the upside of the
valve piston is larger, the net hydraulic force is directed downward and
therefore the valve opens.

Step 2 – Opening deceleration


The high pressure solenoid closes and although the pressure above the
valve piston drops the valve keeps on going downwards due to its
momentum. As the valve moves towards its end position the low
pressure check valve opens and low pressure fluid enters the volume in
such a way that the valve decelerates until it stops at the desired lift.

Step 3 – Valve fully open


Both solenoids and check valves are now closed and thereby the valve is
prevented from returning.

Step 4 – Closing acceleration


Low pressure solenoid is active and the valve can now return to its
original position by pushing the fluid back to the low pressure source.

Step 5 – Closing deceleration


The high pressure check valve opens thus slows down the valve.

Step 6 – Valve seating


Before the valve returns completely the low pressure solenoid opens
while the high pressure check valve closes. This makes the valve come
to its fully closed position.

9
4.3 Pneumatic

The system developed and delivered by Cargine Engineering uses pressurized air to
control the valves. It consists of an actuator, two solenoids 2 , a piston and logical channels
inside the housing. The actuator itself has to be seen as a “black box” due to company
secrecy, but the concept will be described for better understanding.

Figure 8. Sketch of the actuator [5].

The right circle in Figure 8 is an intake hole. Here the pressurized air should be
connected. The left circle is the hole for outgoing air, which is released into the
surroundings with atmospheric pressure. When Solenoid 1 is activated pressurized air can
enter the actuator, Solenoid 2 stops the filling. Each actuator requires one or two
electrical signals, depending on if one or two solenoids are used. This means that one can
run the actuator with only Solenoid 1 activated and then the lift is only dependent on the
pressure supplied. By the use of both solenoids instead of one, it is possible to vary the
lift at a given pressure.
The actuator is equipped with a hydraulic brake, whose function is to slow down the
valve before the seating. At the top of the valve, there is a so called valve stem cap, VSC.
Its function is to make it possible to adjust the spacing between the actuator piston and
the actuator it self. The adjustment is made with shims, which are simply very thin plates
with various thicknesses. These are put between the top of the valve and the valve stem
cap as shown in Figure 9. The dimension of the VSC can be seen in Appendix 8.

2
The solenoids are Bicron SP1913P2410 with characteristics according to Appendix 5

10
Figure 9. A close up of the actuator [5].

If the clearance is too large, the hydraulic brake will not be able to slow down the valve
enough, which leads to loud noise as the valve hits the seat. When the clearance is too
small the actuator piston will not move at all. The reason for this is that the pressurized
air then can’t fill the spacing as it should and the force will then be insufficient.

Figure 10. Schematic picture of solenoid voltage pulses and engine valve lift
[5].

Figure 10 shows a schematic picture of how the activation and duration of the solenoids
affect the lift. The procedure of the system will be described below.

Step 1 – Activation of Solenoid 1 (S1A) will open the inlet valve to the actuator 3
and thereby determine the starting point of the engine valve opening.
The length of the activation time (S1D) determines the valve duration.

Step 2 – Activation of Solenoid 2 (S2A) will close the inlet valve to the actuator.
Hence the time difference between the two signals (S2A-S1A) will
determine the engine valve lift height. S2D will affect neither the lift nor
duration. However if S2D is chosen to end before S1D, this will result in
another filling, which then leads to an incomplete closure of the valve.
To avoid this, it is recommended to choose S2D to be as long as S1D.

3
There exists an inlet valve inside the actuator. This one should not be mistaken for the engine inlet valve.

11
Step 3 – The hydraulic brake will begin to slow down the valve from about 3.0 to
0.0 mm from end position on valve closing. In the interval 1.0 to 0.0 mm
there is a ramp function, which means that the seating velocity is
constant in that interval.

4.4 Advantages with variable valve control

There are many advantages with variable valve control and some of them will be
described below. Even though some of the advantages are only related to the spark
ignition engine they are chosen to be described because of their importance. Most of the
information written in this section comes from [4].

Reduced throttling loss


To control the load in a spark ignition engine, intake air is throttled to get the load
demanded. This introduces pumping losses which affect the cycle efficiency. With
variable valve control there is no need for throttling. The volume of air in the cylinder is
controlled either by early or late intake valve closing and thereby the engine throttle
would remain open, regardless of load.

Faster burn rate


A fast burn rate is required to complete most of the combustion in the early stages of the
expansion stroke, which is achieved with high turbulence. Delaying the inlet valve past
TDC, until the piston develops considerable downstroke speed, increases the inlet air
velocity which in turn contributes to faster burn rate. Another way to increase the inlet air
velocity is to reduce the inlet valve lift at low engine speeds. This leads to improved idle
stability.

Increased torque
The traditional torque curve has a maximum value at a specific engine speed. This value
is, as mentioned before, chosen as a compromise between stable idle and high engine
speed. With VVC the torque curve is flattened out due to better volumetric efficiency.
This means that instead of one distinct maximum value, the engine will have a wide
range of engine speeds with high torque.

Internal EGR (Exhaust Gas Recirculation)


Recirculation of the exhaust gas lowers the combustion temperature and thereby reduces
the amount of nitrogen oxides produced during combustion. Early exhaust valve closure
contributes to a larger amount of residual gas in the cylinder. Another way to increase the
amount of residual gas in the cylinder is to close the exhaust valve late. Some exhaust gas
will be sucked back into the cylinder by the downward motion of the piston.

12
Valve deactivation
A camless engine control system offers a possibility to deactivate one or more cylinders
when they are not needed. The remaining cylinders will then work at a higher load, which
will reduce the specific fuel consumption. The deactivation is accomplished by turning
off the valves.

Variable air motion pattern


In an engine with two inlet valves, there is a possibility to deactivate one of the valves.
With only one valve operating the inlet air will get a swirling motion. Two valves will
create a tumble-like motion. Both flow patterns increases the turbulence.

Reduced engine height and weight


With no camshaft present, every mechanical component that goes with it is unnecessary.
As a result, the height and weight of the engine will be lower.

13
5 Experimental setup

This chapter will describe all the main parts of the system built at the Lund Institute of
Technology engine lab. The majority of the system components can be seen in Figure 11.

6
2

Figure 11. Picture of the main part of the system in the laboratory.

1. Scania original cylinder head


The cylinder head used is originally from a Scania 12-litre engine.

2. Plate
To be able to attach the actuators to the cylinder head a steel plate was designed
and manufactured. The plate was designed in ProEngineer with the help of an
engineering drawing of the Scania cylinder head. The plate is shown in Figure 12.

14
Figure 12. A picture of the plate made in ProEngineer.

The real dimensions can be found in Appendix 9.

3. Actuator
The actuators have been described earlier, see Chapter 4.3
When the actuators are to be screwed on the plate, it is recommended to use a
torque wrench with a torque up to about 6 Nm [5]. More than 6 Nm can cause the
actuator housing to bend a couple of μm, which is enough to change the
characteristic of the actuator. It might even happen that the valve won’t open at
all. Figure 13 shows the actuators mounted on the plate.

Figure 13. A picture of the actuators.

4. Interface for actuators and sensors


This device is used for connecting the solenoids and the positioning sensor to the
voltage supply, pass on the digital signals from the connector block and to retrieve
signals from the positioning sensor.

5. Positioning sensor
The sensor is a reflective object sensor and measures the lift. It is placed inside
the actuators, pointing towards the actuator piston. It consists of an infrared
emitting diode. The actuator piston reflects the emitted light and the lift is given
by its intensity. The sensor needs 5V to operate, which is supplied from the
connector block. More details about the sensor are found in Appendix 4.

15
6. Connector block
This is a National Instrument device and it is used for passing on digital and
analog signals to/from the computer. The connector block is connected directly to
the FPGA device.

7. Voltage supply
Two 12V generators are connected in series to give a total voltage of 24V, which
is needed to actuate the solenoids.

8. Hose system
The hose system is equipped with two pressure regulators and a lubricator.
The regulators control the pressurized air supply to the actuators. The reason for
having two regulators is that the inlet and exhaust valves will work against
different pressures in a real engine. To use one regulator for each valve is possible
but at this point it is not necessary. The lubricator is very important, since it is
lubricating the actuator piston and thus preventing it to jam.

Figure 14. Lubricator and pressure regulators

To avoid pressure fluctuations, the system is equipped with two expansionary


vessels. The hydraulic brake of each actuator is equipped with a special hose. It is
a little softer and can therefore expand, which is necessary because the oil is
virtually incompressible. The flexible hose will damp thrusts which occur when
the hydraulic brake is active. The oil pipe is connected to the same pressure as the
inlet hole to the actuator.

9. Pulse generator
This device simulates the pulses generated in a real engine. It generates 1800
pulses and 1 TDC pulse during one revolution. The engine speed is directly
related to the frequency of the pulses, which is adjusted with this device. The
engine speed can be set from approximately 800 to 3800 rpm.

Spring
One of the components that are not visible in Figure 11 is the spring that makes
the valve return to its starting position. It is very important to choose a suitable

16
spring 4 . If a very stiff spring is used, then the air pressure must be increased. This
will not increase the stability of the system but unnecessary losses in the form of
higher pressure will occur. On the other hand, if the spring is too soft, then the
velocity of the returning valve will be to slow, and thus the lift curve will not be
symmetric.
If the spring is chosen correctly the stability will increase and the air pressure can
be kept at approximately 2-3 bar gauge pressure.

4
The spring used is of type SS231-06, art. nr. 6751. For further information check www.lesjoforsab.com.

17
6 The program for variable valve control

6.1 Introduction

6.1.1 National Instruments


National Instruments is a worldwide technology company, which provides customers
with software and hardware products for virtual instrumentation. Their goal is to make it
possible for their customers to use a standard PC for testing and measuring applications
instead of expensive and inflexible devices [10].

6.1.2 FPGA – Field Programmable Gate Array


A FPGA is a chip that consists of many unconfigured logic gates. It is possible to
configure and reconfigure the FPGA for each application, unlike other chips with fixed
functionality. This is a big advantage, since buying a new chip every time the application
changes may be very costly.
The FPGA offers benefits such as precise timing, rapid decision making with loop rates
up to 40 MHz and simultaneous execution of parallel tasks. FPGAs appear for example in
devices such as consumer electronics, automobiles, aircrafts and copy machines [6]. In
this project a NI PCI-7831R device has been used. This device has 8 analog inputs, 8
analog outputs and 96 digital I/O. [7]

Figure 15. A schematic drawing of a NI PCI-7831R device [6].

6.1.3 LabVIEW for Windows


LabVIEW is an entirely graphical program language. It looks a bit like an electronic
schematic diagram. Instead of conventional programming, the user programs the
algorithms with pre-programmed blocks. The blocks can represent anything from simple
subtraction and multiplication operations but also more complex functions such as
various matrix operations.

18
Any complete functional program made in LabVIEW is called a virtual instrument and is
almost always referred to as a VI. LabVIEW has many built-in functions, such as while-
loops, case structures etc, which help the programmer to concentrate on the design of the
program rather than wasting time on writing sometimes very complicated code.
LabVIEW is, unlike many other similar programs, an open environment. It offers the user
to combine LabVIEW with other popular programming languages such as C, Matlab,
Visual Basic, and Microsoft Excel etc.

6.1.4 Basic concepts of LabVIEW


A LabVIEW VI consists of two “faces”. These are the front panel and the block diagram.
The front panel is the face that the user of the system works with when executing his
program. It contains controls and indicators as seen in Figure 16. Here the user can
change input data, read output data and monitor graphs. The front panel looks much like a
real device with knobs, buttons and displays.

Figure 16. Example of different kinds of controls and indicators on the front
panel.

The block diagram is almost the backside of the front panel and can be compared with for
example the inside of an oscilloscope. It shows how all the controls and indicators fit
together and all the programming is done here.

Figure 17. An example of a simple program, illustrating its front panel and
block diagram.

19
6.2 The program

6.2.1 Background
The program consists of two modules, one that will be compiled to the FPGA and one
that will control the FPGA program and is called the Host VI. The reason for having two
programs is that the FPGA has limited memory and therefore some functions are not
available in the FPGA environment. For example Matlab and floating point numbers
can’t be used because they are very memory demanding. The FPGA should only be used
for the parts that require fast operations and the rest in the Windows environment.
Figure 18 shows the typical development flow for an application using FPGA. First step
is to make a FPGA VI. Compiling the VI can be very time-consuming and therefore a
possibility to emulate the VI exists. This means that the VI will run on the host PC
processor instead. In the emulated mode the operations will not be as fast as when
downloaded to the FPGA, but the user will be assured that the program is working
properly. When the user is satisfied and has a working program, the next step will be to
compile the FPGA VI.

Figure 18. Application development flow [6].

The following step will be to construct a Host VI. This is where the rest of the program is
built up and from here the user will control the FPGA VI.
In the following sections the FPGA VI and the Host VI will be described part by part.
These two VIs are shown in Appendix 2 and 3.

6.2.2 FPGA module


The programs for each valve are quite similar with only minor differences and therefore
the focus will be on describing the program for one inlet valve.

20
Solenoid control

5 6

2
1

3
7

Figure 19. Controlling the solenoids.

1. This part of the program begins with a so called sequence. It looks like the
frames of an old-fashioned film. The sequence function is used when the user
wants to be sure that the algorithm runs in the right order.
The first sequence consists of a TDC detector. When TDC is detected, this
sequence is interrupted and the next sequence starts.

2. This control makes it possible to turn off and on the valve during operation.

3. An engine is assumed to be equipped with a crank pulse generator that


provides 3600 pulses per cycle. To be able to open the valve at a desired crank
angle the program needs a counter to count the pulses. LabVIEW has a
function that makes the program wait until a rising edge of a digital signal is
detected.

4. Every rising edge will be added to a counter. The sequence ends when the
counter reaches 3595 pulses 5 .

5. When the user sets the value for desired opening angle of the valve, the value
is converted from CAD to a number of pulses. When the counter reaches the
same value as the one that the user has set, the program will continue to
Section 6.

6. Each solenoid is connected to a digital output. The first thing that will happen
in Section 6 is that Solenoid 1 will be activated for a certain time. As
mentioned before, this time will determine the duration of the valve actuation.
While Solenoid 1 is activated, a wait function will delay the activation of

5
The reason for using 3595 instead of 3600 pulses is to have a safety margin of 1 CAD which equals 5
pulses. This will avoid missing the TDC due to any lag of the program.

21
7. While Section 6 is executing, the counter will stop counting. This means that
when Section 6 ends and the counter continues counting the pulses, it will not
take count of all the pulses that actually have been generated during this
period of time. To avoid miscalculation of pulses, an extra algorithm has been
made. It calculates the duration of Section 6, and with the help of the actual
engine speed it converts this into pulses and in turn adds them to the counter.

22
6.2.3 Gathering and processing of data from the positioning sensor
The positioning sensor gives a graph that is somewhat like Figure 20. It shows the valve
lift in binary code, which can be transformed to voltage with the following formula

BinaryCode
Voltage = × 10.0 V (1)
32768

Subtracting min from max gives the lift in binary code which is then converted to
voltage. How the voltage and the lift are related will be discussed further in Chapter 7.

Figure 20. A schematic picture of an input signal from a sensor.

1 2 3

I
5
4

6
7

II

Figure 21. Gathering and processing the data from sensor. I) Data gathering
for the lift controller. II) Data gathering for the duration controller.

23
The function of Part I and II, in Figure 21, is to obtain the maximum/minimum value and
the duration from the sensor. These values will be sent to the Host VI for further
processing and thus enable closed loop operation

1. The task for this sequence is to find point B in Figure 20. This is done by
comparing the input signal to a predefined value 6 . Because points A and B have
the same value, it is necessary to add a function that makes sure that the input
signal is heading towards point B.

2. In the following sequence, the maximum value is targeted as the signal goes from
B to A. This sequence is interrupted when the input signal reaches point A.

3. Because the FPGA operates much faster than the pulse generator, there is a
possibility that, when Sequence 1 starts over, the signal is still at point A. This can
lead to complications. The easiest way to avoid this is to add a delay.

4. This sequence is similar to sequence 1. Now point A is to be found instead of


point B.

5. The minimum value is now targeted as the signal goes from A to B and the
sequence is interrupted when the input signal reaches point B.

6. The reason for having Part II is to get the duration between point A and B.
Sequence 6 is identical to Sequence 4, because point A is to be found.

7. This sequence measures the time, in µs, between point A and B.

6
Currently this value is set to 0.3 mm which is 11207 in binary code.

24
6.2.3 LabVIEW for Windows module
As with the FPGA VI, the Host VI consists of four similar parts, one for each valve. The
only minor difference is the Matlab code, and therefore only one inlet valve will be
described. The front panel will not be described in this section. This will instead be done in
the user manual in Appendix 1.

Block diagram

Figure 22. Block diagram for inlet valve 1.

1. Because the Host VI has to be connected to the FPGA VI, these four functions are
necessary. From left there is a function that opens a specified FPGA VI which
means that it’s activated for use in the Host VI. The following function invokes
the FPGA VI and runs it. To be able to change input values to the FPGA VI, there
is a need for another function called Read/Write Control. This control gives
access to all controls and indicators on the FPGA VI. The left side of this control

25
is used for changing the controls while the right side is used for reading the
indicators on the FPGA VI.
The FPGA works independently from the computer to avoid any possible
disturbance. This means that even if Window crashes, the FPGA will still run as
long as there is a power supply. Therefore there is a need for a final function that
will stop the FPGA VI from running when wanted.

2. This section is called a Matlab script and as the name implies, it is used for
connecting the Host VI to Matlab. Using Matlab in LabVIEW will simplify some
calculations such as linear interpolation which has been used here.
The user sets the input values in the front panel, which are then processed in the
Matlab script and calculated values are then passed on to other sections in the
Host VI. The Matlab code used in the script can be seen in Appendix 7.

3. The Integral (I) controller is a very important part of the system. It makes sure
that the actual duration is heading towards the set value. Without this, one can not
be sure that the actual duration will be as desired. The following formula
describes the I controller.
U = ∑ k ( S − A) (2)
cycles

U = control signal
k = integral constant
S = set value
A =actual value

The proportionality constant, k, is not a pre-defined parameter, which means that


the user can use a value that best suits the application in question. An increasing k
will give a faster controller to a certain point. Beyond this point it will make the
system completely unstable. The controller in Section 3 regulates the duration. It
adds U to S1D and thus introduces feedback. As long as there is a remaining
error, U will keep growing in the direction opposing the error.

4. The lift also needs to be regulated. This is done by another I controller that works
in the same way as the previous one. The only difference is that U will instead be
added to S2A-S1A.

5. The purpose of this section is to avoid absurd controller values. Such values can
occur if for instance, the pressure is too low and insufficient for the desired lift or
duration. Then U keeps growing out of bounds which are called integral wind-up.
Therefore there are intervals that only allow reasonable values.

26
7 Acquiring guiding values for control of the
valves

To get the right lift and duration, the solenoid activation times must be set correctly. The
lift is, as mentioned, only dependent on S2A-S1A and the pressure. Here the pressure is
the same throughout the whole lift interval and will therefore not affect the lift. To
investigate this interval, S2A-S1A is varied. By measuring the voltage on an oscilloscope,
the relation between voltage and corresponding lift is obtained, see Figure 23.

Voltage as a function of lift

3000

2500

2000
Voltage [mV]

1500

1000

500

0
1 2 3 4 5 6 7 8 9 10 11 12
Lift [mm]

Figure 23. Voltage as a function of lift.

This relation is then used and interpolated in the Matlab code. Interpolation makes it
possible to choose any lift between 2 and 12 mm. The obtained values for inlet valve 1
can be seen in Table 1. All tables can be found in Appendix 10.

Lift [mm] 1.58 2.46 3.03 3.82 4.84 6.37 6.61 7.81 9.24 11.27 11.7 12.24
S2A-S1A [μs] 1710 1730 1763 1770 1789 2500 4000 5100 6000 6600 7100 7200
S1Dmin [μs] 59 60 62 63 64 65 66 68 70 72 73 76
Voltage [mV] 1000 1420 1720 1980 2100 2300 2360 2440 2500 2580 2640 2700
Time delay 1 [ms] 5.2 5.2 5.2 5.4 5.8 5.4 5.6 5.4 5.8 5.4 5.6 4.8
Time delay 2 [ms] 8 9.6 9.8 9.6 10 9.6 10.2 10.4 10.4 10.4 10.8 10.8

Table 1. Compilation of guiding values acquired for inlet valve 1 at n =1000 rpm,
duration = 168 CAD, pressure = 2.5 bar.

The duration is directly related to S1D. There is a time delay between S1A and start of
required valve lift which is called T1. This also applies to the end of S1D and closure of
the valve. This time delay is called T2. See Figure 24.

27
Figure 24. Valve duration related to S1D.

As seen from Table 1, these time delays are approximately constant throughout the whole
lift interval and therefore a mean value is used in the Matlab code.

S1D can be calculated with following formula

S1D = T 1 + DURATION − T 2 (3)

Time delay T1 will also be used when the opening of the valve is to be determined. In the
program T1 is subtracted from the opening time that the user has set.

Carrying out the measurements


The sensor gives the lift in volts and since the lift is desired in millimeters a simple tool
has been designed. See Figure 25.

Figure 25. Constructed tool and a slide caliper.

By putting the tool against the cylinder head and turning the screw until the moving valve
hits it, the lift can then be measured with a slide caliper.
The test runs were done at engine speed of 1000 rpm. A higher engine speed would make
it a little easier to measure the valve lift, but on the other hand it would give a higher

28
noise level. If the engine speed is less than 1000 rpm, it can be more difficult to measure
due to lower valve activation frequency.
The duration has no effect on the lift and was therefore arbitrarily set to 168 CAD. This
statement is not completely true, because if the duration is too short it will reduce the air
supply to the actuator and thereby reduce the valve lift. It is necessary to retrieve a
S1Dmin value for each valve lift, as seen in Table 1.
As mentioned, the pressure is constant in the whole valve lift interval. The only pressure
that makes this possible is about 2.5 bar. A lower pressure would make it impossible to
achieve 12 mm in lift.

29
8 Evaluation of the program

The purpose with this chapter is to show some typical curves obtained from an
oscilloscope while executing the program. The figures below are acquired from test runs
with inlet valve 1, the remaining valves show a similar pattern. Figure 26, Figure 27 and
Figure 30 were obtained at an engine speed of 1000 rpm.

Figure 26. Variation of valve lift at a constant duration of 200 CAD.

Figure 27. Variation of duration at a constant lift of 7 mm.

Figure 26 shows that the duration remains constant when the valve lift is varied. At the
valve closure, there is a slight difference between the valve lifts. This difference occurs
because of the hydraulic brake. It seems as the brake effect it somewhat to large at lower
lifts and the valve closure gets extended compared whit a higher valve lift. The reason is
probably that a higher valve lift has a higher returning velocity.
Figure 27 shows in turn how the lift remains unchanged at different durations.

30
Figure 28. Variation of engine speed at a constant valve lift of 7 mm and a
constant duration of 200 CAD.

Figure 28 shows how the valve lift isn’t affected by the change of engine speed. The
duration also remains unchanged, but this can’t be seen in the figure. The reason for this
is that duration in time varies with different engine speeds while duration in CAD
remains the same.

Figure 29. Instability occurs at engine speeds over 1800 rpm.

Test runs have shown that instability occur at engine speeds higher than 1800 rpm. Figure
29 shows a valve lift curve at the same test conditions as the curves in Figure 28. The air
flow is insufficient and can’t hold the valve at the desired level. Figure 29 is somewhat
misleading. One should not think that this is a periodic curve. It varies both in duration
and valve lift from cycle to cycle.
Instability also occurs at valve lifts under approximately 4 mm. This applies to all valves
at any duration and engine speed. Figure 30 shows a typical curve at instability.

31
Figure 30. Instability occurs at valve lifts under 4 mm.

The manufacturer has studied these results and has come up with a solution to solve the
instability problems. Some minor changes inside the actuators where made. Test runs
have been done at engine speeds up to 2500 rpm, which is the upper limit in the objective
stated in Chapter 1.1. Figure 31 shows clearly how the instability has been eliminated.

Figure 31. Stability at an engine speed of 2500 rpm.

The adjustments have also made it possible to get stable lifts under 4 mm, as seen in
Figure 32. Test runs have shown that stable operations are obtained down to valve lifts of
2.6 mm. Below this value instability occurs due to physical limitations of the actuators.

32
Figure 32. Stability at a valve lift of 3mm.

Figure 33 and Figure 34 shows the step response when changing duration and valve lift.
When changing the duration from a low to a high value, an immediate change is seen and
then a last adjustment is made to reach the desired level. The opposite, which is changing
from a high to a low value, also have an immediate effect on the duration. Now the value
is set a little to low by the program, but the I controller will adjust the error and
eventually the desired level will be reached, as seen in Figure 33. The same line of
argument can be applied to Figure 34.

Figure 33. Step response when changing duration. Left shows when
changing from 150 to 200 CAD and right shows the opposite.

33
Figure 34. Step response when changing valve lift. Left shows when
changing from 6 to 10 mm and right shows the opposite.

Figure 35 shows the cycle to cycle variation for duration and lift. It looks a little more
dramatic than it actually is. The difference in percentage between the set value and the
actual value is very small.

Figure 35. Cycle to cycle variations of duration at 200 CAD and lift at 7 mm.

34
This project hasn’t considered any economic calculations, still it can be of great interest
to investigate the air flow consumption. A simple rotameter was integrated into the
system to measure the outgoing air flow from one actuator. The measurements were done
at an ambient temperature of 20 degrees Celsius. Figure 36 shows how the valve lift
affects the air flow at a constant duration and engine speed. Figure 37 shows the air flow
as a function of engine speed at constant duration and valve lift.

7
6
Air flow [l/min]

5
4
3
2
1
0
3 4 5 6 7 8 9 10 11 12
Lift [mm]

Figure 36. Air flow as a function of valve lift at a duration of 200 CAD and
an engine speed of 1000 rpm.

10

8
Air flow [l/min]

0
800 1000 1200 1400 1600 1800 2000 2200 2500
Engine speed [rpm ]

Figure 37. Air flow as a function of engine speed at a duration of 200 CAD
and a valve lift of 7 mm.

It should be mentioned that the values obtained are far from accurate and has to be
considered only as guiding values.

35
9 Encountered problems

This chapter will be devoted to describe problems which have occurred during this
project. The problems are of two different kinds, theoretical and practical problems.

9.1 Theoretical problems

Problems with LabVIEW

Communication between LabVIEW and FPGA is not as easy as it seems for a user new to
LabVIEW. The FPGA module is a rather new part of LabVIEW and there isn’t much
written about it yet. Therefore one is forced to explore all the functions available which
can be very time consuming.
The communication is done by four LabVIEW functions which have to be connected in a
certain order, as explained in Chapter 6.2.3.

Using Matlab in the FPGA module is not possible. If one wants to use Matlab in a FPGA
based application, it has to be done through the LabVIEW module. There is a function
called Matlab script, as described in Chapter 6.2.3, for this kind of use.

Receiving graphs from the FPGA program is possible but will not give satisfactory
results. The communication between the computer and the FPGA device doesn’t occur
continuously. This will affect the graphs which will miss some segments and thus make it
incomplete. This is the reason of not having a valve lift curve in this project.
The solution to the actual problem is to use a NI-DAQ 7 device which will operate
independently of the FPGA device. LabVIEW is equipped with functions that are easy to
use with a NI-DAQ device.

Dividing numbers in the FPGA module is not yet fully developed. At the moment the
FPGA can only handle integers. This is because floating point numbers require too much
memory.

Problems with programming in LabVIEW

Making a pulse counter would be much easier if instantaneous values could be retrieved
from a while loop. However this is not possible, because a while loop will only send out a
value after it has ended. Fortunately there exists a function that detects every rising edge
from a digital input signal. There are other possible solutions, but this is probably the
least complicated one.

7
DAQ means Data Acquisition and as the name implies it is used for gathering information from digital
and analog inputs.

36
Inlet valve opening before TDC is used to increase volumetric efficiency and to push out
the remaining exhaust gases. TDC is a starting point in the program, and therefore it will
not be possible to open the inlet valve before TDC. To bypass this problem, it is
necessary to begin with the exhaust valve, as seen in Figure 38.

Figure 38. Example of valve timing in one cycle (two revolutions),


EVO=Exhaust Valve Opening, IVO=Inlet Valve Opening, EVC=Exhaust
Valve Closing, IVC=Inlet Valve Closing, TDC=Top Dead Center.

This will lead to a possible inlet valve opening from -180 to 180 CAD relative TDC as
wanted. Figure 38 shows an example of how the valve openings and closures can be
chosen. With this configuration it is possible to have an overlap between IVO and EVC.

A bounce after a valve actuation can sometimes occur due to insufficient braking of the
valve. If the threshold for the duration is set too low, the bounce will be taken for a real
valve lift. This can lead to very unstable system due to misleading values sent to the I
controllers.

Figure 39. An illustration of a bounce caused due to poor hydraulic braking.

As seen in Figure 39 this can easily be avoided by setting this measuring level above any
possible bounce level. In this case it is set to 0.3 mm and program testing has shown that
this value gives good stability.

Some small problems can have great influence on the whole system. For example if in
Figure 21, Section 1, symbol ≥ is changed to only = the system would maybe never

37
detect that particular point due to some missing segments in the analog input signal. This
will lead to complications and the program wouldn’t run properly.

9.2 Practical problems

Changing the amount of shims is one of the most time-consuming parts of the practical
work done in this project because of the high precision needed. A difference in shims
thickness as small as 0.2 mm, can lead to either no lift at all or a way too high noise level.
The approach for satisfying amount of shims has been to first add too much shims, which
will lead to no valve opening at all. Then by measuring the shims and reducing one plate
with 0.1 mm in thickness at a time, the “perfect” shims level will eventually be reached.

Air in the hydraulic brake system will lead to insufficient braking and result in the
previously mentioned bounce effect and a high noise level. Even if the amount of shims
is proper, one still has to remove all air from the hydraulic brake.

38
10 Limitations of the program

There are three limitations in the program that the user has to take into consideration.
They are based on either physical or programmatic constraints.

Physical limitation
As mentioned in Chapter 7 there exists a limitation of how short the S1Dmin can be. To
find this limitation, the duration should first be set to a value that gives the desired lift.
Then by slowly decreasing the duration and observing the point when the lift starts to
decrease, one gets the smallest possible duration in CAD. It is preferable to add a safety
margin of for example 10 CAD to avoid any problems. Figure 40 shows the indicators
that the user has to be aware of.

Figure 40. A part from the Host VI front panel.

Programmatic limitations
The right indicator in Figure 40 shows the greatest possible duration in CAD. This value
is dependent on when the user wishes to open the valve. If for example the inlet valve is
to be opened 60 CAD after TDC, the greatest possible duration will then be 299 CAD
instead of 300 CAD due to a programmatic limitations. If the duration is set to 300, the
TDC pulse will be missed and a whole cycle will be wasted. By introducing a safety
margin of 1 CAD, this will be completely avoided.

Figure 41. Another part from the Host VI front panel.

The second programmatic limitation arises due to a time delay between the activation of a
solenoid and the opening of a valve. For example if the engine speed is set to 2500 rpm
and the time delay is measured to be 6.8 ms, the corresponding time delay in CAD will
then be 102 CAD. This means that the valve can only be opened 102 CAD after TDC. As
with the physical limitation, a safety margin of 10 CAD has been used. The indicator in
Figure 41 shows an example of this. Observe that this only applies to the exhaust valves
due to how the valve openings are defined in Figure 38.

39
11 Future work

The system built in this project is working satisfactorily, but there are still some things
that could make it work even better.

Better pressure regulator


At first a rather inexpensive pressure regulator was used to control the pressurized air
supplied to the actuators. This regulator had very high throttle losses at relatively high
engine speeds because the regulator couldn’t deliver the amount of air needed to operate
the valves. To avoid this, a better pressure regulator was bought and integrated into the
system. But even with the new regulator signs of throttle losses were seen, although not
as large as before.
Another unsatisfying thing with the regulator is the scale on its manometer. The lift is
very dependant of the air pressure, and therefore a need for a more accurate manometer is
required to achieve better results. At the moment the manometer is scaled with steps of
0.5 bar and it would be better with steps of 0.1 bar. A solution to this could be a digital
regulator which would offer higher precision. Another advantage is that a digital
regulator could be operated directly from the computer and thus there would be no need
to change the pressure manually.

Replacing the integral controller


The I controller used for controlling the lift and duration is working satisfactorily, but
somewhat slowly. This can be changed by introducing a PID controller. It is more
difficult to construct, compared to an I controller, but it will surely give better results with
faster control and less errors.

Better positioning sensor


There are many question marks regarding the positioning sensor which maybe makes it
unsuitable to use in a closed loop system. There is no information on how it reacts at
different temperatures, long test runs etc. It measures the light intensity that is reflected
from the actuator piston surface, and therefore it is more accurate for low lift [5]. If the
surface gets covered with oil it will affect the sensor in a negative way by giving
somewhat different values from time to time, probably depending on the thickness of the
oil layer at the moment.
It would probably be better to invest in a sensor of higher quality.

Pressure optimization
In this project only one pressure is used throughout the whole lift interval. This leads to
considerable instability at lifts below 4 mm due to short solenoid activation differences
(S2A-S1A). To get a more optimized system it is required to have various pressure
intervals which will increase the values of S2A-S1A.

40
More suitable actuators
The actuators used at the moment are not optimized for a heavy vehicle application. The
actuator piston should probably have a larger diameter. This would increase the force
acting on the actuator piston at the same pressure due to the increased working surface.

Implementation in a real engine


When the program is to be used in a real engine, there are a couple of things that have to
be kept in mind. The exhaust valves in a real engine always works against a back pressure
and therefore it is very important to be able to change the air pressure to the actuator as
the pressure varies in the engine cylinder. It is maybe enough just to add the back
pressure to the supply air pressure and thereby eliminating it. If this is possible there will
be no need to once again acquire the guiding values described in chapter 7. However this
has not yet been tested and is only to be seen as a hypothesis. One relatively easy way to
test this is by constructing a “box” which will be attached to the cylinder head and then
filling it with pressurized air to simulate back pressure.
For the inlet valves there will probably be a need to lower the pressure as the inlet air into
the cylinder helps pushing it down.
At test runs the program must take the engine speed into consideration. Today, the user
has to set the value manually but in the future the program should be able to recognize the
real engine speed by itself continuously.
Another aspect that has to be considered is the way the engine cycle is defined in the
program. Since the program always starts by opening the exhaust valves it will always
end by closing the inlet valves. When the user stops the program, the following things
that will occur are compression and fuel injection, followed by ignition. After the
expansion the exhaust valves will not open and the piston has to work against high
pressurized exhaust gases. It will therefore be very important to add a sequence where the
exhaust valves open a last time. This will especially be necessary for deactivation of
cylinders.

41
12 Sources of error

Measuring lift by hand with a slide caliper will not give values that are accurate enough.
When higher precision is demanded, other methods must be used.

Linear interpolation, which is used in the Matlab code, is not as accurate as if polynomial
interpolation would be used. The graph in Figure 23 is not linear and therefore linear
interpolation is not the best suited approach.
The starting value for duration of 0.3 mm has been calculated with polynomial
interpolation with a polynomial degree of 3 in Excel because this value exceeds the
graph. A higher degree could lead to Runge´s phenomenon 8 , which would give totally
wrong calculations.

Division in the FPGA module is, as mentioned, not completely developed. Division will
only give an integer result and the remainder will be unused and is therefore a source of
error. To minimize the remainder, all the time values have been transformed to µs. In this
way the remainder will be a maximum of approximately 1 µs.

8
Runge’s phenomenon is a mathematical observation which can occur when interpolation with high degree
polynomials is used and can lead to a highly oscillatory error behavior and large errors [11].

42
13 Conclusions

The construction of the program has been a troublesome road. The main reason was lack
of knowledge in LabVIEW and the FPGA module. As the project went on and the
understanding of LabVIEW grew larger, the pieces fell into place. The extent of the
program also increased with time, and at the end there was a question whether the
program would fit on the FPGA device or not. Luckily it did and there was no need to
scale down the program.
After many hours of testing and troubleshooting, the program finally works satisfactorily.
The goal to control the valves between 2 and 12 mm at an engine speed interval between
300 and 2500 rpm has been fulfilled. The only remark is that valve lifts below 2.6 are
unstable due to physical limitations of the actuators.
It must be mentioned that the FPGA device has worked with no problems whatsoever. It
is very reliable and the only thing that can go wrong seems to be mistakes done by the
programmer himself.
The actuators have proven to be well developed, with very little oil leakage, low noise
level and persistent to long test runs. There are only remarks regarding time-consuming
work as air drainage and finding the right shims level.

43
14 References

[1] http://auto.howstuffworks.com/diesel.htm, 2005-02-12

[2] B. Johansson, “Förbränningsmotorer del 2”, 2004

[4] M. Schechter, M. Levin, “Camless Engine”, SAE Paper 960581, 1996

[5] Personal contact with Urban Carlson and Anders Höglund at Cargine Engineering
AB

[6] http://digital.ni.com/devzone%5Cconceptd.nsf/webmain/91F92C8E4585F169862
56CFE005FE6B7/$File/WP2329.pdf, 2004-11-25

[7] http://www.ni.com/pdf/products/us/04_3632_301_101.pdf, 2004-11-25

[8] http://www.3d-meier.de/tut6/XPresso17.html, 2005-02-13

[9] http://www.scania.co.uk/Our_trucks/NTR/technology/scania_modular_combustion
concept/gear_actuation.asp, 2005-02-13

[10] http://www.ni.com/company, 2005-04-10

[11] C. Führer, A. Schroll, “Numerical Analysis – An Introduction”, 2003

44
Appendix 1 – User manual

1. Open the file mp_labview_eng.vi.

2. Turn on the power supply to the solenoids.

3. In the front panel, default values are already set. The reason for this is to make it
easier for a new user to get a quick start. It is also recommended to start with
these values, so that one won’t exceed limit values, which are shown in the
indicators.

4. Type in the desired values. It is possible to turn of one or more valves before a
test run. This is also possible while executing the program.

5. Before executing the program, set the pressure to recommended level. Make sure
that the hydraulic brake is on by tuning the knob counterclockwise.
6. Execute the program by pressing or with “Ctrl + r”.

7. While executing, it is possible to change values. Once again check the indicators
for the present limits and the actual pressure on the gauge.

8. At the Miscellaneous page, one can change the integral constants of the I
controllers and also some solenoid paramters. This is only to be used by advanced
users that fully understand the function of the system.

9. To end the execution of the program, use the stop button for the entire system.
Do not stop the program by pressing , this can damage the solenoids.

45
Appendix 2 – Host VI
Front panel – Inlet valves

46
Front panel – Exhaust valves

47
Front panel – Miscellaneous

48
Block diagram

49
50
Appendix 3 – FPGA VI
Block diagram

51
52
53
Appendix 4 – Reflective object sensor9

9
http://www.optekinc.com/pdf/OPB707A.pdf, 2005-04-13

54
55
Appendix 5 – Solenoid10

10
http://www.bcrn.com/Pages/sol2/solpdf/sp1913.pdf, 2005-04-13

56
Appendix 6 – Wiring scheme

Channel out in

5V 2:white-red
5V 2:white-green
Gnd 2:white-blue
Gnd 2:white-brown

1a 1:red 2:red
1b 1:white-red
2a 1:green 2:green
2b 1:white-green
3a 1:blue 2:blue
3b 1:white-blue
4a 1:brown 2:brown
4b 1:white-brown

57
Appendix 7 – Matlab code for inlet valve 1
Due to the similarity in the code between the valves, only one is chosen to be shown here.

58
Appendix 8 – Valve Stem Cap
[mm]

Scale 3:1

59
Appendix 9 – Plate dimensions

60
Appendix 10 – Excel data
Actuator nr. 4 (intake 1):

Lift [mm] 1.58 2.46 3.03 3.82 4.84 6.37 6.61 7.81 9.24 11.27 11.7 12.24
S2A-S1A [μs] 1710 1730 1763 1770 1789 2500 4000 5100 6000 6600 7100 7200
S1Dmin [CAD] 59 60 62 63 64 65 66 68 70 72 73 76
Voltage [mV] 1000 1420 1720 1980 2100 2300 2360 2440 2500 2580 2640 2700
Time delay 1 [ms] 5.2 5.2 5.2 5.4 5.8 5.4 5.6 5.4 5.8 5.4 5.6 4.8
Time delay 2 [ms] 8 9.6 9.8 9.6 10 9.6 10.2 10.4 10.4 10.4 10.8 10.8

Actuator nr. 5 (intake 2):

Lift [mm] 1.9 2.8 3.68 4.25 5.53 6.39 7.5 8.43 9.35 10.3 11.39 12.51
S2A-S1A [μs] 1480 1580 1620 1900 2800 2900 4200 4900 5600 6100 7100 8000
S1Dmin [CAD] 46 47 49 50 53 59 60 62 63 65 66 68
Voltage [mV] 1540 2120 2360 2600 2800 2880 2980 3020 3080 3120 3180 3220
Time delay 1 [ms] 6 5.6 5.8 5.6 5.8 5.4 5.8 5.8 6 6 6.2 5.8
Time delay 2 [ms] 7.8 8.2 8.2 8.8 9.2 9.4 9.6 9.8 10.2 10.2 10.6 10.8

Actuator nr. 1 (exhaust 1):

Lift [mm] 1.8 2.3 3.64 4.5 5.43 6.48 7.7 8.53 9.59 10.25 11.4 12.32
S2A-S1A [μs] 1240 1260 1340 1460 1540 1620 1780 3700 5000 5700 6200 7200
S1Dmin [CAD] 64 65 66 68 69 71 78 80 81 84 85 86
Voltage [mV] 1600 1820 2460 2660 2780 2920 3000 3080 3100 3160 3220 3300
Time delay 1 [ms] 5.8 6 5.8 5.8 5.6 5.6 5.6 5.8 5.8 5.8 5.6 5.8
Time delay 2 [ms] 7.2 8 8.8 9 9.2 9.8 10.4 10.6 10.6 10.4 10.8 11.2

Actuator nr. 3 (exhaust 2):

Lift [mm] 1.75 2.68 3.7 4.6 5.36 6.76 7.4 8.43 9.6 10.45 11.29 12.3

S2A-S1A [μs] 920 950 1020 1130 1160 1180 1210 1290 1400 4900 5900 10000

S1Dmin [CAD] 51 52 54 55 59 64 69 70 73 74 76 77

Voltage [mV] 440 1200 1760 2180 2260 2680 2720 2760 2860 2940 3060 3100

Time delay 1 [ms] 7 7.2 7 6.8 6.8 6.6 6.8 7.2 7 6.8 6.8 6.6

Time delay 2 [ms] -13 7.8 8.4 9.6 9.4 10.4 10.6 11 10.8 11.4 11.6 13

61
Appendix 11 – Abbreviations

BDC Bottom Dead Center


CAD Crank Angle Degree
ECV Electrohydraulic Camless Valvetrain
EVC Exhaust Valve Closing
EVO Exhaust Valve Opening
EGR Exhaust Gas Recirculation
FPGA Field Programmable Gate Array
IVC Inlet Valve Closing
IVO Inlet Valve Opening
RPM Revolutions Per Minute
S1A Solenoid 1 Activation
S2A Solenoid 2 Activation
S1D Solenoid 1 Duration
S2D Solenoid 2 Duration
T1 Time delay 1
T2 Time delay 2
TDC Top Dead Center
VI Virtual Instrument
VSC Valve Stem Cap
VTEC Variable valve Timing and lift Electronic Control
VVC Variable Valve Control

62

You might also like