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
:
Verschoben durch User
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ß
Hi, du hast Recht. Wie soll man sonst in Matlab das lösen. Ich habe mehrere Parameterdeklarationen. syms x1 bis x4 wie sollte ich sonst nennen! Grüße
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.