summaryrefslogtreecommitdiffstats
path: root/Dokument/Teknisk Dokumentation/text/system/03-korning.tex
diff options
context:
space:
mode:
authorGustav Sörnäs <gusso230@student.liu.se>2019-12-01 15:09:11 +0100
committerGustav Sörnäs <gusso230@student.liu.se>2019-12-01 15:09:11 +0100
commit3ea2a3850e044fec6fa01447489b43d56a22d79f (patch)
tree9cf91215e01b5cb37efb089bba3bce0ba6a91920 /Dokument/Teknisk Dokumentation/text/system/03-korning.tex
parent950ca171c77ee8958950a560663e41fbf100619e (diff)
downloadtfyy51-3ea2a3850e044fec6fa01447489b43d56a22d79f.tar.gz
Flytta systembeskrivning till egna filer
Diffstat (limited to 'Dokument/Teknisk Dokumentation/text/system/03-korning.tex')
-rw-r--r--Dokument/Teknisk Dokumentation/text/system/03-korning.tex34
1 files changed, 34 insertions, 0 deletions
diff --git a/Dokument/Teknisk Dokumentation/text/system/03-korning.tex b/Dokument/Teknisk Dokumentation/text/system/03-korning.tex
new file mode 100644
index 0000000..2dc4ef3
--- /dev/null
+++ b/Dokument/Teknisk Dokumentation/text/system/03-korning.tex
@@ -0,0 +1,34 @@
+\subsection{Körning}
+
+Huvudloopen körs åtminstonde 10 gånger i sekunden. Den beräknar först var bilen
+befinner sig, sedan väljer den hur snabbt bilen ska köra och slutligen sätts den
+hastigheten till banan.
+
+Den viktigaste delen av huvudloopen är funktionen \emph{do\_car}. Funktionen
+beräknar de ändrinar som skall göras i matlab-structen \emph{car} och är indelad
+i många delar.
+
+\subsubsection{Position}
+
+Det finns två fall när positionen ska beräknas. När en givare har passerats och
+när en givare inte har passerats. Under första varvet görs endast det första och
+från varv 2 och frammåt görs båda paralellt.
+
+Om en ny givare har passerats, \emph{car.new\_check\_point == true}, ökar
+programmet nuvarande segment (\emph{car.segment}) med 1. \emph{car.segment}, som
+alltid ligger mellan 1 och 9, används som index för att välja position i en
+lista (\emph{car.pos\_at}).
+
+Om ingen givare har passerars och bilen har avslutat första varvet, alltså
+oftast, görs lite mer avancerade beräkningar. För att beräkna positionen
+använder proggrammet först en funktion \emph{get\_aprox\_v}. Denna utgår ifrån
+förra varvets segmentstider (\emph{car.seg\_times}) och segmentslängder
+(\emph{car.seg\_len}) och beräknar med v = s/t medelhastigheten för nuvarnade
+segment, men förra varvet. Denna antas vara ungefär samma sak som nuvarande
+hastiget.
+
+Sedan beräknas den fakiska positionen, i meter från målgivaren, med funktionen
+\emph{get\_position}. Den använder den ungefärliga hastigheten beräknad av
+\emph{aprox\_v} och tiden sedan denna beräkning gjordes senast (en programcykel)
+och beräknar med s = v * t den sträcka som bilen har åkt. Sedan adderas denna
+med förra kända postionen och retuneras i \emph{car.position}.