Ich implementiere einen PID-Regler zur Motordrehzahlregelung. Ich bin mit der Implementierung der PI-Regelung fertig und sie funktioniert für mich einwandfrei. In der Spezifikation wurde mir gesagt, dass ich eine Filtertechnik implementieren soll, indem ich die folgende Gleichung für den D-Teil verwende:
Was ich bisher verstanden habe, ist, dass dies im Allgemeinen der Änderungsrate des Fehlers entspricht, aber hier kann ich es mit der Änderungsrate der Rückkopplung in Beziehung setzen s
. dient zur Begrenzung der Gesamtverstärkung (ich hoffe, ich habe das richtig verstanden). Um dies nun in C-Code darzustellen, habe ich Folgendes versucht:"dx/dt"
Td/N
s = (CurrentFeedback()-Old_Feedback)*100/(MaxFeedback()); //to calculate the % change in feedback
s = s*1000/sampleTime; //1000 is multiplied because sampleTime is in milliseconds
D = (Td*s)/(1+(s*Td/N));
D = D*KP; //Kp is multiplied as per the standard pid equation.
Old_Feedback = CurrentFeedback();
PID = P+I-D;
Nun, die Ergebnisse durch Hinzufügen von D sind nicht das, was ich vorhergesagt habe. Ich möchte nur wissen, ob ich die D-Anteil-Gleichung richtig implementiert habe? Mache ich irgendwelche Fehler in meinem Verständnis der grundlegenden Mathematik der Differenzierung?
HINWEIS: Es steht mir nicht frei, die Neuberechnung von kp,ti,td zu ändern, da sie direkt vom VFD kommt.
Ich habe 3 Punkte zu teilen:
1-Ich werde Ihnen sagen, warum Leute mit D-Begriffen in Bezug auf Vorzeichen herumspielen, PID = P + I + D, aber D = kd* (Fehler -alter Fehler) und in der Positionsregelung, wenn Sie sich dem Sollwert nähern, immer alter Fehler ist < Fehler, so dass der D-Term negativ ist und somit die Ausgabe verringert und das Überschwingen verhindert.
2-In Bezug auf die Zeit, teilen oder verwenden Sie die Zeit nicht. Da Sie einen eingebetteten Mikrocontroller verwenden, verwenden Sie einfach eine Zeitkonstante und streichen Sie sie aus allen Gleichungen: Verwenden Sie beispielsweise einen Timer-Interrupt, um eine Zeitkonstante von 1 ms zu erzeugen, und rufen Sie Ihre Funktion im Inneren auf.
3-Warum Sie PID für die Geschwindigkeitsregelung verwenden, 90% der Zeit reicht PI bei der Geschwindigkeitsregelung aus, da D hier eher wie eine Beschleunigungsregelung ist.
Ich hoffe, das hilft
Scott Seidmann
Marko Buršič
Greg d’Eon
Lundin
spp
ben b
spp