Коллеги, спасибо за очень информативный и полезный курс. Прошёл три лекции. Столкнулся с проблемой, что обе модели не могут закончить расчёт по причине ограничения бесплатной версии "создано максимально допустимое число динамически создаваемых агентов (50000)". По скриншотам Лекции 2 видно, что да, модель создает гораздо больше 50000 агентов. В принципе, мне то и диплом не особо нужен. Но хотелось бы выполнить практические работы. Нет ли возможности откорректировать эту проблему? Или может я чего не так делаю? Еще раз спасибо за прекрасный курс! |
Модель функционирования сети связи
Переключение между областями просмотра
Переключение между областями просмотра организуем так, чтобы можно было из сети переходить к любому абоненту, каналу, маршрутизатору и обратно. В каждом активном объекте - к данным и обратно к событийной части объекта или в сеть.
Для переключения используем элемент button из палитры Элементы управления.
- Перетащите элемент button (см. Рис. 4.18).
- На странице Основные панели Свойства укажите:
- Метка: Абонент1
- Действие: абонент1.облАбонент1.navigateTo()
- Скопируйте кнопку Абонент1. Вставьте пять раз. Последовательно откройте и внесите соответствующие правки в полях Метка: и Действие:, например:
- Метка: Абонент2
- Действие: абонент2.облАбонент2.navigateTo()
- Перетащите элемент button. Укажите свойства:
- Метка: Результаты
- Действие: viewData.navigateTo()
- Перетащите элемент button. Укажите свойства:
- Метка: маршрутизатор1
- Действие: маршрут1.облМарш1.navigateTo()
- Скопируйте кнопку маршрутизатор1. Её свойства:
- Метка: маршрутизатор2
- Действие: маршрут2.облМарш2.navigateTo()
Так как каналов 12, то давайте создадим ещё одну область просмотра облКан, и на ней разместим 12 кнопок (Рис. 4.19).
- Перетащите из палитры Презентация элемент Область просмотра. На странице Основные в поле Имя: введите облКан.
- Перейдите на страницу Местоположение и размер панели Свойства. Введите в поля X: 0, Y: 1780, Ширина: 450, Высота: 200.
- Перетащите элемент button.
- На странице Основные панели Свойства укажите:
- Метка: Канал1
- Действие: канал1.облКан.navigateTo()
- Скопируйте кнопку Канал1. Вставьте одиннадцать раз. Последовательно откройте и внесите соответствующие правки в полях Метка: и Действие:. Например:
- Метка: Канал2
- Действие: канал2.облКан.navigateTo()
- Перетащите элемент button.
- На странице Основные панели Свойства укажите:
- Метка: Сеть
- Действие: облСеть.navigateTo()
- Перейдите на область просмотра облСеть. Перетащите элемент button.
- На странице Основные панели Свойства укажите:
- Метка: Каналы
- Действие: облКан.navigateTo()
Нам осталось добавить элементы для переключения между областями просмотра на активных объектах и возвращения на корневой объект Main на область просмотра облСеть.
Последовательно переходите от объекта к объекту, добавляя на них нужное число элементов button и устанавливая значения свойств согласно Табл. 4.10. Размещение этих элементов было уже показано на Рис. 4.3… 4.6, 4.8, 4.10, 4.11, 4.16… 4.18.
Объект | Область просмотра | Свойства | Значение |
---|---|---|---|
Абонент | облАбонент | Метка: | Сеть |
Действие: | main.облСеть.navigateTo() | ||
облАбонент | Метка: | Исходные данные | |
Действие: | viewData.navigateTo() | ||
viewData | Метка: | Сеть | |
Действие: | main.облСеть.navigateTo() | ||
viewData | Метка: | Абонент | |
Действие: | облАбонент.navigateTo() | ||
Канал | облКан | Метка: | Сеть |
Действие: | main.облСеть.navigateTo() | ||
облКан | Метка: | Данные | |
Действие: | viewData.navigateTo() | ||
viewData | Метка: | Канал | |
Действие: | облКан.navigateTo() | ||
Маршрутизатор | облМарш | Метка: | Сеть |
Действие: | main.облСеть.navigateTo() | ||
облМарш | Метка: | Данные | |
Действие: | viewData.navigateTo() | ||
viewData | Метка: | Сеть | |
Действие: | main.облСеть.navigateTo() | ||
viewData | Метка: | Маршрутизатор | |
Действие: | облМарш.navigateTo() | ||
Маршрутизатор1 | облМарш | Метка: | Сеть |
Действие: | main.облСеть.navigateTo() | ||
облМарш | Метка: | Данные | |
Действие: | viewData.navigateTo() | ||
viewData | Метка: | Сеть | |
Действие: | main.облСеть.navigateTo() | ||
viewData | Метка: | Маршрутизатор | |
Действие: | облМарш.navigateTo() |
Запуск и отладка модели
Прежде чем запустить модель:
- В окне Проекты выделите Сеть_связи.
- На странице Основные в поле Единицы модельного времени: установите секунды.
- В окне Проекты выделите Simulation: Main.
- На странице Модельное время установите:
- Режим выполнения: Виртуальное время (максимальная скорость)
- Остановить: В заданное время.
- В поле Конечное время: введите 3600000. Время моделирования увеличено в 1000 раз по числу прогонов модели.
- На странице Случайность установите Фиксированное начальное число (воспроизводимые "прогоны").
- В поле Начальное число: введите 897.
- Запустите модель. Если появятся ошибки, исправьте их.
При правильном построении модели вы получите результаты, показанные на Рис. 4.20.
Среди них показатели качества обслуживания сети связи: коэффициент пропускной способности 0,815 и среднее время передачи одного сообщения 6,050. Коэффициент пропускной способности, например, абонент 2 - абонент 3 равен 0,816. Обратите внимание на существенную разницу между минимальным и максимальным временами передачи сообщения. Она объясняется принятым экспоненциальным законом распределения времени передачи сообщений: максимальное значение может отличаться от среднего значения в восемь раз.
Количество отправленных и полученных сообщений всего и по категориям рассчитано за один прогон модели, то есть за 3600 сек. Для расчёта, как вы помните, был введён параметр kolProg=1000 и в 1000 раз было увеличено модельное время. Всего отправлено сообщений 600,559, получено всего абонентами - 490,035. Если разделить число полученных сообщений на число отправленных, то и будет получен коэффициент пропускной способности сети.
Точно такие же результаты моделирования, коэффициенты пропускной способности, выводятся и по каждому абоненту сети.
Перейдите в область просмотра Сеть, щёлкнув кнопку Сеть. Затем, щёлкните, например, кнопку Абонент2. Вы увидите результаты моделирования, показанные на Рис. 4.21.