Hallo Attila,
Zitat:Die Baudrate beträgt 9600 und ja das Gerät liefert korrete Daten.
D.h. du hast eine Übertragungsrate von ca. 1kByte/s, bei Botschaften von 10 Byte also max. 100 Messwerte pro Sekunde (exklusive Befehlsverarbeitungszeit des Geräts). Realistisch dürften 25Hz Samplerate sein...
Zitat: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.
Und was sendet dein Gerät, wenn du mittendrin "Null"-Werte erhälst? Wo kommen diese Nullen her?
Zitat:Wie langsam? In 0,0001 Schritten?
Du sollst während der Regelung nicht an den PID-Parametern rumspielen!
Man stellt diese Parameter einmal ein und der Regler/das System soll sich dann (bei dir sehr langsam) an den Sollwert annähern...
Zitat:Nach einigen Sekunden habe ich dann meinen Filamentstrom auf 2,2 Amper hochgesetzt und das Ergebnis aufgezeichnet.
Diese Kurve ist noch "schön": das Gerät reagiert in einem Zeitraum von ca. 20s auf den Sprung und arbeitet "monoton steigend". P sollte ca. 1 sein: Stellwertänderung von 2,2 führt zu Istwertänderung von ca. 2,5.
Zitat:Anschließend habe ich dann den Wert erhöht auf 2,5 Amper.
Und hier wird's kritisch: Dein System reagiert innerhalb von 3s - und das sind bei dir gerade mal 3 Messwerte! Schlimmer noch: erst gibt es eine Reaktion in die falsche Richtung (diese Null bei 16s), danach dann innerhalb von 2 Messwerten auf den Sollwert. Wie soll ein PID-Regler damit klarkommen, wenn er womöglich noch auf Integral(E) und Diff(E) reagieren soll und das Resultat seiner Stellwertänderung immer erst eine Sekunde später "sieht"?
Dein P-Wert sollte hier eine ganz andere Größenordnung haben (Stellwertänderung von 0,3 führt zu Istwertänderung von 13). Solche stark nichtlinearen Systeme fahre ich gern mit einem PID-Regler mit Vorsteuerung: man macht eine grobe Abschätzung des Stellwertes über eine Vorsteuerung (die das nichtlineare Verhalten in einer Kennlinie abbildet) und der PID-Regler muss dann nur relativ kleine Fehlerwerte "wegregeln". Allerdings haben meine System typischerweise Zeitkonstanten in der Größenordnung 30s bis 2min, da ist das ganze unkritisch...