|
|
Skript für verschiedene Input Dateien |
|
dk545090 |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 13.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.07.2016, 15:50
Titel: Skript für verschiedene Input Dateien
|
|
|
|
|
Liebe Forumsgemeinde,
ich bin mit der Erstellung von Skripten noch nicht ganz so vertrautr und dachte ihr könntet mir vllt helfen! ich habe folgendes Problem:
Ich habe einen Überordner, genannt "Simulation1". in diesem Ordner befinden sich Unterordner für verschiedene Windgeschwindígkeiten, z.B. genannt "Wind_V020". Wenn ich mein Modell exemplarisch für die Windgeschwindigkeit "Wind_V020" durchlaufen lasse, sieht der Vorgang wie folgt aus:
Zunächst öffne ich den "Current folder" --> Wind_V020. Dann öffne ich das Modell und klicke auf"run". Dann werde ich aufgefordert meine Input Datei ins "Command Window" einzugeben(die Input Datei befindet sich übrigens auch in meinem "Wind_V020" Ordner. Sobald ich die Eingabe mit Enter bestätige läuft die Simulation. Die Output Datei wird im gleichen "Wind_V020" Ordner gespeichert.
Nun möchte ich mein Modell für jede Windgeschwindigkeit der "Simulation1" berechnen, ohne jedesmal per Hand die erläuterten Schritte durchführen zu müssen.
Hat jemand eine Idee wie so ein Skript aussehen könnte? Ein Skript das die Output-Datei weiterhin im Ordner der Input Datei speichert, und nach Beendigung der Simulation für die erste Windgeschwindigkeit direkt die Simulation für die zweite Windgeschwindigkeit aus einem anderen Unterordner startet?
Vielen Dank schon einmal im Voraus!
David
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 13.07.2016, 19:58
Titel:
|
|
Hallo,
1. Cell Array der Ordner erstellen
2. Cell Array der Input-Dateinamen erstellen
3. for-Schleife drüber laufen lassen (man muss nicht ins Verzeichnis wechseln, sondern kann den kompletten Dateinamen angeben)
Ohne genauere Infos ist es schwierig, genauere Hilfestellung zu geben.
Grüße,
Harald
|
|
|
dk545090 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 13.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2016, 09:27
Titel:
|
|
Habe 2 Bilder der Ordnerstruktur mit kurzer Erläuterung angehängt! Hilft dir das weiter?
Nachdem die Simulation abgeschlossen ist, soll der nächste Ordner "Wind_V024" zum Current folder gemacht werden, das Modell soll geöffnet werden und gestartet werden, und bei Aufforderung der Input Datei im Command Window soll die primary.fst gewählt werden. Dann beginnt das gleiche Prozedere von vorne, bis der Ordner Sim1 durchgelaufen ist.
Beschreibung: |
Dies ist ein Beispiel für einen der Unterordner. Dieser muss der "Current folder" sein, damit das Modell die Input Datei aufrufen kann. |
|
Download |
Dateiname: |
Windordner.PNG |
Dateigröße: |
15.31 KB |
Heruntergeladen: |
412 mal |
Beschreibung: |
All diese Ordner beinhalten eine Input Datei "primary.fst" und ein Modell "NREL5MW_Baseline_06b_TMD.mdl", dass nach dem Öffnen und nach dem Starten dazu auffordert die primary.fst ins Command Window einzugeben. |
|
Download |
Dateiname: |
PFAD.PNG |
Dateigröße: |
23.02 KB |
Heruntergeladen: |
430 mal |
|
|
|
ro_mat |
Forum-Century
|
|
Beiträge: 158
|
|
|
|
Anmeldedatum: 20.10.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2016, 09:59
Titel:
|
|
Hallo,
du kannst dir mal deine ganzen Wind-Ordner auflisten:
Und nun mit einer Schleife alle einzeln durchgehen:
Fertig
|
|
|
dk545090 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 13.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2016, 10:46
Titel:
|
|
Ok super, das mit den Ordnern hat schonmal geklappt! Danke!
Wenn ich jetzt allerdings das Modell laufen lasse, "run", dann fragt Simulink ja jedesmal nach der primary.fst. Kann ich das auch automatisieren?
|
|
|
ro_mat |
Forum-Century
|
|
Beiträge: 158
|
|
|
|
Anmeldedatum: 20.10.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2016, 11:04
Titel:
|
|
Hallo,
also du willst dass sobald du im Ordner bist ein Simulink-Modell geöffnet wird oder? Führst du dabei ein .m File aus oder .mdl?
|
|
|
dk545090 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 13.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2016, 11:10
Titel:
|
|
genau, ich will, dass das Simulink Modell geöffnet wird, welches in dem Wind Ordner ist, der aktuell "Current Folder" ist. Sobald das Modell geöffnet ist, soll es laufen (run). Dann fordert es normalerweise die Eingabe des Namen der Input Datei (primary.fst) in den Workspace. Anstatt diese Eingabe manuell zu tätigen, soll das Modell automatisch primary.fst als input datei erkennen und die Simulation dann laufen lassen. Ich glaube letzteres kann ich aber über die Model Properties des Modellsüber InitFcn einstellen. Wichtig ist noch, dass das Öffnen des zweiten Unterordners, des zweiten Modells und damit der Beginn der zweiten Simulation erst beginnt, wenn die erste Simulation vollständig abgeschlossen ist! Eine Idee wie ich das umsetze?
|
|
|
dk545090 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 13.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2016, 11:29
Titel:
|
|
Ok, also dass das Modell Input Datei automatisch einliest habe ich hinbekommen! jetzt sind nur noch die anderen beiden Fragen offen!
1) erster Durchlauf soll beendet sein, bevor die for-Schleife den Ordner wechselt und den zweiten Durchlauf startet!
2) Modell soll automatisch aus Unterordner Wind_0XX geöffnet werden und durchlaufen!
Danke schonmal!
|
|
|
ro_mat |
Forum-Century
|
|
Beiträge: 158
|
|
|
|
Anmeldedatum: 20.10.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2016, 11:50
Titel:
|
|
|
|
dk545090 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 13.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2016, 13:12
Titel:
|
|
Ich versuche gerade den link zu verstehen. Vor allem Ihn mit den von dir gegebenen Informationen zu verknüpfen (was die Verzeichnisse angeht...) aber es will einfach nicht klappen! :-/
|
|
|
dk545090 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 13.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2016, 13:46
Titel:
|
|
noch eine Sache, und zwar:
mein skript sieht mittlerweile so aus:
pfad = 'C:\Users\david.kolodziej\Desktop\Sim1';
D = dir(pfad);
D(1:2) = [];
D=D([D.isdir]);
for i = 1:length(D)
cd([pfad '\' D(i).name]);
sim('NREL5MW_Baseline_06b_TMD')
end
Für den ersten Windordner funktionier die Simulation, danach erhalte ich folgende Fehlermeldung:
Undefined function or variable 'pfad'.
Error in SimulinkRun1 (line 12)
cd([pfad '\' D(i).name]);
Woran könnte das liegen? Bei der ersten Rechnung erkennt Matlab den Pfad schließlich auch :-/ Anscheinend sind die VOR der for Schleife definierten Parameter nach der ersten Simulation nicht mehr im Workspace vorhanden...
|
|
|
dk545090 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 13.07.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.07.2016, 14:32
Titel:
|
|
Ok habe das Problem jetzt wie folgt gelöst:
%Pfad wo der Überordner der Simulation liegt
pfad = 'C:\Users\david.kolodziej\Desktop\Sim1';
%Auslesen der Unterordner
D = dir(pfad);
%Die ersten zwei Zeilen enthalten nur Pfade
D(1:2) = [];
%Garantie, dass mir Ordner ausgewählt werden
D=D([D.isdir]);
%Mit Schleife alle Ordner durchgehen
for i = 1:length(D)
%Pfad wo der Überordner der Simulation liegt
pfad = 'C:\Users\david.kolodziej\Desktop\Sim1';
%Auslesen der Unterordner
D = dir(pfad);
%Die ersten zwei Zeilen enthalten nur Pfade
D(1:2) = [];
%Garantie, dass mir Ordner ausgewählt werden
D=D([D.isdir]);
cd([pfad '\' D(i).name]);
%T = timer('TimerFcn',@init_sim); %initialize timer object
%start(T) %start timer object running
sim('NREL5MW_Baseline_06b_TMD')
end
meine Frage: gibt es eine schönere Möglichkeit das Skript zu schreiben?
|
|
|
|
|
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.
|
|