diff --git a/.gitignore b/.gitignore index 0c568fb5d4113f05ed74516c1a15098a63a93efb..abc579f77a7085891854d222dc1da27923dabd50 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,35 @@ ## for latex relates files + *.aux + *.bbl + *.blg + *-blx.bib + *.glg + *.glo + *.gls + *.log + *.out + *.run.xml + *.sybctex.gz + *.toc + *.xdy + *.fls + *.fdb_latexmk + doc/**/*.pdf + +testenv/ diff --git a/doc/lastenheft/lastenheft.synctex.gz b/doc/lastenheft/lastenheft.synctex.gz new file mode 100644 index 0000000000000000000000000000000000000000..4aa9669f877f1c642e0ac5ee5540fb3788675242 Binary files /dev/null and b/doc/lastenheft/lastenheft.synctex.gz differ diff --git a/modules/ACC-module_v0.01_Flowchart.txt b/modules/ACC-module_v0.01_Flowchart.txt new file mode 100644 index 0000000000000000000000000000000000000000..98ff810433f5313e05a486b6481ebc3f7dd56cb7 --- /dev/null +++ b/modules/ACC-module_v0.01_Flowchart.txt @@ -0,0 +1,108 @@ +state(n) = { + IPD(n), + PS(n), + v_z(n), + d_z(n), + v_c(n), + d_c(n), + b(n) = { } + } + +state(n+1) = { + IPD(n+1), + PS(n+1), + v_z(n+1), + d_z(n+1), + v_c(n+1), + d_c(n+1), + b(n+1) = { } + } + +ustate(n+1) = { + u(IPD(n+1)), + u(PS(n+1)), + v_z(n+1), + d_z(n+1), + u(v_c(n+1)), + u(d_c(n+1)), + b(n+1) = { } + } + +while(true): + # 1. update + update() + # 2. (neue) Ziele für das eigene Auto definieren) + define() + # 3. (neue) Ziele umsetzen + set() +end + +update(): + #updates von Sensor holen und nach ustate(n+1) schreiben +end + +define(): + # aktueller Abstand zum Vorgänger entspricht der IPD (aka der Kolonenabstand wir mit Toleranz gehalten) + if u(IPD(n+1) -t <= u(d_c(n+1)) <= u(IPD(n+1)) +t: + # Das Zielfahrzeug ist da, wo es erwartet wurde, und das eigene FZ hält die IPD + if d_c(n+1) -t <= u(d_c(n+1)) <= d_c(n+1) +t: + # Von der Distanz her perfekt + # d_z(n+2) - mit IPS vergleichen und pot. halten + # v_z(n+2) - mit PS vergleichen und pot. halten + + # Das Zielfahrzeug ist dichter als es erwartet wurde und das eigene FZ hält die richtige IPD + elif d_c(n+1) -t > u(d_c(n+1)): + # + + # Das Zielfahrzeug ist weiter entfernt als es erwartet wurde und das eigene FZ hält die richtige IPD + else: + # + + + # aktueller Abstand zum Vorgänger unterschreitet die IPD + elif u(IPD(n+1)) -t > u(d_c(n+1)): + # Das Zielfahrzeug ist da, wo es erwartet wurde, und das eigene FZ unterschreitet die IPD + if d_c(n+1) -t <= u(d_c(n+1)) <= d_c(n+1) +t + # IPD wurde geändert oder Fall wird bereits behandelt + # d_z(n+2) - mit IPD vergleichen + # v_z(n+2) - mit PS vergleichen + + # Das Zielfahrzueg ist dichter als es erwartet wurde und das eigene FZ unterscheitet die IPD + elif d_c(n+1) -t > u(d_c(n+1)): + # Zu dicht am Vorgänger der zu dem noch langsamer wird + # d_z(n+2) - mit IPD vergleich und pot. vergrössern + # v_z(n+2) - mit v_z(n+1), v_c(n) vergleichen und pot. senken + + # Das Zielfharzeug ist weiter entfernt als erwartet wurde und das eigene FZ unterschreitet die IPD + else: + # Das ZF beschleunigt und vergössert den Abstand + # d_z(n+2) erhöhen und zusammen mit aktueller Änderung anpassen + # v_z(n+2) halten (pot. mit v_c(n) und v_z(n+1) anpassen) + + + # aktueller Abstand zum Vorgänger überschreitet die IPD + else: + # Das Zielfahrzeug ist da, wo es erwartet wurde, und das eigene FZ überschreitet die IPD + if d_c(n+1) -t <= u(d_c(n+1)) <= d_c(n+1) +t: + # IPD wurde geändert oder der Fall wird bereits behandelt + # d_z(n+2) - mit IPD vergleichen + # v_z(n+2) - mit PS vergleichen + + # Das Zielfahrzeug ist dichter als erwartet wurde und das eigene FZ überschreitet die IPD + elif d_c(n+1) -t > u(d_c(n+1)): + # Das ZFZ ist langsamer geworden + # d_z(n+2) - ist zu gross, wenn das FZ ausserhalb des IPDs fährt (Vgl. mit d_c(n), da die Entfernung kleiner geworden ist + # v_z(n+2) - mit PS vergleichen, aber erstmal beibehalten + + # Das Zielfahrzeug ist weiter entfernt als erwartet wurde und das eigene FZ überschreitet die IPD + else: + # Das ZFZ ist schneller geworden + # d_z(n+2) - ist zu gross, wenn FZ ausserhalb des IPDs fährt + # v_z(n+2) - zu klein + end +end + +set(): + # Aus Ziel-Geschwindigkeit, Ziel-Entfernung, aktuelle Geschwindigkeit und aktueller Entfernung eine Beschleunigung finden +end +