Wie werden Steuerungen „richtig“ gestaltet?

8

Es mag wie der "einfache Weg" klingen, es hier zu stellen, aber diese Frage (zusammen mit ein paar anderen, die ich veröffentlicht habe und die spezifischer waren) ist das Ergebnis jahrelanger Forschung zu diesem Thema - ein und aus, da es meine geringste ist verwendet (und schwächste) Fachgebiet, aber immer noch zu sagen, dass ich viele Videos PDF und Beiträge gesehen habe. Die meisten von ihnen sind in ihren Beispielen zu spezifisch, oder es ist alles zu vage.

Kontext

Ich habe bis jetzt einige PI-Regler mit manuellen Online-Methoden eingestellt, aber jetzt, da ich mit einer PID-Methode zu kämpfen habe, ist klar, dass ich auf die richtige Analyse zurückgreifen muss. Wenn ich einen anderen Kompensatortyp entwerfen muss (z. B. Phasenleitung oder was auch immer, sogar einen multivariablen Controller), gibt es schließlich keine "magische Methode", um den Tag zu retten.

Frage

Ich würde gerne wissen, wie die verschiedenen Methoden zum Einstellen einer Steuerung aussehen, vorausgesetzt, die Übertragungsfunktion der Anlage ist bekannt, und wie sie mit den folgenden Anforderungen umgehen:

  1. Einschwingzeit
  2. Phasen- und Gewinnmargen
  3. Überschwingen (wenn nicht abhängig von der Phasenspanne)
  4. Steady-State-Fehler
  5. Maximaler Controller-Aufwand
  6. Idealerweise maximale Welligkeit aufgrund von Störungen, aber diese scheint besonders schwierig zu sein

Forschung

Die Werkzeuge, die ich gesehen habe, sind:

  1. Wurzelort. Ich verstehe die Wirkung jeder Wurzel in Abhängigkeit von ihrer Position (komplexe Exponentiale sind oszillierend usw.), aber ich verstehe nicht, wie Nullen und Pole interagieren, um die Antwort zu erzeugen. Die Tatsache, dass die Leute Nullen aus Stabilitätsgründen ignorieren, verwirrt mich noch mehr.
  2. Nyquist. Die Stabilitätskriterien sind in ihrer Beziehung zur realen Welt sehr dunkel, und ich habe nicht gesehen, dass sie für irgendetwas anderes verwendet werden.
  3. Bode. Aufgrund der Elektronik ziemlich vertraut damit, obwohl das Konzept der Phasenspanne im Vergleich zur Verstärkungsspanne noch etwas vage ist (kann es nicht "fühlen").
  4. Sprungantwort. Am einfachsten zu verstehen, aber nicht ausreichend.

Ich mag diesen Youtube-Kanal wirklich , aber er ist immer noch etwas vage, nachdem ich alle Videos gesehen habe. Und ich habe nie gesehen, dass alle Koeffizienten einer PID analytisch abgestimmt wurden - ich hoffte wirklich, dass dieser Thread die Antwort hatte, aber das tat er nicht.

Anwendungsbeispiel

Ich schlage vor, Schritt für Schritt einen PID-Regler (alle 3 Koeffizienten) für eine sehr einfache Anlage zu entwerfen, sagen wir:

G(s)=11+τ1s11+τ2s
Wo
τ1=650s
τ2=4500s
Damit die Einschwingzeit <5h, Ränder> 14dB und> 30 °, SS-Fehler (und Welligkeit, wenn untersucht) <0,01%, Regleraufwand <1. Dies ist ein System, das von dem inspiriert ist, was ich steuern muss (sehr vereinfacht). Ich habe die Zahlenwerte von dort genommen.

Soweit ich weiß, ist dies das erste Mal, dass man ein komplettes PID-Design online durchläuft, was für jeden mit den gleichen Zweifeln wie ich von großem Vorteil ist. Die Frage kann wahrscheinlich ohne diese Schritt für Schritt beantwortet werden, aber mit dem Beispiel wäre es viel klarer.

Herr Mystère
quelle
2
Sie müssen ein Lehrbuch kaufen und es durchgehend studieren. Welche Antwort erwarten Sie hier für eine so breite Frage?
hkBattousai
Das liegt daran, dass ich mir viele Bücher online und Tutorials angesehen habe, die ich hier stelle. Ich brauche nur ein echtes Beispiel (nicht eines, bei dem die Hälfte der Arbeit bereits erledigt ist), um die Methodik oder vielleicht Richtlinien von erfahrenen Leuten aufzugreifen. Lehrbücher sind normalerweise zehnmal länger als sie sollten. Hier geht es darum, eine kürzere und zusammengefasste Antwort oder ein gut ausgearbeitetes Beispiel zu erhalten.
Herr Mystère
Sie haben diese Gleichung als Beispiel gegeben, mit 's' Begriffen in tau eins und zwei. Ist das richtig? oder sind die extra 's' überflüssig? Welche Gleichung willst du?
G(s)=11+650s211+4500s2
G(s)=11+650s11+4500s
Andrew
@ Andrew: Danke, dass du dich damit befasst hast. Das "s" ist eigentlich für "Sekunden", dies ist die zweite Gleichung, auf die ich mich beziehe.
Herr Mystère
Das erste, was man beachten sollte, ist: Weiß ich etwas Spezifisches über die Eigenschaften dieses Systems? PI (D) -Regler sind für die allgemeine Steuerung gedacht und sehr gut geeignet, wenn Sie nicht genau wissen, wie sich das System im Voraus verhält. Wenn Sie dies jedoch tun, haben Sie die Möglichkeit, etwas zu entwerfen, das sowohl einfacher als auch genauer als eine generische PID ist. Denn am Ende läuft die PID-Abstimmung auf Versuch und Irrtum hinaus. Andernfalls wäre der integrale Bestandteil nicht erforderlich.
Lundin

Antworten:

4

Okay, Sie stellen eine ziemlich komplizierte Frage und ich werde versuchen, sie so gut wie möglich zu beantworten. Ich bin Senior Student in Elektrotechnik und habe mich auf Steuerungssysteme konzentriert. Ich weiß nicht alles, aber ich kann Ihnen meine Erfahrungen mit dem Versuch erzählen, genau dieselbe Frage in meinem Studium zu beantworten.
TL; DR: Ich weiß nicht, wie eine Gleichung oder Methode zum Aufnehmen der Anlage und der gegebenen Einschränkungen und zum Erzeugen eines PID-Reglers. Ich denke jedoch nicht, dass die von Ihnen erwähnten Tools zu viel helfen werden, und ich erkläre, was ich in Ihrer Situation tun würde.

Wo bist du:
Die Forschung, die Sie bisher durchgeführt haben, scheint der Standard für einen Einführungskurs in Kontrollen im Grundstudium zu sein. Diese Methoden zum Entwerfen von Steuerungen werden gruppiert und als "klassische Steuerung" bezeichnet. Diese Methoden wurden überwiegend vor dem Kalten Krieg angewendet und haben den Vorteil, dass nur sehr wenig Berechnung und sehr wenig mathematische Analyse erforderlich sind. Sie sind zwar nützlich, begrenzen jedoch die Anzahl der Controller, die Sie erstellen können, erheblich. Das Root-Locus-Diagramm zeigt Ihnen beispielsweise Linien, in denen sich die Pole und Nullen bewegen können, wenn Sie die Verstärkung ändern, aber auf diese Linien beschränkt sind. Ich bin kein Experte für diese Methoden (weil ich sie selten verwende), daher kann ich nicht näher erläutern, wann ich sie verwenden soll und wann nicht. Nach dem, was ich gehört habe, Diese Methoden wurden bis vor kurzem noch ziemlich häufig verwendet, da sie schneller als fortgeschrittenere Methoden sind und bei einfachen Steuerungsproblemen gut funktionieren würden. Dies sind Ihre Kontrollmethoden für einsame Inseln - einfach zu implementieren und können von Hand durchgeführt werden. Damit eignen sie sich perfekt für eine Grundschulklasse, in der Sie viel Material zum Testen von Schülern haben möchten.

"Richtig":
Option 1
Das richtige Entwerfen eines Controllers ist daher schwierig, da das Design Kompromisse wie Geschwindigkeit und Stabilität eingeht. Ich nehme an, Sie meinen, Sie können die von Ihnen aufgelisteten Einschränkungen in einen Controller verwandeln, der sie erfüllt.
Jede der oben genannten Methoden kann verwendet werden, um einen Controller zu erstellen und in einer Simulation oder analytisch zu testen, um die Reaktionseigenschaften zu bestimmen. Dies ist jedoch nicht unbedingt einfach und der Weg zur Leistungsverbesserung ist möglicherweise nicht intuitiv (ich sehe Ihnen Nyquist-Diagramme an). .

Wie ich es machen würde:
Ich bin Student und habe daher Zugang zur pädagogischen Version von Matlab. Wenn mich jemand bitten würde, einen Controller wie Ihr Beispiel zu entwerfen, würde ich Matlab starten und den folgenden Code verwenden.

EDU>> s=tf('s');
EDU>> sys=1/((1+650*s)*(1+4500*s))
pidtool(sys)

und das Ergebnis ist das schöne Feld unten, in dem alle Parameter angezeigt werden, die ich mit Schiebereglern benötige, mit denen ich die Eigenschaften anpassen kann.

PI-Regler erfüllt die im obigen Beispiel aufgeführten Spezifikationen.

Es gibt auch Optionen, um den Controller-Aufwand und das Bode-Diagramm des Systems anzuzeigen. Ich habe ungefähr 15 Minuten gebraucht, um es auf Ihre Spezifikationen abzustimmen, aber nur, weil Ihre Spezifikationen ziemlich aggressiv sind. (Ich habe betrogen, um den Kontrollaufwand für einige Zeit auf 1,01 zu bringen, um das Überschwingen zu stoppen).
Oder Sie simulieren das System einfach mit dem hinzugefügten PID-Regler und optimieren die Parameter in der Simulation anstatt online.

Option 2
Wenn ich nun einen fortschrittlicheren Controller benötigen würde, einen mit mehreren Ein- und Ausgängen oder einen Controller höherer Ordnung, würde ich den sogenannten State Space oder die "Modern Control Theory" verwenden, von der ich glaube, dass sie im Kalten Krieg entstanden ist, als wir begann russische Mathematikpapiere zu übersetzen. Ich würde Ihnen raten, einen Blick darauf zu werfen, da dies mehr Optionen ermöglicht. Wenn ich einen Controller analytisch entwerfen würde, würde ich diesen verwenden. Im Gegensatz zu den klassischen Methoden verfügt es über Algorithmen zum Platzieren der Pole einer Funktion an präzisen Positionen, sodass die meisten der von Ihnen genannten Einschränkungen direkt berechnet werden können.
Die zur Berechnung dieser Werte verwendeten Algorithmen sind jedoch immer noch ziemlich schwierig. Matlab hat den PlatzFunktion, die eine Verstärkungsmatrix erstellt, die mit der Eingabematrix kombiniert werden kann, um die gewünschten Antworttransienten- und Einschwingzeitantworten zu erzwingen. Dies erwähnt jedoch nicht den Controller-Aufwand, der die Aggressivität Ihrer Pole einschränken würde. Ein gutes Beispiel für ein ähnliches Ordnungssystem finden Sie auf der folgenden Website, auf der viele verschiedene Beispiele und Demonstrationen zur Verwendung klassischer und staatlicher Raumgestaltungsmethoden aufgeführt sind. Es ist eine wirklich gute Website mit Erklärungen und vielen verschiedenen Beispielen, wenn Sie die Tatsache überwinden können, dass sie Matlab für die gesamte Mathematik verwenden.
http://ctms.engin.umich.edu/CTMS/index.php?example=MotorSpeed§ion=ControlStateSpace

Einige zusätzliche Informationen zur Polplatzierung http://www.phoneoximeter.org/uploads/media/EECE460_PolePlacement.pdf (in denen die PID-Regelung ausdrücklich erwähnt wird)
http://nptel.ac.in/courses/101108047/module9/Lecture%2021. pdf
http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-30-feedback-control-systems-fall-2010/lecture-notes/MIT16_30F10_lec12.pdf

Empfehlung:

1.) Wenn Sie Steuerungssysteme professionell entwerfen wollen, werde ich Ihnen sagen, was meine Professoren mir gesagt haben. Du brauchst Matlab. Es gibt möglicherweise andere Software, die ähnliche Aufgaben ausführen kann, aber matlab verfügt über einen sehr vollständigen Satz von Tools in der Toolbox des Steuerungssystems, und eine gute Anzahl von Tutorials zeigt das Beste, und Sie müssen sich keine Gedanken über die Mathematik machen überhaupt.

2.) Wenn dies weniger wichtig ist, finden Sie vielleicht jemanden, der das Design ganz schnell in matlab für Sie erledigt, oder probieren Sie ein Freeware-Paket aus. Ich weiß, dass Scilab einige Kontroll-Toolboxen hat, die es wert sein könnten, untersucht zu werden.

3.) Das Entwerfen von Hand ist schwierig. Besonders mit der Anzahl der Einschränkungen, die Sie haben. Ich würde die Polplatzierung verwenden, um die Einschwingzeit und die Überschwingeranforderungen zu analysieren. Der stationäre Fehler wird fast immer auf Null gesetzt. Ich würde die Phase bestimmen und nachträglich Margen erzielen und hoffe, dass sie nicht zu klein sind. Für den Regleraufwand habe ich viele Beispiele für optimale Steuerungsprobleme gesehen, bei denen versucht wurde, den Steuerungsaufwand zu minimieren, normalerweise unter Verwendung eines linearen quadratischen Reglers, aber dies ist mehr Mathematik. Die Folien von Dr. Radhakant Padhi haben einige gute Faustregeln für die Platzierung der Stangen, sind jedoch keine Garantie.

Andrew
quelle
Sehr gute Antwort, danke. Ich habe mich eher auf zugrunde liegende Methoden als auf automatisierte Tools bezogen, aber das ist ein sehr guter Überblick. Ich benutze bereits Matlab und habe gerade die Toolbox für Steuerungssysteme erhalten. Ich habe kürzlich auch den Zustandsraum verwendet, um eine Pflanze darzustellen (obwohl keine Steuerung), damit ich mich auf all das beziehen kann. Danke für die Links, das sieht vielversprechend aus.
Herr Mystère
3

Zunächst stimme ich hkBattousai zu, dass Ihre Frage unter Berücksichtigung aller Details Ihres Beitrags sehr weit gefasst ist, aber ich werde versuchen, sie gemäß Ihrer betitelten Frage zu beantworten - Wie man Steuerungssysteme richtig entwirft. Dies wird leider keine vollständige Antwort sein, aber ich hoffe, es gibt Ihnen zumindest einen Vorgeschmack. Während einige Systeme mit einem PID-Kompensator leicht gesteuert werden können, können andere nicht, so dass der professionelle Regelungsingenieur das Problem systematischer angehen wird.

Zuerst müssen Sie Ihre Leistungsanforderungen definieren - was Sie steuern möchten, wie schnell und genau Sie die Steuerung wünschen und wie viel Spielraum Sie für die Stabilität akzeptieren.

Zweitens müssen Sie die Physik des Systems verstehen, das Sie steuern möchten, und die Physik als mathematische Gleichungen ausdrücken. Dies kann möglich sein, wenn Sie nur wissen, wie das System aufgebaut ist, oder wenn Messungen erforderlich sind - beispielsweise mit einem dynamischen Signalanalysator. Dies gibt Ihnen Ihr Modell. Möglicherweise möchten Sie ein lineares Modell annehmen, das als Differentialgleichung oder Satz von Differentialgleichungen ausgedrückt werden kann. Sie müssen entscheiden, welche Variablen in dem System Sie steuern möchten (Ausgänge) und bestimmen, ob Sie deren Messung mit einem Sensortyp vereinfachen können. Sie müssen auch herausfinden, was Ihre Eingänge sind und ob sie einen Aktuator oder eine Schnittstelle benötigen, um Ihre Steuersignale anzulegen.

Das lineare Modell kann entweder als LaPlace-Übertragungsfunktion (en) oder als lineares Zustandsraumsystem ausgedrückt werden. Mit einem Tool wie Matlab Control Systems Toolbox (oder Papier und Bleistift, wenn Sie alle Berechnungen selbst durchführen möchten) importieren Sie Ihr Modell und verwenden eines der oben beschriebenen Tools (Bode, Root Locus usw.). Persönlich beginne ich gerne mit Root Locus, zeichne aber auch die Übertragungsfunktionen mit offenem und geschlossenem Regelkreis sowie die Sprungantwort. Mit dem Root-Locus-Tool können Sie einen Controller über Ihrem Anlagenmodell synthetisieren, indem Sie Pole und Nullen hinzufügen und diese ziehen. Und wenn Sie sie ziehen, können Sie Ihre Verstärkungs- und Phasenränder anhand der Bode-Diagramme im offenen Regelkreis, der Bandbreite und der Modi im geschlossenen Regelkreis des Bode im geschlossenen Regelkreis sowie der Anstiegszeit, dem Überschwingen und dem Einstellen der Sprungantwort beobachten.

Wenn Sie mit dem Design zufrieden sind und Ihre Anforderungen erfüllt haben, möchten Sie möglicherweise das Modell und die Steuerung in ein Simulationswerkzeug integrieren. Wenn Ihr System Nichtlinearitäten enthält, wie z. B. die Sättigung, können Sie diese zur Simulation hinzufügen und überprüfen, ob Ihre Steuerung noch funktioniert. Im Falle einer Sättigung müssen Sie Ihren Linearkompensator möglicherweise mit einer Art Anti-Windup-Steuerung erweitern. Wenn Sie glauben, eine Lösung zu haben, ist es an der Zeit, auf die Hardware umzusteigen und das Design durch Testen zu überprüfen.

Mit einigen Simulationswerkzeugen wie Simulink oder VisSim können Sie von der konzeptionellen Simulation zu einer Hardware in der Schleifensimulation migrieren. Andernfalls müssen Sie Ihren Controller erstellen oder codieren und den Sensoren, Aktoren und Schnittstellen das Schließen des Regelkreises erleichtern.

Es sind noch viele andere Dinge zu beachten, wie z. B. Geräuschempfindlichkeit, Störungsunterdrückung, Robustheit gegenüber Anlagenstörungen usw. Außerdem muss die Reglerlösung entweder auf analog (Operationsverstärker), diskret (computergesteuert) oder sogar reduziert werden mechanische Elemente. Daher müssen Sie möglicherweise Dinge wie Abtastraten entscheiden, die, wenn sie nicht richtig ausgewählt werden, zu Instabilität führen oder die erwartete Leistung beeinträchtigen können.

hkBattousai hat ein Lehrbuch empfohlen, aber ich empfehle Ihnen, sich für ein Universitätsprogramm einzuschreiben, wenn Sie ernsthaft interessiert sind. Viel Glück!

docscience
quelle
Danke für die Antwort, es ist sehr informativ. Es klingt so, als würde beim Entwerfen eines Controllers mehr mit Polen und Nullen und / oder Werten herumgespielt, während alle relevanten Diagramme gleichzeitig betrachtet werden. Ich dachte, es gibt immer Möglichkeiten, die Controller-Parameter zu berechnen, um die Anforderungen zu erfüllen.
Mister Mystère
Bitte schön. Dies ist nur ein Beispiel für den Entwurf eines Steuerungssystems. Es gibt andere Ansätze - zum Beispiel Bond Graphs -, die sich mit dem Energiefluss befassen.
Docscience
2

Erstens sind ALLE Systeme nicht linear. Einige können ziemlich genau als lineare Systeme modelliert werden, und die lineare Steuerungstheorie kann auf nichtlineare Systeme angewendet werden (andernfalls wäre die lineare Steuerungstheorie ziemlich sinnlos). Wenn eine relativ hohe Leistung erforderlich ist, ist normalerweise eine Art Verstärkungsplanung erforderlich. Es gibt verschiedene Arten von Verstärkungsplanern, und einige sind sehr theoretisch. Am praktischsten (und testbarsten ... wichtig für SW-Ingenieure) sind jedoch stückweise lineare Scheduler (z. B. einen relativ linearen Betriebsbereich auswählen, einen linearen Regler für den Betrieb in diesem Bereich entwerfen, zum nächsten übergehen usw.). Ad infinitum). Wie Andrew sagte, sollte die Reglersättigung angesprochen werden, um ein Aufziehen zu vermeiden.

Zweitens sind modellbasierte Controller nur so gut wie ihre Modelle, und für die Modellierung sind Domänenkenntnisse erforderlich. Selbst dann ist fast immer eine gewisse Abstimmung erforderlich, um Modellierungsfehler zu beseitigen. Es kann ziemlich lange dauern, bis ein mäßig komplexes System (zumindest ein System, mit dem Sie noch nicht vertraut sind) mit beliebiger Genauigkeit modelliert wurde. Die erforderliche Modellgenauigkeit hängt davon ab, welche Leistung Ihre Anwendung erfordert (dh können Sie die Anlage als einfachen Integrator behandeln oder müssen Sie Effekte 2. und 3. Ordnung berücksichtigen?). Der Aktuator / Antrieb sollte auch modelliert werden, wenn seine Reaktionszeit irgendwo in der Nähe der Ihrer Anlage liegt. Gleiches gilt für den Rückkopplungssensor. In Hochleistungssystemen ist dies häufig der teuerste Teil der gesamten Steuerung. Einige Unternehmen möchten nicht die Zeit und das Geld für die Modellierung des Systems aufwenden. Dies ist gut für einfachere Systeme. Bei komplexen Systemen, die von Leuten entwickelt wurden, die nicht an Steuerbarkeit denken (Großbuchstabe 'C' - siehe "Moderne Steuerungstheorie" von Brogan), macht das Fehlen eines Vorabmodells das Steuerungsdesign jedoch äußerst schwierig.

Die Steuerungstechnik ist je nach Anwendung sehr interdisziplinär. Das einfache "Kaufen eines Lehrbuchs" für Steuerungen erleichtert Ihnen den Einstieg, aber das eigentliche Steuerungsdesign ist oft viel einfacher als das Verständnis der Anlage und die Entwicklung eines anständigen Modells.

Nathan
quelle
0

Dies ist eine komplizierte Frage, die ich mir auch gestellt habe. Leider sind die meisten Informationen in den meisten Büchern zur Steuerungstheorie größtenteils theoretisch und es fehlen Details darüber, wie der Controller tatsächlich in Software implementiert wird und welchen Herausforderungen Sie dabei gegenüberstehen. Wenn Sie beispielsweise wissen, dass Sie Ihren Controller nicht nur in die z-Domäne, sondern auch in die z ^ -1-Form konvertieren müssen, um die richtigen Koeffizienten zu erhalten, und wissen, dass die bilineare (Tustin-) Transformation der richtige Weg ist, um eine genaue Antwort in einer diskreten Implementierung zu erhalten (stattdessen) von matlab default null order hold). Es dauerte viele Monate, bis ich anfing, Kontrolltheorie zu studieren, um tatsächlich genug Wissen und mathematische Werkzeuge zu haben, um sie richtig umzusetzen.

Es gibt ein Buch, das ich Ihnen empfehlen möchte: " Angewandte Steuerungstheorie für eingebettete Systeme ", das die gesamte konventionelle Steuerungstheorie hervorragend in den spezifischen Bereich eingebetteter Systeme einbindet. Ich bin kein Autor des Buches und nicht mit dem Autor verbunden. Das Buch hat einige negative Kritiken über Amazon erhalten, die es meiner Meinung nach nicht verdient. Wenn Sie Grundkenntnisse in der Steuerungstheorie haben, wird dieses Buch alles zusammenfügen und Ihnen klar machen, wie Sie es anwenden können. Wenn nicht, kann es etwas langweilig sein, wenn das Buch nicht ins Detail geht. Ich finde Bücher absolut exzellent.

Martin
quelle