I have been busy over the last few weeks with various things, but have now completed most of the practical work on my project and am now at the stage of writing up the report/dissertation. I have successfully managed to achieve closed loop ignition timing control by using the Stellaris Launchpad development board to directly interface with the optical encoder on the engine and the pressure sensor charge amplifier (this replaces the AVL IndiSet 620 in my system).
The ECU which I am developing is an embedded real time system which is designed to control a single cylinder spark ignition fuel injected gasoline engine. There are a number of ways to approach developing this type of system, and a mixture of these are likely used in industry
- Develop code on the embedded device and continuously test on the engine
- Develop code all in one go on the embedded device and perform a final test on the engine (you would have to be pretty confident in your code for this to be worthwhile)
- Create an engine simulator in software on a PC and write your ECU software on the PC to control it, then program the ECU to an embedded device to test on a real engine
- Develop model based code in software like Matlab Simulink, build an engine simulator and ECU separately in the software, then program it to a ‘target’ to run on an embedded device
- Develop an engine simulator on an embedded device and develop the ECU on an embedded device to control it
I’m going with the last option. Continue reading