Betinget sviktsannsynlighet
Dersom man har en opprinnelig sannsynlighetsfordeling for en komponent fra idriftsettelsesåret og det har gått x år uten at svikt har inntruffet, vil sviktsannsynligheten nå se annerledes ut. I dette kapittelet ser vi nærmere på dette. MERK! : Betinget sannsynlighet som demonstrert her antar at ingen kunnskap om tilstand eksisterer. Den eneste informasjonen man har er at komponenten ikke har sviktet etter x år. Dette kan være relevant for komponenter hvor degradering ikke viser symptomer eller for komponenter hvor det ikke er lett å komme til for inspeksjon.
Formelen for betinget sannsynlighet er gitt av den aktuelle fordelinger ved (t + x) delt på den korresponderende overlevelsesfunksjonen ved x:
Sviktintensitet er gitt av :
Source
# importer nødvendige python-moduler
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import weibull_min
from scipy.stats import gamma
import matplotlib as mpl
mpl.rcParams.update({
"figure.facecolor": "none",
"axes.facecolor": "none",
"savefig.facecolor": "none",})Betinget sviktsannsynlighet - weibullfordeling¶
Betinget sannsynlighet for en weibullfordeling er vist under. Her er komponenten 20 år og lever enda. Den oppdaterte/betingede sviktsannsynligheten har nødvendigvis høyere sannsynlighet for svikt i resten av levetiden.
Source
# Definer weibullfordeling
k = 4.5321
lam = 32.8605
# Regn ut betinget sannsynlighet ved år x og plot
t = np.arange(0,51,1) # vektor med år fra idriftsettelse
f = weibull_min.pdf(t,k, scale = lam) # sannsynlighetsfordeling
R = weibull_min.sf(t,k, scale = lam) # overlevelsesfunksjon, R
t0 = 20 # antall år etter idriftsettelse
f_betinget = np.zeros(len(t))
R_0 = weibull_min.sf(t0,k, scale = lam) # overlevelsesfunksjon
for i in range(0,len(t)-t0):
f_tx = weibull_min.pdf(i+t0,k, scale = lam) # sannsynlighetsfordleling
f_betinget[t0 + i] = f_tx/R_0
# plot resultat
f_b = np.zeros_like(t, dtype=float)
R0 = weibull_min.sf(t0, k, scale=lam)
for i in range(len(t) - t0):
f_tx = weibull_min.pdf(i + t0, k, scale=lam)
f_b[t0 + i] = f_tx / R0
plt.figure(figsize=(5,4))
plt.plot(t,f/R,'r.-', label = 'z(t)')
plt.plot(t, f, label='f(t) (opprinnelig)')
plt.plot(t, f_b, '--',label=f'f(t | x > {t0}) (betinget)')
plt.xlabel("Tid (år)",fontsize = 12)
plt.ylabel("f(t)",fontsize = 12)
plt.ylim([0,0.15])
plt.legend(fontsize = 12)
plt.show()
Betinget sviktsannsynlighet - gammafordeling¶
Betinget sannsynlighet for en gammafordeling er vist under. Her er komponenten 30 år og lever enda.
Source
# Definer gammafordeling
alpha = 13.11
beta = 2.29
tg = np.arange(0,51,1) # vektor med år fra idriftsettelse
fg = gamma.pdf(tg,a = alpha, scale = beta) # sannsynlighetsfordeling
Rg = gamma.sf(tg,a = alpha, scale = beta) # overlevelsesfunksjon, R
# Regn ut betinget sannsynlighet ved år x og plot
t0g = 30 # antall år etter idriftsettelse
f_betingetg = np.zeros(len(tg))
R_0g = gamma.sf(t0g,a = alpha, scale = beta) # overlevelsesfunksjon
for i in range(0,len(tg)-t0g):
f_txg = gamma.pdf(i + t0g,a = alpha, scale = beta) # sannsynlighetsfordleling
f_betingetg[t0g + i] = f_txg/R_0g
# plot resultat
f_bg = np.zeros_like(tg, dtype=float)
R0g = gamma.sf(t0g, a = alpha, scale=beta)
for i in range(len(tg) - t0g):
f_txg = gamma.pdf(i + t0g, alpha, scale=beta)
f_bg[t0g + i] = f_txg / R0g
plt.figure(figsize=(5,4))
plt.plot(tg,fg/Rg,'r.-', label = 'z(t)')
plt.plot(tg, fg, label='f(t) (opprinnelig)')
plt.plot(tg, f_bg, '--',label=f'f(t | x > {t0g}) (betinget)')
plt.xlabel("Tid (år)",fontsize = 12)
plt.ylabel("f(t)",fontsize = 12)
plt.ylim([0,0.15])
plt.legend(fontsize = 12)
plt.show()