summaryrefslogtreecommitdiffstats
path: root/Dokument/Teknisk Dokumentation
diff options
context:
space:
mode:
authorGustav Sörnäs <gusso230@student.liu.se>2019-12-03 15:52:01 +0100
committerGustav Sörnäs <gusso230@student.liu.se>2019-12-03 15:53:59 +0100
commit3d96fc924332470f2c5fc47008727a1f8b7a5373 (patch)
tree13fcdf41ccfb7a48f339abe3b9933fcd282d6f2f /Dokument/Teknisk Dokumentation
parent96f47b72345b4c9019f70fd64a369485c2e1a64a (diff)
downloadtfyy51-3d96fc924332470f2c5fc47008727a1f8b7a5373.tar.gz
Mer tornadoändringar
Diffstat (limited to 'Dokument/Teknisk Dokumentation')
-rw-r--r--Dokument/Teknisk Dokumentation/Figures/The_Earth_seen_from_Apollo_17.jpgbin1225195 -> 0 bytes
-rw-r--r--Dokument/Teknisk Dokumentation/stats/lap-calibrate.csv16
-rw-r--r--Dokument/Teknisk Dokumentation/text/00-sammanfattning.tex3
-rw-r--r--Dokument/Teknisk Dokumentation/text/01-inledning.tex15
-rw-r--r--Dokument/Teknisk Dokumentation/text/02-system.tex16
-rw-r--r--Dokument/Teknisk Dokumentation/text/05-end.tex34
-rw-r--r--Dokument/Teknisk Dokumentation/text/system/03-korning.tex43
7 files changed, 90 insertions, 37 deletions
diff --git a/Dokument/Teknisk Dokumentation/Figures/The_Earth_seen_from_Apollo_17.jpg b/Dokument/Teknisk Dokumentation/Figures/The_Earth_seen_from_Apollo_17.jpg
deleted file mode 100644
index b02a028..0000000
--- a/Dokument/Teknisk Dokumentation/Figures/The_Earth_seen_from_Apollo_17.jpg
+++ /dev/null
Binary files differ
diff --git a/Dokument/Teknisk Dokumentation/stats/lap-calibrate.csv b/Dokument/Teknisk Dokumentation/stats/lap-calibrate.csv
new file mode 100644
index 0000000..6383233
--- /dev/null
+++ b/Dokument/Teknisk Dokumentation/stats/lap-calibrate.csv
@@ -0,0 +1,16 @@
+x, y1, y2
+1, 17.06, 18.32
+2, 13.14, 15.37
+3, 12.89, 14.28
+4, 12.66, 13.83
+5, 13.28, 14.13
+6, 12.81, 14.14
+7, 13.23, 14.49
+8, 13.17, 14.60
+9, 13.46, 14.81
+10, 12.96, 14.13
+11, 13.22, 14.77
+12, 13.07, 14.23
+13, 13.54, 14.48
+14, 13.18, 14.77
+15, 13.52, 14.30
diff --git a/Dokument/Teknisk Dokumentation/text/00-sammanfattning.tex b/Dokument/Teknisk Dokumentation/text/00-sammanfattning.tex
deleted file mode 100644
index a30a3aa..0000000
--- a/Dokument/Teknisk Dokumentation/text/00-sammanfattning.tex
+++ /dev/null
@@ -1,3 +0,0 @@
-\section*{Sammanfattning}
-Massa text som sammanfattar hela skiten.
-
diff --git a/Dokument/Teknisk Dokumentation/text/01-inledning.tex b/Dokument/Teknisk Dokumentation/text/01-inledning.tex
index 862ea55..c468d66 100644
--- a/Dokument/Teknisk Dokumentation/text/01-inledning.tex
+++ b/Dokument/Teknisk Dokumentation/text/01-inledning.tex
@@ -1,5 +1,6 @@
\section{Inledning}
-Systemet har utvecklats från grunden i kursen TFYY51 under hösten 2019.
+Systemet har utvecklats som en del av kursen TFYY51 under hösten 2019.
+
\begin{figure}
\centering
\includegraphics[width=\linewidth] {Figures/BanaModell}
@@ -7,6 +8,18 @@ Systemet har utvecklats från grunden i kursen TFYY51 under hösten 2019.
\label{fig:bilbanan}
\end{figure}
+Projektet ska utveckla ett system vilket styr bilar runt en bilbana efter en
+given referenstid. Till förfogande finns, en bilbana, ett antal bilar, en
+display samt en dator. Målet med detta projekt är att bilarna skas köras runt
+banan inom 0,5 sekunder av den referenstid som användaren har angett. Efter en
+avslutad körning på x varv ska standardaviklesen på varvtiderna inte överskrida
+0,2 sekunder. Systemet skrivs i MatLab och har som huvudsyfte att reglera den
+spänning som bilbanan skickar till bilarna. Olika bilar beter sig olika utifrån
+vissa skillnader bland bilarna, till exempel vikt, motorn i dem samt den magnet
+under bilarna som håller dem någorlunda fast på banan. Hela systemet ska styras
+utifrån en touch display som är enkel att förstå för gemene man och efter
+avslutad körning ska den även visa statistik om hur körningen gick.
+
\subsection{Bakgrund}
Projektet har utförts med hjälp av en bilbana samt flera bilar, givare,
diff --git a/Dokument/Teknisk Dokumentation/text/02-system.tex b/Dokument/Teknisk Dokumentation/text/02-system.tex
index 4856546..59be778 100644
--- a/Dokument/Teknisk Dokumentation/text/02-system.tex
+++ b/Dokument/Teknisk Dokumentation/text/02-system.tex
@@ -21,6 +21,22 @@ 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.
+\subsection{Display}
+
+% TODO introducera displayen
+
+\subsection{Kommunikation}
+
+För att rita object på displayen finns hjälpfunktioner liknande ett API som
+tagits fram utifrån displayens tekniska specifikation, se bilaga.
+Hjälpfunktionerna implementerades i Matlab och beskrivs i sin helhet i appendix
+del~\ref{app:funktioner och filer:display}.
+
+För att reagera på knapptryck på displayen kan displayen instrueras att flytta
+hela sitt interna minne (där information om bland annat knapptryck finns) till
+ett minne som delas med styrdatorn. Detta minne kan sedan läsas av och systemet
+kan agera utifrån händelserna som skett.
+
% \begin{itemize}
%
% \item \texttt{car.num} - Om bilen är på bana ett eller två.
diff --git a/Dokument/Teknisk Dokumentation/text/05-end.tex b/Dokument/Teknisk Dokumentation/text/05-end.tex
index f58234f..b29d289 100644
--- a/Dokument/Teknisk Dokumentation/text/05-end.tex
+++ b/Dokument/Teknisk Dokumentation/text/05-end.tex
@@ -1,31 +1,37 @@
\section{Programslut}
\label{sec:programslut}
-display\_post\_race\_graphs(seg\_times1, seg\_times2, lap\_times1, lap\_times2,
-ref\_time) hanterar knapptryck för att byta mellan de två vyerna. Varje 0,4
-sekunder skickas ett kommando till displayen som kopierar det interna minnet
-till minnet som delas med styrdatorn. Minnet som delas med styrdatorn läses av
-och eventuella knapptryck hanteras genom anrop till antingen
-draw\_lap\_graph(...) eller draw\_segment\_graph(...).
-draw\_lap\_graph(lap\_times1, lap\_times2, ref\_time) ritar varvtider för
-ena bilen i taget och skriver ut medelvärde och standardavvikelse, se figur \ref{fig:display_end}.
+När körningen avslutas visas statistik från körningen på den inkopplade
+touchdisplayen. Användaren kan välja om hen vill se den genomsnittliga varvtiden
+för vardera bil eller den genomsnittliga varvtiden för båda bilarna samtidigt.
-Hur mycket ska jag skriva om implementationen här?
+\subsection{Varvtider}
-draw\_segment\_graph(seg\_times1, seg\_times2)
+Användaren kan välja att se varvtider från körningen som avslutades. Displayen
+visar dels en tabell med referenstid, genomsnittlig varvtid och
+standardavvikelse och dels en graf över alla varvtider för den ena av bilarna.
+Grafen är en vanlig ''scatter plot'' med linjer mellan punkterna. Utritat finns
+också den valda referenstiden och två linjer vid referenstiden + 0,5~sekunder
+respektive referenstiden - 0,5~sekunder, den maximalt tillåtna avvikelsen från
+referenstiden. Om två bilar körts kan användaren byta bil genom att trycka på en
+knapp på displayen.
-Samma fråga här som raden ovanför.
+\subsection{Segmentstider}
+
+Användaren kan också välja att se genomsnittliga segmentstider från körningen.
+Segmentstiderna ritas upp som stapeldiagram med en stapel per bil och segment.
+Om två bilar körts visas två staplar per segment.
\begin{figure}
\centering
\includegraphics[width=0.75\linewidth] {Figures/genomsnitt_segment}
\caption{Genomsnittliga segmentstider}
- %\label{fig:choose2}
+ \label{fig:display-seg}
\vspace*{2\floatsep}% https://tex.stackexchange.com/q/26521/5764
\centering
\includegraphics [width=0.75\linewidth] {Figures/varvtider}
\caption{Varvtider}
- \label{fig:display_end}
-\end{figure} \ No newline at end of file
+ \label{fig:display-lap}
+\end{figure}
diff --git a/Dokument/Teknisk Dokumentation/text/system/03-korning.tex b/Dokument/Teknisk Dokumentation/text/system/03-korning.tex
index 5c47d53..6dcbadd 100644
--- a/Dokument/Teknisk Dokumentation/text/system/03-korning.tex
+++ b/Dokument/Teknisk Dokumentation/text/system/03-korning.tex
@@ -1,11 +1,14 @@
\subsection{Körning}
\label{sec:systembeskrivning:korning}
-Huvudloopen körs åtminstonde 10 gånger i sekunden. Den beräknar var bilen
-befinner sig, hur snabbt bilen ska köra och skickar det nya gaspådraget till
-banan. När en givare passeras justeras också bilens konstant efter nuvarande
-varv- och referenstid. Nedan beskrivs vad systemet gör under en komplett
-programcykel.
+Körningen är uppdelad i olika faser. Dessa presenteras nedan. En
+\emph{programcykel} är när dessa faser körs igenom en gång. Samlingsnamnet för
+faserna är \emph{huvudloopen}. Systemet behöver köra programcykler med som högst
+0,1~sekunders intervall (enligt krav 31). I en programcykel beräknar systemet
+var bilen befinner sig, hur snabbt bilen ska köra och skickar det nya
+gaspådraget till banan. När en givare passeras justeras också bilens konstant
+efter nuvarande varv- och referenstid. Nedan beskrivs vad systemet gör under en
+komplett programcykel.
\subsubsection{Position}
\label{sec:system:korning:position}
@@ -23,20 +26,22 @@ position. Detta görs genom att räkna ut en approximativ hastighet $v =
\frac{s}{t}$ där $v$ är hastigheten, $s$ är längden på det nuvarande segmentet
och $t$ är hur lång tid det nuvarande segmentet tog förra varvet.
-% Om ingen givare har passerars och första varvet är avslutat kallas först på funktionen \texttt{get\_approx\_v()}. Denna utgår ifrån
-% förra varvets segmentstider (\texttt{car.seg\_times}) och segmentslängder
-% (\texttt{car.seg\_len}) och beräknar med $v = \frac{s}{t}$, där \texttt{s} är segmentslängden och \texttt{t} segmentstiden, \texttt{v} som är medelhastigheten för nuvarnade
-% segment, men förra varvet. Denna antas vara ungefär samma som nuvarande
-% hastiget och kallas \emph{car.v}.
-
-Med den approximativa hastigheten räknas sedan en beräknad längd bilen rört sig
-sedan senaste programcykeln ut med $\mathrm{d}s = v \cdot \mathrm{d}t$ där
-$\mathrm{d}s$ är den beräknade sträckan bilen rört sig, $v$ är hastigheten som
-precis räknades ut och $\mathrm{d}t$ är tiden sedan den förra programcykeln.
-Denna förflyttning adderas med positionen från förra programcykeln och kallas
-den \emph{beräknade positionen}.
-
-Om en givare passerats räknar systemet här ut om en givare vid ett tidigare
+% Om ingen givare har passerars och första varvet är avslutat kallas först på
+% funktionen \texttt{get\_approx\_v()}. Denna utgår ifrån förra varvets
+% segmentstider (\texttt{car.seg\_times}) och segmentslängder
+% (\texttt{car.seg\_len}) och beräknar med $v = \frac{s}{t}$, där \texttt{s} är
+% segmentslängden och \texttt{t} segmentstiden, \texttt{v} som är
+% medelhastigheten för nuvarnade segment, men förra varvet. Denna antas vara
+% ungefär samma som nuvarande hastiget och kallas \emph{car.v}.
+
+Med den approximativa hastigheten räknar sedan systemet ut hur långt bilen rört
+sig sen den senaste programcykeln. Denna förflyttning räknas ut med $\mathrm{d}s
+= v \cdot \mathrm{d}t$ där $\mathrm{d}s$ är den beräknade förflyttningen, $v$
+hastigheten som precis räknades ut och $\mathrm{d}t$ tiden sedan den förra
+programcykeln. Denna förflyttning läggs till positionen från förra programcykeln
+och kallas den \emph{beräknade} positionen.
+
+Om en givare passerats upskattar systemet sedan om en givare vid ett tidigare
tillfälle passerats (genom att jämföra givarpositionen och den beräknade
positionen). Information om denna procedur finns i del~\ref{sec:missade givare}.