Developing a Universal ECU System Using CompactRIO

"We designed a very flexible, programmable motor management system using the CompactRIO programmable automation controller because the platform is modular and expandable for additional sensors and contains a field-programmable gate array (FPGA)."

- Kristof Ceustermans, Karel de Grote University College, Department of Applied Engineering

The Challenge:

Developing a high-efficiency, low-emission adaptable engine control unit (ECU) to control engines running on standard gasoline as well as hydrogen, syngas, and fuel mixtures.

The Solution:

Using the NI LabVIEW FPGA Module and NI CompactRIO to simulate, test, and control our engine and perform on-the-fly control adaptations.


Kristof Ceustermans - Karel de Grote University College, Department of Applied Engineering
Pieter Huyskens - Karel de Grote University College, Department of Applied Engineering


Engine Control Units

New fuel sources and more efficient fuel use may provide a more sustainable method to power our engines by reducing fuel consumption and emissions and maximizing fuel efficiency. Several ECUs take data from the rotations per minute (rpm), request the torque/throttle position or boost pressure in the turbocharged engine, and determine the optimum ignition time and period as well as the optimum fuel injection amount and time. We use additional parameters such as engine temperature to apply a correction on these values. For example, a cool engine needs a richer fuel mixture compared to an engine running at its normal operating temperature.


Current off-the shelf programmable ECUs are not suited for research because they are limited in programming capabilities, take a predefined set of input variables (sensors), and are usually optimized for motorsport applications. We designed a very flexible, programmable motor management system using the CompactRIO programmable automation controller because the platform is modular and expandable for additional sensors and contains a field-programmable gate array (FPGA). With the FPGA, the system responds instantly and can be graphically programmed using LabVIEW because our engineers have experience using the graphical programming software through our previous research projects.


Engine Sensor Simulation

Before we can actually connect our ECU system based on CompactRIO to our test bench engine, we have to verify that everything works correctly. Therefore, we apply simulated sensors to our CompactRIO engine controller, which are controlled by a separate application based on LabVIEW and NI CompactDAQ, generating the necessary voltage and current normally applied by the sensors. We discovered that the inductive signals typically generated by a sensor connected to the camshaft and crankshaft are usually unpredictable 80 Vpp signals, where the NI C Series output modules are limited to 60 V. To better represent this signal and save time, we connected a real sensor to a gear and electric motor and the application based on LabVIEW and Compact DAQ controlled the motor rpm. Then we fed the real signal to the CompactRIO ECU.


Designing an ECU Using CompactRIO

We used the LabVIEW FPGA Module to develop our ECU and we can implement the system with CompactRIO using LabVIEW. We created tables using the rpm, requested torque as input values, and used LabVIEW VIs interpolate array functions to find the appropriate actuator parameters such as spark ignition timing and fuel injection timing. We also acquired sensors such as manifold air pressure (MAP) and engine temperature and applied the correction parameters. With the CompactRIO setup, we can easily add more and nonstandard sensors for research as well as adapt for different engines and fuel types. CompactRIO uses the FPGA to acquire the crankshaft and camshaft angular position and generate the actuator signals at the correct time.


In addition to the standard engine parameters, we plan to measure the cylinder pressure and use the data as closed-loop control parameters in our engine controller to maximize the engine efficiency. The mixture should best be ignited at the highest pressure level to generate the most power. First, we want to optimize the control of a normal, four-cylinder gasoline car engine. By implementing the fast and reliable response time of the FPGA, we can focus our research on improving the efficiency of the engine by better controlling the combustion. Moreover, we will perform tests on our test engine under varying load conditions to further enhance our control algorithms.




ECU Developments for the Future

Hydrogen is an environmentally friendly fuel because it does not generate any carbon dioxide. We are working to adapt the ECU to control a hydrogen-fueled car engine. When using hydrogen as a fuel, the hydrogen/air ratio should be matched to at low torque to obtain a perfect combustion without any hydrogen or air surplus. However, at higher torque the engine is best operated at a poor fuel mixture by applying a surplus of air to the engine, which is also called the lean burn principle.


To reduce nitrogen oxide emissions, the engine should not operate at the intermediate fuel/air mixtures. In this control strategy, we will open the throttle valve all the time and use a high air/fuel ratio. The requested torque is controlled by varying the fuel amount. However, when more torque is needed than the lean burn principle can deliver, we have to control the throttle valve instead and switch between the two control strategies. Currently, there is no commercially available engine control system other than the BMW Hydrogen 7 that can switch between those strategies. We plan to implement an ECU using CompactRIO to switch between our control schemes and deliver a commercially available system to interested third parties.


Author Information:

Kristof Ceustermans
Karel de Grote University College, Department of Applied Engineering
Salesianenlaan 30
Hoboken B-2660
Tel: +32 3 820 82 02

CompactRIO provides the hardware platform for the engine controller; LabVIEW is used to analyze the signals and control our actuators.
Our test engine is embedded in a test bench, which can generate a constant load (constant torque) and measure the rpm, or generate a variable load and keep the rpm constant.