Опубликован: 15.02.2013 | Доступ: свободный | Студентов: 257 / 0 | Длительность: 16:52:00
ISBN: 978-5-9556-0146-5
Лекция 6:

Модель функционирования системы связи

Сегмент Имитация дежурства

Ввод исходных данных

Организуйте ввод исходных данных для сегмента Имитация дежурства. Для ввода исходных данных используйте также элемент Параметр.

  1. Перетащите элемент Прямоугольник. На нём мы разместим элементы для ввода исходных данных.
  2. Оставьте имя, предложенное системой, а также установленным только один флажок На презентации.
  3. Перейдите на страницу Дополнительные панели Свойства. Введите в поля X: 50, Y: 790, Ширина: 570, Высота: 190.
  4. Перетащите элемент text и на странице Основные панели Свойства в поле Текст: введите Initial_data_D (здесь D -дежурство).
  5. В Палитре выделите Основная. Перетащите элементы Параметр на элемент с именем Initial_data_D и разместите их так, как показано на рис. 5.9.
  6. На странице Основные панели Свойства каждого элемента Параметр установите свойства согласно табл. 5.3.
Размещение элементов Параметр для ввода данных

Рис. 5.9. Размещение элементов Параметр для ввода данных
Таблица 5.3. Свойства элементов Параметр на Initial_data_D
Имя Тип Значение по умолчанию Отображать имя
KCC1 int 55 Установить флажок во всех элементах
KCC2 int 100
KCC3 int 60
KCC4 int 45
KCC5 int 60
KCCР1 int 2
KCCР2 int 4
KCCР3 int 4
KCCР4 int 3
KCCР5 int 4
stoimRemCC1 double 17
stoimRemCC2 double 18
stoimRemCC3 double 16
stoimRemCC4 double 20
stoimRemCC5 double 21
timeRem1 double 6,5
timeRem2 double 4,2
timeRem3 double 2,8
timeRem4 double 3
timeRem5 double 5,5
timeOtkaz1 double 373
timeOtkaz2 double 301
timeOtkaz3 double 482
timeOtkaz4 double 325
timeOtkaz5 double 470
kol_master int 3
КолПрогон double 1000
ВремяРабСист double 1000
Вывод результатов моделирования

Здесь выводятся все результаты моделирования (Рис. 5.10). Однако с целью экономии машинного времени, выводятся они по-разному. Рассчитанные ранее максимальные доходы от дежурства СС и затраты на содержание резервных СС не выводятся в ходе моделирования. Выводятся только текущие доходы от дежурства СС и текущие затраты на ремонт неисправных СС. Все обработанные результаты выводятся по окончании моделирования. Для организации вывода используется способ Событие (см. п. 5.1.7).

Элементы Простая переменная для выводов результатов моделирования

увеличить изображение
Рис. 5.10. Элементы Простая переменная для выводов результатов моделирования
  1. Перетащите элемент Прямоугольник.
  2. Перейдите на страницу Дополнительные панели Свойства. Введите в поля X: 54, Y: 436, Ширина: 696, Высота: 278.
  3. Результаты разбиты на две группы: затраты и доходы. Перетащите два элемент text и на странице Основные панели Свойства в поле Текст: введите Затраты и Доходы соответственно.
  4. В Палитре выделите Основная. Перетащите элементы Простая переменная. Разместите их, как показано на рис. 5.10.
  5. У всех переменных установите флажки Отображать имя и тип double.
Событийная часть сегмента Имитация дежурства

Реализация событийной части сегмента показана на рис. 5.11.

  1. Перетащите элемент Скруглённый прямоугольник. На нём мы разместим все элементы сегмента Имитация дежурства.
  2. Перейдите на страницу Дополнительные панели Свойства. Введите в поля X: 60, Y: 60, Ширина: 600, Высота: 350.
  3. Перетащите элемент Прямоугольник. На нём мы разместим элементы, непосредственно имитирующие дежурство СС.
  4. Перейдите на страницу Дополнительные панели Свойства. Введите в поля X: 250, Y: 70, Ширина: 170, Высота: 330.
  5. Перетащите ещё один элемент Прямоугольник для размещения элементов, имитирующих ремонтное подразделение СС.
  6. Перейдите на страницу Дополнительные панели Свойства. Введите в поля X: 440, Y: 70, Ширина: 190, Высота: 330.
  7. Перетащите (или введя один элемент, остальные подобные ему скопируйте) на диаграмму класса Degyrstvo последовательно: пять объектов queue, пять объектов delay, один объект queue, один объект delay и соедините их так, как показано на рис. 5.11.
  8. Перетащите три элемента text и введите названия в соответствующие поля Текст: согласно рис. 5.11.
  9. На странице Основные панели Свойства каждого объекта установите свойства согласно табл. 5.4.
Замечание. Поскольку на входах каждого из объектов delay с именами degCC1 … degCC5 стоят объекты queue с именами rez1 … rez5 соответственно, то возникает желание поставить такие же объекты на выходах delay. Однако это приведёт к неправильной работе модели: некоторые СС не смогут поступать в ремонтное подразделение.
Сегмент Имитация дежурства

увеличить изображение
Рис. 5.11. Сегмент Имитация дежурства
Таблица 5.4. Объекты сегмента Имитация дежурства и их свойства
queue
Имя Вместимость Действие при выходе
rez1 KCCP1 entity.timeOtkaz=1/timeOtkaz1
rez2 KCCP2 entity.timeOtkaz=1/timeOtkaz2
rez3 KCCP3 entity.timeOtkaz=1/timeOtkaz3
rez4 KCCP4 entity.timeOtkaz=1/timeOtkaz4
rez5 KCCP5 entity.timeOtkaz=1/timeOtkaz5
очРем Максимальная
delay
Имя Время задержки Вместимость
degCC1 exponential(entity.timeOtkaz) KCC1
degCC2 exponential(entity.timeOtkaz) KCC2
degCC3 exponential(entity.timeOtkaz) KCC3
degCC4 exponential(entity.timeOtkaz) KCC4
degCC5 exponential(entity.timeOtkaz) KCC5
remont exponential(entity.timeMeanRem) 3
Имя Действие при выходе
degCC1 DoxDegCC1+=(time()-entity.nach1)*get_Main().doxDegCC1;
entity.timeMeanRem=1/timeRem1;
degCC2 DoxDegCC2+=(time()-entity.nach1)*get_Main().doxDegCC2;
entity.timeMeanRem=1/timeRem2;
degCC3 DoxDegCC3+=(time()-entity.nach1)*get_Main().doxDegCC3;
entity.timeMeanRem=1/timeRem3;
degCC4 DoxDegCC4+=(time()-entity.nach1)*get_Main().doxDegCC4;
entity.timeMeanRem=1/timeRem4;
degCC5 DoxDegCC5+=(time()-entity.nach1)*get_Main().doxDegCC5;
entity.timeMeanRem=1/timeRem5;

Кроме свойств, указанных в табл. 5.4, нужно также:

  • во всех объектах в поле Класс заявки: Entity заменить ComFacility;
  • для всех объектов поставить флажки Включить сбор статистики;
  • для всех объектов delay degCC1 … degCC5 установить:
    • Действие при входе entity.nach1=time();
  • для объекта delay с именем remont также ввести Java коды в следующие свойства:
    • Действие при входе entity.nach=time();
    • Действие при выходе
      if (entity.tipCC == 1) 
         {ZatrRemCC1+=((time()-entity.nach)*stoimRemCC1);
          SumZatrRem+=((time()-entity.nach)*stoimRemCC1);}
      if (entity.tipCC == 2) 
         {ZatrRemCC2+=((time()-entity.nach)*stoimRemCC2);
         SumZatrRem+=((time()-entity.nach)*stoimRemCC2);}   
      if (entity.tipCC == 3) 
         {ZatrRemCC3+=((time()-entity.nach)*stoimRemCC3);
         SumZatrRem+=((time()-entity.nach)*stoimRemCC3);}
      if (entity.tipCC == 4) 
         {ZatrRemCC4+=(time()-entity.nach)*stoimRemCC4;
        SumZatrRem+=((time()-entity.nach)*stoimRemCC4);} 
      if (entity.tipCC == 5) 
         {ZatrRemCC5+=((time()-entity.nach)*stoimRemCC5);
         SumZatrRem+=((time()-entity.nach)*stoimRemCC5);}
Переключение между областями просмотра
  1. В Палитре выделите Презентация. Перетащите элемент text, разместите и введите в поле Текст: Постановка на дежурство, как на рис. 5.11.
  2. На панели Свойства выделите Динамические и в поле Действие по щелчку: введите следующий Java код:
    get_Main().Postanovka.navigateTo();
  3. Перетащите второй элемент text, разместите и введите в поле Текст: Имитация дежурства.
  4. На панели Свойства выделите Динамические и в поле Действие по щелчку: введите следующий Java код:
    Degyr.navigateTo();
  5. Проделайте то же для Статистика. Введите Java код:
    statistika.navigateTo();
Алексей Гроссман
Алексей Гроссман

Здравствуйте, прошел курс "Концептуальное проектирование систем в AnyLogic и GPSS World". Можно ли получить по нему сертификат? У нас в институте требуют сертификаты для создания портфолио.

Елена Блинаева
Елена Блинаева