![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
Миринда |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 18.3.2012 Репутация: нет Всего: нет |
Сможет ли кто-нибудь мне помочь. Задача на моделирование систем.
Детали, необходимые для работы цеха, находятся на цеховом и центральном складах. На цеховом складе хранится 20 комплектов деталей, потребность в которых возникает через 60 ± 10 мин и составляет один комплект. В случае снижения запасов до трех комплектов формируется в течение 60 мин заявка на пополнение запасов цехового склада до полного объема в 20 комплектов, которая посылается на центральный склад, где в течение 60 ± 20 мин происходит комплектование и за 60 ±5 мин осуществляется доставка деталей в цех. Смоделировать работу цеха в течение 400 ч. Определить вероятность простоя цеха из-за отсутствия деталей и среднюю загрузку цехового склада. Определить момент пополнения запаса цехового склада, при котором вероятность простоя цеха будет равна 0. Надо написать программку на Delphi. Это сообщение отредактировал(а) Миринда - 1.5.2013, 14:30 |
|||
|
||||
Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 4 Всего: 17 |
В чем проблема? Запускаете процесс моделирования. В начальный момент времени вычисляете время возникновения потребности в детали по формуле
t:=50+round((random()-0.5)*20) пропускаете время t. вычисляете цледующее время по той же формуле и вперед. Сформулируйте что у вас не получается. -------------------- Mirkes |
|||
|
||||
Миринда |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 18.3.2012 Репутация: нет Всего: нет |
Здравствуйте! Ну вот, наконец-то, то задание, которое я выкладывала, вроде бы готово, но преподаватель меня не оставляет в покое по поводу такого момента в работе программы, она при пороговом значении 3 считает время простоя равным нулю, а препод утверждает, что не может быть нулевое время простоя. Оно будет небольшим, но будет.
Подскажите что и как можно изменить в моей программке чтобы время простоя и вероятность простоя цеха не была равной нулю ? Присоединённый файл ( Кол-во скачиваний: 19 ) ![]() |
|||
|
||||
Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 4 Всего: 17 |
Ведите протокол моделирования
![]() Рассмотрим вашу ситуацию Со склада забрали 17 комплект. Осталось 3 Считаем это время за Т0. Сначала цех. Цех потребует новую деталь через 50-70 минут. Потом еще через 50-70 и еще через 50-70 и наконец еще через 50-70 минут возникнет потребность, которую вы не сможете удовлетворить и начнется простой. Таким образом от момента снижения запасов до 3 комплектов до момента простоя проидет от 200 до 280 минут Теперь поставки. Формирование заявки 60 минут Формирование поставки 40-80 минут Доставка 55-65 минут Таким образом от момента снижения запасов до 3 комплектов до момента возобновления запасов пройдет от 155 до 205 минут Вообще говоря преподаватель прав, но только отчасти: простой может возникнуть, но не более чем на 5 минут за большой цикл (я имею в виду пополнение склада) и с довольно маленькой вероятностью. Вы моделируете 400 часов. Это всего около 25 больших циклов. Как ответ преподавателю - запустите на моделирование не 400 часов а 4000 часов Выведите в файл протокол моделирования с момента снижения запасов до момента доставки комплектов на склад. Кстати это поможет вам понять нет ли у вас ошибки ![]() Предложите удвоить время формирования заявки - тогда простой почти гарантирован каждый раз. -------------------- Mirkes |
|||
|
||||
Миринда |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 18.3.2012 Репутация: нет Всего: нет |
Почти всё поняла до определенного момента.
Как вы высчитали эти 5 минут и 25 циклов ?
|
||||||||||
|
|||||||||||
Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 4 Всего: 17 |
Если вы сравните время до начала простоя - 200-280 минут с временем на возобновление запасов 155-205 минут, то увидете, что эти два интервала пересекаются по интервалу 200-205 вот и 5 минут. Большой цикл требует, чтобы цех потребил 20 комплектов это около 20 часов. Кстати забавный вопрос. При пополнении запасов на склад цеха присылают 17 комплектов или 20? Из условия не понятно. Теперь о протоколе. Очень полезно уметь это делать. В вашей ситуации можно не мудрить, а делать записи о каждом действии. Получите строк 500. Я имею в виду следующее. В вашей модели есть несколько видов событий 1. Передача комплекта в цех. Записываем "Время. В цех. Остаток М комплектов" 2. Отправка заявки на центральный склад. Записываем "Время. Заявка." 3. Конец комплектации. Записываем "Время. Комплектация" 4. Поставка комплектов на склад цеха. Записываем "Время. Поставка" Если ваша программа запишет это в текстовый файл, то вы легко поймете в чем причина. Успехов. А вы для себя попробуйте. Если простоев не будет - у вас точно ошибка. -------------------- Mirkes |
|||
|
||||
Миринда |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 18.3.2012 Репутация: нет Всего: нет |
Здравствуйте.
Я уже совсем запуталась, каша в голове. Времени на долгие раздумья у меня совершенно нет, поэтому просто взяла да присвоила времени простоя случайное число от 1 до 6, полученное Random-ом, которое влияет на расчет вероятности простоя. Да вот что-то не всегда вероятность получается от 0 до 1. Буквально через раз вычисляется то "4", то "8". Добавила лишь эти строчки:
Может не туда их прописала? Это сообщение отредактировал(а) Миринда - 19.5.2013, 20:12 Присоединённый файл ( Кол-во скачиваний: 19 ) ![]() |
||||
|
|||||
Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 4 Всего: 17 |
К сожалению у меня нет под рукой паскаля.
Не совсем понял про вероятность. В паскале две принципиально разные функции получения случайного числа, причем имя у них одно. Если вы пишете i:=Random(6); то вы просите ЦЕЛОЕ число от нуля до 5. Если вы пишете i:=Random(); то вы просите ДЕЙСТВИТЕЛьное число в диапазоне от 0 до 1. -------------------- Mirkes |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |