Verfasst am: 16.05.2017, 13:26
Titel: Bildung Zustandsraumdarstellung in Funktion pressen
Hallo liebes Forum,
erstmal ein herzliches "Hallo!" von mir, da das mein erster Beitrag hier ist. Ich hoffe ich treffe das richtige Unterforum.
Für einen Dreimassenschwinger habe ich in Matlab ein Schwingungsmodell aus Massen-, Steifigkeits- und Dämpfungsmatrix zusammengebastelt und in den Zustandsraum überführt. Abschließend soll der Amplitudenfrequenzgang einer Übertragungsfunktion des Systems geplottet werden, um die Eigenfrequenzen darzustellen (bspw. Bode). Bis dahin alles dufte. Da ich aber auch das Verhalten der Frequenzen bei Veränderung einzelner Parameter (Steifigkeit 1, Massenträgheit 1, etc.) sehen möchte, habe ich mir eine while-Schleife gebastelt, welche die verschiedenen Formen der Übertragungsfunktion "G33" bei Veränderung eines Parameters in einen Bodeplot malt. Auch das klappt gut, mit folgendem Code (am Beispiel cw = 500 ... 10000):
Da ich aber viele verschiedene Parameter verändern möchte, wollte ich nicht jedesmal die gesamte Herleitung des Zustandsraumes in meinen Code kopieren, weshalb ich versucht habe, diese in eine Funktion zu pressen. Daran bin ich kläglich gescheitert. Ich habe versucht, die Bildung des Zustandsraumes und der Übertragungsfunktion ganz einfach in ein
zu klammern, was natürlich viel zu einfach gedacht war. Dann habe ich versucht, jede Matrix (M,D,K...) als einzelne Funktion zu deklarieren und eine übergeordnete Funktion zu erzeugen:
Dann aber sagt mir Matlab, ich habe zu wenig Inputs.
Ich befürchte mir fehlt es an Verständnis für die richtige Beschreibung einer Funktion, vielleicht ist es aber auch bei Matrizen/ Zustandsraum/ wasauchimmer etwas anders?
Um es nochmal auf den Punkt zu bringen: mein Ziel ist es, eine kurze while-Schleife mit Abruf der Bildung der Übertragungsfunktion schreiben zu können:
Code:
while cw <= 10000
transfunc; % Abruf der Funktion bode(G(3,3),w);
cw = cw+500;
hold on
end hold off
Habe eine Lösung gefunden. Um nachfolgenden Forschern die Arbeit zu erleichtern, will ich hier mal noch das Ergebnis präsentieren. Wen es also interessiert, für mich funktioniert es jetzt so:
Jetzt kann ich mit "transfunc" jederzeit die Zustandsraumdarstellung und Übertragungsfunktion abrufen. Wie es aussieht, müssen A und B als Output deklariert werden, da sie sich aus weiteren in der Funktion erstellten Matrizen (M,K,D) zusammensetzen.
Beste Grüße,
Arne
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
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.