HeHo,
ich sitzte auch nen bissl dran komme aber kein meter vorran...
Hat da jem. vieleicht nen bissl qellcode für einen armen schüler? *fg*
hi,
ich würde den regler nicht in den interrup packen, da diese routinen möglichst kurz gehalten werden sollen. ich denke eine totzeit von 50ms sollte noch problemlos für den regler möglich sein, du kannst also die impulse zählen die in 50ms auftreten, und darüber auf die geschwindigkeit schließen, wenn ta nicht konstant ist, sondern sich in geringem rahmen ändert ist das für die regelung auch egal.
mfg jeffrey
HeHo,
ich sitzte auch nen bissl dran komme aber kein meter vorran...
Hat da jem. vieleicht nen bissl qellcode für einen armen schüler? *fg*
Es gibt da ein älteres Programm von waste, das die Vorgehensweise beim PID-Regler gut zeigt:
https://www.roboternetz.de/phpBB2/ze...&highlight=pid
https://www.roboternetz.de/phpBB2/vi...=285825#285825
Den entscheidenden Teil des Programms, der den PID-Regelalgorithmus abbildet, ziehe ich heraus:
Code:x = don - doff; // Abweichung yp = x * kp; // P-Anteil berechnen isum += x; // Begrenzung um Überlauf zu vermeiden if (isum > 16000) isum = 16000; if (isum < -16000) isum = -16000; yi = isum / 625 * ki; // I-Anteil berechnen yd = (x - xalt) * kd + drest; // D-Anteil berechnen if (yd > 255) drest = yd - 255; else if (yd < -255) drest = yd + 255; else drest = 0; y = yp + yi + yd; //Stellgröße des PID-Reglers
Lesezeichen