summaryrefslogtreecommitdiffstats
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
parent950ca171c77ee8958950a560663e41fbf100619e (diff)
downloadtfyy51-3ea2a3850e044fec6fa01447489b43d56a22d79f.tar.gz
Flytta systembeskrivning till egna filer
-rw-r--r--Dokument/Teknisk Dokumentation/text/03-systembeskrivning.tex103
-rw-r--r--Dokument/Teknisk Dokumentation/text/system/01-innan-start.tex10
-rw-r--r--Dokument/Teknisk Dokumentation/text/system/02-uppstart.tex17
-rw-r--r--Dokument/Teknisk Dokumentation/text/system/03-korning.tex34
-rw-r--r--Dokument/Teknisk Dokumentation/text/system/04-gas.tex29
-rw-r--r--Dokument/Teknisk Dokumentation/text/system/05-display.tex6
6 files changed, 101 insertions, 98 deletions
diff --git a/Dokument/Teknisk Dokumentation/text/03-systembeskrivning.tex b/Dokument/Teknisk Dokumentation/text/03-systembeskrivning.tex
index cefb5e9..c0a4007 100644
--- a/Dokument/Teknisk Dokumentation/text/03-systembeskrivning.tex
+++ b/Dokument/Teknisk Dokumentation/text/03-systembeskrivning.tex
@@ -1,103 +1,10 @@
\section{Systembeskrivning}
-\subsection{Innan start}
-
-Vid uppstart ritas knappar ut på displayenm se figur x. Med dessa knappar går
-det att välja om en eller två banor ska vara aktiva och om de ska styras
-autonomt av systemet eller manuellt med handkontroll. Det går också att ställa
-in en referenstid mellan 12 och 15 sekunder med 0,5 sekunders intervall genom
-att trycka på + och - på displayen. Varje 0,x sekunder skickas ett kommando till
-displayen som skickar information om alla knapptryck som skett sedan minnet
-efterfrågades senast. Händelserna bearbetas i den kronologiska ordning de
-trycktes i och ändrar på variabler enligt de knapptryck som skett.
-
-\subsection{Uppstart}
-
-Vid automatisk körning körs funktionen \emph{do\_boot} vars syfte är att få fram en
-initierande konstant (\emph{car\_constant}) och spänningspådrag för den bil som står på banan. Då bilen är
-positionerad framför målbågen höjer funktionen konstanten kontinuerligt i ett
-tidsintervall på 0.7 sekunder. När väl konstanten är tillräckligt stor för att
-bilen ska kunna rulla och passera målbågen så dämpas höjningen av konstanten och förändringen sker med en lägre frekvens. Vid passering av den andra givaren så slutar
-funktionen tillfälligt att förändra konstanten och låter bilen, med den
-tilldelade konstanten, åka igenom det tredje segmentet för att få en uträknad tid. Med
-tiden det tagit för bilen att ta sig igenom segmentet räknar funktionen ut
-vilken förväntad varvtid bilen skulle få med just den konstanten den hade i
-segmentet. (beskriva forecastsuträkningen?) Det sista funktionen gör är att
-återigen justera konstanten. Om den förväntade varvtiden är större än 15
-sekunder, som är referensvarvtiden för första varvet, så ökar konstanten och är
-den förväntade varvtiden mindre än 15 sekunder så sänks konstanten.
-
-\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}.
-
-\subsection{Gaspådrag}
-
-Sedan beräknas det gaspådrag som skall sättas till banan. Detta görs i två
-funktioner, \emph{get\_new\_v}) och \emph{get\_new\_u}.
-
-I \emph{get\_new\_v} används bilens nuvarande postition (\emph{car.postition})
-och hastihetskartan (\emph{car.map}). I \emph{car.map} finns en
-hastighetsparameter för varje \emph{car.position}, denna retuneras av funktionen
-och sparas i \emph{car.v}.
-
-I \emph{get\_new\_u} används denna hastighetsparameter tillsammans med
-\emph{car.constant}. Dessa multipliceras och deras produkt retuneras och sparas
-i \emph{car.u}.
-
-\subsubsection{Governor}
-
-Sedan, om bootstrap är avslutad, körs den del av koden vars ända uppgift är att
-anpassa \emph{car.constant}.
-
-Detta görs med funktionen \emph{do\_gov}. Först görs en uppskattning av varvtiden utifrån hur lång tid varvet har tagit än
-så länge. Om bilen är inne på sitt första varv görs uppskattningen endast
-utifrån förra segmentet \emph{car.forcasts\_naive} och om första varvet är
-avslutat använder den i stället \emph{car.forcasts} som kollar på hela varvtiden
-fram till och med nu. Detta görs efter segment 4 och 8. Desutom används den
-faktiska varvtiden när bilen passerar mål (från varv 2 och frammåt).
-
-Sedan jämförs den uppskattade varvtiden med referenstiden \emph{car.ref\_time}.
-Om den uppskattade varviden är högre än referenstiden höjs \emph{car.constant}
-och om den är lägre sänks \emph{car.constant}.
-
-\subsubsection{Display}
-
-I varje programcykel skickas nuvarande värdet på u till två stapeldiagram på
-displayen för vardera bil. Se appendix N för mer information om displayens
-stapeldiagram. Om ett nytt varv har inletts skrivs dessutom varvnumret och
-varvtiden ut på displayen.
+\input{text/system/01-innan-start}
+\input{text/system/02-uppstart}
+\input{text/system/03-korning}
+\input{text/system/04-gas}
+\input{text/system/05-display}
\subsection{Avslut}
diff --git a/Dokument/Teknisk Dokumentation/text/system/01-innan-start.tex b/Dokument/Teknisk Dokumentation/text/system/01-innan-start.tex
new file mode 100644
index 0000000..d131edf
--- /dev/null
+++ b/Dokument/Teknisk Dokumentation/text/system/01-innan-start.tex
@@ -0,0 +1,10 @@
+\subsection{Innan start}
+
+Vid uppstart ritas knappar ut på displayenm se figur x. Med dessa knappar går
+det att välja om en eller två banor ska vara aktiva och om de ska styras
+autonomt av systemet eller manuellt med handkontroll. Det går också att ställa
+in en referenstid mellan 12 och 15 sekunder med 0,5 sekunders intervall genom
+att trycka på + och - på displayen. Varje 0,x sekunder skickas ett kommando till
+displayen som skickar information om alla knapptryck som skett sedan minnet
+efterfrågades senast. Händelserna bearbetas i den kronologiska ordning de
+trycktes i och ändrar på variabler enligt de knapptryck som skett.
diff --git a/Dokument/Teknisk Dokumentation/text/system/02-uppstart.tex b/Dokument/Teknisk Dokumentation/text/system/02-uppstart.tex
new file mode 100644
index 0000000..821c316
--- /dev/null
+++ b/Dokument/Teknisk Dokumentation/text/system/02-uppstart.tex
@@ -0,0 +1,17 @@
+\subsection{Uppstart}
+
+Vid automatisk körning körs funktionen \emph{do\_boot} vars syfte är att få fram
+en initierande konstant (\emph{car\_constant}) och spänningspådrag för den bil
+som står på banan. Då bilen är positionerad framför målbågen höjer funktionen
+konstanten kontinuerligt i ett tidsintervall på 0.7 sekunder. När väl konstanten
+är tillräckligt stor för att bilen ska kunna rulla och passera målbågen så
+dämpas höjningen av konstanten och förändringen sker med en lägre frekvens. Vid
+passering av den andra givaren så slutar funktionen tillfälligt att förändra
+konstanten och låter bilen, med den tilldelade konstanten, åka igenom det tredje
+segmentet för att få en uträknad tid. Med tiden det tagit för bilen att ta sig
+igenom segmentet räknar funktionen ut vilken förväntad varvtid bilen skulle få
+med just den konstanten den hade i segmentet. (beskriva forecastsuträkningen?)
+Det sista funktionen gör är att återigen justera konstanten. Om den förväntade
+varvtiden är större än 15 sekunder, som är referensvarvtiden för första varvet,
+så ökar konstanten och är den förväntade varvtiden mindre än 15 sekunder så
+sänks konstanten.
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}.
diff --git a/Dokument/Teknisk Dokumentation/text/system/04-gas.tex b/Dokument/Teknisk Dokumentation/text/system/04-gas.tex
new file mode 100644
index 0000000..d303456
--- /dev/null
+++ b/Dokument/Teknisk Dokumentation/text/system/04-gas.tex
@@ -0,0 +1,29 @@
+\subsection{Gaspådrag}
+
+Sedan beräknas det gaspådrag som skall sättas till banan. Detta görs i två
+funktioner, \emph{get\_new\_v}) och \emph{get\_new\_u}.
+
+I \emph{get\_new\_v} används bilens nuvarande postition (\emph{car.postition})
+och hastihetskartan (\emph{car.map}). I \emph{car.map} finns en
+hastighetsparameter för varje \emph{car.position}, denna retuneras av funktionen
+och sparas i \emph{car.v}.
+
+I \emph{get\_new\_u} används denna hastighetsparameter tillsammans med
+\emph{car.constant}. Dessa multipliceras och deras produkt retuneras och sparas
+i \emph{car.u}.
+
+\subsubsection{Governor}
+
+Sedan, om bootstrap är avslutad, körs den del av koden vars ända uppgift är att
+anpassa \emph{car.constant}.
+
+Detta görs med funktionen \emph{do\_gov}. Först görs en uppskattning av varvtiden utifrån hur lång tid varvet har tagit än
+så länge. Om bilen är inne på sitt första varv görs uppskattningen endast
+utifrån förra segmentet \emph{car.forcasts\_naive} och om första varvet är
+avslutat använder den i stället \emph{car.forcasts} som kollar på hela varvtiden
+fram till och med nu. Detta görs efter segment 4 och 8. Desutom används den
+faktiska varvtiden när bilen passerar mål (från varv 2 och frammåt).
+
+Sedan jämförs den uppskattade varvtiden med referenstiden \emph{car.ref\_time}.
+Om den uppskattade varviden är högre än referenstiden höjs \emph{car.constant}
+och om den är lägre sänks \emph{car.constant}.
diff --git a/Dokument/Teknisk Dokumentation/text/system/05-display.tex b/Dokument/Teknisk Dokumentation/text/system/05-display.tex
new file mode 100644
index 0000000..f1baef2
--- /dev/null
+++ b/Dokument/Teknisk Dokumentation/text/system/05-display.tex
@@ -0,0 +1,6 @@
+\subsubsection{Display}
+
+I varje programcykel skickas nuvarande värdet på u till två stapeldiagram på
+displayen för vardera bil. Se appendix N för mer information om displayens
+stapeldiagram. Om ett nytt varv har inletts skrivs dessutom varvnumret och
+varvtiden ut på displayen.