Bonjour,
Je dois faire un programme matlab pour simuler l'éclairement des plusieurs LEDs. J'ai dans un premier temps calculer l'éclairement de chaque led. J'ai ainsi pu tracer l'intensité de celle-ci en fonction de l'angle d'ouverture.
Maintenant je dois simuler l'éclairement pour un certain nombre de led et ainsi obtenir une figure avec des niveaux de couleurs en fonction de l'intensité.
J'ai un problème avec l'implémentation de mon code, je n'arrive pas à obtenir ce que je désire.
Mon code est le suivant:
En vous remerciant d'avance pour votre aideCode:%% Calcul intensité des LEDS clc clear all close all % Constantes: Vl = 0.08; % V(lambda) h = 3; %Distance en cm % Caractéristiques de la led: Angle=[-90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90]; % Angle d'ouverture de la led (100°) I=[0 0 0.1 0.2 0.48 0.65 0.78 0.89 0.94 1 0.94 0.89 0.78 0.65 0.48 0.2 0.1 0 0]; % Intensité visuelle de la led en candela (cd) Ls = 40; % Largeur spectrale en nm %Calculs Eclairement: Iv=(I/(680*Vl))*10^6; % Intensité visuelle (microW/Sr) E1= (Iv.*cosd(Angle))./h.^2; % Eclairement (microW/cm^2) LED1= E1/Ls; % Eclairement (microW/cm^2 nm) % E2= (Iv.*cosd(Angle))./h.^2; % Eclairement (microW/cm^2) % LED2= E2/Ls; % Eclairement (microW/cm^2 nm) VMI®®®nLED1 = min(LED1) VmaxLED1 = max(LED1) % Affichage Eclairement en fonction de l'angle: figure plot(Angle,LED1,'b') title('Eclairement de la led') xlabel('Angle (°)') ylabel('Eclairement (microW/cm^2 nm)') grid legend('Distance: 3 cm') %% Intensité Led plaque clc s0 = [0]; teta = 50; %en degré R = h * tand(teta) x1 = [R]; y1 = [0]; x2 = [R/2]; y2 = [sqrt((R/2).^2 + R.^2)]; x3 = [R/2]; y3 = [- sqrt((R/2).^2 + R.^2)]; x4 = [- R/2]; y4 = [- sqrt((R/2).^2 + R.^2)]; x5 = [- R/2]; y5 = [sqrt((R/2).^2 + R.^2)]; x6 = [- R]; y6 = [0]; %X = [s0,s0;x1,y1]; %r = pdist(X,'euclidean') %Rayon %d = sqrt(r.^2 + D1.^2) %teta = atand(r/D1) VThetaDeg = 0:1:360; VTheta = VThetaDeg * pi / 180; X0 = s0 + R * cos(VTheta); Y0 = s0 + R * sin(VTheta); X1 = x1 + R * cos(VTheta); Y1 = y1 + R * sin(VTheta); X2 = x2 + R * cos(VTheta); Y2 = y2 + R * sin(VTheta); X3 = x3 + R * cos(VTheta); Y3 = y3 + R * sin(VTheta); X4 = x4 + R * cos(VTheta); Y4 = y4 + R * sin(VTheta); X5 = x5 + R * cos(VTheta); Y5 = y5 + R * sin(VTheta); X6 = x6 + R * cos(VTheta); Y6 = y6 + R * sin(VTheta); figure grid hold on plot(s0,s0,'*') plot(x1,y1,'*') plot(x2,y2,'*') plot(x3,y3,'*') plot(x4,y4,'*') plot(x5,y5,'*') plot(x6,y6,'*') plot(X0, Y0) plot(X1, Y1) plot(X2, Y2) plot(X3, Y3) plot(X4, Y4) plot(X5, Y5) plot(X6, Y6) %axis([-5 10 -5 5]) hold off %% clc angle_Led = [-90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90; 0 0 0.1 0.2 0.48 0.65 0.78 0.89 0.94 1 0.94 0.89 0.78 0.65 0.48 0.2 0.1 0 0]; xi = angle_Led(1,: ); yi = angle_Led(2,: ); Ang = -90:1:90; ycubic = interp1(xi, yi, Ang,'linear'); figure plot(xi,yi,'*', Ang,ycubic,'--'); grid Max = zeros(301,120); Min = zeros(301,120); Sim = zeros(301,120); r = sqrt((Iv*100)/(680*Vl*Ls*VmaxLED1))*1000; Nled = 27; %dH = (8)/length(LED1); % x = -4:dH:4-dH; % y = -4:dH:4-dH; % % % H = sqrt((x.^2)+(y.^2)); % theta = acosd(x./H); % [X,Y] = meshgrid(x,y); %LEDt = zeros(length(x),length(y)); for G = 1:75 for i= 1:30 Dist_led = 20+(i*1)-1; if Dist_led == 120 Nled = 24; elseif Dist_led == 133 Nled = 20; elseif Dist_led == 150 Nled = 15; elseif Dist_led == 200 Nled = 12; elseif Dist_led == 300 Nled = 6; elseif Dist_led == 400 Nled = 4; end posX0 = Dist_led*[0,0,0,0,0,0.9,0.9,0.9,0.9,1.8,1.8,1.8,1.8,1.8,2.7,2.7,2.7,2.7,3.6,3.6,3.6,3.6,3.6,4.5,4.5,4.5,4.5]; posY0 = Dist_led*[0,1,2,3,4,0.5,1.5,2.5,3.5,0,1,2,3,4,0.5,1.5,2.5,3.5,0,1,2,3,4,0.5,1.5,2.5,3.5]; Max(i,G) = 0; Min(i,G) = 0; Sim(i,G) = 0; for j = 1:400+1 for k = 1:600+1 I(j,k) = 0; for led = 1:Nled S = acosd(1/sqrt((j-posX0(led)).^2 + (k-posY0(led)).^2))+90 I(j,k) = I(j,k) + ycubic(1,S) * Iv*10^2 /((j-posX0(led)).^2 + (k-posY0(led)).^2) * 680*Vl*Ls / sqrt((j-posX0(led)).^2 + (k-posY0(led)).^2)+r.^2 end end end Max(i,G) = Max(i,G) + max(max(I(1:145,1:185))); Min(i,G) = Min(i,G) + min(min(I(1:145,1:185))); Sim(i,G) = Sim(i,G) + (Min(i,G)/Max(i,G))*100; end end B = max(max(Max)); Plan_Gray = I/B; figure imshow(Plan_Gray); axis ([0 600 0 400]); % Image en 3D figure meshc(I); axis ([0 600 0 400 0 50]); colorbar
-----