Demande d'amélioration de mon code Matlab

Fermé
Edouardo - Modifié par Whismeril le 27/12/2014 à 14:02
Bonjour,
J'ai écrit un code Matlab (voir ci-dessous) qui calcule et représente pour un lieu donné et pour un jour et un mois précis de l'année l'éclairement solaire reçu dans ce lieu et la puissance PV qui peut être produite. Alors je veux faire la même chose mais pour toute l'année c-à-d je veux calculer et représenter l'énergie (en Wh) que l'on peut produire sur ce site durant toute l'année. Je sais que l'énergie produite durant une journée est égale à l'intégrale (entre le lever et le coucher du soleil) de la surface entre la courbe de puissance et l'axe des abscisses. Comment peut-on faire varier dans ce code le jour ainsi que le mois? Ya-t-il un moyen simple d'améliorer ce code ou bien faut-il reproduire le même code pour chaque jour de l'année ce qui serait très très fastidieux? J'ai essayé avec la boucle for, ça n'a rien donné de bon, mais je sais que c'est possible, seulement je ne sais pas comment m'y prendre. Moi je suis un bleu de la programmation et c'est pourquoi je vous tends la main.
Cordialement

%%*************** Modelisation des paramètres climatiques***********
%%
%------------------------------------------------------------------
clear all
clc
clf
%%
%***************** Lecture des données **************************
% D = input('jour : ');
% M= input('mois : ');
% G= input('Ensoleillement : ');
% Tmax=input('Température maximale : ');
% Tmin=input('Température minimale : ');
D=17;% Numéro du jour
M=1;%Le mois
G=700;% Ensoleillement
Tmax=45;% Temperature max
Tmin=25;% temperature min
%%
%******************** Equation des temps *************************
L=10.395; %longitude
a=36.698; %latitude
N=0.988*(D+30.3*(M-1));%numéro du jour dans l'année
h= 23.5 *cos((N+10)*pi/180);%Calcul de la déclinaison
Et=0.123*cos((N+87)*pi/180)-sin(2*(N+10)*pi/180)/6;%équation du temps
u=tan(h*pi/180)*tan(a*pi/180);
GMTsunrise=12-Et+(L-(acos(u)*180/pi))/15; %Lever du soleil
GMTsunset=12-Et+(L+(acos(u)*180/pi))/15; %Coucher du soleil
Dt=GMTsunset-GMTsunrise;%Longueur du jour
t = GMTsunrise:0.5:GMTsunset;
%%
%*********** Distribution de l'ensoleillement *********************
Imax = pi*G/(2*Dt);
Imod = Imax*sin(pi*(t -GMTsunrise)/Dt);
Tmod=(Tmax+Tmin)/2+((Tmax-Tmin)/2)*sin((2*pi*(t-GMTsunrise-1)/24));
%%**********************Traçage des courbes***********************
figure(1);
plot(t,Imod,'-m','LineWidth',1.5);grid on;
Xlabel('Heure','FontSize',8);
ylabel('Ensoleillement [W/m2]','LineWidth',8);
figure(2);
PPV=abs(3.33+0.0012.*(Imod/1000).*(Tmod+(Imod/40)-25)+3.35*((Imod/1000)-1))*12;
plot(t,PPV,'-m','LineWidth',1.5);grid on;
Xlabel('Heure','FontSize',8);
ylabel('Puissance PV [W]','FontSize',8);