Diesel engine fuel consumption
#11
Posted 23 February 2014 - 12:32 PM
I have some solution now, but it will be ready to commit by tomorrow. If max throttle at neutral is set, it leads to 10% of rated fuel flow. No big math, just an assumption. If somebody has some real world data, it would be very helpful and appreciated.
Matej
#12
Posted 23 February 2014 - 02:20 PM
#13
Posted 23 February 2014 - 08:56 PM
Robert
#14
Posted 25 February 2014 - 08:07 AM
Line 355: DieselConsumptionTab = new Interpolator(copy.DieselConsumptionTab);
Line 417: public Interpolator DieselConsumptionTab;
Line 465: case "engine(orts(diesel(dieselconsumptiontab": DieselConsumptionTab = new Interpolator(stf); initLevel++; break;
Line 507: case "dieselconsumptiontab": DieselConsumptionTab = new Interpolator(stf);initLevel++; break;
Line 624: if (DieselConsumptionTab != null)
Line 629: DieselFlowLps = DieselConsumptionTab[RealRPM] * MaxOutputPowerW / 3600.0f / 800.0f / 1000.0f;
Line 767: DieselConsumptionTab = new Interpolator(new float[] { loco.IdleRPM, loco.MaxRPM }, new float[] { loco.DieselUsedPerHourAtIdleL, loco.DieselUsedPerHourAtMaxPowerL });
I also come across several references to [RealRPM], again, with no clear definition of how this, whatever it is supposed to be, actually is, or how it is being calculated. Anybody care to enlighten me?.
#15
Posted 25 February 2014 - 11:10 PM
first of all, I'd like to say that ORTS team is full of volunteers working in their free time (what is really not appreciated by familly members). Many bigger things by me have been developed in few days with no time to make a documentation. And here I am - creating the documentation all the time here:
Following lines can be simply described as variables needed for the functionality:
Line 355: DieselConsumptionTab = new Interpolator(copy.DieselConsumptionTab); Line 417: public Interpolator DieselConsumptionTab; Line 465: case "engine(orts(diesel(dieselconsumptiontab": DieselConsumptionTab = new Interpolator(stf); initLevel++; break; Line 507: case "dieselconsumptiontab": DieselConsumptionTab = new Interpolator(stf);initLevel++; break;
The DieselConsumptionTab is supposed to be a lookup table, where RPM is the input and current diesel flow per hour is the output. This behavior follows the MSTS behavior - the fuel consumption is proportional to diesel engine RPM. Now I can see my mistake here, because the MaxOutputPowerW with the conversion has been used for another table (based on real world data of specific consumption), which I disabled, but didn't switch back to the MSTS-like calculation.
Line 624: if (DieselConsumptionTab != null) Line 629: DieselFlowLps = DieselConsumptionTab[RealRPM] * MaxOutputPowerW / 3600.0f / 800.0f / 1000.0f;
It should be:
DieselFlowLps = DieselConsumptionTab[RealRPM] / 3600.0f;
Finally, here is the list of RPMs used within diesel engine class:
- RealRPM - current RPM of the engine
- dRPM - a derivation of current RPM
- DemandedRPM - demand based on a lookup table and the throttle setting
- MaxRPM - maximal RPM given by ENG params
- IdleRPM - idle RPM given by ENG params
- StartingRPM - RPM, from which the engine starts to inject some fuel (applicable only if starting the engine). The value is set to 2/3 of IdleRPM
- StartingConfirmationRPM - RPM, from which the engine is considered as started. The value is set to 110% of IdleRPM. After the starting confirmation, the engine is able to give some power. If the throttle is zero, the RPM falls to IdleRPM.
Well, I'll figure something out, mainly with the consumption calculation. I'm travelling to Lithuania on Sunday for some measurements, so I'll try to get some real world data for this purpose.
Cheers,
Matej
#16
Posted 26 February 2014 - 05:18 AM
Imagine a big engine, running at full RPM with no alternator connected. The power delivered is very small.
Cheers.
RTP
#17
Posted 26 February 2014 - 06:15 AM
another great site: http://www.alkrug.vc...cts/fueluse.htm
#18
Posted 26 February 2014 - 09:15 AM
longiron, on 26 February 2014 - 06:15 AM, said:
This is the ghost speaking! Glad to see you here, Chris ;) I will definitely have a look at it.
#19
Posted 26 February 2014 - 09:24 AM
RTP, on 26 February 2014 - 05:18 AM, said:
Imagine a big engine, running at full RPM with no alternator connected. The power delivered is very small.
Cheers.
RTP
Consider some power losses, what is for sure RPM dependent. But just if the alternator is not connected.
If there is some power on wheels, the locomotive control system is responsible for loading the engine by controlling the generator excitation. Hence the diesel engine load is very close to 90 - 95%. If the specific fuel consumption would be constant, let's say about 200 gramms per kilowatt, the fuel consumption of 90% loaded engine would be proportional to the output power. Since the output power is a function of RPM, the absolut fuel consumption is also proportional to RPM. I know, we are simplifiing things, but the fuel consumption depends on many more things, like ambient air conditions, pressure, temperature, engine condition, control system, ....)
BR,
Matej
#20
Posted 26 February 2014 - 09:45 AM
The governor controls generator excitacion and fuel flow in order to maintain the engine RPM at the best. Say, 60-80% of the max.
Only at full power the engine runs at max RPM and torque.
But most of the times the engine does not run at full power.
Then, the fuel consumption is function of the delivered power, plus losses. ( Internal friction of the engine, cooling power, and so.)
Cheers.
RTP
#21
Posted 26 February 2014 - 10:38 AM
To enable this to occur the Governor controls the amount of power the altenator generates. The effect of all this is that for these locos (The F40 is an example) the total power the engine generates is always the same, when any thing such as cooling fans, air compressor, auxilary altenator cut vary in load, the governor reduces the main altenator load to keep the engine power constant.
Therefore for these locos the fuel consumption WILL be constant at each notch position from 1 to 8, the governor treats Notch 0 differently, the governor at this notch appear just to keep the engine revs constant.
The above info comes from a long study of the F40 mainentence manual and also the Woodward Governor companys operational description docs in order to try an get an acurate picture of how the control system works.
Lindsay
#22
Posted 26 February 2014 - 10:55 AM
#23
Posted 27 February 2014 - 06:42 AM
Thanks for fixing the consumption problem. Now, with gallons (900) converted to US gallons (992) I can get just over 5 hours running with the Deltic which is plenty for activities on the Mid East route. I have a feeling that Kuju used UK gallons for fuel level which ORTS is not using.