As alot of modern ecus are doing alot of this fuel tuning for us now what we realy need is ignition timing vs RPM derivative analised this awesome software i would imagine will help me create some good comparative equations to optimize ignition timing thanks Andy great video..
Thanks for uploading all this info, is there any way we can create tables on this software to calculate the ve adjustments necessary? Like input your target afr and then create the actual afr table as you have shown - then add a formula to calculate the difference without using excel etc? Cheers! Charlie
Hi Andy.I'm just starting MS and was hoping you had a video dealing with 3d maps of fuel mixture and ignition timing.What should they look like? How to diagnose problems using a 3d map. Other info we could learn from them. thanks
I personally tune AE to get the best throttle response when shifting and downshifting. The transients filter is what filters out all data when the AE is active. Here is what my actual transients filter that I use looks like. [Engine]>1 or [Engine-1]>1 or [Engine-2]>1 or [Engine-3]>1 or [Engine-4]>1 or [Engine-5]>1 or [Engine-6]>1 or [Engine-7]>1 or [Engine-8]>1 or [Engine-9]>1 or [Engine-10]>1 or [Engine-11]>1 or [Engine-12]>1 or [Engine-13]>1 or [Engine-14]>1 or [Engine-15]>1 or [Engine-16]>1 or [Engine-17]>1 or [Engine-18]>1 or [Engine-19]>1 or [Engine-20]>1 In the Megasquirt world, having the engine code active (something other than 0) means AE, or DE or warmup or some other thing is happening on that record. With this formula, I throw out all data for 20 records after the Engine code is set to anything other than 1 or "Engine running" Note that I data log on my ECU at 200 hz. The default Transients filter looks like this. (abs([Field.RPM] - [RPM-4]) > ([Field.RPM] * 0.10) ) || (abs([Field.TP] - [TP-4]) > 5 ) || (abs([Field.MAP] - [MAP-4]) > ([Field.MAP] * 0.15) ) Where for example [RPM-4] is read RPM 4 records back. Hope this helps
Here is some of the info under Help and Math Parcer > deltaRPM=[RPM]-[RPM-1] interpreted as: deltaRPM = (Current RPM)-(RPM 1 record back) You can reference previous records by incuding the -x inside the []. As seen above [RPM] references the current RPM, where [RPM-1] now references the RPM 1 record previous. You can reference back further, i.e [RPM-2] will reference 2 records back, [RPM-3] is 3 back, and so on. All references are relative. Math is executed from left to right, operation hierarchy is not recognized. If you need to insure execution order parenthesis are honored. calcValu = [RPM]/([RPM]*1.2) the [RPM]*1.2 will be executed first. Advanced Math functions: Supported Advanced Math functions are:
Function
Definition
Usage
Smoothing
Smooths a field by averaging over the smoothingFactor number of records.
smoothBasic( field, smoothingFactor)
sine
Standard Sine of a value.
sin(val)
cosine
Standard Cosine of a value.
cos(val)
arcsine
Standard arcsine of a value.
asin(val)
arccosine
Standard arccosine of a value.
acos(val)
tangent
Standard Tangent of a value.
tan(val)
arc tangent
Standard Arc Tangent of a value.
atan(val)
square root
Standard Square Root, same as pow(val, 0.5) of a value.
sqrt(val)
absolute
Changes any negative values to the same magnitude in the positive direction.
abs(val)
log
Natural log of a value.
log(val)
log base 10
Base 10 log of a value of a value.
log10(val)
recipricol
The recipricol of a value, or 1/val
recip(val)
exponent
Exponent of a value.
pow(val, exponent)
round
Rounds the value of a value to the nearest integer value.
round(val)
floor
Returns the largest (closest to positive infinity) integer value that is greater than or equal to the argument.
floor(val)
ceiling
Returns the smallest (closest to negative infinity) integer value that is greater than or equal to the argument.
ceil(val)
exponent
Returns Euler's number e raised to the power of a double value.
exp(val)
isNaN
Checks the output of an expression to result in a invalid number
@@AndyWhittle_HowEFIworks Hi Andy, when applying the first formula to my log it filters out nearly all of my total records (original 59,510 - filtered 59,436). The second formula Filters down to 57026. How can i change the formula to suit my needs or is all my data from road logging that bad. The RPM change one seems to filter the least amount of data (4040 records) is 'abs([Field.RPM] - [RPM-4]) > ([Field.RPM] * 0.05)' . Can i rely on this data to apply your processes? Cheers for any help. Charlie
[AFR]/13>1.1? 1.1 : [AFR]/13
Thanks for sharing . I love the nerd level
As alot of modern ecus are doing alot of this fuel tuning for us now what we realy need is ignition timing vs RPM derivative analised this awesome software i would imagine will help me create some good comparative equations to optimize ignition timing thanks Andy great video..
Very good video Andy, thanks.
Thank you for sharing ! Much appreciated
Fantastic information Andy. Do you have a list of your most useful math channels?
Thanks for uploading all this info, is there any way we can create tables on this software to calculate the ve adjustments necessary? Like input your target afr and then create the actual afr table as you have shown - then add a formula to calculate the difference without using excel etc? Cheers! Charlie
Hi Andy.I'm just starting MS and was hoping you had a video dealing with 3d maps of fuel mixture and ignition timing.What should they look like? How to diagnose problems using a 3d map. Other info we could learn from them. thanks
you mention add more here and so on...is there a way to edit the ve table while in the histogram page
In the area where it’s lacking some fuel. How can you tell if it’s accelerate enrichment or VE table that’s need adjustment ?
I personally tune AE to get the best throttle response when shifting and downshifting. The transients filter is what filters out all data when the AE is active. Here is what my actual transients filter that I use looks like.
[Engine]>1 or [Engine-1]>1 or [Engine-2]>1 or [Engine-3]>1 or [Engine-4]>1 or [Engine-5]>1 or [Engine-6]>1 or [Engine-7]>1 or [Engine-8]>1 or [Engine-9]>1 or [Engine-10]>1 or [Engine-11]>1 or [Engine-12]>1 or [Engine-13]>1 or [Engine-14]>1 or [Engine-15]>1 or [Engine-16]>1 or [Engine-17]>1 or [Engine-18]>1 or [Engine-19]>1 or [Engine-20]>1
In the Megasquirt world, having the engine code active (something other than 0) means AE, or DE or warmup or some other thing is happening on that record. With this formula, I throw out all data for 20 records after the Engine code is set to anything other than 1 or "Engine running" Note that I data log on my ECU at 200 hz.
The default Transients filter looks like this.
(abs([Field.RPM] - [RPM-4]) > ([Field.RPM] * 0.10) ) || (abs([Field.TP] - [TP-4]) > 5 ) || (abs([Field.MAP] - [MAP-4]) > ([Field.MAP] * 0.15) )
Where for example [RPM-4] is read RPM 4 records back.
Hope this helps
Andy Whittle I guess that was more complicated than I though ;) how can I lean what all these codes mean?
Here is some of the info under Help and Math Parcer
>
deltaRPM=[RPM]-[RPM-1]
interpreted as:
deltaRPM = (Current
RPM)-(RPM 1 record back)
You can reference previous records by
incuding the -x inside the []. As seen above [RPM] references the
current RPM, where [RPM-1] now references the RPM 1 record
previous. You can reference back further, i.e [RPM-2] will
reference 2 records back, [RPM-3] is 3 back, and so on. All
references are relative.
Math is executed from left to right, operation hierarchy is not
recognized. If you need to
insure execution order parenthesis are
honored.
calcValu = [RPM]/([RPM]*1.2)
the [RPM]*1.2 will be
executed first.
Advanced Math functions:
Supported Advanced Math
functions are:
Function
Definition
Usage
Smoothing
Smooths a field by averaging over the smoothingFactor number of
records.
smoothBasic( field, smoothingFactor)
sine
Standard Sine of a value.
sin(val)
cosine
Standard Cosine of a value.
cos(val)
arcsine
Standard arcsine of a value.
asin(val)
arccosine
Standard arccosine of a value.
acos(val)
tangent
Standard Tangent of a value.
tan(val)
arc tangent
Standard Arc Tangent of a value.
atan(val)
square root
Standard Square Root, same as pow(val, 0.5) of a value.
sqrt(val)
absolute
Changes any negative values to the same magnitude in the positive
direction.
abs(val)
log
Natural log of a value.
log(val)
log base 10
Base 10 log of a value of a value.
log10(val)
recipricol
The recipricol of a value, or 1/val
recip(val)
exponent
Exponent of a value.
pow(val, exponent)
round
Rounds the value of a value to the nearest integer value.
round(val)
floor
Returns the largest (closest to positive infinity) integer value
that is greater than or equal to the argument.
floor(val)
ceiling
Returns the smallest (closest to negative infinity) integer value
that is greater than or equal to the argument.
ceil(val)
exponent
Returns Euler's number e raised to the power of a double value.
exp(val)
isNaN
Checks the output of an expression to result in a invalid number
isNaN(val)
smoothFiltered
Smooth a field using a matrix filter for less lag
smoothFiltered(val)
accelHp
Calculates HP based on Acceleration rate.
accelHp(
velocity (MPH),
deltaVelocity(MPH),
deltaTime(s),
weight(lb)
)
Aero Drag
Calculates the Aerodynamic Drag
aerodynamicDragHp(
velocity (m/s),
airDensity (kg/m^-3),
dragCoefficent,
frontalArea (m^2)
)
Rolling Drag
Calculates estimated rolling resistence
rollingDragHp(
speed (MPH),
tirePressure (psi),
weight (lbs)
)
@@AndyWhittle_HowEFIworks Hi Andy, when applying the first formula to my log it filters out nearly all of my total records (original 59,510 - filtered 59,436). The second formula Filters down to 57026. How can i change the formula to suit my needs or is all my data from road logging that bad. The RPM change one seems to filter the least amount of data (4040 records) is 'abs([Field.RPM] - [RPM-4]) > ([Field.RPM] * 0.05)' . Can i rely on this data to apply your processes? Cheers for any help. Charlie