Здравствуйте, прошел курс "Концептуальное проектирование систем в AnyLogic и GPSS World". Можно ли получить по нему сертификат? У нас в институте требуют сертификаты для создания портфолио. |
Модель функционирования сети связи
Сегмент Маршрутизатор
Исходные данные
- Откройте объект Маршрутизатор.
- Перейдите на область просмотра viewData.
- Перетащите из палитры Презентация элемент Скругленный прямоугольник. На странице Основные в поле Имя: оставьте имя, предложенное системой.
- Перейдите на страницу Дополнительные панели Свойства. Введите в поля X: 10, Y: 600, Ширина: 314, Высота: 190.
- Перетащите элемент text и на странице Основные панели Свойства в поле Текст: введите Исходные данные (рис. 4.9.).
- Перетащите элементы Параметр и Простая переменная. Разместите их и дайте имена согласно рис. рис. 4.10.
- Значения по умолчанию элементов Параметр установите согласно табл. 4.7.
- Тип timeOtkBK, timeVosstBK, proizvod установите double, остальных параметров и простых переменных - int.
Имя | Значение по умолчанию | Имя | Значение по умолчанию |
---|---|---|---|
emkBufer1 | 5000000 | emkBuferNapr1 | 250000 |
timeOtkBK | 3600 | emkBuferNapr2 | 250000 |
timeVosstBK | 3,7 | emkBuferNapr3 | 250000 |
proizvod | 40000 | emkBuferNapr4 | 250000 |
Событийная часть сегмента Маршрутизатор
Элементы событийной части сегмента Маршрутизатор показаны на рис. 4.11. Сегмент включает Вычислительный комплекс, Буфер 2, порты входа-выхода, Имитатор отказов вычислительного комплекса.
В свою очередь вычислительный комплекс содержит Блок контроля 1, Буфер 1, Блок обработки сообщений.
Приступим к построению событийной части сегмента Маршрутизатор.
Блок контроля 1
Блок предназначен для контроля текущей емкости буфера 1 маршрутизатора. Он анализирует наличие в буфере 1 свободной памяти, достаточной для хранения поступившего сообщения, и в зависимости от результата анализа сообщение либо помещается в буфер 1, либо уничтожается.
Алгоритм работы Блока контроля 1 представлен на рис. 4.12.
В AnyLogic этот алгоритм реализуется блоками selectOutput, hold и sink.
- В Палитре выделите Презентация. Перетащите элемент Прямоугольник.
- Перейдите на страницу Дополнительные панели Свойства. Введите в поля X: 26, Y: 50, Ширина: 154, Высота: 150.
- Перетащите объекты selectOutput, hold и sink на диаграмму класса Маршрутизатор, разместите и соедините так, как показано на рис. 4.11.
- Перетащите элемент text и на странице Основные панели Свойства в поле Текст: введите Блок контроля 1.
- Выделите объект selectOutput.
- В поле Имя: вместо selectOutput введите blokKontrol_1.
- В поле Класс заявки: Entity замените Message.
- Установите Выход true выбирается При выполнении условия.
- В поле Условие введите условие:
(emkostBufer1-tekEmkostBufer1>=entity.dlina)&& (hold.isBlocked()==false)
При выполнении условия заявка направляется на выход T (выходной порт для заявок, для которых выбирается выход true) и на выход F (выходной порт для заявок, для которых выбирается выход false), если условие не выполняется, соответственно.
- Выделите объект sink. В поле Класс заявки: Entity замените Message.
- В поле Действие при входе введите kolPotBK++; для счёта количества сообщений, потерянных при отказе вычислительного комплекса.
- Выделите элемент hold. В поле Класс заявки: Entity замените Message.
Блок Буфер 1
Блок Буфер 1 предназначен для приема, размещения и хранения поступающих на обработку сообщений.
Алгоритм работы блока Буфер 1 приведен на рис. 4.13.
В AnyLogic алгоритм блока Буфер 1 реализуется объектом queue, который выполняет функции очереди (FIFO).
- В Палитре выделите Презентация. Перетащите элемент Прямоугольник.
- Перейдите на страницу Дополнительные панели Свойства. Введите в поля X: 190, Y: 50, Ширина: 126, Высота: 100.
- На странице Основные панели Свойства в поле Имя: оставьте Rectangle. Не устанавливайте флажок Отображать имя.
- Перетащите элемент text и на странице Основные панели Свойства в поле Текст: введите Буфер 1.
- Выделите объект queue.
- В поле Имя: вместо queue введите bufer1.
- В поле Класс заявки: Entity замените Message.
- В поле Вместимость введите emkBufer1.
- При помещении сообщения в буфер его текущая емкость увеличивается, поэтому в поле Действие при входе введите:
tekEmkBufer1 += entity.dlina;
- При выходе сообщения из буфера его текущая емкость уменьшается, поэтому в поле Действие при выходе введите:
tekEmkBufer1 = -entity.dlina;
- Поставьте флажок Включить сбор статистики.