diff options
Diffstat (limited to 'Dokument/Designspec/events')
| -rw-r--r-- | Dokument/Designspec/events/kalibrering.tex | 23 | ||||
| -rw-r--r-- | Dokument/Designspec/events/manuell.tex | 5 | ||||
| -rw-r--r-- | Dokument/Designspec/events/missade-givare.tex | 11 | ||||
| -rw-r--r-- | Dokument/Designspec/events/off-circuit.tex | 11 | ||||
| -rw-r--r-- | Dokument/Designspec/events/olika-bilar.tex | 4 | ||||
| -rw-r--r-- | Dokument/Designspec/events/start.tex | 7 | ||||
| -rw-r--r-- | Dokument/Designspec/events/warmup.tex | 12 |
7 files changed, 73 insertions, 0 deletions
diff --git a/Dokument/Designspec/events/kalibrering.tex b/Dokument/Designspec/events/kalibrering.tex new file mode 100644 index 0000000..8cd28c4 --- /dev/null +++ b/Dokument/Designspec/events/kalibrering.tex @@ -0,0 +1,23 @@ +För att optimera bilarnas körning och varvtid kommer bilarna behöva kalibreras. +Enligt kravsspecifikationens punkt 22 får det inte köras fler än 5 +kalibreringsvarv innan kraven 20 och 21 måste vara uppfyllda. + +Kalibreringsvarven behöver ta hänsyn till tre moment. Det första är att +identifiera vilken konstant en bil behöver, det andra är att optimera för +gemensam varvtid och det tredje är att optimera den valda varvtiden. + +För att identifiera en bilkonstant börjar programmet med att välja den lägsta +spänningen som är möjlig vid starten. Efter första givaren är det möjligt att +räkna ut hastigheten samt ta fram en begynnelsekonstant för första segmentet +som kan användas för uppskattning av position. Det är också möjligt att se om +bilen ligger efter eller kör enligt tid genom att jämföra med tidigare mätdata. +Om bilen ligger efter kommer spänningen ökas succesivt tills bilen har nått den +önskade tiden mellan segmenten för att uppnå önskad varvtid. När bilen ligger i +fas kan den konstant som krävs för den nuvarande bilen räknas ut. + +Under kalibreringsvarven är det också viktigt att anpassa båda bilarnas varvtid +mot varandra. Om båda bilarna har en varvtid som är långsammare än den +förväntade hastigheten ska programmet optimera för en gemensam varvtid före den +valda varvtiden. Med funktioner ska programmet också kunna optimera för både +gemensam och vald varvtid. + diff --git a/Dokument/Designspec/events/manuell.tex b/Dokument/Designspec/events/manuell.tex new file mode 100644 index 0000000..a06c43a --- /dev/null +++ b/Dokument/Designspec/events/manuell.tex @@ -0,0 +1,5 @@ +Enligt kravspecifikationens punkt 12 ska det vara möjligt att välja om en bana +ska köras manuellt eller autonomt. Det ska alltså gå att köra ena banan +manuellt medan den andra styrs av programmet. Detta styrs via displayen vid +uppstart. + diff --git a/Dokument/Designspec/events/missade-givare.tex b/Dokument/Designspec/events/missade-givare.tex new file mode 100644 index 0000000..a3aff3e --- /dev/null +++ b/Dokument/Designspec/events/missade-givare.tex @@ -0,0 +1,11 @@ +Enligt krav 3 i kravspecifikationen ska programmet kunna hantera missade givare +och fortsätta köra som normalt. Med metoden som används blir detta inte ett +problem. Givarna kommer endast att användas för att justera programmets +uppfattning om bilarnas position, medan själva positioneringen räknas ut av +systemet. Om programmet detekterar att en givare inte passeras överhuvudtaget +när det var förväntat fortsätter systemet köra bilen enligt beräkningar på vart +bilen borde befinna sig tills nästa givare. Vid passering av nästa givare +kommer systemet jämföra den uträknade tiden och den faktiska tiden som bilen +passerade på. Systemet jämför sedan om tiderna är rimliga och avgör därefter om +den tidigare tidsfördröjningen var en missad givare eller något annat. + diff --git a/Dokument/Designspec/events/off-circuit.tex b/Dokument/Designspec/events/off-circuit.tex new file mode 100644 index 0000000..9298182 --- /dev/null +++ b/Dokument/Designspec/events/off-circuit.tex @@ -0,0 +1,11 @@ +Enligt kravspecifikationen ska systemet detektera att en bil åkt av banan inom +10 sekunder. Om systemet inte får en ny givarsignal inom tio sekunder från den +senaste givaren antas bilen ha fastnat eller åkt av banan och programmet pausas +tills bilen är på banan igen och användaren trycker på ``fortsätt'' på +displayen. Med givarnas förväntade tidspassering ska programmet kunna se att en +bil inte passerat en givare vid den förväntade tidspasseringen. Har bilen inte +passerat någon av givarna inom fem sekunder kan programmet öka spänningsnivån +gradvis som vid start för att kontrollera om bilen har stannat. Efter +ytterligare 5 sekunder ska programmet pausas och displayen skriva ut att bilen +har åkt av banan. + diff --git a/Dokument/Designspec/events/olika-bilar.tex b/Dokument/Designspec/events/olika-bilar.tex new file mode 100644 index 0000000..4c53011 --- /dev/null +++ b/Dokument/Designspec/events/olika-bilar.tex @@ -0,0 +1,4 @@ +Enligt kravspecifikation punkt 7 ska programmet automatiskt hantera de olika +bilarna som finns. Lösningen är att varje bil ska tilldelas en egen konstant +som är specifik för varje bil. Konstanten är framtagen genom en funktion som +gör beräkningar både för bilens variabel samt eventuellt drifsfall. diff --git a/Dokument/Designspec/events/start.tex b/Dokument/Designspec/events/start.tex new file mode 100644 index 0000000..5a5beeb --- /dev/null +++ b/Dokument/Designspec/events/start.tex @@ -0,0 +1,7 @@ +Vid start ska systemet hitta en spänningsnivå tillräckligt hög för att bilen +ska börja rulla men inte så hög att den åker av banan i första kurvan. I början +ska därför spänningen öka lite i taget tills bilen passerat målgivaren. När +bilen passerat målgivaren bibehålls spänningsnivån tills nästa givare passeras. +Då kan programmet göra beräkningar för en inledande konstant för bilen och det +vanliga systemet kan ta vid och kontrollera bilens förväntade position mot dess +uträknade position. diff --git a/Dokument/Designspec/events/warmup.tex b/Dokument/Designspec/events/warmup.tex new file mode 100644 index 0000000..ef4d989 --- /dev/null +++ b/Dokument/Designspec/events/warmup.tex @@ -0,0 +1,12 @@ +Enligt kravspecifikations punkt 8 ska programmet hantera olika typer av +driftsfall såsom kall samt varm bana. Metoden för att lösa detta problem är att +programmet automatiskt justerar bilens körning för olika typer av driftsfall. + + +Programmet ska kunna identifiera förändringar i snitthastighet per segment och +varvtid (även om programmet ger ut samma spänning). Detta kan bero på +temperaturförändring i banan. Då systemet identifierat dessa förändringar ska +programmet automatiskt justera en konstant (car\_constant, se +sektion~\ref{sec:system_a_funcs}) som korrigeras succesivt tills bilen ligger +på vald referenstid. + |
