ECU- styrning till en VW pumpdysediesel.
Re: ECU- styrning till en VW pumpdysediesel.
Några frågor här om en 8 bitars processor resp en med 32 bitar: Tar kompilatorn hänsyn till vilket och gör om tex en byte till nåt annat för att fylla upp "hålrummet" ? Blir koden användareffektiv? Jo jag förstår att denna processor är mycket snabbare/bättre men vad händer egentligen när man ändrar från 8 till 32 bitar, är det bara göra rakt av? Behöver inte jag som "programmerare" ta hänsyn till detta på nåt sett?
Re: ECU- styrning till en VW pumpdysediesel.
Ja bara att göra rakt av. Har du programmerat nåt speciellt för att atmegan är 8-bitars? Tror inte det. Storlek på datatyper hanteras av kompilatorn. Byte = byte. Det kan finnas alignment- problematik vad det kan heta på svenska. Men det hanteras av kompilatorn och en 32-bitars har mer av allt så dét spelar ingen roll om man slösar lite. Håller du dej på c/c++-nivån och arduino-nivå så är det bara att kompilera och köra. Lågnivå-grejor som register och sånt ja det kan hända och det är troligt att det görs på helt annat sätt på en ny arkitektur.
Re: ECU- styrning till en VW pumpdysediesel.
Ahh, det låter ju lätt och trevligt. Det ända som jag egentligen har tagit hänsyn vid programmering är att använda byte istället för int där det varit möjligt och unsigned int istället för long och inte gödslat med float i onödan, allt för att hålla nere koden och uppe hastigheten. Men med denna förbättring av processor så behöver man inte ta hänsyn till detta lika mycket?
Re: ECU- styrning till en VW pumpdysediesel.
Alltid bra att undvika float/double om det inte finns flyttalshårdvara. Bara att köra på annars.
Men som med allt så finns det till slut saker som blir en flaskhals, även på en 32-bitars.
Det tar lite längre tid att komma dit bara. Det är ingen mirakelkur som löser allt, och till
slut händer det att man ändå sitter där och försöker optimera saker. Och man kanske
behöver ge sej in på lågnivågrejor och man inser då att det ska göras på ett helt annat
sätt och att det tar en hel del tid att läsa in sej på det och att testa av så man fattat
det rätt.
Men som med allt så finns det till slut saker som blir en flaskhals, även på en 32-bitars.
Det tar lite längre tid att komma dit bara. Det är ingen mirakelkur som löser allt, och till
slut händer det att man ändå sitter där och försöker optimera saker. Och man kanske
behöver ge sej in på lågnivågrejor och man inser då att det ska göras på ett helt annat
sätt och att det tar en hel del tid att läsa in sej på det och att testa av så man fattat
det rätt.
Re: ECU- styrning till en VW pumpdysediesel.
Janno: Jag testade nu att lägga casen efter varandra och det funkade fint! Tackar för tipset. Nu kan jag skriva ner koden ganska rejält och ändå ha kvar allt nödvändigt.
Re: ECU- styrning till en VW pumpdysediesel.
Vad kul att du fick det att funka. Det gäller bara att se till att man kommer ihåg att sätta break på rätt ställe.
Man kan även göra såna här saker om man har kod som är delvis är lika.
Nu kommer 1 att göra allt från 1-4, 2 allt från 2-4, 3 och 4 gör samma sak, alla andra värden gör inget (hamnar i default).
Edit: satte dit parenteser runt (a) i switch
Man kan även göra såna här saker om man har kod som är delvis är lika.
Kod: Markera allt
switch (a)
{
case 1:
...
case 2:
...
case 3:
case 4:
...
break;
default:
break;
}
Edit: satte dit parenteser runt (a) i switch
Re: ECU- styrning till en VW pumpdysediesel.
När jag själv nu tittar på min ECU-sketch så behövs det nog lite förtydliganden: Det är ju tänkt att ha 2 tryckgivare, en för turbotryck, en för atmosfärstryck. 3 tempgivare, en för motortemp, en för ute temp, en för turbons utgångstemp. 1 spänningsavkännare också för att bedöma systemspänningen till spridarna. I dag har jag gjort fixvärden på dom för att kunna komma igång och sedan simulera olika tryck/temperaturer/spänningar för att efterlikna verklig miljö. Märk sedan att jag kommer inte att göra om några värden från tex 10 bit analogread till Celsius/Bar utan använda den som den är och bara skifta ner värdena tills dom stämmer bättre om så behövs, allt för att spara på tid/plats i kretsen. I min ECU-kontrolldel gör jag däremot om all rådata till temp, tryck mm så det blir förståeligt. Både ECU och ECU-kontroll kommer att delvis dela på givarna så jag bör direkt kunna se om en givare lämnar ut rätt signal till ECU:n via kontrollens utdata. Case 13/43: behandlar korrigeringsfaktorer som ökar/minskar insprutningstiden (mängden soppa) Insprutningtidens början beräknas i case 10, 11 och själva korrigering av insprutningsbörjan ("tändning") avgörs i case 14, 44 där även lägsta praktiska startvarv sätts. Jag har nu slagit samman dom case
som jag tror kan vara exakt lika, alla dom som bara räknar ut tandtid för att sen dividera i 26 ligger nu tillsammans (16-17 st) Det tar mycket mindre plats i IDE:n men blir givetvis samma storlek när det är kompilerat...
som jag tror kan vara exakt lika, alla dom som bara räknar ut tandtid för att sen dividera i 26 ligger nu tillsammans (16-17 st) Det tar mycket mindre plats i IDE:n men blir givetvis samma storlek när det är kompilerat...
Re: ECU- styrning till en VW pumpdysediesel.
Kommersiella insprutningssystem är ju baserade på olika tabeller men du verkar förlita dig på olika beräkningar för insprutningen. Hur kommer det sig?
Ett av mina största projekt var en arduino-styrning för en automatväxellåda och där har jag en växlingstabell i eeprom som den hela tiden läser ifrån. Det gör det ju väldigt enkelt att förändra och justera jämfört med att ha beräkningar i själva ecu-sketchen.
Ett av mina största projekt var en arduino-styrning för en automatväxellåda och där har jag en växlingstabell i eeprom som den hela tiden läser ifrån. Det gör det ju väldigt enkelt att förändra och justera jämfört med att ha beräkningar i själva ecu-sketchen.
Re: ECU- styrning till en VW pumpdysediesel.
Bosen: Tja, man får ju göra det man tror sig kunna... Nu vet jag inte hur man skulle lägga upp en tabell och få den att fungera samtidigt som jag faktiskt inte vet vad som skall stå i tabellen, det måste jag utröna och testa mig fram. Att Arduinon gör själva beräkningarna är nog inga problem, den tid det tar finns. Sen har jag alla konstanter högst upp i sketchen för att man skall slippa rota runt längre ner i koden, det lär väl behövas ändå men det minimerar. Skaffar jag mig ett EEPROM eller liknande så blir det väl där man får göra om vid förändringar istället? Jag kanske vill ha ett EEPROM ändå, måste tänka på saken.
Re: ECU- styrning till en VW pumpdysediesel.
Info om vad som borde stå i tabellen finns här: https://sites.google.com/site/vagecumap/
Re: ECU- styrning till en VW pumpdysediesel.
Jag kommer in där utan att vara medlem men skit samma. Jag kör nog vidare med "mitt" sätt, och skiter det på sig så får jag tänka om. Däremot så skall jag köra temperaturerna med NTC-motstånd som sitter inbyggt i turbotryckgivaren, jag har tre stycken likadana. På ECU:erna så spelar det ingen större roll men på övervakningsArduinon vill jag ju ha så någotsånär rätt visning av temp. Jag tror NTC-motståndet är på 2 kohm vid 25 grader, vad den visar vid dom andra temperaturerna vet jag inte men jag har mätt vid några olika temp och kommit fram till att den är inte linjär, speciellt inte vid kallare temperaturer.
Finns det någon färdig algoritm för detta?
Finns det någon färdig algoritm för detta?
Re: ECU- styrning till en VW pumpdysediesel.
Jo, det finns mycket på gratis-sidorna.Det är bara att börja i vänsterkolumnen uppifrån. Det sår väldigt mycket om just PD-motorerna så jag tror det finns mycket värden du kan använda dig av. t.ex insprutningsvinkel: https://sites.google.com/site/vagecumap ... aps-part-2
Jag förstår ditt sätt att tänka, men det blir lite svårt att beräkna allt då inte effektkurvan på en turbo är speciellt linjär. En icke turbo hade varit lättare att beräkna på det sättet som du gör. Men som sagt, jag tycker ditt projekt är riktigt imponerande!!!
Jag förstår ditt sätt att tänka, men det blir lite svårt att beräkna allt då inte effektkurvan på en turbo är speciellt linjär. En icke turbo hade varit lättare att beräkna på det sättet som du gör. Men som sagt, jag tycker ditt projekt är riktigt imponerande!!!
Re: ECU- styrning till en VW pumpdysediesel.
Jag tror du måste googla på givarens nummer för att få fram en tabell eller kurva på detta. Jag är ganska säker på att även detta sköts med en tabell i ECU normalt så det är inte säkert att det finns någon algoritm för det.Janson1 skrev: Jag tror NTC-motståndet är på 2 kohm vid 25 grader, vad den visar vid dom andra temperaturerna vet jag inte men jag har mätt vid några olika temp och kommit fram till att den är inte linjär, speciellt inte vid kallare temperaturer.
Finns det någon färdig algoritm för detta?
här finns ett exempel på en bosch-givare: http://www.bosch-motorsport.com/media/c ... 739pdf.pdf
EDIT:
Här finns faktiskt en generell algoritm för NTC-motstånd: https://www.allaboutcircuits.com/projec ... hermistor/
Re: ECU- styrning till en VW pumpdysediesel.
Bosen: tackar för länkarna. Jag är dålig, nä kass på att hitta nåt vettigt på internet hur jag än letar. Jag har letat efter relevant info om PD-dieslar i flera år utan nåt egentligen matnyttigt så alla mina beräkningar, antaganden är tagna ur luften med hänsyn till det jag vet om dieselmotorer rent allmänt. Det visade ju i och för sig stämma ganska bra då den startar och går. Tändfördröjning (dvs. den tid det tar från det att soppan sprutas in i cylindern tills dess den tar sig) har jag hittills inte kunnat utläsa någonstans. Jag antar den är beroende av flera faktorer såsom varvtal, belastning, turbotryck, motortemp, lufttemp, intern turbulens, bränslets tändvillighet och luftöverskottet, va det allt tro? Jag har i alla fall gjort en "algoritm" för det som jag tror påverkar mest. Nu har jag ju inga krav på avgasrening, inget större krav på tystgång, men jag tror i och för sig inte motorn klarar av för mycket bankningar så jag måste nog välja tystgång ändå. Bränsleförbrukningen tror jag inte jag kan göra ett skit åt mer än att hindra den från att ryka svart...
Re: ECU- styrning till en VW pumpdysediesel.
Det var en mycket intressant och detaljerad redogörelse.
Som jag förstår ska insprutningen alltid påbörjas vid sådan tid/vinkel btc att den är färdig exakt vid tdc.
Det blir förstås enklare att koda och kräver inte lika kraftig processor om man har det i tabeller som VW har gjort men ser inget som hindrar att man gör beräkningarna direkt som du gör om man har tillräckligt snabb processor.
Som jag förstår ska insprutningen alltid påbörjas vid sådan tid/vinkel btc att den är färdig exakt vid tdc.
Det blir förstås enklare att koda och kräver inte lika kraftig processor om man har det i tabeller som VW har gjort men ser inget som hindrar att man gör beräkningarna direkt som du gör om man har tillräckligt snabb processor.