LabVIEWForum.de - PID-Regler liefert kein Ausgangssignal

LabVIEWForum.de

Normale Version: PID-Regler liefert kein Ausgangssignal
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo, leiderr muss ich wieder eine Frage stellen.

ich arbeite an der Regelungs eines Linearschlittens, der bestimmte Positionen anfahren soll. Bisher habe ich mit einem einfachen P-Regler gearbeitet, also Sollwert-Istwert mal einen Faktor ergibt die Steuerspannung.
Jetzt wollte ich den P-Regler durch das PID-Express-VI aus dem PID und Fuzzy Logic Toolkit ersetzen.
Sieht auch leicht aus, ich hab den Sollwert an den Knoten "Setpoint" und den Istwert vom Inkrementalgeber an den Knoten "Processvariable" angebunden. Anschließend habe ich noch die Samplezeit auf 0,1s gesetzt und ein Bedienelement für die PID-Parameter erstellt.

Das Problem ist, dass der Regler keinen Ausgabewert liefert !!!Blink
Der Sollwert wird richtig an das Target übergeben und auch der Inkrementalgeber arbeitet Problemlos.
Egal welche Parameter ich eingebe... zumal der PID Regler ja eigentlich als P-Regler arbeiten sollte, wenn ich nur K_C>0 setze.

Ich habe auch schon die Eingabewerte in Festkommazahlen mit 16bit Wordlänge geändert, ohne erfolgt.

Gibt es dort noch irgend einen Trick? In den Beispielen sieht es so einfach aus.

Anbei das VI. Hab die Sub-VIs nicht mitgeladen, da das VI ohne die Eingänge ja eh nicht läuft.

Danke schonmal für eure Hilfe.

Mit freundlichen Grüßen Ivo
Hallo,

keiner eine Idee? Es gibt leider kaum Themen zu dem PID-FPGA-Express VI, wird wohl zu selten genutzt.

Mit freundlichen Grüßen

Ivo
Hallo Ivo,

du könntest deine Chancen erhöhen, wenn du dein VI in einer älteren LV-Version speichern oder wenigstens ein Bild des BD zeigen würdest...
Hi,

ok hier die Dateien.

MfG Ivo
Hallo ivo,

hat dein QuadCounter überhaupt richtig funktioniert? Auch wenn beim FPGA meist alles etwas anders läuft, hast du trotzdem RaceConditions mit deinen lokalen Variablen vorgegeben. Warum nicht einfach FeedbackNodes einfügen?
[attachment=43369]

Was mir beim PID noch auffällt: Im PID-Block ist eine Sampletime von 0,1s vorgegeben. Du setzt aber in der Schleife irgendein anderes Timing ein. Wie passt das zusammen?
@GerdW:
100% ACK, ich denke, das hier wurde nachprogrammiert:
http://www.ni.com/white-paper/6608/en
Und bei Optimierung für eine SCTL kommt im FPGA-Code (höchstwahrscheinlich) wirklich das Erwartete raus.

Gruß, Jens
Hallo,

danke für eure Antworten.

Den Quadcounter habe ich tatsächlich nachprogrammiert, nach dem Beispiel von ni.com.
Er hat anschließend auch funktioniert, ich habe ja bereits einen P-Regler genutzt, mit dem das Programm auch funktioniert.
Ich werde trotzdem die von GerdW vorgeschlagenen Änderungen vornehmen, um auf nummer sicher zu gehen.


Mit freundlichen Grüßen

Ivo
Achso...
(04.02.2013 15:44 )GerdW schrieb: [ -> ]Was mir beim PID noch auffällt: Im PID-Block ist eine Sampletime von 0,1s vorgegeben. Du setzt aber in der Schleife irgendein anderes Timing ein. Wie passt das zusammen?

Ich muss gestehen, dass ich das noch vernachlässigt hatte, da die Samplezeit im Regler großer ist als die der Schleife. Wenn ich mir jetzt aber überlege, dass man da die in der Schleife genutze Taktrate angeben muss, dann verstehe ich, warum das Express-VI eventuel versagt.

Mit freundlichen Grüßen

Ivo
Hallo,

also um hier nochmal die Lösung zu nennen:

Es lag an der Sample Zeit, die hat nicht mit dem Timer der Schleife überein gestimmt.

und !

Der Regler will wirklich einen Festkommawert mit 16Bit Wortlänge und 8 Bit Integerlänge haben. Zumindest mit 8bit Wortlänge und 2 bit integer ging es nicht!

Danke an alle für die Hilfe.
Referenz-URLs