Initial port
This commit is contained in:
633
Core/Src/fuel_map.c
Normal file
633
Core/Src/fuel_map.c
Normal file
@@ -0,0 +1,633 @@
|
||||
/*
|
||||
* fuel_map.c
|
||||
*
|
||||
* Created on: Oct 18, 2024
|
||||
* Author: herli
|
||||
*/
|
||||
|
||||
#include <id.h>
|
||||
#include "fuel_map.h"
|
||||
|
||||
struct fuelMapIndexes indexes;
|
||||
|
||||
float* phi_pointer;
|
||||
|
||||
|
||||
void init_FuelMap(float* PHIAD) {
|
||||
//fuelmap = fuelmap_25;
|
||||
//fuelmap2 = fuelmap_74;
|
||||
indexes = fuelMapI;
|
||||
phi_pointer = PHIAD;
|
||||
}
|
||||
/*float LinearInterp_noT(float var, float Indexarray[], int N, int OBIndex, int isRPM){
|
||||
float Z = 0;
|
||||
for(int i = 0; i < N; i++){
|
||||
if(var >= Indexarray[i] && var < Indexarray[i+1]){
|
||||
if(isRPM){
|
||||
Z = fuelmap.ME_RPM_Beta_array[OBIndex][i] + ((fuelmap.ME_RPM_Beta_array[OBIndex][i+1] - fuelmap.ME_RPM_Beta_array[OBIndex][i]) /
|
||||
(indexes.RPM_Index_array[i+1] - indexes.RPM_Index_array[i])) * (var - indexes.RPM_Index_array[i]);
|
||||
}else{
|
||||
Z = fuelmap.ME_RPM_Beta_array[i][OBIndex] + ((fuelmap.ME_RPM_Beta_array[i+1][OBIndex] - fuelmap.ME_RPM_Beta_array[i][OBIndex]) /
|
||||
(indexes.ME_Index_array[i+1] - indexes.ME_Index_array[i])) * (var - indexes.ME_Index_array[i]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return Z;
|
||||
}*/
|
||||
/*float LinearInterp(float var, float Indexarray[], int N, int OBIndex, int isRPM){ //para la transpuesta
|
||||
float Z = 0;
|
||||
for(int i = 0; i < N; i++){
|
||||
if(var >= Indexarray[i] && var < Indexarray[i+1]){
|
||||
if(isRPM){
|
||||
Z = fuelmap.ME_RPM_Beta_array[i][OBIndex] + ((fuelmap.ME_RPM_Beta_array[i+1][OBIndex] - fuelmap.ME_RPM_Beta_array[i][OBIndex]) /
|
||||
(indexes.RPM_Index_array[i+1] - indexes.RPM_Index_array[i])) * (var - indexes.RPM_Index_array[i]);
|
||||
}else{
|
||||
Z = fuelmap.ME_RPM_Beta_array[OBIndex][i] + ((fuelmap.ME_RPM_Beta_array[OBIndex][i+1] - fuelmap.ME_RPM_Beta_array[OBIndex][i]) /
|
||||
(indexes.ME_Index_array[i+1] - indexes.ME_Index_array[i])) * (var - indexes.ME_Index_array[i]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return Z;
|
||||
}*/
|
||||
|
||||
static inline void SelectTempBracket(const struct fuelMapIndexes* idx, float Temp, int* t_lo, int* t_hi, float* T1, float* T2, float* w)
|
||||
{
|
||||
// clamp Temp into axis
|
||||
if (Temp <= idx->T_Index_array[0]) {
|
||||
*t_lo = *t_hi = 0;
|
||||
} else if (Temp >= idx->T_Index_array[FM_N_T - 1]) {
|
||||
*t_lo = *t_hi = FM_N_T - 1;
|
||||
} else {
|
||||
int i = 0;
|
||||
// find i such that T[i] <= Temp < T[i+1]
|
||||
while (i + 1 < FM_N_T && Temp >= idx->T_Index_array[i + 1]) i++;
|
||||
*t_lo = i;
|
||||
*t_hi = i + 1;
|
||||
}
|
||||
|
||||
*T1 = idx->T_Index_array[*t_lo];
|
||||
*T2 = idx->T_Index_array[*t_hi];
|
||||
float denom = (*T2 - *T1);
|
||||
*w = (denom != 0.0f) ? (Temp - *T1) / denom : 0.0f; // blend weight in [0,1]
|
||||
}
|
||||
float weirdasscorrection;
|
||||
float GetAlpha(float RPM, float ME, float Tein, float Temp){
|
||||
int RPMBounds = -1; // (-1)-Central Point, 0-Outside Minimum, 1-Outside Maximum
|
||||
int MEBounds = -1;
|
||||
|
||||
int I_RPM = 0;
|
||||
int I_ME = 0;
|
||||
|
||||
float Z = 0;
|
||||
if(ME < 0.031){//0.031
|
||||
*phi_pointer = 0.0;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
if(RPM >= indexes.RPM_Index_array[FM_N_RPM-1]){ //MAX RPM
|
||||
RPMBounds = 1;
|
||||
I_RPM = FM_N_RPM-2;
|
||||
//RPM = indexes.RPM_Index_array[FM_N_RPM-1];
|
||||
}
|
||||
if(ME >= indexes.ME_Index_array[FM_N_ME-1]){ //MAX ME
|
||||
MEBounds = 1;
|
||||
I_ME = FM_N_ME-2;
|
||||
//ME = indexes.ME_Index_array[FM_N_ME-1];
|
||||
}
|
||||
if(RPM <= indexes.RPM_Index_array[0]){
|
||||
RPMBounds = 0;
|
||||
I_RPM = 0;
|
||||
//RPM = indexes.RPM_Index_array[0];
|
||||
}
|
||||
if(ME <= indexes.ME_Index_array[0]){
|
||||
MEBounds = 0;
|
||||
I_ME = 0;
|
||||
//ME = indexes.ME_Index_array[0];
|
||||
}
|
||||
if(RPMBounds == -1){
|
||||
for(int i = 0; i < FM_N_RPM-1; i++){
|
||||
if(RPM >= indexes.RPM_Index_array[i] && RPM < indexes.RPM_Index_array[i+1]){
|
||||
I_RPM = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(MEBounds == -1){
|
||||
for(int i = 0; i < FM_N_ME-1; i++){
|
||||
if(ME >= indexes.ME_Index_array[i] && ME < indexes.ME_Index_array[i+1]){
|
||||
I_ME = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// --- now: pick them from the array based on Temp
|
||||
int t_lo, t_hi;
|
||||
float FM_T_1, FM_T_2, wT;
|
||||
SelectTempBracket(&fuelMapI, Temp, &t_lo, &t_hi, &FM_T_1, &FM_T_2, &wT);
|
||||
|
||||
const struct AlphaStruct* fuelmap_low = g_FuelMaps[t_lo];
|
||||
const struct AlphaStruct* fuelmap_high = g_FuelMaps[t_hi];
|
||||
|
||||
// ---- your existing bilinear on the LOW temp map ----
|
||||
float X1 = indexes.RPM_Index_array[I_RPM];
|
||||
float X2 = indexes.RPM_Index_array[I_RPM+1];
|
||||
float Y1 = indexes.ME_Index_array[I_ME];
|
||||
float Y2 = indexes.ME_Index_array[I_ME + 1];
|
||||
|
||||
float Z1 = fuelmap_low->ME_RPM_Beta_array[I_RPM ][I_ME ];
|
||||
float Z2 = fuelmap_low->ME_RPM_Beta_array[I_RPM + 1][I_ME ];
|
||||
float Z3 = fuelmap_low->ME_RPM_Beta_array[I_RPM ][I_ME + 1];
|
||||
float Z4 = fuelmap_low->ME_RPM_Beta_array[I_RPM + 1][I_ME + 1];
|
||||
|
||||
float Z_low = (1.0f / ((X2 - X1) * (Y2 - Y1))) *
|
||||
( Z1 * (X2 - RPM) * (Y2 - ME)
|
||||
+ Z2 * (RPM - X1) * (Y2 - ME)
|
||||
+ Z3 * (X2 - RPM) * (ME - Y1)
|
||||
+ Z4 * (RPM - X1) * (ME - Y1) );
|
||||
|
||||
// ---- the same bilinear on the HIGH temp map ----
|
||||
Z1 = fuelmap_high->ME_RPM_Beta_array[I_RPM ][I_ME ];
|
||||
Z2 = fuelmap_high->ME_RPM_Beta_array[I_RPM + 1][I_ME ];
|
||||
Z3 = fuelmap_high->ME_RPM_Beta_array[I_RPM ][I_ME + 1];
|
||||
Z4 = fuelmap_high->ME_RPM_Beta_array[I_RPM + 1][I_ME + 1];
|
||||
|
||||
float Z_high = (1.0f / ((X2 - X1) * (Y2 - Y1))) *
|
||||
( Z1 * (X2 - RPM) * (Y2 - ME)
|
||||
+ Z2 * (RPM - X1) * (Y2 - ME)
|
||||
+ Z3 * (X2 - RPM) * (ME - Y1)
|
||||
+ Z4 * (RPM - X1) * (ME - Y1) );
|
||||
|
||||
// ---- final: identical blending idea you had before, but generic ----
|
||||
Z = (t_lo == t_hi) ? Z_low : (Z_low + wT * (Z_high - Z_low));
|
||||
|
||||
/*if(MEBounds != -1 && RPMBounds != -1){ //if Out of Two Bounds --> Get the Corner value
|
||||
I_RPM = RPMBounds * (FM_N_RPM - 1); // 0 Minimum, 1*Max Value
|
||||
I_ME = MEBounds * (FM_N_ME -1);
|
||||
//Z = fuelmap.ME_RPM_Beta_array[I_RPM][I_ME]; //la transpuesta
|
||||
}else if(MEBounds != -1 || RPMBounds != -1){
|
||||
if(RPMBounds == -1){ //If Out of Bounds in ME
|
||||
Z = LinearInterp(RPM, indexes.RPM_Index_array, FM_N_RPM, MEBounds * (FM_N_ME -1), 1);
|
||||
}else{
|
||||
Z = LinearInterp(ME, indexes.ME_Index_array, FM_N_ME, RPMBounds * (FM_N_RPM - 1), 0);
|
||||
}
|
||||
}else{ //CENTER VALUES
|
||||
for(int i = 0; i < FM_N_RPM; i++){
|
||||
if(RPM >= indexes.RPM_Index_array[i] && RPM < indexes.RPM_Index_array[i+1]){
|
||||
I_RPM = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for(int i = 0; i < FM_N_ME; i++){
|
||||
if(ME >= indexes.ME_Index_array[i] && ME < indexes.ME_Index_array[i+1]){
|
||||
I_ME = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
float X1 = indexes.RPM_Index_array[I_RPM];
|
||||
float X2 = indexes.RPM_Index_array[I_RPM+1];
|
||||
float Y1 = indexes.ME_Index_array[I_ME];
|
||||
float Y2 = indexes.ME_Index_array[I_ME+1];
|
||||
|
||||
float Z1 = fuelmap.ME_RPM_Beta_array[I_RPM][I_ME];
|
||||
float Z2 = fuelmap.ME_RPM_Beta_array[I_RPM+1][I_ME];
|
||||
float Z3 = fuelmap.ME_RPM_Beta_array[I_RPM][I_ME+1];
|
||||
float Z4 = fuelmap.ME_RPM_Beta_array[I_RPM+1][I_ME+1];
|
||||
Z = (1.0 / ((X2 - X1) * (Y2 - Y1))) * ( Z1 * (X2 - RPM) * (Y2 - ME) + Z2 * (RPM - X1) * (Y2 - ME) + Z3 * (X2 - RPM) * (ME - Y1) + Z4 * (RPM - X1) * (ME - Y1) );
|
||||
|
||||
Z1 = fuelmap2.ME_RPM_Beta_array[I_RPM][I_ME];
|
||||
Z2 = fuelmap2.ME_RPM_Beta_array[I_RPM+1][I_ME];
|
||||
Z3 = fuelmap2.ME_RPM_Beta_array[I_RPM][I_ME+1];
|
||||
Z4 = fuelmap2.ME_RPM_Beta_array[I_RPM+1][I_ME+1];
|
||||
Z = Z + ((Temp - FM_T_1) / (FM_T_2 - FM_T_1)) * ((1.0 / ((X2 - X1) * (Y2 - Y1))) * ( Z1 * (X2 - RPM) * (Y2 - ME) + Z2 * (RPM - X1) * (Y2 - ME) + Z3 * (X2 - RPM) * (ME - Y1) + Z4 * (RPM - X1) * (ME - Y1)) - Z);
|
||||
}*/
|
||||
//Z -= RPM / 256 + 1.171875; //Calibrated PHIAD
|
||||
//Z += correctedTein*RPM*USTODEG; //PHIAD + Tein correction
|
||||
weirdasscorrection = RPM > 300 && RPM < 1838 ? 0.13*cos(0.0041*RPM+3.1415*1.1) : 0;
|
||||
Z -= weirdasscorrection;
|
||||
|
||||
Z = Z < 0 ? 0 : Z;
|
||||
|
||||
*phi_pointer = Z;
|
||||
return Z + (Tein - TEIN_NOMINAL)*RPM*USTODEG; //en el 504012 el ref era en 1500, en la vp30 004005 es 1000;
|
||||
}
|
||||
|
||||
float FM_GET_PHIAD(float RPM, float ME, float Temp){
|
||||
int RPMBounds = -1; // (-1)-Central Point, 0-Outside Minimum, 1-Outside Maximum
|
||||
int MEBounds = -1;
|
||||
|
||||
int I_RPM = 0;
|
||||
int I_ME = 0;
|
||||
|
||||
float Z = 0;
|
||||
if(ME < 0.031){//0.031
|
||||
*phi_pointer = 0.0;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
if(RPM >= indexes.RPM_Index_array[FM_N_RPM-1]){ //MAX RPM
|
||||
RPMBounds = 1;
|
||||
I_RPM = FM_N_RPM-2;
|
||||
//RPM = indexes.RPM_Index_array[FM_N_RPM-1];
|
||||
}
|
||||
if(ME >= indexes.ME_Index_array[FM_N_ME-1]){ //MAX ME
|
||||
MEBounds = 1;
|
||||
I_ME = FM_N_ME-2;
|
||||
//ME = indexes.ME_Index_array[FM_N_ME-1];
|
||||
}
|
||||
if(RPM <= indexes.RPM_Index_array[0]){
|
||||
RPMBounds = 0;
|
||||
I_RPM = 0;
|
||||
//RPM = indexes.RPM_Index_array[0];
|
||||
}
|
||||
if(ME <= indexes.ME_Index_array[0]){
|
||||
MEBounds = 0;
|
||||
I_ME = 0;
|
||||
//ME = indexes.ME_Index_array[0];
|
||||
}
|
||||
if(RPMBounds == -1){
|
||||
for(int i = 0; i < FM_N_RPM-1; i++){
|
||||
if(RPM >= indexes.RPM_Index_array[i] && RPM < indexes.RPM_Index_array[i+1]){
|
||||
I_RPM = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(MEBounds == -1){
|
||||
for(int i = 0; i < FM_N_ME-1; i++){
|
||||
if(ME >= indexes.ME_Index_array[i] && ME < indexes.ME_Index_array[i+1]){
|
||||
I_ME = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// --- now: pick them from the array based on Temp
|
||||
int t_lo, t_hi;
|
||||
float FM_T_1, FM_T_2, wT;
|
||||
SelectTempBracket(&fuelMapI, Temp, &t_lo, &t_hi, &FM_T_1, &FM_T_2, &wT);
|
||||
|
||||
const struct AlphaStruct* fuelmap_low = g_FuelMaps[t_lo];
|
||||
const struct AlphaStruct* fuelmap_high = g_FuelMaps[t_hi];
|
||||
|
||||
// ---- your existing bilinear on the LOW temp map ----
|
||||
float X1 = indexes.RPM_Index_array[I_RPM];
|
||||
float X2 = indexes.RPM_Index_array[I_RPM+1];
|
||||
float Y1 = indexes.ME_Index_array[I_ME];
|
||||
float Y2 = indexes.ME_Index_array[I_ME + 1];
|
||||
|
||||
float Z1 = fuelmap_low->ME_RPM_Beta_array[I_RPM ][I_ME ];
|
||||
float Z2 = fuelmap_low->ME_RPM_Beta_array[I_RPM + 1][I_ME ];
|
||||
float Z3 = fuelmap_low->ME_RPM_Beta_array[I_RPM ][I_ME + 1];
|
||||
float Z4 = fuelmap_low->ME_RPM_Beta_array[I_RPM + 1][I_ME + 1];
|
||||
|
||||
float Z_low = (1.0f / ((X2 - X1) * (Y2 - Y1))) *
|
||||
( Z1 * (X2 - RPM) * (Y2 - ME)
|
||||
+ Z2 * (RPM - X1) * (Y2 - ME)
|
||||
+ Z3 * (X2 - RPM) * (ME - Y1)
|
||||
+ Z4 * (RPM - X1) * (ME - Y1) );
|
||||
|
||||
// ---- the same bilinear on the HIGH temp map ----
|
||||
Z1 = fuelmap_high->ME_RPM_Beta_array[I_RPM ][I_ME ];
|
||||
Z2 = fuelmap_high->ME_RPM_Beta_array[I_RPM + 1][I_ME ];
|
||||
Z3 = fuelmap_high->ME_RPM_Beta_array[I_RPM ][I_ME + 1];
|
||||
Z4 = fuelmap_high->ME_RPM_Beta_array[I_RPM + 1][I_ME + 1];
|
||||
|
||||
float Z_high = (1.0f / ((X2 - X1) * (Y2 - Y1))) *
|
||||
( Z1 * (X2 - RPM) * (Y2 - ME)
|
||||
+ Z2 * (RPM - X1) * (Y2 - ME)
|
||||
+ Z3 * (X2 - RPM) * (ME - Y1)
|
||||
+ Z4 * (RPM - X1) * (ME - Y1) );
|
||||
|
||||
// ---- final: identical blending idea you had before, but generic ----
|
||||
Z = (t_lo == t_hi) ? Z_low : (Z_low + wT * (Z_high - Z_low));
|
||||
|
||||
weirdasscorrection = RPM > 300 && RPM < 1838 ? 0.13*cos(0.0041*RPM+3.1415*1.1) : 0;
|
||||
Z -= weirdasscorrection;
|
||||
|
||||
Z = Z < -12 ? 0 : Z;
|
||||
*phi_pointer = Z;
|
||||
return Z;
|
||||
}
|
||||
float GetBeta(float inRPM, float Tein){
|
||||
//float extraTein = Tein > 800 ? Tein - 800 : Tein ;
|
||||
return PHI1 - Tein*inRPM*USTODEG;
|
||||
}
|
||||
|
||||
|
||||
#define BOO_MIN_RPM_1 600
|
||||
#define BOO_MAX_RPM_1 2000
|
||||
#define BOO_MAX_BOOST_1 0.6
|
||||
#define BOO_MIN_ME_1 16
|
||||
#define BOO_MAX_ME_1 30
|
||||
|
||||
float bp_1 = -4*BOO_MAX_BOOST_1/((BOO_MAX_RPM_1-BOO_MIN_RPM_1)*(BOO_MAX_RPM_1-BOO_MIN_RPM_1));
|
||||
|
||||
|
||||
#define BOO_MIN_RPM_2 500
|
||||
#define BOO_MAX_RPM_2 2000
|
||||
#define BOO_MAX_BOOST_2 0.8
|
||||
#define BOO_MIN_ME_2 10
|
||||
#define BOO_MAX_ME_2 18
|
||||
|
||||
float bp_2 = -4*BOO_MAX_BOOST_2/((BOO_MAX_RPM_2-BOO_MIN_RPM_2)*(BOO_MAX_RPM_2-BOO_MIN_RPM_2));
|
||||
|
||||
float BoostMultiplier(uint8_t mode, float RPM, float ME){
|
||||
// https://www.desmos.com/calculator/euezpayzxb
|
||||
float m = 1.0;
|
||||
switch (mode) {
|
||||
case 0:
|
||||
m = 1.0;
|
||||
break;
|
||||
case 1: //boost
|
||||
float a1 = RPM-BOO_MIN_RPM_1;
|
||||
float b1 = RPM-BOO_MAX_RPM_1;
|
||||
if(a1 > 0 && b1 < 0 && ME > BOO_MIN_ME_1){
|
||||
float d = (ME-BOO_MIN_ME_1)/(BOO_MAX_ME_1-BOO_MIN_ME_1);
|
||||
d = d>1 ? 1 : d;
|
||||
m = 1 + d*bp_1*a1*b1;
|
||||
}else{
|
||||
m = 1;
|
||||
}
|
||||
break;
|
||||
case 2: //boost 2
|
||||
float a2 = RPM-BOO_MIN_RPM_2;
|
||||
float b2 = RPM-BOO_MAX_RPM_2;
|
||||
if(a2 > 0 && b2 < 0 && ME > BOO_MIN_ME_2){
|
||||
float d = (ME-BOO_MIN_ME_2)/(BOO_MAX_ME_2-BOO_MIN_ME_2);
|
||||
d = d>1 ? 1 : d;
|
||||
m = 1 + d*bp_2*a2*b2;
|
||||
}else{
|
||||
m = 1;
|
||||
}
|
||||
break;
|
||||
case 3: //itv
|
||||
if(RPM > 600)
|
||||
m = 1 - 0.25*(RPM-600)/(2600-600);
|
||||
else{
|
||||
m = 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
m = 1.0;
|
||||
break;
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
#define _004006
|
||||
//#define _004004
|
||||
//#define _004002
|
||||
|
||||
#if defined(_004006)
|
||||
struct AlphaStruct fuelmap_m12 = { //probar este mapa
|
||||
{
|
||||
{ 6.094, 8.250, 8.344, 8.355, 8.414, 8.859, 10.383, 10.781, 11.004, 11.227, 12.598, 13.699}, //RPM = 99
|
||||
{ 5.555, 7.746, 7.828, 7.934, 8.250, 8.930, 10.887, 11.168, 11.508, 11.859, 13.207, 14.273}, //RPM = 199
|
||||
{ 4.441, 6.703, 6.879, 7.125, 7.828, 9.000, 11.063, 11.648, 12.293, 12.938, 14.531, 15.820}, //RPM = 424
|
||||
{ 3.984, 6.281, 6.504, 6.773, 7.535, 8.883, 11.297, 11.930, 12.539, 13.148, 14.859, 16.230}, //RPM = 499
|
||||
{ 2.824, 5.449, 5.883, 6.129, 7.008, 8.051, 11.801, 12.750, 13.688, 14.602, 17.402, 19.652}, //RPM = 896
|
||||
{ 2.543, 5.320, 5.695, 5.977, 6.750, 7.945, 11.930, 12.984, 13.980, 14.988, 18.000, 20.426}, //RPM = 999
|
||||
{ 0.609, 3.609, 4.395, 4.770, 5.871, 6.832, 11.859, 13.148, 14.473, 15.773, 19.711, 22.852}, //RPM = 1399
|
||||
{ 0.340, 3.469, 4.301, 4.652, 5.660, 6.738, 11.977, 13.301, 14.707, 16.125, 20.379, 23.777}, //RPM = 1499
|
||||
{ -1.148, 2.414, 3.410, 3.703, 4.488, 5.836, 11.918, 13.324, 15.492, 17.566, 23.496, 24.598}, //RPM = 2002
|
||||
{ -1.898, 1.840, 2.730, 3.047, 3.961, 5.227, 11.543, 12.938, 15.504, 18.047, 24.598, 24.598}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_10 = { //probar este mapa
|
||||
{
|
||||
{ 6.211, 8.391, 8.484, 8.496, 8.555, 9.012, 10.535, 10.957, 11.180, 11.426, 12.797, 13.898}, //RPM = 99
|
||||
{ 5.648, 7.875, 7.957, 8.063, 8.379, 9.105, 11.168, 11.496, 11.883, 12.258, 13.605, 14.684}, //RPM = 199
|
||||
{ 4.559, 6.867, 7.031, 7.254, 7.992, 9.164, 11.332, 11.906, 12.563, 13.207, 14.789, 16.090}, //RPM = 425
|
||||
{ 4.102, 6.410, 6.621, 6.902, 7.711, 9.047, 11.496, 12.164, 12.820, 13.465, 15.164, 16.512}, //RPM = 499
|
||||
{ 2.871, 5.566, 5.930, 6.234, 7.090, 8.191, 12.094, 13.113, 14.051, 14.988, 17.777, 19.992}, //RPM = 894
|
||||
{ 2.590, 5.391, 5.777, 6.059, 6.867, 8.004, 12.246, 13.348, 14.379, 15.398, 18.422, 20.848}, //RPM = 999
|
||||
{ 0.785, 3.832, 4.523, 4.887, 5.930, 6.996, 12.258, 13.594, 14.918, 16.230, 20.168, 23.320}, //RPM = 1399
|
||||
{ 0.480, 3.645, 4.406, 4.758, 5.730, 6.879, 12.363, 13.758, 15.176, 16.605, 20.848, 24.246}, //RPM = 1499
|
||||
{ -1.148, 2.484, 3.434, 3.750, 4.605, 5.965, 12.492, 14.063, 16.113, 18.188, 24.059, 24.598}, //RPM = 2000
|
||||
{ -1.910, 1.828, 2.730, 3.082, 4.078, 5.402, 12.270, 13.898, 16.313, 18.738, 24.598, 24.598}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_25 = { //probar este mapa
|
||||
{
|
||||
{ 6.316, 8.531, 8.625, 8.637, 8.695, 9.152, 10.688, 11.109, 11.367, 11.625, 12.996, 14.098}, //RPM = 99
|
||||
{ 5.742, 7.992, 8.086, 8.191, 8.508, 9.270, 11.449, 11.824, 12.246, 12.668, 14.004, 15.082}, //RPM = 199
|
||||
{ 4.652, 7.008, 7.184, 7.430, 8.145, 9.305, 11.590, 12.164, 12.820, 13.430, 15.059, 16.348}, //RPM = 424
|
||||
{ 4.195, 6.539, 6.773, 7.055, 7.852, 9.188, 11.730, 12.410, 13.090, 13.723, 15.434, 16.781}, //RPM = 498
|
||||
{ 2.906, 5.602, 6.012, 6.316, 7.160, 8.285, 12.398, 13.395, 14.402, 15.328, 18.188, 20.379}, //RPM = 894
|
||||
{ 2.648, 5.484, 5.848, 6.141, 6.926, 8.063, 12.574, 13.711, 14.766, 15.820, 18.844, 21.270}, //RPM = 999
|
||||
{ 0.949, 4.066, 4.664, 5.004, 5.988, 7.148, 12.656, 14.039, 15.352, 16.699, 20.637, 23.777}, //RPM = 1399
|
||||
{ 0.609, 3.820, 4.523, 4.852, 5.801, 7.008, 12.762, 14.215, 15.633, 17.074, 21.316, 24.598}, //RPM = 1499
|
||||
{ -1.160, 2.520, 3.445, 3.797, 4.746, 6.082, 12.984, 14.777, 16.793, 18.785, 24.598, 24.598}, //RPM = 1999
|
||||
{ -1.898, 1.840, 2.719, 3.117, 4.195, 5.613, 12.973, 14.848, 17.133, 19.430, 24.598, 24.598}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_60 = { //probar este mapa
|
||||
{
|
||||
{ 6.445, 8.719, 8.813, 8.824, 8.883, 9.328, 10.875, 11.309, 11.590, 11.871, 13.242, 14.344}, //RPM = 99
|
||||
{ 5.859, 8.156, 8.250, 8.344, 8.660, 9.457, 11.789, 12.223, 12.680, 13.148, 14.484, 15.563}, //RPM = 199
|
||||
{ 4.793, 7.184, 7.371, 7.582, 8.309, 9.480, 11.848, 12.504, 13.125, 13.746, 15.375, 16.641}, //RPM = 425
|
||||
{ 4.313, 6.691, 6.902, 7.219, 8.074, 9.352, 11.977, 12.715, 13.395, 14.121, 15.797, 17.180}, //RPM = 499
|
||||
{ 3.000, 5.719, 6.082, 6.387, 7.242, 8.344, 12.727, 13.758, 14.824, 15.785, 18.621, 20.824}, //RPM = 895
|
||||
{ 2.719, 5.555, 5.941, 6.234, 7.055, 8.133, 12.926, 14.109, 15.199, 16.277, 19.301, 21.727}, //RPM = 999
|
||||
{ 1.102, 4.313, 4.805, 5.121, 6.047, 7.313, 13.078, 14.508, 15.855, 17.191, 21.129, 24.270}, //RPM = 1399
|
||||
{ 0.750, 4.020, 4.664, 4.969, 5.883, 7.160, 13.172, 14.695, 16.125, 17.578, 21.820, 24.598}, //RPM = 1499
|
||||
{ -1.125, 2.508, 3.480, 3.820, 4.840, 6.234, 13.605, 15.527, 17.461, 19.430, 24.598, 24.598}, //RPM = 1999
|
||||
{ -1.922, 1.852, 2.742, 3.141, 4.324, 5.859, 13.734, 15.844, 17.988, 20.145, 24.598, 24.598}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_80 = { //probar este mapa
|
||||
{
|
||||
{ 6.633, 8.965, 9.059, 9.059, 9.117, 9.574, 11.145, 11.590, 11.895, 12.199, 13.582, 14.672}, //RPM = 99
|
||||
{ 6.023, 8.367, 8.461, 8.566, 8.883, 9.738, 12.258, 12.773, 13.289, 13.816, 15.164, 16.230}, //RPM = 199
|
||||
{ 4.957, 7.430, 7.605, 7.840, 8.555, 9.715, 12.281, 12.926, 13.570, 14.180, 15.785, 17.074}, //RPM = 425
|
||||
{ 4.477, 6.902, 7.125, 7.441, 8.355, 9.598, 12.375, 13.137, 13.840, 14.555, 16.289, 17.672}, //RPM = 499
|
||||
{ 3.047, 5.813, 6.164, 6.504, 7.359, 8.496, 13.207, 14.320, 15.375, 16.406, 19.254, 21.469}, //RPM = 895
|
||||
{ 2.801, 5.672, 6.059, 6.363, 7.207, 8.215, 13.441, 14.684, 15.820, 16.945, 19.969, 22.395}, //RPM = 999
|
||||
{ 1.406, 4.676, 5.016, 5.309, 6.141, 7.559, 13.699, 15.211, 16.570, 17.930, 21.855, 24.598}, //RPM = 1399
|
||||
{ 0.961, 4.301, 4.816, 5.121, 5.953, 7.371, 13.793, 15.422, 16.863, 18.328, 22.570, 24.598}, //RPM = 1499
|
||||
{ -1.102, 2.496, 3.516, 3.914, 5.027, 6.480, 14.461, 16.652, 18.527, 20.320, 24.598, 24.598}, //RPM = 1998
|
||||
{ -1.922, 1.852, 2.742, 3.188, 4.500, 6.105, 14.859, 17.344, 19.242, 21.199, 24.598, 24.598}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
|
||||
struct fuelMapIndexes fuelMapI = { //probar este mapa
|
||||
{ 100, 200, 425, 500, 895, 1000, 1400, 1500, 2000, 2200}, //N_RPM = 17
|
||||
{ 0.375, 0.500, 1.625, 2.500, 5.000, 10.000, 30.000, 35.000, 40.000, 45.000, 60.000, 72.000},
|
||||
{ -10, 10, 30.5, 50, 80}
|
||||
};
|
||||
#elif defined(_004004)
|
||||
struct AlphaStruct fuelmap_m12 = { //probar este mapa
|
||||
{
|
||||
{ 5.027, 6.902, 7.020, 7.113, 7.383, 8.074, 10.641, 11.508, 11.684, 11.871, 12.879, 13.688}, //RPM = 99
|
||||
{ 5.309, 7.488, 7.629, 7.734, 8.051, 8.766, 11.309, 12.117, 12.258, 12.410, 13.371, 14.133}, //RPM = 199
|
||||
{ 4.242, 6.504, 6.750, 7.031, 7.770, 8.895, 11.004, 11.484, 11.977, 12.480, 13.934, 15.105}, //RPM = 424
|
||||
{ 3.855, 5.051, 5.473, 5.742, 6.539, 7.676, 11.309, 12.363, 13.254, 14.145, 17.004, 19.289}, //RPM = 999
|
||||
{ 0.809, 3.891, 4.430, 4.863, 6.105, 7.266, 12.082, 13.512, 14.426, 15.340, 19.582, 22.969}, //RPM = 1399
|
||||
{ 0.504, 3.691, 4.277, 4.699, 5.848, 7.066, 12.047, 13.500, 14.602, 15.703, 20.168, 23.730}, //RPM = 1499
|
||||
{ -1.348, 6.129, 6.492, 6.797, 7.617, 8.789, 11.109, 11.695, 12.246, 12.785, 14.531, 15.938}, //RPM = 499
|
||||
{ 2.578, 5.250, 5.625, 5.930, 6.691, 7.898, 11.262, 12.223, 12.996, 13.863, 16.582, 18.762}, //RPM = 896
|
||||
{ 2.285, 2.215, 3.164, 3.516, 4.535, 5.801, 12.094, 14.227, 15.785, 17.355, 23.309, 24.598}, //RPM = 1999
|
||||
{ -2.273, 1.383, 2.438, 2.848, 4.008, 5.145, 12.363, 15.117, 16.523, 17.941, 24.598, 24.598}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_10 = { //probar este mapa
|
||||
{
|
||||
{ 5.109, 7.020, 7.137, 7.230, 7.500, 8.156, 10.711, 11.520, 11.742, 11.965, 12.961, 13.781}, //RPM = 99
|
||||
{ 5.367, 7.559, 7.688, 7.793, 8.121, 8.859, 11.379, 12.141, 12.316, 12.504, 13.465, 14.227}, //RPM = 199
|
||||
{ 4.289, 6.574, 6.797, 7.090, 7.875, 8.977, 11.133, 11.625, 12.117, 12.621, 14.086, 15.246}, //RPM = 424
|
||||
{ 3.902, 6.152, 6.539, 6.832, 7.699, 8.906, 11.238, 11.848, 12.398, 12.938, 14.695, 16.090}, //RPM = 499
|
||||
{ 2.590, 5.250, 5.672, 5.977, 6.785, 7.969, 11.449, 12.363, 13.219, 14.063, 16.770, 18.949}, //RPM = 895
|
||||
{ 2.297, 5.063, 5.484, 5.777, 6.598, 7.711, 11.484, 12.539, 13.453, 14.355, 17.215, 19.500}, //RPM = 999
|
||||
{ 0.855, 3.949, 4.488, 4.922, 6.164, 7.301, 12.246, 13.699, 14.684, 15.691, 19.934, 23.320}, //RPM = 1399
|
||||
{ 0.551, 3.738, 4.348, 4.746, 5.906, 7.102, 12.246, 13.734, 14.895, 16.055, 20.531, 24.094}, //RPM = 1500
|
||||
{ -1.289, 2.285, 3.246, 3.586, 4.605, 5.848, 12.375, 14.543, 16.148, 17.789, 23.742, 24.598}, //RPM = 1999
|
||||
{ -2.203, 1.477, 2.543, 2.953, 4.090, 5.215, 12.609, 15.352, 16.898, 18.457, 24.598, 24.598}, //RPM = 2199
|
||||
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_25 = { //probar este mapa
|
||||
{
|
||||
{ 5.320, 7.289, 7.406, 7.500, 7.781, 8.355, 10.898, 11.566, 11.871, 12.188, 13.184, 14.004}, //RPM = 99
|
||||
{ 5.484, 7.711, 7.852, 7.957, 8.285, 9.094, 11.531, 12.176, 12.445, 12.738, 13.699, 14.461}, //RPM = 199
|
||||
{ 4.395, 6.715, 6.973, 7.254, 8.074, 9.188, 11.449, 11.977, 12.469, 12.961, 14.438, 15.609}, //RPM = 424
|
||||
{ 3.984, 6.316, 6.691, 7.008, 7.898, 9.105, 11.520, 12.164, 12.727, 13.301, 15.070, 16.465}, //RPM = 499
|
||||
{ 2.602, 5.332, 5.684, 6.047, 6.914, 8.063, 11.813, 12.785, 13.676, 14.520, 17.238, 19.418}, //RPM = 894
|
||||
{ 2.320, 5.109, 5.531, 5.836, 6.750, 7.805, 11.906, 13.008, 13.934, 14.859, 17.719, 20.004}, //RPM = 999
|
||||
{ 0.961, 4.090, 4.629, 5.051, 6.281, 7.395, 12.633, 14.133, 15.305, 16.523, 20.766, 24.164}, //RPM = 1399
|
||||
{ 0.645, 3.879, 4.488, 4.887, 6.035, 7.184, 12.715, 14.273, 15.586, 16.910, 21.375, 24.598}, //RPM = 1499
|
||||
{ -1.172, 2.426, 3.457, 3.750, 4.781, 5.988, 13.020, 15.258, 17.039, 18.844, 24.598, 24.598}, //RPM = 1997
|
||||
{ -2.027, 1.711, 2.836, 3.199, 4.254, 5.391, 13.254, 15.938, 17.801, 19.676, 24.598, 24.598}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_60 = { //probar este mapa
|
||||
{
|
||||
{ 5.590, 7.652, 7.781, 7.863, 8.145, 8.613, 11.133, 11.625, 12.047, 12.457, 13.477, 14.297}, //RPM = 99
|
||||
{ 5.637, 7.922, 8.074, 8.168, 8.496, 9.375, 11.707, 12.223, 12.609, 13.020, 13.969, 14.730}, //RPM = 199
|
||||
{ 4.535, 6.902, 7.148, 7.453, 8.309, 9.410, 11.824, 12.398, 12.879, 13.371, 14.848, 16.020}, //RPM = 425
|
||||
{ 4.113, 6.469, 6.832, 7.172, 8.145, 9.352, 11.883, 12.527, 13.137, 13.723, 15.445, 16.898}, //RPM = 499
|
||||
{ 2.648, 5.391, 5.777, 6.176, 7.148, 8.191, 12.223, 13.219, 14.121, 15.059, 17.730, 19.969}, //RPM = 895
|
||||
{ 2.355, 5.145, 5.566, 5.918, 6.938, 7.887, 12.328, 13.488, 14.414, 15.352, 18.199, 20.520}, //RPM = 999
|
||||
{ 1.066, 4.219, 4.758, 5.191, 6.410, 7.465, 13.043, 14.543, 15.949, 17.379, 21.563, 24.598}, //RPM = 1399
|
||||
{ 0.750, 3.996, 4.605, 5.016, 6.152, 7.242, 13.195, 14.824, 16.254, 17.695, 22.160, 24.598}, //RPM = 1499
|
||||
{ -1.043, 2.637, 3.609, 3.973, 4.922, 6.094, 13.664, 15.902, 17.859, 19.852, 24.598, 24.598}, //RPM = 2000
|
||||
{ -1.875, 1.945, 3.070, 3.445, 4.430, 5.578, 13.793, 16.465, 18.668, 20.824, 24.598, 24.598}, //RPM = 2199664, 2.180, 3.398, 3.715, 4.711, 5.777, 14.461, 17.086, 19.605, 22.125, 24.598, 24.598}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_80 = { //probar este mapa
|
||||
{
|
||||
{ 5.918, 8.109, 8.227, 8.320, 8.590, 8.930, 11.426, 11.695, 12.246, 12.820, 13.816, 14.625}, //RPM = 99
|
||||
{ 5.824, 8.180, 8.309, 8.426, 8.742, 9.727, 11.953, 12.281, 12.809, 13.336, 14.320, 15.070}, //RPM = 199
|
||||
{ 4.688, 7.125, 7.359, 7.676, 8.625, 9.703, 12.293, 12.891, 13.395, 13.898, 15.375, 16.559}, //RPM = 424
|
||||
{ 4.242, 6.668, 7.020, 7.395, 8.438, 9.633, 12.316, 12.949, 13.605, 14.250, 15.984, 17.414}, //RPM = 499
|
||||
{ 2.766, 5.438, 5.906, 6.246, 7.395, 8.262, 12.715, 13.781, 14.766, 15.656, 18.387, 20.590}, //RPM = 895
|
||||
{ 2.391, 5.203, 5.625, 6.000, 7.102, 8.004, 12.879, 14.074, 15.023, 15.996, 18.844, 21.117}, //RPM = 999
|
||||
{ 1.195, 4.395, 4.945, 5.355, 6.563, 7.570, 13.523, 15.094, 16.723, 18.398, 22.605, 24.598}, //RPM = 1399
|
||||
{ 0.867, 4.172, 4.781, 5.168, 6.328, 7.359, 13.734, 15.480, 17.133, 18.738, 23.215, 24.598}, //RPM = 1499
|
||||
{ -0.891, 2.824, 3.855, 4.184, 5.133, 6.246, 14.449, 16.793, 18.949, 21.035, 24.598, 24.598}, //RPM = 1999
|
||||
{ -1.641, 2.227, 3.398, 3.738, 4.664, 5.789, 14.543, 17.180, 19.688, 22.207, 24.598, 24.598}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct fuelMapIndexes fuelMapI = { //probar este mapa
|
||||
{ 100, 200, 425, 500, 895, 1000, 1400, 1500, 2000, 2200}, //N_RPM = 17
|
||||
{ 0.375, 0.500, 1.625, 2.500, 5.000, 10.000, 30.000, 35.000, 40.000, 45.000, 60.000, 72.000},
|
||||
{ -15, 3, 25, 46, 75}
|
||||
};
|
||||
#elif defined(_004002)
|
||||
struct AlphaStruct fuelmap_m12 = { //probar este mapa
|
||||
{
|
||||
{ 5.367, 7.371, 7.453, 7.465, 7.512, 8.414, 10.570, 11.320, 11.625, 11.930, 13.383, 14.543}, //RPM = 99
|
||||
{ 5.133, 7.242, 7.746, 7.898, 8.344, 9.059, 11.191, 11.836, 12.234, 12.621, 13.852, 14.414}, //RPM = 199
|
||||
{ 5.332, 7.313, 7.395, 7.406, 7.465, 8.379, 10.535, 11.309, 11.602, 11.883, 13.336, 14.496}, //RPM = 99
|
||||
{ 5.098, 7.219, 7.395, 7.559, 7.992, 9.023, 11.168, 11.754, 11.953, 12.164, 13.395, 14.379}, //RPM = 199
|
||||
{ 4.125, 6.340, 6.656, 7.008, 7.992, 9.059, 10.898, 11.426, 11.930, 12.434, 13.957, 15.188}, //RPM = 425
|
||||
{ 3.762, 6.023, 6.445, 6.832, 7.969, 8.859, 11.063, 11.660, 12.164, 12.691, 14.461, 15.879}, //RPM = 499
|
||||
{ 2.320, 4.898, 5.754, 6.035, 7.031, 8.098, 11.402, 12.270, 13.172, 14.074, 17.039, 19.383}, //RPM = 896
|
||||
{ 1.980, 4.664, 5.590, 5.883, 6.738, 7.910, 11.414, 12.410, 13.441, 14.496, 17.742, 20.344}, //RPM = 999
|
||||
{ 0.539, 3.516, 4.430, 4.816, 5.941, 7.301, 12.047, 13.535, 14.402, 15.281, 19.418, 22.699}, //RPM = 1399
|
||||
{ 0.188, 3.246, 4.172, 4.582, 5.813, 7.184, 12.141, 13.629, 14.695, 15.762, 20.074, 23.566}, //RPM = 1499
|
||||
{ -1.840, 1.547, 2.320, 2.953, 4.723, 6.293, 12.410, 14.320, 15.914, 17.496, 23.484, 24.598}, //RPM = 1999
|
||||
{ -2.824, 0.633, 1.277, 2.004, 4.102, 5.707, 12.586, 14.859, 16.336, 17.836, 24.598, 24.598}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_m5 = { //probar este mapa
|
||||
{
|
||||
{ 5.461, 7.488, 7.570, 7.570, 7.641, 8.496, 10.641, 11.344, 11.684, 12.023, 13.477, 14.625}, //RPM = 99
|
||||
{ 5.168, 7.313, 7.500, 7.641, 8.086, 9.152, 11.250, 11.777, 12.035, 12.281, 13.512, 14.496}, //RPM = 199
|
||||
{ 4.195, 6.410, 6.703, 7.090, 8.098, 9.176, 11.051, 11.613, 12.094, 12.621, 14.156, 15.375}, //RPM = 424
|
||||
{ 3.809, 6.059, 6.516, 6.902, 8.051, 8.953, 11.203, 11.789, 12.340, 12.891, 14.602, 16.043}, //RPM = 499
|
||||
{ 2.320, 4.922, 5.801, 6.117, 7.113, 8.121, 11.602, 12.480, 13.383, 14.309, 17.250, 19.664}, //RPM = 896
|
||||
{ 2.016, 4.676, 5.613, 5.918, 6.797, 7.934, 11.602, 12.621, 13.664, 14.719, 17.965, 20.555}, //RPM = 999
|
||||
{ 0.586, 3.586, 4.500, 4.887, 6.000, 7.336, 12.223, 13.734, 14.684, 15.645, 19.781, 23.074}, //RPM = 1399
|
||||
{ 0.234, 3.316, 4.242, 4.641, 5.859, 7.230, 12.328, 13.875, 15.012, 16.137, 20.461, 23.918}, //RPM = 1499
|
||||
{ -1.781, 1.617, 2.402, 3.035, 4.805, 6.352, 12.703, 14.637, 16.289, 17.941, 23.953, 24.598}, //RPM = 1999
|
||||
{ -2.742, 0.738, 1.406, 2.109, 4.184, 5.777, 12.832, 15.094, 16.699, 18.352, 24.598, 24.598}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_10 = { //probar este mapa
|
||||
{
|
||||
{ 5.578, 7.641, 7.723, 7.734, 7.793, 8.602, 10.746, 11.367, 11.754, 12.141, 13.594, 14.754}, //RPM = 99
|
||||
{ 5.238, 7.395, 7.582, 7.734, 8.180, 9.281, 11.332, 11.801, 12.105, 12.410, 13.641, 14.625}, //RPM = 199
|
||||
{ 4.242, 6.504, 6.820, 7.172, 8.227, 9.281, 11.215, 11.789, 12.270, 12.820, 14.332, 15.563}, //RPM = 425
|
||||
{ 3.867, 6.152, 6.586, 6.996, 8.180, 9.070, 11.355, 11.977, 12.516, 13.090, 14.848, 16.254}, //RPM = 499
|
||||
{ 2.367, 4.957, 5.801, 6.164, 7.184, 8.203, 11.766, 12.645, 13.594, 14.508, 17.496, 19.828}, //RPM = 895
|
||||
{ 2.016, 4.699, 5.625, 5.965, 6.891, 7.992, 11.813, 12.832, 13.887, 14.941, 18.199, 20.813}, //RPM = 999
|
||||
{ 0.633, 3.668, 4.559, 4.945, 6.047, 7.371, 12.410, 13.934, 14.977, 16.031, 20.168, 23.461}, //RPM = 1399
|
||||
{ 0.281, 3.375, 4.289, 4.699, 5.941, 7.254, 12.539, 14.109, 15.316, 16.512, 20.848, 24.305}, //RPM = 1499
|
||||
{ -1.723, 1.699, 2.508, 3.117, 4.887, 6.410, 12.996, 14.965, 16.688, 18.410, 24.422, 24.598}, //RPM = 1999
|
||||
{ -2.672, 0.832, 1.523, 2.227, 4.266, 5.871, 13.125, 15.340, 17.133, 18.902, 24.598, 24.598}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_25 = { //probar este mapa
|
||||
{
|
||||
{ 5.719, 7.828, 7.910, 7.922, 7.969, 8.742, 10.863, 11.391, 11.848, 12.293, 13.746, 14.906}, //RPM = 99
|
||||
{ 5.320, 7.512, 7.699, 7.852, 8.297, 9.434, 11.438, 11.824, 12.199, 12.574, 13.793, 14.777}, //RPM = 199
|
||||
{ 4.313, 6.598, 6.914, 7.289, 8.379, 9.387, 11.461, 12.047, 12.551, 13.066, 14.590, 15.820}, //RPM = 425
|
||||
{ 3.926, 6.258, 6.680, 7.102, 8.320, 9.211, 11.566, 12.211, 12.785, 13.336, 15.094, 16.523}, //RPM = 499
|
||||
{ 2.414, 5.004, 5.871, 6.199, 7.289, 8.320, 12.035, 12.984, 13.934, 14.906, 17.824, 20.215}, //RPM = 896
|
||||
{ 2.051, 4.734, 5.660, 6.000, 6.996, 8.051, 12.117, 13.184, 14.227, 15.316, 18.563, 21.164}, //RPM = 999
|
||||
{ 0.703, 3.773, 4.664, 5.039, 6.141, 7.430, 12.668, 14.250, 15.445, 16.652, 20.777, 24.082}, //RPM = 1399
|
||||
{ 0.352, 3.457, 4.395, 4.793, 5.988, 7.324, 12.891, 14.531, 15.832, 17.156, 21.469, 24.598}, //RPM = 1499
|
||||
{ -1.629, 1.816, 2.648, 3.258, 5.004, 6.504, 13.477, 15.504, 17.344, 19.195, 24.598, 24.598}, //RPM = 1999
|
||||
{ -2.531, 1.020, 1.734, 2.414, 4.406, 6.000, 13.582, 15.773, 17.801, 19.840, 24.598, 24.598}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_60 = { //probar este mapa
|
||||
{
|
||||
{ 5.977, 8.180, 8.262, 8.273, 8.320, 8.988, 11.098, 11.449, 12.000, 12.563, 14.016, 15.176}, //RPM = 99
|
||||
{ 5.473, 7.711, 7.887, 8.039, 8.484, 9.715, 11.613, 11.871, 12.352, 12.832, 14.063, 15.047}, //RPM = 199
|
||||
{ 4.441, 6.773, 7.078, 7.477, 8.602, 9.645, 11.813, 12.434, 12.938, 13.453, 14.965, 16.195}, //RPM = 424
|
||||
{ 4.043, 6.387, 6.809, 7.277, 8.578, 9.445, 11.895, 12.563, 13.137, 13.734, 15.480, 16.922}, //RPM = 499
|
||||
{ 2.449, 5.063, 5.918, 6.340, 7.500, 8.391, 12.363, 13.359, 14.332, 15.363, 18.281, 20.684}, //RPM = 895
|
||||
{ 2.063, 4.770, 5.695, 6.070, 7.125, 8.133, 12.527, 13.617, 14.695, 15.797, 19.043, 21.645}, //RPM = 999
|
||||
{ 0.809, 3.879, 4.793, 5.168, 6.258, 7.512, 13.066, 14.648, 16.031, 17.438, 21.504, 24.598}, //RPM = 1399
|
||||
{ 0.445, 3.598, 4.523, 4.922, 6.141, 7.395, 13.324, 15.023, 16.453, 17.918, 22.254, 24.598}, //RPM = 1499
|
||||
{ -1.535, 1.969, 2.836, 3.422, 5.145, 6.633, 14.051, 16.125, 18.129, 20.098, 24.598, 24.598}, //RPM = 1999
|
||||
{ -2.379, 1.230, 1.969, 2.625, 4.547, 6.164, 14.121, 16.277, 18.586, 20.883, 24.598, 24.598}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
struct AlphaStruct fuelmap_80 = { //probar este mapa
|
||||
{
|
||||
{ 6.234, 8.531, 8.602, 8.613, 8.672, 9.234, 11.320, 11.508, 12.176, 12.844, 14.285, 15.445}, //RPM = 99
|
||||
{ 5.625, 7.910, 8.098, 8.238, 8.684, 9.996, 11.801, 11.918, 12.516, 13.102, 14.332, 15.316}, //RPM = 199
|
||||
{ 4.582, 6.949, 7.266, 7.664, 8.859, 9.891, 12.188, 12.844, 13.348, 13.840, 15.387, 16.594}, //RPM = 424
|
||||
{ 4.160, 6.527, 6.973, 7.441, 8.801, 9.668, 12.234, 12.879, 13.523, 14.203, 15.973, 17.367}, //RPM = 499
|
||||
{ 2.496, 5.145, 5.988, 6.434, 7.676, 8.520, 12.832, 13.840, 14.859, 15.891, 18.855, 21.188}, //RPM = 895
|
||||
{ 2.109, 4.805, 5.742, 6.141, 7.313, 8.238, 12.984, 14.109, 15.223, 16.336, 19.582, 22.172}, //RPM = 999
|
||||
{ 0.914, 4.031, 4.945, 5.320, 6.387, 7.594, 13.488, 15.117, 16.723, 18.328, 22.465, 24.598}, //RPM = 1399
|
||||
{ 0.551, 3.727, 4.652, 5.074, 6.281, 7.488, 13.816, 15.598, 17.203, 18.820, 23.145, 24.598}, //RPM = 1499
|
||||
{ -1.383, 2.156, 3.023, 3.621, 5.320, 6.773, 14.754, 16.922, 19.066, 21.223, 24.598, 24.598}, //RPM = 1999
|
||||
{ -2.191, 1.477, 2.262, 2.906, 4.746, 6.363, 14.766, 16.898, 19.523, 22.160, 24.598, 24.598}, //RPM = 2199
|
||||
}
|
||||
};
|
||||
|
||||
struct fuelMapIndexes fuelMapI = { //probar este mapa
|
||||
{ 100, 200, 425, 500, 950, 1000, 1400, 1500, 2000, 2200}, //N_RPM = 17
|
||||
{ 0.375, 0.500, 1.625, 2.500, 5.000, 10.000, 30.000, 35.000, 40.000, 45.000, 60.000, 72.000},
|
||||
{ -15.5, -5.5 ,6.3, 27.5, 47.8, 75}
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user