
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.21] |
![]() |
|
Страницы: (54) « Первая ... 39 40 [41] 42 43 ... 53 54 ( Перейти к последнему сообщению ) |
Сообщ.
#601
,
|
|
|
скажем так, на мой взгяд это будет кривое решение. но тем не менее оно даст результат похожий на адекватный. Цитата Василий_Н @ Т.е. правильно ли я понял, что нужно вместо 3-х моих сегментов делать один общий? А как внутри их разделять? Скажем как я смогу проверить что подошёл нужный момент для шторма? неправильно. генерация шторма и прочие действия пусть остаются как есть. просто в модель добавляем еще один сегмент. вот вам задачка для примера. будем в отдельном сегменте считать время одновременной работы двух устройств ![]() ![]() initial x$sum,0 generate (exponential(1,0,2)) seize 1 advance 1 release 1 terminate 1 generate (exponential(1,0,2)) seize 2 advance 1 release 2 terminate 1 generate ,,,1 met mark test ne (f1+f2),2 savevalue sum+,m1 test e (f1+f2),2 transfer ,met start 1000 Добавлено т.е. проверяем состояние системы вообще отдельным сегментом. условие можно поставить абсолютно любое.. в том смысле, что можно составить условие, оценивающее любое состояние системы.. собственно по этой причине я никогда не использую гейты и булевы переменные )) Добавлено и что б совсем уж для сравнения ![]() ![]() initial x$sum1,0 initial x$sum2,0 generate (exponential(1,0,2)) seize 1 advance 1 release 1 terminate 1 generate (exponential(1,0,2)) seize 2 advance 1 release 2 terminate 1 generate ,,,1 met mark test ne (f1+f2),2 savevalue sum1+,m1 test e (f1+f2),2 transfer ,met generate .001 savevalue sum2+,(((f1+f2)=2)/1000) terminate start 1000 обратите внимание на время, которое проходит от момента запуска на выполнение до момента получения отчета ![]() Добавлено Megera тут вхождение в блок дженерейт. один из них надо бы удалить и все заработает ![]() |
Сообщ.
#602
,
|
|
|
Помогите, дан код, реализующий работу робата манипулятора:
mode FUNCTION RN1,D2 0.5, mode1/1, mode2 INITIAL X1,0 ;прием запросов разрешен INITIAL X2,0 ;флаг функционнирования СМО в первом режиме ;флаг функционнирования СМО во втором режиме ;-- запуск СМО -- GENERATE (Gamma(1,0,10,3)) ;генерация запроса TEST NE X1,1,ERROR_OUT ;если устройство занято, поступивший запрос теряется SAVEVALUE 1,1 ;установить флаг занятости устройства в единицу TERMINATE 1 ;вывести запрос из системы TRANSFER ,FN$mode ;использование функции распределения запросов ;-- режим 1 -- mode1 SAVEVALUE 2,1 GENERATE (Exponential(1,0,0.35)) ;контроль устройством S1 TRANSFER ALL,con111,con1l2 ;распределение сиг. контроля для первого режима con111 QUEUE OCH2 ;контроль устройства S2 SEIZE S2 ;поместить сигнал контроля в устройство DEPART OCH2 ;изъять сигнал из очереди ADVANCE (Exponential(1,0,0.62)) ;обслуживание устройства RELEASE S2 ;высвобождение устройства TERMINATE 1 ;вывести сигнал контроля из устройства TRANSFER ,move ;перейти на генерацию команд conl12 QUEUE OCH7 ;контроль устройства SEIZE S7 ;поместить сигнал контроля в устройство DEPART OCH7 ;изъять сигнал из очереди ADVANCE (Exponential(1,0,0.74)) ;обслуживание устройства RELEASE S7 ;высвобождение устройства TERMINATE 1 ;вывести команду из системы TRANSFER ,move move GENERATE (Exponential(1,0,0.2)) ;генерация команды TRANSFER ALL,com11,com12 ;генерация команды com11 QUEUE OCH8 ;поместить команду в очередь SEIZE S8 ;поместить команду в устройство DEPART OCH8 ;изъять команду из очереди ADVANCE (Exponential(1,0,2.86)) ;начать процесс обслуживания устройства RELEASE S8 ;высвобождение устройства TERMINATE 1 ;вывести команду из системы TRANSFER ,conend ;переход на контроль com12 QUEUE OCH13 ;поместить команду в очередь SEIZE S13 ;поместить команду в устройство DEPART OCH13 ;изъять команду из очереди ADVANCE (Exponential(1,0,3.03)) ;начать процесс обслуживания устройства RELEASE S13 ;высвобождение устройства TERMINATE 1 ;вывести команду из системы TRANSFER ,conend conend GENERATE (Exponential(1,0,0.35)) ;генерация контрольного сигнала TRANSFER ALL,con121,con122 ;распред. сиг. кон. контроля для 1-го режима con121 QUEUE OCH2 ;контроль устройства SEIZE S2 ;поместить сигнал контроля в устройство DEPART OCH2 ;изъять сигнал из очереди ADVANCE (Exponential(1,0,0.62)) ;обслуживание устройства RELEASE S2 ;высвобождение устройства TERMINATE 1 ;вывести сиг. контроля из системы SAVEVALUE 1,0 TRANSFER ,OUT ;переход на метку NEXT_MODE con122 QUEUE OCH7 ;контроль устройства SEIZE S7 ;поместить сигнал контроля в устройство DEPART OCH7 ;изъять сигнал из очереди ADVANCE (Exponential(1,0,0.74)) ;обслуживание устройства RELEASE S7 ;высвобождение устройства TERMINATE 1 ;вывести сиг. контроля из системы SAVEVALUE 1,0 TRANSFER ,OUT mode2 TEST NE X2,0,genmod2 ;-- ожидание -- GENERATE (Exponential(1,0,0.2)) ;ожидание (переход из первого режима во второй) QUEUE OCH1 ;поместить сигнал ожидания в очередь SEIZE S1 ;поместить сигнал ожидания в S1 DEPART OCH1 ;изъять сигнал ожидания из очереди ADVANCE (Exponential(1,0,0.1)) ;обслуживания с МО=0.1 RELEASE S1 ;изъять сигнал ожидания из устройства SAVEVALUE 2,0 TERMINATE 1 ;-- режим 2 -- genmod2 GENERATE (Exponential(1,0,0.35)) TRANSFER ALL,con211,con212 ;запуск функции контроля для первого режима con211 QUEUE OCH4 ;контроль устройства SEIZE S4 ;поместить сигнал контроля в устройство DEPART OCH4 ;изъять сигнал из очереди ADVANCE (Exponential(1,0,0.62)) ;обслуживание устройства RELEASE S4 ;высвобождение устройства TERMINATE 1 ;вывести сиг. контроля из системы TRANSFER ,shwopen ;переход на открытие схвата con212 QUEUE OCH5 ;контроль устройства SEIZE S5 ;поместить сигнал контроля в устройство DEPART OCH5 ;изъять сигнал из очереди ADVANCE (Exponential(1,0,0.74)) ;обслуживание устройства RELEASE S5 ;высвобождение устройства TERMINATE 1 ;вывести сиг. кон. из системы TRANSFER ,shwopen shwopen GENERATE (Exponential(1,0,0.2)) ;сигнал: закрыть схват QUEUE OCH1 ;поместить сиг откр. схвата в OCH1 SEIZE S1 ;занять S1 сиг. откр. схвата DEPART OCH1 ;изъять сиг. откр. схвата ADVANCE (Exponential(1,0,4)) ;обслуживание с МО=4 RELEASE S1 ;изъять сиг. откр. схвата TERMINATE 1 ;вывести сиг. откр. схвата из системы GENERATE (Exponential(1,0,0.2)) ;генерация команды TRANSFER ALL,com21,com22 ;распределение команд по устр. com21 QUEUE OCH8 ;поместить команду в очередь SEIZE S8 ;поместить команду в устройство DEPART OCH8 ;изъять команду из очереди ADVANCE (Exponential(1,0,2.86)) ;начать процесс обслуживания устройства RELEASE S8 ;высвобождение устройства TERMINATE 1 ;вывести ком. из системы TRANSFER ,shwclose ;переход на закрытие схвата com22 QUEUE OCH11 ;поместить команду в очередь SEIZE S11 ;поместить команду в устройство DEPART OCH11 ;изъять команду из очереди ADVANCE (Exponential(1,0,3.03)) ;начать процесс обслуживания устройства RELEASE S11 ;высвобождение устройства TERMINATE 1 ;вывод СМО из СМО TRANSFER ,shwclose shwclose GENERATE (Exponential(1,0,0.2)) ;сигнал: открыть схват QUEUE OCH1 ;поместить в OCH1 сиг. закр. схвата SEIZE S1 ;занять устройство S1 сиг. закр. схвата DEPART OCH1 ;изъять сиг. закр.схвата ADVANCE (Exponential(1,0,4)) ;обслуживание МО=4 RELEASE S1 ;изъять сиг. закр. схвата TERMINATE 1 ;вывод сиг. закр. схвата из СМО GENERATE (Exponential(1,0,0.35)) ;Генерация сигналов контроля TRANSFER ALL,con221,con222 ;запуск функции контроля для первого режима con221 QUEUE OCH4 ;контроль устройства SEIZE S4 ;поместить сигнал контроля в устройство DEPART OCH4 ;изъять сигнал из очереди ADVANCE (Exponential(1,0,0.62)) ;обслуживание устройства RELEASE S4 ;высвобождение устройства TERMINATE 1 ;вывести сиг. контроля из СМО TRANSFER ,OUT ;переход на завершение con222 QUEUE OCH5 ;контроль устройства SEIZE S5 ;поместить сигнал контроля в устройство DEPART OCH5 ;изъять сигнал из очереди ADVANCE (Exponential(1,0,0.74)) ;обслуживание устройства RELEASE S5 ;высвобождение устройства TERMINATE 1 ;вывод сигнала контроля из системы TRANSFER ,OUT ;переход на метку OUT ;-- вывод заявок -- OUT TERMINATE 1 ;вывод сиг. контроля из системы SAVEVALUE 1,0 ;установить флаг занятости устройства в единицу ERROR_OUT GENERATE 60000 TERMINATE 1 ;вывод запроса из системы START 1 ;установить число прогонов Почему выводится следующая ошибка: 05/06/10 15:04:48 Model Translation Begun. 05/06/10 15:04:48 Ready. 05/06/10 15:04:48 Simulation in Progress. 05/06/10 15:04:48 Error Stop. 05/06/10 15:04:48 Halt. XN: 5. Block 60 Next. 05/06/10 15:04:48 Clock:0.010555. Next: SEIZE. Line 67. 05/06/10 15:04:48 SEIZE S1 ;поместить сигнал ожидания в S1 05/06/10 15:04:48 Reference to a non-existent Storage entity. |
Сообщ.
#603
,
|
|
|
Цитата ivx2 @ S1 колличество занятых каналов многоканального устройства номер 1 иными словами - поменяйте название устнойства на любое другое и старайтесь избегать названий состоящих из одной буквы |
Сообщ.
#605
,
|
|
|
To TEMENЬ:
здравствуйте! срочно требуется ваша помощь. но у меня, к сожалению, нет аськи. пожалуйста, если это возможно, дайте свой e-mail или номер телефона, либо другой какой-то способ, как к вам можно обратиться |
Сообщ.
#606
,
|
|
|
Помогите, пожалуйста с такой задачей:
Производственная линия состоит из двух станков ЧПУ, на каждом из которых работает отдельный оператор. Изделие обязательно проходит обработку на обеих станках последовательно. Перед первым станком может храниться неограниченное число изделий, однако, между первым и вторым станками может поместиться только одно изделие, ожидающее обработку. Оператор первого станка вынужден ждать освобождения места хранения между станками, даже если он закончил свою работу над следующим изделием. Изделия поступают на первый станок каждые 30±20 минут, время обработки на первом станке 25±10 минут, а на втором станке 30±10 минут. Время установки изделия на первый станок, со станка на ожидание, а затем установка и снятие со второго станка не учитывается. Условия варианта: • Определить эффективность работы линии при проведении обработки 100 изделий • Определить время простоя первого станка • Определить результаты моделирования за пять дней работы, используя операторы DO- ENDDD • Временная дискрета – 1 минута - Станки – устройства, - изделия - транзакты Набросок текста программы у меня получился такой: SIMULATE GENERATE 30,20 QUEUE STONEQ SEIZE STONE DEPART STONEQ ADVANCE 25,10 TEST LE STTWOQ,1 RELEASE STONE QUEUE STTWOQ SEIZE STTWO DEPART STTWOQ ADVANCE 30,10 RELEASE STTWO TERMINATE 1 START 100 END Как правильно реализовать условие "между первым и вторым станками может поместиться только одно изделие, ожидающее обработку", и "определить результаты моделирования за пять дней работы, используя операторы DO- ENDDD"? |
Сообщ.
#607
,
|
|
|
Цитата Lexa88 @ "между первым и вторым станками может поместиться только одно изделие, ожидающее обработку" как то так ![]() ![]() queue stan1 seize ograni4enie seize stan1 depart stan1 advance release stan1 queue stan2 seize stan2 release ograni4enie depart stan2 advance release stan2 Добавлено а вообще вариантов великое множество. это первый пришедший на ум |
Сообщ.
#608
,
|
|
|
Вроде все правильно, спасибо за ответ.
|
Сообщ.
#609
,
|
|
|
TEMENb
здравствуйте! срочно требуется ваша помощь. но у меня, к сожалению, нет аськи. пожалуйста, если это возможно, дайте свой e-mail или номер телефона, либо другой какой-то способ, как к вам можно обратиться |
Сообщ.
#610
,
|
|
|
Lilly, я уже писал. смотрите в теме "" задачи по жпсс. кроме того можно посмотреть в профиле или написать в приват на форуме. вообщем вариантов, как обычно, море.
|
Сообщ.
#611
,
|
|
|
Всем привет!!!
Нужна помощь нужно разобраться что делает программа не очень понятно.Листинг в файле с названием 1,отчет в вордовском документе. Есть ли редакторы где можно строить стуктуру программы (рисовать точнее) Заранее спасибо! Прикреплённый файл ![]() |
Сообщ.
#612
,
|
|
|
в визио можно строить
|
Сообщ.
#613
,
|
|
|
Подскажите, пожалуйста, как сделать такое:
есть 4 абонента, которые соединяются между собой для пересылки сообщений. Соединяются хаотичным образом. Периодичность соединения, к примеру, распределяется по экспоненц закону с лямбда = 1. Кроме каркаса по этому есть ещё вопрос: заявки будут уходить из системы, когда их получит назначенный абонент? Спасибо большое заранее) |
Сообщ.
#614
,
|
|
|
irinak, вопрос слишком уж абстрактный. имеет множество реализаций. у каждой свои плюсы и минусы. к тому же условие можно понять неравнозначно. периодичность соединения для каждого абонента или для всех вместе.
для примера могу предложить вам такую реализацию. 4 абонента звонят друг-другу. звонки в системе осуществляются с периодом 4 единицы времени и имеют продолжительность 1 единицу. Если вызываемый абонент занят, то вызывающий продолжает ему звонить, пока не дозвонится. вызывающий абонент является занятым. ![]() ![]() generate 4 test l (f1+f2+f3+f4),4,otk ;что бы избежать зацикливаний в след двух строчках povt assign 1,(duniform(1,1,4)) test ne f*1,1,povt ;если абонент занят, то ищем другого вызывающего абонента. (при различных значениях времени, тут возможны зацикливания, если убрать вторую строку программы) povt2 assign 2,(duniform(1,1,4)) test ne p1,p2,povt2 queue p1 seize p1 depart p1 queue p2 seize p2 depart p2 advance 1 release p1 release p2 terminate 1 otk terminate start 1000 |
Сообщ.
#615
,
|
|
|
Уточняю)))
Есть 4 абонента, с заданной периодичностью происходит соединение между парой несоединенных абонентов. Время соединения 3 секунды. Передаются сообщения. оно состоит из 20 +- 2 заявки. Передача сообщения составляет 0.15+-0.02секунд. В режиме А заявки передаются поочередно, а в режиме В заявки передаются одновременно. Вот) Спасибо) |