LabVIEWForum.de - Vier PID Regler "gleichzeitig"

LabVIEWForum.de

Normale Version: Vier PID Regler "gleichzeitig"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Liebe Mitglieder!
Ich benötige Hilfe zu meiner Masterarbeit.
Ich habe vier schrittmotorisierte Staubstreuer welche jeweils auf einer Wägezelle sitzen. Mein Ziel ist es eine Staubförderrate [g/s] vorzugeben und jeder der Staubstreuer soll sich auf diesen Wert hinregeln. Das habe ich bereits erfolgreich für einen Staubstreuer alleine realisiert.
Möchte ich hingegen alle vier Streuer regeln funktioniert etwas nicht. Es scheint so als würde immer nur einer der vier regeln. Welcher genau das ist wechselt nach der Reihe ab und zwar dann wenn ich ihm einen kleinen Klaps gebe (kurze aber starke Veränderung der Regelgröße Masse).
Ich glaube es gibt irgend ein Problem mit der gemeinsamen Speicher-Nutzung. Da ich aber noch LabView Anfänger bin weiß ich gerade keinen anderen Weg mehr als es im LabVieW Forum nach Hilfe zu bitten.

Ich benutze die LabViewversion lv17_img
Die Wägezelle und den Schrittmotor lese bzw. steure ich über einen Arduino Mega mit dem Makerhub Zusatzpaket LINX.
Angehängt habe ich das Hauptprogramm "main4" in dem in einer Schleife nacheinander die PID-Regelkreise aufgerufen werden (im SUB-VI "pid_control_loop")
Wie bereits erwähnt funktioniert es bereits für nur einen Streuer.

Ich habe bereits versucht das SUB-VI "pid_control_loop" unter den Ausführen-Eigenschaften von abflaufvariant auf ablaufinvariant umzustellen. Das hat aber leider nicht geholfen.

Welchen Fehler mache ich?
Vielen Dank im Vorhinein für eure wertvolle Hilfe!
Hallo glecju,

Zitat:Ich habe bereits versucht das SUB-VI "pid_control_loop" unter den Ausführen-Eigenschaften von abflaufvariant auf ablaufinvariant umzustellen.
Die 4 Instanzen des PID-subVIs sollten unbedingt "ablaufinvariant" (engl. reentrant) sein, sonst
1. laufen sie nie parallel
2. "vermischt" du die internen Speicher für deine 4 Reglerinstanzen!

Zitat:Welchen Fehler mache ich?
1. Die eigentliche PID-Funktion in deinem subVI unterstützt verschiedene Modi: einfach mal die Hilfe dazu lesen!
Ich empfehle: nimm den "1D DBL"-Modus, dann kann ein einziger PID-Regler alle 4 Kanäle ("control loops") gleichzeitig regeln! (Dann brauchst du auch keine 4 Instanzen deines subVIs mehr…)

2. Deine 4 subVI-Instanzen laufen nicht parallel, da du sie per DATAFLOW sequenzierst hast: diese "LINX Resource" verhindert, dass sie parallel laufen können.

3. Ich würde diese Feedbacknode, die zu jedem subVI zugeordnet ist, in das subVI selbst verlegen. Wozu dieser Aufwand im MainVI?

4. Verwende bitte nicht MergeSignals (ExpressVI), wenn du 4 Plots im Chart haben willst. Wie es richtig geht, zeigt die Kontexthilfe zum Chart!
Referenz-URLs