1998-04-18

Denna manual är skriven i html-text.Om du läser den med en browser kan
du klicka på rubriker och automatiskt komma till rätt avsnitt.

Vad kan jag använda programmet till?		   	 
Hur startar jag programmet?			   	
Vad gör jag om programmet avbryts?				
Vad visar skärmen?						    	
Hur kör jag bilen?
Hur ändrar jag ingångsvärden och konstanter?   		
Hur väljer jag mod?				    		
Hur beskriver jag en körcykel?			    		

Hur beskriver jag en förbränningsmotor?	    		
Hur beskriver jag växellådan och fordonet 
Hur gör jag en fordonsfil för min bil?
Koppling,friläge och tomgång??     		
Hur kan jag ändra tabeller under pågående simulering? 
Hur kan jag få kurvor som visar vad som hänt? 		
Hur ändrar jag vad som sparas?			    	
Hur ändrar jag fordonskonfigurationen?		    	
Hur ändrar jag använda formler?			    	
Hur skriver jag egna komponentbeskrivningar?	    	
Hur använder jag tabelläsarna? Se Hur skriver 
    jag egna komponentbeskrivningar?
Krav på tabeller					    		
Vad gör programmet?					    	
Några simuleringsfel
Dataspel
Några tips
Hybridbil?
Hur kan jag komplettera grafiken med egna bilder?
Om .BMP och .SIM bilder


Vad kan jag använda programmet till?
====================================

Ett simuleringsprogram är ett konstruktions- och utvecklingsverktyg.
Men det kan också användas av produktanvändare som vill studera en 
produkts egenskaper och som ren leksak.Nedanstående synpunkter avser
programmet som konstruktionshjälpmedel som 
produktinformation och som leksak.

Konstruktionshjälpmedel:
Ett simuleringsprogram beskriver vad som händer när man använder
ett antal samverkande komponenter på ett visst sätt.Om man vet
exakt hur motor,kraftöverföring,hjul och kaross uppför sig var
för sig och kan beskriva exakt hur de samverkar kan man åstad-
komma ett simuleringsprogram som anger hur en bil kommer att bete
sig.

För alla datorprogram gäller regeln: sopor in = sopor ut.Vet man
inte hur ingående komponenter beter sig eller hur de samverkar
kan man inte åstadkomma en meningsfull simulering.Kraven på
detaljerad specifikation av komponenter blir alltså mycket högre
om man skall simulera ett system än om man skall bygga det och
prova i verkligheten.

Simulering ställer alltså mycket höga krav på specifikation.Att
genomföra det merarbete som detta innebär kan ändå vara motiverat
därför att man sedan enkelt kan ändra i specifikationerna för att
via ett simuleringsprogram se hur varje ändring påverkar slutre-
sultatet.Har man väl lyckats åstadkomma bra komponentbeskriv-
ningar och bra beskrivningar av komponentsamverkan för en bil och
vill veta vad det skulle innebära att t ex minska förluster i
växellådan med 10 % kan man enkelt mata in denna ändring i simu-
leringen för att se vad det skulle betyda vid olika driftfall.Är
alla komponenter och alla samband rätt beskrivna får man ut ett
svar som är rätt.

Ett stort problem när det gäller att skriva specifikationer är
att finna lämpliga presentationsformer.Vad skall man ange?Hur
noggrant skall det anges?Skall man ställa upp tabeller eller rita
kurvor o s v.För att kunna göra simuleringar måste man bestämma
sig för någon lätt dataläsbar form.Om man kan enas om hur speci-
fikationer skall skrivas för simulering har man därmed också fått
fram ett sätt att beskriva komponenter.Alla komponentleverantörer
kan då presentera sina produkter via diskettlagrade specifikatio-
ner som enkelt kan jämföras.

Man kan likna ett simuleringsprogram vid en TV.Den är av föga
värde så länge ingen sänder program som den kan omvandla till
bild.På samma sätt är ett simuleringsprogram av föga värde så
länge ingen tillhandahåller specifikationer som det kan omvandla
till systemprestanda,eller omvänt tillhandahåller systemprestanda
som kan omvandlas till komponentspecifikationer.

Produktinformation:
Det är svårt att beskriva en komplicerad produkt som en bil på 
sådant sätt att alla användare vet hur man kan utnyttja den på 
bästa sätt.För att inte kostnaden för körkort skall bli orimlig 
måste körskolor begränsa sig till en ganska översiktlig bild av
hur en bil fungerar.Bilförsäljare hinner,i bästa fall,visa några
finesser.Och bilägaren lär sig med åren via den hårda vägen några
knep.Men många egenskaper kommer aldrig till full användning.I 
vissa fall för att de är svåra att bekriva,i vissa fall för att 
inte ens tillverkaren känner till dem.

Med ett simuleringsprogram kan bilägaren,eller den presumptive bil-
köparen beskriva en viss väg och "köra" den utan störande inverkan 
från trafik o dyl.Man kan få svar på frågor som "Spar man bensin på 
att ta fart inför en uppförsbacke?","Påverkar det bensinförbrukningen 
om jag ändrar min hantering av växellådan?","Om jag ökar farten ökar
luftmotståndet men motorns verkningsgrad ökar också så vilken fart bör
jag välja om jag vill spara bensin?","Hur skall jag växla för att 
släppa ut så lite NOx som möjligt?","Hur mycket bensin kostar det om
jag sätter på en takbox på semesterresan?","Hur påverkas acceleration
och bensinförbrukning om jag lastar bilen med fyra personer och 100 kg
bagage?" o s v.

De specifikationer som ligger med programmet beskriver normala 
egenskaper för 80-talsbilar.Som framgår nedan kan du enkelt ändra 
om du kan få fram nyare uppgifter för de bilmodeller som du är 
intresserad av.

Jag har en del ytterligare uppgifter om körcykler,motorer och fordon.
Hör av dig om du är intresserad av detta.

Leksak:
Programmet kan användas som ett vanligt dataspel.

Du kan beskriva banor i Tidcykel eller Karta och tävla med dig själv 
eller andra i att köra längst,på kortast tid,med minsta bensinåtgång,
med minsta utsläpp av HC o s v.Du kan ändra bilens egenskaper,t ex 
sätta in en mycket liten motor och se om du kan ta dig upp för backar,
du kan lägga in ökat rullmotstånd genom att ändra fordonsfilen för att 
"köra" banor i snömodd,du kan lägga in upp till tio växlar och prova vad
som händer om du försöker variera motoreffekten i varvtalsled snarare än
i momentled o s v.


Hur startar jag programmet?
===========================

I nedanstående beskrivning förutsätts att du har en PC (programmet 
går inte att köra på MAC).

Lägg alla filerna i samma directory och kör START.BAT.

Programmet hämtar hela tiden värden från tabeller på hårddisk 
eller diskett.På moderna datorer fungerar hårddisken så bra att 
hämtning från den knappast märks.Kör du från diskett däremot märker
du att programmet då och då stoppar upp för att hämta nya värden.

På äldre datorer var detta ett stort problem och det finns därför en 
möjlighet att komma ifrån detta.

Om du inte vill att programmet hela tiden skall hämta värden från
diskett eller hårddisk gör du på följande sätt:

Lägg in RAMDRIVE.SYS (ingår i hjälpfiler till DOS) i bootdirectoryt.
Gå till CONFIG.SYS.
Lägg till en rad med
    DEVICE=RAMDRIVE.SYS 24
Boota om.

Datorn lägger nu upp en ramdrive.Kolla vad den heter (använd t ex "Den
här datorn").Om den t ex heter D: går du med en texteditor in i FIL.VAL 
och döper om de filer som beskriver TIDCYKEL,KARTA,MOTOR och FORDON genom
att sätta D: framför namnen.När du så kör programmet kommer det att hömta
dessa filer från aktivt directory,lägga över dem på ramdriven och därefter
hämta värden från ramdriven.Du kan också sätta D: framför namnen på resul-
tatfilerna så att programmet lagrar resultat på ramdisken men då bör du 
välja betydligt större ramdisk än 24 kB.

Men på en normalt snabb dator behöver du inte göra detta.

START.BAT börjar ev med annonssidor.Så följer ett par sidor med
informationstext och så kommer själva programmet KONVBIL.EXE.
Under detta förlopp får du hela tiden besked på skärmen om hur 
du skall komma vidare.

Programmet KONVBIL.EXE börjar med fyra tablåer där du kan ändra de
värden som programmet arbetar med.Hur du ändrar och hur du går
vidare framgår av texten på skärmen.

I tablån över använda filer anger du filnamn t ex D:KARTA.000.
Programmet letar då efter KARTA.000 i aktivt directory och lägger 
över filen till D:KARTA.000 för att i fortsättningen arbeta med 
D:KARTA.000.Om D: är en diskdrive ger detta något snabbare hantering 
och mindre slitage på diskenheterna.Vill du använda filerna direkt i
aktivt direktory anger du inte någon diskdrive utan enbart t ex 
KARTA.000.

Principen för filöverföring är följande:Om andra tecknet i angivet namn 
är : eller om första tecknet i infilsdirectory ligger mellan A och z görs 
överföring.Om andra tecknet i angivet namn är : tas de två första tecknen
bort när programmet söker efter infilen.Det söker alltså efter en infil med 
ett namn som motsvarar infilsdirectory+ återstående tecken.Filen läggs så 
över till angivet namn.


Vad gör jag om programmet avbryts?
==================================

Den diskenhet som anges för in och utfiler måste motsvara en reell 
diskenhet eller en ramdisk.Annars får du exekveringsfel när programmet 
försöker läsa eller skriva på en disk som inte finns.Ändra då diskenhet 
i FIL.VAL.

Om tabelläsarna kommer till filslut utan att ha funnit något
värde som motsvarar det eller de ingångsvärde(n) som den anropats
med avbryts exekveringen med Halt.Före avslut lägger då fil-
läsaren upp en fil ERROR.TAB i aktivt directory och skriver i
denna in information om orsaken till avbrottet.Om programmet
avbryts kollar du alltså om du i aktivt directory har fått en fil
som heter ERROR.TAB.Om så är fallet läser du den med någon ord-
behandlare för att se vad som orsakade avbrottet.När du läst den
kan det vara lämpligt att radera den så att du kan se vad som
hänt nästa gång programmet avbryts utan att vara osäker på om du
läser en ny ERROR.TAB eller en som står kvar från förra av-
brottet.(Detta gäller inte Tidcykel och Karta).


Vad visar skärmen?
==================

När du gått igenom de inledande tablåerna visar skärmen en
instrumenttavla med följande innehåll:

Överst anges vilket fordon du simulerar och dagens datum.Därefter
följer ditt namn så att man kan se vem som gjort simuleringen om du 
sparar skärmbilden (sparas med "Print Screen").I tablån med använda
filer finns en rad med ditt namn som du kan ändra där.Vill du ändra 
det permanent ändrar du med en texteditor i FIL.VAL.
	
Övre raden avslutas med att den aktuella körtiden presenteras.Angivet 
värde är körd tid i sekunder.

På nästa rad anges accelerationen under senaste beräkningscykeln
i m/s2.

Om du valt någon mod där värden inte hämtas från en körcykelfil
anges koden för mod(er) efter accelerationen.

Hastigheten anges av en hastighetsmätare där övre kanten anger
begärd hastighet och huvudstapeln verklig hastighet.

Strax under hastighetsmätaren står en siffra,cl/mil och ytter-
ligare en siffra.Den första siffran anger bensinförbrukningen 
under hela körningen,den andra anger bensinförbrukningen under
senaste beräkningscykeln.I båda fallen är sorten cl/mil.

Längre ned under hastighetsmätaren finns längst till vänster en 
bensinmätare som går från noll till full tank.Under denna anges 
kvarvarande bensinmängd i cl.

Mitt under hastighetsmätaren finns en vägmätare som anger körd
sträcka i km med en decimal.

Under vägmätaren finns en linje som visar hur marken lutar.Till
höger om denna anges lutningen i % och höjd över startpunkt i m.

Nedtill,till höger om bensinmätaren finns tre mätare för CO , NOx 
och HC.Under dessa anges motsvarande utsläpp i g.Denna siffra avser 
det totala utsläppet under hela körningen.Stapeln växer till 100 g.
Därefter blir den dubbelt så bred och växer med en tiondel av tidi-
gare ökningstakt.Den når alltså första stapelns längd vid 1000 g.
 
Till höger om utsläppsmätarna finns en motoreffektmätare.

Och längst ut till höger finns en stapel som anger bromskraft.

Om du väljer Vindruta = N visar skärmen enbart det som beskrivits 
ovan.På rad 4 kan du då välja skala i höjdled för instrumenten.Du
kan,i stället för siffervärde,ange C(GA),E(GA) eller V(GA) och får
instrumentet anpassat till dessa format.

Men du kan också sätta Vindruta till J , 2 ,3 , 4 , 5 eller 6.Instru-
menten samlas då på skärmens övre halva och underdelen används för
en stiliserad väg eller för musseldiagram.

Vindruta=J: Se Dataspel

Vindruta=2 , 3 , 4 , 5 eller 6: Undre delen av skärmen visar ett
musseldiagram för verkningsgrad,CO,NOx,HC resp bensinflöde.Var du för
ögonblicket befinner dig i diagrammet visas med en blinkande punkt.

När den blinkande punkten flyttar sig lämnar den kvar ett spår i 
diagrammet.Du kan alltså i efterhand följa var du har varit även om
du inte kan se hur länge du har stått kvar i varje punkt.

Uppritningen av musseldiagrammet tar en liten stund.Tålamod är en dygd!!



Hur kör jag bilen?
==================

Bilen kör automatiskt och hämtar hela tiden erforderliga uppgifter 
från en fil som beskriver en körcykel (tidcykel eller karta).I den 
första tablån med filnamn betämmer du namn på den körcykel som 
programmet skall leta efter.Genom att ändra och skriva nya körcykel-
filer kan du lägga upp nya banor som bilen får köra.Växlingspunkterna
hämtas från en speciell fil som också namnges i första tablån.

En viktig fördel med att använda automatisk körning är att körstilen 
inte ändras från gång till gång.Vill du t ex veta hur bensinförbruk-
ningen påverkas om du ändrar växlingspunkter på en automatlåda kan du 
naturligtvis köra en verklig bana,sätta in en ny automatlåda och köra
på nytt för att se vad det gav.Men detta är mycket svårt.Hur väl du än 
försöker köra med samma fart och samma acceleration kommer du att 
trampa lite olika hårt på gasen och få variationer som döljer den skill-
nad du ville mäta.Simuleringsprogrammet däremot beräknar gaspådraget på 
samma sätt varje gång du kör banan.

Men du kan,när du vill,gå in och ta över körningen.

Du kan köra med tangentbordet,med mus eller med joystick.

Hur du styr med mus eller joystick framgår av avsnittet 
Hur väljer jag mod? nedan.

Om du går in från tangentbordet kommer du till en mod där programmet 
behåller de värden du matat in.Du får alltså i fortsättningen hela 
tiden styra från tangentbordet.

Kör med siffertangenterna till höger på tangentbordet (tänd NumLock-
lampa).

   4  sväng vänster
   6  sväng höger
   7 och 9 ger brantare svängar (med risk för sladd).
  Svängar hämtas alltid från tangentbord,mus eller joystick,aldrig från
  körcykelfil.
   8   manuell styrning av motoreffekt,ökad effekt
   2   manuell styrning av motoreffekt,minskad effekt
   0   bromsning (stryper motoreffekten,effektpådrag lossar bromsen)
   G   manuell växling,högre växel
   g   manuell växling,lägre växel
   A,a automatisk växling
   vänster musknapp   manuell växling,lägre växel
   höger musknapp     manuell växling,högre växel
   >   manuell styrning av hastighet,lägre hastighet
   >   manuell styrning av hastighet,högre hastighet
   M   avbrott och återgång till inledande tablåer
   V   avbrott och presentation av aktuella variabelvärden

Du kan också styra motoreffekten med I och P (ökad effekt) samt i och p
(minskad effekt).

8,2,I och i ändrar effekten i steg om maxeffekt (enl tablå två rad ett)
dividerad med 30 för varje beräkningscykel.För att gå från helt strypt 
motor till fullt pådrag tar det alltså 30 beräkningscykler.P och p ändrar
motoreffekten i steg om 0,5 kW.

Programmet kollar hela tiden i tabell 1 i förbränningsmotortabellerna att 
inte max moment d v s WOT-momentet (Wide Open Throttle) överskrids.I så 
fall begränsas momentet vilket du märker genom att det inte går att öka 
motoreffekten.

< och > ändrar begärd hastighet med 1 m/s för varje beräkningscykel.

0 ökar för varje beräkningscykel bromsningen med maximal bromskraft 
(enligt tablå två rad nio) dividerad med 5.Manuellt motorpådrag medför
att bromskraften omedelbart faller till noll.OBS! 0 ändrar inte 
programmets mod.Du kan inte använda bromsning med 0 när bilen kör
efter begärd hastighet d v s i körcykelmod eller i mod >.

Om man vill se hur mycket det betyder om man kopplar ur och slår av
motorn så att bilen ibland får frirulla kan man stänga motorn genom 
att trycka på C.Motorn stängs då av och bilen frirullar men varvtals-
räknaren "fastnar" och visar inte rätt värde.När man drar på motoreffekt
t ex med 8 går motorn igång och börjar dra bränsle.Om man trycker på C i
mod 1.M eller 1.Y slår motorn ifrån på vanligt sätt.För att sedan få 
igång motorn behöver man trycka på någon tangent men man måste då 
välja någon tangent som inte ändrar moden,t ex kan man trycka på 5 
eller ge en kort bromsning med 0.





Hur ändrar jag ingående värden och konstanter?
==============================================

Programmet utvecklades ursprungligen som ett hjälpmedel för jäm-
förelser mellan konventionell bil,hybridbil och elbil.Det var då 
viktigt att samma ingångsvärden kunde användas för alla biltyper.
Jag har behållit detta.Det är därför som de inledande tablåerna 
innehåller tomma rader.Motsvarande filer för ingångsvärden 
(FIL.VAL , CONS.VAL , CONS2.VAL och UTG.VAL) måste skrivas med 
rader även för sådana ingångsvärden som inte används för konventionell 
bil.

När det gäller maximal motoreffekt används för hybrid- och elbil i
stället en begränsning av maximal motorström.Programmet för konven-
tionell bil räknar om denna ström till effekt genom att multiplicera 
med 120 (konstant batterispänning = 120 V).Det värde som skall stå på
rad 1 i CONS.VAL är alltså max effekt dividerad med 0,12.När du ändrar
i tablån däremot anger du direkt effekten i kW.

I början på programmet får du upp en tablå där du kan se var
programmet hämtar ingångsvärden och lägger resultat.I denna tablå
kan du även ange ditt namn vilket kan vara bra om du vill spara
skärmbilder och se vem som gjorde simuleringen.Så följer en tablå 
som anger använda bilkonstanter.Efter denna kommer en tablå som anger 
programkonstanter och slutligen en tablå som anger ingångsvärden för 
vissa variabler.Vid varje tablå har du möjlighet att ändra gällande 
värden.


Under pågående körning kan du nå dessa inledande tablåer genom
att trycka på M.Simuleringen stannar då och går till de inledande
tablåer där du kan ändra filnamn,konstanter och variabler.Dessa
har nu sina aktuella värden och du kan alltså se vilka värden
programmet arbetade med i avbrottsögonblicket och om du vill kan
du ändra dessa värden.

Observera att om du avbryter programmet,t ex med M,och körningen går 
i realtid får du ett orimligt stort tidsinkrement när du kommer till-
baka till körningen.Detta gäller speciellt om du använder mussel-
diagram eftersom det tar en stund att återrita dessa.Om du på detta
sätt avbyter en körning förlorar du också information om tidigare 
arbetspunkter.Du får ett nyritat musseldiagram.Detta är alltså också
ett sätt att rensa bort gamla arbetspunkter ur ett musseldiagram som
blivit nerklottrat av arbetpunkter.

I första tablån anges vilka tabellfiler programmet använder.Det
finns en viktig skillnad mellan att ändra dessa i programmets
början och att ändra dem under pågående körning.

Om du anger en diskdrive när du startar programmet t ex
D:KARTA.000 kommer programmet att leta efter filen KARTA.000 i
aktivt direktory,föra över den filen till ramdiskfilen
D:KARTA.000 och sedan använda sig av denna ramdisk-fil.Om du
sedan under körningens gång ändrar till t ex D:KARTA.001 kommer
programmet enbart att leta på ramdisk D: efter D:KARTA.001.Finns
inte den filen stannar programmet med ett exekveringsfel.
											6 (22)

Om du har programmet i A: tillsammans med filerna A:ICMOT.000 och
A:ICMOT.001 och du vill börja med att använda A:ICMOT.000 kan du föra
över den till ramdisk D: genom att i programmets början ange
D:ICMOT.000 (Läsning från ramdisk är skonsammare mot diskettsta-
tionen och snabbare än läsning från diskett).Filen A:ICMOT.001 förs 
däremot inte över till ramdisk och du måste alltså ange den som 
ICMOT.001 när du vill gå över till den.

I vissa fall finns ett sätt att komma runt detta problem.Om du
vet att du enbart kommer att arbeta med karta-filer behöver du
inte filen Tidcykel.Du kan då på rad 1 ange D:ICMOT.001 vid
programstarten.Resultatet blir att A:ICMOT.001 förs över till
D:ICMOT.001. Du kan sedan byta mellan D:ICMOT.000 och D:ICMOT.001 
men om du väljer Cykeltyp = Tidcykel spårar programmet ur.

Du kan också trycka på V under pågående körning.Du får då upp de
flesta av de variabler som du inte kommer åt via M-kommandot.
Dessa variabler anges med de namn de har i programmet.De går att
ändra men det finns stor risk att sådana ändringar ger egendom-
liga resultat.

I nästa tablå anger du de konstanter som beskriver den aktuella bilen.

För rad 3 Fordonsmassa och rad C CdA gäller att du kan ange -1.Progam-
met letar då i slutet på den fil som beskriver fordonet för att finna 
den fordonsmassa och det CdA som tabellen är gjord för.Det sätter så 
fordonsmassa och CdA till dessa värden.Har du angett positiva värden 
som avviker från dem som tabellen är gjord för gör programmet en omskal-
ning.Denna tillgår så att luftmotståndet med tabellens CdA dras ifrån 
tabellens värden.Återstående rullmotstånd anses proportionellt mot 
fordonsmassan och omräknas till den massa du angett.Så skalas luftmot-
ståndet om till det CdA du angett och läggs till rullmotståndet.

CdA är bilens tvärsnittsyta A gånger en luftmotståndskoefficient Cd som 
beror på bilens form.För vanliga bilar är Cd omkring 0.5 och för extrema
sportbilar kan man komma ned mot 0.3.

För att beräkna CdA uppskattar du tvärsnittsytan som maximal bredd 
gånger maximal höjd och multiplicerar med 0.5.Om du sätter på en takbox
lägger du till takboxens tvärsnittyta till bilens tvärsnittsyta.





Hur väljer jag mod?
===================


Som defaultvärde gäller alltid att programmet hämtar aktuella
värden från den tidcykel eller den karta du har valt.Du kan
emellertid ändra detta och i stället hämta värden från tangent-
bord,mus eller joystick.Ändringsmenyn för detta kan du nå från 
tablån med utgångsvärden.

När du befinner dig i denna tablå och har gjort alla ev ändringar
i den trycker du på M.Du kommer då till en modmeny.

1 innebär att du väljer pådragsmod.

  >	Om du väljer > kan du därefter ange begärd hastighet som då
	får det konstanta värde du angett oberoende av vad som står
	i den körcykel du har angett.Väljer du > får du föreslaget 
	värde på >.Vill du ändra det måste du,innan du trycker 
	RETURN,skriva > för att få ändra värdet.


  I	Väljer du I kan du därefter ange motorström i A.Hastigheten 
      blir då vad denna effekt kan ge oberoende av begärd hastighet 
      i körcykeln.Hastigheten kommer i denna mod att variera med 
      marklutning.Väljer du I får du föreslaget värde på I.Vill du 
	ändra det måste du,innan du trycker RETURN,skriva I för att få 
	ändra värdet.(I fungerar inte på konventionell bil)

  P	Fungerar som I men med motoreffekt i kW i stället för motor-
	ström.Sätter du fast effekt med P kan du få problem att komma
	igång.Starta då i någon annan mod.Gå med M tillbaka till mod-
	tablån och sätt P.Observera dock problemet med avbrott om du
	kör i realtid! 										

  M	Väljer du M styr du hela tiden motoreffekten och bromsen med 
      musen.Begärd hastighet från aktuell körcykel visas på skärmen 
      vilket gör det möjligt att manuellt försöka följa en körcykel.
      Denna begärda hastighet har emellertid ingen annan effekt i 
      programmet.Drar du muspekaren nedåt på skärmen minskar motor-
      effekten och övergår till bromsning som ökar när du drar mus-
      pekaren nedåt.Om du satt Sidrörelse = J i tablå tre medför sid-
      förflyttning av muspekaren att bilen svänger.Oberoende av
      om du valt mod M eller inte ger tryckning på musens knappar 
      byte av växel.

  Y   Väljer du Y styr du med joystick i ställer för med mus.

	T,K eller F innebär styrning med begärd hastighet som hämtas
     från aktuell körcykel.A ger återgång till automatisk växling.

2 innebär att du väljer lutningsmod

  L	Väljer du L kan du därefter ange en marklutning som
	bibehålls oberoende av vad körcykeln anger för lutning.

	T,K eller F innebär att lutningen hämtas från aktuell
	körcykel.

3 innebär att du väljer tidsinkrementmod

  D	Väljer du D kan du därefter ange ett tidsinkrement i sek som
	bibehålls oberoende av vad körcykeln anger för tidsinkre-
	ment.Väljer du D får du föreslaget värde på D.Vill du ändra
	det måste du,innan du trycker RETURN,skriva D för att få 
	ändra värdet.

  R	Väljer du R sätts tidsinkrementet för att ge körning i real-
	tid.Programmet kollar på datorns interna klocka hur lång tid
	föregående beräkningscykel tog och tilldelar denna tid till
	tidsinkrementet.

	SPACE innebär att tidsinkrementet hämtas från aktuell kör-
	cykel.



4 innebär att du väljer områdesmod.Detta har ingen effekt för konven-
tionell bil.


Du kan också under pågående körning gå in från tangentbordet och
ändra mod.Du ställer då önskat värde genom att hålla tangenten
nedtryckt tills du nått det värde du vill ha.

	I eller 8 ger mod 1.I Ökning av effekt med maxeffekt/30 per cykel
					
	i eller 2 ger mod 1.I Minskning av effekt med maxeffekt/30 per cykel
		

	P         ger mod 1.P Ökning av effekt med 500 W per cykel
				
	p         ger mod 1.P Minskning av effekt med 500 W per cykel
				

	>         ger mod 1.> Ökning av beg hast med 1 m/s per cykel
				
	<         ger mod 1.> Minskn av beg hast med 1 m/s per cykel
				

	L         ger mod 2.L Ökning av lutning med 0.5 % per cykel

	l         ger mod 2.L Minskn av lutning med 0.5 % per cykel

När du på detta sätt ställer värden med tangenttryckningar finns
en viss risk att du råkar släppa tangenten mellan att programmet
noterat "tangent nedtryckt" och att det läst av tangenten.Prog-
rammet stannar då men kommer igång om du ger tangenten en snabb
nedtryckning.

	s    stoppar upp programmet
	S    återstart efter stopp

	Q	ger avslut med Fulltid:=ttot



Trycker du på någon annan tangent nollställs pådragsmod och lut-
ningsmod d v s du kommer till mod 1.  ,  2.  medan mod 3 och 4
kvarstår.



Hur beskriver jag en körcykel?
==============================

Körcykel beskrivs i filer med de namn som anges på rad 1 och 2 i
första tablån d v s i filnamnstablån.

Under en körning behöver du variera vissa storheter.Du kan vilja
ha olika hastighet,simulera backar,köra ut ur och in i miljökäns-
liga områden och använda olika tidsupplösning på beräkningarna.

De flesta av dessa storheter kan du ändra direkt från
tangentbordet men om du vill simulera en viss körcykel är det
opraktiskt att hela tiden ändra värden via tangentbordet.I
stället använder du en fil där programmet vid varje beräknings-
cykel kan läsa av vilka värden som gäller.Allteftersom bilen kör
kollar alltså programmet bl a vilken begärd hastighet som
pådraget skall försöka uppnå.

En förutsättning för att programmet skall kunna hitta aktuella
värden är att det finns någon storhet som anger hur långt bilen
har kommit.Det kan antingen vara hur långt bilen kört i väg eller
hur länge den kört i tid.Vilket du vill köra bestämmer du genom
att i filen CONS2.VAL skriva in Karta resp Tidcykel på rad nr 3.
Du kan också ändra valet i början av programmet när du får upp
tablån med använda konstanter.Du kan även under pågående körning
hoppa mellan karta och tidcykel genom att trycka på M så att du
får upp tablån med använda konstanter där du kan ändra ditt val.

Du beskriver körcykeln i en tabell som du gör med någon editor
som producerar ASCII-kod utan några styrtecken för marginaler,
sidslut mm t ex med Edlin eller med editorn i Turbo Pascal eller
i Norton Commander.

Ursprungliga programmet läste körcykelfiler med tabelläsaren Ttabr1 
men denna har ersatts med Ttabr01 som anpassaats speciellt för läsning
av körcykeltabeller.Detta ställer lite ändrade krav på dessa tabeller. 
För att undvika felläsning i tabellens början skall den börja direkt 
med en rad med sex siffervärden i sex kolumner (kol0 tid i s eller 
sträcka i m,kol1 begärd hastighet i m/s,kol2 lutning i %,kol3 körmod,
kol4 tidsinkrement,kol5 sidavvikelse).Alltså ingen inledningstext och 
inget tabellnummer.Avsluta varje rad med RETURN och gör med RETURN en 
tomrad mellan raderna.

Om du gör en karta anger du i första kolumnen hur långt bilen
kört i m.Om du gör en tidcykel anger du i första kolumnen hur
länge bilen kört i s.Andra kolumnen skiljs från den första med
minst ett mellanslag.Oberoende av om du gör karta eller tidcykel
anger du i andra kolumnen begärd hastighet i m/s.Tredje kolumnen
skiljs från andra med minst ett mellanslag och anger lutning i %
(negativt värde = utförsbacke).Fjärde kolumnen anger körmod
enligt nedan och femte kolumnen anger tidsinkrement i s (-1 ger 
körning i realtid).Sjätte kolumnen anger sidavvikelse (se avsnittet 
Dataspel).Efter sjätte kolumnen avslutar du raden med RETURN och 
gör en tom rad med hjälp av RETURN.Därefter är det dags för nästa 
rad i tabellen.

Samma körcykelfil skall kunna användas för såväl konventionell bil 
som för hybridbil och elbil.Det finns alltså möjlighet att ange kör-
moder som avser hybridbil och elbil men som saknar innebörd för 
konventionell bil (t ex körning i miljökänsligt område).Nedanstående
sammanställning tar upp alla körmoder inkl dem som inte är aktuella
för konventionell bil.

Körmod
		 0 = icke miljökänsligt område börjar
		 1 = miljökänsligt område börjar
		10 = startpunkt för upprepning
		11 = upprepa förloppet från närmast föregående start-
			punkt som markerats med 10
		12 = byt Karta eller Tidcykel till nästa enligt lista
			i filen NEXT.VAL.En rad med Del i NEXT.VAL bety-
			der:Radera fil enligt ovanstående rad och läs in
			fil enligt nästa rad.Om samma filnamn återkommer
			återgår läsningen till detta namns första pos.
		15 = byt Karta eller Tidcykel till nästa enligt lista
			i NEXT.VAL.Starta läsning från sträcka resp tid
			enl kolumn 4 men fortsätt inkrementering av to-
			tal sträcka och tid
		20 = byt Cykeltyp från Karta till Tidcykel eller
			omvänt
		21 = begärd hastighet gäller i det antal sekunder som
			anges i kolumn 4.Beräkningar sker med föregående
			tidsinkrement.Därefter återgår begärd hastighet
			till föregående värde.Två rader med mod 21 får
			inte ligga efter varandra utan någon rad med
			annan mod emellan.
		30 = Kolumn 1 avser begärd hastighet (bryter ej I,P,>)
		31 = Mod J.Kolumn 1 avser drivmotorström i A (ej I,P,>)
		32 = Mod W.Kolumn 1 avser drivmotoreff i kW (ej I,P,>)
		4X = X=Antal tidsinkrement till beg hast 40=41.Drivning
		5X = X=Antal tidsinkrement till beg hast 50=51.Broms.
		60 = Stanna och avvakta S.
		71,72,73 = Påbörja lagring av värden i A , P resp J.
		75,76,77 = Avsluta lagring av värden i A , P resp J.
		100 = Avsluta
            101 - 110 = Växelnr 1 - 10.
            120 = Automatväxel
            över 999 Aktivering och avaktivering av bilder i Vindruta

10xx aktiverar bild,20xx avaktiverar bild för bilder som ingår i 
programmet enligt

             xx=01   Korsning till vänster
             xx=02   Korsning till höger
             xx=03   Höghus
             xx=04   Hus till höger om vägen (vid start)
             xx=05   Korsande bil
             xx=06   Mötande bil
             xx=07   Upphunnen bil

Så länge dessa bilder är aktiverade upprepas de enligt vissa kriterier 
(se källkoden i SSIKTK.PAS).xx 03-07 aktiveras vid start (se källkoden 
i KONVBIL.PAS) och om du inte vill ha dem måste du avaktivera dem.

12nn aktiverar egen bild på det sätt som finns beskrivet i
Hur kan jag komplettera grafiken med egna bilder?
Sådan bildinläggning sker omedelbart när programmet kommer fram till
moden och fortsätter tills hela bildserien försvunnit vid skärmens 
nerkant.Därefter avaktiveras moden och om du vill att den skall upprepas
måste du på nytt aktivera den.Så länge en bildserie (t ex BILD14Y) visas 
är denna mod (d v s 1214) upptagen och du kan inte aktivera nya bilder 
med 1214.

Simuleringen tillgår så att pådrag och broms försöker uppnå
begärd hastighet under ett tidsinkrement.Ett högt värde på tids-
inkrementet ger alltså mjuk körning med lång tid för acceleration
och bromsning.Det ger också en snabb exekvering eftersom antalet
beräkningspunkter blir litet.Å andra sidan ger ett högt värde på
tidsinkrementet dålig noggrannhet eftersom programmet inte hämtar
de olika värden på t ex motorverkningsgrad som förekommer under
ett accelerationsförlopp.Ett sätt att få mjuk körning med god
noggrannhet kan vara att välja litet tidsinkrement men begränsa
max motoreffekt) och max bromskraft.Ytterligare ett sätt är att 
med körmod 4X och 5X dämpa pådrag och broms till att omfatta flera 
tidsinkrement.

Ett problem med ett högt värde på tidsinkrementet är att program-
met beräknar vad som händer under tidsinkementet för att nästa
gång återkomma till tabellen ett tidsinkrement senare.Om bilen
under ett tidsinkrement hinner passera mer än en rad blir någon
rad överhoppad.Den information som finns på en överhoppad rad
blir aldrig inläst och den kan alltså inte användas av program-
met.Om programmet t ex hoppar över en rad med Körmod = 10 sätts
aldrig det värdet på startpunkten och upprepningen vid Körmod =
11 kommer då att göras från fel startpunkt.Man måste alltså iakta
en viss försiktighet när man väljer tidsinkrement och värden i
första kolumnen.Vid mod 21 gäller detta inte bara för tidsinkre-
mentet utan för hela den angivna tiden.

OBS!!    I karta kan du inte sätta begärd hastighet = 0.Om du gör
det kommer bilen att stanna så att den aldrig når fram till nästa
rad.Använd mod 21 för att åstadkomma stopp i karta.

Vid långa körcykelfiler blir programmet trögt eftersom det,när det 
kommer långt fram i filen,läser hela långa filen varje gång det skall
hämta nya värden.Det märks inte så mycket på en snabb dator men även
där kan det bli önskvärt att snabba upp programmet.Detta kan man göra
genom att dela upp körcykeln i delfiler och lista dessa i en fil som 
heter NEXT.VAL.Genom att i slutet på varje fil ange körmod 12 i fjärde
kolumnen beordrar du programmet att gå till nästa fil enligt listan i 
NEXT.VAL.I NEXT.VAL skriver du varje fil på en ny rad utan mellanrum 
mellan raderna.Om du anger diskdrive flyttar programmet filen från 
aktivt directory till den diskdrive du anger.Om du skjuter in en rad 
med Del mellan två rader kommer programmet att radera den fil som står
på raden ovanför när det går över till den som står nedanför.

OBS! Du måste ge exakt samma namn på första filen som det som står på 
första raden i NEXT.VAL.Använder du t ex inte små och stora bokstäver
på samma sätt byter inte programmet fil.Ibland kan detta vara ett an-
vändbart sätt enbart köra igenom första avsnittet av en körcykel.



Hur beskriver jag en förbränningsmotor?
=======================================

Förbränningsmotorn beskrivs i en fil med det namn som anges på rad 4
i första tablån,d v s i filnamnstablån.

En förbränningsmotor beskrivs med 5 tabeller.

Beträffande angivande av tabellnr och uppställning av tabellerna
gäller samma regler som för alla tabeller.

Tabell 1 skall i kolumn 0 (vänstra kolumnen) ange ingångsvärden
för varvtal i rpm.Börja med 0 och sluta med ett värde som är
högre än vad som kan förekomma under simuleringar.I nästa kolumn
anger du maximalt vridmoment i Nm d v s vridmoment vid fullt
gaspådrag.I vissa tabeller finns även en kolumn som anger
bromsmoment vid motorbromsning.Denna används inte och där kan
alltså stå vad som helst.

Tabell 2 är ett musseldiagram i tabellform.På rad 0 anger du
vridmoment i Nm och i kolumn 0 varvtal i rpm.Utvärdena från
tabellen är verkningsgrad som funktion av vridmoment och varvtal.

Tabell 3 anger CO-utsläpp,tabell 4 NOx-utsläpp och tabell 5 HC-
utsläpp.Dessa anges som funktion av vridmoment i Nm (rad 0) och
varvtal i rpm (kol 0).Värdena avser utsläpp i promille av till-
fört bränsle.Om motorn vid ett visst moment och varvtal avger 1 g
CO per 2 kg tillfört bränsle skall du alltså ange 0.5 på motsva-
rande plats i tabell 3.Tabell 4 och 5 anger på motsvarande sätt
NOx-utsläpp resp HC-utsläpp.

Beräkningen av CO- , NOx- och HC-utsläpp utgår från bränsleförbruk-
ningen.Bränslemängd anges i liter.Eftersom tabell 3 , 4 och 5 anger
utsläpp i g/kg måste bränslevolym räknas om till bränslemassa för att
man skall få fram utsläpp i g.Bränslet täthet sätts då till 0.75 kg/l.
Detta värde kan inte ändras utan omkompilering av programmet men det 
går naturligtvis att räkna om ingående värden i tabell 3 , 4 och 5 för
att ta hänsyn till bränsle med annan täthet.Strängt taget skall dessa 
tabeller ange utsläpp i g per 1.33 l bränsle.

Ett viktigt skäl till att ottomotorn kommit att dominera som personbils-
motor är att man kan reglera effekten i den takt som trafiken kräver.

För vissa motortyper,t ex stirlingmotor och gasturbin,gäller att det är 
svårt att snabbt ändra uteffekten.Det finns en möjlighet att simulera
detta.Nedanför tabell 5 gör du en tomrad,så en rad där det står Const,
så en tomrad och så en rad med en siffra.Denna siffra anger hur många 
sekunder det tar att ändra effektpådraget med ett steg.

Denna begränsning av effektens ändringshastighet fungerar enbart om 
du kör från tangentbordet med 8 och 2 för ökning resp minskning av 
effekt.Om siffran är 0 eller om dessa rader saknas ändras effekten 
med ett steg per beräkningscykel.



Hur beskriver jag växellådan och fordonet?
==========================================

Växellådan beskrivs i en fil med det namn som anges på rad C i första
tablån d v s i filnamnstablån.Denna fil flyttas inte till ramdisk.

Fordonet beskrivs i en fil med det namn som anges på rad 6 i första
tablån d v s i filnamnstablån.

Fordonet beskrivs i en endimensionell tabel som anger framdriv-
ningskraft i N (kolumn 1) som funktion av hastighet i m/s (kolumn
0).I denna fil skall även finnas texten

Const
  Fordonsmassa i kg
xxx
  CdA i m2
yyy

där xxx anger den fordonsmassa i kg som tabellen är uppgjord för
och yyy det värde på CdA i m2 som tabellen är uppgjord för.



Hur gör jag en fordonsfil för min bil?
======================================

Om du inte vill göra fordonsfilen direkt med någon ordbehandlare
kan du använda hjälpprogrammet DOFORD.EXE.

Du börjar då med att döpa filen.Det namn du anger skall du sedan ha
på rad 6 i filnamnstablån när du kör simuleringsprogrammet.

Så skall du ange rullmotståndet vid stillastående.För att få veta 
detta kan du lägga ur växeln,lossa alla bromsar,dra bilen och se 
hur stor kraft som erfordras för att den skall börja rulla (prova 
på några olika ställen för att vara säker på att du valt plan och 
slät väg).Jag brukar använda en personvåg,en sådan där platt liten 
badrumsvåg,som jag sätter mot bilens bakände.Så trycker jag tills 
bilen börjar rulla och läser av vad vågen visar.

Den siffra som vågen visar skall du dividera med bilens massa.Om bilen 
är tom kan du ta tjänstevikten minus 80 kg.

Det rullmotstånd du nu fått fram är något för högt eftersom det inklu-
derar motståndet i differentialen.För en första uppskattning kan du 
försumma detta fel men om du vill vara mer noggrann kan du lyfta driv-
hjulen och dra runt dem med fjädervåg så att du kan beräkna det mot-
stånd som differentialen ger.Egentligen skall då båda hjulen dras runt
samtidigt vilket går att ordna genom att man binder ett snöre i varje 
hjul,binder ihop snörena och drar från en punkt rakt framför eller rakt
bakom bilen.Be ett par medhjälpare kolla att båda hjulen rör sig så att
inte något hjul står stilla p g a anliggande bromsar e dyl.

När bilen rullar varierar rullmotståndet något med hastigheten.Detta 
beror bl a på att däcket värms av förlustvärmet vilket medför att 
gummits egenskaper ändras och på att förlusterna i gummit inte bara 
beror på gummits deformation utan också på deformationshastigheten.Det 
finns i litteraturen en del formler för att ta hänsyn till detta t ex
    F = 100 m + 0,38 v m         N
där 
    m  fordonsmassa i ton
    v  hastighet i km/tim

men det är tveksamt om de medför att man kommer närmare sanningen än 
om man bara räknar med hastighetsoberoende rullmotstånd.När hastigheten
blir så hög att den hastighetsberoende termen börjar spela någon roll 
har luftmotståndet ökat så att det svarar för den dominerande delen av
totala framdrivningsmotståndet.Så svara N på frågan om du vill ange 
rullmotstånd vid olika hastigheter.

För luftmotståndet skall du ange bilens tvärsnittsyta som du kan upp-
skatta genom att mäta bredd och höjd.

Cd beror på bilens strömlinjeform.Normalt är Cd omkring 0,5 men om 
din bil är ovanligt strömlinjeformad sätter du ett lägre värde ner mot
0,3 för extrem sportbilsform.Är den ovanligt kantig sätter du högre
värde upp mot 1,0 om tillverkaren inte gjort något alls för att hålla 
nere luftmotståndet.




Koppling,friläge och tomgång??
==============================

En fråga som man måste ställa sig när man gör ett simuleringsprogram 
är "Hur många detaljer skall jag ta med?".Det går naturligtvis att ta 
med hur mycket som helst men risken är att programmet blir svårhanter-
ligt och att hanteringen av oviktiga detaljer skymmer det väsentliga.
Jag har därför valt en närmast skissartad hantering av koppling,friläge 
och tomgång.

Om du vill koppla ur motorn och stänga av den helt använder du C.

Om inte motorn är avstängd med C sätter Ggear motorns minimivarvtal till
300 rpm.När bilen stannar går alltså motorn med 300 rpm och matar hjälp-
apparater med hjälpapparateffekten.

I Hhast sätts minimomentet ut till växellådan till 6 Nm.För att inte 
bilen skall rulla av detta krävs att rullmotståndet plus ev åtdragen 
broms ger en bromskraft som överstiger dragkraften på ilagd växel 
(normalt ettan).Om inte bilen rullar sätts hastigheten i Hhast till 
0,001 m/s d v s en snigelfart som eliminerar problemet med division 
med noll för storheter med hastigheten i nämnaren.

För att bilen skall kunna starta måste WOT i förbränningsmotortabell 1 
ge en maxeffekt vid 300 rpm som överstiger hjälpapparateffekten.Över-
skottet måste vara så stort att det räcker till för att på ettan över-
vinna rullmotståndet vid stillastående.



Hur kan jag ändra tabeller under pågående simulering?
=====================================================

När jag började med föregångare till det här programmet använde jag
det kommersiella programmet SideKick för att,under pågående körning 
gå in och ändra i tabeller.Detta var praktiskt vid debugging när det 
gällde att se hur ändring av ingångsvärden påverkade slutresultatet.
I och med att programmet blivit mer utvecklat har det emellertid 
visat sig att det är sällan någon mening att gå in och ändra under 
pågående körning.Jag har därför inte gjort något för att underhålla
denna möjlighet.

Om du har en WINDOWs-tangent kan du med denna gå ur ett pågående 
program för att t ex med NotePad ändra i tabeller.Därefter kan du
återgå till programmet.I princip skall detta fungera men på min dator
(IBM Aptiva) brukar det medföra att tangentbordet kopplas bort.

När man väl börjat få ett fungerande program är det ofta bättre att 
i förväg göra alternativa tabeller i stället för att ändra i befint-
liga tabeller.Du kan så med M komma till filnamnstablån 
och där byta till den alternativa tabellen.Observera dock problemet 
med att använda M i realtidsmod.



Hur kan jag få kurvor som visar vad som hänt?
=============================================

Programmet lagrar för varje beräkningscykel värden i två resul-
tatfiler.Detta görs i unit Sspara och Ssparap.Du kan där se vilka
värden som lagras och ev ändra detta.Om du ändrar måste program-
met kompileras om med TurboPascal V.

I tablån över Programkonstanter anger du med 1 i Pres/Spara vilka
filer du vill spara värden i.

Vid uppläggning av en resultatfil lägger programmet in ett ta-
bellhuvud som det hämtar från filerna BAS.RES resp BASP.RES.Denna
uppläggning av resultatfiler görs även om du inte angivit att du 
vill spara några värden.Orsaken är att detta görs innan du går in
i programmets körcykeldel och om du skulle vilja börja spara värden
senare under körningen behöver du ha resultatfilerna upplagda.

För att omvandla tabellvärden till kurvor använder du kurvritaren i 
hjälpprogrammet KURVOR.EXE.

Avsikten är att man skall använda tid eller vägsträcka som X-axel.Såväl 
tid som vägsträcka är monotont växande  storheter och kurvritaren kräver 
att den kolumn som skall ge X-värden innehåller monotont växande värden.

X-axeln är 600 pixels lång vilket innebär att kurvritaren kan ge 600 
värden i x-led.Men om inte den kolumn som skall ge X-värden råkar vara
just 600 värden kan det bli aktuellt med flera Y-värden för samma X-läge.
Beroende på vad du vill se kan du välja om kurvritaren skall visa det
högsta (maX),det minsta (MiN) värdet eller medelvärdet (meDel).Observera 
att max och min inte avser absolutvärde utan värde med tecken!I mod maX 
slår alltså -2 ut -3.

Vill du detaljstudera ett avsnitt kan du avgränsa kurvorna till detta 
avsnitt genom att ange Xmin och Xmax.

Kontrollera innan du använder kurvritaren att inte tabellen innehåller
några orimliga värden,t ex skrivfel vid programavbrott.

Du kan få kurvritaren att samtidigt visa 5 kurvor med olika färg.För var
och en av dessa kollar kurvritaren det högsta tabellvärdet inom det 
sktuella avsnittet (om du inte angett Xmin och Xmax i hela tabellen).
Kurvorna skalas så att de ryms inom Y-axelns 400 pixels.Om ingen kurva
har negativa värden läggs X-axeln längst ner på skärmen.Har någon kurva
negativa värden läggs X-axeln i skärmens mitt och kurvorna skalas in på
+200 till -200 pixels.För varje kurva anges det maxvärde som den skalats 
med (avrundat till heltal) i kurvans färg längst upp till vänster på 
skärmen.

Ett problem är att värden avrundas och att division med noll ger 
exekveringsfel som kan avhjälpas genom att sådana värden ges ett 
försumbart litet värde.De fel detta ger påverkar knappast resultatet
i sin helhet men det kan medföra enstaka orimliga värden i resultat-
tabellen.Ett sådant värde med orimligt stort absolutvärde medför att 
den storheten skalas ned så att man inte ser de variationer man vill
studera.Ett exempel på denna typ av problem är bensinförbrukningen 
per mil under senaste beräkningscykel som ju blir oändlig om bilen 
står stilla.För att inte få exekveringsfel sätts inte hastigheten 
till noll utan till 0,001 m/s.Men värdet blir ändå så högt varje 
gång man stannar att jag har valt att inte ta med dessa värden i 
resultatfilerna.

X-max anges vid X-axelns högra ände och X-min under Y-axeln.

Tabellhuvudrubriker för kurvorna anges i kurvornas färg nedtill på 
skärmen.

Inläsning av tabellhuvudet görs i tabellens översta rad.En siffra om-
given av SPACE tolkas som en ny kolumnrubrik som börjar med kolumn-
nummer och följs av text som beskriver kolumnens innehåll.Denna text 
får alltså inte innehålla någon siffra omgiven av SPACE eftersom det 
i så fall tolkas som en ny kolumnrubrik.

Om du istället för att ange kolumnnummer för en kurva skriver 
SPACE RETURN utesluts den kurvan.

Kurvorna täcker över varandra i den ordning de presenteras.D v s att
röd kurva täcker över vit.Blå täcker över röd o s v.

Om du vill spara de kurvor som presenteras på skärmen använder du
PRINT SCREEN enligt anvisnigarna i WINDOWS 95.



Hur ändrar jag vad som sparas?
==============================

I SSPARA.PAS och SSPARAP.PAS kan du se vilka variabler som sparas.
Du kan inte ändra dessa utan att kompilera om programmet.De är valda
för att huvudsakligen användas för studier av hybridbilar och inne-
håller alltså en hel del som är onödigt för en konventionell bil.

Jag har emellertid gjort en del ändringar i SSPARA.PAS och döpt om den
till SSPARK.PAS.Bl a har jag bytt ut kolumn 10 från att ange laddnings-
ström till att ange förbränningsmotorns verkningsgrad.

Om du kompilerar om ramprogrammet med Turbo Pascal V kan du byta ut 
de variabler som anges i SSPARA.PAS och SSPARAP.PAS  mot andra globala 
variabler (se Vvaria).Turbo Pascal V kompilerar då också om den fil du 
ändrat.Du bör också ändra i BAS.RES resp BASP.RES så att du får rätt 
tabellhuvud.Eftersom jag ändrat i SSPARA.PAS har jag ändrat och döpt om
BAS.RES till BASK.RES.



Hur ändrar jag fordonskonfigurationen?
======================================

Ramprogrammet KONVBIL.PAS består av två delar,en del som anger
vilka units programmet använder och en del som är själva program-
met.I programdelen anges egentligen bara i vilken ordning de
procedurer som finns beskrivna i units skall genomföras.Normalt
har en unit ett namn med första bokstaven dubbelstavad och den
procedur som uniten innehåller har samma namn utan dubbelstavning
av första bokstaven.

Vill du ändra fordonskonfigurationen ändrar du i listan över
units och i programmet som anropar motsvarande procedur.Vill du t
ex byta ut sättet att bestämma pådraget mot ett sätt som finns 
beskrivet i en unit med namnet PPDR2.PAS byter du i KONVBIL.PAS ut 
Ppdrk mot Ppdr2 och ev Pdrag mot vad proceduren i PPDR2.PAS 
heter.När du gjort det måste du kompilera om programmet med 
kompilatorn i TurboPascal V.




Hur ändrar jag använda formler?
===============================

Vissa beräkningar görs med formler i procedurer som finns be-
skrivna i units.Totala framdrivningsmotståndet beräknas t ex i en
formel som finns i Mmotst.Vill du ändra denna formel tar du in
MMOTST.PAS i TurboPascals editor och ändrar formeln.Därefter måste 
du kompilera om det eller alla de ramprogram som använder denna unit 
med hjälp av kompilatorn i TurboPascal V.Denna känner då automatiskt 
av att en unit har ändrats och kompilerar då om även denna.

Beträffande sättet att skriva formler gäller vanliga regler för
Pascal.Beträffande tillgängliga variabler så finns globala
variabler deklarerade i Vvaria.Behöver du någon ny global
variabel kan du definiera den i Vvaria.Du bör då också ge den ett
begynnelsevärde i proceduren Nolla som ingår i Vvaria.Om du vill
kunna nå den direkt under körning lägger du även in den i Vvmeny.




Hur skriver jag egna komponentbeskrivningar?
============================================

Det är lämpligt att varje komponent beskrivs i en särskild unit.

Det kan vara lämpligt att benämna uniten genom att bubbelstava
första bokstaven i den funktion eller procedur som är mest
väsentlig i uniten.

Hur man skriver units finns beskrivet i manualen till Turbo
Pascal V.

Om du t ex vill lägga till en ny unit som beskriver bakaxeln
skriver du en unit för detta.Genom att under Uses ange Vvaria får
du tillgång till alla variabler som finns definierade i Vvaria.Om
du vill använda en endimensionell tabell för att beskriva bak-
axeln anger du Ttabr1 under Uses och får då tillgång till funk-
tionen Tabr1.Vill du använda en tvådimensionell tabell använder
du i stället Ttabr2 resp Tabr2.

Tabr1 är en funktion som ger ett svar av typ REAL.Anrop görs med
  Tabr1(Filnamn,Tabnr,mode,Inv,Kolnr)
där
   Filnamn ärnamnet på den sökta filen                STRING(.30.)
   Tabnr   är nummer på den sökta tabellen            STRING(.30.)
   mode    är val av värde                            CHAR
           Ttabr1 läser tills värdet i första kolumnen (Kol0) över-
           stiger Inv.Om mode='+' returnerar den motsvarande värde 
           i den med Kolnr angivna kolumnen,om mode='-' returnerar 
           den föregående värde i den med Kolnr angivna kolumnen,om
           mode är något annat interpolerar Ttabr1 mellan dessa 
           värden (linjär interpolation).
   Inv     är det invärde Tabr1 skall söka i Kol0     REAL
   Kolnr   är nummer på den kolumn Tabr1 skall läsa   INTEGER

Ttabr2 är en funktion som ger ett svar av typ REAL.Anrop görs med
  Tabr2(Filnamn,Tabnr,mode1,mode2,Inv1,Inv2)

För Filnamn och Tabnr gäller samma som för Tabr1.Tabr2 söker i såväl 
vertikal som horisontell led och Kolnr är därför inte aktuellt.Inv1 
är av typ REAL och anger vilket invärde Tabr2 skall leta upp i hori-
sontell led medan Inv2 (REAL) anger vilket invärde Tabr2 skall leta 
upp i vertikal led.mode1 och mode2 fungerar som mode i Tabr1 men i
horisontell resp vertikal led.

När det gäller formler,noggrannhet,algoritmer mm finns inga reg-
ler utöver dem som gäller för Turbo Pascal V.

När du skrivit en unit skall den läggas in i ramprogrammet.Uni-
tens namn skall in under ramprogrammets Uses och du bör även
skriva en kommentar som anger vad uniten gör.Unitens funk-
tion(er)/procedur(er) skall sedan anropas av ramprogrammets
huvudprogram.Det gäller då att lägga in dessa anrop så sent i
programmet att de variabler som den anropade funktionen/procedu-
ren behöver finns beräknade men så tidigt att det ligger före de
anrop som behöver värde(n) från den anropade funktionen/procedu-
ren.




Krav på tabeller
================

Rader måste skiljas med en tomrad.

Kolumner måste skiljas med minst ett mellanslag.

Ingångsvärden måste vara angivna så att de hela tiden ökar när
man går framåt i texten.

Ingångsvärden måste väljas så att aktuella värden säkert faller
mellan högsta och lägsta värde.Skulle tabelläsare hamna utanför
tabellen avbryts programmet utan något felmeddelande.Du kan
emellertid finna orsaken genom att det före avslut lägger upp en
fil ERROR.TAB och i denna skriver in orsaken till avbrottet.

Text bör läggas sist.Orsaken till detta är att tabelläsaren läser
igenom tabellerna från början.Om du lägger text som t ex beskri-
ver tabellens innehåll före själva tabellen måste tabelläsaren
varje gång läsa igenom denna för att komma fram till själva
tabellen vilket tar onödig tid.

Över varje tabell måste finnas texten Tabell följd av SPACE och 
tabellnummer.Denna text skall följas av en tomrad och därefter av 
själva tabellen (Detta gäller ej Karta Och Tidcykel).

Tabr1 tolkar tabellens första kolumn (Kol0) som ingångsvärden och 
övriga kolumner som funktioner av dessa ingångsvärden.

Tabr2 tolkar första raden och första kolumnen som de ingångsvärden 
som tabellens övriga värden är funktion av.




Vad gör programmet?
===================

Avsikten med denna beskrivning är att ge en översiktlig bild av
programmets uppläggning.Alla detaljer i programmet finns till-
gängliga i källkoden till ramprogram och units.Dessa har fil-
namnstillägg .PAS och är skrivna i ASCII-kod som kan läsas direkt 
med någon ordbehandlare t ex editorn i TurboPascal,Edlin eller 
Norton Commander F4.

Programmet bygger på två tabelläsare Ttabr1 och Ttabr2.I denna 
version används även en tabelläsare Ttabr01 som är en variant av
Ttabr1.

Ttabr1 kan läsa endimensionella tabeller med flera kolumner.Man
kan alltså i en tabell ange ett antal storheter som är funktioner
av samma variabel och låta Ttabr1 läsa en sådan tabell.När man t
ex anger en tidcykel anger man begärd hastighet,lutning,körmod
tidsinkrement och sidavvikelse som funktion av körd tid.Denna 
tabell läser programmet med hjälp av Ttabr01.

Ttabr2 kan läsa tvådimensionella tabeller d v s variabler som är
funktion av två variabler.Ett exempel på detta är verkningsgraden
hos en förbränningsmotor som är en funktion av de två variablerna
varvtal och moment.

Programmet kan enkelt ändras för att simulera olika typer av
fordon.Nedanstående beskrivning avser programmet Hybrid.Mot-
svarande program för att beskriva elbil,kobventionell bil eller 
parallellhybrid har liknande uppläggning även om vissa detaljer 
är ändrade.

Programmet börjar med att presentera använda konstanter och andra
storheter så att man får möjlighet att ev ändra dessa.

Om man anger infiler med namn där diskdrive finns angiven hämtar
programmet infiler från aktivt eller angivet directory och
lägger dem på angiven drive.Tanken med detta är att man skall
kunna föra över alla infiler till ramdisk så att det går snabbare
att läsa dem.Anger man ingen drive läser programmet infiler i aktivt
directory.

Programmet förbereder två resultatfiler och en jämförfil,ritar
upp en instrumentbräda på skärmen och går därefter över till en
loop med beräkningscykler.

En beräkningscykel börjar med att unit Ccykel låter Ttabr01 hämta
aktuella värden på begärd hastighet,lutning,körmod och tidsinkre-
ment från den tabell som beskriver körcykeln.

Därefter stegas körd tid fram ett tidsinkrement i unit Ttid.Man
kan tycka att en så enkel operation som att lägga till ett tids-
inkrement till tiden inte motiverar att man skriver en särskild
unit bara för det.Men problemet är att man kanske inte vill
använda det värde på tidsinkrementet som man fått från tabellen.
Man kanske vill ange ett fast tidsinkrement som gäller oberoende
av tabellvärdet eller ett tidsinkrement som motsvarar verklig tid
för en beräkningscykel.För att kunna hantera sådana önskemål och
för att samla tidsberäkningar till ett ställe så att man vet var
man skall ändra om man vill ändra tidsberäkningen har framsteg-
ning av tiden fått en särskild unit.

På motsvarande sätt fastställs så lutningen i Llutn och val
mellan miljökänsligt eller icke-miljökänsligt område i Oomr.

För att den simulerade bilen skall kunna följa en körcykel måste
skillnad mellan begärd och verklig hastighet översättas till en
ändring av effekten till drivmotorn.Detta görs i unit Ppdr som
finns närmare beskriven nedan.

När man vet belastningen på förbränningsmotorn kan man beräkna
bränsleförbrukning och emissioner.Detta görs i unit Iicmot.

Totala framdrivningsmotståndet bestäms av framdrivningsmotstånd
på plan väg som finns i en fordonstabell,av massan gånger acce-
lerationen och av tyngden gånger lutningen.Beräkning av totala
framdrivningsmotståndet görs i unit Mmotst.

Om verklig hastighet är så mycket större än begärd att bilen inte
kan nå begärd hastighet under det tidsinkrement som beräknings-
cykeln avser enbart genom att minska motoreffekten behöver man bromsa 
med en viss bromskraft.Denna beräknas i Bbrake.

När man vet vridmomentet från drivmotorn,totala framdrivnings-
motståndet och ev bromskraft kan man beräkna accelerationen och
därmed hastighetsändringen under tidsinkrementet.När man vet
hastighetsändringen kan man lägga denna till det gamla hastig-
hetsvärdet och få fram den nya hastigheten.Detta görs i unit
Hhast.

När man nu vet accelerationen och hastigheten under tidsinkremen-
tet kan man beräkna hur långt bilen går och lägga detta värde
till tidigare körsträcka för att få den totala körsträckan.

Beräkning av bilens tillstånd efter det aktuella tidsinkrementet
är nu färdig.Resultatet skall presenteras på skärmen vilket görs
i Ppres och ev lagras i resultatfiler vilket görs i Sspara och
Ssparap.

Unit Pprev lagrar vissa variabelvärden för att förra beräknings-
cykelns värden skall finnas tillgängliga under nästa beräkning.

I denna version har tillagts möjligheten att "köra" på en väg eller
visa motortillståndet i musseldiagram.Detta görs i unit Ssikt genom 
anropet Sikt resp unit Mmussla genom anropet Mussla.

Efter detta startar nästa beräkningscykel.
								

Ppdr
----

För att beräkna erforderlig effekt måste man veta aktuellt fram-
drivningsmotstånd.I Ppdr görs en preliminär beräkning av detta.

När framdrivningsmotståndet är känt kan erforderlig effekt
beräknas som framdrivningsmotstånd gånger medelvärdet av
hastigheten under tidsinkrementet.Hastighetsmedelvärdet sätts
till medelvärdet av verklig och begärd hastighet vilket medför
att man får det värde som verkligen behövs för att nå begärd
hastighet.När man sedan ev begränsar effekten till max tillåtet
värde kommer man inte att nå begärd hastighet men i det fallet
används inte den beräknade effekten utan det ersätts med max
effekt.

Drivmotorns ineffekt sätts till beräknad erforderlig effekt.

I Ppdr finns också rutiner för att styra motoreffekten direkt
från tangentbord,med mus  eller med joystick om man valt en mod 
där förloppet inte styrs från körcykeltabellen.

Mmotst
------

Det motstånd som drivmotorn skall övervinna är accelerationen
gånger massan + tyngden gånger lutningen + framdrivningskraft på
plan väg.

Framdrivningskraft på plan väg vid aktuell hastighet hämtas från
fordonstabellen.

	Tabelläsaren använder linjär interpolation.Eftersom fram-
	drivningskraften inte är en linjär funktion av hastigheten
	ger detta ett interpolationsfel som kan minskas genom att
	man gör tabellen tätare.Fler värden i tabellen ger dock
	långsammare program.

	Om begärd hastighet avviker från verklig och motor eller
	broms inte är fullt utnyttjade kommer hastigheten att ändras
	under tidsinkrementet.Beräkningen görs med medelvärdet av
	begärd och verklig hastighet.Eftersom framdrivningskraften
	på plan väg inte är en linjär funktion av hastigheten är
	inte medelvärdet av framdrivningskraften samma som fram-
	drivningskraften för medelvärdet av hastigheten.Här finns
	alltså ett beräkningsfel som kan bli märkbart vid stora
	språngvisa ändringar i begärd hastighet som ger stor skill-
	nad mellan begärd och verklig hastighet.

	Om bilen inte når begärd hastighet under tidsinkrementet
	motsvarar inte medelvärdet av verklig och begärd hastighet
	medelvärdet av hastigheten under tidsinkrementet.Vid t ex
	maximal acceleration mot en hög begärd hastighet som det
	tar flera tidsinkrement att nå kommer alltså framdrivnings-
	motståndet att få ett för högt värde.

Till framdrivningsmotståndet på plan väg läggs massan gånger
accelerationen och tyngden gånger lutningen.

Om fordonsmassan och/eller Cd*A avviker från de värden som gäller
för tabellen och om man i konstanttablån har begärt omskalning
görs en korrigering av framdrivningsmotståndet.



Några simuleringsfel
====================

Hastighet för "stillastående" bil sätts i Hhast till 0,001 m/s.

Om man kör i realtid efter begärd hastighet enl körcykel och gör ett 
avbrott i körningen kan man sedan återkomma efter så lång tid att man
får ett mycket stort tidsinkrement.Om bilen accelererade när man avbröt
programmet kan detta medföra att man får ett orimligt värde på hastig-
heten.I nästa cykel får då pådraget orimliga ingångsvärden vilket kan 
resultera i instabilt system.För att undvika detta sätter Hhast hastig-
heten till 1,2 gånger begärd hastighet om den överstiger 1,2 gånger 
begärd hastighet och körningen görs efter begärd hastighet.

Ingen hänsyn tas till skillnaden mellan kall och varm motor.Men man kan 
göra motortabeller för olika motortemperaturer och efter start gå in med
M och byta filnamn i filnamnstablån så att man 
allteftersom motorn blir varmare går över till en tabell för aktuell 
motortemperatur.Någon beräkning av motortemperaturen görs emellertid inte 
utan man får,helt manuellt,uppskatta denna efter körd tid.Observera också
problemet att använda M vid körning i real tid.



Dataspel
========

Programmet har ursprungligen lagts upp med finansiering från STU som 
ett hjälpmedel för utvärdering och konstruktion av el- och hybridbilar. 
Syftet har alltså varit ett helt annat än att ta fram ett dataspel.Men 
nytta är inget hinder för nöje och en spelmöjlighet har därför laggts 
till för att göra användningen mer lekbetonad.Grafiken är visserligen 
mycket enkel men den ger ändå en antydan om körupplevelse.

Man ”kör” med pil-siffer-tangenterna i NumLock-läge.Användning 
av 2 och 8 ger övergång till I-mod.8 ökar effekten och 2 minskar 
effekten,F ger återgång till körcykelfilens begärda hastighet.

Med 4 och 6 svänger man vänster resp höger.

Genom att skriva tidcykelfiler eller kartfiler kan man lägga upp banor 
som man sedan kan köra.

Genom att i den sjätte kolumnen (kol5) ange positiva eller negativa 
värden anger man hur många pixels vägen skall förskjutas vid 
horisonten.Denna förskjutning förflyttar vägen i förhållande till 
bilen när bilen kör mot horisonten.

För att slippa snabba ryck kan man ange värden med belopp
större än 999.Tusentalssiffran anger då hur många pixels som 
förskjutningen skall öka varje beräkningscykel och siffran under 
tusen anger förskjutningens slutvärde.Om hastigheten understiger 
det i kol1 angivna värdet reduceras förskjutningen per cykel 
med förhållandet mellan verklig och i kol1 angiven hastighet.




Några tips
==========

Prova att köra genom att dra upp farten till 80 km/tim,lägga i 5:an 
manuellt,slå från motorn (med C),låta farten sjunka till 60 km/tim,
dra på till 80,slå ifrån o s v.Kolla vad som händer med bensinför-
brukningen.Detta körsätt är lite obekvämt på en konventionell bil men 
det går att genomföra och jag har provat att det stämmer i praktiken.
På en seriehybrid,även en seriehybrid utan batteri,är det ett ganska
naturligt sätt att köra.

Kör CVS-cykeln (följer med manualen) med musseldiagram för NOx och se 
hur motortillverkaren anpassat motorn till testcykeln.

Om du sätter in en elmotor (eller flera) parallelt med den vanliga motorn,
t ex låter elmotorn driva bakhjulen på en framhjulsdriven bil kan du 
använda elmotorn för att starta och komma upp i fart.Du kan också använda
elmotorn för att ge ett tillfälligt momenttillskott.Du kan då ta bort
växellådan och strypa motorn något.Du kan inte helt simulera detta efter-
som du inte har någon elmotor inlagd i programmet men den energi som går 
åt för att starta får du återbetala genom att köra elmaskinen som genera-
tor och det motsvarar ungefär vad som går åt för att starta via växellåda.
För att se ungefär vad ett sådant arrangemang skulle kunna ge kan du stry-
pa motorn något (dra ner WOT i tabell 1 i förbränningsmotorfilen).Ändra 
i växelfilen så att du sätter utväxlingen för 5:an till c:a 160 och väx-
lingspunkterna så att 5:an ligger i från t ex 50 km/tim.Sätt verknings-
grad för växellåda och drivaxel till 100 % på 5:an.Dra upp till 80 km/tim,
slå av med C och frirulla till 60 km/tim,dra på o s v.Som du ser i mus-
seldiagrammet för verkningsgrad utnyttjar du då motorn nära maximal verk-
ningsgrad och du bör kunna komma ner under 40 cl/mil.

Rullmotståndet är en vetenskap för sig.Ojämnheter i vägen ger vertikala 
rörelser som måste dämpas ut så att de inte ger obehagliga karossrörel-
ser.Detta görs genom att "gungenergin" omvandlas till värme i däcken 
eller i stötdämparna.Eldrift öppnar en helt ny möjlighet till mycket 
snabb reglering av drivmomentet.Detta gör det möjligt att "hänga upp"
bilen på det drivande momentet.Därigenom kan man utnyttja gungrörelser 
för drivningen.I stället för att denna energi ger värme som måste kylas
bort från däck och stötdämpare kan man tillvarata energin för att minska
rullmotståndet.Det blir då ännu viktigare än idag att undvika däckför-
luster.

För att däcken skall ge en god utjämning av ojämnheter i vägbanan kör 
man med ett tryck i däcken som valts så att man får en viss hoptryckning 
av däcken vid anliggningspunkterna.Detta innebär att man även på en helt
slät väg får en knådning av däckgummit som kräver arbete och ger värme.
Denna däckknådning svarar för huvuddelen av rullmotståndet.Den kan i 
princip minskas genom att man höjer trycket i däcken så att man reducerar
hoptryckningen.På lastbilar där kostnad är viktigare än komfort har man 
vanligen betydligt lägre rullmotstånd i förhållande till fordonsvikten än 
på personbilar.

Även vägytan utsätts för en knådning men för normala däck och vägbelägg-
ningar ger den förluster som är försumbara jämfört med däcksförlusterna. 
För järnvägshjul där man minimerat såväl hjulknådning som vägknådning är 
rullförlusterna mycket små (c:a 1/7 av rullmotståndet för en personbil med
samma massa).

Jag provade på en långsamgående golfbil att byta hjulen mot plåtrullar 
med en tunn slitbana av gummi.Rullmotståndet minskade med knappt10 % 
per hjul d v s cirka 30 % för alla hjulen.

Rullprov i backe med en gammal Volvo 145 visade att en sänkning av 
däcktrycket från 2,4 till 1,5 kp/cm2 gav en ökning av rullmotståndet 
med cirka 6 %.Om du vill se vad hur däcktrycket påverkar bensinförbruk-
ningen kan du alltså räkna med att 0,1 kp/cm2 ger 0,6 % ändring av 
rullmotståndet.I tabellen som beskriver fordonet tar du,för varje 
0,1 kp/cm2 som du ändrar däcktrycket 0,6 % av framdrivningsmotståndet 
vid hastigheten noll.Det värde du då får lägger du till (resp drar 
ifrån) alla andra värden i tabellen.

Metoden är inte helt korrekt eftersom såväl däcktryck som gummits inre
friktion ändras med däcktemperaturen som i sin tur påverkas av värme-
utvecklingen i däcket men den ger ändå en ganska god bild av verklighe-
ten.



Hybridbil?
==========

Med hybridbil menas,i detta sammanhang,en bil med en kombination 
av konventionellt och elektriskt drivsystem.

Hybridbilar beskrivs ofta som elbilar med inbyggda laddnings-
aggregat.Så kan man naturligtvis se dem men det är nog mer givande 
att betrakta dem som bilar med elektrisk kraftöverföring.

Om man kopplar en elektrisk generator till en elmotor har man fått
en helt steglös växellåda.Genom att lägga en sådan mellan för-
bränningsmotorn och drivhjulen kan man fritt välja förbrännings-
motorns varvtal oberoende av hur fort bilen går.

Men har man bara satt in en generator-elmotor-växellåda måste 
förbränningsmotorn i varje ögonblick ge den effekt som fordras 
för att driva bilen.Om man väljer förbränningsmotorns varvtal 
kan man då inte också fritt välja momentet.Man får alltså en viss 
men inte total frihet när det gäller att välja arbetspunkt för 
förbränningsmotorn.

Sätter man,förutom generator-elmotor-växellådan,även in ett 
batteri som kan ta upp effektöverskott eller täcka effektunder-
skott kan man fritt välja förbränningsmotorns arbetspunkt.I stället 
för att ta ut en medelverkningsgrad på c.a 16 % kan man hela 
tiden låta förbränningsmotorn gå på 33 % verkningsgrad (och stänga 
den helt när batteriet börjar bli fulladdat).

Nackdelen med detta system har varit att förlusterna i generator 
och elmotor tagit mer än hela vinsten.Med likströmsmaskiner låg 
verkningsgraden kring 80 % för vardera generatorn och elmotorn 
vilket gav hela "växellådan" en verkningsgrad på 60 %,att jämföra 
med en mekanisk växellåda med verkningsgrad på c:a 95 %.

Med moderna material och modern halvledarteknik kan man emellertid 
nå över 90 % verkningsgrad för såväl generator som elmotor vilket 
ger mer än 80 % för hela "växellådan".

I denna version av simuleringsprogrammet kan du inte direkt 
simulera en hybridbil men om du är intresserad av att se vad en 
sådan skulle kunna ge kan du konfigurera en "fuskbil".

Skapa en förbränningsmotorfil där du i tabell 2 - 5 sätter verk-
ningsgrad och utsläpp lika för alla varvtal och moment (ange de 
värden som gäller för den arbetspunkt du tänkt välja).

Skapa en växelfil där du sätter in generatorns verkningsgrad som
växellådeverkningsgrad och elmotorns verkningsgrad som differneti-
alens verkningsgrad.

Sätt in dessa komponenter i FIL.VAL eller i filvalstablån.

Kör och se vad som händer!




Hur kan jag komplettera grafiken med egna bilder?
=================================================

Skapa en 16-färgers .BMP-bild,t ex med PAINT.

Flippa den vertikalt t ex med GRAPHIC WORKSHOP.

Skala till rätt storlek t ex med GRAPHIC WORKSHOP.

Gör om den till .SIM-bild med MAKEBILD.EXE.Observera att du 
måste ange rätt bredd på ingående .BMP-bild.Annars gör
MAKEBILD en distorderad bild.MAKEBILD hämtar information om
bildens bredd från det WORD som BYTE 20 och 19 (omkastad ord-
ning på dessa bytes) bildar.Skulle du få en sned bild kan du 
med READFIL.EXE ändra byte 20-19.Högre värde förskjuter bildens 
överkant åt höger.

Kalla bilden för BILDXY.SIM där X och Y är siffror.

För att ta in en egen bild (egna bilder fungerar bara om du 
valt Vindruta = J) skriver du 12nn i mod-kolumnen i körcykel-
filen vid den körtid resp den körsträcka där bilden skall 
dyka upp.n är ensiffriga tal och nn anger X i BILDXY.SIM.
För att sätta X=1 skall nn vara 01.Du kan alltså ha upp till 
100 bildserier men jag vet inte riktigt vad som händer om 
du lägger in många bilder.Det tar ju tid att rita upp bilder
så programmet kan bli segt.

Se ävenHur beskriver jag en körcykel?			    

När du körde MAKEBILD fick du frågan "Hur många pixel från 
vänsterkanten skall bilden dyka upp?".När du nu aktiverar 
bilden dyker den upp vid horisonten så många pixel från 
skärmens kant som du angett.Observera att det är pixels 
från skärmkanten inte från vindrutans kant.

Den bild som dyker upp vid horisonten har Y=0 d v s den 
heter BILDX0.SIM.När bilden dyker upp lagras körsträckan 
och allteftersom körd sträcka ökar flyttas bilden nedåt.
Samtidigt förskjuts den i sidled.

Ju närmare bilden du kommer ju större skall den bli.Detta 
åstadkoms genom att Y ökar stegvis när bilden förskjuts 
nedåt.I rutans nedre del heter bilden BILDX5.SIM.Detta är 
alltså den största bilden i bildserien.Du börjar lämpigen 
med den och skalar ner den i steg till 80,60,40,20 % för att 
sluta med 10 % vid BILDX0.SIM.

Det antal pixels från skärmkanten som bilden skall dyka upp 
avser hela tiden BILDX0.SIM.Om du vill att BILDX1.SIM skall 
dyka upp i direkt anslutning till BILDX0.SIM anger du i 
MAKEBILD samma värde på pixels från skärmkant som för 
BILDX0.SIM.

Du kan också få bilden att röra sig i sidled som funktion av
avstånd eller tid och i längsled som funktion av tid.Även det 
kan du ange när du använder MAKEBILD för att omvandla från
.BMP till .SIM.

Alltför många frågor att besvara är jobbigt i längden och det 
är därför viktigt att verktyg som MAKEBILD inte har onödigt 
många frågor innan bilden blir klar.Om du vill göra en enkel 
omvandling vill du inte ha alla detaljfrågorna.Men för att 
kunna få dem,om du vill,Lägger du till 1000 när du svarar på 
hur många pixels från skärmkanten bilden skall dyka upp.Skall 
den dyka upp 150 pixels från kanten svarar du 1150 och får då 
alla detaljfrågor.

Vill du ändra positionsblocket på en färdig .SIM bild använder
du MOVEBILD.Byte nr 3 ger avståndsberoende sidförskjutning,
byte 5 ger tidsberoende sidförskjutning,byte 7 ger tidsberoende 
längsförskjutning.En etta i byte 4 , 6 eller 8 byter tecken på
föregående byte.En etta i byte 9 avaktiverar funktionen för 
vissa förhållanden mellan längd och tid vilket ger ett slump-
artat uppdykande.

Krock- och dikesdetektorerna sitter i motorhuvens framkant.
Innan motorhuven ritas upp hämtar de pixels med koordinaterna
(350,450) , (420,450) , (490,450).Om någon av dessa är färg 
4,10 eller 14 går programmet till KROCK.Är någon av dem färg
2 går programmet till DIKE.Vill du lägga in hinder som ger 
krock eller dikeskörning vid påkörning lägger du in bilder 
med detaljer i färgerna 4,10,14 eller 2 som skjuter ut i 
vägbanan.

De bilder som du lägger in är alltid fyrkantiga.Vill du att
de skall smälta in bättre gör du dem med en bakgrund som 
smälter in på det ställe där du lägger in dem.Det fungerar 
på en enfärgad yta som vägbanan men annars får du fel som
beror på att varje bild förskjuts nedåt innan den byts ut.
Det krävs en hel del mixtrande för att få det att se accep-
tabelt ut.Med hjälp av "Print Screen" kan du lägga in en 
skärmbild i "Kopiera" som du sedan kan "Klistra in" i PAINT
och använda som underlag för din bild.

Den "skog" som omger vägen är mönstrad och slår i viss mån 
igenom de bilder du lägger på den.Om du vill ha enfärgad 
bakgrund eller annan typ av mönstring skriver du 90ab i mod-
kolumnen.a och b är ensiffriga tal där a anger typ av mönster 
och b anger färg.a=0 och b=1 ger enfärgat grönt på vägens 
vänstra sida,a=0 och b=2 ger enfärgat grönt på vägens högra 
sida.a=1 och b=2 ger enfärgat grönt på båda sidor.

Observera att hinderdetektorn inte registrerar dikeskörning 
om inte vägens omgivning är grön (färg 2).

91ab återställer omgivande "skog" oberoende av vad du sätter 
a och b till.





Om .BMP och .SIM bilder
=======================

Jag har inte lyckats finna någon bra beskrivning av .BMP bilder
eller av Turbo Pascals bildformat.Nedanstående är därför baserat 
på vad jag kommit till via hacker-metoder.

Turbo Pascal V har två metoder för bildvisning.Antingen ritas 
bilder pixel för pixel eller också överförs en vektor med hela 
bilden.

Pixel för pixel metoden fungerar direkt på .BMP-bilder men den är 
mycket långsam.Jag har använt den för uppritning av musseldiagram 
och i MAKEBILD för att rita upp .BMP-bilden.

För att,under pågående körning,kunna lägga in bilder måste inlägg-
ningen gå så snabbt att en beräkningscykel kan klaras av på ett 
rimligt tidsinkrement.Bilderna måste då finnas färdiga som vektorer 
som kan läggas in i sin helhet.Jag kallar sådana färdiggjorda bilder 
för .SIM-bilder.Med hjälp av MAKEBILD.EXE kan du omvandla .BMP-bilder 
till .SIM-bilder.Vill du gå den omvända vägen kör du en simulering 
där .SIM-bilden visas.När den dyker upp på skärmen trycker du på 
PRINT SCREEN.Så avslutar du simuleringen (med Q).Gå till t ex PAINT,
klicka på REDIGERA,klicka på KLISTRA IN och du skall få upp den 
skärmbild där .SIM-bilden finns med.Klipp ut den och spara den som 
en 16-färgers .BMP.

.SIM-filer börjar med fyra BYTE som bildar två WORD.Dessa anger bildens
bredd och höjd.

När MAKEBILD gör en .SIM-bild lagras resultatet som en fil med 60 block 
med vardera 128 BYTE.Du kan alltså inte ha större bilder än 60*128-4 
BYTE.Du kan visserligen ändra vektorns storlek i MAKEBILD men då 
passar inte bilden i simuleringsprogrammet.

Efter de 60 blocken lägger MAKEBILD ett block med 128 BYTE.Detta block 
(positionsblocket)börjar med två bytes som bildar ett ord som anger det 
antal pixel från skärmkanten som bilden skall dyka upp.Så följer en byte
(nr 3) som anger avståndsberoende sidförskjutning.Sätt den till noll om 
du inte vill att bilden skall röra sig på något speciellt sätt.Byte nr 4 
är byte 3:s teckenbyte.En etta gör byte 3 negativ.

Byte nr 5 anger tidsberoende sidförskjutning.Med hjälp av den kan du få 
en bild att röra sig med viss hastighet tvärs över skärmen.Ju högre 
värde ju större hastighet.Du kan t ex lägga in älgar som springer över
vägen.Om du vill att påkörning av en älg skall ge "KROCK" måste du
i älgen lägga in någon av färgerna 4, 10 eller 14 så att hinderdetek-
torerna kan reagera på den.Byte nr 6 är byte nr 5:s teckenbyte.En etta 
gör byte nr 5 negativ.

Byte nr 7 ger tidsberoende längsförskjutning med byte nr 8 som tecken-
byte.

Om byte nr 9 är 1 släcks bilden för vissa förhållanden mellan väg och 
tid vilket gör att man får en viss slumpmässighet i hur bilden dyker 
upp.Du kan t ex ha älgar som bara dyker upp ibland.

Byte nr 10 ger möjlighet att lägga bilder via OR eller AND med bakgrunden.
1=XOR , 2=OR , 3=AND och 4=NOT.Övriga värden ger bilder som täcker över
bakgrunden.

Byte 11 ger möjlighet att lägga ett antal bilder över varandra.Om byte 
11 ligger i intervallet 1 till 9 läggs först bilden BILDXY.SIM.Därefter 
BILnDXY.SIM där n går från 1 till den siffra som står i byte 11.Du kan 
alltså lägga upp till tio bilder på varandra.Du kan använda detta för att
lägga bilder mot den befintliga bakgrunden.Om du gör en bild med färg 15 
där bakgrunden skall slå igenom och färg 0 där bilden skall täcka bak-
grunden kan du med byte 10 lägga den som en AND-bild vilket innebär att
du skär ut den bild som skall täckas över.Så lägger du BIL1DXY.SIM som 
har färg 0 där bakgrunden skall lysa igenom.Genom att lägga den som en 
OR-bild får du fram den bild du vill ha.

Resten av blocket är t v enbart bytens nummer (byte nr 100 är ev noll 
utan att detta framgår av MOVEBILD).

Vill du ändra positionsblocket på en färdig .SIM bild använder du 
MOVEBILD.EXE.

Om du vill mainipulera bilder gör du lämpligen detta på .BMP-bild innan 
du omvandlar denna till .SIM-bild.

För att manipulera en .BMP-fil använder du READFIL.EXE.Observera att 
du här,till skillnad från MAKEBILD,måste ange hela filnamnet inkl 
filnamnstillägg.

En .BMP-fil börjar med två BYTE som motsvarar bokstäverna B M.

BYTE 11 Anger det bytenummer där lagringen av bildpixels börjar
BYTE 19 Bildbredd LSB
BYTE 20 Bildbredd MSB
BYTE 23 Bildhöjd LSB
BYTE 24 Bildhöjd MSB
BYTE 115 Färgmättnad Blå
BYTE 116 Färgmättnad Grön
BYTE 117 Färgmättnad Röd

Om MAKEBILD ger en distorderad (sned) bild kan du med READFIL ändra
BYTE 19.

.BMP-bilder lagras flippade vertikalt.Byte 11 anger alltså var 
nedersta vänstra pixeln ligger.Stigande bytenummer innebär att man 
går från fötterna mot huvudet.Många kommersiella program t ex 
Graphic Workshop har möjlighet att flippa vertikalt så att bilden
blir rättvänd i MAKEBILD.

Jag har använt en RGBPalette men inte lyckats få alla färgnummer
att överensstämma med .BMP.I MAKEBILD ligger därför ett filter (A)
som byter .BMP:s färgnummer enligt

	1  till  4
      4  till  1
      9  till  12
      12 till  9
      3  till  6
      6  till  3
      11 till  14
      14 till  11

Du har också möjlighet att lägga in egna filter.