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

m-File in Simulink einbinden

 

Variable_87
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 07.03.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.03.2015, 14:38     Titel: m-File in Simulink einbinden
  Antworten mit Zitat      
Hallo,

ich bin ein Neuling was Matlab / Simulink angeht und weis nicht weiter Sad .
Ich möchte mir ein kleines Modell aufbauen, welches mir 2 Kräfte und ein Moment an einem Reifen eines Fahrzeuges berechent.

Dazu habe ich bereits ein mFile mit den Gleichungen und zugehörigen Variablen (welche der Funktion übergeben werden) geschrieben.

Nun meine Frage:
Gibt es in Simulink einen Funktionsblock in dem ich dieses mFile hinterlegen kann und welcher mir dann, abhängig von den Eingangsvariablen, ein Ergebnis liefert?

Habe schon den Matlab function Block versucht, jedoch kommen nur Fehlermeldungen wie fehlender compiler usw.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.03.2015, 18:15     Titel:
  Antworten mit Zitat      
Hallo,

soll das m-File in jedem Simulationsschritt ausgeführt werden oder nur einmalig?
Falls einmalig, dann sind die Model Callbacks der geeignete Weg.
Falls in jedem Simulationsschritt (bzw. so oder so), solltest du dich daran machen, die Fehlermeldungen zu beheben.

Hast du einen unterstützten Compiler installiert?
http://de.mathworks.com/support/sysreq/previous_releases.html
(das passende Release auswählen und dann den Link in der letzten Spalte)

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Variable_87
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 07.03.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.03.2015, 20:00     Titel:
  Antworten mit Zitat      
Hallo Harald,

ja, dass File sollte in jedem Simulationsschritt ausgeführt werden.
Ich werde jetzt erstmal den dazugehörigen Compiler installieren.

Was macht dieser eigentlich ? Muss ich die Funktion im m-File dann nochmal auf C++ umschreiben oder greift der Simulink-Funktionsblock selbstständig auf den Compiler zu ?

Gruß Sandro
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.03.2015, 20:14     Titel:
  Antworten mit Zitat      
Hallo,

nein, der Code im MATLAB-Function Block wird automatisch in C-Code konvertiert.
Solltest du in deinem Code Funktionen verwenden, die nicht für die Codegenerierung unterstützt werden, kannst du sie als extrinsisch deklarieren.
http://de.mathworks.com/help/simulink/slref/coder.extrinsic.html

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Variable_87
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 07.03.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2015, 12:50     Titel:
  Antworten mit Zitat      
Hallo,

ich habe nun einen passenden Compiler installiert und mit mex -setup in Matlab ausgewählt.

Da ich erst einmal verstehen wollte, wie der Matlab function Block arbeitet, habe ich das Beispiel von Mathworks nachgebaut:
http://de.mathworks.com/help/simuli.....nction-block.html#bruwcsp

Beim Code kompilieren (Build Modell->Build) erscheinen nun wieder Fehlermeldungen u.a.
"Unable to locate a C-compiler required by Stateflow and MATLAB Function blocks.
Use 'mex -setup' to select a supported C-compiler".

Hab ich bei der Wahl des Compilers noch etwas übersehen oder warum erscheint diese Meldung?

Gruß
Sandro
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.03.2015, 19:07     Titel:
  Antworten mit Zitat      
Hallo,

wenn du mex -setup schon laufen hast lassen, kann ich auch nicht weiterhelfen. Vielleicht mal an den Technischen Support von MathWorks wenden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Variable_87
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 07.03.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2015, 20:24     Titel:
  Antworten mit Zitat      
Hallo,

alles klar, dann werde ich dort mal mein Glück versuchen. Trotzdem besten Dank für die Tipps.

Gruß
Sandro
Private Nachricht senden Benutzer-Profile anzeigen
 
rien

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.03.2015, 11:14     Titel:
  Antworten mit Zitat      
Probier erst mal eine Matlab Level 1 S-Function, das Ding kann nicht wirklich viel aber es ist einfach zu erstellen.
Bei dieser müssen auch nicht sämtliche verwendeten Funktionen aufgezählt werden Wink

Je nach Windows und verwendeter Matlab Version kommt es gerne mal vor, dass Matlab keine C-Compiler findet.
 
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 - 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.