Gracias por tomarte un tiempo y mira este vídeo.
Asumiré que estás aquí porque has usado o intentado usar
La plataforma de simulación de sistemas reparables dentro de JMP.
Quizás quieras aprender un poco más.
Puede que te sientas frustrado porque hay cosas
que estás intentando hacer y que no creías que podías hacer.
Entonces, lo que voy a cubrir hoy es...
son cosas que no están explicadas profundamente en la documentación,
Cosas que he aprendido a través de prueba y error
que no están en la documentación,
e incluso cosas que aprendí hablando con el desarrollador.
Sobre la plataforma, cosas que no podrías encontrar
de cualquier otra manera.
Supongo que has tenido alguna exposición a esta plataforma.
Voy a suponer que sabes un poco sobre análisis de confiabilidad,
Así que no tengo que entrar en detalles sobre qué es una configuración paralela,
¿Qué es algo que es K de N, y así sucesivamente?
Así que tengo varios ejemplos que quiero cubrir,
Muchos materiales. ¡Comencemos!
Ahora, antes de que realmente veamos
La plataforma de simulación de sistemas reparables, permítanme darles una descripción general.
Con suerte, lo has usado antes y estás familiarizado con él.
Vamos a hablar de tres componentes diferentes.
y aspectos sobre esos componentes que no están en la documentación
o no están bien explicados en la documentación.
Lo primero que vamos a hablar son los bloques.
Los bloques son lo que uso para construir mis cosas de simulación de sistemas reparables.
como Paralelo, K de N, En espera.
Entonces, para cada bloque, puedo asociar un evento con ese bloque.
Así que esos son estos pequeños bloques naranjas que vemos, y para cada bloque,
Puedo asociar uno o más resultados o acciones.
Esos son esos puntos azules que vemos,
y eso me ayudará a construir mi simulación.
Por ejemplo, podría querer saber cuándo falla un bloque.
y cuando ese bloque falla, es posible que quiera repararlo,
y esa reparación podría tardar, digamos, 40 horas.
Esa es la idea detrás de la construcción de estos diagramas RSS.
Vamos a empezar hablando de
Algunas de las propiedades generales de los bloques.
Hay seis bloques diferentes en un nudo,
Lo que me permite unir cosas dentro del diagrama.
Cinco de esos seis bloques son compuestos.
Fueron construidos para estar compuestos de dos o más subunidades.
JMP le permite utilizarlos con una subunidad.
Pero en realidad, el caso de uso es que están formados por dos o más subunidades.
Los eventos y acciones se aplican a todo el bloque.
Así que este es un punto importante.
Los componentes dentro del bloque no se pueden tratar individualmente,
a excepción del bloque de espera.
Se les asigna una distribución única.
En conjunto, estos dos puntos significan que cosas como la reparación...
o no es posible el mantenimiento de las subunidades
dentro de estos bloques compuestos.
Tengo que esperar hasta que falle todo el bloque.
Antes de que realmente pueda hacer algo con ese bloque
antes de que pueda reparar el bloque.
Si quiero diferentes distribuciones dentro del bloque,
Tampoco puedo hacer eso, con excepción del Standby.
Y hablaremos de eso en un ejemplo que tendremos un poco más adelante.
Subunidades para todos los bloques compuestos,
a excepción de los bloques Serie, están en paralelo.
Lo que diferencia esos diferentes bloques compuestos
son el número de componentes que se están ejecutando,
cuando el bloque falla y cómo envejece el bloque.
Así que armé una pequeña tabla que repasa todos los bloques compuestos.
y cómo se diferencian con esas características.
Para todos los bloques compuestos, con excepción de Standby,
Todos los componentes se ejecutan simultáneamente.
Con un bloque compuesto, puedo elegir K de mis N unidades para que se ejecuten
y luego las unidades restantes serán de respaldo.
Entonces ¿cuándo fallan estos bloques?
Obviamente, si tienes alguna experiencia en confiabilidad, un bloque de la Serie falla
cuando una unidad falla.
Un bloque paralelo falla cuando todas las unidades fallan,
K de N cuando tienes menos de K unidades, y así sucesivamente.
Así que las cosas que uno podría esperar naturalmente en el análisis de confiabilidad,
El modo de espera y el uso compartido tienen otro método de falla.
Con la unidad de reserva, hay un mecanismo de conmutación.
Podría haber un interruptor para todo el bloque.
o un conmutador para cada copia de seguridad.
El Standby puede fallar si tengo un solo interruptor
cuando ese interruptor falla, o si intento utilizarlo
cada una de mis unidades de respaldo
y el interruptor de esas unidades de respaldo también falla.
Por lo tanto, la falla del interruptor podría ser otra causa de la falla del bloque.
Lo mismo ocurre con compartir el estrés.
Sin embargo, con Stress Sharing solo tengo un interruptor.
La característica final que es diferente
Entre estos bloques compuestos se encuentra la forma en que envejecen.
Durante los tres primeros bloques, envejecen de manera igual.
Todas las subunidades dentro del bloque envejecen por igual.
Para Standby y Stress Sharing, las subunidades pueden envejecer...
En el caso del modo Standby, pueden envejecer de forma diferente.
Para compartir el estrés, definitivamente envejecen de manera diferente.
Para el modo de espera,
Puedo elegir una única distribución para mis unidades operativas.
Para mis unidades de respaldo,
Puedo elegir que no envejezcan, eso es reserva en frío.
o puedo darles una distribución diferente
En cuanto a cómo envejecen cuando están en modo de espera.
o cuando actúan como suplentes.
Eso podría ser lo mismo, mis unidades operativas podrían ser algo diferentes.
Así que puedo elegir dos distribuciones diferentes.
El problema es que, de nuevo,
Al igual que con todos estos bloques compuestos, obtengo una distribución
para todas mis unidades operativas, una distribución para todas mis copias de seguridad.
No puedo mezclar y combinar.
Finalmente, con Stress Sharing, Stress Sharing funciona
Un poco diferente.
Con Stress Sharing, el estrés se distribuye equitativamente entre los bloques.
Sin embargo, cuando una de las subunidades falla,
Las unidades operativas restantes están sujetas a una tensión adicional.
Así que el estrés cambia de fracaso a fracaso.
Veremos un ejemplo de ello en un momento.
Ahora, una de las cosas que quizás hayas encontrado,
o quizás te des cuenta de que a veces
Quieres tener un poco más de flexibilidad
Y la forma en que puedo desarrollar flexibilidad es organizando mis bloques básicos.
o mi bloque básico como lo haría con un Paralelo o K de N
como uno de mis bloques compuestos.
Los bloques básicos se pueden organizar fácilmente como Serie, Paralelo o K de N
Es más difícil hacerlo con los bloques de espera y de reparto de estrés.
cuando tienes más de dos unidades.
Tengo un ejemplo en breve.
que muestra una configuración en espera con dos bloques básicos.
Es relativamente sencillo cómo hacerlo.
Pero si intentara extenderlo a tres bloques,
Se vuelve mucho más difícil.
No es imposible, sólo muy difícil de hacer.
porque tendría que hacer un seguimiento de lo que está funcionando y lo que no está funcionando,
Qué sucede cuando se produce el fallo, etc.
Lo mismo ocurre con el reparto del estrés.
Vayamos a nuestro primer ejemplo.
Para nuestro primer ejemplo, veremos una disposición básica de K a partir de N.
Vamos a tener cinco subunidades.
Tres de ellos deben estar operativos.
Todos van a tener el Weibull con un Alfa de 2.000, Beta de 1.
Vamos a asumir que cuando un bloque falla
Que tarda 40 horas en reemplazarse.
Vamos a poner ese arreglo
en serie con un bloque compuesto K de N.
También asumiremos que el bloque compuesto K de N toma 40 horas.
reemplazar, a pesar de que hay cinco subunidades
dentro de ese bloque que han fallado.
Echemos un vistazo a qué diferencia hay.
si los trato como elementos individuales
¿o como mi artículo compuesto?
Así es como se vería mi configuración en RSS.
Lo he mantenido muy simple.
Aquí están mis subunidades relativas a mi K de N.
Lo que hace que una K salga de una N está en el nudo.
Puedo especificar cuántos de los artículos entrantes
Necesita estar en funcionamiento.
Y aquí dije que necesito tres operaciones. Así que eso es lo que lo convierte en una K de N,
este arreglo, K de N.
Y lo voy a mantener muy simple.
El único evento que voy a mirar es si el bloque falla o no.
La única acción que voy a realizar es repararlo como nuevo.
Sigamos adelante y ejecutemos esto.
Relativamente rápido.
Quiero hablar un poco sobre el resultado.
porque lo que se envía a la salida y a los estados
Nos ayudará cuando comencemos a construir nuestros diagramas en el futuro.
Echemos un vistazo al orden de operaciones.
por este primer fracaso.
Entonces vemos que hace 766 horas que la unidad Sub1 ha fallado.
El bloqueo se elimina.
Así que es importante tenerlo en cuenta porque es uno de mis eventos potenciales.
Entonces se elimina el bloque, comienzo el proceso y reemplazo el bloque.
Y después de que se reemplaza el bloque, después de las 40 horas que especifiqué
En mi configuración, el sistema se enciende automáticamente.
Así que ese es otro punto importante.
Nos vamos a encontrar con la situación
donde para algunos de mis eventos, el sistema no consigue
se encienden automáticamente y voy a hablar de cuáles son.
Qué tendremos que hacer en esos casos
En realidad, enciende el sistema o, en algunos casos, cuando el bloque
no se enciende automáticamente, enciende el bloque manualmente.
Aquí tenemos una falla de Sub3 y se ve una serie similar de eventos,
Sub2 falla, etc. Veamos qué sucede.
Cuando el sistema falla.
Y sabemos con seguridad que eso sucede cuando K de N falla.
Bien, aquí está el primer caso en el que el sistema falla.
Nuevamente, muy similar en lo que respecta a la mayoría de las operaciones,
pero notarás que apaga el sistema.
Tenga en cuenta que apagó el sistema, por lo que puedo apagarlo.
Desactiva todos los bloques del sistema.
De nuevo, algo importante a tener en cuenta,
Porque habrá casos en los que necesitaremos saber
si un bloque está activado o desactivado.
Si necesitamos o no activar un bloque manualmente.
Así que aquí vamos al reemplazo.
Una vez finalizada la sustitución,
Todos los bloques se encienden automáticamente.
Y de nuevo con este reemplazo, con nuevo,
El apagado y encendido se produce de forma automática.
Así que no tengo que preocuparme por eso.
Finalmente terminé mi reemplazo de K out N y estoy listo hasta la próxima falla.
Relativamente sencillo.
Si quisiera echar un vistazo a cómo ha funcionado mi sistema
Simplemente voy a iniciar mi Explorador de resultados.
De forma predeterminada, no veré la información a nivel de componente.
Si quiero la información a nivel de componente, necesito volver al punto de acceso
y elegir si quiero un mono,
Voy a elegir mi tiempo de inactividad por componente.
Ahora bien, lo que hay que tener en cuenta con esta organización es que
Esto solo me lo dice
el tiempo de inactividad del sistema asociado con mis componentes.
Esto me indica cuántas veces K de N ha hecho caer el sistema.
Para cada uno de estos,
Estos correspondían a cuando esa subunidad hizo caer el sistema.
Así que si lo piensas, estos corresponden a los tiempos
Cuando la subunidad fue la última de mis cinco unidades en bajar,
Porque ese es el único momento en el que el sistema se va a caer.
Es cuando todas esas cinco subunidades dejan de funcionar.
Ahora, si quiero ver la distribución a nivel de componentes,
Esto sólo me avisa cuando hace caer el sistema.
Pero digamos que me interesa saber con qué frecuencia se cayó Sub1,
con qué frecuencia se cayó Sub2, etc.
El punto caliente, puedo ver esta estimación puntual
para disponibilidad de componentes.
Y si me desplazo hacia abajo, por ejemplo, para Sub1,
Esto me da mi información de distribución.
para el componente en sí.
Z incluye no sólo los momentos en que la Subunidad 1 derribó el sistema,
pero cuando la Subunidad 1 se cayó.
La forma más sencilla de profundizar en las distribuciones individuales de todos mis subcomponentes.
Pasemos a algunas de estas acciones y eventos.
y algunas de las propiedades particulares asociadas con ellos.
Comenzaremos con los acontecimientos.
No mencionado en la documentación
pero Inservice sólo está disponible para bloques básicos.
Entonces, para recordarte, el Inservice se basa en la edad del bloque.
y no la edad del tiempo de la simulación.
Entonces, por ejemplo, si quiero prestar servicio a algo
Después de 100 horas de uso, utilizaría un Inservice.
De lo contrario, podría utilizar simplemente un evento programado.
Se atendería un evento programado una vez por semana,
pero Inservice sólo está disponible para mi bloque Básico.
Entonces me dice si quiero usar Inservice,
Voy a tener que construir estos bloques básicos.
Inicialización, fallo de bloque y sistema inactivo
Sólo se puede utilizar una vez por cada bloque.
Entonces lo que verás es que cuando los uses,
Desaparecen de tu paleta de eventos, por lo que no aparecerán más.
Así que solo puedes usarlos una vez.
Hablemos de acciones.
Hay 13 acciones que puedo utilizar.
Instalar usado, cambiar distribución y si solo se puede utilizar con bloques básicos.
La reparación mínima solo se puede utilizar con Básico y Serie.
Esto nos deja nueve acciones que puedo usar para cualquiera de los bloques.
Así que son Encender y Apagar un Bloque, Encender y Apagar el Sistema,
Reemplazar con nuevo, Instalar nuevo, Quitar un bloque, Inspeccionar falla,
y Horario. Así que esos son los nueve
que cualquiera de los bloques, ya sea el bloque Básico o el Compuesto, puede utilizar.
No hay límite en la cantidad de veces que se puede utilizar una acción en un bloque determinado.
Entonces tengo un ejemplo en el que usé Desactivar Bloqueo más de una vez.
La razón es que
Lo que quiero hacer después de girar o cuando giro el bloque puede ser diferente.
dependiendo de cuándo se activa el bloque.
Y nuevamente veremos un ejemplo de eso en un momento.
Las acciones sólo se pueden conectar con otras acciones.
De hecho, los acontecimientos sólo pueden conectarse con acciones.
Entonces no puedo conectar un evento o una acción a un bloque o a otro evento.
Sin embargo, soy ilimitado en términos de cuántas acciones puedo encadenar.
Algunas propiedades específicas.
La inicialización solo ocurre una vez y es al comienzo.
de la ejecución de la simulación.
Vamos a tener un ejemplo donde eso hace la diferencia,
donde apago un bloque en una inicialización,
pero cuando el sistema vuelve a estar en línea, ese bloque se activa nuevamente.
Así que tendré que asegurarme de desactivarlo manualmente.
Entonces la inicialización solo ocurre al principio.
El sistema está caído se produce en cada bloque,
independientemente de qué bloque haya hecho caer el sistema.
Así que puedo usarlo como oyente para ver...
Por ejemplo, si el sistema falla,
Es posible que desee realizar mantenimiento en el bloque incluso si el bloque
Estaba funcionando, tal vez solo para volver a ponerlo en marcha.
Para dejarlo casi como nuevo o dejarlo como nuevo.
Por lo tanto, se producirá una caída del sistema independientemente de qué bloque lo haya provocado.
Luego sobre las acciones,
Activar sistema activa todos los bloques disponibles.
Ahora, por cada bloque me refiero a todo lo que no esté ya caído.
por falla o programada para estar fuera de servicio.
Así que podría programar algo para que no funcione
ya sea utilizando ese evento programado o utilizando la acción programada.
Encender el sistema encenderá todos mis bloques.
Los bloques deben activarse manualmente
después de Instalar nuevo, Instalar usado o Cambiar distribución.
Estos son un par de casos en los que el sistema no se enciende.
El bloque no se enciende automáticamente.
Es por esto que podría querer usarlo,
por ejemplo, instalar nuevo en lugar de Reemplazar con nuevo.
Instalar nuevo me permite hacer cosas antes de volver a encender el sistema.
Me da la oportunidad de realizar otras operaciones.
u otras acciones antes de encender mi sistema.
Activar bloque no enciende el sistema si el bloque se desactivó manualmente.
Como vimos en el resultado,
Como habrás notado en el resultado, independientemente de que el sistema esté encendido,
Es posible que aparezca un evento de Activar sistema.
No está de más encender un sistema si el sistema ya está encendido.
Lo que digo es, en caso de duda, añadir un Activar sistema
a su cadena de eventos para asegurarse de que el sistema esté encendido.
Por cierto, no importa si el bloque se activa primero.
o el sistema se enciende primero.
Ambos funcionan de la misma manera.
Muy bien, pasemos a nuestro segundo ejemplo.
Lo que vamos a hacer es construir un bloque básico.
en un arreglo de espera.
Vamos a tener una unidad principal y una unidad de reserva.
Vamos a hacer un arranque en frío,
lo que significa que la unidad de reserva, la unidad de respaldo, no envejece.
Sin embargo, tomará 30 minutos poner en marcha la unidad.
Algo que no puedo hacer con el modo de espera compuesto.
Se realizan ocho horas de mantenimiento en la copia de seguridad después del control
se devuelve a la unidad principal.
Vamos a ver dos situaciones de conmutación diferentes.
En realidad, vamos a ver un interruptor infalible y vamos a...
mirar un interruptor donde tenemos una confiabilidad del 90%.
Para todos mis bloques, asumiré Exponencial (500).
Supongo que se necesitan ocho horas para reparar o mantener.
Los bloques defectuosos serán reemplazados por nuevos.
Al igual que en el ejemplo anterior, vamos a ver los bloques básicos.
en esta disposición en serie con un bloque de reserva con la misma configuración,
Obviamente, con la excepción de ese tiempo de inicio de 30 minutos,
Lo cual no puedo hacer.
Echemos un vistazo.
Aquí está nuestro arreglo básico.
Tengo mi unidad de respaldo, mi unidad principal, mi unidad de reserva y para cada una de estas
He asociado un evento de error y un Reemplazar con Nuevo.
Más o menos lo básico con lo que podría empezar.
No sé si lo señalé anteriormente cuando estábamos viendo el resultado,
pero es útil cuando agrego un evento, agrego una acción para darle un nombre único
porque esos son los nombres que aparecen en mi salida.
Muy bien, comencemos con una unidad de respaldo.
Cuando mi sistema se conecte en línea en el momento cero, todo se activará.
Quiero asegurarme de que en el momento cero, esa unidad de respaldo se apague.
La forma en que voy a hacer esto es utilizar la inicialización.
Notarás que cuando utilicé Inicialización,
desapareció.
Lo siguiente que quiero hacer es apagar el bloque.
Ahora bien, si ya has utilizado RSS antes,
Recordarás que cuando intento agregar una acción,
Va a apilar estas acciones una encima de otra.
A veces esa no es la mejor ubicación para ellos.
Lo que podrías hacer en cualquier momento si tuvieras una acción a partir de la cual trabajar,
Puedo seleccionar la acción, hacer clic y mantener presionado este signo más
y luego simplemente arrastre el signo más.
Ahora puedo agregar mi acción.
En este caso quiero desactivar el bloqueo.
Ahora, no quiero que el Bloque Apagado esté asociado con esto, Reemplazar con Nuevo.
Lo que voy a hacer para evitar que eso suceda es simplemente eliminar la flecha.
Ahora puedo conectarme al evento que quiero.
La ventaja de hacer eso es que ahora puedo mover ese bloque a cualquier lugar que quiera.
Tengo mucha más flexibilidad con la forma en que funciona ese bloque.
La otra cosa que voy a hacer es que definitivamente quiero etiquetarlos.
Así que cuando mire mi tabla de resultados, sabré qué sucede.
Esto es Desactivar Bloqueo...
A esto lo llamaremos simplemente desactivar la copia de seguridad al inicio.
Voy a darle a cada uno de mis eventos, a cada una de mis acciones un nombre único.
Así que sé cuándo ocurren.
Eso desactiva mi copia de seguridad desde el inicio.
Lo siguiente que querré hacer es cuando falle la unidad principal,
Voy a querer encender la unidad de respaldo.
Ahora, nuevamente, en lugar de seleccionar la unidad de respaldo y decir Activar bloqueo,
Voy a elegir mi Bloqueo Activado de forma interactiva.
Voy a eliminar mi conexión aquí para poder mover esto.
Voy a mover las cosas un poco.
Moveré esto aquí.
Nuevamente, quiero nombrar esto para que si vuelvo a este diagrama
En un par de días sabré a qué se refiere esta acción.
A esto lo llamaremos activar la copia de seguridad desde la función principal.
Otra cosa que se menciona en la documentación,
pero no sé con qué fuerza, pero puedo conectar,
En este caso, estoy conectando un evento de un bloque a una acción.
en otro bloque.
Definitivamente puedo hacerlo.
Ahora, como mencioné anteriormente, esto activará el bloqueo.
porque ese bloque se desactivó manualmente,
Voy a tener que encender el sistema también.
Encienda el sistema.
De nuevo, probablemente quiera etiquetar eso,
Diré, enciende el sistema desde la copia de seguridad y así sucesivamente.
Ahora lo único que necesito agregar a mi diagrama es que
Cuando mi servidor principal vuelva a estar en línea, quiero desactivar mi copia de seguridad.
hacerle mantenimiento a mi backup.
Ahora probablemente podría...
Bueno, comencemos con desactivar la copia de seguridad, desactivar Bloquear.
Borra eso
A esto le llamaremos.
Debí haber elegido activar, me salió Desactivar Bloquear.
Vamos a intentarlo de nuevo.
Desactivar Bloquear y etiquetar eso, desactivar la copia de seguridad desde la principal.
Ahí es donde entra en juego mi principal.
Ahí desactivé mi copia de seguridad.
Quiero realizarle mantenimiento.
La forma en que lo haré es simplemente Reemplazar con Nuevo.
Bien, a esto simplemente lo llamaremos mantenimiento preventivo.
Creo que dije que el mantenimiento preventivo va a...
Son ocho horas las que tarda.
Ahora, de nuevo, tengo que recordar
que Reemplazar con Nuevo inicia automáticamente el bloque.
Lo que voy a tener que hacer ahora es apagar el bloque.
Ahora, pensando en eso con un poco más de detalle,
Probablemente podría haber ido directamente desde el nuevo regreso en línea
para realizar el mantenimiento.
Porque una vez que inicio el mantenimiento de mi copia de seguridad, la copia de seguridad deja de funcionar.
Luego, una vez que haya terminado con mi mantenimiento,
Apagando el bloque.
Este bloqueo no duele, pero es redundante.
Así que vamos a deshacernos de él.
Esa sería mi configuración.
Siempre me gusta correr a verificar dos veces para ver si las cosas funcionan.
en el orden adecuado y generaré mi salida.
En este caso, solo lo tengo configurado para hacer una simulación.
Quizás tenga que tomar un par
de simulaciones en función de la confiabilidad asociada a mis unidades.
Aquí están los fallos principales, el sistema se apaga,
Se apaga el bloque de espera, se coloca uno nuevo,
Activar la copia de seguridad para el principal.
Si miramos la columna de depredadores, ahí está mi turno como suplente del principal.
Activar Sistema desde copia de seguridad, Activar Bloquear por sistema.
Nuevamente, me gusta repasarlos una vez que los construyo para asegurarme
Las cosas suceden en el orden correcto.
El sistema de giro se enciende.
Ahí está el nuevo principal colocado.
Enciendo mi sistema,
De nuevo, ya está puesto, pero no importa, no duele.
Nuevo principal Reemplazar con Nuevo.
Ese es el bloque, la copia de seguridad se está girando.
para conseguir un PM y así sucesivamente.
Debería estar desactivada esa copia de seguridad.
Nuevamente, me gusta usarlos solo para volver a verificar.
para que las cosas funcionen correctamente.
Esa es la configuración sin el interruptor.
Agregar el interruptor es relativamente sencillo.
Donde pondríamos eso, lo pondríamos.
Entre la falla principal y el arranque de respaldo
Y para eso están hechos los bloques if.
Déjame deshacerme de esa conexión.
No importa de cuál de mis bloques venga ese
y no quería ponerlo allí.
Déjame ir desde... Aquí vamos.
Tengo una copia de seguridad en caso de que algo así suceda.
Aquí vamos.
Mi copia de seguridad se está activando.
He ahí mi principal defecto.
Vamos a deshacernos de eso.
Probablemente quiera agregarlo en mi bloque if para poder flotarlo en cualquier lugar.
Simplemente tomaré cualquiera de estos y agregaremos un "si".
Eliminar la conexión.
Conectemos eso.
Ahora, la forma en que configuraría mi if,
La forma en que funciona if es que evalúa lo que hay en el cuadro de condición if.
Si es verdad, si evalúa uno, entonces continúas.
Si el resultado es cero, te detienes.
Lo que puedo decir es que si... no necesito el si ahí,
Voy a decir que el uniforme aleatorio es menor que 0,9.
Cuando eso es cierto la cadena continuará, de lo contrario, se detendrá allí.
Eso es todo.
Es tan simple como ponerlo en esa declaración if.
De nuevo, probablemente quiera etiquetar esto también.
Entonces, si el cambio es exitoso o algo así.
En este punto el único inconveniente es ¿qué pasaría si el interruptor falla?
Bueno, el cambio falló, habrá que esperar hasta que la red principal vuelva a estar en línea.
El sistema principal vuelve a estar en línea, pero intenta desactivar mi copia de seguridad.
No hace daño intentar apagar algo que ya está apagado.
Pero lo que quizás no quiera hacer
Es posible que no quiera realizar el mantenimiento si no se utiliza la copia de seguridad.
En un ejemplo posterior veremos cómo solucionarlo.
¿Cómo mirar dentro del sistema y decir: ¿se está ejecutando esa copia de seguridad?
Si no está funcionando, sí, haz el mantenimiento.
Si está funcionando no necesita mantenimiento.
Pasemos al siguiente ejemplo.
En este caso, tengo dos bombas funcionando en paralelo con un mantenimiento preventivo.
Se realiza cada dos semanas y dura ocho horas.
Los PM se escalonan por una semana para evitar que ambas bombas se caigan
al mismo tiempo.
Si falla una bomba, se realiza una reparación mínima que demora cuatro horas.
En este caso, la simulación se ejecuta durante un año.
Empecemos con lo básico.
Aquí están mis bombas con las fallas y reemplazos.
¿Cómo configuro la espera de una semana antes de comenzar los mensajes privados?
Al igual que en el último ejemplo, voy a comenzar con la inicialización.
Lo que voy a decir es que esperes una semana.
¿Cómo digo esperar una semana?
Bueno lo que haré es utilizar la acción de programación.
Voy a hacer lo que he estado haciendo en el pasado.
Configuraremos el horario, eliminaremos mi conexión.
Tengo varias opciones diferentes con el horario.
Solo quiero que esto pase una vez. Quiero que pase desde el principio.
Entonces está conectado a mi evento de inicialización.
Vamos a llamar a esta espera una semana.
Sólo quiero que esto suceda una vez.
Quiero que tarde 168 horas.
Eso es porque tengo mi simulación configurada en horas.
Lo que hace es esperar una semana al inicio.
y luego realiza cualquier acción a la que me conecte aquí.
¿Cuál es la acción que voy a conectar?
Bueno, voy a utilizar el horario nuevamente.
Lo que esto va a ser es PM en la bomba 2.
Voy a dejar mi ocurrencia máxima en blanco.
Y así sucesivamente hasta el final de la simulación.
El tiempo de finalización será 168x2, es decir 336.
Ahora bien, lo que ocurre es que después de esa primera semana, cada 336 horas,
Voy a poder realizar otra operación.
Esa operación tiene un par de formas diferentes de hacerse.
Vamos a asumir que es PM [inaudible 00:37:03].
Entonces diremos: Reemplazar con nuevo.
Puedo decir aquí, reemplace la bomba B.
Ahora, una de las cosas que podrías estar pensando es que
¿Qué pasa si voy a hacer mi mantenimiento preventivo?
y todo está tambaleándose pero por alguna razón la bomba A está caída,
Podría haber tenido un fallo.
No necesariamente quitaría mi bomba B
para mantenimiento preventivo.
Haz eso y derriba el sistema. Lo que vamos a usar es...
utilizar una variable oculta llamada contexto de simulación.
El contexto de simulación es la forma en que puedo observar mi sistema.
Lo que haremos es poner el contexto de simulación,
Lo pondremos entre mi mantenimiento preventivo programado y mi mantenimiento preventivo real.
Vamos a hacer esto.
Deshagámonos de eso y lo implementaremos con un if.
Déjame conectarme y llamaremos a esto, si la bomba A está funcionando,
Ahora la pregunta es ¿cómo puedo saber si la bomba A está funcionando?
Bueno, en mi condición if, necesito especificar la variable oculta
que está asociado con la bomba A... Ya sea que esté activa o no.
La forma en que lo haría es mediante un contexto de simulación.
y no importa el caso.
Contexto de simulación y las variables,
Las variables del sistema se almacenan como una asociación de matriz.
Esto se llama estado de la bomba A.
Ahora lo que he descubierto es que,
Esta parte particular del cuadro de diálogo no es tan flexible.
Si tengo algo más complejo que quiero construir,
Luego, normalmente lo hago en una ventana de script y luego lo copio y lo pego.
En esta ventana.
Pero esto es relativamente pequeño, así que simplemente seguiremos adelante y escribiremos.
Vamos a decir que esto está activo.
Eso es lo que yo usaría.
Ahora bien, ¿cómo supe que eso era lo que tenía que usar?
Bueno, como resulta, esta condición y un poco
Más adelante, cuando hablamos de compartir el estrés,
Esto actúa como un guión.
Lo que puedo hacer y lo que he hecho a menudo
se coloca en una declaración impresa, ¿cómo sé qué está disponible para mí?
Pongamos una declaración impresa allí.
y diremos contexto de simulación de impresión, ¿de acuerdo?
Lo único de lo que debemos estar seguros es
es que la declaración if, la última declaración en esa condición if evalúa el resultado verdadero.
Sólo para mostrarte lo que pasa
Cuando haga esto, sigamos adelante y ejecutemos esto.
Voy a ejecutar esto solo para darte una idea.
de lo que se imprime en el registro.
Déjame seguir adelante y tomar mi registro y está en uno de mis otros…
Aquí vamos, ahí está mi registro.
Y aquí vamos.
Esto es lo que se imprimió en el registro.
Eso me da información sobre todas las variables que están disponibles.
en el contexto de simulación para este diagrama particular.
Si hubiera puesto más bloques ahí, más acciones, más eventos.
Luego aparecerían, y la información sobre ellos también aparecería.
Pero esta es una buena manera de decirlo.
¿Qué hay en mi sistema y cuáles son las variables a las que tengo acceso?
Lo importante a recordar aquí es
Puedo leer esto, pero no puedo escribir en esta variable en particular.
No tengo esa opción para cambiar cosas en mi simulación,
pero puedo usar esa información.
Volviendo a nuestro último ejemplo, lo que podría haber hecho
Podría haber puesto una declaración if ahí
y dijo si mi copia de seguridad estaba activa,
Bueno entonces bájale y hazle el mantenimiento.
Bueno.
Ahora, por una cuestión de tiempo, voy a seguir adelante.
Mi último dato que quiero compartir con vosotros.
Por cierto, tendré un diario disponible,
Debería tener un informe disponible,
Tendré más ejemplos que no tuve tiempo de cubrir.
Verás un par de acciones más.
No tuvimos la oportunidad de ver cómo se implementan.
y tal vez algunas de las otras cosas
Esto podría no ser tan sencillo.
El intercambio de estrés personalizado es un poco inusual en el sentido de que, de forma predeterminada,
El estrés se comparte equitativamente entre las subunidades.
Se implementa modificando la forma en que envejece este bloque.
y no alterar explícitamente la distribución.
Cuando no tengo distribución de estrés, digamos que tengo n subunidades en paralelo,
Digamos que el primero falla en el momento uno, el segundo en el momento dos, y así sucesivamente.
Con el estrés compartido, la forma en que envejezco el bloque
es decir, que el primer fallo ocurre en t un tiempo n,
multiplicado por el número de unidades de trabajo.
El segundo envejece el bloque n menos uno adicional
multiplicado por la diferencia entre mi primer y segundo fracaso.
El tercero n menos dos veces la diferencia entre
el tercero, segundo fallo y así sucesivamente.
Así es como envejecen los bloques.
Esta es la información que se pasa a esa función personalizada.
Cuando intento incorporar esto en mi forma de compartir el estrés,
Bien, déjenme compartir con ustedes este último ejemplo de cómo está configurado esto.
Déjame encontrar mi ejemplo.
Bien, aquí tengo tres formas diferentes de compartir el estrés.
Ahí está mi forma básica de compartir el estrés, así que lo tengo configurado como básico.
Aquí está mi costumbre.
Este es el final del que estoy hablando.
Sabrás que está integrado en esta función de registro.
Se hace así para que el envejecimiento del bloque coincida.
con las distribuciones que puedo usar para mi bloque de reparto de estrés personalizado.
Lo que hago es pensar en las cosas en términos de mi explicación.
que la primera unidad envejece en un cierto multiplicador de veces el tiempo,
el segundo en algún multiplicador por la diferencia entre
Mi primer y segundo fracaso, y así sucesivamente. Así es como pienso.
sobre todas estas cosas. Por ejemplo, digamos que quisiera configurar,
Bueno, antes de ir allí, déjame decirte brevemente:
Al igual que con el bloque if, puedo colocar declaraciones de impresión aquí.
Si tuviera que poner una declaración impresa aquí,
Notarás que esto se ejecuta antes de que se inicie el sistema.
Entonces va a imprimir cinco y va a imprimir cinco
porque en este caso el bloque tiene cinco unidades.
Voy a imprimir cinco cuando el primero falla,
Volverá a la función imprimir cuatro,
y así sucesivamente, y así sucesivamente, y así sucesivamente.
Digamos que quiero configurar esto como una falla personalizada donde el bloque
edades a 10 veces, no 5 veces, sino 10 veces la tasa,
El segundo cumple cinco años y el tercero tres.
El segundo envejece a los uno,
y el último está sobreestresado y envejece el doble de rápido.
Lo que podría hacer es,
De nuevo, pongamos esto aquí.
Déjame añadir un poco de espacio.
y hacer mi caja un poquito más grande.
Podría poner algo como,
De nuevo, quiero poner ese tronco, ese tronco tiene que estar ahí,
registro y yo diría algo como elegir.
Lo que choose hace en función de n, lo devolverá,
A ver, cuando hay una unidad quiero que me devuelva la mitad, una con dos unidades,
digamos 2,5 con 3 unidades,
5 con 4 unidades, y finalmente 10.
Así es como crearía mi sistema personalizado para compartir el estrés.
No estoy limitado a esta función de elección.
Aquí tengo este ejemplo en particular,
Estoy usando una función.
Bien, de nuevo, lo importante aquí es...
¿Es que todo esto se integra en esta función de registro para que el envejecimiento...
del bloque y las distribuciones pueden coincidir.
Bien, desafortunadamente eso es todo el tiempo que tengo para cubrir hoy.
Ojalá tuviera más tiempo. Sin duda, hay mucho.
De otras cosas que podríamos hablar.
Estos estarán en los materiales que te proporcioné.
Y me encantaría escuchar tus comentarios.
y preguntas y comentarios que tengas.
Gracias de nuevo por tomarte el tiempo. Mira esto.
Espero que esto te sea de mucha ayuda. Gracias.