Опубликован: 07.11.2014 | Доступ: свободный | Студентов: 441 / 37 | Длительность: 15:17:00
ISBN: 978-5-9556-0161-8
Тема: САПР
Лекция 4:

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

< Лекция 3 || Лекция 4: 123 || Лекция 5 >

Постановка задачи

Направление связи состоит из двух каналов (основного и резервного) и общего входного буфера емкостью на Еmk сообщений.

На направление поступают два потока сообщений с экспоненциально распределенными интервалами времени, средние значения которых Т1 = 3 мин и Т2 = 4 мин. При нормальной работе сообщения передаются по основному каналу. Время передачи одного сообщения распределено по экспоненциальному закону со средним значением Т3 = 2 мин.

В основном канале происходят сбои через интервалы времени, распределенные по экспоненциальному закону со средним значением Т4 = 15 мин. Если сбой происходит во время передачи, то сообщение теряется. За время Т5 = 5 с запускается резервный канал, который передает сообщения, начиная с очередного. Время передачи одного сообщения распределено по экспоненциальному закону со средним значением Т6 = 3 мин.

Основной канал восстанавливается. Время восстановления канала подчинено экспоненциальному закону со средним значением Т7 = 2 мин. После восстановления резервный канал выключается и основной канал продолжает работу с очередного сообщения.

Необходимо разработать имитационную модель и провести исследование функционирования направления связи в течение 2 ч.

Определить:

  • рациональную емкость накопителя;
  • загрузку основного и резервного каналов связи;
  • вероятности передачи сообщений потока 1 и потока 2;
  • вероятность передачи сообщений направлением связи в целом.

Модель направления связи в GPSS World

В модели сообщения следует представлять транзактами, основной и резервный канал - одноканальными устройствами (ОКУ), входной буфер (накопитель) - списком пользователя. В списке пользователя следует использовать дисциплину обслуживания FIFO.

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

Так как сообщения имеют одинаковые приоритеты, то для моделирования ОКУ нужно использовать блоки SEIZE и RELEASE. Моделирование отказов основного канала нужно произвести блоками FUNAVAIL и FAVAIL, а не блоками PREEMPT и RETURN в режиме абсолютного захвата. Тогда статистика ОКУ не будет искажена.

Введем масштабирование: 1 единица модельного времени соответствует 1 с, то есть, например, время моделирования равно 2 часам, тогда 2*60*60 = 7200 единиц модельного времени. Аналогично Т1 = 120, Т2 =240 и т.д.

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

  • ввода исходных данных и описания арифметических выражений;
  • имитации сообщений потока 1;
  • имитации сообщений потока 2;
  • имитации работы буфера и основного канала;
  • имитации работы резервного канала;
  • имитации выхода из строя основного канала;
  • задания времени моделирования и вычисления результатов моделирования.

Ниже приводится программа модели.

; Модель функционирования направления связи
;Задание исходных данных
Emk		EQU	5		; Емкость накопителя
VrMod	EQU	7200	; Время моделирования
T1			EQU	180	; Среднее время поступления сообщений потока 1
T2			EQU	240	; Среднее время поступления сообщений потока 2
T3			EQU	120	; Среднее время передачи по OsnK
T4			EQU	900	; Средний интервал времени выхода из строя OsnK
T5			EQU	10		; Время включения Resk
T6			EQU	180	; Среднее время передачи по ResK
T7			EQU	120	; Среднее время восстановления OsnK
; Описание арифметических выражений
;	Вероятность передачи сообщений потока 1
Ver1		VARIABLE	(N$Term1+N$Term3)/N$Soob1
;	Вероятность передачи сообщений потока 2
Ver2		VARIABLE	(N$Term2+N$Term4)/N$Soob2
;	Вероятность передачи сообщений потоков 1 и 2
Ver		VARIABLE	(V$Ver1+V$Ver2)/2
; Сегмент имитации сообщений потока 1
GENERATE	(Exponential(12,0,T1))		; Генератор сообщений потока 1
Soob1	ASSIGN	1,1	; Код 1 в P1 - сообщения потока 1
TRANSFER	,Nakop		; Направить на OsnK
; Сегмент имитации сообщений потока 2
GENERATE	(Exponential(15,0,T2))	; Генератор
сообщений потока 2
Soob2	ASSIGN	1,2	; Код 2 в P1 - сообщения потока 2
; Сегмент имитации работы накопителя и OsnK
Nakop	GATE FV 	OsnK,KRes		;Доступен ли OsnK? Если нет, на Resk
GATE NU 	OsnK,Spis		;Свободен ли OsnK? Если
нет, в накопитель
Prov3	SEIZE		OsnK			; Занять OsnK
ADVANCE	(Exponential(11,0,T3))	; Обслуживание
RELEASE		OsnK			; Освободить OsnK
UNLINK	Nak,Prov3,1	; Вывод из накопителя 
одного транзакта на OsnK
TEST E	P1,1,Term2	; Сообщение потока 1 или 
потока 2 передано по OsnK?
Term1	TERMINATE			; Счет переданных сообщений потока 1 по OsnK
Term2	TERMINATE			; Счет переданных сообщений потока 2 по OsnK
;	Список пользователя Nak
Spis		TEST L	CH$Nak,Emk,Term7	; Есть ли место в накопителе?
LINK		Nak,FIFO		;Если да, поместить
сообщение в накопитель
Term7	TEST E 	P1,1,Term6	; Сообщение потока 1 или потока 2 было потеряно?
Term5	TERMINATE	; Счет потерянных сообщений потока 1
Term6	TERMINATE	; Счет потерянных сообщений потока 2
; Сегмент имитации работы Resk
KRes		GATE NU	ResK,Spis	; Свободен ли Resk? Нет, сообщение в накопитель
			TEST E		Kont,1,Prov1	; Включить ResK
ADVANCE		T5			; Включение Resk
SAVEVALUE	Kont,0	
Prov1	SEIZE		ResK		; Занять Resk
ADVANCE	(Exponential(12,0,T6)); Передача
RELEASE		ResK		; Освободить Resk
GATE FNV	OsnK,Prov2	; Доступен ли OsnK?
UNLINK	Nak,Prov1,1		; Если нет, из буфера
сообщение на Resk
Prov2	TEST E	P1,1,Term4	; Сообщение потока 1 или 2 передано по ResK?
Term3	TERMINATE	; Счет переданных сообщений потока 1
Term4	TERMINATE	; Счет переданных сообщений потока 2
; Сегмент имитации выхода из строя OsnK
			GENERATE	,,,1
Term8	ADVANCE		(Exponential(12,0,T4)); Расчет времени до следующего отказа
			FUNAVAIL	OsnK			; Выход из строя OsnK
			SAVEVALUE	Kont,1
ASSIGN		1,(Exponential(12,0,T7)); Расчет
времени восстановления OsnK
ADVANCE		P1		; Имитация восстановления OsnK
SAVEVALUE	VrOtk+,P1		; Учет времени восстановления OsnK
FAVAIL	OsnK		; OsnK в доступное состояние
UNLINK	Nak,Prov3,1	; Сообщение на OsnK
			TRANSFER	,Term8
; Сегмент задания времени моделирования
; и вычисления результатов моделирования
			GENERATE	VrMod
			TEST L	X$Prog,TG1,Met3
			SAVEVALUE	Prog,TG1
Met3		TEST E	TG1,1,Met4	
SAVEVALUE	Ver1,V$Ver1		; Вероятность передачи
сообщений потока 1
			SAVEVALUE	Ver2,V$Ver2		; Вероятность передачи сообщений потока 2
			SAVEVALUE	Ver,V$Ver			; Вероятность передачи сообщений направлением связи
			SAVEVALUE	VOtk,(1-V$Ver)		; Вероятность отказа в передаче сообщений
			SAVEVALUE	VerOtk,((AC1-X$VrOtk)/AC1)	; Вероятность безотказной работы OsnK
Met4		TERMINATE	1
			START	10000

Для определения вероятности безотказной работы суммируется в ячейке X$VrOtk время отказов направления связи, которое затем вычитается из абсолютного модельного времени AC1, а полученная разность делится на AC1.

Модель направления связи в AnyLogic

Направление связи представляет собой систему массового обслуживания разомкнутого типа с ожиданием и с отказами из-за ограниченной ёмкости входного буфера. А также с выходами из строя (временного не функционирования и восстановления) основного канала.

Поскольку методика построения модели в AnyLogic существенным образом отличается от методики построения в GPSS World, выделим в модели функционирования направления связи следующие сегменты:

  • исходные данные;
  • источники сообщений;
  • буфер, основной и резервный каналы связи;
  • имитатор отказов основного канала;
  • результаты моделирования.

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

Для ввода исходных данных используем элементы Параметр.

  1. Выполните команду Файл/Создать/Модель на панели инструментов.
  2. В поле Имя модели диалогового окна Новая модель введите Направление связи. Выберите каталог, в котором будут сохранены файлы модели. Щёлкните кнопку Готово.
  3. Полагаем вначале, что все сегменты модели мы сможем разместить так, что они будут видны в ходе работы модели. В Палитре выделите Презентация.
  4. Перетащите элемент Скругленный прямоугольник для размещения элементов исходных данных.
  5. На странице Местоположение и размер панели Свойства: введите: X: 630, Y: 20, Ширина: 320, Высота: 280.
  6. Перетащите элемент text и на странице Текст панели Свойства вместо text введите Исходные данные.
  7. В Палитре выделите Основная. Перетащите элементы Параметр на элемент с именем Исходные данные. Разместите их и дайте имена так, как показано на Рис. 3.1. Значения свойств установите согласно Табл. 3.1.
Замечание. В данной модели (а это возможно и в любых других моделях) все идентификаторы на русском языке.
Размещение элементов для ввода исходных данных

увеличить изображение
Рис. 3.1. Размещение элементов для ввода исходных данных
Таблица 3.1.
Параметр
Имя Тип Значение по умолчанию
интер_сообщ_потока1 double 180
интер_сообщ_потока2 double 240
ёмкость_буфера int 5
время_передачи_осн_кан double 120
время_передачи_рез_кан double 180
время_вкл_рез_кан double 10
время_нараб_отказ_осн_кан double 900
время_восстан_осн_кан double 120

Вывод результатов моделирования

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

  1. В Палитре выделите Презентация. Перетащите элемент Скругленный прямоугольник для размещения элементов Переменная.
  2. На странице Местоположение и размер панели Свойства: введите: X: 470, Y: 330, Ширина: 490, Высота: 320.
  3. Перетащите элемент text и на странице Текст панели Свойства вместо text введите Результаты моделирования.
  4. В Палитре выделите Основная. Перетащите элементы Переменная. Разместите их и дайте им имена так, как показано на Рис. 3.2. Тип всех переменных double, кроме переменной - текущая ёмкость буфера. Её тип - int.

Построение событийной части модели

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

  1. В Палитре выделите Презентация. Перетащите три элемента Прямоугольник и разместите так, как на Рис. 3.3.
  2. На странице Местоположение и размер панели Свойства: для размещения объектов имитации источников сообщений введите: X: 20, Y: 20, Ширина: 150, Высота: 190.
    Размещение элементов для вывода результатов моделирования

    увеличить изображение
    Рис. 3.2. Размещение элементов для вывода результатов моделирования
    Элементы для размещения сегментов событийной части

    Рис. 3.3. Элементы для размещения сегментов событийной части
  3. Для размещения объектов имитации буфера, основного и резервного каналов введите: X: 190, Y: 20, Ширина: 370, Высота: 200.
  4. Для размещения объектов имитации отказов основного канала введите: X: 20, Y: 350, Ширина: 380, Высота: 130.
  5. Перетащите также три элемента text и на странице Текст панели Свойства вместо text каждого элемента введите названия, показанные на Рис. 3.3.
< Лекция 3 || Лекция 4: 123 || Лекция 5 >
Игорь Маникин
Игорь Маникин

Коллеги, спасибо за очень информативный и полезный курс. Прошёл три лекции. Столкнулся с проблемой, что обе модели не могут закончить расчёт по причине ограничения бесплатной версии "создано максимально допустимое число динамически создаваемых агентов (50000)". По скриншотам Лекции 2 видно, что да, модель создает гораздо больше 50000 агентов. В принципе, мне то и диплом не особо нужен. Но хотелось бы выполнить практические работы. Нет ли возможности откорректировать эту проблему? Или может я чего не так делаю?

Еще раз спасибо за прекрасный курс!

Артём Нагайцев
Артём Нагайцев

Выдает ошибку "entity cannot be resolved to a variable" при попытке запуска. В чем может быть причина? Ошибка в строках

entity.time_vxod=time(); 

time_obrabotki.add(time()-entity.time_vxod);