summaryrefslogtreecommitdiffstats
path: root/Dokument/Teknisk Dokumentation/appendix
diff options
context:
space:
mode:
authorMattias Uvesten <matuv053@student.liu.se>2019-12-02 21:27:21 +0100
committerMattias Uvesten <matuv053@student.liu.se>2019-12-02 21:27:21 +0100
commitcf76f528129877b94988c38d14daced605cbaa71 (patch)
tree832985d93d096caa9faf5a24839cbe6c88d9c062 /Dokument/Teknisk Dokumentation/appendix
parent34d01a5dc128f3a1819c36b7f9e93d07532fcbdb (diff)
parentdfe52de86d600654343968fea54a189f1ec9e8cc (diff)
downloadtfyy51-cf76f528129877b94988c38d14daced605cbaa71.tar.gz
Merge branch 'master' of https://gitlab.liu.se/vehsys/tfyy51/yc4_2019
Diffstat (limited to 'Dokument/Teknisk Dokumentation/appendix')
-rw-r--r--Dokument/Teknisk Dokumentation/appendix/01-handhavande.tex24
-rw-r--r--Dokument/Teknisk Dokumentation/appendix/02-funktion.tex120
-rw-r--r--Dokument/Teknisk Dokumentation/appendix/03-material.tex11
-rw-r--r--Dokument/Teknisk Dokumentation/appendix/04-tester.tex (renamed from Dokument/Teknisk Dokumentation/appendix/03-testprocedur.tex)0
-rw-r--r--Dokument/Teknisk Dokumentation/appendix/04-testprotokoll.tex0
-rw-r--r--Dokument/Teknisk Dokumentation/appendix/05-kravbeskrivning.tex141
6 files changed, 296 insertions, 0 deletions
diff --git a/Dokument/Teknisk Dokumentation/appendix/01-handhavande.tex b/Dokument/Teknisk Dokumentation/appendix/01-handhavande.tex
index e69de29..668a1c3 100644
--- a/Dokument/Teknisk Dokumentation/appendix/01-handhavande.tex
+++ b/Dokument/Teknisk Dokumentation/appendix/01-handhavande.tex
@@ -0,0 +1,24 @@
+\section{Handhavande}
+\label{app:handhavande}
+Starta Matlab 2015b. Observera att användaren måste använda datorn som finns
+inne i bilbanerummet och som är inkopplade till bilbanan. Inne i Matlab ska användaren navigera sig till ''Kod'' mappen (som finns tillgängliga för alla i projektet). Börja med att högerklicka på mappen ''Kod'' och välj alternativet ''Add To Path''. Klicka på ''Select Folders And Subfolders'' som dyker upp när musen pekar på ''Add To Path''. Därefter expandera bilbana mappen följt av yc4 mappen. Öppna sedan main.m och starta systemet genom att klicka på Run i Editorn i Matlab.
+
+Därefter välj vilka banor som ska köras via den externa touch displayen. Justera också referenstiden genom att klicka på plusstecknet eller minustecknet (notera att referenstiden ändras med 0.5 s intervall). Kryssa även i om någon av banorna ska köras manuellt. Starta genom att trycka på knappen nere i det högra hörnet på displayen. Observera att bilarna måste placeras några decimeter innan målgivaren före start.
+
+När programmet ska avslutas klickar användaren i kommentar fönstret i Matlab och
+klickar på q om bilen ska stanna direkt. Om användaren istället vill att
+bilen/bilarna ska stanna precis innan målgivaren klickar användaren på s
+(observera att detta fungerar endast efter varv ett).
+
+När programmet avslutas finns möjligheterna att se varvtiden/varvtiderna,
+segmentstiden/segmentstiderna samt att avsluta. Detta väljs utifrån de tre
+knapparna längst ner på displayen. Dessa knappar är Varv för att se varvtid,
+Segment för att se segmentstider. Samt knappen Avsluta.
+
+Om knappen Varv väljs kommer information såsom ''target'' vilket är vald varvtid.
+“mean” som är genomsnittlig varvtid och “stdev” är standardavvikelsen. För att
+se varvtiden för den andra banan klicka på knappen uppe i högra hörnet.
+
+Om programmet kraschar öppna main.m. Därefter skriv in
+ctrl och enter i avgränsningen som heter ''\%\% END OF RACE'' som finns i slutet av
+koden main.m.
diff --git a/Dokument/Teknisk Dokumentation/appendix/02-funktion.tex b/Dokument/Teknisk Dokumentation/appendix/02-funktion.tex
index e69de29..20313af 100644
--- a/Dokument/Teknisk Dokumentation/appendix/02-funktion.tex
+++ b/Dokument/Teknisk Dokumentation/appendix/02-funktion.tex
@@ -0,0 +1,120 @@
+\section{Funktioner och filer}
+
+\subsection{System}
+\label{app:funktioner och filer:system}
+
+\texttt{choose\_position(position, segment, track, track\_len)} - Körs när en
+givare passerats. Gör en bedömning om en givare (eller flera) har missats genom
+att kontrollera vilken givare som är närmast den nuvarande uppskattade position
+och kompenserar om en givare bedöms ha missats. Se \ref{sec:missade givare}
+
+\texttt{clamp(n, m, M)} - En hjälpfunktion som returnerar $n$ om $m < n < M$,
+$m$ om $n < m$ och $M$ om $n > M$.
+
+\texttt{detect\_missed(position, segment, track, track\_len)} - Returnerar true
+om position ligger utanför det nuvarande segmentet.
+
+\texttt{do\_boot(car, boot)} - Anropas en gång per programcykel i den så kallade
+boostrap-fasen. Se \ref{sec:systembeskrivning:uppstart} för information.
+
+\texttt{do\_car(car, t, displa\_data, boot)} - Anropas en gång per programcykel.
+Se \ref{sec:systembeskrivning:korning} och EN ANNAN DEL AV TEXTEN (vadå?) för
+information om hur en programcykel ser ut och NÅGOT MER (vadå?).
+
+\texttt{do\_gov(car)} - Anropas varje gång en givare passerats. Vid målgivaren
+jämförs referenstiden och den förra varvtiden och car.constant anpassas efter
+differensen mellan dem. Om differensen är högre ändras car.constant mer, och
+vice versa om differensen är låg. Vid givare 5 och 8 jämförs referenstiden och
+en uppskattning av hur lång tid det nuvarande varvet troligen kommer ta. Se
+\ref{sec:systembeskrivning:governor} för mer information.
+
+\texttt{fit\_percents(percents, lap\_time, seg\_times)} - Anropas vid varje nytt
+varv. Räknar ut den procentuella tiden varje segment tog det förra varvet och
+sparar medelvärdet mellan den förra procentsatsen och den nya, uträknade
+procentsatsen. Procentsatsen normeras sedan så summan är 1 (100%).
+
+\texttt{format\_seg\_times(car)} - Anropas när körningen avslutas. Returnerar
+den genomsnittliga tiden för varje segment.
+
+\texttt{get\_aprox\_v(cur\_seg, car)} - Anropas varje programcykel. Uppskattar
+bilens nuvarande hastighet genom att dividera den senast uppmätta segmentstiden
+med segmentets längd.
+
+% \texttt{get\_new\_u(new\_v, seg\_constant} - FLYTTA BERÄKNINGEN TILL DO\_CAR,
+% BEHÖVER INTE VARA EN EGEN FUNKTION
+
+\texttt{get\_new\_v(position, list)} - Anropas varje programcykel. Söker igenom
+bankartan och returnerar värdet v som matchar position.
+
+\texttt{get\_position(aprox\_v, prev\_p, delta\_t)} - Anropas varje
+programcykel. Räknar ut hur långt bilen rört sig sedan senaste programcykeln.
+
+% \texttt{get\_seg\_constant(position, lap\_constants, track, track\_len)} - TA
+% BORT
+
+\texttt{get\_time\_as\_string(millis)} - Omvandlar en mängd millisekunder till
+formatet "mm:ss.s". Till exempel omvandlas 1250 ms till "00:01.3" och 11240 till
+"00:11.2".
+
+\texttt{main.m} - Huvudskriptet som startar hela systemet. Det script som
+programmet ligger i. I main.m ligger alla funktioner. Det är denna fil som ska
+startas vid systemuppstart, se \ref{app:handhavande}
+
+\subsection{Display}
+\label{app:funktioner och filer:display}
+
+\texttt{bar\_graph(direction, no, x1, x2, y1, y2, start\_value, end\_value,
+type, pattern)} - Skapar ett stapeldiagram med ett hörn i \texttt{(x1, y1)} och ett
+diagonellt hörn i \texttt{(x2, y2)}. \texttt{direction} är en av 'O', 'U', 'L' och 'R' och
+bestämmer åt vilket håll "upp" är på stapeln. 'O' står för upp ('oben' på
+tyska), 'U' står för ner ('unter'), 'L' står för vänster ('links') och 'R' står
+för höger ('rechts'). Värdet stapeldiagrammet ska visa specifieras med
+\texttt{update\_bar\_graph}. \texttt{start\_value} och \texttt{end\_value}
+bestämmer vad som ska vara noll- respektive maxvärde för stapeldiagrammet.
+\texttt{no} är stapeldiagrammets nummer och behöver specifieras när
+stapeldiagrammets värde ska uppdateras. \texttt{type} sätts till 0 för en enkel stapel
+och 1 för en stapel inuti en ram.
+
+\texttt{clear\_display()} - Rensar displayen.
+
+\texttt{continue\_line(x2, y2)} - Fortsätter en linje från den senast specifierade
+linjens slut till \texttt{(x2, y2)}.
+
+\texttt{draw\_line(x1, y1, x2, y2)} - Ritar en linje mellan \texttt{(x1, y1)} och
+\texttt{(x2, y2)}.
+
+\texttt{key(x1, y1, x2, y2, down\_code, up\_code, just, text)} - Skapar en
+tryckbar knapp (till skillnad från en omkopplare, se \texttt{toggle()}) med
+diagonella hörn i \texttt{(x1, y1)} och \texttt{(x1, y1)} och texten \texttt{text}. Hur
+texten justeras beror på \texttt{just} där 'R' gör texten högerjusterad ('right'), 'C'
+gör texten centerjusterad och 'L' gör texten vänsterjusterad ('left'). Om
+knappen trycks ned läggs \texttt{down\_code} i displayens interna minne och om knappen
+släpps läggs \texttt{up\_code} i displayens interna minne.
+
+\texttt{point(x1, y1)} - Ritar en punkt i \texttt{(x1, y1)}. Punktens storlek kan
+anpassas med \texttt{set\_point\_size}.
+
+\texttt{put\_text(x, y, justification, text)} - Skriver texten \texttt{text} i
+\texttt{(x, y)}. Hur texten justeras beror på \texttt{justification} där 'R' gör
+texten högerjusterad ('right'), 'C' gör texten centerjusterad och 'L' gör texten
+vänsterjusterad ('left'). Om \texttt{justification} är 'R' bestämmer \texttt{x}
+och \texttt{x} textens övre högra koordinat, om \texttt{justification} är 'C'
+bestämmer \texttt{x} och \texttt{x} textens mittre koordinat och om
+\texttt{justification} är 'L' bestämmer \texttt{x} och \texttt{y} textens övre
+vänstra koordinat.
+
+set\_point\_size(n1, n2) - Sätter storleken på punkter och linjer som ritas ut.
+\texttt{n1} är storleken i x-led (mellan 1 och 15 pixlar) och \texttt{n2} är
+storleken i y-led (mellan 1 och 15 pixlar).
+
+\texttt{toggle(x1, y1, x2, y2, down\_code, up\_code, just, text)} - Skapar en
+tryckbar omkopplare (till skillnad från en knapp, se \texttt{key()}) med
+diagonella hörn i \texttt{(x1, y1)} och \texttt{(x1, y1)} och texten
+\texttt{text}. Hur texten justeras beror på *just* där 'R' gör texten
+högerjusterad ('right'), 'C' gör texten centerjusterad och 'L' gör texten
+vänsterjusterad ('left'). Om knappen aktiveras läggs \texttt{down\_code} i
+displayens interna minne och om knappen avaktiveras läggs \texttt{up\_code} i
+displayens interna minne.
+
+\texttt{update\_bar\_graph(num, val)} - Skickar värdet \texttt{val} till
+stapeldiagram *num*.
diff --git a/Dokument/Teknisk Dokumentation/appendix/03-material.tex b/Dokument/Teknisk Dokumentation/appendix/03-material.tex
new file mode 100644
index 0000000..cd266f6
--- /dev/null
+++ b/Dokument/Teknisk Dokumentation/appendix/03-material.tex
@@ -0,0 +1,11 @@
+\section{Material}
+
+Projektgruppen har av beställaren tillhandahållits ett lab med följande utrustning:
+
+\begin{itemize}
+ \item En bilbana med två banor som är utrustad med givare vars funktion är att detektera passerade bilar.
+ \item Två datorer.
+ \item En display med touchfunktionallitet.
+ \item Ett antal bilar.
+ \item Handkontroller för manuellkörning av bilarna.
+\end{itemize}
diff --git a/Dokument/Teknisk Dokumentation/appendix/03-testprocedur.tex b/Dokument/Teknisk Dokumentation/appendix/04-tester.tex
index e69de29..e69de29 100644
--- a/Dokument/Teknisk Dokumentation/appendix/03-testprocedur.tex
+++ b/Dokument/Teknisk Dokumentation/appendix/04-tester.tex
diff --git a/Dokument/Teknisk Dokumentation/appendix/04-testprotokoll.tex b/Dokument/Teknisk Dokumentation/appendix/04-testprotokoll.tex
deleted file mode 100644
index e69de29..0000000
--- a/Dokument/Teknisk Dokumentation/appendix/04-testprotokoll.tex
+++ /dev/null
diff --git a/Dokument/Teknisk Dokumentation/appendix/05-kravbeskrivning.tex b/Dokument/Teknisk Dokumentation/appendix/05-kravbeskrivning.tex
index e69de29..e5a06c7 100644
--- a/Dokument/Teknisk Dokumentation/appendix/05-kravbeskrivning.tex
+++ b/Dokument/Teknisk Dokumentation/appendix/05-kravbeskrivning.tex
@@ -0,0 +1,141 @@
+\section{Kravbeskrivning}
+\label{app:kravbeskrivning}
+För fullständig beskrivning av kraven, se kravspecifikationen.
+\begin{requirements}
+ \requirementno & Programmet är skrivet i Matlab. & Ja \\\hline
+
+ \requirementno & Systemet går att köra autonomt & Ja \\\hline
+
+ \requirementno & Systemet hanterar missade givare. Verifieras dels med en inprogrammerad
+ inställbar sannolikhet att en given givare hoppas över, dels av beställaren
+ under BP5. & Ja \\\hline
+
+ \requirementno & När ett varv har körts visar displayen varvnummer och varvtid.
+ & Ja \\\hline
+
+ \requirementno & Det nuvarande gaspådraget visas kontinuerligt på displayen. &
+ Ja \\\hline
+
+ \requirementno & Statistik om körningen visas vid avslutad körning på displayen.
+ Se \ref{sec:programslut}. & Ja \\\hline
+
+ \requirementno & Systemet anpassar automatiskt spänningstillförseln beroende på
+ egenskaperna för bilen och banan. & Ja \\\hline
+
+ \requirementno & Systemet anpassar automatiskt spänningstillförseln beroende på
+ egenskaperna för bilen och banan. & Ja \\\hline
+
+ \requirementno & Om en givare inte passeras inom nio sekunder pausas systemet och
+ användaren får frågan om programmet ska fortsätta eller avsluta. & Ja \\\hline
+
+ \requirementno & Vid uppstart väljer användaren vilken av banorna som ska köras eller om
+ båda ska köras samtidigt. & Ja \\\hline
+
+ \requirementno & Struket av beställaren. & N/A \\\hline
+
+ \requirementno & Vid uppstart väljer användaren om en bana ska köras autonomnt eller
+ manuellt. Banorna kan köras i alla kombinationer av autonomt och manuellt styre.
+ & Ja \\\hline
+
+ \requirementno & Systemet startas genom att enbart köra filen \texttt{main.m}.
+ Se \ref{app:handhavande}. & Ja \\\hline
+
+ \requirementno & Se krav 10 och 12. Delen om gemensam målgång är struken av
+ beställaren. & Ja \\\hline
+
+ \requirementno & All inmatning vid uppstart sker via displayen. & Ja \\\hline
+
+ \requirementno & På redovisingen åkte bilarna antingen av banan efter ett varv eller
+ inte alls. & Nej \\\hline
+
+ \requirementno & Referenstiden går att välja på displayen i intervallet 12 till 15
+ sekunder med steg om 0,5 sekunder. & Ja \\\hline
+
+ \requirementno & På redovisningen stannade inte bilarna någon gång. & Ja \\\hline
+
+ \requirementno && \\\hline
+
+ \requirementno & På redovisnigen slutfördes två körningar om 15 varv varav fem
+ kalibreringsvarv. Standardavvikelsen låg på 0,22 sekunder respektive 0,24
+ sekunder. & Nej \\\hline
+
+ \requirementno & Under de två testkörningarna överskreds gränsen om $\pm$ 0,5 sekunder
+ ett antal gånger. & Nej \\\hline
+
+ \requirementno & Krav 20 och 21 mäter endast varvtider från varv 6 och framåt. &
+ Ja \\\hline
+
+ \requirementno & Struket av beställaren. & N/A \\\hline
+
+ \requirementno & Statistik från körningarna vid redovisingen har delats med beställaren
+ via e-post. & Ja \\\hline
+
+ \requirementno & Vid avslutad körning visas grafer över varvtid och genomsnittlig tid
+ per segment. & Delvis \\\hline
+
+ \requirementno & Vid avslutad körning sparas statistik om körningen i en
+ \texttt{.mat}-fil. & Ja \\\hline
+
+ \requirementno & Se \ref{sec:system:korning:cykel}. & \\\hline
+
+ \requirementno & & \\\hline
+
+ \requirementno & Gruppmedlemmarna har tidsrapporterat under hela projektet och håller
+ sig på ett ungefär till tidsgränsen. Se externt tidsrapporteringsdokument. & Ja
+ \\\hline
+
+ \requirementno & Handledaren har inte bidragit med hjälp i mer än 25h. & Ja \\\hline
+
+ \requirementno & Vid avslutad körning visas den det längsta mellanrummet mellan två
+ avläsningar av banan. Se \ref{sec:system:korning:cykel}. & Ja \\\hline
+
+ \requirementno & Krav 32. Projektplanen var godkänd två veckor efter
+ beställarmötet. & Ja \\\hline
+
+ \requirementno & Designspecifikationen godkändes under projektvecka 4. & Ja \\\hline
+
+ \requirementno & BP4a redovisades under projektvecka 5. & Ja \\\hline
+
+ \requirementno & BP4b redovisades under projektvecka 6. & Ja \\\hline
+
+ \requirementno & BP5 redovisades under projektvecka 9. & Ja \\\hline
+
+ \requirementno & Programvaran kommer levereras under projektvecka 10. & -- \\\hline
+
+ \requirementno & Den tekniska dokumentationen kommer levereras under
+ projektvecka 10. & -- \\\hline
+
+ \requirementno & En slutleverans kommer hållas under projektvecka 10. Vid slutleveransen
+ kommer projektgruppen gå igenom samtliga krav och i övrigt presentera arbetets
+ gång. & -- \\\hline
+
+ \requirementno & Inför varje beslutspunkt har önskade dokument varit beställaren
+ tillhanda innan 09:00 arbetsdagen innan mötet. & Ja \\\hline
+
+ \requirementno & Projektledaren har delat tidsrapportering samt eventuella
+ mötesprotokoll vid rätt tid de flesta projektveckor. & Delvis \\\hline
+
+ \requirementno & Alla dokument och all programvara har funnits tillgänglig på
+ \url{https://gitlab.liu.se/} sedan projektvecka 2. & Ja \\\hline
+
+ \requirementno & Projektplan, designspecifikation, mötesprotokoll, testprotokoll och teknisk
+ dokumentation har framställts. Efterstudie kommer framställas vid ett senare
+ tillfälle. & Ja \\\hline
+
+ \requirementno & Se krav 42. & Ja \\\hline
+
+ \requirementno & Alla dokument framtagna av projektgruppen har levererats som
+ PDF-dokument. & Ja \\\hline
+
+ \requirementno & Alla framtagna dokument är skrivna på formell och korrekt
+ svenska. & Ja \\\hline
+
+ \requirementno & Dokumentationen innehåller följande figurer: varvtid mot varvnummer och
+ genomsnittlig tid för varje segment. & Delvis \\\hline
+
+ \requirementno & Programmet är uppdelat i funktioner. & Ja \\\hline
+
+ \requirementno & Projektgruppen har samtlats på minst ett möte i veckan där alla
+ medlemmar har närvarat. Handledaren har inte närvarat. & Delvis \\\hline
+
+\end{requirements}