rusefi_documentation/MAF.md

75 lines
4.7 KiB
Markdown
Raw Permalink Normal View History

2022-01-25 17:01:06 -08:00
# MAF
2023-01-05 12:10:24 -08:00
## Current Status
2023-01-02 11:22:23 -08:00
The MAF based fueling of rusEFI is still undergoing development, the current status has the fueling functioning correctly but presents a few tuning challenges due to TunerStudio integration and the Spark Table still being reliant on the old engine load math.
This is an evolving situation at present and thus MAF fueling is still considered experimental.
2023-01-02 11:22:23 -08:00
**Please only use for development work at your own risk.**
2023-01-05 12:10:24 -08:00
## MAF fuel theory - The detail
2023-01-02 11:22:23 -08:00
The implementation of the MAF in rusEFI is intended to replicate the functionality of OEM systems and as such is more complex than some other systems.
The foundation of the MAF system is the Mass Air Flow sensor itself, this is a device using a hot wire, hot film or vane to directly measure the flow of air into the engine.
Obviously this sensor does not give out an airflow value, it gives us a voltage, current or PWM signal that represents the flow. rusEFI can interpret a voltage or current MAF at this time via a transfer function table.
2023-01-05 12:10:24 -08:00
[//]: # "todo: Insert the MAF transfer function screen shot"
2023-01-02 11:22:23 -08:00
The Transfer function table is used to convert the raw MAF sensor reading into a Kg/h (Kilogram Per Hour) airflow.
This Kg/h value is then processed into a required fuel quantity by the following calculations:
g/s = Kg/h * 1000 / 3600
2023-01-02 11:22:23 -08:00
n/s = rpm / 60
2023-01-02 11:22:23 -08:00
airPerRevolution = g/s / n/s
2023-01-02 11:22:23 -08:00
cylinder Airmass = airPerRevolution / half Cylinder number
2023-01-02 11:22:23 -08:00
In rusEFI we use a correction factor table to modify this measured air mass to allow correction of any errors in the measurement due to dynamic air flow effects.
To do this we need to have a "load" value that allows us to have a Load Vs Speed fuel table.
StandardAirCharge = engine displacement / number of cylinders * 1.2929
2023-01-02 11:22:23 -08:00
This produces the air mass for cylinder filling at 100% VE under standard SAE conditions.
Using this we can relate our cylinder air mass back to a standardised 100% cylinder filling and thus we have a "load" value to use when tuning.
airChargeLoad = 100 * cylinder Airmass / Standard AirCharge
The required fuel is now simply corrected by adjusting the measured air by the value in the VE table, this value is simply a %.
corrected Cylinder Airmass = cylinder Airmass * (VE map value / 100)
2023-01-02 11:22:23 -08:00
fuelMassGram = corrected Cylinder Airmass / desired AFR
pulse Width = fuelMass / injector flow (in g/s)
2023-01-02 11:22:23 -08:00
Using this method rusEFI is able to directly measure the air flow into an engine and calculate the required fuel with minimal tuning.
2023-01-05 12:10:24 -08:00
## MAF fuel tuning - The quick version
2023-01-02 11:22:23 -08:00
To tune rusEFI using the MAF is probably the quickest and easiest method provided you have a working MAF sensor and the correct information to input in the Transfer Function Table.
2023-01-05 11:57:46 -08:00
The first thing to do is input the voltage (or current) to Kg/h information into the Transfer Function Table in TunerStudio.
2020-04-23 13:37:57 -07:00
2023-01-05 11:57:46 -08:00
Secondly you will need to decide what Air/Fuel ratio you would like your engine to run at and input this into the AFR table in TunerStudio.
2023-01-02 11:22:23 -08:00
For a first start a value of 14 is perfectly acceptable for gasoline.
This table is the primary source of the desired fuel mixture, it will be this table that is tuned to decide the engines target AFR.
A future update will make this fueling table dynamic so that an input % of ethanol in the main fueling dialog will change the fuel density and thus the required fuel mass injected. The result of this will be that users can leave this table tuned as though it were for pure gasoline (14.7:1 stoiciometric) and the % ethanol input will make sure the fuelling stays at the same Lambda value.
This has the advantage of working well with aftermarket wideband controllers that generally work in AFR using pure gasoline as the standard.
2020-04-23 13:37:57 -07:00
2023-01-05 12:10:24 -08:00
[//]: # "todo: Add AFR table picture"
2020-04-23 13:42:19 -07:00
2020-04-23 13:37:57 -07:00
Before starting the engine for the first time it is wise to ensure the Fuel Table is filled with values of "100", a value of 100 means that the fuel calculation uses 100% of its measured air mass to decide on the fuel injection pulse.
Tuning this table will adjust for dynamic airflow effects that happen in the inlet of an engine and will allow small (or large but hopefully not) corrections to the fuel injection which may be required to have the engine meet it's desired air/fuel target.
This table should only be tuned if the engine is not meeting the desired air/fuel target under relatively steady state conditions (i.e. without any acceleration enrichment or overrun fuel cut).
2023-01-02 11:22:23 -08:00
If a different air/fuel ratio is desired at a specific load or RPM then the AFR Table is the correct table to adjust instead.
2023-01-05 12:10:24 -08:00
[//]: # "todo: Add VE table picture"
2020-04-23 13:42:19 -07:00
Loads of little updates and FSIO work (#68) * Fix for Home page and future features page added * Update Acceleration_Compensation.md * Update Fuel_Overview.md * More fuel info * More X-tau * Ongoing Tasks list Free for all list for people to update as they change track * Update Ongoing_Tasks * Hidden names on pages and multi-spark page * Update X-tau_Wall_Wetting.md * Update * Update AlphaN.md * Update Speed_Density.md * Fuel control overview improvement, added wide band page * Update Wide_Band_Sensors.md * Update Fuel_Overview.md * Update MAF.md * Update MAF.md * Update rusEFI_console_directory.png * Delete rusEFI_console_directory.png * Delete wall_wetting.md * Fuel Index + Formats Also old wall wetting page kill * Update Pages_Fuel.md * Update Pages_Fuel.md * Create Pages_Hardware.md * Update Pages_Hardware.md * Sensor and Actuators index * Start of Ignition Index * Create Fuel_Injectors.md * Moved file * Added PNP72 jumper info * More updates + Software pages * Update MREAdapter72.md * Create Roadmap_Fuel.md * Created Kit Instruction link * Dev_Hardware_Guidelines * Images and links update * Update Dev_Hardware_Guidelines.md * Update Dev_Hardware_Guidelines.md * Update .gitignore * Ignition FAQ and start of what we cannot do * found by **Serching the forum** update * Searching at top of side bar * Photo fixes * Create Vault_Of_Ignition_Parts.md * Update Pages_Ignition.md * Update FAQ_Ignition.md * D is for DISTRACTION * stuff * Added Pages_FAQ_and_HOWTO * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * Update Dev_Status.md * FSIO * Labeled A/C Fan to Low-side, Labeled IAC Feed as 12v, Labeled 3A/3B GNDs as Power grounds, Labeled VVT Feed as 12v, Labeled EGR boost sensor as AV/MAP, Labeled TPS * Added in VVT control row, Added in IDLE valve control row, ensured alphabetical sorting excellence * Updated MREAdapter72 (markdown) * Added in TPS 5v power. * Added pin for * Added in instructions for making use of aux low-side. * Updated Proteus (markdown) * Updated Proteus (markdown) * Updated Proteus (markdown) * stuff * online * stepper idle * Create Vault_BMW_Info.md * Updated Proteus (markdown) * docs * docs * more checks * Update FSIO.md * Update FSIO.md * Update FSIO.md * docs * Update FSIO.md * Correction to Fuel Overview. * updates * Created TS-Plugin (markdown) * STM32 working units update * Update Hardware_Proteus_Wiring_v03.md * updates * Update D_is_for_DISTRACTION.md Co-authored-by: ByteVenom <5294819+ByteVenom@users.noreply.github.com> Co-authored-by: Matthew Kennedy <matthewkennedy@outlook.com> Co-authored-by: rusefi <rusefillc@gmail.com> Co-authored-by: rusefi <rusefi@users.noreply.github.com>
2020-06-19 06:33:41 -07:00
Some useful MAF sensor maths in [this link](https://www.efunda.com/designstandards/sensors/hot_wires/hot_wires_theory.cfm)
2020-04-23 13:42:19 -07:00
2023-01-05 12:10:24 -08:00
[//]: # "todo: OrchardPerformance"