Wie man einen State-Feedback-Controller mit einem Algorithmus entwirft

Ich lerne für eine Prüfung und habe große Schwierigkeiten, mich darum zu kümmern, da ich nur minimalen elektrotechnischen Hintergrund habe und meine Notizen verwirrend sind. Ich habe ein paar Beispiele von verschiedenen Websites gelesen, aber ich suche nach einem Schritt-für-Schritt-Beispiel, um die Dinge hoffentlich sinnvoll zu machen.

Die Frage, die ich als Lernbeispiel verwenden möchte, lautet:

Entwerfen Sie einen Zustandsregler mit dem Algorithmus u=-kx, um das folgende kontinuierliche lineare zeitinvariante System zu stabilisieren:

A =                       B =
   [-1  .5  0  -.5]          [ 1]
   [0  -.5  0 -1.5]          [ 1]
   [0   .5  2  -.5]          [-1]
   [0 -1.5  0  -.5]          [ 0]

Danke für jede Hilfe, ich bin wirklich ziemlich verwirrt.

Es wäre hilfreich, die verwandten Beispiele zu verlinken, die Sie sich angesehen haben. Handelt es sich um ein zeitkontinuierliches oder um ein diskretes Zeitproblem? Diese beiden Zustandsraumformulierungen sind verwandt, aber unterschiedlich genug, dass man ohne diese Informationen nicht wirklich antworten kann. Außerdem sollte das Problem Vektoren/Matrizen Cund bereitstellen D.
@jbarlow Ich habe die Frage aktualisiert, um aufzunehmen, dass es sich um ein CLTI-System handelt, aber ich bekomme jetzt C- oder D-Matrizen für das Problem.

Antworten (1)

Lassen wir die Mathematik für einen Moment beiseite und sprechen wir darüber, worum es bei diesem Problem geht.

Du hast ein System, das du zu kontrollieren versuchst. Alleine ist es in diesem Fall instabil. Andererseits ist eine Kontrolle möglich. u=-kx bedeutet, dass Sie etwas, das Sie über den Zustand des Systems x wissen, mit k skalieren und als Kontrolle verwenden, u.

Wenn Sie mit der Root-Locus-Analyse vertraut sind, ist das, was Sie hier tun, nur eine mehrdimensionale Version davon.

Ich kann Ihnen sagen, dass A instabil ist, weil es positive Eigenwerte hat. Eigenwerte wirken immer etwas mysteriös, aber sie beschreiben eigentlich nur, wie eine Matrix einen Datensatz in einen anderen umwandelt. Sie sind die „Skalierungskomponente“ einer Transformation; die Eigenvektoren der "Rotationskomponente" (sozusagen). Positive Eigenwerte haben diesen Skaleneffekt, weil Sie in einer Rückkopplungsschleife den Zustand bei jeder inkrementellen Iteration effektiv mit A multiplizieren. Eine unendliche Reihe von Multiplikationen bedeutet, dass Sie eine Exponentialfunktion haben, die sich auf A bezieht. Mathematisch gesehen, wenn A positive Eigenwerte hat, dann sind seine Komponenten, wenn sie potenziert werden, mit Potenzen dieser Eigenwerte verbunden, sodass sie unbegrenzt wachsen.

Finden Sie einen Weg, alle Eigenwerte negativ zu machen, und Sie stabilisieren das System.

Ihr System ist streng korrekt. C = Identitätsmatrix und D = Nullmatrix. Der Wikipedia-Artikel zeigt, wie man für diese Situation eine einfache Gleichung ableiten kann. Worauf es ankommt ist:

Sie kennen A und B. Sie müssen K finden, sodass die Matrix A + KB alle negativen Eigenwerte hat. Wir müssen also einen Weg finden, K mit Hilfe einer Eigenzerlegung mit den Eigenwerten von A + KB in Beziehung zu setzen.

Schauen Sie sich diesen Artikel an , der das Verfahren mit einem Beispiel und Matlab-Befehlen zu beschreiben scheint. In ihrer Notation tritt 'F' an die Stelle von 'K' und 'v' = 0 in Ihrem Problem, und v_i ist in beiden Problemen ein Eigenvektor ungleich 'v'.