Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

мод сис / V.Boev-GPSSvsAnyLogic

.pdf
Скачиваний:
88
Добавлен:
11.04.2015
Размер:
9.01 Mб
Скачать

101

2.2.2.5.Создание области просмотра

Вслучае сложных моделей, активные объекты которых содержат большое количество элементов, может возникнуть неудобство: все элементы активного объекта могут просто физически не поместиться в ту область диаграммы, которая будет отображена

вокне презентации во время выполнения модели.

Версия 6 AnyLogic предоставляет в распоряжение пользователей специальный элемент для решения этой проблемы — область просмотра. С помощью этого элемента вы можете выделить на диаграмме активного объекта некоторые области, содержащие логически обособленные группы элементов или участки диаграммы. Задав такие области, вы сможете легко переключаться между ними во время выполнения модели с помощью специальных средств навигации, что позволит быстро переходить к тому или иному участку диаграммы активного объекта. При этом в окне презентации запущенной модели будут отображаться те элементы активного объекта, которые попали в заданную вами ранее и сделанную в текущий момент активной область просмотра.

Используем две области просмотра. В первой области просмотра разместим объекты первых пяти сегментов (см. рис. 2.9), во второй — сегменты Пункт окончательного контроля, Склад готовых деталей и Склад бракованных деталей.

Первая область просмотра будет на диаграмме класса Main, а вторая — на новом классе активного объекта Kontrol.

Создайте область просмотра на диаграмме класса Main для размещения объектов сегмента Постановка на дежурство.

1.В Палитре выделите Презентация. Перетащите элемент

Область просмотра в нужное место.

2.Вы увидите на диаграмме значок якоря этой области про-

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

3.Перейдите на страницу Основные панели Свойства.

4.В поле Имя: введите zex.

5.Задайте, как будет располагаться область просмотра относительно ее якоря, с помощью элемента управления Выравнивать

по: Верхн. левому углу.

6.Выберите режим масштабирования из выпадающего спи-

ска Масштабирование: Подогнать под окно.

7.Сбросьте флажок исключить, если он был установлен.

102

на_контроль.kontr.navigateTo()

2.2.2.6. Переключение между областями просмотра

Области просмотра используются как для навигации по графическому редактору во время создания модели, так и для навигации по окну презентации во время выполнения модели.

Чтобы перейти к другой области просмотра в режиме создания модели:

1.Щелкните мышью в графическом редакторе, чтобы сделать его активным.

2.Щелкните по кнопке панели инструментов Области просмотра и выберите из выпадающего списка, к какой именно области просмотра вы хотите перейти.

Чтобы перейти к другой области просмотра в режиме выполнения модели:

1.Щелкните правой кнопкой мыши в области обрисовки окна презентации, выберите пункт контекстного меню Область и, затем выберите из списка, к какой именно области просмотра вы хотите перейти.

2.Или же щелкните кнопку панели инструментов Показать область... и выберите из выпадающего списка, к какой именно области просмотра вы хотите перейти (эта кнопка принадлежит секции панели инструментов Вид, и возможно, чтобы она стала видна, вам нужно будет вначале показать эту секцию панели инструментов).

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

1.В Палитре выделите Презентация. Перетащите элемент text, разместите и введите в поле Текст: Цех, как на рис. 2.9.

2.Перетащите второй элемент text, разместите и введите

вполе Текст: Пункт окончательного контроля.

3.На панели Свойства выделите Динамические и в поле Действие по щелчку: введите следующий Java код:

;

Во введѐнном коде на_контроль — имя элемента нового класса активного объекта Kontrol, а kontr — имя области просмотра, которую мы создадим позднее на новом активном объекте

Kontrol.

На рис. 2.10 показан активный объект Kontrol с размещѐнными на нѐм тремя сегментами модели. Создадим эти сегменты.

103

2.2.2.7.Пункт окончательного контроля

1.В Палитре выделите Презентация. Перетащите три элемента Прямоугольник и разместите так, как на рис. 2.10. На странице Дополнительные панели Свойства для верхнего прямо-

угольника введите в поле Ширина: 580, в поле Высота: 240. Для нижних прямоугольников: Ширина: 250, Высота: 140.

2. Перетащите три элемента text и на странице Основные панели Свойства в поле Текст: каждого из них введите Пункт

104

окончательного контроля, Склад готовых деталей, Склад бракованных деталей соответственно (рис. 2.10).

3.В Палитре выделите Enterprise Library. Перетащите два объекта selectOutput, объект queue, объект delay и один объект selectOutput5 на диаграмму класса Kontrol, разместите в верхнем прямоугольникe и соедините так, как показано на рис. 2.10. Порты брОп1, брОп2 и брОп3 соединяются с входом объекта selectOutput. Выход T (true) объекта окКон3 соединяется с входом объекта selectOutput.

4.Выделите поочередно объекты, начиная с левого объекта selectOutput, и на странице Основные панели Свойства установите свойства согласно рис. 2.10 и табл. 2.5. Во всех объектах должен быть установлен флажок Отображать имя.

 

 

Таблица 2.5

 

 

 

Объект

Свойства

Значения

 

 

 

selectOutput

имя

окКон1

 

Класс заявки

Detail

 

Выход true выбирается

При выполнении условия

 

Условие

entity.a<2

queue

имя

очКон

 

Класс заявки

Detail

 

Максимальная вмести-

Установите флажок

 

мость

 

delay

имя

окКон2

 

Класс заявки

Detail

 

Задержка задаѐтся

Явно

 

 

exponential

 

Время задержки

(1/get_Main().Tk)

 

Вместимость

1

selectOutput

имя

окКон3

 

Класс заявки

Detail

 

Выход true выбирается

С заданной вероятностью

 

Вероятность [0..1]

1-get_Main().q4

 

Действие при выходе(true)

entity.a=2

selectOutput5

имя

распределитель

 

Класс заявки

Detail

 

Использовать:

Условия

 

Условие 0

entity.n==1

 

Условие 1

entity.n==2

 

Условие 2

entity.n==3

105

2.2.2.8. Склад готовых деталей. Вывод результатов моделирования

1. Выделите в Палитре Основная. Перетащите на левый нижний прямоугольник три элемента Простая переменная. На странице Основные панели Свойства в поле Имя: каждого элемента введите соответствующие имена, показанные на рис. 2.10. Установите Тип: double.

2.В Палитре выделите Enterprise Library. Перетащите объект

sink.

3.На странице Основные панели Свойства установите следующие свойства:

Имя: склГотДет

Отображать имя сбросьте флажок;

Класс заявки: Detail

Действие при входе

готДетали = склГотДет.count()/get_Main().колПрог; доляГотДет = готДетали/(готДетали + бракДетали); срВрПодгДет =

(get_Main().врМод*get_Main().колПрог)/склГотДет.count();

Код предназначен для расчѐта результатов моделирования: абсолютного готДетали и относительного доляГотДет количества готовых деталей, среднего времени срВрПодгДет подготовки одной детали.

2.2.2.9. Склад бракованных деталей. Вывод результатов моделирования

4. Выделите в Палитре Основная. Перетащите на правый нижний прямоугольник два элемента Простая переменная. На странице Основные панели Свойства в поле Имя: каждого элемента введите соответствующие имена, показанные на рис. 2.10. Установите Тип: double.

5.Из Enterprise Library перетащите объект sink.

6.На странице Основные панели Свойства установите следующие свойства:

Имя: склБракДет

Отображать имя сбросьте флажок;

Класс заявки: Detail

Действие при входе

106

get_Main().колПрог;

бракДетали = склБракДет.count()/get_Main().колПрог; доляБрДет = бракДетали/(готДетали+бракДетали);

Код предназначен для расчѐта результатов моделирования: абсолютного бракДетали и относительного доляБрДет количества бракованных деталей.

Так как все исходные данные размещены на диаграмме класса Main, то ссылка на них из диаграммы класса Kontrol, производится, например, так:

2.2.2.10. Создание и переключение между областями просмотра

1.В Палитре выделите Презентация. Перетащите элемент Область просмотра в нужное место (см. рис. 2.10).

2.Перейдите на страницу Основные панели Свойства.

3.В поле Имя: введите kontr.

4.Задайте, как будет располагаться область просмотра относительно ее якоря, с помощью элемента управления Выравнивать

по: Верхн. левому углу.

5.Выберите режим масштабирования из выпадающего спи-

ска Масштабирование: Подогнать под окно.

6.Сбросьте флажок Исключить, если он был установлен.

7.Перетащите элемент text, разместите и введите в поле

Текст: Цех, как на рис. 2.10.

8.На панели Свойства выделите Динамические и в поле Действие по щелчку: введите следующий Java код: get_Main().zex.navigateTo();

9.Перетащите второй элемент text, разместите и введите

вполе Текст: Пункт окончательного контроля.

10.Теперь в ходе моделирования вы можете перемещаться между двумя областями просмотра. Чѐрный цвет, например, Цех, означает, что открыта область просмотра, на которой размещен

Пункт окончательного контроля.

2.2.3.Проведение исследований в AnyLogic

1.Перейдите на диаграмму класса Main. В панели Проекты

выделите Simulation:Main.

2.На странице Основные панели Свойства установите

Фиксированное начальное число (воспроизводимые прогоны).

3.В поле Начальное число: введите 23. Это же число мы использовали и в GPSS-модели.

107

4.На странице Модельное время в поле Остановить: вве-

дите 7987 680.0 (480*16 641 = 7 987 680.0).

5.Запустите модель.

6.Результаты моделирования представлены на рис. 2.11.

2.3.Сравнительная оценка результатов моделирования

Мы провели эксперименты с моделями прямых задач, выполнив в GPSS World 16 641 прогонов, а в AnyLogic увеличив модельное время в 16 641 раз. При этом начальное значение генераторов случайных чисел устанавливали одно и тоже: 23.

108

Проведите эксперименты при других начальных числах генераторов случайных чисел, указанных в табл. 2.6. Выбраны эти числа произвольным образом. Кроме того, эксперименты проведите сначала при времени работы цеха 8 часов или 480 мин, а потом 48 часов или 2880 мин.

При проведении экспериментов в AnyLogic для времени работы цеха 48 часов не забудьте в исходных данных указать время моделирования врМод = 2880 вместо 480. Также не забудьте изменить время окончания моделирования на 47 926 080 (2 880*16 641 = 47 926 080).

Вы получите показатели, приведенные в табл. 2.6, которые свидетельствуют об адекватности результатов моделирования GPSS World и AnyLogic.

Такой показатель, как относительная доля готовых деталей ( 1

и3 ), отличается на 0,001…0,003, а среднее время изготовления

одной детали ( 2 и 4 ) — на 0,101…0,406 мин.

При изменении начального числа генератора случайных чисел эти показатели в одной и той же системе моделирования также изменяются незначительно. Например, в GPSS World относительная доля готовых деталей при времени работы цеха 8 часов изменяется на 0,001, а при времени работы 48 часов — не изменяется и остаѐтся равной 0,722. Аналогичная тенденция и в AnyLogic.

109

Таблица 2.6

Показатели функционирования цеха

 

 

 

 

Системы моделирования

 

 

Показатели

 

 

GPSS World

 

 

 

 

AnyLogic

 

 

 

Начальные числа генераторов случайных чисел

 

 

 

 

 

 

 

23

731

9722

 

72685

 

23

731

9722

72685

 

Время работы цеха 8 часов или 480 мин

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

готДетали

 

9,885

9,909

9,884

 

9,905

 

9,882

9,967

9,906

9,927

доляГотДет

 

0,721

0,721

0,721

 

0,722

 

0,723

0,724

0,723

0,722

бракДетали

 

3,821

3,833

3,823

 

3,821

 

3,778

3,795

3,803

3,813

доляБрДет

 

0,279

0,279

0,279

 

0,278

 

0,277

0,276

0,277

0,278

срВрПодгДет

 

48,559

48,440

48,563

 

48,460

 

48,573

48,157

48,457

48,352

доляГотДет

 

 

 

1

= |0,721 - 0,724| = 0,003

 

 

срВрПодгДет

 

 

 

2

= |48,563 - 48,157| = 0,406

 

 

 

Время работы цеха 48 часов или 2880 мин

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

готДетали

 

59,496

59,405

59,432

 

59,496

 

59,433

59,529

59,508

59,477

доляГотДет

 

0,722

0,722

0,722

 

0,722

 

0,723

0,723

0,723

0,723

бракДетали

 

22,890

22,855

22,850

 

22,890

 

22,805

22,773

22,818

22,782

доляБрДет

 

0,278

0,278

0,278

 

0,278

 

0,277

0,277

0,277

0,278

срВрПодгДет

 

48,406

48,481

48,459

 

48,406

 

48,458

48,380

48,397

48,406

доляГотДет

 

 

 

3

= |0,722 - 0,723| = 0,001

 

 

 

 

 

 

 

 

 

срВрПодгДет

 

 

 

4 = |48,481 - 48,380| = 0,101

 

 

 

 

 

 

 

 

 

 

 

 

 

 

110