Nel seguente appunto vediamo con maggior dettaglio i concetti matematici che sono alla base dello studio della vita di un componente. Abbiamo trattato già al seguente link il concetto di affidabilità di un prodotto ed il concetto di failure o guasto (si consiglia la lettura dei primi due paragrafi). Qui vedremo in maggior dettaglio alcuni concetti matematici ed alcuni esempi di legge di sopravvivenza basati su specifici modelli matematici di fallimento.

Vedremo dunque:

Vita di un componente

La vita di un componente si riferisce alla sua durata operativa e alla sua maturità all’interno di un sistema tecnologico. Un componente hardware, come una CPU o una scheda madre, è progettato con una stima di vita utile basata sulla sua qualità costruttiva, sulla resistenza ai guasti e sull’usura nel corso del tempo.

La longevità di tali componenti è cruciale per la stabilità e le prestazioni di un dispositivo o di un sistema complesso come una macchina industriale. Ad esempio, nel settore dell’informatica, una scheda grafica potrebbe avere una vita utile stimata di diversi anni prima che diventi obsoleta rispetto alle richieste crescenti delle applicazioni e dei software moderni.

La gestione attenta della vita di questi componenti hardware è essenziale per garantire il funzionamento affidabile e efficiente di un sistema nel corso del tempo. La manutenzione preventiva, come la pulizia regolare e l’aggiornamento dei componenti, può contribuire ad estendere la vita utile di un hardware. Ciò consente di mantenerlo al passo con le esigenze tecnologiche in evoluzione.

Vedremo nei prossimi paragrafi in che modo è possibile verificare che un componente mantenga le aspettative di vita definite in fase di progettazione. Ciò può essere fatto tracciando i guasti che subisce nel tempo definendo a priori che cosa si intende per guasto (solo i guasti irreversibili?) in base all’impatto subito dal cliente.

Funzioni di sopravvivenza e di mortalità

Per utilizzare un approccio statistico alla materia è necessario semplificare il contesto considerando il caso semplice in cui i guasti sono solo irreversibili, eliminando dunque casi particolari quali quelli di guasti intermittenti. Dunque il componente può presentarsi solo in due stati: funzionante o guasto.

Come in ogni analisi statistica, l’analisi di affidabilità parte dalla raccolta dati di n componenti per i quali si assume come t=0 il momento in cui il componente è messo in servizio, ovvero installato presso il cliente o utilizzato dal cliente dopo l’acquisto. Dunque, il t=0 non rappresenta il momento in cui il componente è stato prodotto, ma il momento in cui il cliente ha iniziato ad usare lo stesso. Per ognuno di essi si registra il tempo trascorso quando questo manifesta un guasto rispetto al t=0

Una volta raccolti i dati si possono riportare in un’istogramma delle frequenze in cui su asse x abbiamo il tempo e su asse delle y abbiamo il numero di componenti che hanno subito un guasto:

Dunque, questo istogramma delle frequenze consente di determinare il numero di componente falliti in un intervallo tra un generico momento t ed il momento t+dt. Possiamo dividere ciascuna barra dell’istogramma per il numero totale di componenti tracciati (nel nostro caso 1000) al fine di avere un dato normalizzato. Si otterrebbe dunque il seguente istogramma che indicheremo con la generica notazione f(t):

In alternativa si può decidere di tracciare l’informazione con un’istogramma normalizzato cumulativo che indica che in un generico momento t qual è il numero dei componenti fuori servizio nell’intervallo ]0,t[. Avremo ancora una volta la variabile tempo (t) su asse delle y l’informazione cumulata dei componenti che hanno subito un guasto e la indicheremo con la notazione ϕ(t):

ϕ(t) rappresenta la funzione di mortalità statistica cumulata del componente. Potremmo tracciare la stessa informazione con una funzione complementare alla mortalità detta “sopravvivenza statistica” v(t):

dove:

v(t) = 1 - \phi(t)

passando dal caso discreto al caso continuo (numero di componenti tracciati molto alto) è possibile avere una funzione continua detto in questo caso “curva di sopravvivenza”:

Supponiamo adesso di indicare con la variabile T il tempo di vita di un componente, possiamo definire la curva di sopravvivenza in termini probabilistici:

v(t) = P(T>t)

dunque la funzione di sopravvivenza ci dice la probabilità che un componente possa risultare ancora operativo e funzionante dopo un generico tempo t. Esistono diversi tipi di curve di sopravvivenza (discrete, continue o miste). In generale una funzione di sopravvivenza deve avere le seguenti caratteristiche:

  • v(t) =1 per t<0. Ovvero la probabilità che il componente sia funzionante prima di essere messo in funzione è pari a 1
  • v(∞) = 0, cioè la vita non può essere eterna
  • v(t) è una funzione monotona non crescente nel suo dominio. Questo vuol dire che non è possibile che la probabilità che esso sia operativo possa aumentare nel tempo. Al massimo può rimanere stabile.

Per semplicità nel seguito, tratteremo solo i casi di funzioni continue e differenziabili.

Rate di fallimento

Si consideri una funzione di sopravvivenza v(t) che sia continua e derivabile. Matematicamente è possibile definire una densità di probabilità per la durata di vita che definisce in ogni intervallo temporale la probabilità che il componente in tale intervallo sia funzionante. In particolare, ricordiamo che dal punto di vista statistico, abbiamo che:

  • La mortalità statistica ϕ(t) definisce la probabilità che la durata di vita del componente T sia al di sotto del tempo t:
\phi(t) = P(T \leq t)
  • la funzione di sopravvivenza v(t), complementare a ϕ(t), ci dice qual è la probabilità che la durata di vita del componente sia maggiore del tempo t:
v(t) = P(T > t)
  • la densità di probabilità della durata di vita, che indicheremo con i(t), ci dice qual è la probabilità che la durata del componente sia compresa in un intervallo tra t e t+dt:
i(t)dt = P(t< T \leq t+dt) 

possiamo esprimere tale probabilità sottraendo alla probabilità che la durata di vita del componente sia minore o uguale di t+dt la probabilità che la durata di vita sia minore o uguale di t:

i(t)dt = P(t < T \leq t+dt) =  P(T\leq t+dt) - P(T\leq t)

ma i due termini nel membro a destra dell’equazione sono due termini della funzione di mortalità statistica ϕ(t) (a cui v(t) è complementare). Possiamo infatti scrivere:

i(t) dt = \phi (t+dt) - \phi (t) = v(t) - v(t+dt)

possiamo dunque esprimere i(t) derivando le funzioni di mortalità statistica e di sopravvivenza:

i(t) = \frac{d\phi}{dt} = - \frac{dv}{dt}

dunque la densità di probabilità della durata di un componente è la derivata della mortalità nel tempo ϕ(t) o l’inverso della derivata della funzione di sopravvivenza v(t). Possiamo dunque esprimere v(t) come integrale della funzione densità di probabilità:

v(t) = \int_{t}^{\infty} i(u)d(u)

Adesso per proseguire con la trattazione matematica e ricavarci la funzione di rate di fallimento consideriamo il caso in cui la legge di probabilità che governa il fallimento del componente sotto osservazione sia discreta e non continua. Questo ad esempio è il caso in cui sull’asse delle x del tempo ci sono i giorni o le settimane che non hanno un andamento continuo. La variabile tempo t assume dunque i valori N={0,1,2,3,4….}. La probabilità che un componente possa avere un fallimento alla data n+1 + data dalla formula:

P(T=n+1)= P(T\leq n+1) - P(T\leq n) 

volendo dunque dire che la probabilità che il componente fallisca esattamente alla data n+1 è data dalla differenza tra la probabilità cumulata che il componente fallisca entro quella data meno la probabilità cumulata che fallisca nella data subito precedente. Ma abbiamo chiamato in precedenza tale probabilità cumulata come la mortalità statistica del componente (funzione ϕ). Possiamo dunque scrivere:

P(T=n+1)= P(T\leq n+1) - P(T\leq n) = \phi(n+1) - \phi (n)

Allo stesso modo possiamo scrivere la stessa probabilità in termini di funzione di sopravvivenza:

P(T=n+1)= P(T\leq n+1) - P(T\leq n) = (1-P(t>n+1))- (1-P(t>n)) =P(t>n)-P(t>n-1) =\\\,\\= v(n) - v(n+1)

Ritorniamo al caso in cui la probabilità del fallimento del componente sia continua in funzione del tempo. Possiamo scrivere:

P(t< T\leq t+dt) = P(T >t) P(T \leq t+dt |T>t)

ovvero, la probabilità che il fallimento avvenga nell’intervallo di tempo ]t, t+dt[ è data dal prodotto della probabilità che questo avvenga oltre t e la probabilità che avvenga prima di t+dt a condizione (abbiamo una probabilità condizionata!) che non sia avvenuto prima di t. Isoliamo la probabilità condizionata:

P(T \leq t+dt |T>t) =  \frac{P(t< T\leq t+dt)}{P(T >t) } = \frac{i(t)}{v(t)}dt = -\frac{v'(t)}{v(t)}dt

la quantità:

\lambda (t) = -\frac{v'(t)}{v(t)}

è detta rate di fallimento (failure rate) istantaneo ed esprime la probabilità che un componente fallisca nell’intervallo ]t,t+dt[ sapendo (quindi a condizione) che il componente fosse in buono stato al tempo t. Il prodotto della funzione lambda per un intervallo di tempo ci fornisce il rapporto tra il numero di componente che falliscono in quell’intervallo e quelli buoni all’inizio dell’intervallo stesso. Tale funzione ha come caratteristica quella di non poter assumere valori negativi (il che significherebbe che si aggiungono componenti sani nel tempo) e può essere non monotona e ad ogni modo può essere crescente o decrescente.

Si noti che possiamo riscrivere l’ultima equazione in forma differenziale:

v'(t) +\lambda (t) v(t) = 0

ponendo che all’istante t=0 v(t) = 1. L’equazione differenziale ha generica soluzione:

v(t) = e^{(-\int_{0}^{t}\lambda(x)dx)}

il che vuol dire che se la funzione lambda è costante nel tempo, la legge di sopravvivenza è una semplice legge esponenziale. Se invece la funzione lambda è linearmente crescente, allora la curva di sopravvivenza è una curva a campana tronata al tempo t=0.

L’integrale presente all’esponente dell’esponenziale rappresenta la funzione cumulata della failure rate

\Lambda(t) = \int_{0}^{t} \lambda(x)dx \\\,\\ \Rightarrow \\\,\\ v(t) = e^{\Lambda(t)} \\\,\\ \Rightarrow \\\,\\\Lambda(t) = -ln\,(v(t))
Valor atteso e varianza della legge di sopravvivenza

Per calcolare il valore atteso e la varianza della legge di sopravvivenza basta applicare le formule generiche di questi momenti della funzione. Si ricordi che un generico momento è dato da:

E[x^{k}] = \int_{-\infty}^{+\infty}x^{k}f(x)dx

avendo indicato con f(x) la densità di probabilità della variabile x. Nel caso del valore atteso, la generica formula è dunque:

E[x] = \int_{-\infty}^{+\infty}xf(x) dx

Volendo calcolare il valore atteso del tempo vita di un componente, sarà necessario applicare la formula:

E[T] = \overline {T} = \int_{-\infty}^{+\infty}ti(t)dt =  \int_{0}^{+\infty}ti(t)dt = - \int_{0}^{+\infty} tdv(t) = -[tv(t)]_{0}^{+\infty}+\int_{0}^{+\infty}v(t)dt

ma il primo termine tende a 0 in quanto:

\lim_{t \to \infty} tv(t) = 0

dunque abbiamo che in generale il valore atteso del tempo di vita di un componente è dato dall’integrale della sua legge di sopravvivenza:

\overline{T} = \int_{0}^{+\infty}v(t)dt

il che vuol dire che il valore atteso del tempo di vita di un componente è pari all’area sottesa dalla sua curva di sopravvivenza.

Ricordiamo adesso la formula generica della varianza:

V[x]=\sigma^{2}_{x}=E[x^{2}
 ]−E[x]^{ 
2}

che applicata al caso del tempo di vita di un componente diventa:

V[T]=\sigma^{2}_{T}=E[T^{2}
 ]−E[T]^{ 
2}

dove per il primo termine possiamo calcolare:

E[T^{2}] =  \int_{-\infty}^{+\infty}t^{2}i(t)dt =  \int_{0}^{+\infty}t^{2}i(t)dt = - \int_{0}^{+\infty} t^{2}dv(t) = -[t^{2}v(t)]_{0}^{+\infty}+2\int_{0}^{+\infty}tv(t)dt

riscriviamo dunque la varianza come:

\sigma^{2}_{T}=E[T^{2}
 ]−E[T]^{ 
2} = 2\int_{0}^{+\infty}tv(t)dt -\left[\int_{0}^{+\infty}v(t)dt \right]^{2}

Nei prossimi articoli vedremo alcuni esempi di valore atteso e varianza delle principali leggi di sopravvivenza utilizzate

Vita di un componente: matematica di base per concetti di affidabilità e mortalità