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

Probleme bei for Schleife + Plot

 

ichbindu
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 10.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2010, 22:54     Titel: Probleme bei for Schleife + Plot
  Antworten mit Zitat      
Hallo, bei der Erweiterung meines Programms habe ich ein kleines Problem.

Warum funktioniert die Plot Funktion zwischen (bei mir Aufstellwinkel) 30:40 nicht??
sollte ein Diagramm werden!

Code:

Abweichung=0;
Reflexionsfaktor=0.2;
Laengengrad=14.133;
Breitengrad=48.05;
idx=0;
Direkt=xlsread('Stundenwerte Kremsmünster.xlsx','I6:I8765');% Einlesen der Stundenwerte EDir hor
D=xlsread('Stundenwerte Kremsmünster.xlsx','H6:H8765');% Einlesen der Stundenwerte EDiff hor
G=xlsread('Stundenwerte Kremsmünster.xlsx','G6:G8765');% Einlesen der Stundenwerte EGlob hor

%Berechnung der Direktstrahlung

for Aufstellwinkel=[30:1:40];

  for Tagesnr=[1:1:365];

        J=360*(Tagesnr)/365;
        Sigma=(0.3948-23.2559*cosd(J+9.1)-0.3915*cosd(2*J+5.4)-0.1764*cosd(3*J+26));
        Zgl=(0.0066+7.3525*cosd(J+85.9)+9.9359*cosd(2*J+108.9)+0.3387*cosd(3*J+105.2));

        for MEZ=[1/24:1/24:24/24];
           
            UTC=MEZ-1/24;
            WOZ=UTC*24+Laengengrad/15+Zgl/60;
            Tau=(WOZ-12)*15;
            Sonnenhoehe=asind(sind(Breitengrad)*sind(Sigma)+cosd(Breitengrad)*cosd(Sigma)*cosd(Tau));
            sinAzimut=cosd(Sigma)*sind(Tau)/cosd(Sonnenhoehe);
            Azimut=asind(sinAzimut);
            Azimutumrechnung=180+Azimut;
         
            s=[cosd(Azimutumrechnung)*cosd(Sonnenhoehe),-sind(Azimutumrechnung)*cosd(Sonnenhoehe),sind(Sonnenhoehe)]';
           
           
            n=[-cosd(Abweichung)*sind(Aufstellwinkel),sind(Abweichung)*sind(Aufstellwinkel),cosd(Aufstellwinkel)]';
           
            Einfallswinkel=acosd(dot(s,n));
            RB=(cosd(Einfallswinkel))/(sind(Sonnenhoehe));
           
            idx=idx+1;
            Direktanteil(idx)=RB*Direkt(idx);
           
     
   
            DIR=sum(Direktanteil);
 
%Berechnung Diffustrahlung
            RD=(1/2+1/2*cosd(Aufstellwinkel));
            Diffusanteil=RD*D;
            DIF=sum(Diffusanteil);
 
%Berechnung der vom Boden reflektierten Strahlung
            RR=(1/2-1/2*cosd(Aufstellwinkel));
            Reflexionsanteil=G*Reflexionsfaktor*RR;
            REF=sum(Reflexionsanteil);      
 
%Einstrahlungssumme
            EINSTRAHLUNGSSUMME=DIR+DIF+REF;
        end
           
     end

hold on;
grid on;
plot(Aufstellwinkel,EINSTRAHLUNGSSUMME,'*')

end
 


Danke für eure Tipps!! und wenn möglich für die Erklärung!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.11.2010, 23:16     Titel:
  Antworten mit Zitat      
Hallo,

etwas konkreter solltest du schon werden.

Inwiefern funktioniert es nicht? Gibt es eine Fehlermeldung? Ein unerwartetes Verhalten?

Ein Problem kann ich schonmal ausmachen: die Variable EINSTRAHLUNGSSUMME wird in jedem Schleifendurchlauf überschrieben. Es müsste wohl so aussehen:

for I = 1 : length(Aufstellwinkel)
EINSTRAHLUNGSSUMME(I) = Berechnung in Abhängigkeit von Aufstellwinkel(I)
end

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 10.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2010, 15:20     Titel:
  Antworten mit Zitat      
Hallo, vielen dank für die Antwort!

Also die Fehlermeldung lautet folgen:
??? Attempted to access Direkt(8761); index
out of bounds because numel(Direkt)=8760.

Error in ==> init at 41
Direktanteil(idx)=RB*Direkt(idx);


Das Diagramm wird zwar gezeichnet. Aber nur für den esten Wert (Aufstellwinkel=30)

EINSTRAHLUNGSSUMME ist nur ein einzelner Wert einer Jahressumme. Darum denke ich ,das diese stimmt mit der Überschreibung.

Das Programm funktioniert zwar mit einem Aufstellwinkel, aber nicht wenn ich den Aufstellwinkel variiere!

So long, danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.11.2010, 18:03     Titel:
  Antworten mit Zitat      
Hallo,

die Fehlermeldung ist an sich selbsterklärend. Vielleicht hilft es dir da, mal den Debugger zu verwenden.

Meine Vermutung: du müsstest idx innerhalb der ersten Schleife wieder auf 0 zurücksetzen, da du sonst 11*8760 Iterationen machst statt nur 8760.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 10.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.01.2011, 11:40     Titel:
  Antworten mit Zitat      
Danke!
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.