Hallo zusammen,
wie kann man in Matlab das folgende etwas angenehmer darstellen:
x=
[ 5882761642444329/158456325028528675187087900672 - x1,
5396624937750785/281474976710656 - x2, 220042955071761/8796093022208 -
x3, 876350609148443/1125899906842624 - x4]
Das sollte in der Regel wir folgt aussehen:
[o-x1, 19.1727-x2, usw]
vielen Dank für Eure Infos
Wulff
Hallo,
Kann es sein, dass du mit der 'Symbolic' Toolbox arbeitest um
Gleichungen zu lösen mit mehreren Variablen?
Wenn ja, hilft eminer Meinung nach nur eine teilweise Konversion von
'symbolic' to 'double'.
Gruß
Das richtige Programm für dir richtige Aufgaben könnte helfen.
"MATLAB ist primär für numerische Berechnungen mithilfe von Matrizen
ausgelegt, woher sich auch der Name ableitet: MATrix LABoratory."
Was du brauchst ist ein CAS -> Mathematica (wenn's was kosten darf) oder
wxMaxima (GPL)
ich muss mit matlab machen!
Es geht um State space in der Controltechnik. Es sollte
zustandvektorrückführung durchgeführt werden. Dadurch wird die
Polvorgabe des Systems verdeutlicht.
Leider kann matlab meine Eigenwerte abhängig von Parametern nicht
erzeugen, oder ich kann es nicht hinkrigen.
Für einfache Eigenwert berechnung x.y-t.y geht es aber wenn es um
mehreren unbekannten geht kann das ding irgendwie nicht bleibt in Busy
und kommt von der Hölle nicht wieder raus!
Kann jemand vieleicht in dem Sinne was raten!
Grüße
Wullf
Moin,
Hab ich das richtig verstanden, du willst eine Regelung mittels
Zustandsrückführung realisieren, welche aber von mehreren unbekannten
Variablen abhängig ist?
Wo sind denn die Unbekannten, in der Strecke oder willst du verschieden
Pole und deren Auswirkungen betrachten?
Gruß
Hallo Philipp,
ja ich möchte die Pole verschieben. Aber ich möchte die Polvorgabe nicht
einfach mit acker oder place machen sondern mit systemmatrix mit
Zustandsvektorrückführung und vorverstärkung machen. Um daraus zu
erkennen, wo das asmphtotisch stabil usw. zu untersuhen. Stell dir so
vor, als ob du A_new erstellt hättest, welche mit k zu tun hat und
abhängig von x1 bis x4 (k1..k4) ist. Daraus kann man die Eigenwerte in
Abhängigkeit von k's berechnen und überprüfen bis wohin man die Pole
verschieben kann usw.
Die Pole kann man verschieben, dafür gibt es auch paar bedingungen.
Diese ist irgendwie leider nicht so transparant.
wie geschrieben, matlab spuckt immer komische Zahlenformat (wie oben
definiert)
Vielen Dank für die Hilfe
Wullf
Das verstehe ich immernoch nicht so ganz.
Mit acker oder place setzt man doch vorher definierte Pole, die das
geschlossene/korrigierte System am Schluss haben soll.
Vorher sollte man sich natürlich im klaren sein wo diese Pole liegen
müssen, damit das System bestimmtes Verhalten aufweist. Dafür habe ich
immer Matlab´s 'sisotool' benutzt. Dort kann man Pol- und Nullstellen
manuell legen und sich dann das Gesamtsystemverhalten beobachten. Beim
Verschieben der Pol- und Nullstellen gibt es dort auch die Option sich
die Pole des geschlossenen Regelkreises aufzulisten und die Darstellung
der dazugehörigen Sprungantwort des offenen Systems.
Also kann man die Grenzstabilität anhand der Lage der Pole erkennen und
an der Sprungantwort des Systems.
Gruß
Hi Philipp,
leider kann ich die Grenzstabilität nicht so richtig rauskriegen. Der
offene Kreis ist ja sowieso grenzstabil und liegen die 3-Pole auf der -s
ebene und eine bei 0 also das System ist grenzstabil. Nun ist die Frage
wie soll man die Pole vergeben bzw. festlegen wo das System Stabil ist
und wo die Stabilitätsgrad und Dämpfung und Begrenzung der
Relerverstärkung zu finden sind. Das ist dabei die Kunst.
Das ist ja zustandsvektorrückführung und gibt es dafür soviele
Möglichkeiten für die Poldefinition.
Da hab ich Schwierigkeiten.
Wenn Du helfen kannst oder möchtest kannst du mir beispiel senden oder
nennen.
Danke und Grüße
Wullf
Moin,
Also ich erklär dir das mal Schritt für Schritt wie ich das mache.
Beispiel:
Es ist ein diskretes System 2ter Ordnung gegeben:
sys_d=tf([0.0004967 0.0004934],[1 -1.98 0.9802],0.01)
mit der Abstastzeit Ts = 0.01s.
Nun gehe ich in die GUI von Matlab´s SISOTOOL (einfach "sisotool" in das
Command Window eingeben). Dort schaue ich mir erstmal lediglich den
diskreten Root Locus an und legen dort z.B. zwei reele Pole rein. Zur
Überprüfung des Verhaltens schaue ich mir über 'Analysis->Response to
Step Command' die zu den Polen gehörige Sprungantwort an und änder die
Pole soweit ab, bis die Sprungantwort das gewünschte Verhalten aufweist.
Über 'View->Closed-Loop Poles' kann man sich nun die dazugehörigen Pole
des geschlossenen Systems anschauen. Die ganze Arbeit bis jetzt im
SISOTOOL hat erstmal NIX mit der Übertragungsfunktion zu tun die gegeben
ist. Die bestimmt lediglich die Anzahl der zu vergebenen Pole.
Jetzt gehe ich in meinen State-Feedback Regler und übergebe ihm meine
abgelesenen Pole. Dieser Regler soll ja auch nur dafür sorgen, dass am
Ende das "geschlossene", korrigierte System die gewünschten Pole
aufweist. Wie du nun die Pole übergibst, sei es mit 'pzplace', 'place',
'acker' oder auf einem anderen Weg, sei dir überlassen.
Bei dem Beispiel habe ich mich für Pole bei 0.86 und 0.98 entschieden.
Das System weist damit ein PT1 Verhalten auf mit einer Settling Time von
ca. 3s. Das konnte ich ja im SISOTOOL bei der Step Response beobachten.
Dieses PT1-Verhalten hat nun auch mein oben beschriebens System 2ter
Ordnung.
Eine wahrscheinlich auftretende Regeldifferenz musst du dann noch über
einen Vorfilter kompensieren, aber das ist eine andere Geschichte.
Ich hoffe ich hab etwas Licht ins Dunkle gebracht.
Gruß Philipp
Ist natuerlich eine etwas unguenstige Ausgangslage. Wenig Ahnung von
Regelungstechnik, nichts ausser einer Vorschrift. Wenig Ahnung vom Tool
und wenig Ahnung vom Vorgehen.
Aber irgendwie muss man da durch. Ich wuerd empfehlen mal mit einem
einfachen Tool eine Simulation zu schreiben. Und nicht gleich mit
20stelligen Koefizienten anzufahren.
Hallo Phlipp,
vielen Dank für deine Infos. Die waren/sind sehr nützlich. Mir war dies
Thema in Matlab unbekannt. Dieses Verfahren ist sehr nützlich und man
kann die Response sehr schnell sich anschauen und grobe Kriterien
rausfinden.
Herr Morz Banzo hat eventuell recht von seiner Betrachtung aus. Ich
stimme ihm leider nicht zu und danke ihm wegen seiner Motivation:)
Meiner Meinung nach kann man manchmal durch kleine Antriggerung zum Ziel
ganz schnell kommen und seine Probleme lösenn. Das ist machmal ein
langer Weg aber das Ergebnis ist immer dann positiv. Von daher finde ich
die hilfreiche Infos von Philipp sehr nützlich und danke ihm nochmal!
Philipp:
Wenn Du irgendwelche Fragen über Leistungselektronik mit
Regelungstechnik haben würdest kannst du mir gern schreiben. Ich würde
versuchen darauf zu antworten.
Freundliche Grüße
Wullf
Eine eigene Frage?
Dieser Thread ist über 13 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.