|
|
Mechanisches State-Space-Modell in Simulink |
|
Lugdunix |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.06.2009, 18:27
Titel: Mechanisches State-Space-Modell in Simulink
|
|
Hallo
ich habe ein State-Space Modell, also die Matrizen A,B,C und D, in einem .mat-File gespeichert und möchte dieses in ein Simulink-Modell integrieren.
Am besten wäre es wenn ich das State-Space-Modell direkt als Block einfügen könnte.
Bis jetzt hab ich nur Möglichkeiten gefunden mit denen ich die Matrizen in den Workspace lade und dann in den Simulink eigenen State-Space-Block durch Variablen anspreche.
Jemand evtl. ne Idee?
Gruß
Lugdunix
|
|
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.06.2009, 18:29
Titel:
|
|
Du kannst die Matrizen auch direkt in die Maske des Simulink-Blockes reinkopieren. Bei großen Modellen wird das halt ein bisschen unübersichtlich und unschön, aber es geht.
|
|
|
y_fotsing |
Forum-Anfänger
|
|
Beiträge: 45
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.06.2009, 21:28
Titel:
|
|
Du kannst die Variablen A, B, C, D in dem Simulink-Block eingeben.
Dann auf dem "Command Window" rufst du dein Mat-File mit dem Befehl "load xxx.mat A B C D". Danach simulierst du dein System.
Mfg
Yannick
|
|
|
Lugdunix |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.06.2009, 15:21
Titel:
|
|
Dank euch.
So hab das mal mit kopieren der matrizen-arrays in ein M-File probiert. Dabei zerhauts mir die ganzen werte, da diese sehr klein sind (Größenordnung 1e-13 bis 1e-8 ). Bei einer Matrix z.B. die normalerweise voll besetzt ist kopiert er mir nur nullen in das m-file. kann ich die matrizen direkt in das m-file reinschreiben lassen?
@y_fotsing: genau das mit dem extra laden im command window will ich abschaffen.
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.06.2009, 21:40
Titel:
|
|
Du könntest ein bisschen tricksen. Dazu lädst Du die .mat-Datei und gibst sie im Matlab-Matrizen-Format per printf aus. Da kannst Du dann das Zahlenformat und die Genauigkeit selbst bestimmen. Anbieten würde sich das wissenschaftliche Format, dass er eben nicht 0.0000000061 sondern 6.1e-... ausgibt.
Ne ganz andere Lösung wäre es vielleicht, das Laden der Daten in das Start-Skript vom Modell zu packen. Dann läuft das automatisch ab, wenn Du simulation startest. Das Skript findest Du unter Rechtsklick auf leere Stelle im Modell -> Model Properties -> Callbacks. Und da müsste es die StartFcn sein, wo Du das Lade-Skript einfach reinsetzt. Im SS-Block packste dann wieder die Variablennamen rein.
|
|
|
Lugdunix |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.06.2009, 11:08
Titel:
|
|
So hab jetzt meinen Fehler gefunden.
Hatte Anfangs gedacht PreloadFcn kann nur Variablen die direkt im m-File stehen einlesen. Das lag daran das meine Pfadangabe zum .mat-File einmal nen Space (\asghd aksghdk\akjsdgh.mat) drinnen hatte.
Danke für eure Hilfe
Lugdunix
|
|
|
|
|
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 - 2025
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.
|
|