diff options
| author | Albin <albwa833@student.liu.se> | 2019-12-01 17:15:57 +0100 |
|---|---|---|
| committer | Albin <albwa833@student.liu.se> | 2019-12-01 17:15:57 +0100 |
| commit | 301ab294977f0809d8e350d6a22653676cbb5bd7 (patch) | |
| tree | bdd25382fd38c08a9569f8ca54f1b8635208276a | |
| parent | fd327fb44ac889ad6bc828da132758064e106b36 (diff) | |
| download | tfyy51-301ab294977f0809d8e350d6a22653676cbb5bd7.tar.gz | |
Skrev om gov
| -rw-r--r-- | Dokument/Teknisk Dokumentation/root.tex | 2 | ||||
| -rw-r--r-- | Dokument/Teknisk Dokumentation/text/system/03-korning.tex | 58 |
2 files changed, 34 insertions, 26 deletions
diff --git a/Dokument/Teknisk Dokumentation/root.tex b/Dokument/Teknisk Dokumentation/root.tex index c3180d1..f46c71e 100644 --- a/Dokument/Teknisk Dokumentation/root.tex +++ b/Dokument/Teknisk Dokumentation/root.tex @@ -8,7 +8,7 @@ \title{Teknisk dokumentation} \author{Yc4} \date{\today} -\version{0.1} +\version{0.3} \reviewed{}{} \approved{}{} diff --git a/Dokument/Teknisk Dokumentation/text/system/03-korning.tex b/Dokument/Teknisk Dokumentation/text/system/03-korning.tex index 944914d..d60ef2e 100644 --- a/Dokument/Teknisk Dokumentation/text/system/03-korning.tex +++ b/Dokument/Teknisk Dokumentation/text/system/03-korning.tex @@ -15,51 +15,59 @@ Det finns två fall när positionen ska beräknas. När en givare har passerats när en givare inte har passerats. Under första varvet hanteras endast det första fallet 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 +Om en ny givare har passerats, \texttt{car.new\_check\_point == true}, ökar +programmet nuvarande segment (\texttt{car.segment}) med 1. \texttt{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}). +lista (\texttt{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 = \frac{s}{t}$ medelhastigheten för nuvarnade +använder proggrammet först en funktion \texttt{get\_aprox\_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}$ 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) +\texttt{get\_position}. Den använder den ungefärliga hastigheten beräknad av +\texttt{aprox\_v} och tiden sedan denna beräkning gjordes senast (en programcykel) och beräknar med $s = v \cdot t$ den sträcka som bilen har åkt. Sedan adderas denna -med förra kända postionen och retuneras i \emph{car.position}. +med förra kända postionen och retuneras i \texttt{car.position}. \subsubsection{Gaspådrag} Efter positionsberäkningen 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}. +funktioner, \texttt{get\_new\_v} och \texttt{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 \texttt{get\_new\_v} används bilens nuvarande postition (\texttt{car.postition}) +och hastihetskartan (\texttt{car.map}). I \texttt{car.map} finns en +hastighetsparameter för varje \texttt{car.position}, denna retuneras av funktionen +och sparas i \texttt{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}. +I \texttt{get\_new\_u} används denna hastighetsparameter tillsammans med +\texttt{car.constant}. Dessa multipliceras och deras produkt retuneras och sparas +i \texttt{car.u}. \subsubsection{Governor} Om bootstrap är avslutad, körs den del av koden vars ända uppgift är att -anpassa \emph{car.constant}. +anpassa \texttt{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 +Detta görs med funktionen \texttt{do\_gov}. Först görs en uppskattning av +varvtiden utifrån hur lång tid varvet har tagit än +så länge, se REFERENS!. Om bilen är inne på sitt första varv görs uppskattningen endast +utifrån förra segmentet \texttt{car.forcasts\_naive} och om första varvet är +avslutat använder den i stället \texttt{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}. +Sedan jämförs denna uppskattade varvtid med referenstiden (\texttt{car.ref\_time}) +och \texttt{car.constant} justeras. +\begin{verbatim} +car.constant = car.constant + (status - 1) * 0.08; +\end{verbatim} +Där \texttt{status} är den uppskattade varvtidens förhållande till \texttt{car.ref\_time}. +D.v.s om de är exakt lika blir \texttt{status~ =~ 1}, om uppskattningen är högre blir +den större än 1 och om den är lägre blir den mindre än 1. Således kommer \texttt{car.constant} +höjas eller sänkas proportionellt mot hur långt ifrån \texttt{car.ref\_time} uppskattningen +av varvtiden ligger. |
