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 Aufstellen

 

Ferhan
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 25.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2015, 01:27     Titel: Funktion Aufstellen
  Antworten mit Zitat      
Hallo alle zusammen,

ich bin noch ein Anfänger was Matlab angeht, ich bin aber zur Zeit dabei es zu lernen, deshalb bräuchte ich eure Hilfe, folgendes:

Schreiben Sie nun eine Funktion getTemp.m, welche als Eingabeparameter die Kennfelddaten, das Drehmoment und die Drehzahl entgegennimmt und die zugehörige Temperatur aus dem Kennfeld ausliest. Nutzen Sie zum Auslesen den Befehl interp2.

Also bis jetzt habe ich das hier:

Code:
function[Temp] = getTemp(Dmoment,Dzahl,Kennfeld,M,n)


Wie soll ich den bitte eine Funktion schreiben, was am ende die Temperatur ausgibt?

Danke im voraus
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.10.2015, 09:34     Titel:
  Antworten mit Zitat      
Hallo,

dazu müsste man wissen, was Kennfeld ist. Sind es Temperaturdaten? Dann brauchst du eigentlich nur interp2 verwenden (mal die Doku dazu lesen), um dir die richtige Temperatur(en) herauszusuchen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 25.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2015, 11:10     Titel:
  Antworten mit Zitat      
Hi,

danke für die Antwort. Aber muss ich nicht eine Funktion aufstellen um überhaupt die Datei aufrufen zu können?

oder meinst du das so?

Code:
function [Temp] = getTemp(Dmoment,Dzahl,kennfeld,M,n)

Temp=interp2(Dmoment,Dzahl,kennfeld,M,n);


Weil im nächsten schritt, soll es geprüft werden mit den.Also M und n sind dann gegeben.

Ich verstehe es nicht so ganz ich bitteeeeeeee um Hilfe.

Danke im voraus
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.10.2015, 12:05     Titel:
  Antworten mit Zitat      
Hallo,

genau so meine ich das, auch wenn ich dann den Sinn der Aufgabe nicht ganz sehe.

Jetzt schreibst du von einer Datei. Enthält diese Datei die Kennfelddaten? Welches Format hat die Datei?

Je klarer du das Problem formulierst, desto leichter ist es, dir zu helfen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 25.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2015, 13:31     Titel:
  Antworten mit Zitat      
Also bei dem Code sehe ich auch kein Sinn.

Wie ich sagte ich bin noch ein Anfänger was Matlab angeht, ich habe nur die Fragt Zitiert.

Frage:
Schreiben Sie nun eine Funktion getTemp.m, welche als Eingabeparameter die Kennfelddaten, das Drehmoment und die Drehzahl entgegennimmt und die zugehörige Temperatur aus dem Kennfeldausliest. Nutzen Sie zum Auslesen den Befehl interp2.

-Testen Sie die Funktion getTemp.m mit den Werten M=11.75, n=250
und M=10, n=300.

Ich denke mal, dass es auch etwas geplottet werden soll.

Also um ehrlich zu sein ich verstehe es nicht.

Und der Code macht auch irgendwie kein Sinn. Ich denke es soll eher eine Funktion aufgestellt werden wie z.B

Kennfeld=M.^2+n.^2 ; oder sowas ähnliches

Weil im nächsten Schritt soll die Funktion ja getestet werden.

Oder wie würdest du es den machen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Ferhan
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 25.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2015, 16:56     Titel:
  Antworten mit Zitat      
Ich habe vergessen noch zu erwähnen, das ich noch das gegeben habe.
Es tut mir leid, dachte das gehört nicht dazu. Hab es gerade erst gesehen das drüber steht "benutze den Code". Aber Trotzdem bräuchte ich weiterhin eure Hilfe.
Ich denke mal dazu soll eine Funktion aufgestellt, welches dann die Temperatur ausliest.

Code:
% Drehmoment-und Drehzahlvektoren
Dmoment= linspace(2,400,5); %Nm
Dzahl= linspace(0,2000,5); %rpm
[M n] = meshgrid(Dmoment,Dzahl);
Kennfeld= (10*M.^2+n.^2)./(6*10^4)+20;
% Kennfeldvisualisieren
figure(1)
mesh(M,n,Kennfeld,'LineWidth',3);
title('Temperaturkennfeld')
xlabel('Drehmoment in Nm')
ylabel('Drehzahl in U/min')
zlabel('Motorgehäusetemperaturin °C')
% Löschen von M und n aus dem Workspace
clearM n
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

wenn du die Funktion so, wie du das oben getan hast, definierst, und das Skript ausführst, dann klappt das doch?
Code:
T = getTemp(Dmoment,Dzahl,Kennfeld, 11.75, 250)


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 25.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2015, 20:43     Titel:
  Antworten mit Zitat      
Nein Leider, ich denke das ich was falsch mache.

Code:

function [T] = getTemp(Dmoment,Dzahl,kennfeld,M,n)

T = getTemp(Dmoment,Dzahl,Kennfeld, 11.75, 250)

% Drehmoment-und Drehzahlvektoren
Dmoment= linspace(2,400,5); %Nm
Dzahl= linspace(0,2000,5); %rpm
[M n] = meshgrid(Dmoment,Dzahl);
Kennfeld= (10*M.^2+n.^2)./(6*10^4)+20;
% Kennfeldvisualisieren
figure(1)
mesh(M,n,Kennfeld,'LineWidth',3);
title('Temperaturkennfeld')
xlabel('Drehmoment in Nm')
ylabel('Drehzahl in U/min')
zlabel('Motorgehäusetemperaturin °C')
% Löschen von M und n aus dem Workspace
clear M n
 


so ? Oder wie soll ich genau vorgehen?

Danke Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.10.2015, 21:59     Titel:
  Antworten mit Zitat      
Hallo,

die Funktion muss in einem separaten Editor-Fenster definiert und abgespeichert werden, und zwar so, wie du das heute 11:10 beschrieben hast.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 25.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.10.2015, 00:13     Titel:
  Antworten mit Zitat      
Also im Editor:

Code:

function[T]=getTemp(Dmoment,Dzahl,Kennfeld,M,n)



M=11.75; %Nm
n=240; %U/min
T=interp2(Dmoment,Dzahl,Kennfeld,M,n);
 


Im Command Windows:
Code:

% Drehmoment-und Drehzahlvektoren
Dmoment= linspace(2,400,5); %Nm
Dzahl= linspace(0,2000,5); %rpm
[M n] = meshgrid(Dmoment,Dzahl);
Kennfeld= (10*M.^2+n.^2)./(6*10^4)+20;
figure(1)
mesh(M,n,Kennfeld,'LineWidth',3);
title('Temperaturkennfeld')
xlabel('Drehmoment in Nm')
ylabel('Drehzahl in U/min')
zlabel('Motorgehäusetemperaturin °C')
% Löschen von M und n aus dem Workspace
clear M n
getTemp(Dmoment,Dzahl,Kennfeld,11.75,240)
 


Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen
 
Ferhan
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 25.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.10.2015, 01:12     Titel:
  Antworten mit Zitat      
Hiii,

das mit der Temperatur Ausgabe hat geklappt, danke.

Aber jetzt ein neues Problem, jetzt soll neben der Tem. auch noch die Leistung P ausgegeben werden.

Fragestellung:
Schreiben Sie nun eine Funktion namens Leistung.m, welche als Eingabeparameter wiederum die Kennfelddaten, das Drehmoment und die Drehzahl entgegennimmt. Ausgabewerte sollen die Temperatur und die mechanische Leistung (P=M*2*pi*n/60) des Motors sein. Integrieren Sie in diese Funktion die Funktion getTemp.m.



Also im Editor habe ich das hier jetzt stehen:

Code:

function[P,T] = Leistung(Dmoment,Dzahl,Kennfeld,M,n)


M=10 ;
n=240;
P=(M*2*pi*n/60);

[T]=interp2(Dmoment,Dzahl,Kennfeld,M,n);
 


Wenn ich jetzt die Funktion Leistung Aufrufe gibt er mir nur die Leistung aus, aber Ausgegeben soll Temperatur und Leistung?
Wie kriege ich das den hin?

Außerdem was ist damit gemeint?
"Integrieren Sie in diese Funktion die Funktion getTemp.m."

Soll ich jetzt einfach die Funktion von getTemp kopieren und in die von Leistung einfügen? Oder wie soll ich das verstehen?

Daaaaaankeeeeeeeeee
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.10.2015, 08:45     Titel:
  Antworten mit Zitat      
Hallo,

wenn M und n Eingabeargumente sind, dann ist es nicht sinnvoll, sie nochmal zu belegen. Das sollte auch im Editor orange markiert werden.

Deine neue Funktion gibt zwei Ausgabeargumente zurück. Wenn du diese beide haben möchtest, musst du die Funktion auch mit zwei Ausgabeargumenten aufrufen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 25.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.10.2015, 18:33     Titel:
  Antworten mit Zitat      
Hi,

schau mal bitte, was ich hier falsch ist?

Code:

Editor1:

% Drehmoment-und Drehzahlvektoren
Dmoment= linspace(2,400,5); %Nm
Dzahl= linspace(0,2000,5); %rpm
[M,n] = meshgrid(Dmoment,Dzahl);
Kennfeld= (10*M.^2+n.^2)./(6*10^4)+20;
% Kennfeldvisualisieren
figure(1)
mesh(M,n,Kennfeld,'LineWidth',3);
title('Temperaturkennfeld')
xlabel('Drehmoment in Nm')
ylabel('Drehzahl in U/min')
zlabel('Motorgehäusetemperaturin °C')
% Löschen von M und n aus dem Workspace
clear M n


 



Code:

Editor 2:

function[T]=getTemp(Dmoment,Dzahl,Kennfeld,M,n)

M=10;
n=240;

[T]=interp2(Dmoment,Dzahl,Kennfeld,M,n);
 


Code:

Editor 3:
function[P,T] = Leistung(Dmoment,Dzahl,Kennfeld,M,n)

P=(M*2*pi*n/60);
   
[P,T]=interp2(Dmoment,Dzahl,Kennfeld,M,n);
 


Also beim Abrufen klappt es nicht.

Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 26.10.2015, 20:13     Titel:
  Antworten mit Zitat      
Hallo Ferhan,

Ich kann Dir nicht folgen. Was rufst Du ab und was funktioniert nicht?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Ferhan
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 25.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.10.2015, 20:37     Titel:
  Antworten mit Zitat      
Hi Jan,

das mit der Ausgabe hat sich erledigt, danke.

Trotzdem eine Frage:

Im nächsten Schritt soll eine Testfahrt simuliert werden. Erstellen Sie ein neues Skript namens Testfahrt.m. Rufen Sie über das Skript die Datei Fahrzyklus.mat auf.
Hinweis: load Fahrzyklus

Also ich habe ein neues Skript erstellt und abgespeichert, jetzt soll über das Skript die Datei Fahrzyklus.mat aufgerufen werden.
Wie kann ich vorgehen?

Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.