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

Problem mit Subplot

 

robben
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 07.06.10
Wohnort: München
Version: ---
     Beitrag Verfasst am: 28.06.2010, 11:47     Titel: Problem mit Subplot
  Antworten mit Zitat      
Hallo, momentan gibt mein Programm ein Diagramm aus in dem ich 2 Plots habe! Mit Subplot habe ich versucht jede Funktion einzeln zu plotten, funktioniert allerdings nicht! Kann mir wer sagen was ich falsch gemacht habe:

Code:
global g rho cw m Am;
H0  = 3000;  % height of plane meter
H1  = 1500;  % opening height parachut meter
H=[H1,H0];
Am  = 0.5;   % area man meter^2
Ap  = 30;    % area parachut meter^2
A   = Am+Ap; % whole area
m   = 85;    % weight parachutist in kg
cw = 0;
cw_2  = 1.3;   % cw-value
rho = 1.2;   % air density kg/m^3
g   = 9.81;  % acceleration gravity
a1  = (cw*Am*rho)/(2*m); % air resitance before p. opens
a2  = (cw*A*rho)/(2*m); % air resitance aftzer p. opens


%Phase 1 des Sprungs und Startbedingungen festlegen
tstart=0
tfinal=100
y0=[0;0]
refine=4 %liefert eine Verfeinerung der Ausgabewerte via Interpolation

%Ausgabevariablen festlegen
tout = tstart;
yout = y0.';
teout = [];
yeout = [];
ieout = [];

for i=1:2 %Beginn der Schleife, 2 Durchläufe weil 2xLösung DGL
   
    %options gibt bestimmte Einstellungen für die DGL-Lösung vor
    %Events legt fest, dass Event Flaggs beachtet werden
    %OutputFcn wurde nicht berücksichtigt
    %OutputSel gibt Werte zwischen Durchgang 1 u. 2 der Schleife aus
    %Refine (siehe oben)
    options = odeset('Events',@(t,y)events(t,y,H(i)),'OutputFcn', @odeplot,...
                 'OutputSel',[1,2],'Refine',refine);
% Differentialgleichung bis ersten "Event" lösen
  [t,y,te,ye,ie] = ode23(@fallschirmdgl,[tstart tfinal],y0,options);
  if ~ishold %Wenn "Event" dann....
    hold on  %...wird Gleichung für gebremsten Fall gelöst!
  end
   
 % Ausgang wird akkumuliert  
  nt = length(t);
  tout = [tout; t(2:nt)]; %tout, yout = Bahnen zwischen Events
  yout = [yout; y(2:nt,:)];
  teout = [teout; te]; %Zeitmomente der Events + zugehörige Lösung wird akkumuliert
  yeout = [yeout; ye]; %siehe oben
  ieout = [ieout; ie];   %sihe oben
 
 
%Endwerte der ersten Funktion in zweite einsetzen
y0(1) = y(nt,1);
y0(2) = y(nt,2);

cw=cw_2; %CW-Wert ändert sich wg. Fallschirmöffnung
tstart = t(nt);
end
%Achsenbeschriftung und Plotten
subplot (2,1,1)
plot(teout,yeout(:,1),'ro');
subplot (2,1,2)
plot(teout,yeout(:,2),'ro');
title('Fallschirmsprung');
hold off
odeplot([],[],'done');


Danke!
Private Nachricht senden Benutzer-Profile anzeigen


Caidence
Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 01.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.06.2010, 12:03     Titel:
  Antworten mit Zitat      
Liegt es vllt. einfach nur am fehlenden 'figure' vor den subplots?
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 28.06.2010, 12:04     Titel:
  Antworten mit Zitat      
Wie sieht die Ausgabe derzeit aus?
Fehlermeldungen? Wenn ich nur die Plot-Kommandos ausführe, dann erstellt er zwei Graphen. Vll liegt es an yeout und teout? Wie sehen diese aus (mit "whos" checken)?
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
robben
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 07.06.10
Wohnort: München
Version: ---
     Beitrag Verfasst am: 28.06.2010, 12:09     Titel:
  Antworten mit Zitat      
er bringt mir keine Fehlermeldung sonder plottet mir anfangs beide in einen Plot, dieses Fenster verschwindet dann sofort und er macht mir zwei Fenster in denen lediglich die Zwei Anfangspunkte markiert sind! Ich meine es könnte daran liegen dass die Punkte dazwischen live geplottet werden (siehe odeset).... Lieg ich da richtig? Wie kann ich das Problem lösen?
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 - 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.