Hallo:)
Ich möchte in ein bereits bestehendes Motorkennfeld mit Volllastkennlinie und Betriebspunkt das Verbrauchskennfeld einzeichnen.(bei betätigen eines push buttons)
zunächst mal meine Ausgangssituation:(Volllastkennlinie und Betriebspunkt)
Code:
% --- Executes on button press in pushbutton_motor. function pushbutton_motor_Callback(hObject, eventdata, handles) % hObject handle to pushbutton_motor (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
axes(handles.grafik_motor)
x = evalin('base','n_motor_volllast(1:16)');
y = evalin('base','m_motor_volllast(1:16)');
x1 = evalin('base','m_motordrehzahl');
y1 = evalin('base','m_motormoment');
plot(x, y, x1, y1)
Hey, sorry für die ungenaue beschreibung.
An sich funktionieren meine plots einwandfrei. Ich möchte die Volllastkennlinie und ein Verbrauchskennfeld in die gleiche axes einbauen. Beim Einbau in den Gui (Darstellung der Grafik durch Drücken eines pushbuttons) funktioniert es jedoch nicht mehr und es wird nur noch die Vollastkennlinie dargestellt.
Meine funktionierende Grafik in einem extra Fenster sieht so aus
Code:
figure
x = evalin('base','n_motor_volllast');
y = evalin('base','m_motor_volllast');
x1 = evalin('base','m_motordrehzahl');
y1 = evalin('base','m_motormoment');
plot(x, y,x1,y1) hold on
% Drehzahl in [1/min]
n_be=....
% Moment in [Nm]
m_be=....
% spezifischer Kraftstoffverbrauch in [g/kWh]
be=....
[xi,yi]=meshgrid(500:10:2200,-300:100:2400);
beff=griddata(n_be,m_be,be,xi,yi);
contour(xi,yi,beff,[500:10:2200,-300:10:2400]) ;
grid on
xlabel('Drehzahl [n]=1/min') ylabel('Moment [M]=Nm') legend('Volllastkennlinie','Betriebspunkt')
function pushbutton_motor_Callback(hObject, eventdata, handles) % hObject handle to pushbutton_motor (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.grafik_motor)
.
.
.
.??????
.
.
.
Die wird überhaupt nicht angezeigt.
ich bekomm es aber auch nicht hin nur das Verbauchskennfeld ....
Code:
% Drehzahl in [1/min]
n_be=....
% Moment in [Nm]
m_be=....
% spezifischer Kraftstoffverbrauch in [g/kWh]
be=....
[xi,yi]=meshgrid(500:10:2200,-300:100:2400);
beff=griddata(n_be,m_be,be,xi,yi);
contour(xi,yi,beff,[500:10:2200,-300:10:2400]) ;
es funktioniert nicht. bzw es wird nur die volllastkennlinie dargestellt.
die Überlagerung hat funktioniert, wenn ich sie ganz normal in einem leeren m-file ausführe. in Kombination mit dem gui funktioniert es nicht.
function pushbutton_motor_Callback(hObject, eventdata, handles) % hObject handle to pushbutton_motor (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.grafik_motor)
x = evalin('base','n_motor_volllast');
y = evalin('base','m_motor_volllast');
x1 = evalin('base','m_motordrehzahl');
y1 = evalin('base','m_motormoment');
plot(handles.grafik_motor,x, y,x1,y1) xlabel(handles.grafik_motor,'Drehzahl [n]=1/min') ylabel(handles.grafik_motor,'Moment [M]=Nm') legend(handles.grafik_motor,'Volllastkennlinie','Betriebspunkt') hold(handles.grafik_motor,'on') grid(handles.grafik_motor,'on')
% n_be = Drehzahl in [1/min] % m_be = Moment in [Nm] % be = spezifischer Kraftstoffverbrauch in [g/kWh]
der griddata-Befehl ist so nicht sinnvoll, da das Berechnen der Werte ja nichts mit der Grafik zu tun hat. Da würde ich auch eine entsprechende Fehlermeldung erwarten.
--> das erste Argument weglassen
heißen. Da du die Handles-Struktur aber ja nicht veränderst, ist die Zeile so oder so überflüssig.
Bei weiteren Problemen bitte angepassten Code oder, noch besser, lauffähiges Testbeispiel, an dem das Problem nachvollziehbar ist, zur Verfügung stellen.
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
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.