|
|
Matlab in Simulink übersetzen |
|
Matlab.lab |
Forum-Fortgeschrittener
|
|
Beiträge: 65
|
|
|
|
Anmeldedatum: 07.09.09
|
|
|
|
Wohnort: Ulm HMS
|
|
|
|
Version: 2007 a
|
|
|
|
|
|
Verfasst am: 01.10.2009, 13:22
Titel: Matlab in Simulink übersetzen
|
|
Hallo,
ich habe folgendes Problem; ich hab mit Matlab ein Programm geschrieben.. Nachdem aber die Umwandlung in C mit den neuen Versionen nicht mehr funktioniert, möchte ich das Problem über Simulink lösen.
Wie aber kann ich mein mfile in ein mdl file umwandeln?
Ich hoffe Ihr könnt mir helfen! Vielen Dank schonmal.
Grüße
|
|
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 01.10.2009, 14:46
Titel:
|
|
Ja, seit 11 Versionen wird kein direkter C-Code mehr generiert. Die Technologie wurde umgestellt um die bis dahin nicht unterstützten Fälle "Objekte" und "EVAL" (um nur die wichtigsten zu nennen) zu unterstützen. Einige Anwender haben jedoch damals den generierten C-Code in andere Anwendungen eingebaut und musste andere Ansätze finden.
Eine Neumodellierung in Simulink ist ein möglicher Weg, da der Real-Time Workshop C-Code aus Simulink generiert. Aber auch hier können Einschränkungen ein Problem darstellen.
Auch wenn es Embedded MATLAB / eml gibt möchte ich nicht pauschal empfehlen einfach nur den alten MATLAB Code in Simulink lauffähig zu machen oder eml zu nutzen. Ich würde gerne mehr über die Applikation wissen. Was wird simuliert? Wie gross ist der Code?
Andreas
|
|
|
Matlab.lab |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 65
|
|
|
|
Anmeldedatum: 07.09.09
|
|
|
|
Wohnort: Ulm HMS
|
|
|
|
Version: 2007 a
|
|
|
|
|
|
Verfasst am: 05.10.2009, 10:15
Titel:
|
|
Zitat: |
Ich würde gerne mehr über die Applikation wissen. Was wird simuliert? Wie gross ist der Code?
|
Hallo,
erstmal Danke für die Antwort.
das Programm analysiert in Matlab eine Funktion, sucht z.B. Minima und Maxima, die dann grafisch sichtbar gemacht werden.
Der Code hat dabei etwa 150 Zeilen an Code.
Ich hoffe, du kannst damit was anfangen...
Grüße
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 05.10.2009, 11:30
Titel:
|
|
Ja, dass ist ein guter Anfang. Es ist auf jeden Fall keine dynamische Systemsimulation und somit nichts was man gemeinhin in Simulink modelliert. 150 Zeilen heisst für mich "klein" (wegen des Aufwands) und die Tatsache, dass hinten Grafik rauskommen soll lässt mich auch von Simulink abraten.
Was würde denn mit dem generierten C-Code passieren, wenn es ihn denn gäbe?
Andreas
|
|
|
Matlab.lab |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 65
|
|
|
|
Anmeldedatum: 07.09.09
|
|
|
|
Wohnort: Ulm HMS
|
|
|
|
Version: 2007 a
|
|
|
|
|
|
Verfasst am: 05.10.2009, 11:47
Titel:
|
|
Der Simulink-Weg kam ja für mich nur deshalb in Frage, weil man darüber in C übersetzen kann - das Simulink selbst wird gar nicht gebraucht.
Den C-Code hätte ich dann auf einen Mikrocontroller übertragen.. (Dazu hab ich ein embedded target, spricht das dann doch wieder für Simulink?)
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 05.10.2009, 12:25
Titel:
|
|
|
|
Matlab.lab |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 65
|
|
|
|
Anmeldedatum: 07.09.09
|
|
|
|
Wohnort: Ulm HMS
|
|
|
|
Version: 2007 a
|
|
|
|
|
|
Verfasst am: 05.10.2009, 13:01
Titel:
|
|
Allerbesten Dank, ich werds mal probieren :wink:
Lg
|
|
|
Matlab.lab |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 65
|
|
|
|
Anmeldedatum: 07.09.09
|
|
|
|
Wohnort: Ulm HMS
|
|
|
|
Version: 2007 a
|
|
|
|
|
|
Verfasst am: 06.10.2009, 07:42
Titel:
|
|
*push*
jetzt hab ich gelesen, dass viele Leute das Problem in der 2007a Version gelöst haben mit dem emlmex Befehl..
Ich hab das jetzt auch mal angefangen, nur was mach ich jetzt weiterhin mit dieser mex-file? Die muss jetzt in Simulink, oder ist das mex schon mein fertiges C..
Vllt könnte mir ja doch nochmal wer helfen, das wär klasse ^^
Grüße
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 06.10.2009, 09:47
Titel:
|
|
Der dem MEX File zugrunde liegende C-Code liegt vor? Wenn nicht, dürfte es nicht gehen, bzw. auf eine code re-engineering hinauslaufen. Und das ist ja wohl rechtlich nicht OK.
Andreas
|
|
|
Matlab.lab |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 65
|
|
|
|
Anmeldedatum: 07.09.09
|
|
|
|
Wohnort: Ulm HMS
|
|
|
|
Version: 2007 a
|
|
|
|
|
|
Verfasst am: 06.10.2009, 10:06
Titel:
|
|
ich habe meine Funktion einfach überstzen lassen mit
und jetzt hab ich ein file namens meinefunktion.mexw32
Mit dem weiß ich aber weiter nichts mehr anzufangen..
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 06.10.2009, 10:38
Titel:
|
|
Ach so - ich dachte es gäbe noch ein MEX File im ursprünglichen Code.
Bitte EMLC benutzten nicht EMLMEX.
Andreas
|
|
|
torben83 |
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 19.10.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.10.2009, 22:44
Titel:
|
|
Hallo zusammen,
Ich würde mich hier gerne mal einmischen.
Ich bin neu hier und arbeite seit 2 Monaten mit Matlab bzw. der Toolbox Simulink.
Mein Problem ist folgendes, ich habe ein Simulationsmodell mit diskreter Abtastung erstellt und ich habe das Problem das bei mir die Rechengeschwindigkeit im Simulink zu langsam ist, wobei ich schon so Sachen wie embedded Matlab-files usw. rausgeschmissen habe.
Im Internet habe ich gelesen, dass es möglich ist die Rechenzeit mit Hilfe von MEX S-functions zu verbessern, da bei Simulationsstart die S-Funktion als ausführbarer Code vorliegt.
Weiß vielleicht jemand von euch, ob mit Hilfe von MEX S-Funktionen die Rechenzeit wirklich schneller wird? Wenn ja kann mir jemand erklären wie ich diese MEX S-Function in C einfach erstellen kann? Wenn ich das richtig verstehe funtkioniert das irgendwie mit diesem Real-Time-Workshop.
Oder gibts eventuell noch andere Möglichkeiten schnellere Rechenzeiten zu erzielen.
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 20.10.2009, 07:55
Titel:
|
|
C MEX S-Functions können die Ausführung eines Simulink Modells z. T. sehr stark beschleunigen. Es kommt darauf an, dass man den Flaschenhals der Simulation kennt (Profiler) und den dann beschleunigt.
Es gibt sehr, sehr viele Möglichkeiten Simulink-Modelle zu beschleunigen. Ich schlage vor zunächst einmal mit den einfachsten Möglichkeiten zu beginnen.
1. Modell im Accelerator Modus laufen lassen
2. Prüfung, ob generierte Daten in Source Blöcken (Scope, To Workspace...) oder den Modellparametern überflüssig sind und speziell bei Speicherproblemen Teile dieser Daten herauszunehmen.
Andreas
|
|
|
torben83 |
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 19.10.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.10.2009, 14:40
Titel:
|
|
|
|
|
Hallo Andreas,
vielen dank für deine schnelle Antwort. Also ich habe jetzt im Accelerator-Mode simuliert und konnte schon einen kleinen Erfolg verzeichnen. Da ich bei meiner Diplomarbeit aber mit einem anderen Programm co-simulieren muss, reicht das beschleunigen noch nicht aus. Meinem Betreuer ist es noch zu langsam, er hat allerdings auch nicht wirklich Ahnung von Matlab/Simulink und fordert. Insofern bleibt mir auch nur die Möglichkeit im Internet nach Möglichkeiten zu suchen, die die Rechenzeit beschleunigen. Was ich jetzt mehrfach gelesen habe ist die Möglichkeit mit der S-function. Jedoch habe hierzu noch nicht wirklich in der Hilfe gelesen.
Ich habe erstmal geschaut, dass ich irgendwie was auf Deutsch dazu finde, da mir langsam bei meiner DA die Zeit wegläuft, aber so richtig erfolgreich war ich dabei nicht. Nun habe ich keine andere Möglichkeit, es sei denn jemand kennt Literatur in dem die S-function in C code auch für Neulinge gut beschrieben ist.
Zudem habe ich gehört, dass es mal eine Demo-Toolbox mit reinen zeitdiskreten Blöcken gab. Existiert die noch? Weiß das jemand?
Vielen Dank für eure Hilfe.
|
|
|
|
|
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.
|
|