|
|
Funktion in einer embeded matlab function aufrufen,simulink |
|
matthieu |
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 18.04.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.05.2009, 15:29
Titel: Funktion in einer embeded matlab function aufrufen,simulink
|
|
|
|
|
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);
....
|
|
|
|
|
matthieu |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 18.04.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.05.2009, 14:25
Titel:
|
|
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 .
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?
|
|
|
matthieu |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 18.04.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.05.2009, 16:24
Titel:
|
|
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üßé
Beschreibung: |
|
Download |
Dateiname: |
Workspace.zip |
Dateigröße: |
472.37 KB |
Heruntergeladen: |
718 mal |
Beschreibung: |
|
Download |
Dateiname: |
Unterfunktionen.zip |
Dateigröße: |
17.56 KB |
Heruntergeladen: |
657 mal |
Beschreibung: |
|
Download |
Dateiname: |
Nockenwelle.mdl |
Dateigröße: |
53.77 KB |
Heruntergeladen: |
818 mal |
|
|
|
|
|
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 - 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.
|
|