Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература / Compyuternoe_modelirovanie_v_AnyLogic_7_Boev_VD.pdf
Скачиваний:
225
Добавлен:
12.02.2018
Размер:
8.72 Mб
Скачать

Вместимость 1

Действия При выходе hold.setBlocked(false)

4.1.9. Сегмент Канал

Данный сегмент предназначен для имитации передачи сообщений по каналам связи.

Для его реализации в AnyLogic используется имитационная модель направления связи (глава 2), которое состоит из основного и резервного каналов.

4.1.9.1. Исходные данные

1.Откройте объект Канал. Перейдите на область просмотра viewData.

2.Перетащите элемент Скруглённый прямоугольник.

3.На странице Местоположение и размер панели Свойства

введите в поля X: 10, Y: 752, Ширина: 377, Высота: 118.

4.Перетащите элементы Параметр и Переменная, разместите и дайте им имена согласно рис. 4.16.

5.Типы и значения по умолчанию установите согласно табл. 4 8.

 

 

Таблица 4.8

 

 

 

Имя

Тип

Значение по умолчанию

skorPeredKan

double

5000

skorPeredKanR

double

5000

timeOtkKan

double

360

timeVosstKan

double

3.2

timeBklResK

double

0.1

всего_потеряно_сообщ

int

0

4.1.9.2.Событийная часть сегмента Каналы

1.Перейдите на область просмотра облКаналы.

2.Перетащите элемент Прямоугольник.

3.На странице Местоположение и размер панели Свойства

введите в поля X: 186, Y: 50, Ширина: 200, Высота: 135.

4. Перетащите объект selectOutput, разместите как на рис. 4.17.

5.Оставьте предложенные системой имена и флажок Отоб-

ражать имя.

6.В поле Тип заявки: Agent замените Message.

155

Рис. 4.16. Исходные данные сегмента Канал

Рис. 4.17. Объекты событийной части сегмента Канал

156

7.Выход true выбирается: При выполнении условия.

8.Условие: основной_канал_работает.

9.При выходе (true):

entity.timePered=entity.dlina/skorPeredKan;

10.В поле Вместимость введите 1.

11.При выходе (false):

if (а==0)

entity.timePered=entity.dlina/skorPeredKanR; if (а==1)

{entity.timePered=entity.dlina/skorPeredKanR + timeBklResK;

а=0;}

а=1;

12.Установите флажок Включить сбор статистики.

13.Скопируйте объект delay. Вставьте его один раз. При этом

изменится имя на основной_канал, а остальные свойства останутся неизменными.

14.Замените имя основной_канал на резерв_канал.

15.Действия При выходе

коэфЗагр-

РезК=резерв_канал.statsUtilization.mean();

коэфЗагрКан=коэфЗагрОснК+коэфЗагрРезК;

16. Соедините согласно рис. 4.17 объекты selectOutput и delay.

4.1.9.3.Организация входного и выходного портов

1.Перетащите элемент Скруглённый прямоугольник.

2.На странице Местоположение и размер панели Свойства

введите в поля X: 50, Y: 80, Ширина: 60, Высота: 52.

3.Из палитры Основная перетащите два элемента Порт. Разместите их как на рис. 4.17. В полях Имя: предложенные системой имена замените согласно рис. 4.17. Установите флажки

Отображать имя.

4.Обратите также внимание на то, чтобы у элементов

Скруглённый прямоугольник и Порт был установлен флажок

На верхнем уровне. У остальных элементов сегмента Канал

этот флажок должен быть сброшенным.

157

5. Соедините выходы элементов основной_канал и резерв_канал с портом вых, а порт вх — с входом элемента selectOutput.

4.1.9.4. Имитатор отказов каналов связи

Имитатор отказов основного канала связи построен аналогично имитатору отказов вычислительного комплекса.

1.Перетащите элемент Прямоугольник.

2.На странице Местоположение и размер панели Свойства

введите в поля X: 10, Y: 212, Ширина: 380, Высота: 120.

3.Перетащите объект source и два объекта delay. Разместите

исоедините их как на рис. 4.17.

4.Выделите source и установите значения его свойств: Отображать имя установите флажок

Прибывают согласно Интенсивности Интенсивность прибытия 1 Количество заявок, прибывающих за один раз 1

Ограниченное количество прибытий установите флажок Максимальное количество прибытий 1

Действия При выходе

5. Выделите первый объект delay и установите значения его свойств:

Имя: розыг_инт_до_отказа

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

Задержка задаётся Определённое время

Время задержки exponential(1/timeOtkKan)

Вместимость 1

Действия При выходе:

основной_канал_работает = false; if (основной_канал.size()!=0){

Message m = основной_канал.get(0); основной_канал.stopDelayForAll();

всего_потеряно_сообщ ++;}

6. Выделите второй объект delay и установите значения его свойств:

Имя имитация_восст_осн_кан

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

Задержка задаётся Определённое время

158