Irgendein offenes Tool zum Plotten von Diagrammen zur Bestimmung von PID-Tuning-Parametern?

Ich habe mehrere PID-Implementierungen und ihre Tuning-Tutorials, Dokumente und alles durchlaufen. Das beste Tuning-Tutorial war PID-ohne-einen-PhD.pdf . Hat aber nicht viel geholfen. Ich kann sagen, es funktioniert teilweise.

Ich arbeite an einem Magnetschwebebahn-Projekt. Bitte gehen Sie durch den Link ( Barry's Maglev ) für ein Beispiel. Ich bin in der Lage, den Magneten schweben zu lassen, während ich eine Aluminiumplatte darunter halte. Aktueller Fortschritt: Video .

Ich möchte es ohne die Aluminiumplatte durchführen.

Meine Frage ist, wie man mit dem Plotten von Diagrammen und allem beginnt. Ich habe nur den Graphen gesehen und wurde von ihm angezogen. Nehmen Sie beispielsweise die PID-ohne-PhD.pdf- Datei und schauen Sie sich einfach die gezeichneten Diagramme an. Wie bekommt man das? Mit welchem ​​offenen Tool soll ich anfangen?

Ich habe versucht, ein selbst erstelltes Werkzeug zum Zeichnen von Diagrammen zu erstellen und daran zu arbeiten. Die Auftragung gegen die Zeit ist nicht zufriedenstellend und daher die Verstärkungsbestimmung.

[Falls es einen selbsterklärenden Autotune-Algorithmus gibt! : Das ist jetzt nicht meine Frage.]

Ich möchte mit einem harten systematischen Ansatz neu anfangen. Jede Hilfe wird Gott wie hilfreich sein. Ich möchte nicht mit der Trail-n-Error-Methode arbeiten. Da das nicht geholfen hat.

Ich verwende AtMega2560, eine Spule, einen Stapel von 2 Neodym-Magneten, eine gut funktionierende H-Brücke.

....Aktualisierung1 ....

Auch ein Hallsensor für Feedback.

........

....Update2....

Jetzt habe ich seine Übertragungsfunktion bei mir. Ich studiere LTI Transient-Response Analysis mit Python . Das Problem ist, dass ich eine Matrix von Übertragungsfunktionen habe. Ich könnte mich irren, denn was heißt wie, ich weiß es nicht genau. Werde es bald lernen.

........

Was misst der Hallsensor? Haben Sie eine direkte Messung der Ballposition? Bei der letzten Magnetschwebebahn habe ich damit gearbeitet wie mit Fotodetektoren und LEDs - IR glaube ich.
Ja, ich messe die Position direkt. Die Einheit ist vorerst keine Entfernung. Aber ja, ich kann die Sensorausgabe mit der Entfernung in Beziehung setzen. Was derzeit nicht benötigt wird. Kurz gesagt, das System kann wissen, wo sich der Ball befindet, eher ein Magnet. :) Es ist schön, dass Sie bereits Erfahrung mit Maglev haben.
Wenn Sie nur einen Sensor (Wegsensor) und einen Aktuator (Kraft) haben, sollten Sie nur eine Übertragungsfunktion haben. Warum/wie haben Sie eine Matrix von Übertragungsfunktionen?
@nibot Weil die Schwerkraft eine andere Kraft ausübt. Also insgesamt zwei Kräfte und ein Sensor. :)
Die Schwerkraft ist konstant. Und du kontrollierst es nicht. Also: keine Übertragungsfunktion.
Da liege ich vielleicht falsch. Darf ich Ihnen also die 'Funktionen' schicken?

Antworten (3)

Im Allgemeinen würde dies in der Industrie mit Matlab geschehen. Wenn Sie es selbst versuchen, haben Sie einige verschiedene Optionen, was die Software für numerische Berechnungen / Diagramme betrifft. Das erste unter ihnen ist SciLab - ein Programm, das Matlab sehr ähnlich ist, aber Open Source und kostenlos. Es gibt ein paar Toolboxen, die nützliche Funktionen zum Entwerfen und Analysieren von Steuerungssystemen bieten können oder auch nicht: Control Design Tool (sehr beliebt, wie es scheint) und ADS CoLiSyS (viel weniger beliebt).

Andernfalls könnten Sie NumPy oder SciPy ausprobieren, die einige numerische/grafische Funktionen, aber keine Toolboxen für Steuerungssysteme haben.

Bearbeiten: Was das Einstellen eines PID-Reglers mit einer bekannten Methode betrifft ... Sie haben möglicherweise kein Glück. Sie können Methoden wie Ziegler-Nichols ausprobierenDa Sie jedoch mit einem instabilen System arbeiten (der Ball fällt ohne Rückkopplungskontrolle), können Sie nicht tun, was die Methode empfiehlt (dh integrale und abgeleitete Verstärkungen ausschalten, um nur proportional abzustimmen, und dann integrale und abgeleitete Verstärkungen zuweisen als Vielfaches der proportionalen Verstärkung). Wenn Sie jedoch einen Controller erstellen können, der den Ball einfach an einem Sollwert stabilisiert (einen Controller zur Unterdrückung von Störungen - die Störung ist die Schwerkraft), können Sie Ihren PID-Controller in Reihe schalten und ihn so einstellen, sobald das System stabil ist. Aber es scheint, dass Ihr Gesamtziel darin besteht, einen Controller zu entwickeln, der den Ball einfach stabilisiert und ihn beispielsweise nicht dazu bringt, einer Rechteckwelle oder einem sinusförmigen Eingang zu folgen. Das ist also möglicherweise kein lohnender Ansatz. Denken Sie daran, was Sie Dabei handelt es sich keineswegs um grundlegende Kontrollen, und vereinfachende Ansätze sind nicht unbedingt zutreffend. Viel Glück.

Tut mir leid.. Ich habe vergessen, den Eingang des Hallsensors zur PID zu erwähnen. Ich verwende auch einen Hallsensor. Ich aktualisiere auch das gleiche oben.
Sie haben vergessen, dass Octave, von dem ich gelesen habe, dass es Matlab ähnlicher ist, freie Software ist und mit Octave-Forge eine Reihe von Toolboxen hat, mit ziemlicher Sicherheit auch die Steuerungssysteme.
Ich hatte den Eindruck, dass Scilab von Schiffbrüchigen aus Matlab selbst erstellt wurde. Ich wette, sie sind beide ziemlich nah dran. Jeder kopiert den Anführer ...
Octave ist näher an älteren Versionen von Matlab. Die Schnittstelle ist eine reine Befehlszeile. Die Syntax von Octave soll fast vollständig Matlab-kompatibel sein. SciLab hat mehr GUI-Funktionen und weniger direkte Matlab-Kompatibilität. SciLab scheint mehr auf Unterrichtszwecke ausgerichtet zu sein. Beide haben wahrscheinlich alles, was Sie für grundlegende PID-Systemsimulationen benötigen.
Sollte auch hinzugefügt werden, dass Octave ursprünglich für Unix/Linux entwickelt wurde und die Windows-Version nicht ganz fehlerfrei ist. SciLab scheint eine bessere Windows-Kompatibilität zu haben (allerdings habe ich Octave mehr als SciLab verwendet).
Derzeit Evaluierung von Python-Steuerungssystemen. Mal sehen, ob ich es hinbekomme. Siehe: sourceforge.net/apps/mediawiki/python-control/…
Ich weiß, dass Octave einige lästige Fehler hat, aber es gibt mehrere GUIs, wie GUIOctave oder QtOctave.

Schauen Sie sich 20-sim an, es gibt eine kostenlose Version, es gibt viele Toolboxen (auch für Controller-Design und LTI-Systeme) und die neueste Version 4.4 hat auch Skripting mit Matlab und Octave. Hier ist ihre Website: http://www.20sim.com

Nicht Open Source, aber CircuitLab übernimmt das Plotten im Zeit- und Frequenzbereich nach Bedarf. Sie können die Rückkopplungsschleife grafisch zusammenstellen, indem Sie entweder Schaltungselemente oder Laplace-Transformationsblöcke verwenden, und dann die Reaktion messen und Ihre PID-Parameter optimieren, um sicherzustellen, dass Sie ein stabiles Ergebnis erhalten! Siehe beispielsweise Laplace-Transformations-Sprungantwort und Bode-Diagramm .