#define ML2PWM 4 // not calculated yet, may need a conversion table
#define DESIRED_IAT 85 // intake air temperature
#define JpML 2230 // steam: joules / mililiter
//IAT in degC
//MAF in g/s grams/second
int calculateOutput(float IAT, float MAF) {
// I will need roughly 1J of energy to heat 1g of air by 1 degC
// More precisely 1.005 at 0 deg C and 1.009 at 80 degC
//http://www.engineeringtoolbox.com/air-properties-d_156.html
// Steam at 100 deg C has 2,230 joules/ ml or gram
float dT = DESIRED_IAT - IAT; // in deg C
float ML = dt * MAF / JpML; //mililiters per sec
return ML2PWM * ML; // send to the injector as pwm
}
Well that turned out to be much simpler than i thought.
Just a sanity check:
outside was 20 deg c, IAT was 35 deg C
MAF was reading 5 g/s at idle, and 100g/s at a significant load.
dT would be 50
5*50/2300 = 250 / 2300 -> ~1/10 ml/s 360ml/h -> 0.3L/h
100*50/2300 = 5000/2300 -> ~2 ml/s 7200ml/h -> 7.2L/h
I really need to test/calibrate my injector and pump soon. And i have to visit the pneumatics store.
Last edited by teoman; 04-26-2017 at 08:21 PM..
|