WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

generierten C-Code aus Statflow-Modell in matlab ausführen

 

matt123456789

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2015, 09:27     Titel: generierten C-Code aus Statflow-Modell in matlab ausführen
  Antworten mit Zitat      
Hallo,

ich möchte aus einem Statflow modell C-Code generieren und diesen anschließend mit dem gleichen Input in matlab ausführen lassen.

Das Statflowmodell ist hier ganz einfach gehalten. Ein Lichtschalter der an oder aus ist.
Der Input ist ein Puls der bei 1sec von 0 auf 1 geht. Dies entspricht der Betätigung des Schalters.

Die Generierung von C-Code habe ich per rechtsklick auf den Chart -> Code Generation-> Build System bewerkstelligt.

Nun wollte ich mit der mex function mir den generierten C-Code Matlab gefügig machen. Stoße aber hier auf Probleme. Dateien können nicht gefunden werden usw.

Vielleicht hat jemand das schon mal versucht so zu machen. Habe ein Bild und Datei des Modells beigefügt. Bin um jede Hilfe dankbar




Forumsbeispiel.mdl
 Beschreibung:

Download
 Dateiname:  Forumsbeispiel.mdl
 Dateigröße:  49.15 KB
 Heruntergeladen:  371 mal


matt123456789

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2015, 10:10     Titel:
  Antworten mit Zitat      
Habe bereits rausgefunden, dass ich wenn ich ein C-file -mex habe mit einer S-Funktion aufrufen muss

http://de.mathworks.com/help/simuli.....sic-c-mex-s-function.html

Aber wie ich den Stateflowcode nutze ist noch nicht klar, bzw einbette
 
matt123456789

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2015, 10:36     Titel:
  Antworten mit Zitat      
Ich möchte quasi testen ob der generierte Code dem Statflow gleich kommt
 
matt123456789

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2015, 10:52     Titel:
  Antworten mit Zitat      
Ich hab noch was raus gefunden.
Ich habe bei den code generation options das falsche target angeben
richtig ist rtwsfcn.tlc
allerdings beim übersetzen in ein mex file bekomme ich folgenden Fehler:

>> mex Chart_sf.c
Writing library for Chart_sf.mexw32
c:\temp\mex_jwrlet\chart_sf.obj .text: undefined reference to '_rtGetNaN'
c:\temp\mex_jwrlet\chart_sf.obj .text: undefined reference to '_rtGetNaNF'
c:\temp\mex_jwrlet\chart_sf.obj .text: undefined reference to '_rtGetInf'
c:\temp\mex_jwrlet\chart_sf.obj .text: undefined reference to '_rtGetInfF'
c:\temp\mex_jwrlet\chart_sf.obj .text: undefined reference to '_rtGetMinusInf'
c:\temp\mex_jwrlet\chart_sf.obj .text: undefined reference to '_rtGetMinusInfF'

C:\PROGRA~2\MATLAB\R2011B\BIN\MEX.PL: Error: Link of 'Chart_sf.mexw32' failed.

Error using mex (line 206)
Unable to complete successfully.



Woran könnte dies legen .bzw wie kann ich den fehler beheben?
 
matt123456789

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.09.2015, 10:20     Titel:
  Antworten mit Zitat      
könnte es evtl am Compiler liegen, dass dieser das nicht kann
verwende den standard vorinstallierten von Matlab LCC Compiler
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 28.09.2015, 13:13     Titel:
  Antworten mit Zitat      
Wenn hier seit Wochen keiner antwortet oder kommentiert, dann könnte es an verschiedenen Dingen liegen, aber immer neue Sachen nachzuschieben ist glaube ich nicht so hilfreich.

Bitte ein paar Randinformationen: Welches MATLAB Release auf welchem Betriebssystem, und dann 32 oder 64 Bit für beide.

Dann die Frage warum die Aufgabenstellung so ist wie sie ist: Wer hat denn Zweifel, dass der generierte Code das macht was er soll und warum soll der in MATLAB durchlaufende Fall ein Beweis dafür sein?

"rtwsfcn.tlc" generiert für eine C MEX S-Function. Definitionsgemäss läuft die nur unter Simulink, nicht unter MATLAB. Generell kann ich mir vorstellen, dass der Test auch überhaupt besser in Simulink anstelle MATLAB durchführbar ist.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 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.