fast... isum beinhaltet die Summe aller Abweichungen seit dem du den Roboter eingeschaltet hast. Da manche Abweichungen positiv sind und manche negativ kommst du dann ungefähr bei null raus. Es sei denn die Linie wird verlassen. Dann dominiert natürlich entweder die positive oder die negative Regelabweichung.beim nächsten durchlauf ist es die alte abweichung plus die neue?
(ich schreibe hier übrigens absichtlich Dreiviertelwahrheiten, meiner Meinung nach ist das dann alles viel besser verständlich.)
Naja, danach kommt doch nix kompliziertes mehr...?Tja, bleibt nur das Problem, dass ich die Rechnung zu yi nicht verstehe
Das verhindert nur dass isum zu groß wird. Der Wert "16000" ist wahllos ausgesucht, bei meiner Reglung habe ich "1500" gewählt. Wenn du nämlich Pech hast und irgendwas hakt am Roboter, dann wird isum schnell unendlich groß. Und bis das dann mal wieder auf normale Werte zurück kommt dauert es eeeeeeewig.... Oder dein Programm stürzt einfach ab.if (isum > 16000) isum =16000; //Begrenzung um Überlauf zu vermeiden
if (isum < -16000) isum =-16000;
Hier wird isum einfach mit einem kleinen Faktor multipliziert. Ob man vorher /625 rechnet oder ob man das gleich mit in ki einrechnet ist völlig egal. In meiner Tricopter Regelung ist ki bspw = 0,02. Vielleicht mag der Autor einfach keine so kleine Zahlen und rechnet deswegen in zwei Schritten :-D. Jedenfalls muss ki ziemlich klein sein im Verhältnis zum P Anteil.yi = isum/625 * ki; //I-Anteil berechnen
Lesezeichen