Grazie per aver dedicato del 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.
Potresti voler imparare un po' di più.
Potresti sentirti frustrato perché ci sono cose
che stai cercando di fare qualcosa 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 prove ed errori
che non sono nella documentazione,
e anche cose che ho imparato parlando con lo sviluppatore
sulla piattaforma, cose che non potresti trovare
ogni altro modo.
Presumo che tu abbia avuto una certa esposizione a questa piattaforma.
Presumo che tu sappia qualcosa sull'analisi dell'affidabilità,
quindi non devo entrare nei dettagli in termini di cos'è una configurazione parallela,
cos'è qualcosa che è K su N e così via.
Quindi ho una serie di esempi che voglio trattare,
molti materiali. Iniziamo.
Ora, prima di guardarlo davvero
la piattaforma di simulazione di sistemi riparabili, lascia che ti dia solo una panoramica.
Spero che tu l'abbia già usato, che ti sia familiare,
parleremo di tre diversi componenti
e aspetti relativi ai componenti che non sono presenti nella documentazione
o non sono ben spiegati nella documentazione.
La prima cosa di cui parleremo sono i blocchi.
I blocchi sono ciò che utilizzo per costruire i miei oggetti di simulazione del sistema riparabile
come Parallelo, K su N, Standby.
Quindi per ogni blocco posso associare un evento a quel blocco.
Questi sono i piccoli blocchi arancioni che vediamo, e per ogni blocco,
Posso associare uno o più risultati o azioni.
Quelli sono quei punti blu che vediamo,
e questo mi aiuterà a costruire la mia simulazione.
Ad esempio, potrei voler sapere quando un blocco fallisce
e quando il blocco fallisce, potrei voler ripararlo,
e la riparazione potrebbe richiedere, diciamo, 40 ore.
Questa è l'idea alla base della creazione di questi diagrammi RSS.
Cominciamo col parlare di
alcune delle proprietà generali dei blocchi.
Ci sono sei blocchi diversi in un nodo,
che mi permette di legare insieme le cose all'interno del diagramma.
Cinque di questi sei blocchi sono compositi.
Sono stati costruiti per essere costituiti da due o più subunità.
JMP consente di utilizzarli con una subunità.
Ma in realtà, il caso d'uso è che siano costituiti da due o più subunità.
Eventi e azioni vengono applicati all'intero blocco.
Quindi questo è un punto importante.
I componenti all'interno del blocco non possono essere trattati singolarmente,
ad eccezione del blocco standby.
Viene loro assegnata un'unica distribuzione.
Presi insieme, questi due punti elenco significano cose come la riparazione
o la manutenzione delle subunità non è possibile
all'interno di questi blocchi compositi.
Devo aspettare che l'intero blocco fallisca
prima di poter effettivamente fare qualsiasi cosa con quel blocco
prima di poter riparare il blocco.
Se voglio distribuzioni diverse all'interno del blocco,
Nemmeno io posso farlo, ad eccezione dello Standby.
E ne parleremo in un esempio che avremo un po' più avanti.
Subunità per tutti i blocchi compositi,
ad eccezione dei blocchi Serie, sono in parallelo.
La cosa che differenzia questi diversi blocchi compositi
sono il numero di componenti in esecuzione,
quando il blocco fallisce e come invecchia il blocco.
Quindi ho messo insieme una piccola tabella che riepiloga tutti i blocchi compositi
e come differiscono con quelle caratteristiche.
Per tutti i blocchi compositi, ad eccezione di Standby,
tutti i componenti funzionano contemporaneamente.
Con un blocco composito, posso scegliere K delle mie N unità da far funzionare
e poi le unità rimanenti da utilizzare come backup.
Allora quando falliscono questi blocchi?
Ovviamente, se hai esperienza in termini di affidabilità, un blocco Series fallisce
quando un'unità si guasta.
Un blocco parallelo fallisce quando tutte le unità falliscono,
K su N quando hai meno di K unità e così via.
Quindi le cose che potresti aspettarti naturalmente nell'analisi dell'affidabilità,
Standby e Condivisione hanno un altro metodo di fallimento.
Con l'unità di standby è presente un meccanismo di commutazione.
Potrebbe esserci un interruttore per l'intero blocco
o uno switch per ogni backup.
Lo Standby può fallire se ho un solo interruttore
quando l'interruttore fallisce o se provo a utilizzare
ciascuna delle mie unità di backup
e anche l'accensione di quelle unità di backup fallisce.
Quindi il fallimento dell'interruttore potrebbe essere un'altra causa del fallimento del blocco.
La stessa cosa vale con la condivisione dello stress.
Tuttavia, con Stress Sharing, ho a disposizione un solo interruttore.
La caratteristica finale è diversa
tra questi blocchi compositi è il modo in cui invecchiano.
Per i primi tre blocchi invecchiano allo stesso modo.
Tutte le subunità all'interno del blocco invecchiano allo stesso modo.
Per Standby e Stress Sharing, le subunità possono invecchiare...
Per Standby, possono invecchiare in modo diverso.
Per quanto riguarda lo Stress Sharing, invecchiano decisamente in modo diverso.
Per la modalità standby,
Posso scegliere un'unica distribuzione per le mie unità operative.
Per le mie unità di backup,
Posso scegliere che non invecchiano, questo è il cold standby.
oppure posso dare loro una distribuzione diversa
su come invecchiano quando sono in modalità standby
o quando agiscono come backup.
Potrebbe essere lo stesso perché le mie unità operative potrebbero essere qualcosa di diverso.
Quindi posso scegliere due diverse distribuzioni.
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 lo Stress Sharing, lo Stress Sharing funziona
un po' diversamente.
Con la condivisione dello stress, 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 rendertene conto a volte
vuoi avere un po' più di flessibilità
e il modo in cui posso sviluppare la flessibilità è che posso organizzare i miei blocchi di base
o il mio blocco base come farei con un Parallelo o K su N
come uno dei miei blocchi compositi.
I blocchi di base possono essere facilmente disposti come Serie, Parallelo o K su N
più difficile da fare con i blocchi Standby e Stress Sharing
quando hai più di due unità.
Tra poco farò un esempio
che mostra una configurazione di Standby con due blocchi base.
Relativamente semplice come farlo.
Ma se provassi ad estenderlo a tre blocchi,
diventa molto più difficile.
Non impossibile, solo molto difficile da realizzare
perché dovrei tenere traccia di cosa funziona e cosa non funziona,
cosa succede quando si verifica l'errore e così via.
La stessa cosa vale anche per lo Stress Sharing.
Andiamo al nostro primo esempio.
Per il nostro primo esempio, esamineremo una disposizione base di K su N.
Avremo cinque subunità.
Tre di loro devono essere operativi.
Avranno tutti il Weibull con un Alpha di 2.000, Beta di 1.
Lo supporremo quando un blocco fallisce
che ci vogliono 40 ore per sostituirlo.
Metteremo questo accordo
in serie con un blocco composito K su N.
Assumeremo inoltre che il blocco composito K su N richieda 40 ore
da sostituire, nonostante siano presenti 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 mio oggetto composito?
Questo è come apparirebbe la mia configurazione in RSS.
L'ho mantenuto molto semplice.
Ecco le mie subunità rispetto alla mia K su N.
Ciò che lo rende una K di N è nel nodo.
Posso specificare quanti degli articoli in arrivo
è necessario che sia operativo.
E qui ho detto che ne servono tre operativi. Quindi questo è ciò che lo rende una K da N,
questa disposizione, K su N.
E lo manterrò molto semplice.
L'unico evento che esaminerò è se il blocco fallisce o meno,
l'unica azione che intendo intraprendere è ripararla come nuova.
Andiamo avanti ed eseguiamolo.
Relativamente veloce.
Voglio spendere un po' parlando del risultato
perché ciò che viene inviato all'output e agli stati
ci aiuterà quando inizieremo a costruire i nostri diagrammi in futuro.
Diamo solo un'occhiata all'ordine delle operazioni
per questo primissimo fallimento.
Quindi vediamo che sono 766 ore che l'unità Sub1 non funziona.
Il blocco viene rimosso.
Quindi è importante notarlo perché è uno dei miei potenziali eventi.
Quindi il blocco viene rimosso, avvio il processo, sostituisco il blocco.
E dopo la sostituzione del blocco, dopo le 40 ore da me specificate
nella mia configurazione, il sistema si accende automaticamente.
Quindi questo è un altro punto importante.
Ci imbatteremo nella situazione
dove per alcuni dei miei eventi il sistema non riesce
attivato automaticamente e parlerò di quali sono.
Cosa dovremo fare in questi casi
è effettivamente accendere il sistema o, in alcuni casi, quando lo blocca
non si accende automaticamente, attiva il blocco manualmente.
Qui abbiamo Sub3 fallito e vedi una serie simile di eventi,
Sub2 fallisce, ecc. Diamo un'occhiata a cosa succede
quando il sistema va giù.
E sappiamo che ciò accade con certezza quando K su N fallisce.
Ok, ecco il primo caso in cui il sistema fallisce.
Ancora una volta, molto simili rispetto alla maggior parte delle operazioni,
ma noterai che spegne il sistema.
Nota che ha spento il sistema, quindi posso spegnerlo io.
Spegne tutti i blocchi nel sistema.
Ancora una volta, qualcosa di importante da tenere a mente,
perché ci saranno casi in cui avremo bisogno di sapere
se un blocco è attivato o disattivato.
Se dobbiamo o meno attivare manualmente un blocco.
Quindi eccoci alla sostituzione.
Una volta terminata la sostituzione,
tutti i blocchi si accendono automaticamente.
E ancora con questo sostituire, con nuovo,
lo spegnimento e l'accensione avvengono tutti in automatico.
Quindi non devo preoccuparmi di questo.
Alla fine, ho terminato la sostituzione di K out N e ho finito fino al prossimo fallimento.
Relativamente semplice.
Se volessi dare un'occhiata a come ha funzionato il mio sistema
Lancerò semplicemente il mio Esplora risultati.
Per impostazione predefinita, non vedrò le informazioni a livello di componente.
Se desidero informazioni a livello di componente, devo tornare all'hotspot
e scegli se voglio una tuta,
Sceglierò i tempi 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 associato ai miei componenti.
Quindi questo mi dice quante volte K su N ha disattivato il sistema.
Per ognuno di questi,
questi corrispondevano a quando quella subunità ha messo fuori uso il sistema.
Quindi se ci pensi, questi corrispondono ai tempi
quando la subunità fu l'ultima delle mie cinque unità a crollare,
perché sarà l'unico momento in cui il sistema crollerà
è quando tutte quelle cinque subunità vanno giù.
Ora, se voglio guardare la mia distribuzione a livello di componente,
questo mi dice solo quando fa cadere il sistema.
Ma supponiamo che mi interessi quanto spesso Sub1 era inattivo,
quanto spesso Sub2 era inattivo e così via.
L'hotspot, posso guardare questa stima dei punti
per la disponibilità dei componenti.
E se scorro verso il basso, ad esempio, per Sub1,
questo mi dà le mie informazioni distributive
per il componente stesso.
Z include i tempi non solo in cui la Subunità 1 ha disattivato il sistema,
ma quando la subunità 1 è crollata.
Il modo più semplice per immergersi nelle singole distribuzioni di tutti i miei sottocomponenti.
Passiamo ad alcune di queste azioni ed eventi
e alcune delle proprietà particolari ad essi associate.
Inizieremo dagli eventi.
Non menzionato nella documentazione
ma Inservice è disponibile solo per i blocchi Basic.
Quindi, per ricordartelo, Inservice si basa sull'età del blocco
e non l'età del momento della simulazione.
Quindi, ad esempio, se voglio servire qualcosa
dopo 100 ore di utilizzo utilizzerei un Inservice.
Altrimenti, potrei usare solo un evento programmato.
Un evento programmato verrebbe servito una volta alla settimana,
ma Inservice è disponibile solo per il mio blocco Basic.
Allora 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 tavolozza degli eventi, quindi non verranno più visualizzati.
Quindi puoi usarli solo una volta.
Parliamo di azioni.
Ci sono 13 azioni che posso usare.
Installa usato, Modifica distribuzione e Se possono essere utilizzati solo con i blocchi Basic.
La riparazione minima può essere utilizzata solo con Basic e Series.
Quindi questo ci lascia nove azioni che posso usare per qualsiasi blocco.
Quindi sono Accendi e spegni un blocco, Accendi e spegni il sistema,
Sostituisci con nuovo, Installa nuovo, Rimuovi un blocco, Ispeziona errore,
e Programmazione. Quindi questi sono i nove
che qualsiasi blocco, sia quello Base che quello Composito, può utilizzare.
Non c'è limite al numero di volte in cui un'azione può essere utilizzata per un dato blocco.
Quindi ho un esempio in cui ho utilizzato Turn Off Block più di una volta.
Il motivo è quello
quello che voglio fare dopo aver acceso o quando accendo il blocco potrebbe essere diverso
a seconda di quando il blocco viene attivato.
E ancora, ne vedremo un esempio tra poco.
Le azioni possono essere collegate solo ad altre azioni.
Gli eventi, infatti, possono essere collegati solo ad azioni.
Quindi non riesco a collegare un evento o un'azione ad un blocco o ad un altro evento.
Tuttavia, sono illimitato in termini di numero di azioni che posso concatenare.
Alcune proprietà specifiche.
L'inizializzazione avviene solo una volta ed è proprio all'inizio
dell'esecuzione della simulazione.
Avremo un esempio in cui questo fa la differenza,
dove spengo un blocco all'inizializzazione,
ma quando il sistema torna online, quel blocco, si riaccende.
Quindi dovrò assicurarmi di spegnerlo manualmente.
Quindi l'inizializzazione avviene solo all'inizio.
Il sistema è inattivo si verifica per ogni blocco,
indipendentemente da quale blocco abbia bloccato il sistema.
Quindi posso usarlo come ascoltatore per vedere...
Ad esempio, se il sistema non funziona,
Potrei voler eseguire la manutenzione sul blocco anche se il blocco
correva, forse solo per riportarlo su
quasi nuovo o riportarlo come nuovo.
Quindi si verificherà un sistema inattivo indipendentemente da quale blocco lo ha interrotto.
Poi riguardo alle azioni,
Attiva Il sistema attiva ogni blocco disponibile.
Ora, per ogni blocco intendo tutto ciò che non è già crollato
a causa di un guasto o di un'interruzione programmata.
Quindi potrei programmare qualcosa da fare
utilizzando l'evento pianificato o l'azione pianificata.
Accendi il sistema accenderà tutti i miei blocchi.
I blocchi devono essere attivati manualmente
dopo Installa nuovo, Installa usato o Modifica distribuzione.
Questi sono un paio di casi in cui il sistema non si accende,
il blocco non si attiva automaticamente.
Questo è il motivo per cui potrei voler utilizzare,
ad esempio, installa nuovo invece di Sostituisci con nuovo.
Installa nuovo mi consente di eseguire alcune operazioni prima di riaccendere il sistema.
Mi dà la possibilità di eseguire altre operazioni
o altre azioni prima di accendere il sistema.
Attiva blocco non accende 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,
potresti visualizzare un evento di attivazione del sistema.
Non fa male accendere un sistema se il sistema è già acceso.
Quello che dico è, in caso di dubbio, aggiungere un Turn on System
alla catena di eventi per assicurarsi che il sistema sia attivo.
A proposito, non importa se il blocco viene attivato prima
oppure il sistema viene acceso per primo.
Entrambi funzionano allo stesso modo.
Va bene, passiamo al nostro secondo esempio.
Quello che faremo è costruire un blocco base
in una disposizione di standby.
Avremo un'unità principale e un'unità di riserva.
Faremo un avvio a freddo,
ciò significa che l'unità di riserva, l'unità di backup, non invecchia.
Tuttavia, saranno necessari 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 cambio.
In realtà esamineremo un interruttore infallibile e lo faremo
per esaminare un interruttore in cui abbiamo un'affidabilità del 90%.
Per tutti i miei blocchi, assumerò Esponenziale (500).
Impiegherò 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 riserva con la stessa configurazione,
ovviamente, ad eccezione del 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 riserva e per ognuna di queste
Ho associato un evento di errore e un Sostituisci con Nuovo.
Più o meno l'ossatura di ciò con cui potrei iniziare.
Non so se ho sottolineato in precedenza quando stavamo guardando l'output,
ma è utile quando aggiungo un evento, aggiungo un'azione per dargli un nome univoco
perché questi sono i nomi che appaiono nel mio output.
Va bene, allora cominciamo con un'unità di riserva.
Quando il mio sistema sarà online al tempo zero, tutto sarà acceso.
Voglio assicurarmi che al momento zero l'unità di backup venga spenta.
Il modo in cui lo farò è utilizzare 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,
ti ricorderai che quando provo ad aggiungere un'azione,
accumulerà queste azioni una sopra l'altra.
A volte non è la posizione migliore per loro.
Cosa potresti fare ogni volta che hai un'azione su cui lavorare,
Posso selezionare l'azione, fare clic e tenere premuto questo segno più
e poi trascina via il plus.
Ora posso aggiungere la mia azione.
In questo caso, voglio disattivare il blocco.
Ora, non voglio che il blocco Disattiva sia associato a questo, Sostituisci con Nuovo.
Quello che farò per evitare che ciò accada è semplicemente eliminare la freccia.
Ora posso collegarmi all'evento che desidero.
Il vantaggio di farlo è che ora posso spostare il blocco ovunque voglio.
Ho molta più flessibilità con il modo in cui funziona il blocco.
L'altra cosa che farò è che voglio assolutamente etichettarli
quindi so che quando guarderò la tabella dei risultati, saprò cosa succede.
Questo è Disattiva blocco...
Chiamiamo semplicemente questa disattivazione del backup all'avvio.
Darò a ciascuno dei miei eventi, a ciascuna delle mie azioni un nome univoco
quindi so quando si verificano.
Ciò disattiva il mio backup all'inizio.
La prossima cosa che vorrò fare sarà quando l'unità principale si guasta,
Voglio accendere l'unità di backup.
Ora, ancora una volta, invece di selezionare l'unità di backup e dire Attiva blocco,
Sceglierò il blocco Attiva in modo interattivo.
Eliminerò la mia connessione qui in modo da poterla spostare.
Sposterò un po' le cose.
Lo sposterò proprio qui.
Ancora una volta, voglio chiamarlo in modo che se torno a questo diagramma
tra un paio di giorni, so a cosa è associata questa azione.
Chiameremo questa attivazione backup da main.
Un'altra cosa menzionata nella documentazione,
ma non so quanto forte, ma posso connettermi,
in questo caso, sto collegando un evento da un blocco a un'azione
in un altro blocco.
Posso farlo sicuramente.
Ora, come ho detto prima, questo attiverà il blocco
perché quel blocco è stato disattivato manualmente,
Dovrò accendere anche il sistema.
Accendi il sistema.
Ancora una volta, probabilmente vorrò etichettarlo come
Dirò: attiva il sistema dal backup e così via.
Ora l'unica altra cosa che devo aggiungere al mio diagramma è questa
quando il mio main torna online, voglio disattivare il backup,
eseguire la manutenzione del mio backup.
Ora probabilmente potrei...
Bene, iniziamo disattivando il backup, Disattiva Blocco.
Eliminalo.
Lo chiameremo.
Devo aver scelto "Accendi", ho scelto "Disattiva blocco".
Proviamolo di nuovo.
Disattiva Blocca ed etichettalo, disattiva il backup da principale.
È lì che il mio piatto principale arriva online.
Lì ho disattivato il backup.
Voglio eseguirne la manutenzione.
Il modo in cui lo farò è semplicemente sostituire con Nuovo.
Ok, la chiameremo semplicemente manutenzione preventiva.
Penso di aver detto che la manutenzione preventiva sta andando avanti
ci vogliono otto ore.
Adesso di nuovo, devo ricordare
che Sostituisci con Nuovo avvia automaticamente il blocco.
Quello che dovrò fare adesso è disattivare il blocco.
Ora, pensandoci un po' più nel dettaglio,
Probabilmente sarei potuto andare direttamente dal nuovo e tornare online
a fare la manutenzione.
Perché una volta avviata la manutenzione del mio backup, il backup smette di funzionare.
Poi, una volta terminata la manutenzione,
disattivando il blocco.
Questo blocco non fa male, ma è ridondante.
Quindi liberiamocene e basta.
Questa sarebbe la mia configurazione.
Mi piace sempre correre a ricontrollare per vedere se le cose funzionano
nell'ordine corretto e genererò il mio output.
In questo caso, l'ho impostato solo per eseguire una simulazione.
Potrei doverne prendere un paio
di simulazioni a seconda dell'affidabilità associata alle mie unità.
Ecco i principali guasti, il sistema si blocca,
si spegne il blocco standby, inserire un nuovo main,
attiva il backup per main.
Se guardiamo la colonna Predator, c'è il mio turno di backup come main.
Attiva Sistema dal backup, Attiva Blocca per sistema.
Ancora una volta, mi piace esaminarli una volta che li ho costruiti per essere sicuro
le cose accadono nel giusto ordine.
Il sistema Turn viene acceso.
Ecco la nuova main che è stata inserita.
Accendo il mio sistema,
ripeto, è già acceso, ma non importa, non fa male.
Nuovo principale Sostituisci con Nuovo.
Questo è il blocco, il backup che viene trasformato
per ottenere un PM e così via.
Dovrebbe esserci il backup disattivato.
Ancora una volta, mi piace usarli solo per ricontrollare
per far sì che le cose funzionino correttamente.
Questa è la configurazione senza interruttore.
Aggiungere l'interruttore è relativamente semplice.
Dove lo metteremmo, lo metteremmo
tra il guasto principale e l'avvio del backup
ed è per questo che sono fatti i blocchi if.
Lasciami liberarmi di quella connessione.
Non importa da quale dei miei blocchi provenga
e non volevo metterlo lì.
Lasciami andare da...Eccoci qui.
Ho un backup nel caso in cui accadesse qualcosa del genere.
Eccoci qui.
C'è il mio backup in fase di accensione.
Questo è il mio difetto principale.
Ce ne libereremo.
Probabilmente voglio aggiungere il mio blocco if in modo da poterlo spostare ovunque.
Ne prenderò uno qualsiasi e aggiungeremo un if.
Elimina la connessione.
Colleghiamolo.
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 vale uno, allora continua ad andare.
Se vale zero, ti fermi.
Quello che posso dire è che se... Non ho bisogno del se lì,
Dirò che l'uniforme casuale è inferiore a 0,9.
Quando ciò sarà vero la catena continuerà, altrimenti si fermerà lì.
Questo è tutto.
È semplicissimo inserire l'istruzione if.
Ancora una volta, probabilmente voglio etichettare anche questo.
Quindi, se il passaggio ha successo o qualcosa del genere.
A questo punto, l'unico inconveniente è: cosa accadrebbe se il passaggio fallisse?
Beh, lo scambio è fallito, bisognerà aspettare finché la rete principale non tornerà online.
Main torna online e tenta di disattivare il backup.
Non fa male provare a spegnere qualcosa che è già spento.
Ma la cosa che potrei non voler fare
è che potrei non voler eseguire la manutenzione se il backup non fosse utilizzato.
In un esempio successivo, vedremo come aggirare il problema,
come esaminare il sistema e dire: il backup è in esecuzione?
Se non funziona, sì, esegui 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 impiegando otto ore.
I PM sono scaglionati di una settimana per evitare di spegnere entrambe le pompe
allo stesso tempo.
Se una pompa si guasta, viene eseguita una riparazione minima che richiede quattro ore.
In questo caso la simulazione viene eseguita per un anno.
Cominciamo con le ossa nude qui.
Ecco le mie pompe con i guasti e le sostituzioni delle pompe.
Come posso impostare l'attesa di una settimana prima dell'avvio dei messaggi privati?
Come nell'ultimo esempio, inizierò con l'inizializzazione.
Quello che dirò è aspettare una settimana.
Come si dice aspetta una settimana?
Bene, quello che farò è utilizzare l'azione di pianificazione.
Farò quello che ho fatto in passato.
Imposteremo il programma, elimineremo la mia connessione.
Ho una serie di opzioni diverse con il programma.
Voglio che ciò 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 vorranno 168 ore.
Questo perché ho impostato la mia simulazione in poche ore.
Ciò che fa è aspettare una settimana all'inizio
e quindi esegue qualsiasi azione a cui mi connetto qui.
Qual è l'azione che collegherò?
Bene, userò di nuovo il programma.
Quello che sarà sarà PM sulla pompa 2.
Lascerò vuota la mia occorrenza massima.
Quindi lo fa fino alla fine della simulazione.
Il tempo di completamento sarà 168x2 quindi 336.
Quello che succede è che dopo la prima settimana, ogni 336 ore,
Potrò eseguire un'altra operazione.
Quell'operazione ha un paio di modi diversi per farlo.
Daremo per scontato che sia PM [00:37:03 non udibile].
Quindi diremo: Sostituisci con Nuovo.
Posso dire qui, sostituire la pompa B.
Ora, una delle cose che potresti pensare è questa
cosa succede se vado a fare la manutenzione preventiva
e tutto è scaglionato, ma per qualche motivo la pompa A non funziona,
potrebbe aver avuto un fallimento.
Non necessariamente toglierei la mia pompa B
per la manutenzione preventiva.
Fatelo e smontate il sistema. Ciò che useremo è che stiamo andando
per utilizzare una variabile nascosta chiamata contesto di simulazione.
Il contesto della simulazione è il modo in cui posso esaminare il mio sistema.
Ciò che faremo è inserire il contesto della simulazione,
lo inseriremo tra la manutenzione preventiva programmata e quella effettiva.
Facciamolo.
Eliminiamolo e lo implementeremo con un if.
Fammi connettere e chiameremo così, 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
è associato alla pompa A... Che sia attivo o meno.
Il modo in cui lo farei è il contesto di simulazione
e il caso non ha importanza.
Contesto della 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, quindi lo copio e poi lo incollo
in questa finestra.
Ma questo è relativamente piccolo e andremo avanti e continueremo a scrivere.
Diremo che è attivo.
Questo è quello che userei.
Ora, come facevo a sapere che è quello che devo 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 posso fare e cosa ho fatto spesso
viene inserito in una dichiarazione stampata, come faccio a sapere cosa è a mia disposizione?
Inseriamo lì una dichiarazione stampata
e diremo contesto di simulazione di stampa, ok.
L'unica cosa di cui dobbiamo essere sicuri
è l'istruzione if, l'ultima affermazione della condizione if valuta vero.
Solo per mostrarti cosa succede
quando lo faccio, andiamo avanti ed eseguiamolo.
Lo farò solo per darti un'idea
di ciò che viene stampato nel registro.
Lasciami andare avanti e prendo il mio registro ed è finito su uno dei miei altri...
Eccoci qua, ecco il mio registro
ed eccoci qui.
Questo è ciò che è stato stampato nel registro.
Questo mi dà informazioni su tutte le variabili disponibili
nel contesto di simulazione per questo particolare diagramma.
Se avessi messo più blocchi lì dentro, più azioni, più eventi
poi sarebbero comparsi quelli, sarebbero apparse anche le informazioni su quelli.
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 leggerlo, ma non posso riscrivere su questa particolare variabile.
Non ho questa opzione per cambiare le cose nella mia simulazione,
ma posso usare quell'informazione.
Tornando al nostro ultimo esempio, cosa avrei potuto fare
è che avrei potuto inserire un'istruzione if lì dentro
e ho detto che se il mio backup era attivo,
beh allora abbassalo e fai la manutenzione.
Va bene.
Ora, per motivi di tempo, vado avanti
all'ultima informazione che voglio condividere con voi.
A proposito, avrò un diario a disposizione,
dovrebbe avere un resoconto disponibile,
Avrò 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 delle altre cose
potrebbe non essere così semplice.
La condivisione personalizzata dello stress è un po' insolita nel senso che, per impostazione predefinita,
lo stress è condiviso equamente tra le subunità.
Viene implementato alterando il modo in cui invecchia questo blocco
e non alterare esplicitamente la distribuzione.
Quando non ho condivisione dello stress, diciamo che ho n subunità in parallelo,
diciamo che il primo fallisce al momento uno, il secondo al momento due e così via.
Con la condivisione dello stress, il modo in cui invecchio il blocco
è che il primo fallimento si verifica t una volta n,
volte il numero di unità lavorative.
Il secondo invecchia il blocco di ulteriori n meno uno
volte la differenza tra il mio primo e il 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 passate a quella funzione personalizzata.
Quando provo a inserirlo nella mia condivisione dello stress,
okay, lasciami condividere con te quest'ultimo esempio su come è impostato.
Fammi trovare il mio esempio.
Ok, qui ho tre diverse condivisioni dello stress.
C'è la mia condivisione dello stress di base, 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.
È fatto in questo modo in modo che l'invecchiamento del blocco corrisponda
con le distribuzioni che posso utilizzare per il mio blocco personalizzato di condivisione dello stress.
Quello che faccio è pensare alle cose nei termini della mia spiegazione
che la prima unità invecchia ad un moltiplicatore di volte,
il secondo ad un moltiplicatore di volte la differenza tra
il mio primo e il secondo fallimento e così via.Questo è quello che penso
su tutte queste cose.Ad esempio, supponiamo che volessi impostare
beh, prima di andarci, lasciatemi dire brevemente:
come con il blocco if posso inserire istruzioni print qui.
Se dovessi inserire qui una dichiarazione stampata,
noterai che questo viene eseguito prima dell'avvio del sistema,
quindi ne stamperà cinque e ne stamperà cinque
perché in questo caso il blocco ha cinque unità.
Ne stamperò cinque quando il primo fallirà,
tornerà alla funzione print quattro,
e così via, e così via.
Diciamo che volevo configurarlo come un errore personalizzato in cui block
invecchia 10 volte, non 5 volte, ma 10 volte di più,
il secondo invecchia a cinque anni, il terzo a tre.
Il secondo invecchia a un anno,
e l'ultimo è eccessivamente stressato e invecchia due volte più velocemente.
Quello che potrei fare è,
ancora una volta, mettiamolo qui.
Vorrei aggiungere un po' di spazio
e rendere la mia scatola un po' più grande.
Potrei mettere qualcosa del tipo,
ancora una volta, voglio mettere quel registro, quel registro deve essere lì,
log e direi qualcosa come choose.
Ciò che sceglie in base a n, restituirà,
vediamo, quando c'è un'unità, voglio che restituisca metà, una con due unità,
diciamo 2,5 con 3 unità,
5 con 4 unità, e poi infine 10.
È così che creerei la mia condivisione dello stress personalizzata.
Non sono limitato a questa funzione di scelta.
Qui ho in questo esempio particolare,
Sto usando una funzione.
Ok, ancora una volta, 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, sfortunatamente, questo è tutto ciò di cui ho tempo per 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 domande e commenti che hai.
Ancora una volta, grazie per il tempo che ci hai dedicato. Guarda questo.
Spero che questo sia davvero utile. Grazie.