blob: e1c21071c01d5c5b268f128d88452cfc3067803f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
\section{Begrepp och systemöversikt}
\label{sec:begrepp och systemöversikt}
Runt om bilbanan finns 9 givare som skickar en signal när en bil passerar under
dem. En av givarna kallas målgivaren vars signal går att skilja från övriga
givare och således passar som en markör när ett nytt varv inleds. Givarna
delar in banan i nio delar, kallade segment. Dessa segment har i sin tur delats
in i totalt 80 delsegment där ett delsegment motsvarar en fysisk bit av banan.
För vardera bana och delsegment har ett värde på önskad spänningstillförsel till
banan tagits fram. Detta värde varierar dels eftersom bilarna vid olika delar
av banan behöver olika mycket spänningstillförsel för samma hastighet och dels
eftersom bilarna vid vissa delar av banan inte kan åka lika snabbt som vid andra
delar av banan för att inte riskera att åka av.
Centralt för systemet är den karta som beskrivs ovan samt en
modifierare som beror på köregenskaperna för den nuvarande bilen. Det
modifierande värdet kallas bilens \emph{konstant}. Denna konstant varierar
beroende på hur mycket spänning en viss bil behöver för att nå en viss
hastighet. Konstanten anpassas under körningens gång ytterligare beroende på
bilens varvtid jämfört med referenstiden.
% \begin{itemize}
%
% \item \texttt{car.num} - Om bilen är på bana ett eller två.
% \item \texttt{car.running} - Om bilen körs eller inte.
% \item \texttt{car.stopping} - Om bilen för tillfället letar efter ett ställe att stanna på.
% \item \texttt{car.stopped} - Om bilen har hittat ett ställe att stanna på.
% \item \texttt{car.automatic} - Om bilen ska köras autonomt.
% \item \texttt{car.segment} - Bilens nuvarande segment.
% \item \texttt{car.lap} - Bilens nuvarande varv.
% \item \texttt{car.lap\_times} - En lista över bilens varvtider.
% \item \texttt{car.seg\_times} - En matris över bilens segmentstider per varv.
% \item \texttt{car.position} - Bilens position i meter efter målgivaren.
% \item \texttt{car.pos\_at} - En lista över hur långt det är kvar till målgivaren från de olika segmenten.
% \item \texttt{car.seg\_len} - En lista över längden för varje segment.
% \item \texttt{car.percents} - En lista över hur stor andel av varvtiden varje segment förväntas ta.
% \item \texttt{car.map} - Kartan över alla subsegment och önskad spänningstillförsel.
% \item \texttt{car.miss\_probability} - Sannolikheten att bilen vid en given givare inte får en signal. Används för att testa krav 3.
% \item \texttt{car.constant} - Multipliceras med den önskade spänningstillförseln för att
% kompensera för olika bilars olika påverkan av samma spänningstillförsel.
%
% \end{itemize}
%
%
% Utöver dessa värden sparas ett antal värden för själva systemet.
%
% \begin{itemize}
%
% \item \texttt{display.data} - En kö av kommandon som ska skickas till displayen.
% \item \texttt{bootN.status} - Om den så kallade ''bootstrapen'' är aktiv för bana N. Se \ref{sec:systembeskrivning:uppstart}
% \item \texttt{bootN.time} - Den tid som passerat sedan förra gången ''bootstrapen'' höjde \texttt{car.constant} för bana N. Se
% \ref{sec:systembeskrivning:uppstart}
% \item \texttt{halt} - Om någon av bilarna åkt av och användaren valt att avbryta körningen.
% \item \texttt{t} - Hur lång tid den nuvarande programcykeln tagit.
% \item \texttt{highToc} - Längden på den längsta programcykeln. Används för att kontrollera krav 31.
%
% \end{itemize}
|