Hallo,
ein PI-Regler ist ein seiner Grundstruktur sehr einfach. Er setzt sich aus dem P(roportional) und aus dem I(ntegral) Teil zusammen. Hier ein einfaches Beispiel:
Ist stellt die momentane gemessene Geschwindigkeit dar, Soll die Sollgeschwindigkeit. Die Differenz der beiden steht in Error.Code:int Error; int ist; int soll; int p_anteil; int i_anteil; int error_integral; int p_gain; int i_gain; ... Error = ist - soll; p_anteil = error * p_gain; error_integral = error_integral + error i_anteil = error_integral * i_gain ... motor1 = motor1 + p_anteil; motor1 = motor1 + i_anteil;
p_gain und i_gain sind die beiden Variablen, die du selbst bestimmen musst, damit der Regler gut arbeitet. Wichtig ist, dass der Regler in einigermassen regelmäßigen Abständen aufgerufen wird und das so schnell als möglich.
Evtl. sollte man die Variablen als Fließkomma verwenden, um kleinere Abweichungen auch ausregeln zu können.
Wenn du Fragen hast, melde dich einfach. Ich weiß momentan nicht, wie groß dein Basiswissen ist.
Gruß
Chris
Lesezeichen