CSC Pi-Innovo OpenECU
|Left to Right: Hayden, Colin, Zac, Alex|
|Sponsors||UICSC & Pi-Innovo|
|Team Name||Have Your Pi & Eat It Too (HYPEIT)|
The purpose of this project is to develop and implement connectivity between sensor inputs and a control system using a Pi Innovo OpenECU for future use controlling a two-stroke snowmobile engine. The goal for the summer team is to evaluate functionality of the engine control unit (ECU) using a simulated engine.
The University of Idaho Clean Snowmobile Challenge team (UICSC) is in need of a more advanced engine control platform to support advancements in combustion strategies and auxiliary components directly in the ECU (such as an experimental exhaust baffle for variable back-pressure, or catalytic converter light-off control).
The current ECU used for the UICSC team’s two stroke snowmobile engine is functional, but limiting in light of the CSC’s experimental nature. Implementing more sophisticated engine controls could improve efficiency, emissions, and performance. One example of this is using closed-loop-feedback fueling to reach desired engine operating conditions more reliably than with open-loop fueling. With the power of the Pi Innovo ECU, future powertrain projects developed by the team will be more easily coupled with engine control. Examples include projects previously attempted such as turbocharging and controlling backpressure with a butterfly valve. To complete this project, the senior design team must manage the ECU’s input signals and use a Simulink based controller to compute the appropriate outputs.
The image below shows the basic flow of an engine. Physical real time information about the engines operating conditions and environment are collected using sensors. These range anywhere from sensors used to detect knock to temperature sensors (internal and external). This information is then sent to the ECU which uses the numbers given from the sensors and matches them to a table of known values called lookup tables, MAPs, or calibration tables. This information is interpolated on the tables determines the best way to operate in the given circumstance and sends it off to actuators which change these variables of the engines then the loop restarts. Our project can be visually represented by the yellow arrows. We are trying to bridge the gap between the physical and virtual world by programming each device to talk to one another in order to get what they need to get done, done.
- Summer 2020
- Complete base control systems
- Ability to control spark timing, fuel injection timing and quantity, ratio of fuel injected by injectors in series, stratified vs homogeneous injection based on engine speed and throttle position (n-alpha)
- Ability to manipulate compensation maps for measurements such as piston head temperature, ambient pressure, ethanol percentage, etc.
- Ability to drive E-TEC injectors
- Complete base wiring
- An organized, plug-and-play wiring harness that reaches functional parity with the wiring system for a Rotax 850cc two-stroke engine
- An intuitive wiring diagram
- Testing the ECU on a running engine at idle
- Develop new engine control strategies, including more elaborate injection control
- Integrate auxiliary component controls into ECU
- Integrate chassis functions and implement on chassis
- Research and initial implementation of advanced controls
- Catalyst temperature management/compensations research
- Speed-density fueling with model-based feedback
- i. Spark plug ionization research for in-cylinder air-to-fuel ratio (AFR) measurement
- ii. Ability to switch between n-alpha and speed-density fueling on the fly
- a. Framework for defining control regimes based on sensor validity; n-alpha is fallback
- b. Kahlman filter research
The team will control a 2017 Rotax 850cc two stroke engine with the following specifications:
- Two cylinders
- Gasoline Direct Injection (GDI)
- In-cylinder injection capable of producing homogeneous and stratified air-fuel mixtures
- Throttle-body injection
- Rotax Adjustable Variable Exhaust valves (RAVE valves)
- Adjusts exhaust port timing
- N-alpha fueling
- Engine operating parameters such as spark timing and fuel quantity are predominantly determined in open-loop using lookup tables with axes of engine speed and throttle position.
Key specifications of the Pi Innovo M670 OpenECU that are advantageous to the team’s application include the following:
- Support for two stroke operation
- Injector support
- Gasoline Direct Injection control strategies
- H-bridge outputs
- Programmable injector output signals
- Space for extra signals and actuators with 54 input pins and 49 outputs
For complete specifications of the Pi Innovo M670 OpenECU, please refer to https://www.pi-innovo.com/product/m670/
The engine controls should be flexible enough to allow for future experimentation and add-ons. For example, building the fueling logic such that a speed-density model could be switched to at steady state operation.
The primary users of the in-progress ECU will be undergraduate students on the CSC team. Code should be structured and documented such that a beginner could understand and modify existing code easily.
Each signal’s functionality is validated through the process below:
- Input and output signals are connected and communicating to each other
- Input signal reads as expected
- Output signal reads as expected
- Signal processing properly converts input signal to usable output signal
- Input and output signals properly resolve to crank timing when applicable
- Run signal(s) in virtual engine/JimStim to ensure functionality under realistic conditions
Signals are validated in the following order of importance:
- Throttle Position Sensor
- Injector Actuation
- Coil Pack Actuation (spark)
- Crank Position Sensor
- RAVE Actuation
- RAVE Position
- Manifold Absolute Pressure and Temperature Sensor (MAPTS)
- Lambda (O2)
- Exhaust Gas Temperatures
- Coolant Temperature
- Oil Pump
- Oil Temperature
- Magneto Power Input
Below are two images of the JimStim MegaSquirt device used for simulation. The image on the left is the actual device and the image on the right is a basic layout of the board. The JimStim is a micro controller often used in engine simulation because it is already wired with potentiometers and LEDs, as well as other functional buttons and knobs which correlate to the functions of an engine, such as RPM.
Virtual Simulation allows us to view what the program will do without the use of any hardware. We can manually input information into the system in order to test that it is functioning properly. This gives us a good starting point in determining whether or not it will work with the actual system hardware. The image below is just a few of our simulation monitors in Simulink which allows us to see and record the output information.
The two images below are snippets of a few sensor inputs in the program. The left image is of the crank signal and the photo on the right is of the throttle position.
- An in-depth understanding on how the ECU’s inputs and outputs function in relation to the operation of an engine.
- The ability to effectively and efficiently generate and modify code through different builds.
- The ability to rapidly test different code builds to determine the effectiveness and reliability of each build.
- The ability to diagnose sources of error in the code and rectify them
This is the final design layout and structure of our program in Simulink. For organization purposes, we used a waterfall method which means that in each box or section is another layer which goes into more specifics the deeper it goes.
Name: Hayden Hulse
Name: Alex Kiss
Name: Zac Avelar
Name: Colin Parke
AFR – Air-to-Fuel Ratio
CSC – Clean Snowmobile Challenge
ECU – Engine Control Unit
GDI – Gasoline Direct Injection
RAVE – Rotax Adjustable Variable Exhaust
UICSC – University of Idaho Clean Snowmobile Challenge