Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
I'll make sure to credit you on my ECU and if I ever post something in the workshop using parts of
your controller
Important is to set the number somewhere between -1 and 1 (excluding -1 and 1).
You can also test which stoichiometric works best for your engine with a throttle lever on this input
There should be no reason to change that number. If the AFR of a engine oscillates, then it is very most likely due to inconsistent pressure on the air intake. Once i found a suitable value (0.05) for the AFR Sensibility, i have never experienced a situation where i had to change that number. Not for my engines nor for any engine i helped with.
I used a property value for this number to make the development process easier for me as it is good practice to give values a name. If i ever have to touch the controller again, i will know what this number does.
I did play a lot with your ECU but there is something I am missing.
I created a plain MEDIUM 3 cylinder engine that output its power to a medium generator (for testing purpose). From the engine, I have a 3:2 ratio gearbox
With your ECU, with FULL THROTTLE
Naturally aspirated (just air filter on the air intake) -> Generator output: 826 watt
Supercharged (Large airpump on the air intake-> Generator output: 1190 watt
Engine blows up after 119 seconds (keep track to see how good it manage the temps.
Without your ECU, just by using the old THROTTLE x 2 (double the air amount of the fuel provided), I get 1212 watt and the engine blows up after 123 seconds.
So briefly, I do produce more power without the ECU. Fuel economy is similar.
There is surely a gain somewhere to play with the AFR at every tick. What is it?
stoichiometric is the ratio between fuel and oxygen (air). a positive stoichiometric means that there will be more fuel in the cylinders than air to burn it, this is good to run the engine cool. a negative stoichiometric means more air than fuel, which is good for fuel economy (in reality).
there is no reason to run anything below a stoichiometric of 0.2 in stormworks. Modular engines are most fuel efficient, run the coolest and are most powerfull (when supercharged) at a stoichiometric of 0.2. Natural aspirated engines are most powerfull at a stoichiometric of around 0.45. The stoichiometric has to be between -1 and 1 (excluding -1 and 1) for a modular engine to work.
All you need to do is input 0.2 into the stoichiometric for best efficiency (or 0.45 if you run your engine na and want power) and then input the throttle and don't forget to connect the composite signal from one of the cylinders.
If you run a na engine, then you can use 0.45 for most power, but the higher the air pressure on the air intake manifold, the closer you need to run the engine at 0.2 for most power. The perfect (stormworks) engine runs only on a stoichiometric of 0.2.
This doesn't translate well to real engines, i think the devs made compromises to not overload your computer with calculations and also their understanding of engines might not be as advanced as yours.
Also, how should this number adjust based on the throttle input? Being a mechanic I know you should push it closer to 12.2-ish if you're looking for heavy power at high-load. Diesel you can even dump it down as low as 9 if you wanna really dump power in exchange of "rolling coal".
Does your controller automatically adjust the stoichiometric input based on throttle, or does it constantly maintain whatever is input? If it's the latter would it maybe be smart to run a "14.6 - (Throttle x 2)" calculation prior to inputting into your controller? That way it'd be 14.6 at zero throttle and 12.6 at full....
Little help please.
First i formed a theory: The AFR for a specific stoichiometric is dependend on the engine temperature.
Then i gathered data, that would proof my theory. I controlled the air and fuel of a modular engine manually at different temperatures and for different stoichiometrics. I wrote the AFR for each temperature and stoichiometric combination down until i had enough data.
With this data i reconstructed a function to calculate the needed afr to achive a stoichiometric:
where x is the stoichiometric you want
and y comes from another function (to keep it human readable):
clamp( x*0.01, 0, 1 ) <- x is the engine temperature
the temperature is clamped because i noticed that the game does the same during the data gathering.
The rest is pretty easy, take the composite data from one of the cylinders, divide the air through the fuel volume, compare the result of the function from above to the actual afr of the engine and then use a pid or something similar to adjust the fuel intake throttle multiplicator until the afr is right.