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

Funktion in einer embeded matlab function aufrufen,simulink

 

matthieu
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 18.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.05.2009, 16:29     Titel: Funktion in einer embeded matlab function aufrufen,simulink
  Antworten mit Zitat      
Hi,
ich möchte in Simulink eine Funktion (ein M-File) aufrufen in welchem weitere unterfunktion enthalten sind. Habe ien bisschen in den Blöcken geguckt und die Matlab embeddet function entdeckt und da meine Funktion welche andere Funktionen aufruft eingeschrieben. Wenn ich die Simulation starten möchte bekomme ich allerdings folgende Fehlermeldung die mich nicht weiterbringt:

The function failed to compile, if you intended to compile the file use %#eml directive in 'D:/Eigene Dateien/MATLAB/Matlabfunktionen/1000/zehnFY3.m', however if you wish to call out to matlab use eml.extrinsic('zehnFY3') before calling the function.

Function 'Embedded MATLAB Function' (#30.130.140), line 8, column 7:
"zehnFY3(T)"

So, hier wird auf eml.extrinsic... hingewiesen. In der Hilfe hab ich auch schon nachgeschaut,funktion find, werd aber nicht ganz schlau daraus:
"
function y = foo

eml.extrinsic('find');

x = ones(4);
y = x;
y = find(x);
"


Wie schreibe ich beispielsweise eine Funktion in der embedded: [Fx1]=zehnFX1(T); um, damit sie in Simulink aufgerufen wird?

EDIT: SO sehen meine zur Zeit am Anfang in die embedded geschriebene Funktionen aus:
function F =Eingangsvektor(M,T)

[Fx1]=zehnFX1(T);
[Fx2]=zehnFX2(T);
[Fx3]=zehnFX3(T);
[Fy1]=zehnFY1(T);
[Fy2]=zehnFY2(T);
[Fy3]=zehnFY3(T);
[Mz1]=zehnMz1(T);
[Mz2]=zehnMz2(T);
[Mz3]=zehnMz3(T);

....
Private Nachricht senden Benutzer-Profile anzeigen


matthieu
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 18.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2009, 15:25     Titel:
  Antworten mit Zitat      
So hab meine Funktionen etwas verändert. Offensichtlich muss man jede einzelne Funktion in der embedded function seperat deklarieren mit:
%#eml
bzw. mit
eml.extrinsic('spline'), für Funktionen die man nicht selbst geschrieben hat sondern aus Matlab kommen.
Ein Problem weniger Smile.
Jetzt hab ich nur noch ne allgemeine Frage bei einer Fehlermeldung, wo ich nicht weiß was ich da machen kann:

Expected either a logical, char, int, fi, single, or double. Found a MATLAB type. MATLAB types are returned from calls to the MATLAB interpreter and are not supported inside expressions. They may be used on the right-hand side of assignments and as arguments to MATLAB calls.

Function 'zehnfx1.m' (#27.4471.4487), line 15, column 4:
"spline(t,FX,Fx1)"

Hier wird mir erklärt was er für ein Problem hat, aber ich weiß nicht wie ich es lösen kann. Offensichtlich ist ein output einer Funktion aus Matlab kein single double oder sonstwas Typ. Was kann ich hier machen?
Private Nachricht senden Benutzer-Profile anzeigen
 
matthieu
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 18.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2009, 17:24     Titel:
  Antworten mit Zitat      
Vielleicht mag sich einfach mal einer mein Modell anschaun und gucken ob das Problem vom Programm überhaupt richtig beschrieben ist bzw. ich es falsch interpretiert habe.
Siehe Anhang
Grüßé

Workspace.zip
 Beschreibung:

Download
 Dateiname:  Workspace.zip
 Dateigröße:  472.37 KB
 Heruntergeladen:  676 mal
Unterfunktionen.zip
 Beschreibung:

Download
 Dateiname:  Unterfunktionen.zip
 Dateigröße:  17.56 KB
 Heruntergeladen:  617 mal
Nockenwelle.mdl
 Beschreibung:

Download
 Dateiname:  Nockenwelle.mdl
 Dateigröße:  53.77 KB
 Heruntergeladen:  778 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
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.