2018. október 3., szerda

ECU #12

Ez a poszt most kicsit hosszabb lesz a többinél, ezzel együtt az egyik legfontosabb a szériában. Mindenek előtt azonban szereném kifejezni csalódottságomat. Az ECU #11 óta mértem gyorsulást, de nem hogy jelentőset nem javult, hanem szinte semmit. Nagyjából pontosan hozta a Referencia #4 mutatott eredményeket. Sovány vigasz, hogy már mérés közben éreztem valami nincs rendben. Ennek oka lehet az, hogy kicsit átestem a ló túloldalára az AFRCandidate2-vel, vagy hogy inkább csak részterhelésen mutatkozik a korábban említett javulás, vagy hogy most néhány körülmény sem volt ideális a méréshez. Lényeg a lényeg, nincs új referencia, azóta pedig annyi változtatást eszközöltem, hogy már azt sem tudom mikor megy úgy, mint korábban, vagy jobban, esetleg rosszabbul.

Vizualizáció és automatizáció
Az újabb és újabb eredmények legnagyobb korlátja a rendelkezésemre álló idő, ahogyan azt már említettem néhányszor. Arra jutottam, hogy azoknál a részfolyamatoknál, ahol erre lehetőség van egyszerűsíteni és automatizálni kell. Az így felszabaduló időt pedig a nem egyszerűsíthető és nem automatizálható részfolyamatokra lehet fordítani. Járulékos hozam, hogy az emberi hiba lehetősége is csökken. Erre egyre nagyobb szükség lesz, mert kezdenek bonyolódni a dolgok. Erre egy lenti példa is nagyon jól rámutat.  

Az elemzés során a vizualizáció nélkülözhetetlen. Segítségével pillanatok alatt felfedezhetőek olyan összefüggések, amelyek pusztán a számok elemzésével nem vagy csak jóval nehezebben valósulhatna meg. A korábbi diagramokat LibreOffice Calc-ban készítettem. A végeredmény egészen tetszetős volt, de sok problémám is volt vele. Az egyik legnagyobb, hogy minden egyes új teszt adatsornál kézi utánhúzás volt szükséges az ábrák előállításához, ami elég sok időbe telt, a másik, hogy nagyobb adatmennyiségnél néha egyszerűen megbolondult, és nem azt ábrázolta, amit kellett volna (újraindítással megjavult), a harmadik, hogy bizonyos összefüggések ábrázolását nem vagy csak nagyon körülményesen lehet megoldani vele (pl: fordulatszám magas értékét a többi értékkel arányosan ábrázolni), a negyedik, hogy 3 dimenziós grafikonok készítésének elvi lehetősége sincs meg benne.
Reszeltem hát ehhez is egy python szkriptet. Eltartott egy darabig és talán nem annyira szép mint a korábbi, de a fent említett problémák egy csapásra megoldódtak. Ezzel az OP-COM-ból lementett élőadatból szó szerint egy gombnyomásra készülnek az alábbihoz hasonló ábrák, a testreszabhatóság pedig szinte határtalan. Még lehetne rajta finomhangolni kicsit, de a célnak már most is bőven megfelel.

Automatizáltam továbbá az ellenőrző összeg (checksum) korreckióját. Eddig csak kiszámolta és megjelenítette a helyes értéket, amit én hex editorban manuálisan szerkesztettem, de most már igény szerint módosítja is. Ez is csak néhány gombnyomás és bármilyen módosított fájlt használatra késszé tesz. Nem mellesleg ez volt az első alkalom, hogy a kódban automata változtatást hajottam végre, ami egészen új távatokat nyit meg előttem.
Javítottam egy apró hibát is a számításban. Eddig, ha 0-val kezdődött az 4 jegyű érték, akkor a kezdeti 0-t egyszerűen lehagyta, és csak 3 értéket elenített meg. Manuális szerkesztésnél ez nem okoz különösebb gondot, de az automatikus korrekciónál már problémás lett volna.

VE
VE azaz Volumetric Efficiency. A VE tábla a szükséges üzemanyag mennyiséget határozza meg a fordulatszám és a szívócsőnyomás vagy terhelés (MAP) függvényében. Az AFR után errefelé vettem az irányt, hogy a befecskendezést a elvárásoknak (AFR) megfelelően tudjam igazítani és ne kelljen a fuel trim korrekciókra hagyatkozni. A végső cél a 0 long term fuel trim érték minden tartományban. A megtalálásban a legnagyobb lökést szintén a visszafejtett fájl adta, ami ebben az esetben nem mutatott olyan szintű egyezőséget, mint az AFR esetében, de a hasonlóság így is meggyőző volt.
Ez a 11x16-os térkép szerepel ott, mint "Open throttle VE table".
    kPa:  20   25    30    35    40    50    60    70    80    90    100 ; RPM
    FCB   80,  105,  118,  130,  135,  159,  161,  167,  173,  180,  200 ; 400 
    FCB   95,  116,  144,  163,  173,  177,  183,  186,  190,  197,  210 ; 800
    FCB  122,  151,  175,  188,  190,  197,  207,  206,  210,  212,  214 ;1200
    FCB  143,  183,  193,  197,  212,  219,  225,  225,  225,  226,  220 ;1600
    FCB  150,  199,  204,  208,  210,  218,  224,  232,  232,  232,  235 ;2000
    FCB  150,  205,  210,  212,  214,  225,  232,  242,  242,  242,  240 ;2400
    FCB  150,  207,  210,  214,  215,  225,  235,  237,  238,  238,  235 ;2800
    FCB  153,  190,  205,  211,  212,  224,  242,  240,  240,  242,  242 ;3200
    FCB  150,  185,  190,  197,  207,  224,  230,  236,  240,  240,  245 ;3600
    FCB  125,  185,  190,  195,  207,  222,  235,  233,  231,  233,  220 ;4000
    FCB  125,  185,  190,  190,  203,  215,  220,  225,  230,  230,  230 ;4400
    FCB  125,  185,  190,  190,  193,  205,  210,  215,  220,  222,  222 ;4800
    FCB  125,  166,  190,  192,  193,  205,  210,  225,  230,  236,  236 ;5200
    FCB  125,  166,  190,  192,  193,  205,  210,  225,  230,  236,  236 ;5600
    FCB  125,  166,  190,  192,  193,  205,  210,  225,  230,  236,  236 ;6000
    FCB  125,  166,  190,  192,  193,  205,  210,  225,  230,  236,  236 ;6400


Átfutva a már kigyűjtött térképeket látszik, hogy sem a 11x-es részen, sem a 16x-esnél nincs hasonló. Van viszont a 17x-nél rögtön 4 gyanús is: 1714a, 1714b, 1711a, 1710a. A 1711a kicsit kilóg a sorból, annak ez értékei inkább az AFR táblában találhatóra hasonlít, a 1714a és 1714b pedig megegyezik egymással, úgyhogy igazából olyan, mintha csak 2 lenne. Erősítette a sejtést, hogy a különböző szoftververziókban különbözőek az értékek, amire egyébként számítottam, de a kétségeimet az oszlatta el véglegesen, amikor megkerestem a kódban a térképekre való hivatkozásokat. Mind a 4 fent említett és csak ez a 4 éppen abban a ~250 soros szubrutinban található, amiben az AFR is. Ismét túl sok az egybeesés ahhoz, hogy ne úgy legyen, ahogyan várnám. Persze a bizonyítékot a teszt fogja megadni.

A referencia mérés okozta csalódás miatt és azért, mert valahogy nem tűnt annyira kiegyensúlyozottnak a motor járása az AFRCandidate2-ről visszatértem az AFRCandidate1-hez, mint kiindulási alaphoz. Ebben a posztban minden teszt ezen a verzión alapul.
Hiába van közelebb méretben a 1710a a fájlban lévőhöz, ekkor már ki tudja miért a 1714a és 1714b volt szimpatikusabb a tesztekhez. Ez a két térkép a többi verziók közül néhányban minimálisan eltér, de az általam használtban nem, ezért úgy döntöttem mindkettőt egyszere változtatom. Egyértelmű és jelentős változást szerettem volna látni, ezért a tábla két középső oszlopában 15%-al csökkentettem az értékeket.
Eredeti:
135    131    127    122    131    114    109    120    112     90     86     86     89     88     91     91     91
135    131    127    122    131    114    109    120    112     90     86     86     89     88     91     91     91
140    140    140    137    145    132    112    138    138    118    119    103    107    112    120    132    135
143    148    146    144    149    139    117    146    140    131    122    117    120    125    137    145    152
151    153    152    148    155    150    140    153    153    143    133    130    130    134    143    155    163
152    154    152    152    159    153    146    157    156    150    138    135    137    143    153    163    172
153    156    155    155    163    158    147    158    159    158    145    143    143    152    162    170    177
158    160    160    159    164    161    148    158    166    162    151    150    150    159    169    176    183
158    162    162    163    168    166    153    161    169    171    164    158    160    171    184    190    186
158    162    162    163    170    170    160    166    173    178    175    172    172    183    194    200    207
159    162    162    163    170    170    166    176    183    185    183    180    180    189    201    205    218
159    162    162    163    170    170    167    181    191    185    185    182    180    191    199    205    218
160    162    162    163    170    166    172    182    191    190    187    183    180    191    199    205    218
162    164    162    163    170    166    172    182    191    190    187    183    180    191    199    205    218


VECandidate1:
135    131    127    122    131    114     93    102    112     90     86     86     89     88     91     91     91
135    131    127    122    131    114     93    102    112     90     86     86     89     88     91     91     91
140    140    140    137    145    132     96    118    138    118    119    103    107    112    120    132    135
143    148    146    144    149    139    100    125    140    131    122    117    120    125    137    145    152
151    153    152    148    155    150    119    131    153    143    133    130    130    134    143    155    163
152    154    152    152    159    153    125    134    156    150    138    135    137    143    153    163    172
153    156    155    155    163    158    125    135    159    158    145    143    143    152    162    170    177
158    160    160    159    164    161    126    135    166    162    151    150    150    159    169    176    183
158    162    162    163    168    166    131    137    169    171    164    158    160    171    184    190    186
158    162    162    163    170    170    136    142    173    178    175    172    172    183    194    200    207
159    162    162    163    170    170    142    150    183    185    183    180    180    189    201    205    218
159    162    162    163    170    170    142    154    191    185    185    182    180    191    199    205    218
160    162    162    163    170    166    147    155    191    190    187    183    180    191    199    205    218
162    164    162    163    170    166    147    155    191    190    187    183    180    191    199    205    218

-15%

A várakozásom az volt, hogy 2500-3000-es tartományban az eddigi némileg negatív long term fuel trim erősen pluszba vált. 
AFRCandidate1
[[   0    0  400  800 1200 1600 2000 2400 2800 3200 3600 4000 4400 4800 5200 5600 6000 6400]
 [   9 1111 1111 1111 1111   -1   -1   -1    0    0    0    0    0    0   -1    0 1111 1111]
 [  16 1111 1111   -3   -1   -1   -1   -1   -1   -1   -1   -1    0 1111 1111 1111 1111 1111]
 [  23 1111 1111   -3    0   -1   -2   -1   -2    0   -1 1111 1111 1111   -1 1111 1111 1111]
 [  30 1111 1111   -2   -2   -2   -2   -1    0 1111   -2 1111   -1 1111 1111 1111 1111 1111]
 [  37 1111 1111   -1   -2   -2   -2   -2   -1 1111   -2   -2 1111   -6 1111 1111    0 1111]
 [  44 1111 1111   -1   -2   -3   -2   -2   -2   -2   -2   -2 1111   -4   -5 1111 1111 1111]
 [  51 1111 1111   -2   -2   -3   -1   -2 1111   -2 1111 1111   -3 1111 1111 1111 1111 1111]
 [  58 1111 1111    0   -2   -2   -1   -2 1111   -1 1111   -4 1111    0 1111 1111 1111 1111]
 [  65 1111 1111    0   -2   -2   -1   -2   -1 1111   -4 1111 1111 1111 1111 1111 1111 1111]
 [  72 1111 1111 1111   -1   -2   -1   -2   -1   -5   -7 1111 1111 1111    0 1111 1111 1111]
 [  79 1111 1111    0   -2   -2   -1   -2   -7   -7   -7   -6   -6 1111    0    0 1111    0]
 [  86 1111 1111 1111   -1   -1   -1   -3   -5   -6   -6   -6   -7   -5    0 1111 1111 1111]
 [  93 1111 1111 1111   -1   -2   -3   -3   -5   -5   -5   -2   -1    0    0    0    0    0]
 [ 100 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111]] B1 Long Term Fuel Trim (Bank 1)


VECandidate1
[[   0    0  400  800 1200 1600 2000 2400 2800 3200 3600 4000 4400 4800 5200 5600 6000 6400]
 [   9 1111 1111 1111 1111    0    0    0    0    0    0    0   -1    0 1111 1111 1111 1111]
 [  16 1111 1111   -1   -1    0    0   -1   -1   -1   -1 1111 1111   -2 1111 1111 1111 1111]
 [  23 1111 1111   -1   -1    1    1   -2   -2   -2   -2 1111 1111   -3 1111 1111 1111 1111]
 [  30 1111 1111   -1    0    2    2   -2   -3   -2   -5   -5   -5 1111 1111 1111 1111 1111]
 [  37 1111 1111    0   -1    2    1   -3   -4   -5   -5   -2 1111 1111 1111 1111 1111 1111]
 [  44 1111 1111    0    0    2    2   -2   -4   -5   -5 1111   -2 1111   -1 1111 1111 1111]
 [  51 1111 1111    1   -1    2    2   -2   -4   -4 1111 1111 1111 1111 1111 1111 1111 1111]
 [  58 1111 1111    1   -1    2    2   -2   -4   -5 1111   -5 1111 1111 1111 1111 1111 1111]
 [  65 1111 1111    1    0    3    3   -3   -5   -5 1111   -5   -5 1111    0 1111 1111 1111]
 [  72 1111 1111 1111    4    4    3   -3   -5   -5   -6 1111 1111 1111    0 1111 1111 1111]
 [  79 1111 1111 1111 1111    3    3   -3   -5   -4   -3   -5 1111 1111 1111 1111 1111 1111]
 [  86 1111 1111 1111 1111    4    4   -2   -4   -5   -5   -4   -5 1111    0 1111 1111 1111]
 [  93 1111 1111 1111 1111    1   -1   -4   -5   -5   -4   -2   -2   -1    0 1111 1111 1111]
 [ 100 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111]] B1 Long Term Fuel Trim (Bank 1)


Ahogyan látszik ez nem pontosan úgy alakult ahogyan vártam, de nem lehet nem észrevenni, hogy éppen két fordulaszámtartományban a negatívos értékek átfordultak pluszba. Nem abban a tartományban és nem olyan mértékben mint vártam, de nálam ez már egyértelmű bizonyíték.

Második kísérletem (VECandidate2), amely immár szinte a teljes tábla módosítására vonatkozik kicsit ismét túllendült a célon, -3%-tól -11%-ig csökkentettem az értékeket, de túl nagy plusszos eredményt hozott. Igazából azért túloztam el ennyire, mert megzavart a -15%-ra adott enyhe reakció, és a mai napig nem tudom miért nem lett nagyobb az első tesztnél a változás.

126    122    119    114    122    107    102    112    105     84     80     80     83     82     85     85     85
131    128    124    119    128    111    102    112    102     90     86     86     89     88     91     91     91
136    136    136    133    141    129    105    129    126    106    106     92     96    100    110    123    131
139    144    142    140    145    135    109    136    128    117    109    105    107    112    125    135    148
147    149    148    144    151    146    131    143    140    128    119    116    116    120    131    145    159
148    150    148    148    155    149    136    147    142    134    123    121    122    128    140    152    167
149    152    151    151    159    154    137    147    145    141    130    128    128    136    148    159    172
154    156    156    155    160    157    138    147    152    145    135    134    134    142    154    164    178
154    158    158    159    163    162    143    150    154    153    146    141    143    153    168    177    181
154    158    158    159    165    165    149    155    158    159    156    154    154    163    177    186    201
155    158    158    159    165    165    155    164    167    165    163    161    161    169    183    191    212
155    158    158    159    165    165    156    169    174    165    165    162    161    170    182    191    212
156    158    158    159    165    162    160    170    174    170    167    163    161    170    182    191    212
158    160    158    159    165    162    160    170    174    170    167    163    161    170    182    191    212

-3%, -7%, -9%, -11%

VECandidate1
[[   0    0  400  800 1200 1600 2000 2400 2800 3200 3600 4000 4400 4800 5200 5600 6000 6400]
 [   9 1111 1111 1111 1111    0    0    0    0    0    0    0    0 1111 1111 1111 1111 1111]
 [  16 1111 1111    0   -1    0    1    0    0    0    0    3 1111 1111 1111 1111 1111 1111]
 [  23 1111 1111    1    0    2    3    0    1    0    2 1111 1111 1111    0 1111 1111 1111]
 [  30 1111 1111    0    1    2    4    0    1    3 1111    1    1 1111    1 1111 1111 1111]
 [  37 1111 1111    0    1    2    4    2    2   -1 1111 1111 1111 1111 1111 1111 1111 1111]
 [  44 1111 1111    1    0    1    4    3    3 1111 1111 1111 1111 1111 1111 1111 1111 1111]
 [  51 1111 1111    1    1    1    5    4    5 1111    3 1111    7 1111    4 1111 1111 1111]
 [  58 1111 1111 1111    0    2    5    4    3    5    0 1111    0 1111 1111 1111 1111 1111]
 [  65 1111 1111 1111    0    3    5    4    1    3    1 1111 1111 1111 1111 1111 1111 1111]
 [  72 1111 1111 1111    3    2    5    5    3    0    0 1111    1 1111 1111 1111 1111 1111]
 [  79 1111 1111 1111 1111    4    5    4    2   -1    1    0   -1    0 1111 1111 1111 1111]
 [  86 1111 1111 1111 1111    3    5    4    1    1    0    3 1111    0 1111 1111 1111 1111]
 [  93 1111 1111 1111 1111    2    1    2    1    1    0    0    0    1    1    1 1111 1111]
 [ 100 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111]] B1 Long Term Fuel Trim (Bank 1)


Ezért a harmadik verzióban (VECandidate3) kicsit finomítottam. Ugyanazon színséma szerint, de csak -2%-tól -6%-ig csökkentettem az értékeket.

131    128    124    119    128    111     91     99    109     88     84     84     87     86     89     89     89
133    129    125    120    129    112     91     99    108     90     86     86     89     88     91     91     91
138    138    138    135    143    130     94    115    133    111    112     97    101    106    116    129    133
141    146    144    142    147    137     97    122    135    124    115    110    113    118    132    141    149
148    150    149    146    152    147    116    128    147    135    126    123    123    126    138    151    160
149    151    149    149    156    150    122    130    150    141    130    127    129    135    147    159    169
150    153    152    152    160    155    122    131    153    149    137    135    135    143    156    165    174
155    157    157    156    161    158    123    131    160    153    142    141    141    150    163    171    180
155    159    159    160    165    163    128    133    163    161    155    149    151    161    177    185    183
155    159    159    160    167    167    132    138    167    168    165    162    162    173    187    194    203
156    159    159    160    167    167    138    146    176    174    173    170    170    178    193    199    214
156    159    159    160    167    167    138    150    184    174    174    172    170    180    192    199    214
157    159    159    160    167    163    143    151    184    179    176    173    170    180    192    199    214
159    161    159    160    167    163    143    151    184    179    176    173    170    180    192    199    214

-2%, -3%, -4%, -6%

VECandidate3
[[   0    0  400  800 1200 1600 2000 2400 2800 3200 3600 4000 4400 4800 5200 5600 6000 6400]
 [   9 1111 1111 1111 1111    2    3    1    3    2    0    4 1111 1111 1111 1111 1111 1111]
 [  16 1111 1111   -2    1    2    3    3    3    3    3    3    3 1111 1111 1111 1111 1111]
 [  23 1111 1111   -2    1    5    3    1    1    1    0    3    1 1111 1111 1111 1111 1111]
 [  30 1111 1111   -1    2    7    2    1    0   -1   -1    0 1111 1111 1111 1111 1111 1111]
 [  37 1111 1111   -3    1    4    4    0    0   -1   -1    0 1111 1111 1111 1111 1111 1111]
 [  44 1111 1111    0    0    2    5    0   -1   -1   -1   -2 1111 1111 1111 1111 1111 1111]
 [  51 1111 1111    2    1    3    5    0   -1   -1   -2   -3 1111 1111 1111 1111 1111 1111]
 [  58 1111 1111    1    1    2    6    0    0   -2   -2   -1 1111 1111 1111 1111 1111 1111]
 [  65 1111 1111    1    2    4    5    0   -1   -2   -2   -3   -7 1111 1111 1111 1111 1111]
 [  72 1111 1111    1    1    5    6    1   -1   -2   -3   -1 1111 1111 1111 1111 1111 1111]
 [  79 1111 1111    0    4    6    6    0   -1   -3   -2   -2 1111 1111 1111 1111 1111 1111]
 [  86 1111 1111    0    4    5    6    0   -2   -3   -3   -2 1111 1111 1111 1111 1111 1111]
 [  93 1111 1111 1111 1111    7    0   -1   -2   -2   -3   -4   -3 1111 1111 1111 1111 1111]
 [ 100 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111]] B1 Long Term Fuel Trim (Bank 1)


Elég sok értéket sikerült 0-sra hozni, de maradt néhány erősen plusszos is. Számok alapján nem néz ki túl jó, de vizuálisan nagyon szép. (A kék színű LTFT vonal a lényeg.)
Ebből:

Ez lett:

Néhány kilengést leszámítva szinte pontosan ráült a 0-ra, ahogyan azt szerettem volna. Elég jó, de az a utolsó nagyon pozitív rész csúnya. Ez a talány a következő napokra rendesen elgondolkoztatott, pedig végig ott volt a szemem előtt a megoldás. Ha valaki az eddigiekből kiszúrja, annak gratulálok.
Arra persze nem nehéz rájönni, hogy ott tér el és éppen úgy, ahogy az a VECandidate1-nek megfelelő lenne. Megnéztem a módosított térképet és valóban a jó százalékokat alkalmaztam, leellenőriztem a binárisban való módosítást és mindkét térkép megfelelően módosult, próbáltam OP-COM-al egy reset-et (Reset O2 Loop Block Learn Map), de csak megmaradt az anomália. Amint a 2000 alatti tartományba ér szépen elkezdi felfelé léptetni, amint kilép onnan, akkor meg elkezdi leépíteni a LTFT értékét:

Egészen addig nem jöttem rá, amíg...

Még több vizualizáció - 3D
... amíg meg nem alkottam a közvetlenül a binárisból térképet vizualizáló szkriptemet. Ezzel bármilyen térkép szemléletesen ábrázolható, de még kezdetleges fázisban van. (A tengelyértékek pontatlanok.)

Ez a VECandidate3-ban felírt 1714a és 1714b térkép:

Akár a Mariana-árok. Miután ezt sikerült megjeleníteni pár percen belül megvolt a megoldás. Nem ragadt be semmi a programba, nem kell resetelni, nem kell rejtélyes dolgok után nyomozni, egyszerűen csak rossz a térkép. És mindez azért, mert hiába dolgoztam jó százalékokkal, a módosítást sikerült véletlenül a VECandidate1-ből származtatnom, így az 1600-2000-es tartomány -15%-os értékét nem korrigáltam -3%-ra, hanem a csökkentett értéket még 3%-al tovább csökkentettem. Csak összehasonlításképp ez a helyes alapra húzott módosítás:


Így szemléletesen viszont már ez sem tetszik, ezért azt a kisebb árkot manuálisan elsimítottam (VECandidate4). A színséma egyezik az előzőekkel a zöldet kivéve.

131    128    124    119    128    111    114    117    109     88     84     84     87     86     89     89     89
133    129    125    120    129    112    114    117    108     90     86     86     89     88     91     91     91
138    138    138    135    143    130    132    134    133    111    112     97    101    106    116    129    133
141    146    144    142    147    137    139    142    135    124    115    110    113    118    132    141    149
148    150    149    146    152    147    148    149    147    135    126    123    123    126    138    151    160
149    151    149    149    156    150    151    153    150    141    130    127    129    135    147    159    169
150    153    152    152    160    155    154    154    153    149    137    135    135    143    156    165    174
155    157    157    156    161    158    156    154    160    153    142    141    141    150    163    171    180
155    159    159    160    165    163    160    157    163    161    155    149    151    161    177    185    183
155    159    159    160    167    167    165    162    167    168    165    162    162    173    187    194    203
156    159    159    160    167    167    169    171    176    174    173    170    170    178    193    199    214
156    159    159    160    167    167    171    176    184    174    174    172    170    180    192    199    214
157    159    159    160    167    163    170    177    184    179    176    173    170    180    192    199    214
159    161    159    160    167    163    170    177    184    179    176    173    170    180    192    199    214


-2%, -3%, -4%, -6%, manual

Így néz ki:

Ez sem tökéletes, de a fő probléma egyértelműen megoldódott:
VECandidate4
[[   0    0  400  800 1200 1600 2000 2400 2800 3200 3600 4000 4400 4800 5200 5600 6000 6400]
 [   9 1111 1111 1111 1111   -1   -1   -1   -1   -1   -1   -1   -2   -1 1111 1111 1111 1111]
 [  16 1111 1111   -3   -2   -1   -1   -1   -1   -2   -2   -2    0    0 1111 1111 1111 1111]
 [  23 1111 1111   -3   -2   -2   -1   -2   -2   -2   -2   -1   -2   -1 1111 1111 1111 1111]
 [  30 1111 1111   -2   -2   -3   -2   -2   -2 1111   -1    1 1111    0 1111 1111 1111 1111]
 [  37 1111 1111    0   -4   -3   -2   -3   -1   -1    2 1111   -2 1111 1111 1111 1111 1111]
 [  44 1111 1111    0   -4   -3   -1    0    1    0    2    1   -1 1111 1111 1111 1111 1111]
 [  51 1111 1111    0   -3   -3    1    1    1    1    0    0    0 1111 1111 1111 1111 1111]
 [  58 1111 1111    1   -2   -1    2    1    1    0   -1    0 1111 1111 1111 1111 1111 1111]
 [  65 1111 1111 1111   -1    0    1    1    0   -1   -1   -1 1111 1111 1111 1111 1111 1111]
 [  72 1111 1111 1111   -1   -1    2    1   -1    0   -1   -2 1111   -1    0 1111 1111 1111]
 [  79 1111 1111 1111   -1    1    2    1    0   -1   -2   -1   -2 1111 1111 1111 1111 1111]
 [  86 1111 1111 1111 1111    1    3    1    0   -1   -2   -1    0   -1 1111 1111 1111 1111]
 [  93 1111 1111 1111 1111    0   -1   -1   -1   -1   -1   -1   -1    0    0 1111 1111 1111]
 [ 100 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111]] B1 Long Term Fuel Trim (Bank 1)



Ha a fuel trim értékét sikerülne teljesen nullázni, akkor elméletileg már felírás után is a legjobbját nyújtaná az autó, nem kellene a sok 10 km-t megvárni. Ha rendelkezésemre állna a tengelyérték a táblákhoz, akkor pedig nem lenne túl bonyolult az élőadat alapján automatikus korrekciót végeztetni közvetlenül a binárisban. Ez egyelőre olyan jól hangzik, hogy még csak barátkozom az elképzeléssel, de mióta már 3d-ben tudok "bármit" ábrázolni, azóta semmi sem tűnik lehetetlenek. :)

Sejtések
Azt, hogy mi a két térkép közti különbség nem tudom, lehet hogy az egyik részterhelésre vonatkozik, a másik pedig teljesre, vagy alacsony és magas oktánszámú üzemanyaghoz, vagy az egyik a vészprogram térképe vagy akár valami egészen más. A 1711a-t és 1710a-t is vagy alapjárathoz vagy vészprogramhoz tartozó térképeknek gondolom. Egyelőre azonban nincs terítéken ezek további vizsgálata, mert rengeteg fontosabb dolog van.

SA
Úgy, mint például a gyújtás térképének azonosítása. SA mint Spark Advance, azaz előgyújtás. A fenti képeken jól látszik, hogy elég sokszor és viszonylag nagy mértékű gyújtáskorrekcióra van szükség a kopogásszenzor értékei alapján, ezért módosításra van szükség.
A keresés metódusa hasonló volt, mint a VE esetében. A visszafejtett fájlban az alábbi 17x17-es térképet ("Main SA table") találtam, de pusztán a méret alapján nem jutottam előrébb. Fontosabb információval szolgált a térképben található értékek mértéke és eloszlása, valamint az, hogy a programban nagyon az elején foglal helyet. A saját programomban az elején rögtön 4 térkép bukkan fel (1317a, 1317b, 1317c, 1317d), amik értékek alapján is megfelelőnek tűnnek. A kódelemzéssel eddig csak arra tudtam rájönni, hogy ezek valamilyen összefüggésben vannak a 1016a-d térképekkel.

;    kPa: 20   25   30   35   40   45   50   55   60   65   70   75   80   85   90   95  100 ;  RPM
;
    FCB  85,  85,  85,  85,  85,  80,  77,  63,  60,  54,  46,  40,  37,  34,  31,  28,  26   ;  400
    FCB  85,  85,  85,  85,  85,  80,  77,  63,  60,  54,  46,  40,  37,  34,  31,  28,  28    ;  600
    FCB  85,  85,  85,  85,  85,  85,  85,  74,  68,  57,  54,  43,  40,  34,  31,  28,  28    ;  800
    FCB  85,  85,  85,  85,  85,  85,  85,  80,  71,  65,  57,  48,  43,  37,  31,  28,  28    ; 1000   
    FCB  85,  85,  85,  85,  85,  85,  85,  80,  74,  68,  60,  54,  48,  43,  37,  34,  31    ; 1200
    FCB  88,  88,  88,  88,  88,  88,  88,  82,  80,  71,  65,  60,  54,  48,  43,  40,  40   ; 1600
    FCB  91,  91,  91,  91,  91,  91,  91,  85,  82,  74,  68,  63,  57,  54,  48,  46,  46    ; 2000
    FCB  94,  94,  94,  94,  94,  94,  94,  91,  88,  80,  74,  68,  63,  60,  54,  54,  51    ; 2400
    FCB 100, 100, 100, 100, 100, 100, 100,  94,  91,  82,  77,  71,  65,  63,  60,  57,  54   ; 2800
    FCB 102, 102, 102, 102, 102, 102, 102,  97,  94,  91,  80,  77,  74,  68,  65,  63,  60   ; 3200
    FCB 105, 105, 105, 105, 105, 105, 105, 102,  97,  91,  85,  80,  77,  71,  68,  65,  63    ; 3600
    FCB 114, 114, 114, 114, 114, 114, 114, 114, 100,  94,  88,  85,  82,  77,  77,  74,  71    ; 4000
    FCB 114, 114, 114, 114, 114, 114, 114, 114, 102,  97,  91,  88,  85,  80,  80,  80,  77   ; 4400
    FCB 114, 114, 114, 114, 114, 114, 114, 114, 102,  97,  91,  88,  85,  80,  77,  74,  71    ; 4800
    FCB 114, 114, 114, 114, 114, 114, 114, 114, 102,  97,  94,  91,  88,  82,  80,  77,  74    ; 5200         
    FCB 114, 114, 114, 114, 114, 114, 114, 114, 102,  97,  94,  91,  88,  82,  80,  77,  74   ; 5600
    FCB 114, 114, 114, 114, 114, 114, 114, 114, 102,  97,  94,  91,  88,  82,  80,  77,  74   ; 6000


De élve a feltételezéssel, hogy az első (1317a) a fő gyújtástábla végeztem egy apróbb módosítást. (Ezt még a VECandidate3-ra alapoztam.) Azért csak apróbbat, mert a gyújtással óvatosan kell bánni és azért, mert itt még nagyon sok bizonytalanság volt.
Eredeti:
118    117    106    103     97     94     91     88     85     77     63     51     46
122    122    113    108    103    100     97     94     85     77     61     54     51
128    127    124    120    119    114    108     98     87     74     66     60     54
135    133    128    126    123    120    111    104     95     85     71     66     58
142    139    136    130    120    111    104     90     83     79     71     69     67
152    148    142    133    122    116    109     97     91     81     71     71     71
159    157    150    139    128    123    112    104     98     91     81     77     76
162    159    154    144    132    128    122    114    108    101     90     87     85
165    162    157    147    135    131    122    116    108    101     92     88     85
169    165    159    149    137    131    125    120    108    101     94     90     87
169    165    161    149    137    131    125    120    111    102     97     94     91
172    169    154    137    131    131    128    124    117    111    105    103    100
172    169    151    139    131    134    129    124    117    112    109    107    105
171    168    151    137    131    134    122    121    117    114    108    104    101
171    168    151    148    137    137    128    122    120    117    111    109    108
171    168    151    148    139    139    127    121    116    112    109    106    104
171    168    154    148    139    139    134    128    119    111    107    105    105


SACandidate1:
118    117    106    103     97     94     91     88     85     77     63     50     45
122    122    113    108    103    100     97     94     85     77     61     53     50
128    127    124    120    119    114    108     98     87     74     66     59     53
135    133    128    126    123    120    111    104     95     85     71     65     57
142    139    136    130    120    111    104     90     83     79     71     68     65
152    148    142    133    122    116    109     97     91     81     71     70     69
159    157    150    139    128    123    112    104     98     91     81     76     74
162    159    154    144    132    128    122    114    108    101     90     86     83
165    162    157    147    135    131    122    116    108    101     92     87     83
169    165    159    149    137    131    125    120    108    101     94     89     85
169    165    161    149    137    131    125    120    111    102     97     93     89
172    169    154    137    131    131    128    124    117    111    104    101     97
172    169    151    139    131    134    129    124    117    112    108    105    102
171    168    151    137    131    134    122    121    117    114    107    102     98
171    168    151    148    137    137    128    122    120    117    110    107    105
171    168    151    148    139    139    127    121    116    112    108    104    101
171    168    154    148    139    139    134    128    119    111    106    103    102

-1%, -2%, -3%

Ettől azt vártam, hogy az eddig 7-8-as csúcsértékek legfeljebb 4-5-re csökkennek.

Persze ez sem olyan lett, mint számítottam, A csúcsértékek nem lettek kisebbek, de én hajlamos vagyok belelátni a csökkenést.
Meggyőzőbb, ha most a különböző tartományokra bontjuk le és számok alapján nézzük. (Ez jelenleg nem tökéletes megjelenítés, mert csak egy hengerre vonatkozik és csak a maximum értékeket ábrázolja. Ez is fejlesztést igényel.)
Előtte:
[[   0    0  400  800 1200 1600 2000 2400 2800 3200 3600 4000 4400 4800 5200 5600 6000 6400]
 [   9 1111 1111 1111 1111    0    0    0    0    0    0    0    0    0 1111 1111 1111 1111]
 [  16 1111 1111    0    0    0    0    0    0    0    0    0    0    0    0 1111 1111 1111]
 [  23 1111 1111    0    0    0    0    0    0    0 1111    0    0 1111 1111 1111 1111 1111]
 [  30 1111 1111    0    0    0    0    0    0    0 1111 1111 1111 1111 1111 1111 1111 1111]
 [  37 1111 1111    0    0    0    0    0    0    0 1111    0 1111    0 1111 1111 1111 1111]
 [  44 1111 1111    0    0    0    0    0    0    0    0    0    0 1111 1111 1111 1111 1111]
 [  51 1111 1111    0    0    0    1    1    0    0    0    0 1111 1111 1111 1111 1111 1111]
 [  58 1111 1111 1111    0    0    2    3    0    0    0    1    0    0 1111 1111 1111 1111]
 [  65 1111 1111 1111    0    0    2    1    0    0    0 1111 1111 1111    1 1111 1111 1111]
 [  72 1111 1111    0    0    0    2    6    0    0    0    0    0 1111    0 1111 1111 1111]
 [  79 1111 1111 1111 1111    2    3    5    2    0    1    0 1111 1111    3    0 1111 1111]
 [  86 1111 1111 1111 1111    0    3    7    3    0    1    0    0 1111    0    0 1111 1111]
 [  93 1111 1111 1111 1111 1111    1    8    4    0    1    8    0    8    0    0 1111 1111]
 [ 100 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111]] Knock1 (max)

Utána:
[[   0    0  400  800 1200 1600 2000 2400 2800 3200 3600 4000 4400 4800 5200 5600 6000 6400]
 [   9 1111 1111 1111 1111    0    0    0    0    0    0    0    0    0    0 1111 1111 1111]
 [  16 1111 1111 1111    0    0    0    0    0    0    0    0    0    0 1111 1111 1111 1111]
 [  23 1111 1111    0    0    0    0    0    0    0    0    0    0 1111 1111 1111 1111 1111]
 [  30 1111 1111    0    0    0    0    0    0    0 1111 1111 1111    0 1111 1111 1111 1111]
 [  37 1111 1111    0    0    0    0    0    0    0    0 1111    0 1111 1111 1111 1111 1111]
 [  44 1111 1111 1111    0    0    0    0    0    0    0 1111 1111 1111 1111 1111 1111 1111]
 [  51 1111 1111 1111    0    0    1    2    0    0    0    0 1111 1111 1111 1111 1111 1111]
 [  58 1111 1111 1111    0    0    1    0    0    0 1111    0 1111 1111 1111 1111 1111 1111]
 [  65 1111 1111 1111    0    0    0    0    0    0    0    0 1111 1111 1111 1111 1111 1111]
 [  72 1111 1111 1111    2    1    4    2    0    0    0 1111 1111 1111 1111 1111 1111 1111]
 [  79 1111 1111 1111    0    0    7    3    0    0    0    0    0 1111 1111 1111 1111 1111]
 [  86 1111 1111 1111    0    0    4    2    1    0    0    0 1111 1111    0    0 1111 1111]
 [  93 1111 1111 1111 1111    0    5    4    2    0    0    1    0    1    0    0    0 1111]
 [ 100 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111]] Knock1 (max)


Az alsó sorban lévő 3 db 8-as érték eltűnt és itt valóban 4-5-re csökkentek. A megmaradt magas értékek alacsonyabb terhelésnél jeletkeznek, ahol a térkép nem módosult.

Itt tartok jelenleg. Sok fejlesztés, sok elemzés és sok teszt kell még ezután is.

5 megjegyzés:

  1. hi Mr positive. I got some questions. could you contact me at facebook? Piotr Uberna , thanks!

    VálaszTörlés
    Válaszok
    1. Dear Piotr!
      I'm sorry but I haven't got a facebook account. If you would like to contact me in private please send me your email address in a comment. If you delete the comment immediately after you post it nobody will know the address except me. (I will receive it in email.)
      Thank you.

      Törlés
  2. Szia. Csak ámulok, mintha a chiptuningot neked találták volna ki. Magyarországon egyébként magasan az egyik legjobb szakember lennél, belegondolva abba, hogy rendőr, gumis, mindenki csinálja, de nem érti.

    VálaszTörlés
  3. Szerintem neked mindegy lenne, milyen "hardwert" raknának az autó alá, meg az is, hogy milyen autó, hamar kiismernéd, szívesen fórumoznék ilyen emberekkel magyarul tapasztalatcsere miatt, de kevés van nagyon, főleg aki így leírja a tapasztalatait. Nekem a BMW M57 motor, ami magával ragadott, hasonlóképpen mindent összeszedtem a témaban, és most megcéloztuk a 400 lóerő feletti teljesítményt.

    VálaszTörlés
  4. Szia! Köszönöm az elismerő szavakat. Ez a fajta kódvisszafejtés valóban nem túl gyakori és nagyon-nagyon kevés forrást lehet találni, amit segítségül lehet hívni. Azonban a legtöbb esetben ez nem is feltétlenül szükséges. A teljesítmény optimalizálás néhány főbb térkép ismeretében kivitelezhető. Mindezek mellett én legfeljebb a műkedvelő szintet értem el, biztos vagyok benne hogy itthon is bőven vannak jobb szakemberek optimalizálás és kódvisszafejtés tekintetében is, még akkor is ha nem nagyon reklámozzák magukat vagy elvesznek a tömegben azok között, akik csak készen veszik a programokat és az egyéb kellékeket.
    Remélem sikerül elérned a célod és találsz majd valami hasznosat is a leírásaim között. ;)

    VálaszTörlés