|
|
Simulinkmodell in Standalone umwandeln |
|
Alex.ab |
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 21.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.02.2009, 14:16
Titel: Simulinkmodell in Standalone umwandeln
|
|
Hallo,
ich habe ein Simulinkmodell, das ich gerne in eine .exe umwandeln würde.
Leider sind meine Malab-Kentnisse eher begrenzt, so dass ich hier noch einmal um Rat frage.
Das Modell benötigt einige Parameter, die übergeben werden müssen und soll das Ergebnis in ein .mat-File schreiben. Ich denke das die Rapid Simulation das wichtige Tool dafür ist.
Meine Fragen:
1. Wie übergebe ich die Parameter. Ist es dazu notwendig ein .m-File zu schreiben? Wenn ich versuche das Modell zu builden werden Fehler geworfen, weil ich die Parameter nciht übergeben habe.
2. Wo bestimme ich die Input/Output Dateien. Wenn ich mich richtig informiert habe können die Parameter über ein .mat-File eingelesen und in ein anderes wieder ausgegeben werden.
3. Gibt es irgendwo eine Art Tutorial oder kann mir jemand die nötigen Schritt kurz erläutern?
Ich hoffe mir kann jemand helfen.
Danke schon einmal
Alexander
|
|
|
|
|
apn |
Forum-Anfänger
|
|
Beiträge: 25
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Wolfsburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.02.2009, 13:25
Titel:
|
|
Hi,
bevor ich hier ewig langen text schreib, solltest Du folgende Aspekte ausschließen, bei den das Rsim Target nicht funktioniert:
- deine Parameter ändern ihre Dimensionen
- (bei S-Functions) Du holst die Parameter aus dem Dialog Feld per "ssGetSFcnParam"
- Du hast keinen Matlab-Compiler installiert austesten per
sollte 1 ausspucken
Wenn das alles nicht zutrifft, meld ich hier nochmal, das ist nicht ganz einfach, ich hab bei ersten mal locker 50-60 Stunden gebraucht, bis ich alles zusammen hatte (inkl Literatur wälzen, Mathwokrs Support nerven, goMatlab-Forum nerven ). Zum glück bin ich Praktikane und meine Arbeitszeit nicht teuer ^_^
lg, apn
|
|
|
Verschoben: 16.02.2009, 14:59 Uhr von Bijick Von Programmierung nach Simulink |
Alex.ab |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 21.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.02.2009, 17:36
Titel:
|
|
Hi apn,
hatte die Hoffnung auf eine Antwort schon fast aufgegeben. Also schon mal vielen Dank im Voraus.
Die ersten beiden Aspekte kann ich ausschließen.
Der Compiler ist installiert. Von daher sollte es eigentlich klappen.
Ich hoffe die 50-60 Stunden sind jetzt nicht mehr nötig
Bis denn
Alexander
|
|
|
apn |
Forum-Anfänger
|
|
Beiträge: 25
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Wolfsburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.02.2009, 08:17
Titel:
|
|
|
|
|
Gut.
Zuerst: Beim Kompilieren musst Du das Modell mit "Anfangsparamtern" hartcodieren, diese sind dann in der exe-Datei gespreichert. Diese Anfangsparameter müssen sich beim Kompilieren im Workspace befinden.
Um diese später ändern zu können (bzw. verwerfen und neue nehmen), musst Du in die RTW-Options gehen. Dort, unter "Optimization", steht eine Radio Box "Inline Parameters", diese aktivieren.
Jetzt kannst Du daneben auf die Schaltfläche Configure klicken, und dort hast Du alle Variablen angezeigt, die im WS stehen. hier kannst Du einstellen, welche Parameter Du als "Tunable" setzen möchtest.
Ich unterstelle mal genug Windows-Fähgikeit, das mit den Schaltflächen zu schaffen. Bei Storage Class läst Du am besten auf Simulink Auto
jetzt solltest Du dass Modell auch schon "builden" können.
Jetzt musst Du noch die Struktur erstellen, die vom kompilierten Modell gelesen werden kann. Dazu
der rtP ist ein struct, der Daten über die Inline-Parameter und über ihre dimension etc enthält und auch ganz wichtig: Die Checksumme für dein Modell mit genau den Einstellungen und Anfangsparametern, er wird also nur mit dieser kompilierten Version funktionieren.
Das ändern dieser Datenstruktur ist ziemlich fummelig, der einzige veränderbare Teil ist die rtP.parameters.values alle anderen ist nur Information, und geht nicht in das Modell mit ein, wenn Du sie änderst.
Hier kannst Du durch scharfes angucken feststellen, dass die Infos, wo welcher Parameter zu finden ist unter rtP.parameters.map zu finden ist. Eben dieses ändern musst Du leider selber machen. Ich habe mir dafür eine Funtkion vorbereiten.m geschrieben, und die dann per
in Standalone kompilliert.
Das Modell schreibt, wenns denn mal läuft eine MAT-Datei raus, auch diese müsstest Du mit einen Extra nachbereiten Teil in lesbare Zahlen umwandeln.
Hoffe das reicht soweit erstmal
lg, apn
|
|
|
Alex.ab |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 21.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.02.2009, 17:51
Titel:
|
|
Hi apn,
super, dass hat mich schon einen ganzen Schritt weiter gebracht.
Habe von meinen Modellen EXE-Dateien builden können.
Allerdings bekomme ich beim Aufruf des rsimgetrtp-Befehls einige Fehlermeldungen.
Einmal:
und dann noch
Habe ich das richtig verstanden, das nur diese mat-File dazu verwendet werden kann, um Variablen in die Exe zu übergeben? Ich kann also nicht irgendeine Datei erstellen (mit den richtigen Variablen versteht sich) und die dann dafür benutzen?
...und wie übergebe ich dann das mat-File an die Exe?
Danke noch mal
Alexander
|
|
|
Alex.ab |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 21.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.02.2009, 20:05
Titel:
|
|
Hi nochmal,
mir ist gerade aufgefallen, dass die o.g.
Fehlermeldungen bereits beim Builden der Modelle auftreten.
Irgend eine Ahnung, wie man das abstellen kann?
Cya
Alex
|
|
|
apn |
Forum-Anfänger
|
|
Beiträge: 25
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Wolfsburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.02.2009, 08:14
Titel:
|
|
|
|
|
ja, es ist ein spass
- probier mal, wenn für Dich möglich oder egal, die From Workspace Blöcke durch Constant Value Blöcke zu ersetzen. Hier trägst dann einfach den Variablen Namen ein. Der wird dann aus dem base ws gelesen
- in den Einstelungen unter Real-Time- Workshop bei TLC Options "-p0" ohne Anführungsstriche eintragen
- falls du den lcc nimmst (matlab mitgeliefert) dann stell die targetlanguage auf C nicht C++
Was das MatFile angeht: Es handelt sich um das Standard Matlab Binär Format, im Prinzip so, als würdest Du die deinen WS mit dem Save-Button speichern. aber die kompilierte Modell möchte halt unbedingt aus DIESEM Format NUR die rtp-Struktur auslesen, mit den Variablen wo kann der nix anfangen. Es gibt hier ein Programm, dass dieses Umwandlung macht, du musst das dann halt noch extra wieder kompilieren. Das hab ich mir aber nicht abgeschaut, sonder habs selber geschrieben.
Also sonstige hilfe kannst Du mal
eingeben, da ist ein Beispiel Modell und auch ein GUI zum ändern der Parameter (hab ich aber auch nicht angeschaut )
lg,apn
|
|
|
Alex.ab |
Themenstarter
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 21.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.02.2009, 13:20
Titel:
|
|
Hi apn,
das hat mir leider nicht weiter geholfen.
Ich habe jedoch festgestellt, dass alle Warnings nur von Variablen
hervorgerufen werden die nicht nur einen Wert enthalten (also Arrays, bzw. Matrizen).
Kann das mit dem transpose-Befehl zusammenhängen?
Cya
Alex
|
|
|
apn |
Forum-Anfänger
|
|
Beiträge: 25
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Wolfsburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.02.2009, 08:47
Titel:
|
|
|
|
|
hm,
Ich habe meine Matrizen nur in S-Functions benutzt, da habe ich sie über das Dialogfeld geholt, alles was ich aus constant Blöcken hatte waren nur Skalare.
Vielleicht liegts daran, dass der Transpose Block nicht zu Simulink oder RTW Toolbox gehört, sondern zum Signal Processing Blockset. Ist nur Spekulation, aber wenn Du kannst, probier mal nur mit Blöcken aus den ersten beiden auszukommen.
Den Vorschlag verwerfen wir, den hab ich gerade selber mal probiert. Den Transpose Befehl nimmt der RTW an. Hab auch die transponierte Matrix auf tunable gestellt.
Also sonst fällt mir nix mehr ein. Kannst Du dein Modell bereitstellen? Oder is das irgendwie geschützt? Ansonsten fällt mir nur noch ein, dir mal Bugreports zu deiner Simulink version anzuschauen. Oder was mir dann auch empfohlen wurde mal den Mathworks Support zu nerven. Als lizenzierter Benutzer hast Du Anspruch darauf (glaub außer Studenten Version). Das Programm ist ja auch teuer genug.
Okay ich habs gerade gefunden :
Such mal in der Matlab Hilfe diese Seite
Tunable Expression Limitations
dein Transpose ist Category 4.
Abhilfe fällt mir spontan nicht ein. Außer die Matrix vorher im WS zu transponieren:
und dann beide seperat mit const Blöcken zu holen. nicht elegant, aber könnte klappen
lg, apn
|
|
|
Virtus |
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 02.11.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.11.2009, 15:09
Titel: Frage an Alex.ab
|
|
1 Ich habe Tunable Variable erzeugt und das Model Kompiliert....
2 Ich habe rtP Struktur erzeugt und gespeichert:
3 Dann habe ich den Wert Value in rtP geändert und wieder gespeichert
4 dann starte ich "mymodel.exe"
5 Das Ausgabe-Ergebnis bleibt gleich wie bei altem Wert von Value in rtP.
Also wenn ich den Wert Value in rtp Struktur ändere und das model.exe starte ändert sich nichts an der Ausgabe ...
Wie muss ich die Simulation starten um das neue Wert der rtp Struktur zu einsetzen???
im
geht es... aber ich habe nicht verstanden, wie die es machen
Im RTW Help steht so was:
Leider kriege ich hier auch eine Fehlermeldung
Könntest du mir irgendwie weiter helfen?
|
|
|
|
|
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.
|
|