Академический Документы
Профессиональный Документы
Культура Документы
CUSCO
ALUMNO: CODIGO:
Matlab, a parte del cálculo matricial y álgebra lineal, también puede manejar polinomios,
funciones, ecuaciones diferenciales ordinarias, gráficos …
1. MARCO TEORICO
DISTRIBUCION DE WEIBULL
Esta función de probabilidad de fallo o función de fiabilidad R (t), viene dada por:
𝑡−Υ 𝛽
−( )
𝑅(𝑡) = 𝑒 𝜂
𝑡−Υ 𝛽
−( )
𝐹(𝑡) = 1 − 𝑒 𝜂
Debido a que se desconoce los valores β, η e γ, se debe linealizar las curvas, es decir usar
el método de regresión lineal, este método permitirá obtener un polinomio que linealizará la
distribución de Weibull y permitirá estimar los parámetros β, η e γ, y tenemos los siguientes
pasos:
𝑦 = 𝑎𝑥 − 𝑏
Donde comparando tenemos:
1
ln ln
.ln t .ln( )
1 F ( t ) a x b
y
1
𝑦 = 𝑙𝑛 [𝑙𝑛 ( )] 𝑎 = 𝛽 𝑥 = ln(𝑡 − 𝛾) 𝑏 = −𝛽 ∗ ln(𝜂)
1−𝐹(𝑡)
De donde despejamos “ ”:
b
b
b .ln( ) ln( ) e
3. CALCULO DE LOS PARAMETROS DE WEIBULL
Se tiene la siguiente tabla de recopilación de Tiempos entre Fallas obtenida por personal
de la Compañía Minera Antapaccay de el CARGADOR FRONTAL CAT MODELO 994F (5029)
A continuación se explica un método (no el único, aunque sí uno de los más utilizados) que
permite obtener estimaciones puntuales de la función de distribución empírica, F (ti), a partir
de las observaciones, ti .
Considerando que t1< t2<…tn son los “n” tiempos de fallo observados. Para i = 1,2,…,n se
puede obtener la segunda componente del punto (t,F(ti)) tomando para tiempos de fallo
mayor a 20:
𝑖 − 0.3
𝐹(𝑡) =
𝑛 + 0.4
Para el caso del CARGADOR FRONTAL CAT MODELO 994F (5029) se tiene los
siguientes valores:
n = 43
Abscisas(X) = Ln(t)
Una vez calculado los valores de las constantes “a” y “b” podemos calcular los siguientes
valores:
β=a
η = exp(-b/ β)
Paso numero 1
Colocamos en primer lugar las funciones clc y clear para que cada vez que se
ejecute el edit en primer lugar borre los resultados que podrían haber en el
Command Windows (clc) y también que limpie el Workspace (clear)
clc, clear;
Paso numero 2
Paso numero 3
t=[9.22,19.67,19.90,21.49,22.15,22.19,22.24,22.81,23.08,23.78,23.91,24.47,25.46,2
5.85,26.67,26.69,30.71,35.57,46.33,48.71,50.45,50.66,51.01,63.93,68.09,71.15,7
2.15,73.72,76.68,77.21,92.87,110.18,166.38,168.00,173.29,173.39,316.76,401.1
8,416.04,572.26,581.71,664.93,672.68];
t= [9.22 19.67 26.69 30.71 35.57 48.71 76.68 92.87 110.18 168.00 173.39 316.76
401.18 416.04 572.26 581.71 673.68];
Paso numero 4
Usamos la función sort para ordenar nuestros datos de menor a mayor, es decir
creamos otra matriz con los datos iniciales pero ahora ordenados de forma
ascendente.
t = sort (t);
Paso numero 5
Creamos una matriz para los valores de la fórmula de Bernard, para ello usamos la
función length (t). Length, hace el conteo del número de elementos de una matriz.
Paso numero 6
x=log (t);
Paso numero 7
% Linealización de la curva
Pol=polyfit (x, y, 1); %Se obtiene los valores pol= [pol(1) pol(2)]
coeficientes de la recta(y=pol(1)x + pol(2))
Para determinar los valores de beta y eta se quieren de los valores que nos da la
función polyfit(x, y, 1) anteriormente hallados como se mencionó [a b] para ello “a”
será pol (1) y “b” será pol (2).
yy = polyval(Pol,x);
Paso numero 9
fprintf ('Y =\t'); en este caso el texto que se verá en el Comman Windows es “Y =”
y la parte “\t” hace que lo escrito debajo de esta función lo lleve en la misma línea.
También se puede escribir “\n” en este caso estará separado en la siguiente fila de
texto.
fprintf('%0.4f\t',Pol(1)); es este caso la función fprintf nos permite hacer que
aparezca un valor ya calculado, para ello se debe tener en cuenta lo que está dentro
de los paréntesis “'%0.4f\t',Pol(1)”
%0.4f; el “0” indica la separación, el “4” en número de decimales y “f” nos permite
llamar un dato que queremos que aparezca, para nuestro caso sería Pol(1).
fprintf('Y =\t');
fprintf('%0.4f\t',Pol(1));
fprintf('X\t');
fprintf('%0.4f\t',Pol(2));
disp('(Para Gamma = 0)')
fprintf('Beta (B) =\t');
fprintf('%0.4f\n',beta);
fprintf('Eta (n) =\t');
fprintf('%0.4f\t',eta);
Plot (): nos permite generar gráficos colocando. Entre comas se colocan los valores
del eje de abscisas y luego el valor de las ordenadas, además presenta otras
herramientas que pueden ayudar a nuestra graficas un presentación más estética.
Por ejemplo tenemos las funciones siguientes:
hold on; esa función nos permite capturar un plot para ello se escribe siempre
después de la gráfica que se quiere capturar.
FIGURA (1) GRAFICA DE WEIBULL
title; una vez generado la figura podemos ponerle el titulo para ello esta función nos
permite hacer eso y otras cosas más que se detallaran a continuación.
(['Ajuste de Weibull con ','\gamma',' = 0 ']; la primera parte viene a ser el texto
del título “'Ajuste de Weibull con '” la segunda “'\gamma'” nos permite introducir
el símbolo y la última parte “' = 0 '” que también forma parte del texto que estará en
el título.
'Color','w'; nos permite colocarle color al texto.
'FontSize',12; tamaño del fondo.
'HorizontalAlignment','center'; alinear y centrar texto.
'BackgroundColor',[.55 .100 .0]; no permite elegir el color de fondo, para este caso
podemos colocar el color mediante [.55 .100 .0] que viene a ser como una paleta
de combinación de los colores primarios.
'EdgeColor','b'; color del marco.
'LineWidth',1; ancho de la línea.
min(yy); escoge el mínimo valor de la matriz seleccionada.
median(x); escoge el valor medio de la matriz seleccionada.
set(gca,'yGrid','on','yColor','k','LineStyleOrder', '-'); permite colocar líneas
auxiliares para mejorar la visualización de las gráficas.
Xlabel; permite colocar texto en eje x de la gráfica.
Ylabel; permite colocar texto en eje y de la gráfica.
Text; permite colocar texto adicional o leyenda en el gráfico.
num2str(); permite colocar datos en el texto.
Para esta parte se pretende realizar cálculos para gamma mayores que cero, para
ello usamos la función for.
for; nos permite hacer iteraciones
plot(r,yyy)
set(gca,'YGrid','on','YColor','k','LineStyleOrder', '-')
title('Sensibilidad y Error
cuadrático','Color','w','FontSize',12,'HorizontalAlignment','center','Backgroun
dColor',[.55 .100 .0],'Margin',5,'EdgeColor','k','LineWidth',1)
set(gca,'YGrid','on','YColor','k','LineStyleOrder', '-')
posx = min(r);
posy= median(yyy);
text(posx,posy,['Max. aproximación en: ',' (r^{2}) max = ',num2str(R2),'
\wedge ',' \gamma =
',num2str(Gama)],'FontSize',10,'HorizontalAlignment','left','BackgroundColor'
,[.8 .8 .8],'Margin',6,'EdgeColor','k','LineWidth',1)
ylim([0 max(Gama)+1]);
xlabel(['Coeficiente de determinacion',' (r^{2})'],'Color','k')
ylabel(['Gamma','(\gamma)',' en [Horas]'],'Color','k')
hold on
plot(R2,Gama,'+','LineWidth',8,'MarkerEdgeColor',[.55 .100
.0],'MarkerSize',2)
disp(' ');
Dmax=max(Dni);
disp(' ');
DAlfa=0.2417;% La máxima discrepancia que se puede aceptar para un
determinado nivel de confianza (saca de la tabla de Kolmogorov Smirnov)
disp(' ');
if (DAlfa>Dmax);
fprintf('El modelo es WEIBULL se ACEPTA (DAlfa>Dmax)\n');
else
fprintf('El modelo no es WEIBULL se RECHAZA (DAlfa<Dmax)\n');
end
disp(' ');
fprintf('DAlfa =\t');
fprintf('%0.4f\n',DAlfa);
fprintf('Dmax =\t');
fprintf('%0.4f\n',Dmax);
Rt=exp(-((t-Gama)./Eta).^(Beta));
FIGURE(4) GRAFICA DE CONFIABILIDAD
plot(t,Rt,'bo','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor','r','Marker
Size',2)
title('Confiabilidad','Color','w','FontSize',12,'HorizontalAlignment','center','Bac
kgroundColor',[.55 .100 .0],'Margin',5,'EdgeColor','b','LineWidth',1)
set(gca,'YGrid','on','YColor','k','LineStyleOrder', '-')
posx = 2*median(t);
posy= median(Rt);
text(posx,posy,['R(t) = e ','^{-((\gamma-t)/\eta)}',' ^
','^{\beta}'],'FontSize',10,'HorizontalAlignment','left','BackgroundColor',[.8
.8.8],'Margin',6,'EdgeColor','k','LineWidth',1)
xlabel('Tiempo (t) en [Horas]','Color','k')
ylabel('Confiabilidad R(t)','Color','k')
disp(' ');
rot90(rot90(t)); esta función nos permite rotar la matriz en 180, se usó para tener
datos ordenados de forma descendente, es decir de la mayor a menor. Pero antes
se tuvo que ordenar con ayuda de la función sort(t).
disp(' ');
disp('8°.-Evaluamos los parámetro estadístico mediante Test de Anderson
Darling')
disp('comprobar que ADe>ADx para alfa=0.05')
Finv=rot90(rot90(F));
n=length(t);
j=1:n;
coef=(2*j-1)/n;
A=log(F);
B=log(1-Finv);
Res=coef.*(A+B);
S=sum(Res);
ADx =-n-S;
ADe=0.757;% de tabla para un ajuste del 95%
disp(' ');
if (ADe>ADx);
fprintf('El modelo es WEIBULL se ACEPTA (ADe>ADx)\n');
else
fprintf('El modelo no es WEIBULL se RECHAZA (ADe<ADx)\n');
end
disp(' ');
fprintf('ADe =\t');
fprintf('%0.4f\n',ADe);
fprintf('ADx =\t');
fprintf('%0.4f\n',ADx);
disp(' ');
disp(' ');
disp('9°.-Encontramos el Tiempo Promedio Entre Fallas "MTBF" en Horas')
MTBF=Eta*gamma(1+(1/Beta))+Gama
disp(' ');
disp('10°.-Resultados')
TF=(((t-Gama)./Eta).^(Beta-1)).*(Beta/Eta);
disp(' ');
disp(' n t R(t)% F(t)% ');
disp([(1:length(t))',t',Rt'*100,Ft'*100]);
FIGURE(5) GRAFICA DE INFIABILIDAD
plot(t,Ft,'bo','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor','r','Marker
Size',2)
title('Infiabilidad Distribución de
Weibull','Color','w','FontSize',12,'HorizontalAlignment','center','BackgroundC
olor',[.55 .100 .0],'Margin',5,'EdgeColor','b','LineWidth',1)
posx = 2*median(t);
posy= median(Ft);
text(posx,posy,['F(t) = 1 - e ','^{-((\gamma-t)/\eta)}',' ^
','^{\beta}'],'FontSize',10,'HorizontalAlignment','left','BackgroundColor',[.8 .8
.8],'Margin',6,'EdgeColor','k','LineWidth',1)
xlim([0 max(t)+30]);
set(gca,'YGrid','on','YColor','k','LineStyleOrder', '-')
xlabel('Tiempo (t) en [Horas]','Color','k')
ylabel('Infiabilidad F(t)','Color','k')
6. OBTENCION DE RESULTADOS
TIEMPO ENTRE FALLAS DEL CARGADOR FRONTAL CAT MODELO 994F (5029)
n t
1.0000 9.2200
2.0000 19.6700
3.0000 26.6900
4.0000 30.7100
5.0000 35.5700
6.0000 48.7100
7.0000 76.6800
8.0000 92.8700
9.0000 110.1800
10.0000 168.0000
11.0000 173.3900
12.0000 316.7600
13.0000 401.1800
14.0000 416.0400
15.0000 572.2600
16.0000 581.7100
17.0000 675.6800
Y = 0.8488X - 4.5462
R =0.9776
3°.-Hallando el valor máximo de r^2 que ajuste a la recta con la observación de que se han
tomado Gammas positivos y menores que el valor mínimo de t
N t t (Gamma = 7)
1.0000 9.2200 2.2200
2.0000 19.6700 12.6700
3.0000 26.6900 19.6900
4.0000 30.7100 23.7100
5.0000 35.5700 28.5700
6.0000 48.7100 41.7100
7.0000 76.6800 69.6800
8.0000 92.8700 85.8700
9.0000 110.1800 103.1800
10.0000 168.0000 161.0000
11.0000 173.3900 166.3900
12.0000 316.7600 309.7600
13.0000 401.1800 304.1800
14.0000 416.0400 409.0400
15.0000 572.2600 565.2600
16.0000 581.7100 574.7100
17.0000 675.6800 668.6800
Gamma = 7.0000
6°.-Evaluamos el parámetro estadístico de Kolmogorov Smirnov (DAlfa>Dmax)
Buscar en la tabla K-S el DAlfa para una confianza de 95% el nivel de significancia
DAlfa = 0.31796
Dmax =0.0762
MTBF = 251.7501
7. OBTENCION DE GRAFICAS
1.5
0.5
-0.5
-1
-1.5
-2
-2.5
-3
-3.5
2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7
Ajuste de Weibull con = 0
1.5
0.5
0
ln(ln(1/(1-F(i))))
-0.5
-1
-1.5
-2
-2.5
y = 0.84878x -4.5462 r2 = 0.95574
-3
-3.5
2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7
ln t
Sensibilidad y Error cuadrático
7
6
Gamma() en [Horas]
1
0.955 0.96 0.965 0.97 0.975 0.98 0.985
2
Coeficiente de determinacion (r )
0.5
0
ln(ln(1/(1-F(i))))
-0.5
-1
-1.5
-2
-2.5
y = 0.71576x -3.783 r2 = 0.97939
-3
-3.5
0 1 2 3 4 5 6 7
ln (t-)
Confiabilidad
1
0.9
0.8
0.7
Confiabilidad R(t)
0.6
R(t) = e -((-t)/)
0.5
0.4
0.3
0.2
0.1
0
0 100 200 300 400 500 600 700
Tiempo (t) en [Horas]
x 10
-3
Tasa de Fallas deacuerdo a Distribución de Weibull
14
12
Tasa de Fallas: (t) [Fallas/Hora]
10
2
0 100 200 300 400 500 600 700
Tiempo (t) en [Horas]
8. CONCLUSIONES