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

Embedded MATLAB Function

 

Calle
Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.04.2012, 09:53     Titel: Embedded MATLAB Function
  Antworten mit Zitat      
Hallo,
ich habe ein Simulink Modell mit einem Embedded-MATLAB-function Block. in dieser Funktion rufe ich eine weitere FUnktin auf.
Es ist nicht wirklich eine FUnktion. ich habe mit der Curve-Fitting-Toolbox eine Datei erstellt, mit der ich bei gegebnene x-wert einen y-wert bekomme. Aber das aufrufen ist wie eine funktion.
Allerdings kommt eine Fehlermeldung
Code:
Command-duality is not supported.

Function 'Embedded MATLAB Function2' (#292.69.86), line 3, column 1:
"load temperature;"
Launch diagnostic report.


Die FUnktion fängt wie folgt an:
Code:
function [T2,P2] = condenser (T1,P1,m,cp_l,cp_g,dH,T2s,Q_cmax)
%#eml
load temperature; load pressure;
Ts_c =  temperature(P1);            
x1 = m*cp_g*(T1-Ts_c);            
if T1>=T2s
...
...
...

temperature und pressure sind dabei die zwei dateien, die mit der Curve-fitting-Toolbox erstellt wurden.

Wenn ich die Funktion aus MATLAB aus starte, funktioniert das ohne Probleme.

Meine Fragen lauten:
kann ich keine funktion in einer funktion im embedded-matlab-function aufrufen? (Wenn das eine Funktion ist)
wenn ja, wieso bekomme ich fehler?
was mache ich falsch?

mfg
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 09.04.2012, 11:08     Titel:
  Antworten mit Zitat      
Soweit ich die Doku verstanden habe, ist der Funktionsaufruf nicht möglich

Zitat:

Unsupported MATLAB Features

Calling out to functions on the path (except for simulation)


Es ist hier noch ein Bsp. aufgeführt, in der eine eigene mean Funktion innerhalb des Blocks verfasst und aufgerufen wird. Allerdings bezweifel ich, dass dies für deine Funktion ebenfalls geht. Der Befehl load ist vermutlich schon ein Fallstrick...in dem Block sind nur einfache Befehle und Operationen möglich.
Private Nachricht senden Benutzer-Profile anzeigen
 
Calle
Themenstarter

Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.04.2012, 11:34     Titel:
  Antworten mit Zitat      
Das ist natürlich schade. Gibt es denn noch eine Andere möglichkeit, mit der ich eine Funktion in Simulink simulieren kann? Habe irgendwie keinen anderen block dazu gefunden.
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 09.04.2012, 11:44     Titel:
  Antworten mit Zitat      
Hast du denn mal versucht deine Funktion mit in den Block zu packen, so dass sie dort aufgerufen werden kann? Ich habe mal noch in der Liste der möglichen Matlab Fct. für diesen Block geschaut...load ist da nicht dabei. Das sollte ja wohl aber auch nicht das Problem sein. Dann übergibst du die beiden Vektoren/Signale eben mit an den emb. matlab fnc Block.
Private Nachricht senden Benutzer-Profile anzeigen
 
Calle
Themenstarter

Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.04.2012, 12:12     Titel:
  Antworten mit Zitat      
Es ist ja wie gesagt nicht wirklich eine Funktion. Ich habe von einer Kurve die Eingangs und Ausgangsdaten gegeben. Damit habe ich in der Curve-Fitting-Toolbox mit der Smoothing-Spline eine Datei erstellt. Wenn ich die Datei öffne, steht da nichts drinn. Aber wenn ich das wie eine Funktion aufrufe
Code:
T=temperature(5)

bekomme ich den Ausgangswert.
Von daher kann ich die Funktion nicht mit hineinpacken. Dann muss ich mir doch etwas anderes überlegen. ABer ganz vielen Dank schon einmal für deine Hilfe
Private Nachricht senden Benutzer-Profile anzeigen
 
Calle
Themenstarter

Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2012, 04:03     Titel:
  Antworten mit Zitat      
Habe es gelöst bekommen.
Für alle die es Interressiert:
Ich habe mir für die Werte eine neue Funktion gesucht (Power), da dieser aber nicht für negative x-werte eine Funktion erstellen kann, habe ich dieses zunächst ausgelassen. Da es aber keine andere Wahl (für mich) gab, habe ich diese Funktion einfach von hand umgestellt und siehe da, es funktioniert.
Diese Funktion kann ich nun auch aus einen embedded-MATLAB-function Block aufrufen. Dazu muss in der Funktion allerdings noch
Code:

eingefügt werden, damit es mit der embedded-MATLAB-function lauffähig ist.
Ich danke aber trotzdem für deine Hilfe.
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.