моделирование заводского цеха

Я хотел бы создать моделирование заводского цеха, и я ищу идеи о том, как сделать это. Мои мысли до сих пор:

• Фабрика является составленным из набора процессов, некоторые из этих процессов последовательно, и некоторые параллельно. Каждый процесс общался бы с, это - восходящие и нисходящие и параллельные соседи для уведомления их, он через помещенный

• Каждый процесс был бы свои собственные основные атрибуты как максимальная пропускная способность, стоимость обслуживания в результате через помещенный

Очевидно, я не полностью продумал это, но я надеялся, что кто-то мог бы быть в состоянии дать мне несколько идей или возможно ссылку на на ресурсе строки

обновление: Этот проект только для моих собственных развлечений, и, возможно, изучите немного alnong путь. Я не нанимаюсь как программист, программирование является просто хобби для меня. Я решил записать это в C#.

11
задан fishhead 29 January 2010 в 19:57
поделиться

5 ответов

Имитация целой фабрики точно является большой работой.

Во-первых, нужно выяснить: почему вы делаете симуляцию? Кто это для? Какое значение это даст им? Какие части симуляции интересны? Насколько точно это должно быть? Какие части процесса не должны быть смоделированы точно?

, чтобы выяснить ответы на эти вопросы, вам нужно будет поговорить с тем, кто бы ни был, что хочет, чтобы симулятор написал.

Как только вы выяснили, что имитировать, вам нужно выяснить, как их имитировать. Вам нужны некоторые модели и некоторые параметры для этих моделей. Может быть, вы можете получить некоторые фактические цифры из реального производства и попытаться получить модели с рисунков. Модели могут быть простыми линейными взаимосвязи между входом и выходом, более сложной взаимосвязи, и, возможно, даже стохастическим (случайным) эффектом. Если у вас нет доступа к реальным данным, то вам нужно сделать догадки в вашей модели, но это никогда не будет так же хорошо, поэтому постарайтесь получить реальные данные везде, где это возможно.

Вы также можете считать вероятностями компонентов, разрушающихся, а также о том, что может иметь. А как насчет рабочих, происходящих? Недоступность сырья? Носить и слезать на машине, вызывающем постепенно снизить выход с течением времени? Опять же, вы можете не захотеть рассмотреть эти детали, это зависит от того, что хочет клиента.

Если ваше моделирование включает в себя случайные события, вы можете захотеть проводить его много раз и получить средний результат, например, с использованием Monte Carlo моделирования.

Чтобы дать лучший ответ, нам нужно больше узнать о том, что вам нужно имитировать и то, что вы хотите достичь.

4
ответ дан 3 December 2019 в 10:26
поделиться

То, что вы описываете, является классической проблемой, решаемой с помощью дискретно-событийного моделирования. Для моделирования такого рода проблем были разработаны различные языки имитационного моделирования как общего, так и специального назначения. Хотя я бы не рекомендовал программировать что-либо с нуля для "реальной" проблемы, может быть хорошим упражнением написать свой собственный код для небольшой проблемы с очередью, чтобы вы могли понимать планирование событий, генерацию случайных чисел, отслеживание календарей и т.п. Как только вы это сделаете, язык симуляции общего назначения сделает все это за вас, чтобы вы могли сконцентрироваться на общей картине.

Хорошая ссылка - Закон и Келтон . ARENA - стандартный пакет. Он широко используется и, IMHO, является очень всеобъемлющим для такого рода симуляций. Книга ARENA также является достойной книгой по симуляции и поставляется с программным обеспечением, которое может быть применено для решения небольших задач. Для моделирования больших проблем вам понадобится лицензия. Вы должны иметь возможность скачать пробную версию ARENA здесь .

1
ответ дан 3 December 2019 в 10:26
поделиться

Это может быть, больше то, что вы ищете, но визуальные компоненты - хороший инструмент промышленного моделирования.

Быть ясно, что я не работаю на них, и компания я не работаю в настоящее время, но мы смотрели на них.

0
ответ дан 3 December 2019 в 10:26
поделиться

Так как ваш клиент - это вы сами, вам необходимо решить ответ на все вопросы, которые Mark Byers задал. Однако, я дам вам несколько предложений и надеюсь, что они дадут вам старт.

Предположим, что ваша фабрика берет несколько различных деталей и собирает их всего в один готовый продукт. Блок-схема процесса сборки может выглядеть следующим образом:

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

Для первого бриллианта, в котором собраны виджеты A и B, предположим, что для завершения этого шага требуется в среднем 30 секунд. Допустим, что фактическое время сборки двух виджетов распределяется нормально , со средними 30 с и дисперсией 5 с. Для второго алмаза также предположим, что это занимает в среднем 30 секунд, но большую часть времени это не занимает почти столько же времени, а в остальное время это занимает намного больше времени. Это хорошо аппроксимируется экспоненциальным распределением , параметром скорости которого является 30 с, часто представляемым в уравнениях лямбда.

Для первого процесса вычислите время сборки виджетов A и B как:

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

Для второго процесса вычислите время добавления виджета C в сборку как:

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

Теперь ваше общее время сборки для каждого iGadget будет timeA + timeB + waitingTime. В каждой точке сборки храните очередь виджетов, ожидающих сборки. Если вторая точка сборки является узким местом, то очередь будет заполняться. Вы можете принудительно установить максимальный размер для его очереди, и удерживать вещи дальше по потоку, когда этот максимальный размер будет достигнут. Если элемент находится в очереди, время сборки увеличивается на все iGadgets перед ним в линии сборки. Я оставлю это на ваше усмотрение, чтобы выяснить, как это кодировать, и вы можете запустить множество проб, чтобы посмотреть, какое общее время сборки будет в среднем. Как выглядит результирующий дистрибутив?

Способы "придать пикантность":

  • Требовать 3 B виджетов для каждого A виджета. Поиграйте с инвентаризацией. Пополняйте запасы через случайные промежутки времени.
  • Добавьте проверку качества (экспоненциальное распределение хорошо использовать здесь) и отвергайте некоторые готовые iGadgets. Я предлагаю использовать низкий процент отказов.
  • Попробуйте использовать распределения вероятностей, отличные от тех, которые я предложил. Посмотрим, как они повлияют на вашу симуляцию. Всегда пытайтесь выяснить, как входные параметры распределений вероятностей будут соотноситься с реальными значениями.

Вы можете многое сделать с помощью этой простой симуляции. Следующим шагом будет обобщение Вашего кода так, чтобы Вы могли иметь произвольное количество виджетов и этапов сборки. Это не так просто. Существует целая область прикладной математики под названием operations research, которая посвящена этому типу моделирования и анализа.

4
ответ дан 3 December 2019 в 10:26
поделиться

Automod - лучший выбор. http://www.appliedmaterials.com/products/automod_2.html

Есть чему поучиться, и он выиграл не дешево.

Automod от ASI занимается производством моделирования уже около 30 лет. Теперь он принадлежит Applied Materials. Крупные игроки, которые работают с погрузочно-разгрузочными работами на складе, используют Automod, потому что это проверенный лидер.

0
ответ дан 3 December 2019 в 10:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: