Verfasst am: 06.06.2018, 10:23
Titel: In Anwendung Parameter an Simulink-exe übergeben
Hallo Leute,
ich habe eine GUI mit einem Button, welche mittels Compiler in eine matlab-unabhängige Anwendung umgewandelt werden soll. Über den Button soll eine Simulation gestartet werden. Das Modell hab ich in eine exe generiert mittels rapid Simulation Target und tunable Parameter verwendet.
Mit
Die mat-File wird von der GUI geladen. Anschließend nehme ich manuell Parameteränderungen vor (da rsimsetrtpparam wohl vom Compiler nicht untersttzt wird) und wird erneut abgespeichert. Danach wird die exe ausgeführt und dabei die mat-File übergeben.
Zuletzt werden die Simulationsergebnisse in Diagramme eingetragen.
%Festlegen der Art der Führungsgröße
fuehrungsgroesse=get(handles.fuhrung, 'value');
rtP.parameters(1).values(8)=fuehrungsgroesse; %fuehrungsgroesse
%Übergeben der Parameter der Führungsgröße
if fuehrungsgroesse == 1
rtP.parameters(1).values(10)=str2num(get(handles.feld1, 'String')); %hoehe
rtP.parameters(1).values(15)=str2num(get(handles.feld2, 'String')); %zeitsp
end if fuehrungsgroesse == 2
rtP.parameters(1).values(13)=str2num(get(handles.feld1, 'String')); %steigung
rtP.parameters(1).values(14)=str2num(get(handles.feld2, 'String')); %zeitr
end if fuehrungsgroesse == 3
rtP.parameters(1).values(7)=str2num(get(handles.feld1, 'String')); %frequenz
rtP.parameters(1).values(4)=str2num(get(handles.feld2, 'String')); %amplitude
end
%Übergeben der Anfangsbedingungen
rtP.parameters(1).values(3)=str2num(get(handles.alphastart, 'String')); %alphastart
rtP.parameters(1).values(2)=str2num(get(handles.alphapunktstart, 'String'));%alphapunktstart
Nun zu meinem Problem:
In MatLab funktioniert das einwandfrei. Wenn ich dies aber compiliere mittels Compiler und die Testanwendung ausführe, werden die Ergebnisse im Diagramm ausgegeben. Wenn ich jedoch Parameteränderungen vornehme und erneut simuliere ändert sich das Ergebniss nicht.
Scheinbar werden die Änderungen nicht angenommen. Kann mr jemand helfen?
Den Gedanken habe ich auch gehabt. Ich habe dem Compiler die myrtP.mat mit übergeben. Ich weis also nicht, wo diese dann später liegt. Auch wenn ich das Struct in einer neuen Datei speichere und der exe übergebe, wird die Grundeinstellung (ohne Parameteränderungen) simuliert.
Ich sehe zwei mögliche Problemursachen:
1. die Parameterübergabe funktioniert generell in der Anwendung nicht
oder
2. bei der Übergabe an die exe wird die gespeicherte mat-File nicht gefunden
Beim Starten der Simulation wird in dem Ordner, indem sich die Anwendung befindet, dann die myrtP.mat erstellt.
Wie kann ich es dann schaffen, dass er auf die neu erstellte mat-File zugreift?
Das war mein Versuch, der leider nicht funktioniert
Der Grundgedanke war, dass ich in das Verzeichnis wechsle, wo sich die Anwendung befindet, da ich dachte, dass sich mit mat-File ebenfalls dort befindet.
Oder kann ich mir den Pfad zu dieser myrtP.mat, die ich dem Compiler übergeben habe, rausbekommen, um anschließend in dieses Verzeichnis zu wechseln?
Somit ist doch die erzeugte Datei eindeutig angesprochen. Ich frage mich jetzt, ob es überhaupt möglich ist, in einer compilierten Anwendung einer Simulink-Exe eine .mat-File als Parameter zu übergeben???
Nachtrag:
Des Weiteren hab ich herausgefunden, dass die myrtP.mat korrekt geändert wurde. Ich hatte auch den Verdacht, dass die Struct nicht geändert wird. Damit liegt das Problem auf jeden Fall bei der Übergabe.
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.