Wie können Stringparameter aus einem Data Dictionary an eine FMU Maske gegeben werden?
2 次查看(过去 30 天)
显示 更早的评论
Beschreibung:
Ich habe eine Functional Mock-up Unit (FMU) mit Dymola (Modelica) erstellt, die eine Lookup-Tabelle enthält. Diese Tabelle liest ihre Daten aus einer externen Datei ein. Der Dateipfad soll über einen String-Parameter in der FMU-Maske von Simulink übergeben werden.
Problem:
Wenn ich den Dateipfad als String-Parameter (z.B. strLookupFile) in einem Data Dictionary definiere und diesen Parameter dann dem entsprechenden Parameter in der FMU-Maske (z.B. LookupFilePath) zuweise, schlägt die Simulation fehl. Die FMU interpretiert den übergebenen Wert strLookupFile nicht als Variablenreferenz, sondern als literalen String und findet die Datei daher nicht.
Beispiel:
- Data Dictionary:
- Variable: strLookupFile
- Wert: C:\pfad\zur\datei.txt
- FMU-Maske:
- Parameter: LookupFilePath
- Wert: strLookupFile
Erwartetes Verhalten:
Ich erwarte, dass Simulink den Wert von strLookupFile aus dem Data Dictionary auflöst und den tatsächlichen Dateipfad C:\pfad\zur\datei.txt an die FMU übergibt. Bei numerischen Parametern funktioniert die Übergabe von Werten aus dem Base Workspace oder Data Dictionaries problemlos.
Frage:
Ist dies ein bekanntes Problem bei der Übergabe von String-Parametern an FMUs in Simulink? Gibt es eine Möglichkeit, dieses Problem zu umgehen und den Dateipfad korrekt zu übergeben?

0 个评论
采纳的回答
Oliver Jaehrig
2025-2-28
Im folgenden finden Sie die Antwort auf Ihre Frage:
This is expected with strings parameters, since the contents of the "Value" column for strings is interpreted as UTF-8 encoded strings, rather than an edit box. This is mentioned in the documentation in the following table:
Therefore, you should have "myString" as the "Value" instead of "name1". If you wish to edit the value of the string parameter from MATLAB, consider using the "set_param" function. The following is an example of the syntax (requires edits):
>> set_param('modelName/FMUblockName', 'runCmd', 'yourString')
Wir haben hierzu auch einen Verbesserungsvorschlag, das ganze in Zukunft so wie von Ihnen gewünscht zu behandeln. Ich werde diesen Thread dort erwähnen, damit unsere Entwicklungsabteilung dies ggf. priorisiert für einen zukünftigen Release.
0 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!