Grazie per aver dedicato un po' del tuo tempo, guarda questo video.
Presumo che tu sia qui perché hai usato o provato a usare
la piattaforma di simulazione di sistemi riparabili all'interno di JMP.
Forse vorrai saperne di più.
Potresti sentirti frustrato perché ci sono cose
che stai cercando di fare e che non pensavi di poter fare.
Quindi di cosa parlerò oggi
sono cose che non sono spiegate in modo approfondito nella documentazione,
cose che ho imparato attraverso tentativi ed errori
che non sono presenti nella documentazione,
e anche cose che ho imparato parlando con lo sviluppatore
sulla piattaforma, cose che non saresti in grado di trovare
in qualsiasi altro modo.
Suppongo che tu abbia avuto qualche esperienza con questa piattaforma.
Presumo che tu conosca un po' l'analisi dell'affidabilità,
quindi non devo entrare nei dettagli in termini di cosa sia una configurazione parallela,
qual è qualcosa che è K di N, e così via.
Quindi ho una serie di esempi che voglio trattare,
un sacco di materiali. Cominciamo.
Ora, prima di guardare effettivamente
la piattaforma Repairable System Simulation, lasciatemi solo darvi una panoramica.
Spero che tu l'abbia già usato prima, che tu abbia familiarità con esso,
parleremo di tre componenti diverse
e aspetti su quei componenti che non sono nella documentazione
o non sono ben spiegati nella documentazione.
La prima cosa di cui parleremo sono i blocchi.
I blocchi sono ciò che uso per costruire le mie cose di simulazione del sistema riparabile
come Parallelo, K da N, Standby.
Quindi per ogni blocco posso associare un evento a quel blocco.
Quindi questi sono questi piccoli blocchi arancioni che vediamo, e per ogni blocco,
Posso associare uno o più risultati o azioni.
Quelli sono quei puntini blu che vediamo,
e questo mi aiuterà a costruire la mia simulazione.
Ad esempio, potrei voler sapere quando un blocco fallisce
e quando quel blocco fallisce, potrei voler riparare quel blocco,
e la riparazione potrebbe richiedere, diciamo, 40 ore.
Questa è l'idea alla base della creazione di questi diagrammi RSS.
Cominciamo a parlare di
alcune delle proprietà generali dei blocchi.
Ci sono sei blocchi diversi in un nodo,
che mi permette di collegare le cose all'interno del diagramma.
Cinque di questi sei blocchi sono compositi.
Sono stati costruiti per essere composti da due o più subunità.
JMP consente di utilizzarli con una sottounità.
Ma in realtà il loro utilizzo è costituito da due o più sottounità.
Gli eventi e le azioni vengono applicati all'intero blocco.
Quindi questo è un punto importante.
I componenti all'interno del blocco non possono essere trattati individualmente,
ad eccezione del blocco standby.
Viene loro assegnata una distribuzione unica.
Presi insieme, questi due punti elenco significano che cose come la riparazione
o la manutenzione sulle sottounità non è possibile
all'interno di questi blocchi compositi.
Devo aspettare che l'intero blocco fallisca
prima che io possa effettivamente fare qualcosa con quel blocco
prima di poter riparare il blocco.
Se voglio distribuzioni diverse all'interno del blocco,
Nemmeno io posso farlo, fatta eccezione per lo Standby.
E ne parleremo in un esempio che faremo più avanti.
Subunità per tutti i blocchi compositi,
ad eccezione dei blocchi Serie, sono in parallelo.
La cosa che differenzia quei diversi blocchi compositi
sono il numero di componenti in esecuzione,
quando il blocco si guasta e come invecchia.
Quindi ho messo insieme una piccola tabella che copre tutti i blocchi compositi
e in che modo differiscono per queste caratteristiche.
Per tutti i blocchi compositi, ad eccezione di Standby,
tutti i componenti funzionano simultaneamente.
Con un blocco composito, posso scegliere K delle mie N unità da far funzionare
e poi le unità rimanenti come backup.
Quindi quando questi blocchi falliscono?
Ovviamente, se hai esperienza in affidabilità, un blocco in serie fallisce
quando un'unità si guasta.
Un blocco parallelo fallisce quando tutte le unità falliscono,
K da N quando hai meno di K unità, e così via.
Quindi le cose che ci si potrebbe aspettare naturalmente nell'analisi dell'affidabilità,
Standby e Condivisione presentano un altro metodo di errore.
Con l'unità di standby è presente un meccanismo di commutazione.
Potrebbe esserci un unico interruttore per l'intero isolato
oppure uno switch per ogni backup.
Lo Standby può guastarsi se ho un singolo interruttore
quando quell'interruttore fallisce, o se provo a usare
ciascuna delle mie unità di backup
e anche l'interruttore su quelle unità di backup non funziona.
Quindi un guasto dello switch potrebbe essere un'altra causa del guasto del blocco.
Lo stesso vale per la condivisione dello stress.
Tuttavia, con Stress Sharing, ho un solo interruttore.
L'ultima caratteristica che è diversa
tra questi blocchi compositi è il modo in cui invecchiano.
Nei primi tre blocchi, l'invecchiamento è uniforme.
Tutte le subunità all'interno del blocco hanno la stessa età.
Per le modalità Standby e Stress Sharing, le subunità possono invecchiare...
Per quanto riguarda Standby, l'invecchiamento può variare.
Per quanto riguarda la condivisione dello stress, invecchiano sicuramente in modo diverso.
Per standby,
Posso scegliere una singola distribuzione per le mie unità operative.
Per le mie unità di backup,
Posso scegliere che non invecchino, questo è un cold standby.
oppure posso dare loro una distribuzione diversa
su come invecchiano quando sono in modalità standby
o quando svolgono la funzione di backup.
Potrebbe essere la stessa cosa, ma le mie unità operative potrebbero essere diverse.
Quindi posso scegliere due distribuzioni diverse.
Il fatto è, ancora una volta,
come con tutti questi blocchi compositi, ottengo una distribuzione
per tutte le mie unità operative, una distribuzione per tutti i miei backup.
Non posso mescolare e abbinare.
Infine, con Stress Sharing, Stress Sharing funziona
in modo un po' diverso.
Con Stress Sharing, lo stress viene distribuito equamente tra i blocchi.
Tuttavia, quando una delle subunità fallisce,
ulteriore stress è associato alle restanti unità operative.
Quindi lo stress cambia da fallimento a fallimento.
Ne vedremo un esempio tra poco.
Ora, una delle cose che potresti aver trovato,
o potresti realizzare che a volte
vuoi avere un po' più di flessibilità
e il modo in cui posso costruire flessibilità è che posso organizzare i miei blocchi di base
o il mio blocco base come farei con un Parallelo o K da N
come uno dei miei blocchi compositi.
I blocchi di base possono essere facilmente organizzati come Serie, Parallelo o K di N
più difficile da fare con i blocchi Standby e Stress Sharing
quando hai più di due unità.
Tra poco ho un esempio
che mostra una configurazione Standby con due blocchi di base.
Il modo in cui farlo è relativamente semplice.
Ma se provassi ad estenderlo a tre blocchi,
diventa molto più difficile.
Non impossibile, solo molto difficile da fare
perché dovrei tenere traccia di cosa funziona e cosa non funziona,
cosa succede quando si verifica il guasto e così via.
Lo stesso vale per la condivisione dello stress.
Passiamo al nostro primo esempio.
Per il nostro primo esempio, esamineremo una disposizione base K su N.
Avremo cinque subunità.
Tre di loro devono essere operativi.
Avranno tutti il Weibull con un Alpha di 2.000 e un Beta di 1.
Supponiamo che quando un blocco fallisce
che ci vogliono 40 ore per sostituirlo.
Metteremo quella disposizione
in serie con un blocco composito K su N.
Supponiamo inoltre che il blocco composito K su N impieghi 40 ore
per sostituire, nonostante ci siano cinque subunità
all'interno di quel blocco che hanno fallito.
Daremo un'occhiata a che differenza fa
se li tratto come elementi individuali
o come il mio articolo composito?
Ecco come apparirebbe la mia configurazione in RSS.
L'ho mantenuto molto semplice.
Ecco le mie subunità relative al mio K di N.
Ciò che fa sì che la K derivi dalla N è il nodo.
Posso specificare quanti articoli in arrivo
devono essere operativi.
E qui ho detto che ne servono tre operativi. Ecco perché è una K da N,
questa disposizione, K su N.
E la farò molto semplice.
L'unico evento che prenderò in considerazione è se il blocco fallisce o meno,
l'unica cosa che farò sarà ripararlo come nuovo.
Andiamo avanti e procediamo.
Relativamente veloce.
Voglio spendere un po' di tempo a parlare dell'output
perché ciò che viene inviato all'output e agli stati
ci aiuterà quando inizieremo a costruire i nostri diagrammi in futuro.
Diamo un'occhiata all'ordine delle operazioni
per questo primo fallimento.
Quindi vediamo che l'unità Sub1 è guasta da 766 ore.
Il blocco viene rimosso.
Quindi è importante sottolinearlo perché è uno dei miei potenziali eventi.
Una volta rimosso il blocco, avvio il processo e sostituisco il blocco.
E dopo che il blocco è stato sostituito, dopo le 40 ore che ho specificato
nella mia configurazione il sistema si accende automaticamente.
Questo è un altro punto importante.
Ci imbatteremo nella situazione
dove per alcuni dei miei eventi, il sistema non ottiene
si accendono automaticamente e ora vi spiegherò quali sono.
Cosa dovremo fare in quei casi
è in realtà accendere il sistema, o in alcuni casi, quando il blocco
non si attiva automaticamente, attiva il blocco manualmente.
Qui abbiamo Sub3 fail e vediamo una serie di eventi simili,
Sub2 fallisce, ecc. Diamo un'occhiata a cosa succede
quando il sistema va in tilt.
E sappiamo per certo che ciò accade quando K su N fallisce.
Bene, ecco il primo caso in cui il sistema fallisce.
Di nuovo, molto simile per quanto riguarda la maggior parte delle operazioni,
ma noterai che abbassa il livello del sistema.
Nota che ha abbassato il sistema, quindi posso abbassarlo anch'io.
Disattiva tutti i blocchi del sistema.
Ancora una volta, qualcosa di importante da tenere a mente,
perché ci saranno casi in cui avremo bisogno di sapere
se un blocco è acceso o spento.
Se sia necessario o meno attivare manualmente un blocco.
Quindi eccoci alla sostituzione.
Una volta terminata la sostituzione,
tutti i blocchi vengono attivati automaticamente.
E ancora con questo sostituisci, con nuovo,
lo spegnimento e l'accensione avvengono automaticamente.
Quindi non devo preoccuparmi di questo.
Alla fine ho terminato la sostituzione del K out N e ho finito fino al prossimo guasto.
Relativamente semplice.
Se volessi dare un'occhiata a come si è comportato il mio sistema
Voglio solo avviare Result Explorer.
Per impostazione predefinita, non visualizzerò le informazioni a livello di componente.
Se voglio le informazioni a livello di componente, devo tornare all'hotspot
e scegliere se voglio una tuta,
Sceglierò il tempo di inattività in base al componente.
Ora, la cosa da tenere a mente con questa organizzazione,
questo mi sta solo dicendo
i tempi di inattività del sistema associati ai miei componenti.
Quindi questo mi dice quante volte K su N ha fatto crollare il sistema.
Per ognuno di questi,
questi corrispondevano al momento in cui quella subunità aveva disattivato il sistema.
Quindi se ci pensi, questi corrispondono ai tempi
quando la subunità è stata l'ultima delle mie cinque unità a scendere,
perché è l'unico momento in cui il sistema andrà in tilt
è quando tutte e cinque queste subunità si spengono.
Ora, se voglio guardare la distribuzione a livello di componente,
questo mi dice solo quando fa crollare il sistema.
Ma diciamo che sono interessato a sapere quanto spesso Sub1 è stato inattivo,
con quale frequenza Sub2 era inattivo e così via.
Il punto caldo, posso guardare questa stima puntuale
per la disponibilità dei componenti.
E se scorro verso il basso, ad esempio, per Sub1,
questo mi fornisce le mie informazioni distributive
per il componente stesso.
Z include non solo i momenti in cui la Subunità 1 ha messo fuori uso il sistema,
ma quando la Subunità 1 è crollata da sola.
Il modo più semplice per approfondire le singole distribuzioni di tutti i miei sottocomponenti.
Passiamo ad alcune di queste azioni ed eventi
e alcune delle proprietà particolari ad essi associate.
Cominciamo con gli eventi.
Non menzionato nella documentazione
ma Inservice è disponibile solo per i blocchi Basic.
Quindi, per ricordarti, l'Inservice si basa sull'età del blocco
e non l'età del momento della simulazione.
Quindi, ad esempio, se voglio riparare qualcosa
dopo 100 ore di utilizzo, utilizzerei un Inservice.
Altrimenti potrei usare semplicemente un evento programmato.
Un evento programmato verrebbe servito una volta alla settimana,
ma Inservice è disponibile solo per il mio blocco Basic.
Quindi mi dice se voglio usare Inservice,
Dovrò costruire questi blocchi di base.
Inizializzazione, errore di blocco e sistema inattivo
può essere utilizzato solo una volta per ogni blocco.
Quindi quello che vedrai quando li usi,
scompaiono dalla tua tavolozza di eventi, quindi non appariranno più.
Quindi puoi usarli solo una volta.
Parliamo di azioni.
Ci sono 13 azioni che posso usare.
Installa usato, Cambia distribuzione e Se possono essere utilizzati solo con i blocchi di base.
La riparazione minima può essere utilizzata solo con Basic e Series.
Quindi restano nove azioni che posso usare per qualsiasi blocco.
Quindi sono l'accensione e lo spegnimento di un blocco, l'accensione e lo spegnimento del sistema,
Sostituire con nuovo, installare nuovo, rimuovere un blocco, ispezionare il guasto,
e programma. Quindi questi sono i nove
che può essere utilizzato da qualsiasi blocco, sia quello Base che quello Composito.
Non c'è limite al numero di volte in cui un'azione può essere utilizzata su un determinato blocco.
Ecco un esempio in cui ho utilizzato Turn Off Block più di una volta.
Il motivo è che
ciò che voglio fare dopo aver acceso o quando accendo il blocco potrebbe essere diverso
a seconda di quando il blocco viene attivato.
E di nuovo, ne vedremo un esempio tra poco.
Le azioni possono essere collegate solo ad altre azioni.
In realtà, gli eventi possono essere collegati solo alle azioni.
Quindi non posso collegare un evento o un'azione a un blocco o a un altro evento.
Tuttavia, non ho limiti per quanto riguarda il numero di azioni che posso concatenare.
Alcune proprietà specifiche.
L'inizializzazione avviene solo una volta, e proprio all'inizio
dell'esecuzione della simulazione.
Faremo un esempio in cui questo fa la differenza,
dove disattivo un blocco durante un'inizializzazione,
ma quando il sistema torna online, quel blocco viene riattivato.
Quindi dovrò assicurarmi di disattivarlo manualmente.
Quindi l'inizializzazione avviene solo all'inizio.
Il sistema è inattivo si verifica per ogni blocco,
indipendentemente dal blocco che ha causato il crash del sistema.
Quindi posso usarlo come ascoltatore per vedere...
Ad esempio, se il sistema si blocca,
Potrei voler eseguire la manutenzione sul blocco anche se il blocco
stava correndo, forse solo per riportarlo su
quasi nuovo o per riportarlo come nuovo.
Quindi si verificherà un'interruzione del sistema indipendentemente dal blocco che l'ha causata.
Poi riguardo alle azioni,
Attiva Il sistema attiva tutti i blocchi disponibili.
Ora, per ogni blocco intendo tutto ciò che non è già giù
a causa di un guasto o programmato per essere inattivo.
Così potrei programmare qualcosa da fare
sia utilizzando quell'evento pianificato sia utilizzando l'azione pianificata.
Accendi il sistema attiverà tutti i miei blocchi.
I blocchi devono essere attivati manualmente
dopo aver installato nuovo, installato usato o cambiato distribuzione.
Questi sono alcuni di quei casi in cui il sistema non si accende,
il blocco non si attiva automaticamente.
Ecco perché potrei voler usare,
ad esempio, installa nuovo invece di Sostituisci con Nuovo.
Installa nuovo mi consente di fare alcune cose prima di riaccendere il sistema.
Mi dà la possibilità di eseguire altre operazioni
o altre azioni prima di accendere il sistema.
Attiva blocco non attiva il sistema se il blocco è stato disattivato manualmente.
Come abbiamo visto nell'output,
come avrai notato nell'output, indipendentemente dal fatto che il sistema sia acceso,
potrebbe apparire un evento Attiva sistema.
Non fa male accendere un sistema se è già acceso.
Quello che dico è, in caso di dubbio, aggiungi un sistema di accensione
alla tua catena di eventi per assicurarti che il sistema sia attivo.
A proposito, non importa se il blocco viene acceso per primo
oppure il sistema viene acceso per primo.
Entrambi funzionano allo stesso modo.
Bene, passiamo al nostro secondo esempio.
Quello che faremo è costruire un blocco di base
in una disposizione Standby.
Avremo un'unità principale e un'unità di riserva.
Faremo un avvio a freddo,
il che significa che l'unità di riserva, l'unità di backup, non invecchia.
Tuttavia, ci vorranno 30 minuti per avviare l'unità.
Qualcosa che non posso fare con lo standby composito.
Dopo il controllo vengono eseguite otto ore di manutenzione sul backup
viene restituito all'unità principale.
Esamineremo due diverse situazioni di commutazione.
In realtà daremo un'occhiata a un interruttore infallibile e lo faremo
per esaminare uno switch con un'affidabilità del 90%.
Per tutti i miei blocchi, assumerò Esponenziale (500).
Immagino che ci vorranno otto ore per la riparazione o la manutenzione.
I blocchi difettosi verranno sostituiti con nuovi.
Come nell'esempio precedente, esamineremo i blocchi di base
in questa disposizione in serie con un blocco di standby con la stessa configurazione,
ovviamente, fatta eccezione per quel tempo di avvio di 30 minuti,
cosa che non posso fare.
Diamo un'occhiata.
Ecco la nostra disposizione di base.
Ho la mia unità di backup, la mia unità principale, la mia unità di standby e per ciascuna di queste
Ho associato un evento di errore e un Sostituisci con Nuovo.
Una sorta di base da cui potrei iniziare.
Non so se l'ho già sottolineato in precedenza quando stavamo esaminando l'output,
ma è utile quando aggiungo un evento, aggiungere un'azione per dargli un nome univoco
perché sono i nomi che compaiono nel mio output.
Bene, iniziamo con un'unità di backup.
Quando il mio sistema sarà online al momento zero, tutto sarà acceso.
Voglio assicurarmi che al momento zero l'unità di backup venga spenta.
Per farlo utilizzerò l'inizializzazione.
Noterai che quando ho usato l'inizializzazione,
è scomparso.
La prossima cosa che voglio fare è disattivare il blocco.
Ora, se hai già utilizzato RSS in precedenza,
ricorderai che quando provo ad aggiungere un'azione,
accumulerà queste azioni una sull'altra.
A volte non è il posto migliore per loro.
Cosa potresti fare ogni volta che hai un'azione da cui partire,
Posso selezionare l'azione, fare clic e tenere premuto questo segno più
e poi trascina via il più.
Ora posso aggiungere la mia azione.
In questo caso, voglio disattivare il blocco.
Ora, non voglio che venga associato il blocco Disattiva, Sostituisci con Nuovo.
Per evitare che ciò accada, posso semplicemente eliminare la freccia.
Ora posso connettermi all'evento che desidero.
Il vantaggio di questa operazione è che ora posso spostare quel blocco ovunque io voglia.
Ho molta più flessibilità nel funzionamento di quel blocco.
L'altra cosa che farò è sicuramente etichettarli
quindi quando guardo la tabella dei risultati so cosa succede.
Questo è Disattiva Blocco...
Chiamiamolo semplicemente "disattiva backup all'avvio".
Darò a ciascuno dei miei eventi, a ciascuna delle mie azioni un nome univoco
così so quando si verificano.
In questo modo il mio backup viene disattivato all'inizio.
La prossima cosa che vorrò fare è quando l'unità principale si guasta,
Voglio accendere l'unità di backup.
Ora, di nuovo, invece di selezionare l'unità di backup e dire Attiva blocco,
Sceglierò il mio Blocco di attivazione in modo interattivo.
Eliminerò la mia connessione qui così posso spostare questo.
Ora sposterò un po' le cose.
Lo sposterò proprio qui.
Di nuovo, voglio dargli un nome in modo che se torno a questo diagramma
tra un paio di giorni saprò a cosa è associata questa azione.
Chiameremo questa accensione backup da principale.
Un'altra cosa che viene menzionata nella documentazione,
ma non so quanto fortemente, ma posso connettermi,
in questo caso, sto collegando un evento da un blocco a un'azione
in un altro isolato.
Posso sicuramente farlo.
Ora, come ho detto prima, questo attiverà il blocco
perché quel blocco è stato disattivato manualmente,
Dovrò anche accendere il sistema.
Accendere il sistema.
Di nuovo, probabilmente voglio etichettarlo,
Dirò: attiva il sistema dal backup e così via.
Ora l'unica altra cosa che devo aggiungere al mio diagramma è che
quando il mio computer principale torna online, voglio disattivare il backup,
eseguire la manutenzione del mio backup.
Ora potrei probabilmente...
Bene, cominciamo con il disattivare il backup, Disattiva Blocco.
Cancellalo.
Lo chiameremo così.
Devo aver scelto "Accendi", io ho scelto "Disattiva blocco".
Proviamo di nuovo.
Disattivare Blocca ed etichettarlo, disattivare il backup dal principale.
Ed è qui che entra in gioco il mio principale.
Ecco, ho disattivato il backup.
Voglio effettuare la manutenzione.
Il modo in cui lo farò è semplicemente Sostituisci con Nuovo.
Ok, la chiameremo semplicemente manutenzione preventiva.
Penso di aver detto che la manutenzione preventiva sta andando
ci vogliono otto ore.
Ora di nuovo, devo ricordare
che Sostituisci con Nuovo avvia automaticamente il blocco.
Quello che devo fare ora è spegnere il blocco.
Ora, pensandoci un po' più in dettaglio,
Probabilmente avrei potuto semplicemente passare direttamente dal nuovo ritorno online
per effettuare la manutenzione.
Perché una volta avviata la manutenzione del mio backup, il backup smette di funzionare.
Poi, una volta terminata la manutenzione,
spegnendo il blocco.
Questo blocco non è dannoso, ma è ridondante.
Quindi sbarazziamocene e basta.
Questa sarebbe la mia configurazione.
Mi piace sempre correre a controllare due volte per vedere se le cose funzionano
nell'ordine corretto e genererò il mio output.
In questo caso, l'ho impostato per eseguire una sola simulazione.
Potrei doverne prendere un paio
di simulazioni in base all'affidabilità associata alle mie unità.
Ecco i principali fallimenti, il sistema si spegne,
il blocco standby è spento, inserito un nuovo principale,
attiva il backup per il principale.
Se guardiamo la colonna dei predatori, ecco il mio turno di riserva per il ruolo principale.
Attiva Sistema da backup, Attiva Blocca da sistema.
Di nuovo, mi piace esaminarli una volta che li ho costruiti per assicurarmi
le cose accadono nel giusto ordine.
Il sistema di svolta si accende.
Ecco che viene installata la nuova rete principale.
Accendo il mio sistema,
di nuovo, è già acceso, ma non importa, non fa male.
Nuovo principale Sostituisci con Nuovo.
Questo è il blocco, il backup viene attivato
per ottenere un PM e così via.
Dovrebbe essere disattivato quel backup.
Di nuovo, mi piace usarli solo per ricontrollare
per far sì che le cose funzionino correttamente.
Questa è la configurazione senza l'interruttore.
Aggiungere l'interruttore è relativamente semplice.
Dove lo metteremmo, lo metteremmo
tra il guasto principale e l'avvio del backup
ed è a questo che servono i blocchi if.
Lasciatemi liberare da quella connessione.
Non importa da quale dei miei blocchi proviene
e non volevo metterlo lì.
Lasciatemi andare da... Eccoci qui.
Ho un backup nel caso in cui dovesse succedere qualcosa del genere.
Eccoci qui.
Ecco il mio backup attivato.
Ecco il mio difetto principale.
Ce ne libereremo.
Probabilmente vorrei aggiungerlo al mio blocco if in modo da poterlo spostare ovunque.
Ne prenderò uno qualsiasi e aggiungeremo un "se".
Elimina la connessione.
Mettiamoli in relazione.
Ora, il modo in cui imposterei il mio se,
il modo in cui funziona if è che valuta cosa c'è nella casella della condizione if.
Se è vero, se il risultato è uno, allora puoi continuare.
Se il risultato è zero, ci si ferma.
Quello che posso dire è che se... non ho bisogno del se lì,
Direi che l'uniforme casuale è inferiore a 0,9.
Quando ciò è vero la catena continuerà, altrimenti si fermerà lì.
Questo è tutto.
È semplicissimo inserirlo in questa istruzione if.
Di nuovo, probabilmente voglio etichettare anche questo.
Quindi se il passaggio ha successo o qualcosa del genere.
A questo punto, l'unico inconveniente è: cosa succederebbe se lo switch non funzionasse?
Bene, lo switch non funziona, bisognerà aspettare che la rete principale torni online.
Il sistema principale torna online e prova a disattivare il backup.
Non fa male provare a spegnere qualcosa che è già spento.
Ma la cosa che potrei non voler fare
potrei non voler effettuare la manutenzione se il backup non è stato utilizzato.
In un esempio successivo, vedremo come aggirare questo problema,
come esaminare il sistema e dire: il backup è in esecuzione?
Se non funziona, sì, fai la manutenzione.
Se è in funzione, non è necessaria la manutenzione.
Passiamo al prossimo esempio.
In questo caso ho due pompe che funzionano in parallelo con una manutenzione preventiva
eseguito ogni due settimane per una durata di otto ore.
I PM sono scaglionati di una settimana per evitare che entrambe le pompe siano ferme
allo stesso tempo.
In caso di guasto di una pompa, la riparazione è minima e richiede quattro ore.
In questo caso la simulazione viene eseguita per un anno.
Cominciamo dalle basi.
Ecco le mie pompe con i guasti e le sostituzioni.
Come posso impostare l'attesa di una settimana prima di iniziare i messaggi privati?
Come nell'ultimo esempio, inizierò con l'inizializzazione.
Quello che dirò è di aspettare una settimana.
Come si dice aspettare una settimana?
Bene, quello che farò è usare l'azione di pianificazione.
Farò quello che ho fatto in passato.
Imposteremo la pianificazione ed elimineremo la mia connessione.
Ho diverse opzioni di orario.
Voglio che accada solo una volta. Voglio che accada fin dall'inizio.
quindi è collegato al mio evento di inizializzazione.
Chiameremo questa attesa una settimana.
Voglio che ciò accada solo una volta.
Voglio che ci vogliano 168 ore.
Questo perché ho impostato la mia simulazione in poche ore.
Ciò che fa è che all'inizio attende una settimana
e poi esegue qualsiasi azione a cui mi collego qui.
Quale azione intendo collegare?
Bene, userò di nuovo la programmazione.
Ciò che accadrà sarà un PM sulla pompa 2.
Lascerò vuoto il campo relativo alla mia occorrenza massima.
E così via fino alla fine della simulazione.
Il tempo di completamento sarà 168x2, quindi 336.
Ora, quello che succede è che dopo quella prima settimana, ogni 336 ore,
Potrò eseguire un'altra operazione.
Questa operazione prevede un paio di modi diversi per farlo.
Supponiamo che sia PM [inudibile 00:37:03].
Quindi diremo: Sostituisci con Nuovo.
Posso dire qui: sostituire la pompa B.
Ora, una delle cose che potresti pensare è che
cosa succede se vado a fare la mia manutenzione preventiva
e tutto è scaglionato ma per qualche ragione la pompa A è inattiva,
potrebbe aver avuto un guasto.
Non necessariamente toglierei la mia pompa B
per la manutenzione preventiva.
Fatelo e abbattete il sistema. Quello che useremo è...
per utilizzare una variabile nascosta denominata contesto di simulazione.
Il contesto di simulazione è il modo in cui posso osservare il mio sistema.
Quello che faremo è mettere il contesto della simulazione,
lo inseriremo tra la manutenzione preventiva programmata e quella effettiva.
Facciamolo.
Eliminiamolo e implementiamolo con un if.
Lasciami connettermi e chiameremo questo, se la pompa A funziona,
Ora la domanda è: come faccio a sapere se la pompa A funziona?
Bene, nella mia condizione if, devo specificare la variabile nascosta
che è associato alla pompa A... Che sia attiva o meno.
Il modo in cui lo farei è il contesto della simulazione
e il caso non ha importanza.
Contesto di simulazione e variabili,
le variabili di sistema vengono memorizzate come associate all'array.
Questo è chiamato stato della pompa A.
Ora quello che ho scoperto è che,
questa particolare parte della finestra di dialogo non è altrettanto flessibile.
Se ho qualcosa di più complesso che voglio costruire,
quindi di solito lo faccio in una finestra di script e poi lo copio e poi lo incollo
in questa finestra.
Ma si tratta di un numero relativamente piccolo e continueremo a scrivere.
Diremo che è attivo.
Ecco cosa userei.
Ora, come ho fatto a sapere che era proprio quello che dovevo usare?
Bene, a quanto pare, questa è una condizione e un po'
più avanti, quando parleremo della condivisione dello stress,
questo funziona come uno script.
Cosa so fare e cosa ho fatto spesso
viene inserito in un estratto conto, come faccio a sapere cosa è disponibile per me?
Mettiamo lì una dichiarazione stampata
e diremo contesto di simulazione di stampa, okay.
L'unica cosa di cui dobbiamo essere sicuri
è quella istruzione if, l'ultima istruzione in quella condizione if valuta true.
Solo per mostrarti cosa succede
quando faccio questo, andiamo avanti ed eseguiamo questo.
Lo farò solo per darti un'idea
di ciò che viene stampato nel registro.
Lasciami andare avanti e prendere il mio registro ed è finito su uno dei miei altri...
Ecco qua, ecco il mio registro
e ci siamo.
Ecco cosa è stato stampato sul registro.
Questo mi fornisce informazioni su tutte le variabili disponibili
nel contesto della simulazione per questo particolare diagramma.
Se avessi messo più blocchi lì dentro, più azioni, più eventi
poi apparirebbero anche queste, e apparirebbero anche le informazioni su di esse.
Ma questo è un buon modo per dirlo
cosa c'è nel mio sistema e quali sono le variabili a cui ho accesso.
La cosa importante da ricordare qui è
Posso leggere questo, ma non posso scrivere su questa particolare variabile.
Non ho questa opzione per cambiare le cose nella mia simulazione,
ma posso usare queste informazioni.
Tornando al nostro ultimo esempio, cosa avrei potuto fare
avrei potuto inserire un'istruzione if lì dentro
e ha detto che se il mio backup era attivo,
beh allora abbassalo, fai la manutenzione.
Va bene.
Ora, per una questione di tempo, vado avanti
l'ultima informazione che voglio condividere con voi.
A proposito, avrò un diario disponibile,
dovrebbe avere una descrizione disponibile,
Vi fornirò altri esempi che non ho avuto il tempo di trattare.
Vedrai un altro paio di azioni
non abbiamo avuto la possibilità di vedere come vengono implementati
e forse alcune altre cose
potrebbe non essere molto semplice.
La condivisione personalizzata dello stress è un po' insolita nel senso che per impostazione predefinita,
lo stress è equamente ripartito tra le subunità.
Viene implementato modificando il modo in cui questo blocco invecchia
e senza alterare esplicitamente la distribuzione.
Quando non ho condivisione dello stress, diciamo che ho n subunità in parallelo,
Supponiamo che il primo fallisca al momento uno, il secondo al momento due e così via.
Condividendo lo stress, il modo in cui invecchio il blocco
è che il primo guasto si verifica in t una volta n,
volte il numero di unità lavorative.
Il secondo invecchia il blocco di un ulteriore n meno uno
volte la differenza tra il mio primo e il mio secondo fallimento.
Il terzo n meno due volte la differenza tra
il terzo, il secondo fallimento e così via.
È così che invecchiano i blocchi.
Queste sono le informazioni che vengono trasmesse a quella funzione personalizzata.
Quando provo a integrare questo nella mia condivisione dello stress,
Ok, allora lasciatemi condividere con voi quest'ultimo esempio su come è impostato.
Lasciatemi trovare il mio esempio.
Bene, ecco tre diverse condivisioni dello stress.
C'è la mia condivisione di base dello stress, quindi l'ho impostata come base.
Ecco la mia abitudine.
Questa è la fine di cui sto parlando.
Saprai che è incorporato in questa funzione di registro.
Viene fatto in questo modo in modo che l'invecchiamento del blocco corrisponda
con le distribuzioni che posso utilizzare per il mio blocco di condivisione dello stress personalizzato.
Quello che faccio è pensare alle cose in termini di spiegazione
che la prima unità invecchia a un certo numero di volte il tempo,
il secondo a un moltiplicatore per la differenza tra
il mio primo e secondo fallimento, e così via. Questo è il modo in cui la penso
su tutte queste cose. Per esempio, diciamo che volessi impostare,
Bene, prima di andare avanti, vorrei solo dire brevemente,
come con il blocco if posso inserire qui istruzioni print.
Se dovessi scrivere qui una dichiarazione stampata,
noterai che questo viene eseguito prima dell'avvio del sistema,
quindi stamperà cinque e stamperà cinque
perché in questo caso il blocco ha cinque unità.
Ne stamperò cinque quando il primo fallirà,
tornerà alla funzione stampa quattro,
e così via, e così via e così via.
Supponiamo che volessi impostarlo come un errore personalizzato in cui il blocco
invecchia a 10 volte, non 5 volte, ma 10 volte la velocità,
il secondo invecchia a cinque anni, il terzo a tre.
Il secondo invecchia a uno,
e l'ultimo è sottoposto a stress eccessivo e invecchia due volte più velocemente.
Quello che potrei fare è,
di nuovo, mettiamolo qui.
Lasciami aggiungere un po' di spazio
e rendere la mia scatola un po' più grande.
Potrei scrivere qualcosa del tipo:
di nuovo, voglio mettere quel registro, quel registro deve essere lì,
log e direi qualcosa come scegliere.
Ciò che choose fa in base a n, restituirà,
vediamo, quando c'è un'unità, voglio che restituisca metà, uno con due unità,
diciamo 2,5 con 3 unità,
5 con 4 unità e infine 10.
Ecco come creerei la mia condivisione personalizzata dello stress.
Non sono limitato a questa funzione di scelta.
Ecco qui, in questo esempio particolare,
Sto utilizzando una funzione.
Ok, di nuovo, la cosa importante qui
è che tutto questo viene incorporato in questa funzione di registro in modo che l'invecchiamento
del blocco e le distribuzioni possono corrispondere.
Ok, purtroppo è tutto ciò di cui ho tempo per parlare oggi.
Vorrei avere più tempo. Ce n'è sicuramente molto
di altre cose di cui potremmo parlare.
Questi saranno nei materiali che ti ho fornito,
e mi piacerebbe sentire il tuo feedback
e le domande e i commenti che avete.
Grazie ancora per il tempo che ci hai dedicato. Guardalo.
Spero che questo sia davvero utile. Grazie.