Att förstå bansimulering

Har du hört talas om bansimulering?

Det är ett sätt att beräkna hur snabbt en bil teoretiskt kan ta sig runt en bana, utifrån bilens prestanda och spårvalet.

Bansimuleringen jag ska berätta om här har Tatsu tagit fram.

Enligt honom är den ”baserad på F1-bansimuleringen som publicerades i Honda R&D Technical Review och omgjord till ett Excel-kalkylblad”.

När jag först hörde talas om den tänkte jag: ”Vad i hela friden är det där?!”

En sådan som jag, som inte ens klarar att addera två tvåsiffriga tal, borde egentligen inte ens be Tatsu att lära mig något. Men han var snäll nog att förklara en massa för mig.

Tatsu har offentliggjort hela arbetet med att bygga simuleringen, eftersom han vill att den här typen av metod ska få större spridning.

Jag försökte själv sätta mig in i hur det fungerar genom att läsa artiklarna han publicerat:

 Så bygger du en Excel-baserad bansimulering (del 1)
 Så bygger du en Excel-baserad bansimulering (del 2)
 Så bygger du en Excel-baserad bansimulering (del 3)
 Så bygger du en Excel-baserad bansimulering (del 4)
 Så bygger du en Excel-baserad bansimulering (del 5)
 Så bygger du en Excel-baserad bansimulering (banritning)

Grundtanken förklaras i del 1, men det tog mig löjligt lång tid att bara förstå den artikeln.

Samtidigt är allt uppdelat i mindre avsnitt, så om du tar dig tid och går igenom dem ett i taget ska du nog kunna förstå till slut.

När man väl har förstått innehållet inser man hur genomtänkt och tydligt artikeln faktiskt är skriven.

Hade den inte varit så tydligt förklarad skulle jag antagligen aldrig ha förstått den … Det menar jag verkligen.

En liten utvikning: när jag gick på gymnasiet blev jag en gång kallad till en lärares arbetsrum och fick höra:

”Du har bra provresultat i alla ämnen utom matte. Varför går det så fruktansvärt dåligt på matteproven?! Vi har till och med pratat om dig på ett lärarmöte! Så du och några andra elever ska få gå ett särskilt matteprogram.”

Så i flera månader tvingades jag stanna kvar efter skolan och försöka lösa matteuppgifter som jag inte begrep ett dugg av.

Men vad skulle jag göra? Japanska och engelska var enkla, för där räckte det att memorera saker och skriva ner dem. När jag tittade på ett matteproblem hade jag däremot inte minsta aning om vad jag skulle göra.

Om till och med jag kunde förstå det här genom att kämpa på tillräckligt länge, är jag säker på att du också kan det.

Någon klok person sa visst en gång: ”Har du bara energi kan du göra vad som helst.”

Men hur full av energi du än är kan du inte skjuta iväg en Kamehameha, så jag tror inte att man kan göra precis allt.

Men just det här tror jag att du kan förstå.

I fortsättningen tänker jag inte beskriva de konkreta stegen för att bygga en bansimulering i Excel, utan försöka förklara grundtanken så som jag själv har förstått den.

Om jag delar upp grundprincipen bakom simuleringen handlar den om fyra saker.

Först bestämmer man spårvalet och sedan gränserna för vilka krafter däcken kan utveckla längs den linjen.

Därefter beräknar man vilken hastighet som är möjlig vid varje punkt, och till sist varvtiden för ett helt varv.

Grundtanke 1: ”Spårvalet kommer först”

För det första är spårvalet inget som beräknas fram.

Man matar själv in krökningsradien hundratals gånger för att bestämma körlinjen.

I princip matar man in värden så att de följer den faktiska körlinjen.

Sedan visar beräkningarna: ”Om du kör den här linjen, vilken är den snabbaste varvtid du kan uppnå?”

Om du tänker ”kanske skulle en sådan här linje vara snabbare” kan du köra beräkningen igen med den linjen.

Blir den beräknade varvtiden kortare är det bra. Blir den längre är det inget att ha. Resultatet är alltså enkelt att bedöma.

Man fortsätter att rita upp olika körlinjer och beräkna tiderna tills man hittar den snabbaste.

Grundtanke 2: ”Hur fort kan bilen köra när sidaccelerationen är som störst?”

Först mäter man bilens maximala sid-G med en GPS-datalogger.

Med GPS-baserade dataloggrar som LAP+ kan det visade sid-G-värdet vara högre än det verkliga. Därför tar man två värden från punkten där högsta sid-G registrerades: körlinjens krökningsradie och hastigheten. Utifrån dem räknar man sedan fram det verkliga sid-G-värdet.

Själva uträkningen är inte viktig här, så den hoppar jag över. Är du nyfiken kan du läsa Tatsus artiklar om hur man bygger bansimuleringen.

Just nu räcker det att komma ihåg att man kan beräkna sid-G om man känner till krökningsradien och hastigheten.

Omvänt kan man också beräkna hastigheten om man känner till de andra två.

Ju mindre krökningsradie, desto högre sid-G vid samma hastighet. Vill man i stället behålla samma sid-G måste man sänka hastigheten när krökningsradien minskar.

Utifrån mina egna kördata satte jag bilens maximala sidoacceleration till 1,15 G.

Eftersom körlinjen redan är bestämd känner vi krökningsradien vid varje punkt i varje kurva. Därför kan vi till exempel räkna ut:

Vilken hastighet ger 1,15 G i sidoacceleration i kurva 1?

Och i kurva 2? Kurva 3?

(Sedan behöver vi också bestämma maximalt G vid acceleration och inbromsning, men det är lite krångligare, så jag hoppar över det här. Du behöver inte förstå det just nu. Efter diverse uträkningar satte jag maxvärdena för min bil till 0,7 G vid acceleration och 0,8 G vid inbromsning.)

Grundtanke 3: ”Däckens grepp kan inte överskrida friktionscirkeln”

Här har vi friktionscirkeln, som ni säkert alla känner till.

De krafter ett däck kan utveckla i längs- och sidled är begränsade, och det brukar illustreras med en ”friktionscirkel”.

I bansimuleringen jag presenterar här uttrycks det som ”däckgreppets utnyttjandegrad”.

I den här simuleringen definieras hur stor del av däckens grepp som utnyttjas så här:

{ (G i längsled ÷ maximalt G i längsled)^2 + (G i sidled ÷ maximalt G i sidled)^2 }^0,5

Återigen är själva formeln inte det viktiga. Det räcker att komma ihåg att om du känner till ”de aktuella G-värdena i längs- och sidled” och ”de högsta G-värden däcken kan klara i respektive riktning”, kan du beräkna hur stor del av däckgreppet som utnyttjas.

Precis på friktionscirkelns gräns är utnyttjandegraden 1 (100 %).

Grundtanke 4: ”Beräkna hastigheten baklänges från punkten med lägst hastighet”

Det här är själva huvudpoängen.

Anta till exempel att den lägsta hastigheten i kurva 2 på Takasu Circuit är 45 km/h.

Då måste bilen hålla över 45 km/h både före och efter punkten där hastigheten är som lägst.

Det är ju därför den kallas ”lägsta hastigheten”.

Längs en körlinje blir krökningsradien i allmänhet mindre ju närmare man kommer punkten med lägst hastighet och ökar sedan igen när man lämnar den.

Vid ingången till en kurva börjar man exempelvis med ratten rakt fram, vrider den gradvis mer och når största rattutslaget där hastigheten är som lägst. Då blir körlinjens krökningsradie naturligtvis allt mindre i takt med rattutslaget.

Nu ska vi göra ett första antagande om ”hastigheten vid varje punkt längs körlinjen”.

Vi antar att bilen vid varje punkt på körlinjen håller just den hastighet som krävs för att utveckla 1,15 G i sidoacceleration där.

Som jag förklarade i grundtanke 2 är hastigheten vid ett visst sid-G bestämd när krökningsradien är känd.

Och eftersom vi antar att sid-G hela tiden är 1,15 G, varierar bilens hastighet med krökningsradien.

Självklart blir hastigheten lägre när krökningsradien är mindre och högre när radien är större.

Vi tar kurva 2 på Takasu Circuit som exempel.

Först har vi en raksträcka fram till kurvan.

En rak linje har krökningen noll. Om man där skulle försöka uppnå 1,15 G i sidoacceleration skulle den beräknade hastigheten bli oändlig.

Det betyder förstås inte att man faktiskt kan köra oändligt fort. Matematiskt innebär det bara att om man räknar ut den hastighet som krävs för att utveckla 1,15 G i sidoacceleration enbart utifrån krökningen, går hastigheten mot oändligheten när krökningen närmar sig noll.

I verkligheten är linjen inte helt rak, så krökningen är lite större än noll, men den beräknade hastigheten blir ändå extremt hög.

(Jag upprepar: vi talar enbart om den hastighet som skulle krävas för att utveckla 1,15 G i sidoacceleration vid den aktuella krökningsradien.)

Omvänt är körlinjens krökningsradie som minst vid punkten med lägst hastighet i kurva 2, omkring 15 meter.

LAP+ kan också visa svängradien, så tittar du på verkliga kördata ser du antagligen att de flesta hamnar ungefär där.

Och utifrån mitt ursprungliga antagande säger vi att hastigheten vid den punkten är cirka 45 km/h.

När krökningsradien minskar från oändligheten till 15 meter passerar den successivt värden som exempelvis 500 m, 100 m, 50 m, 30 m, 20 m, 17 m …

Beräknar man hastigheten som krävs för att nå 1,15 G i sidoacceleration vid var och en av de punkterna kan man få ungefär 270 km/h, 120 km/h, 85 km/h, 65 km/h, 55 km/h, 50 km/h …

Men här kommer de dåliga nyheterna: min verkliga bil klarar inte att ta sig genom kurva 2 med en sådan hastighetsprofil … 85 km/h, 65 km/h, 55 km/h, 50 km/h …

Det beror på att hastigheterna räknades fram för att ge 1,15 G i sidoacceleration vid respektive krökningsradie. Den däckkraft i längsled som behövs för att bromsa har alltså inte räknats med.

Ett däck kan inte utveckla mer grepp än friktionscirkeln medger, och min bil klarar högst 1,15 G i sidoacceleration.

Men tittar man på hastigheterna ovan ser man att hastigheten sjunker.

Hastigheten sjunker … vilket betyder att bilen bromsar.

Om vi bortser från yttre krafter som luftmotstånd måste bilen använda däckkrafterna för att sakta ner. Det skulle alltså innebära att ”däcken hela tiden använder allt tillgängligt grepp i sidled för att utveckla 1,15 G, samtidigt som de på något sätt använder ytterligare grepp i bromsriktningen”.

Det går helt enkelt inte. Det är en motsägelse.

Så hur kan vi beräkna det verkliga hastighetsförloppet?

Svaret är enkelt: börja med att sänka hastigheten vid varje punkt.

Vid lägre hastighet blir sid-G lägre vid samma krökningsradie, och då kan det återstående däckgreppet användas till att bromsa.

Hurra! Problemet löst. Slut på historien.

… Nej, så enkelt var det inte. Hur mycket måste vi sänka hastigheten?

Ska vi gå från 85 km/h hela vägen ner till 10 km/h? Eller kanske till 2 km/h?

Då skulle varvtiden bli löjligt lång.

Hela poängen med en bansimulering är ju att räkna ut snabbast möjliga varvtid, så det vore inte särskilt användbart.

Vi vill alltså hålla hastighetssänkningen så liten som möjligt. Vi börjar med att sänka hastigheten bara 1 km/h och räknar igen.

Det är här ”däckgreppets utnyttjandegrad” från grundtanke 3 kommer in i bilden.

Eftersom alla nödvändiga storheter redan är bestämda behöver vi bara mata in siffrorna och räkna ut utnyttjandegraden.

Resultatet? Även när vi sänker hastigheten med bara 1 km/h, från 85 km/h till 84 km/h, ligger däckgreppets utnyttjandegrad fortfarande långt över 100 %.

Det duger inte.

Då räknar vi direkt om med 2 km/h lägre hastighet.

Resultatet … fortfarande över 100 %.

Vi räknar om med 3 km/h lägre hastighet.

Inte heller bra.

Sedan 4 km/h.

Fortfarande inte.

Sedan 5 km/h.

Inte tillräckligt.

Och fungerar inte det testar vi 6 km/h … 7 km/h …

… och fortsätter att upprepa beräkningen tills vi når:

Exakt 100 %!!!

Med makrofunktionen i ett kalkylprogram kan man utföra just sådana upprepade beräkningar.

Man kan alltså låta datorn räkna om automatiskt, gång på gång, tills den hittar det värde man söker.

När man har hittat hastigheten där däckgreppets utnyttjandegrad når 100 % använder man samma metod för att räkna ut hastigheten vid punkten före, alltså bakåt längs körlinjen.

På så sätt räknar man fram hastigheterna bakåt under inbromsningen.

Samma förfarande används när man räknar fram hastigheterna under accelerationen.

Men vid inbromsning räcker det att ta hänsyn till däckgreppets utnyttjandegrad, medan man vid acceleration även måste ta hänsyn till ”drivkraften per däck” och ”antalet drivande hjul (drivsystemets utformning)”. Därför blir beräkningen lite krångligare.

I grunden gör vi ändå samma sak.

När hastigheterna för acceleration respektive inbromsning har beräknats väljer man det lägre värdet som ”hastigheten vid den punkten”.

Då bestäms hastigheten vid varje punkt längs körlinjen under ett helt varv, och därifrån kan man beräkna varvtiden.

Den här gången har jag hoppat över de flesta konkreta beräkningsmetoderna och bara förklarat grundtankarna, så långt jag själv har förstått dem.

För att faktiskt bygga en bansimulering i Excel måste man lösa flera praktiska problem, så om du vill försöka själv rekommenderar jag att du fortsätter läsa Tatsus publicerade artiklar.

Det kan ha blivit en krånglig förklaring, men jag tror att det är ungefär så här det fungerar.

Tidigare hade jag inte riktigt förstått vad som faktiskt händer rent fysiskt när en bil kör runt en bana så fort som möjligt, men nu börjar bilden klarna lite.

Förresten skiljer sig den accelerationsprestanda man utgår ifrån när man beräknar hastigheten på accelerationssidan mellan 2WD och 4WD, eller mellan bilar med låg och hög effekt. Därför blir även det optimala spårvalet lite olika (beroende på kurvans form).

Dessutom tar beräkningen inte alls hänsyn till girande moment eller liknande faktorer. Hur lätt eller svårt bilen har att svänga har därför ingen direkt påverkan på den varvtid som simuleringen räknar fram.

Simuleringen beräknar bara hur bilens tyngdpunkt förflyttas.

I en verklig bil påverkar däremot viktfördelningen och andra faktorer hur bilen uppför sig.

Hur påverkar de då resultatet?

De påverkar hur långt den verkliga bilen hamnar från idealfallet.

Med andra ord finns det någon faktor som hindrar bilen från att följa den ideala linjen med den ideala hastigheten.

Faktorer som drivlinans utformning, däckens respons, hur snabbt bilen reagerar på styrutslag, förstärkningens storlek, dämparinställningar, hjulinställningar, hur mycket karossen kränger och hur lastförskjutningen sker påverkar alla accelerationen, inbromsningen eller kurvkrafterna.

I slutänden kan allt uttryckas som G i längs- och sidled vid en viss punkt.

Det simuleringen beräknar är alltså den teoretiska varvtiden om bilen kan följa den ideala linjen med den ideala hastigheten.

Det handlar om hur mycket den verkliga bilen avviker från idealet på grund av inställningarna eller förarens körning.

Jag tror att det också är viktigt att förstå det när man försöker begripa vad som gör en verklig bil snabb.

Så, det var min förklaring av hur jag tänker kring bansimulering.

Nå, kan ni skjuta iväg en Kamehameha nu … jag menar, förstod ni grundtanken?

Det här sättet att tänka är väldigt viktigt om man vill förstå hur en bil beter sig när man försöker köra en bestämd bana så snabbt som möjligt, så jag hoppas att du har nytta av det.