Matroids Matheplanet Forum Index
Moderiert von mire2
Mathematische Software & Apps » Matlab » Parameter aus Modellworkspace laden
Autor
Universität/Hochschule Parameter aus Modellworkspace laden
Tobser
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 15.04.2016
Mitteilungen: 37
  Themenstart: 2018-04-24

Hi Leute, ich habe eine GUI aufgebaut mit ein paar Edit-Text-Boxen. Beim Öffnen der GUI sollen Parameter aus dem Modellworkspace eines Simulink-Modells geladen werden. Nun hab ich gerade festgestellt, dass das nur funktioniert, wenn das Simulink-Modell geöffnet ist. Ich weiß auch, wie man das Simulink-Modell öffnen kann. Mein Ziel ist es, die Parameter zu erhalten, ohne das Simulink-Modell zu öffnen. Wie geht das bzw. ist das überhaupt möglich? Ein Gedanke, der mir kam, ist der, dass ich das Modell öffne, die Parameter lade und das Modell wieder schließe. Aber dies scheint mir nicht sinnvoll. Ich lade die Parameter derzeit so Js = num2str(getVariable(mdlWks,'Js')); und trage sie anschließend in die TextBoxen ein set(handles.editmta, 'String', Js);


   Profil
Folgende Antworten hat der Fragensteller vermutlich noch nicht gesehen.
walderich
Senior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 03.05.2006
Mitteilungen: 1996
Wohnort: Bad Dürrheim, Deutschland
  Beitrag No.1, eingetragen 2019-01-15

Hallo Tobser, prinzipiell kannst du auf Daten innerhalb eines Modells nur per Simulink-API zugreifen und die fordert eben, dass das Modell geöffnet ist (Ausnahme sind ein paar Metadaten, die du mit Hilfe von "Simulink.MDLInfo" auslesen kannst). Du könntest zwar auch direkt in die Modelldatei schauen, aber das kann beliebig kompliziert werden. Zum Einen gibt es ja inzwischen sowohl das MDL- als auch das SLX-Format, die du dann jeweils separat behandeln müsstest. Ich weiß nicht, ob sich der Aufwand wirklich lohnt. Zudem ändert Mathworks ab und an auch das interne Format, so dass dieser Weg nicht stabil laufen wird. Ich bin mir zwar nicht 100% sicher, aber ich glaube mich daran zu erinnern, dass der Modell-Workspace binär abgespeichert wird, ähnlich einer MAT-Datei. Womit selbst das direkte Auslesen aus der Modell-Datei nicht zielführend sein könnte. Somit bleibt dir tatsächlich nur der Weg, den du bereits beschrieben hast: Modell öffnen, auslesen und wieder schließen. Was du natürlich machen kannst, ist das Modell nur im Hintergrund zu laden, ohne dass es in den Vordergrund springt. Das lässt sich mit "load_system" bewerkstelligen. Wenn du öfter Daten aus dem Modell benötigst, könntest du das sogar im Hintergrund geöffnet lassen und erst beim Schließen deiner GUI wieder beenden. Das würde dir das mehrfache Öffnen des Modells ersparen, was sicher schneller sein wird. Als Alternative kann man (soweit ich mich erinnere, habe gerade kein Matlab zur Hand) den Modell-Workspace auch auf eine MAT- oder M-Datei verweisen lassen. Damit hättest du das Modell und dessen Workspace getrennt gespeichert und kannst den Modell-Workspace separat ohne das Modell laden. Allerdings müsstest du dann natürlich (einmalig) das Modell ändern dürfen. Ich hoffe das hilft dir weiter. Andernfalls einfach nochmal nachhaken. Prinzipiell musste ich auch schon Modelldateien parsen, weil Mathworks eine API für bestimmte Modellelemente unterschlagen hat. Also ich wäre auch für diesen Weg offen und könnte etwas unterstützen :-) Viele Grüße, Sebastian


   Profil

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]