Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
close all
clear all
Resposividad total
Rpd = 22;
% nA/lux
% Recordar: lux = lumen/m^2 -> lumen = lux*m^2
% Asunciones
% r = 1, el fotodiodo tiene un diagrama de recepción circular. Aplicado a
% una antena, es como decir que es isotrópica.
%
% ---- Concentrador ----- (Opcional)
% Asunción ns = 1; % el filtro deja pasar el 100% de la luz que entra
%
% Field of View
FoV = 45*pi/180; % 40º (en radianes) de Field-of-View
% Ganancia derivada del uso de un concentrador
g_FoV = 1/(sin(FoV)^2);
Iv = 12000;
% Lente para concentrar el flujo lumínico
phi_05 = 60;
% Parámero m de la radiación Lambertian
m= -log(2)/log(cos(phi_05*pi/180));
% Vector de radiación (x, y, z) [Apunta hacia abajo]
U = [0 0 -1];
% ------------------------- %
Número de LEDs
L = 12;
% Posición de los LEDs
LED_pos = [3, 4, 8;
7, 4, 8;
5, 8, 8;
5, 12, 8;
3, 16, 8;
7, 16, 8;
13, 4, 8;
17, 4, 8;
15, 8, 8;
15, 12, 8;
13, 16, 8;
17, 16, 8];
%Lumens radiados COB18x18 (Por ejemplo)
Iv = 12000;
% Lente para concentrar el flujo lumínico (semiángulo)
phi_05 = 60;
% Parámero m de la radiación Lambertian
m= -log(2)/log(cos(phi_05*pi/180));
% Vector de radiación (x, y, z) [Apunta hacia abajo]
U = [0 0 -1];
grano define la precisión de nuestro mapa, cuanto más fino, más larga es
la simulación. Por ejemplo, si grano = 0.1, más preciso pero más lento
grano = 0.1;
[Ax,Ay] = meshgrid([0:grano:20]);
% Altura de los receptores/mesa de trabajo(1 metro)
Zplano = 1;
% Esta variable guarda los lux aportados por cada luminaria
luxLed = zeros(1,L);
% Esta variable guarda el canal en cada punto (x,y) de nuestro mapa
Canal_Led1 = zeros(length(Ax),length(Ay));
Canal_Led2 = zeros(length(Ax),length(Ay));
Canal_Led3 = zeros(length(Ax),length(Ay));
Canal_Led4 = zeros(length(Ax),length(Ay));
Canal_sum = zeros(length(Ax),length(Ay));
for x = 1:length(Ax)
tiempo = [x length(Ax)];
for y = 1:length(Ay)
pos_usu = [Ax(x,x) Ay(y,y) Zplano];
% Consideraos la contribución de todos los LEDs
for led = 1:L
% Distancia entre LED y punto considerado
d_led = sqrt(sum((LED_pos(led,:) - pos_usu).^2));
% Vector entre la posición del led y el punto considerado
V = LED_pos(led,:) - pos_usu;
% Canal en nA/lumen
% NOTA: Tan solo es necesario multiplicar por el flujo
% transmitido por el LED para obtener los nA a la salidad del
% fotodiodo(jugar con la fórmula de canal, vereís que es facil)
% ---- SIN CONCENTRADOR ----%
% h(1,led) =
Rpd*((m+1)/(2*pi*(d_led^2)))*abs(cos(phi)^m)*abs(cos(psi));
figure(101)
surf(Ax,Ay,Canal_Led1./(Canal_Led2 +Canal_Led3 +
Canal_Led4),'EdgeColor','none')
colorbar
xlabel('Longitud X [m]')
ylabel('Longitud Y [m]')
zlabel('Relación Señal-Interferencia [dB]')
figure(2)
surf(Ax,Ay,Canal_Led2,'EdgeColor','none')
colorbar
xlabel('Longitud X [m]')
ylabel('Longitud Y [m]')
zlabel('Canal óptico [nA/lumen]')
figure(201)
surf(Ax,Ay,Canal_Led2./(Canal_Led1 +Canal_Led3 +
Canal_Led4),'EdgeColor','none')
colorbar
xlabel('Longitud X [m]')
ylabel('Longitud Y [m]')
zlabel('Relación Señal-Interferencia [dB]')
figure(3)
surf(Ax,Ay,Canal_Led3,'EdgeColor','none')
colorbar
xlabel('Longitud X [m]')
ylabel('Longitud Y [m]')
zlabel('Canal óptico [nA/lumen]')
figure(4)
surf(Ax,Ay,Canal_Led4,'EdgeColor','none')
colorbar
xlabel('Longitud X [m]')
ylabel('Longitud Y [m]')
zlabel('Canal óptico [nA/lumen]')
figure(5)
surf(Ax,Ay,Canal_sum,'EdgeColor','none')
colorbar
xlabel('Longitud X [m]')
ylabel('Longitud Y [m]')
zlabel('Canal óptico [nA/lumen]')
%Histograma
figure(501)
precision = 50; % Histograma de 50 barras (también variable)
[P, X] = hist(Canal_sum(:),precision);
% NOTA: utilizar histfit para analisis
plot(X, P/sum(P), 'lineWidth', 2);
grid on
hold on % <--- Aqui representamos solo una, pero lo útil es comparar
configuraciones
ylabel('Función de densindad de probabilidad')
xlabel('Canal [nA/lumen]')
figure(502)
[Cuartil, Dlux] = ecdf(Canal_sum(:));
plot(Dlux, Cuartil, 'lineWidth', 2)
hold on
grid on % <--- Aqui representamos solo una, pero lo útil es comparar
configuraciones
xlabel('Canal [nA/lumen]')
ylabel('Función de distribución acumulativda')
Media = mean(Canal_sum(:))
Desviacion = std(Canal_sum(:))