Gast
#2142890
Hallo liebe community, ich baue seit neuem einen Roboter der einer Linie auf hellem Untergrund nachfahren soll mit einem PI Regler, ev. auch PID. Den P-Anteil habe ich schon implementiert und er funktioniert auch. Beim I Anteil plage ich mich jetzt schon seit Tagen und bekomme kein vernünftiges Ergebnis. ich verwende den PI Algorithmus von folgender Seite http://www.rn-wissen.de/index.php/Regelungstechnik Ich bekomme von meinen cny70 Sensoren eine Regeldifferenz von -160 ... +160. 0 bedeutet, dass der Roboter auf der Linie ist. Die Regeldiffernz ist sehr fließend und linear. Ich rechne das ganze so aus:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
Der I Anteil funktioniert schon, aber das Problem ist wenn ich den ROboter von der Position 0 auf beispielsweise -10 ändere, dann rechnet er -10-I Anteil der immer weiter noch schwach ansteigt. Gehe ich jetzt zurück auf null und wieder auf -10 so rechnet er von dem zuletzt ausgerechnetem Wert weiter. Ist auch klar weil ja esum nicht gelöscht wird. Das selbe Problem passiert auch von 20 auf 50 und mit allen anderen Werten auch. Es funktioniert alles perfekt und der Roboter fährt auch sehr genau der Linie nach wenn ich den I Anteil auf 0 drehe. Drehe ich ihn auf 0,01 so wackelt er einfach sehr stark hin und her und brauch 3 mal so lang bis er die Strecke schafft, also da darf was nicht stimmen. Wie genau kann ich diese blöde Macke mathematisch beheben?