Großes Tal im Phasendiagramm entfernen

Ich arbeite an einem Geschwindigkeitsregler für einen Roboter und es ist dafür, wenn der Roboter auf seinen Rädern balanciert. Ich entwerfe den Controller im Rahmen eines Projekts in einem linearen Steuerungsdesignkurs. Allerdings muss die Steuerung auf einem Roboter und in einer von meinem Ausbilder bereitgestellten Software implementiert werden, sodass ich nicht unendlich viel Freiheit habe. Die Art und Weise, wie ich meinen Controller implementiere, ist hier zu sehen: -

Geben Sie hier die Bildbeschreibung ein

Wie Sie sehen können, kann ich einen Gewinn hinzufügen K P , einen Integrator und einen Post-Integrator, einen Lead/Lag-Term sowohl im Vorwärts- als auch im Rückkopplungspfad, einen Vorfilter und einen Feedforward. Und das ist es. Ich kann das Feedback, das ich erhalte, nicht ändern, ich kann nur Bedingungen des Controllers hinzufügen und anpassen.

Bearbeiten - Suche nach der neuen Übertragungsfunktion

Das zu tun, was AJN vorschlägt, gibt mir eine viel schönere Bode-Plot:-

Geben Sie hier die Bildbeschreibung ein

Der Bode-Plot ist viel schöner, aber ich habe immer noch einige Probleme. Ich möchte den Hügel im Phasendiagramm glätten, bin mir aber nicht sicher, wie das geht.

Die neue Übertragungsfunktion:

num = [0 0 0 -3.5113e+07 -3.7165e+10 -2.0902e+12 -3.8701e+13 -1.5402e+14 2.5341e+15 2.2109e+16 3.3405e+16];
den = [1 2.4731e+03 1.4491e+06 2.5930e+08 1.2622e+10 9.9503e+10 -1.8488e+12 -1.0302e+13 0 0 0];
G2 = tf(num,den);

Frühere Form der Frage, die einige veraltete Informationen enthält

num = [0 0 0 0 -2.3409e+07 -2.4777e+10 -1.3935e+12 -2.5801e+13 -1.0268e+14 1.6894e+15 1.4740e+16 2.2270e+16];
den = [1 2.4738e+03 1.4508e+06 2.6223e+08 1.5442e+10 6.8736e+11 2.6563e+13 5.2944e+14 4.0900e+15 8.1300e+15 3.7708e+15 1.1220e+13];
G2 = tf(num,den);

Das Bode-Diagramm mit offener und geschlossener Schleife für die Übertragungsfunktion ist hier: -

Geben Sie hier die Bildbeschreibung ein

Wie Sie im geschlossenen Bode-Plot sehen können, gibt es ein großes Tal in der Phase, und dies führt dazu, dass das System instabil wird (glaube ich), und das möchte ich nicht.

Meine ursprüngliche Idee war, dem Vorwärtspfad einen Verzögerungsterm hinzuzufügen. Ein Verzögerungsterm entfernt die Phase. Wenn ich ihn also genau dort platziere, wo das Tal ist, sollte der Peak kleiner werden. Mein Lag-Term sieht so aus:-

Geben Sie hier die Bildbeschreibung ein

Aber selbst nach Hinzufügen des Lag-Terms sieht die Phase immer noch sehr seltsam aus. Hier ist der neue Closed-Loop-Bode-Plot:-

Geben Sie hier die Bildbeschreibung ein

Gibt es eine Möglichkeit, dieses Phasental zu entfernen und ein geeignetes stabiles System zu erhalten?

Dies sieht aus wie durch Hysterese induzierte Resonanzen, die die Phasenumkehr verursachen. Und erinnert mich an die Diplomarbeit über den umgekehrten Besen-Servozug. Dies wurde viele Male gemacht. Das Eliminieren des Durchhangs (Hysterese) mit Druck- oder Zugspannung und einer Geschwindigkeits- und Positionsrückkopplungsschleife führt zu besseren Ergebnissen.
Die Verwendung der Positionssteuerung mit dem 2. Integral des Stroms führt zu einem schlechten Phasenspielraum. Versuchen Sie, Feedback 1. Ordnung, Geschwindigkeitsarmwinkel, dann Position von Winkel und Fahrzeug zu verwenden. Das heißt, mehrere Schleifen, da sich die Last mit dem Winkel ändert, sind nichtlinear
Ich zeichnete die Pole und Nullstellen der Anlage und bemerkte; eine Null auf dem RHP und zwei komplex konjugierte Pole auf dem RHP. Das System wird ziemlich schwierig zu stabilisieren sein, da Sie die Pole zum RHP bringen müssen, während Sie verhindern müssen, dass die Pole des offenen Regelkreises beim Schließen des Regelkreises zum RHP-Null wandern.
" Wie Sie im Bode-Diagramm des geschlossenen Regelkreises sehen können, gibt es ein großes Tal in der Phase, und dies führt dazu, dass das System instabil wird (glaube ich), und das möchte ich nicht." Das Phasendiagramm des geschlossenen Regelkreises Handlung ist möglicherweise nicht der richtige Weg, um über dieses Problem nachzudenken.
" Ich habe die Übertragungsfunktion zwischen dem Neigungswinkel des Roboters und der Radgeschwindigkeit gefunden. " Wie haben Sie sie gefunden? Systemidentifikation basierend auf einigen Testeingaben und -ausgaben. Oder erste mathematische Modellierung?
@AJN Ich habe meiner Frage eine Erklärung hinzugefügt.
Vielleicht verstehe ich das Simulink-Diagramm nicht ganz, aber warum gibt es zwei Zeilen, die von tilt_angle zurückgeführt werden ? nämlich eine blau hervorgehobene Linie und eine andere Linie, die in ref_tilt einzuspeisen scheint . Wäre ref_tilt nicht ein vordefiniertes Signal wie ein Schritteingang oder ähnliches? Ich habe nicht viel Erfahrung mit der Linearisierung von Systemen in Simulink.
iosWurden Ihnen die Schleifenunterbrechungs- und Überwachungspunkte definiert ? oder hast du diese Loop-Breakpoints selbst festgelegt?
Ich hätte die Schleife kurz nach dem Summierungsknotenpunkt, an dem die blaue Linie ansetzt, abgeschnitten, um eine offene Schleife zu erhalten, G(s)H(s)und hätte überhaupt keine oberste Rückkopplungslinie im Diagramm.
@AJN Ich habe getan, was Sie vorgeschlagen haben, und es hat zu einem "schöneren" Bode-Plot geführt. Ich schätze, ich muss die Übertragungsfunktion anfangs falsch gefunden haben.
das sieht vernünftiger aus. aber sei vorsichtig! Ich weiß nicht, wie Simulink funktioniert, aber vielleicht plottest du -G(s)H(s)gerade. Simulink weiß nicht, dass es beim Öffnen einer Schleife das Vorzeichen in der Summierstelle ignorieren muss -ve(zumindest die ältere Simulink-Version nicht; glaube ich). Die positive Form des Phasendiagramms lässt mich glauben, dass dies der Fall ist. Sei vorsichtig.
@AJN Obwohl ich jetzt mit der richtigen Übertragungsfunktion arbeite, habe ich immer noch Probleme beim Entwerfen meines Controllers, weil ich nicht sicher bin, welchen Weg ich gehen soll. Mein einziger Gedanke war, das Phasendiagramm zu glätten, indem ich einen Verzögerungsterm am Hügel hinzufügte. Aber es wird nicht so, wie ich will. Haben Sie Vorschläge?

Antworten (1)

Ein großer Teil des Engineering Design versucht, das Rad nicht neu zu erfinden und aus den Fehlern der Vergangenheit zu lernen und Verbesserungen vorzunehmen. Es gibt viele nichtlineare Faktoren, die nicht in Ihrer Simulation enthalten sind, wie z. B. Hysterese durch Reibung und Schlupf in jedem beweglichen Teil und fehlende Designspezifikationen für Eingabe- und Ausgabefehler. Eine einstufige Reaktion auf die Spannung ist nicht der beste Test, da die BEMF des Motors das Drehmoment ändert.

  • Verwenden Sie Stromsteuerung und Feedback für sanftes Beschleunigen/Bremsen anstelle von Schrittspannung.

  • Um einen umgekehrten Arm zu beschleunigen, müssen Sie zuerst rückwärts gehen, um den Arm nach vorne zu neigen, und dann bei Spitzengeschwindigkeit ausreichend beschleunigen, um den Arm nach hinten zu neigen, um das Bremsen in Richtung Zielposition vorzubereiten.

  • Recherchieren Sie die Schlussfolgerungen von einem Dutzend ähnlicher, aber unterschiedlicher Thesenpapiere mit umgekehrtem Besen oder Pendel und zitieren Sie die Fehler und Lösungen, die Sie mit mehreren Schleifen für ideale Beschleunigung, Geschwindigkeit, Neigungswinkel und horizontale Position mit zulässigen Fehlern und Toleranzen vorschlagen.

  • Hier ist ein Beispiel, das einige Kriterien erfüllte, aber am Ende nicht robust war. Lesen Sie zuerst die Schlussfolgerungen jedes Papiers und befolgen Sie meinen Rat. Der Inhalt gibt Ihnen einige Einblicke in die Theorie, ist aber unvollständig.