2010-01-29 17 views
10

Me gustaría crear una simulación de una planta de fábrica, y estoy buscando ideas sobre cómo hacer esto. Mis pensamientos hasta ahora son:simulación de planta de fábrica

• Una fábrica está formada por un conjunto de procesos, algunos de estos procesos están en serie y otros están en paralelo. Cada proceso se comunicaría con él es aguas arriba y aguas abajo y vecinos paralelas para hacerles saber de que es a través poner

• Cada proceso haría sus atributos propios de base como el máximo rendimiento, coste de mantenimiento como resultado de throughput

Obviamente No lo he pensado del todo, pero esperaba que alguien pudiera darme algunas ideas o tal vez un enlace a un recurso en línea

actualización: Este proyecto es solo para mi propio entretenimiento, y quizás aprenda un poco a lo largo del camino. No estoy empleado como programador, la programación es solo un hobby para mí. He decidido escribirlo en C#.

+2

+1 pregunta interesante. Parece que lo que quieres es un modelado matemático para que puedas optimizar ciertas variables (costo, capacidad, etc.). No estoy seguro de que realmente quieras una "simulación". – dss539

+0

Yo trabajo es una fábrica y en ocasiones aumentamos el rendimiento. Este aumento tiene varios impactos negativos en otros presupuestos departamentales, como el aumento de los costos eléctricos, el aumento de los costos de mantenimiento y la disminución de la vida útil de los equipos. Pensé que sería divertido intentar y simular los cambios en el rendimiento y sus costos. No soy un programador profesional pero incursiono un poco y pensé que sería un proyecto divertido. – fishhead

+0

Tu comentario refuerza mi opinión de que quieres un modelo matemático. Estoy de acuerdo, esto suena como un proyecto divertido. Se volverá aún más divertido cuando comiences a optimizar ciertos parámetros. ;) Puede modelar muchas de estas variables simplemente usando una hoja de cálculo ... por supuesto, escribir un programa para hacerlo podría ser más divertido. – dss539

Respuesta

3

Simular una fábrica completa con precisión es un gran trabajo.

En primer lugar, debe averiguar: ¿por qué está haciendo la simulación? ¿Para quién? ¿Qué valor les dará? ¿Qué partes de la simulación son interesantes? ¿Qué tan preciso necesita ser? ¿Qué partes del proceso no necesitan ser simuladas con precisión?

Para encontrar las respuestas a estas preguntas, deberá hablar con quien sea que quiera que se escriba la simulación.

Una vez que haya descubierto qué simular, debe averiguar cómo simularlo. Necesitas algunos modelos y algunos parámetros para esos modelos. Puede obtener algunas cifras reales de la producción real e intentar derivar modelos de las cifras. Los modelos podrían ser una relación lineal simple entre una entrada y una salida, una relación más compleja y quizás incluso un efecto estocástico (aleatorio). Si no tiene acceso a datos reales, tendrá que hacer conjeturas en su modelo, pero esto nunca será tan bueno, intente obtener datos reales siempre que sea posible.

También es posible que desee considerar las probabilidades de descomposición de componentes y qué efecto podría tener. ¿Qué hay de los trabajadores en huelga? Falta de disponibilidad de materias primas? ¿Desgaste y desgaste la maquinaria que causa una producción progresivamente más baja a lo largo del tiempo? De nuevo, es posible que no desee considerar estos detalles, depende de lo que quiera el cliente.

Si su simulación implica eventos aleatorios, es posible que desee ejecutarla muchas veces y obtener un resultado promedio, por ejemplo, usando una simulación Monte Carlo.

Para dar una mejor respuesta, necesitamos saber más acerca de lo que necesita simular y lo que quiere lograr.

+0

No trabajo como programador. Simplemente suena como un proyecto divertido, y quizás aprenda un poco más sobre programación. No espero que la aplicación sea de ningún interés para nadie más que para mí. – fishhead

+1

Este tipo de aplicación definitivamente es interesante para mucha gente que maneja el proceso de producción, y una gran cantidad de tiempo y dinero se destina al desarrollo de tales aplicaciones. No es un proyecto fácil, pero paga muy bien si puedes usar tu simulación para optimizar sus procesos, reducir las tasas de fallas, etc. Si solo quieres aprender a programar, probablemente este no sea un proyecto ideal para aprender, ya que es complejo y probablemente no tengas datos reales para trabajar. –

+0

ho Tengo datos reales: conexión directa a todos los servidores SQL industriales y a los últimos 4 años de datos. También tengo conexiones con la base de datos de mantenimiento y sus costos, incluidos mano de obra, contratistas y piezas – fishhead

0

Automod es el camino a seguir. http://www.appliedmaterials.com/products/automod_2.html

Hay mucho que aprender, y no será barato.

Automod de ASI ha estado en el negocio de simulación de fábrica durante aproximadamente 30 años. Ahora es propiedad de Applied Materials. Los grandes jugadores que trabajan con el manejo de materiales en un almacén usan Automod porque es el líder comprobado.

+0

¿Por qué se bajó este voto? No sé nada sobre automod, pero ¿podría alguien explicar el voto a la baja? – dss539

+0

Bajé la votación porque no brinda ningún apoyo sobre por qué debe usarse automod y, en general, no da ningún consejo sobre cómo simular una fábrica. –

+0

@Scottie Bastante, pero esta respuesta parece similar a la respuesta de Jim C. – dss539

0

Quizás más de lo que está buscando pero visual components es una buena herramienta de simulación industrial.

Para ser claros, no trabajo para ellos ni la empresa para la que trabajo actualmente los utiliza, pero los hemos examinado.

3

Dado que su cliente es usted mismo, tendrá que decidir la respuesta a todas las preguntas que Mark Byers hizo. Sin embargo, te daré algunas sugerencias y espero que te den un comienzo.

Supongamos que su fábrica necesita algunas piezas diferentes y las ensambla en un solo producto terminado. Un diagrama de flujo del proceso de montaje podría tener este aspecto:

Factory Flowchart http://img62.imageshack.us/img62/863/factoryflowchart.jpg

Por primera diamante, donde widgets de A y B se ensamblan, asuma que tarda una media de 30 segundos para completar este paso. Asumiremos que el tiempo real que requieren los dos widgets para ensamblar se distribuye en normally, con una media de 30 sy una varianza de 5 s. Para el segundo diamante, suponga que también toma un promedio de 30 segundos, pero la mayoría de las veces no toma tanto tiempo, y otras tarda mucho más. Esto se aproxima bien a un exponential distribution, con 30 s como parámetro de velocidad, a menudo representado en ecuaciones por una lambda.

para el primer proceso, calcular el tiempo de montar widgets de A y B como:

timeA = randn(mean, sqrt(variance)); // Assuming C# has a function for a normally 
            // distributed random number with mean and 
            // sigma as inputs 

Para el segundo proceso, calcular el momento de añadir widget de C a la asamblea como:

timeB = rand()/lambda; // Assuming C# has a function for a uniformly distributed 
         // random number 

Ahora su tiempo total de ensamblaje para cada iGadget será timeA + timeB + waitingTime. En cada punto de ensamblaje, almacene una cola de widgets esperando a ensamblarse. Si el segundo punto de ensamblaje es un cuello de botella, la cola se llenará. Puede aplicar un tamaño máximo para su cola y mantener las cosas más adelante cuando se alcanza ese tamaño máximo. Si un artículo está en una cola, todos los iGadgets anteriores aumentan el tiempo de montaje en la línea de ensamblaje. Dejaré que usted decida cómo codificarlo, y puede ejecutar muchas pruebas para ver cuál será el tiempo total de ensamblaje, en promedio. ¿Cómo se ve la distribución resultante?

formas de "especias esto":

  • requerir de 3 widgets de B por cada un widget. Juega con el inventario. Reponer inventario a intervalos aleatorios.
  • Agregue un control de garantía de calidad (la distribución exponencial es buena para usar aquí) y rechace algunos de los iGadgets terminados. Sugiero usar una baja tasa de rechazo.
  • Trate de usar distribuciones de probabilidad diferentes a las que he sugerido. Vea cómo afectan su simulación. Siempre trate de descubrir cómo los parámetros de entrada a las distribuciones de probabilidad se correlacionarían con los valores del mundo real.

Puedes hacer mucho con esta simulación simple. El siguiente paso sería generalizar su código para que pueda tener una cantidad arbitraria de widgets y pasos de ensamblaje. Esto no es tan fácil. Existe un campo completo de matemática aplicada llamado operations research que está dedicado a este tipo de simulación y análisis.

+0

+1 buen ejemplo – dss539

1

Lo que está describiendo es un problema clásico abordado por la simulación de eventos discretos. Se han desarrollado una variedad de lenguajes de simulación de propósito general y propósito especial para modelar este tipo de problemas.Aunque no recomendaría programar nada desde cero para un problema "real", puede ser un buen ejercicio escribir tu propio código para un pequeño problema de colas para que puedas entender la programación de eventos, la generación de números aleatorios, el seguimiento de los calendarios, etc. Una vez que hayas hecho eso, un lenguaje de simulación de propósito general hará todo eso para que puedas concentrarte en el panorama general.

Una buena referencia es Law & Kelton. ARENA es un paquete estándar. Es ampliamente utilizado y, en mi humilde opinión, es muy completo para este tipo de simulaciones. El libro ARENA es también un libro decente sobre simulación y viene con el software que se puede aplicar a pequeños problemas. Para modelar problemas más grandes, necesitarás obtener una licencia. Debería poder descargar una versión de prueba de ARENA here.