E. Corti - Alma Automotive
L. Solieri - University of Bologna
We developed a virtual ECU (VECU) for an internal combustion (IC) engine to serve as a flexible platform for implementing new engine control strategies. All the functionalities of a stock ECU had to be replicated and new capabilities had to be introduced such as malfunction generation, advanced combustion diagnosis, and experimental algorithms. Furthermore, we had to adjust most of the parameters in real time during execution.
Implementing the system required a modern approach using rapid control prototyping techniques. To shorten the development time, we used the NI platform consisting of LabVIEW, LabVIEW FPGA, and LabVIEW Real-Time modules, which allow LabVIEW to generate the FPGA code and deploy to the real-time target.
System Driving Requirements
Several driving requirements determine the system architecture: the platform has to work on different types of engines, either spark ignition (SI) or compression ignition (CI); the engine position sensing should guarantee accuracy greater than 0.1 degrees; the injection timing accuracy has to be greater than 1 µs; the spark advance position has to be accurate within 0.1 degrees; the injection pattern cannot be constrained so that single-point, multipoint, multijet, and full-group injection is allowed; and the controller computational power should allow the development of advanced control algorithms.
The R Series multifunction RIO module monitors the crank angular position. The accurate position is determined by processing the angular reference signals from the most commonly used position sensors, either variable reluctance speed (VRS) or Hall effect, in any combination including the widely used 60-2 sensor wheel. The speed of the FPGA allows recognition of the tooth crossing within 125 ns of the physical transition.
The main outputs of the system are the injection and ignition actuation signals – low power for amplification by external power drivers. All the actuators are driven independently from each other; we tested and successfully handled actuations for an eight-cylinder engine. The actuation parameters, such as injection duration and SA, are evaluated by the real-time side of the application on the NI PXI-8186 controller once every cycle on each cylinder on a combustion basis. Then the calculations are queued to the FPGA for execution with the requested angular and timing accuracy. The FPGA code also handles several protection procedures targeted to the safeguard of the engine components, ignition coils, and injectors. We extensively used the single-cycle timed-loop structure to ensure that we deterministically met our deadlines.
With high-speed analog I/O on the FPGA, we can implement a high-speed processing of the in-cylinder pressure signal, at 200 KHz maximum, to acquire information such as knock evaluation indexes, heat release rate, and MFB trends. Therefore, we can develop advanced control strategies aimed at maximizing the indicated mean effective pressure (IMEP), 50 percent MFB position control, and an aggressive SA strategy without exceeding the knock limit.
We divided the system layout into three layers: FPGA, real time, and the GUI. The highest priority and time-critical tasks are on the lowest level – the FPGA level – and the lowest-priority functions are on the user interface. The GUI does not run on the real-time system. Instead, it is remotely connected via Ethernet and is not necessary for the operation of the VECU. The GUI tasks are mainly low-frequency data logging and system management, including interactions with the real-time side for parameter changes such as the AFR target, SA, and malfunction induction. A malfunction of the host does not interfere with the engine control system. The low-level application runs on a Pharlap real-time OS and the FPGA, and the host GUI can be deployed virtually on any device: Windows PCs, Linux PCs, or palmtops.
To evaluate the effectiveness of the system, we carried out an extensive set of tests on a Maserati V8 3.2 liter turbocharged engine (AM585). We realized the engine phase and position is correctly determined with a 125 ns delay, we can achieve multiple independent injections with duration of 65 ms maximum and 1 µs accuracy, and the SOI is selectable with an accuracy exceeding 0.1 degrees. We also realized the spark advance angular position has an accuracy better than 0.1 degrees; high-speed, real-time analog signal processing is feasible; the computational power of the NI PXI-8186 allows implementation of advanced control strategies and new algorithms; with open-loop and map-based control strategies the CPU load is below 20 percent at 6,000 rpm; and the FPGA uses 90 percent of the gates on the 1M gate board. If the analog capabilities of the board are not necessary, the digital NI PXI-R Series is a cost-effective alternative.
Successful Development and Future System Modifications
Our rapid control prototyping (RCP) system demonstrates the capabilities of NI hardware and software when used as the basis for implementing a virtual engine control unit (ECU), including the versatility of the FPGA in handling high-resolution and time-critical tasks such as the engine position sensing and ignition and injection management. Using the field-programmable gate array (FPGA) helped eliminate several external electronic circuits, mainly signal conditioning, and simplified the system layout. In addition, the LabVIEW development system with NI DAQ hardware supplied all the tools needed to quickly design and develop a working system. The flexibility and portability of the written code facilitated implementation on different platforms like NI CompactRIO.
We can make small modifications to implement a similar system to a more compact and affordable NI CompactRIO platform. Performance will be at different levels, but it will provide the necessary computational power with the same flexibility and added portability, which we can use to conduct onboard programming and V-ECU algorithm tuning.
Tel: +39 051 6447130