diff options
| author | Gustav Sörnäs <gusso230@student.liu.se> | 2019-12-03 15:52:01 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gusso230@student.liu.se> | 2019-12-03 15:53:59 +0100 |
| commit | 3d96fc924332470f2c5fc47008727a1f8b7a5373 (patch) | |
| tree | 13fcdf41ccfb7a48f339abe3b9933fcd282d6f2f /Dokument/Teknisk Dokumentation | |
| parent | 96f47b72345b4c9019f70fd64a369485c2e1a64a (diff) | |
| download | tfyy51-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.jpg | bin | 1225195 -> 0 bytes | |||
| -rw-r--r-- | Dokument/Teknisk Dokumentation/stats/lap-calibrate.csv | 16 | ||||
| -rw-r--r-- | Dokument/Teknisk Dokumentation/text/00-sammanfattning.tex | 3 | ||||
| -rw-r--r-- | Dokument/Teknisk Dokumentation/text/01-inledning.tex | 15 | ||||
| -rw-r--r-- | Dokument/Teknisk Dokumentation/text/02-system.tex | 16 | ||||
| -rw-r--r-- | Dokument/Teknisk Dokumentation/text/05-end.tex | 34 | ||||
| -rw-r--r-- | Dokument/Teknisk Dokumentation/text/system/03-korning.tex | 43 |
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 Binary files differdeleted file mode 100644 index b02a028..0000000 --- a/Dokument/Teknisk Dokumentation/Figures/The_Earth_seen_from_Apollo_17.jpg +++ /dev/null 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}. |
