|
|
Problem mit place()-Funktion |
|
marky_m |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.07.2013, 13:10
Titel: Problem mit place()-Funktion
|
|
Hallo zusammen,
ich arbeite gerade an einem Zustandsregler für ein linearisiertes Modell, und verwende zunächst einfaches pole-placement.
Ich bin auf das Problem gestoßen, dass die place()-Funktion die Eigenwerte, die ich vorgebe, in beliebiger Reihenfolge platziert, es wäre aber wichtig, dass schnellere Pole denjenigen Zuständen zugewiesen werden, die eher am Anfang der Integrationskette des Modells liegen, die langsamen eher am Ende.
Laut Matlab-doc sollte es keine Probleme geben:
Zitat: |
... In other words, the eigenvalues of A BK match
the entries of p (up to the ordering). ... |
So läuft das aber bei mir nicht. Wenn ich
als Eigenwerte vorgebe, hat das geregelte System hinterher folgende diagonalisierte Form:
Das System ist übrigens voll steuerbar.
Wäre froh, wenn mir da jemand helfen könnte, danke schonmal,
Marky
|
|
|
|
|
cyrez |
Forum-Fortgeschrittener
|
|
Beiträge: 81
|
|
|
|
Anmeldedatum: 15.09.10
|
|
|
|
Wohnort: Bayern
|
|
|
|
Version: 2020b
|
|
|
|
|
|
Verfasst am: 09.12.2013, 13:51
Titel:
|
|
Hey!
Ich kann dir 2 sachen empfehlen. Sortiere die Matrizen deines ursprünglichen Systems so um, dass die Polverschiebung 1:1 übernommen wird.
Zweite Methode: Du könntest dir ein kleines Skript zur Vollständigen Modalen Synthese schreiben (max. 5 Zeilen). Damit dürfte sich die Reihefolge der Polverschiebungen festlegen lassen. Ich kann dir das Skript auch hier posten.
MfG
cyrez
|
|
|
Matlab Beginner |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 11.11.2016, 09:57
Titel: Identisches Problem
|
|
|
|
|
Hallo zusammen
Ich habe vorhin eure Unterhaltung gelesen und habe das gleiche Problem.
Ich habe dann mal versucht den Regler manuell zu entwerfen, jedoch benötige ich dafür ja bekanntlich die inverse der Steuerbarkeitsmatrix, die bei mir leider nicht quadratisch ist.
Habe ein Mehrgrößensystem und auch vollständig steuerbar.
Wenn ich nun meinen Zustandsrückführvektor berechnen lassen via place() habe ich bei der Kontrolle der Eigenwerte des geschlossenen Regelkreis A-B*K leider nicht die vorgegebene Reihenfolge der Pole.
Diese werden irgendwie zufällig verschoben.
Habe dann auch schon mit einem normalen Koeffizientenvergleich versucht, aber dafür haben ich im KT Vektor (4x2) leider 8 Unbekannte und nur 4 Gleichungen.
Als Alternative habe ich acker() versucht, dieser Befehl ist jedoch nur für SISO Systeme ausgelegt.
Ich hoffe ihr könnt mir ein paar hilfreiche Tipps übermitteln, ggf. auch das angebotene Script falls dieses auch für MIMO System geeignet ist.
B Matrix: 4x2
A Matrix : 4x4
Liebe Grüße
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|