fpga controlled pneumatic variable valve actuation

67
FPGA Controlled Pneumatic Variable Valve Actuation Alexandar Milosavljevic Sasa Trajkovic April 2005

Upload: trajkan

Post on 12-Nov-2014

1.081 views

Category:

Documents


1 download

DESCRIPTION

Master Thesis about the evaluation of a novel VVT system for combustion engines. Visit my homepage: www.mesaconsult.com

TRANSCRIPT

Page 1: FPGA Controlled Pneumatic Variable Valve Actuation

FPGA Controlled Pneumatic Variable Valve Actuation

Alexandar Milosavljevic Sasa Trajkovic

April 2005

Page 2: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 3: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 4: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 5: FPGA Controlled Pneumatic Variable Valve Actuation

iv

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

Page 6: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 7: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 8: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 9: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 10: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 11: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 12: FPGA Controlled Pneumatic Variable Valve Actuation

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 gas1 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

Page 13: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 14: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 15: FPGA Controlled Pneumatic Variable Valve Actuation

4.3 Pneumatic The system developed and delivered by Cargine Engineering uses pressurized air to control the valves. It consists of an actuator, two solenoids2, 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

Page 16: FPGA Controlled Pneumatic Variable Valve Actuation

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 actuator3 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

Page 17: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 18: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 19: FPGA Controlled Pneumatic Variable Valve Actuation

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.

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.

7

26

4

8

1

5

3

9

14

Page 20: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 21: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 22: FPGA Controlled Pneumatic Variable Valve Actuation

spring4. 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

Page 23: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 24: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 25: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 26: FPGA Controlled Pneumatic Variable Valve Actuation

Solenoid control

65

21

37

4

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 pulses5.

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

Page 27: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 28: FPGA Controlled Pneumatic Variable Valve Actuation

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

0.1032768

×=BinaryCodeVoltage V (1)

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.

31 2

I 5

4

67

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

Page 29: FPGA Controlled Pneumatic Variable Valve Actuation

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 value6. 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

Page 30: FPGA Controlled Pneumatic Variable Valve Actuation

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

1

2

3

4

5

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

Page 31: FPGA Controlled Pneumatic Variable Valve Actuation

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.

∑ −=cycles

ASkU )( (2)

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

Page 32: FPGA Controlled Pneumatic Variable Valve Actuation

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

0

500

1000

1500

2000

2500

3000

1 2 3 4 5 6 7 8 9 10 11 12

Lift [mm]

Volta

ge [m

V]

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

Page 33: FPGA Controlled Pneumatic Variable Valve Actuation

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 211 TDURATIONTDS −+= (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

Page 34: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 35: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 36: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 37: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 38: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 39: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 40: FPGA Controlled Pneumatic Variable Valve Actuation

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.

0

1

2

3

4

5

6

7

3 4 5 6 7 8 9 10 11 12

Lift [mm]

Air

flow

[l/m

in]

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

0

2

4

6

8

10

800 1000 1200 1400 1600 1800 2000 2200 2500

Engine speed [rpm]

Air

flow

[l/m

in]

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

Page 41: FPGA Controlled Pneumatic Variable Valve Actuation

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-DAQ7 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

Page 42: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 43: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 44: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 45: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 46: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 47: FPGA Controlled Pneumatic Variable Valve Actuation

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 phenomenon8, 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

Page 48: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 49: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 50: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 51: FPGA Controlled Pneumatic Variable Valve Actuation

Appendix 2 – Host VI Front panel – Inlet valves

46

Page 52: FPGA Controlled Pneumatic Variable Valve Actuation

Front panel – Exhaust valves

47

Page 53: FPGA Controlled Pneumatic Variable Valve Actuation

Front panel – Miscellaneous

48

Page 54: FPGA Controlled Pneumatic Variable Valve Actuation

Block diagram

49

Page 55: FPGA Controlled Pneumatic Variable Valve Actuation

50

Page 56: FPGA Controlled Pneumatic Variable Valve Actuation

Appendix 3 – FPGA VI Block diagram

51

Page 57: FPGA Controlled Pneumatic Variable Valve Actuation

52

Page 58: FPGA Controlled Pneumatic Variable Valve Actuation

53

Page 59: FPGA Controlled Pneumatic Variable Valve Actuation

Appendix 4 – Reflective object sensor9

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

54

Page 60: FPGA Controlled Pneumatic Variable Valve Actuation

55

Page 61: FPGA Controlled Pneumatic Variable Valve Actuation

Appendix 5 – Solenoid10

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

56

Page 62: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 63: FPGA Controlled Pneumatic Variable Valve Actuation

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

Page 64: FPGA Controlled Pneumatic Variable Valve Actuation

Appendix 8 – Valve Stem Cap [mm]

Scale 3:1

59

Page 65: FPGA Controlled Pneumatic Variable Valve Actuation

Appendix 9 – Plate dimensions

60

Page 66: FPGA Controlled Pneumatic Variable Valve Actuation

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

Actuator nr. 5 (intake 2):

Actuator nr. 1 (exhaust 1):

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

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

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

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

61

Page 67: FPGA Controlled Pneumatic Variable Valve Actuation

62

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