Beruflich Dokumente
Kultur Dokumente
1
UNIVERSIDAD FRANCISCO DE PAULA SANTANDER Versión: 1.0
PROGRAMA DE INGENIERÍA ELECTRÓNICA
MICROCONTROLADORES
Página: 1 de 11
𝑞𝑉
𝑖(𝑉) = 𝐼𝐿 − 𝐼𝑂 ∗ 𝑒 𝑛𝐾𝑇 𝐸𝑞 1
INTRODUCCIÓN
𝐼𝐿 Corriente de luz generada dentro de la célula solar y es el termino correcto
En el presente informe presenta dos métodos para conseguir a utilizar en la ecuación de la célula solar.[1] Commented [SS2]: plural
la ecuación corriente vs voltaje de una celda solar fotovoltaica, I𝑂𝑂 = Corriente de saturacion
Commented [SS3]: se
por medio del uso del tolbox Cftool de Matlab y la creación de V = Voltaje de la célula solar
q = carga del electrón Commented [SS4]: es un poco redundante decir: por medio del
una función en el programa Matlab para obtener dicha uso
ecuación. Se dan a conocer los pasos para la elaboración de la n = factor de idealidad
caracterización de la celda solar, en luz y en la oscuridad, k = constante de boltzman
además de ello se darán a conocer las etiquetas usadas en T = Temperatura
Matlab para el trabajo con archivos del programa ofimático
En este proyecto se plantea como problema encontrar las
Excel. constantes de la ecuación No 1, de forma experimental por
medio de un panel fotovoltaico y utilizando herramientas
I. OBJETIVOS como Matlab y su toolbox Cftool.
Hallar los valores Corriente vs Voltaje de forma experimental
de una celda solar fotovoltaica, en la luz. III. HERRAMIENTAS UTILIZADAS
Con base a los conocimientos de estadística, desarrollar un TABLA NO 1, HERRAMIENTAS UTILIZADAS. Commented [SS7]: Tamaño de letra muy grande
algoritmo que me permita encontrar una función exponencial Herramienta Descripción Tipo Commented [SS5]: Le permita a Wilmer? Se debe escribir
que describa el comportamiento de la corriente de la celda siempre en forma impersonal.
Matlab Con esta herramienta se Software
solar en función del voltaje en la luz y en la oscuridad.
elaboraron de forma manual
los scripts para encontrar las
Con base a los conocimientos del programa Matlab, elaborar
constantes de la ecuación de
en la herramienta cftool, ecuación que describa el
la célula solar.
comportamiento de la corriente de la celda solar en función
del voltaje en la luz y en la oscuridad.
Voltaje: 12 V xlsread(‘archivo.xlsx'):
Potencia: 2.4 W Esta línea nos permite llevar los datos presentes en un archivo
Medidas: 140 x 140 mm. de Excel o xlsx (ubicados en la misma carpeta de trabajo)
hasta el programa Matlab.
Con el panel se extrajeron de forma experimental parejas de
puntos de voltaje y corriente en la luz, las cuales son Luego de tener los datos en Matlab se procedió a realizar el
presentadas en la figura No 1. ajuste de la curva por medio de la herramienta Cftool de
Matlab, la cual es un toolbox que tiene una completa gama de
funciones para el cálculo de cualquier tipo de regresión,
dándonos a conocer parámetros como lo son:
R2 : Coeficiente de determinación:
El cuál es la medida utilizada para ver la calidad de ajuste de
un modelo lineal [2]
𝑆𝑆𝐸
𝑅2 = 1 − 𝐸𝑐 2
𝑆𝑆𝐿
La regresión no lineal son modelos extensamente usados para 𝑖 = 0.1946 − 1.44 10−9 𝑒 1.577𝑉 𝐸𝑐 5
describir la relación entre una variable respuesta y una
variable explicativa.[3]. Dentro de estos modelos de regresión En donde se han estimado los parámetros:
no lineal existen los modelos exponenciales, logarítmicos,
parabólicos y algunos otros los cuales se encuentran en la SSE: 0.002532
herramienta Cftool. R-square: 0.9071
En la figura No 3 podemos encontrar la gráfica de la función También se ha encontrado la ecuación número seis para
calculada con la herramienta Cftool comparada con los valores describir las características corriente voltaje del panel en la
experimentales hallados en la luz oscuridad:
.
𝑖 = 0.0002765𝑒 0.907𝑉 𝐸𝑐 6
SSE: 4.831
R-square: 0.985
SSE: 0.0207
R-square: 0.6449
SSE: 0.0207
R-square: 0.6449
Para finalizar la práctica se unieron todas las gráficas Fig. 8 Graficas del panel en la oscuridad.
obtenidas para el panel en la luz, la cual se muestra en la
figura número siete y también se unieron todas la figuras
obtenidas para el panel en la oscuridad, la cual se muestra en REFERENCIAS
figura número ocho. Todo esto con el fin de comparar los [1] S. B. Christiana Honsberg, «PVCDROM,» PVCDROM, 28 03 2013.
resultados obtenidos y evaluarlos para mirar cuales fueron las [En línea]. Available: http://pveducation.org/. [Último acceso: 12 11
mejores opciones de gráficas. 2015].
[2] C. de la Puente Viedma, SPSS/PC+: una guia para la investigación,
Complutense, Ed., Editorial Complutense, 1993.
V. CONCLUSIONES [3] V. B. A. Holger Dette, OPTIMAL DESIGNS FOR A CLASS OF
Los parámetros estadísticos como lo son el coeficiente de NONLINEAR, 2004.
determinación y la suma de errores cuadrados SSE, no se
corresponden a los valores calculados de las ecuaciones con la
función debido a que la función que se está evaluando no es
una función lineal.
plot(v,fmedida,'.');
hold on
a=1;
b=1e-10;
c=1;
fcalcu=a-b*exp(c*v);
aumento1=a/10;
decrementar=0;
incrementar=0;
salir=0;
error0=0;
error1=0;
while (salir==0)
error0=SSE(fmedida,fcalcu);
a=a+aumento1;
fcalcu=a-b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if error0>error1
salir=1;
incrementar=1;
else
a=a-2*aumento1;
fcalcu=a-b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if(error0>=error1)
salir=1;
decrementar=1;
else
aumento1=aumento1/10;
end
end
end
if decrementar==1
for i=1:500
error0=SSE(fmedida,fcalcu);
a=a-aumento1;
fcalcu=a-b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if(error0>error1)
a=a-aumento1;
fcalcu=a-b*exp(c*v);
else
aumento1=-aumento1/10;
end
end
INF-MCU
6
UNIVERSIDAD FRANCISCO DE PAULA SANTANDER Versión: 1.0
PROGRAMA DE INGENIERÍA ELECTRÓNICA
MICROCONTROLADORES
Página: 6 de 11
else
for i=1:500
error0=SSE(fmedida,fcalcu);
a=a-aumento1;
fcalcu=a-b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if(error0>error1)
a=a-aumento1;
fcalcu=a-b*exp(c*v);
else
aumento1=-aumento1/10;
end
end
end
%% Para calcular el parametro b.
aumento1=b/10;
decrementar=0;
incrementar=0;
salir=0;
error0=0;
error1=0;
while (salir==0)
error0=SSE(fmedida,fcalcu);
b=b+aumento1;
fcalcu=a-b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if error0>error1
salir=1;
incrementar=1;
else
b=b-2*aumento1;
fcalcu=a-b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if(error0>=error1)
salir=1;
decrementar=1;
else
aumento1=aumento1/10;
end
end
end
if decrementar==1
for i=1:500
error0=SSE(fmedida,fcalcu);
b=b-aumento1;
fcalcu=a-b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if(error0>error1)
b=b-aumento1;
fcalcu=a-b*exp(c*v);
else
aumento1=-aumento1/10;
end
end
else
INF-MCU
7
UNIVERSIDAD FRANCISCO DE PAULA SANTANDER Versión: 1.0
PROGRAMA DE INGENIERÍA ELECTRÓNICA
MICROCONTROLADORES
Página: 7 de 11
for i=1:500
error0=SSE(fmedida,fcalcu);
b=b+aumento1;
fcalcu=a-b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if(error0>error1)
b=b+aumento1;
fcalcu=a-b*exp(c*v);
else
aumento1=-aumento1/10;
end
end
end
%%
%% Para calcular el parametro C.
aumento1=c/10;
decrementar=0;
incrementar=0;
salir=0;
error0=0;
error1=0;
while (salir==0)
error0=SSE(fmedida,fcalcu);
c=c+aumento1;
fcalcu=a-b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if error0>error1
salir=1;
incrementar=1;
else
c=c-2*aumento1;
fcalcu=a-b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if(error0>=error1)
salir=1;
decrementar=1;
else
aumento1=aumento1/10;
end
end
end
if decrementar==1
for i=1:500
error0=SSE(fmedida,fcalcu);
c=c-aumento1;
fcalcu=a-b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if(error0>error1)
c=c-aumento1;
fcalcu=a-b*exp(c*v);
else
aumento1=-aumento1/10;
end
end
INF-MCU
8
UNIVERSIDAD FRANCISCO DE PAULA SANTANDER Versión: 1.0
PROGRAMA DE INGENIERÍA ELECTRÓNICA
MICROCONTROLADORES
Página: 8 de 11
else
for i=1:500
error0=SSE(fmedida,fcalcu);
c=c+aumento1;
fcalcu=a-b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if(error0>error1)
c=c+aumento1;
fcalcu=a-b*exp(c*v);
else
aumento1=-aumento1/10;
end
end
end
plot(v,fcalcu);
RSQUARE=1-(SSE(fmedida,fcalcu)/SSL(fmedida))
RMSE=sqrt(SSE(fmedida,fcalcu)/35);
a = 0.1946
b = 1.443e-009
c = 1.577
f=0.1946-(1.443e-009 )*exp(1.577*v);
close all
plot(v,fmedida,'dr',v,fcalcu,'sb',v,f,'*g')
legend('Experimental','Fit propio','Fit Matlab')
grid on
function [error]=SSE(Fmedida,Fcalcula)
t=size(Fmedida);
t=t(1,1);
error=0;
for i=1:t
error=error+(Fmedida(i)-Fcalcula(i))^2;
end
end
function [SSL]=SSE(Fmedida)
t=size(Fmedida);
t=t(1,1);
SSL=0;
media=mean(Fmedida);
error=0;
for i=1:t
SSL=SSL+(Fmedida(i)-media)^2;
end
end
INF-MCU
9
UNIVERSIDAD FRANCISCO DE PAULA SANTANDER Versión: 1.0
PROGRAMA DE INGENIERÍA ELECTRÓNICA
MICROCONTROLADORES
Página: 9 de 11
% data=xlsread('datososcuridad1.xlsx');
fmedida=data(:,1);
v=data(:,2);
plot(v,fmedida,'.');
hold on
b=1e-10;
c=1;
fcalcu=b*exp(c*v);
%% Para calcular el parametro b.
aumento1=b/10;
decrementar=0;
incrementar=0;
salir=0;
error0=0;
error1=0;
while (salir==0)
error0=SSE(fmedida,fcalcu);
b=b+aumento1;
fcalcu=b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if error0>error1
salir=1;
incrementar=1;
else
b=b-2*aumento1;
fcalcu=b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if(error0>=error1)
salir=1;
decrementar=1;
else
aumento1=aumento1/10;
end
end
end
if decrementar==1
for i=1:500
error0=SSE(fmedida,fcalcu);
b=b-aumento1;
fcalcu=b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if(error0>error1)
b=b-aumento1;
fcalcu=b*exp(c*v);
else
aumento1=-aumento1/10;
end
end
else
INF-MCU
10
UNIVERSIDAD FRANCISCO DE PAULA SANTANDER Versión: 1.0
PROGRAMA DE INGENIERÍA ELECTRÓNICA
MICROCONTROLADORES
Página: 10 de 11
for i=1:500
error0=SSE(fmedida,fcalcu);
b=b+aumento1;
fcalcu=b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if(error0>error1)
b=b+aumento1;
fcalcu=b*exp(c*v);
else
aumento1=-aumento1/10;
end
end
end
%%
%% Para calcular el parametro C.
aumento1=c/10;
decrementar=0;
incrementar=0;
salir=0;
error0=0;
error1=0;
while (salir==0)
error0=SSE(fmedida,fcalcu);
c=c+aumento1;
fcalcu=b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if error0>error1
salir=1;
incrementar=1;
else
c=c-2*aumento1;
fcalcu=b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if(error0>=error1)
salir=1;
decrementar=1;
else
aumento1=aumento1/10;
end
end
end
if decrementar==1
for i=1:500
error0=SSE(fmedida,fcalcu);
c=c-aumento1;
fcalcu=b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if(error0>error1)
c=c-aumento1;
fcalcu=b*exp(c*v);
else
aumento1=-aumento1/10;
end
end
INF-MCU
11
UNIVERSIDAD FRANCISCO DE PAULA SANTANDER Versión: 1.0
PROGRAMA DE INGENIERÍA ELECTRÓNICA
MICROCONTROLADORES
Página: 11 de 11
else
for i=1:500
error0=SSE(fmedida,fcalcu);
c=c+aumento1;
fcalcu=b*exp(c*v);
error1=SSE(fmedida,fcalcu);
if(error0>error1)
c=c+aumento1;
fcalcu=b*exp(c*v);
else
aumento1=-aumento1/10;
end
end
end
plot(v,fcalcu);
RSQUARE=1-(SSE(fmedida,fcalcu)/SSL(fmedida))
RMSE=sqrt(SSE(fmedida,fcalcu)/76);
a = 0.0002765
b = 0.907
f = a*exp(b*v)
close all
plot(v,fmedida,'dr',v,fcalcu,'sb',v,f,'*g')
legend('Experimental','Fit propio','Fit Matlab')
grid on