Zitat:Dein Programm kommuniziert per VISA und serieller Schnittstelle (?) mit deinem Gerät. Leider hast du bisher nicht angegeben, mit welcher Geschwindigkeit hier Daten ausgetauscht werden:
- die Geschwindigkeit der Schnittstelle ist begrenzt durch die Baudrate und die Anzahl der zu übertragenden Bytes
- das Gerät könnte selbst noch einiges (von Millisekunden bis Sekunden) an Zeit für eine Antwort/Messung benötigen
Außerdem hast du die subVIs nicht angehangen, in denen die Kommunikation stattfindet. Hier könnte das Problem sein, dass dein Gerät nicht schnell genug antwortet und deshalb eine Null ausgegeben wird - als Standardwert für fehlende/fehlerhafte Daten in der Geräte-Botschaft. Hast du das per Debugging überprüft? Liefert dein Gerät überhaupt korrekte Daten?
Die Baudrate beträgt 9600 und ja das Gerät liefert korrete Daten. Die Subvis setzen einen String zusammen und senden diesen an das Gerät. Ich lasse mir durchgehend den String ausgeben und das was gesetzt oder ausgelesen wird passt mit meiner Ausgabe überein. Die Kommunikation habe ich per Konsole geprüft und daran sollte es nicht liegen, das die Werte falsch sind.
Zitat:Wie schon geschrieben: wenn dein System schneller agiert als du überhaupt Daten messen/austauschen kanst, wird eine Regelung schwierig. Da bleibt dann nur der vorgeschlagene Weg, mit sehr langsamen Regelparametern zu arbeiten und sich (extrem) langsam dem Sollwert anzunähern...
Wie langsam? In 0,0001 Schritten?
Zitat:Zu der gezeigten Sprungantwort oben: Kannst du das nochmal plotten mitsamt dem Sprung des Stellparameters? Man sieht nur eine Kurve, weiß aber nicht, was/wie/wann der Sprungbefehl abgesetzt wurde. Ein Zählindex an der X-Achse ist auch nicht hilfreich, echte Zeitangaben vereinfachen die Interpretation...
Ich weiß nicht genau was du damit meinst. Ich habe die Paramter P,I und D für die Sprungantwort nicht verwendet sondern manuell eingestellt. Also ich habe die Hochspannung und die Strombegrenzung eingestellt. Nach einigen Sekunden habe ich dann meinen Filamentstrom auf 2,2 Amper hochgesetzt und das Ergebnis aufgezeichnet. Anschließend habe ich dann den Wert erhöht auf 2,5 Amper.
Ich habe das ganze nochmal aufgenommen und diesemal ist die Einheit auf der x-Achse Sekunde auch wenn es da nicht steht.