Выбор языка программирования

Введение

 

Моделирование является одни из универсальных методов познания, применяемых во всех современных  науках, как естественных, так и  общественных, как теоретических, так  и экспериментальных, технических. Можно привести огромное количество примеров модели, при помощи которых  описываются те или иные явления. Так, например, разработаны модели производства автомобилей, выращивания пшеницы, функционирования отдельных органов человека; на моделях изучают течение водяных потоков, различные гидродинамические явления, происходящие при мощных взрывах, землетрясениях.

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

Моделированием называется целенаправленное исследование явлений, процессов или объектов путем  построения и изучения их моделей. Сейчас трудно указать область человеческой деятельности, где не применялось бы моделирование

Особенно эффективно применение моделирования в проектировании автоматизированных систем, когда цена ошибочных решений наиболее значительна, а само моделирование является средством, позволяющим без капитальных  затрат решить проблемы построение больших  систем.

Целью данного курсового  проекта является создание модели системы  автоматизированной технологической  линии. Данная модель может применяться во многих системах массового обслуживания. Проведение исследования в курсовой работе проводится при изменении временных характеристик, из которых можно лишь изменять частоту запросов к диспетчеру, поскольку сеанс связи - постоянная минимальная величина.

В данном курсовом проекте разрабатывается имитационная модель работы технологической линии. Имитационное моделирование – это метод, позволяющий строить модели, описывающие процессы так, как они проходили бы в действительности. Такую модель можно «проиграть» во времени как для одного испытания, так и заданного их множества. Имитационное моделирование является удобным средством моделирования, при котором изучаемая система заменяется моделью, с достаточной точностью описывающая реальную систему, с которой проводятся эксперименты с целью получения информации об этой системе. Экспериментирование с моделью называют имитацией. Таким образом имитация – это постижение сути явления, не прибегая к экспериментам на реальном объекте. Поэтому имитационное моделирование в настоящее время получает все большее распространение в исследовании сложных технических систем и технологических процессов.

Для данной задачи простым  и удобным средством моделирования  является язык GPSS Wоrld, позволяющий проанализировать результаты в виде отчетов.

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

- понятие моделирования;

- основные виды моделирования;

- процесс моделирования;

- описание объекта исследования  как СМО;

- основные операторы языка  GPSS Wоrld.

 

 

 

 

 

 

 

 

1 Теоретическая часть

 

    1. Моделирование

 

Моделирование  — исследование объектов познания на их моделях; построение и изучение  моделей  реально существующих объектов, процессов или явлений с целью получения объяснений этих явлений, а также для предсказания явлений, интересующих исследователя.

 

 

1.2 Виды моделирования

 

В силу многозначности понятия  «модель» в науке и технике  не существует единой классификации  видов моделирования: классификацию  можно проводить по характеру  моделей, по характеру моделируемых объектов, по сферам приложения моделирования. Например, можно выделить следующие  виды моделирования:

- информационное моделирование;

-     компьютерное моделирование;

- математическое моделирование;

-  математико-картографическое моделирование;

- молекулярное моделирование;

- цифровое моделирование;

- логическое моделирование;

- педагогическое моделирование;

- психологическое моделирование;

- статистическое моделирование;

- структурное моделирование;

- физическое моделирование;

- экономико-математическое моделирование;

- имитационное моделирование;

- эволюционное моделирование.

 

 

1.3 Процесс моделирования

 

Процесс моделирования включает три элемента:

- субъект (исследователь);

- объект исследования;

- модель, определяющую отношения познающего субъекта и познаваемого объекта.

Первый этап построения модели предполагает наличие некоторых  знаний об объекте-оригинале. Познавательные возможности модели обусловливаются  тем, что модель отображает какие-либо существенные черты объекта-оригинала. Вопрос о необходимой и достаточной  мере сходства оригинала и модели требует конкретного анализа. Очевидно, модель утрачивает свой смысл как  в случае тождества с оригиналом (тогда она перестает быть моделью), так и в случае чрезмерного  во всех существенных отношениях отличия  от оригинала. Таким образом, изучение одних сторон моделируемого объекта  осуществляется ценой отказа от исследования других сторон. Поэтому любая модель замещает оригинал лишь в строго ограниченном смысле. Из этого следует, что для  одного объекта может быть построено  несколько «специализированных» моделей, концентрирующих внимание на определенных сторонах исследуемого объекта или  же характеризующих объект с разной степенью детализации.

На втором этапе модель выступает как самостоятельный  объект исследования. Одной из форм такого исследования является проведение «модельных» экспериментов, при которых сознательно изменяются условия функционирования модели и систематизируются данные о её «поведении». Конечным результатом этого этапа является множество знаний о модели.

На третьем этапе осуществляется перенос знаний с модели на оригинал — формирование множества знаний. Одновременно происходит переход с «языка» модели на «язык» оригинала. Процесс переноса знаний проводится по определенным правилам. Знания о модели должны быть скорректированы с учетом тех свойств объекта-оригинала, которые не нашли отражения или были изменены при построении модели.

Четвёртый этап — практическая проверка получаемых с помощью моделей знаний и их использование для построения обобщающей теории объекта, его преобразования или управления им.

Моделирование — циклический процесс. Это означает, что за первым четырёхэтапным циклом может последовать второй, третий и т. д. При этом знания об исследуемом объекте расширяются и уточняются, а исходная модель постепенно совершенствуется. Недостатки, обнаруженные после первого цикла моделирования, обусловленные малым знанием объекта или ошибками в построении модели, можно исправить в последующих циклах.

Сейчас трудно указать  область человеческой деятельности, где не применялось бы моделирование. Разработаны, например, модели производства автомобилей, выращивания пшеницы, функционирования отдельных органов  человека, жизнедеятельности Азовского  моря, последствий атомной войны. В перспективе для каждой системы  могут быть созданы свои модели, перед реализацией каждого технического или организационного проекта должно проводиться моделирование.

Таким образом, этапы моделирования  можно представить:

  1. Сбор данных об объекте-оригинале. Любая модель замещает оригинал лишь в строго ограниченном смысле. Следовательно, необходимо строить несколько моделей, обращая внимание на нужные стороны исследуемого объекта или же характеризующих объект с разной степенью детализации.
  2. Проведение модельных экспериментов. На данном этапе проводится систематизация данных о поведении модели.
  3. Формирование множества знаний.

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

 

 

1.4 Описание объекта исследования  как систему массового обслуживания (СМО)

 

Под СМО понимают динамическую систему, предназначенную для эффективного обслуживания случайного потока заявок при ограниченных ресурсах системы. Обобщённая структура СМО приведена  на рисунке 1.1.

Рисунок 1.1 – обобщенная структура СМО

 

Поступающие на вход СМО  однородные заявки в зависимости  от порождающей причины делятся  на типы, интенсивность потока заявок типа i (i=1…M) обозначено li. Совокупность заявок всех типов - входящий поток СМО.

Обслуживание заявок выполняется m каналами. Различают универсальные и специализированные каналы обслуживания. Для универсального канала типа j считается известными функции распределения Fji(t) длительности обслуживания заявок произвольного типа. Для специализированных каналов функции распределения длительности обслуживания каналов заявок некоторых типов являются неопределёнными, назначение этих заявок на данный канал.

В качестве процесса обслуживания могут быть представлены различные  по своей физической природе процессы функционирования экономических, производственных, технических и других систем, например, потоки поставок продукции некоторому предприятию, потоки деталей и комплектующих  изделий на сборочном конвейере  цеха, заявки на обработку информации ЭВМ от удалённых терминалов и  т.д. При этом характерным для  работы таких объектов является случайное  поведение заявок (требований) на обслуживание и завершение обслуживания в случайные  моменты времени.

В качестве объекта исследования выступает технологическая линия, включающая источник деталей, два взаимосвязанных  станка, накопитель, технологический  модуль, рабочее место и транспортный робот. Обслуживание в системе производится по принципу FCFS/FIFO, т.е. пришедший первым обслуживается первым. Исследуемая система является системой с ожиданием, т.к. содержит в себе накопитель.

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

В зависимости от наличия  возможности ожидания поступающими требованиями начала обслуживания исследуемая  СМО принадлежит классу систем с  накопителем конечной ёмкости (ожиданием  и ограничениями), в которых длина очереди не может превышать ёмкости накопителя; при этом требование, поступающее в переполненную СМО (отсутствуют свободные места для ожидания), теряется.

 

 

1.5 Q-схема системы

 

В любом элементарном акте обслуживания можно выделить две  основные составляющие: ожидание обслуживания заявкой и собственно обслуживание заявки. Это можно отобразить в  виде некоторого i-ого прибора обслуживания Пi, состоящего из накопителя заявок, в котором может находится одновременно li=0…LiH заявок, где LiH - ёмкость i-ого накопителя, и канала обслуживания заявок, ki.

Рисунок 1.2- Схема прибора СМО

 

На каждый элемент прибора  обслуживания Пi поступают потоки событий: в накопитель Hi поток заявок wi , на канал ki - поток обслуживания ui.

Потоком событий (ПС) называется последовательность событий, происходящих одно за другим в какие-то случайные  моменты времени. Различают потоки однородных и неоднородных событий. Однородный ПС характеризуется только моментами поступления этих событий  (вызывающими моментами) и задаётся последовательностью {tn}={0£t1£t2…£tn£…}, где tn - момент поступления n- ого события - неотрицательное вещественное число. ОПС может быть также задан в виде последовательности промежутков времени между n-ым и n-1-ым событиями {tn}.

Неоднородным ПС называется последовательность {tn, fn} , где tn- вызывающие моменты; fn- набор признаков события. Например, может быть задана принадлежность к тому или иному источнику заявок, наличие приоритета, возможность обслуживания тем или иным типом канала и т.п.

Рассмотрим ОПС, для которого tiÎ{tn}- случайные величины, независимые между собой. Тогда ПС называется потоком с ограниченным последействием.

ПС называется ординарным, если вероятность того, что на малый  интервал времени Dt, примыкающий к моменту времени t попадает больше одного события Р³1(t, Dt) пренебрежительно мала.

Если для любого интервала Dt событие P0(t, Dt) + P1(t, Dt) + Р³1(t, Dt)=1, P1(t, Dt) - вероятность попадания на интервал Dt ровно одного события. Как сумма вероятностей событий, образующих полную группу и несовместных, то для ординарного потока событий P0(t, Dt) + P1(t, Dt) » 1, Р³1(t, Dt)=Q(Dt), где Q(Dt)- величина, порядок малости который выше, чем Dt, т.е. lim(Q(Dt))=0 при Dt®0.

Стационарным ПС называется поток, для которого вероятность  появления того или иного числа  событий на интервале времени t зависит от длины этого участка и не зависит от того, где на оси времени 0 - t взят этот участок. Для ОПС справедливо 0*P0(t, Dt) + 1*P1(t, Dt)= P1(t, Dt) - среднее число событий на интервале Dt. Среднее число событий, наступающих на участке Dt в единицу времени составляет P1(t, Dt)/Dt. Рассмотрим предел этого выражения при Dt®0

lim P1(t, Dt)/Dt=l(t)*(1/един.вр.).

Если этот предел существует, то он называется интенсивностью (плотностью) ОПС. Для стандартного ПС l(t)=l=const.

Применительно к элементарному  каналу обслуживания ki можно считать что поток заявок wiÎW, т.е. интервалы времени между моментами появления заявок на входе ki образуют подмножество неуправляемых переменных, а поток обслуживания uiÎU, т.е. интервалы времени между началом и окончанием обслуживания заявки образуют подмножество управляемых переменных.

Заявки, обслуженные каналом  ki и заявки, покинувшие прибор Пi по различным причинам не обслуженными, образуют выходной поток yiÎY.

Процесс функционирования прибора  обслуживания Пi можно представить как процесс изменения состояний его элементов во времени Zi(t). Переход в новое состояние для Пi означает изменение кол-ва заявок, которые в нём находятся (в канале ki и накопителе Hi). Т.о. вектор состояний для Пi имеет вид : , где - состояния накопителя, ( =0 - накопитель пуст, =1- в накопителе одна заявка…, = - накопитель занят полностью; - состояние канала ki ( =0 - канал свободен, =1 канал занят).

Q-схемы реальных объектов образуются композицией многих элементарных приборов обслуживания Пi. Если ki различных приборов обслуживания соединены параллельно, то имеет место многоканальное обслуживание (многоканальная Q-схема), а если приборы Пi и их параллельные композиции соединены последовательно, то имеет место многофазное обслуживание (многофазная Q-схема).

Т.о. для задания Q-схемы необходимо оператор сопряжения R, отражающий взаимосвязь элементов структуры.

Связи в Q-схеме изображают в виде стрелок (линий потока, отражающих направление движения заявок). Различают разомкнутые и замкнутые Q-схемы. В разомкнутой выходной поток не может снова поступить на какой-либо элемент, т.е. обратная связь отсутствует.

Собственными (внутренними) параметрами Q-схемы будут являться кол-во фаз LФ, количество каналов в каждой фазе, Lkj, j=1… LФ, количество накопителей каждой фазы Lkj, k=1… LФ, ёмкость i-ого накопителя LiH.

Для задания Q-схемы также необходимо описать алгоритмы её функционирования, которые определяют правила поведения заявок в различных неоднозначных ситуациях.

Необходимо также знать  набор правил, по которым заявки покидают Нi и ki: для Нi – либо правила переполнения, либо правила ухода, связанные с истечением времени ожидания заявки в Нi; для ki – правила выбора маршрутов или направлений ухода. Кроме того, для заявок необходимо задать правила, по которым они остаются в канале ki, т.е. правила блокировок канала. При этом различают блокировки ki по выходу и по входу. Такие блокировки отражают наличие управляющих связей в Q-схеме, регулирующих поток заявок в зависимости от состояний Q-схемы. Набор возможных алгоритмов поведения заявок в Q-схеме можно представить в виде некоторого оператора алгоритмов поведения заявок А.

Процесс имитации развивался с использованием управляющих последовательностей, определяемых по функциям распределения  вероятностей исходных данных путём  проведения случайных испытаний. В  качестве управляющих последовательностей  использовались в примере последовательности значений периодов следования заявок по каждому i-ому потоку {ti} и длительности обслуживания заявок i-ого потока устройством {Tik}. Моменты наступления будущих событий определялись по простым рекуррентным соотношениям. Эта особенность даёт возможность построить простой циклический алгоритм моделирования, который сводится к следующим действиям:

  1. определяется событие с минимальным временем — наиболее раннее событие;
  2. модельному времени присваивается значение времени наступления наиболее раннего события;
  3. определяется тип события;
  4. в зависимости от типа события предпринимаются действия, направленные на загрузку устройств и продвижение заявок в соответствии с алгоритмом их обработки, и вычисляются моменты наступления будущих событий; эти действия называют реакцией модели на события;
  5. перечисленные действия повторяются до истечения времени моделирования.

При моделировании Q-схем следует адекватно учитывать как связи, отражающие движения заявок (сплошные линии) так и управляющие связи (пунктирные линии).

Фрагмент Q-схемы (Рисунок 1.3.):

Рисунок 1.3 - Фрагмент Q-схемы

Примерами управляющих связей являются различные блокировки обслуживающих  каналов (по входу и по выходу): "клапаны" изображены в виде треугольников, а  управляющие связи пунктирными  линиями. Блокировка канала по входу  означает, что этот канал отключается  от входящего потока заявок, а блокировка канала по выходу указывает, что заявка обслуженная блокированным каналом, остаётся в этом канале до момента снятия блокировки. В этом случае, если перед накопителем нет "клапана", то при его переполнении будут иметь место потери заявок.

Моделирующий алгоритм должен отвечать следующим требованиям:

- обладать универсальностью относительно структуры, алгоритмов функционирования и параметров системы S;

- обеспечивать одновременную и независимую работу системы S;

- укладываться в приемлемые затраты ресурсов ЭВМ. (памяти, времени расчёта для реализации машинного эксперимента);

- проводить разбиение на достаточно автономные логические части (блоки);

- гарантировать выполнение рекуррентного правила расчётов;

При этом необходимо иметь  виду, что появление одной заявки входящего потока в некоторый  момент времени ti может вызвать изменение состояния не более чем одного из элементов Q-схемы, а окончание обслуживания заявки в момент ti в некотором канале К может привести в этот момент времени к последовательному изменению состояний нескольких элементов (Н, К), т.е. будет иметь место процесс распространения смены состояний в направлении противоположном движению заявки в системе S. Поэтому просмотр элементов Q-схемы должен быть противоположным движению заявок.

 

 

1.6 Выбор языка программирования

 

Одним из наиболее эффективных  и распространенных языков моделирования  сложных дискретных систем является в настоящее время язык GPSS. Он может быть с наибольшим успехом  использован для моделирования  систем, формализуемых в виде систем массового обслуживания. В качестве объектов языка используются аналоги  таких стандартных компонентов  СМО, как заявки, обслуживающие приборы, очереди и т.п. Достаточный набор  подобных компонентов позволяет  конструировать сложные имитационные модели, сохраняя привычную терминологию СМО.

На персональных компьютерах (ПК) типа IBM/PC язык GPSS реализован в рамках пакета прикладных программ GPSS/World. Основной модуль пакета представляет собой интегрированную среду, включающую помимо транслятора со входного языка средства ввода и редактирования текста модели, ее отладки и наблюдения за процессом моделирования, графические средства отображения атрибутов модели, а также средства накопления результатов моделирования в базе данных и их статистической обработки. Кроме основного модуля в состав пакета входит модуль создания стандартного отчета GPSS/ World, а также ряд дополнительных модулей и файлов.

Таким образом,  в данном курсовом проекте был использован язык имитационного моделирования GPSS, так как:

- система GPSS свободно-распространяемая, поэтому легко масштабируется на большое количество студентов;

- для языка  GPSS существует большое количество  книг и форумов на русском  языке;

- язык очень  прост в изучении;

- компактные  программы обеспечивают лучшее  документирование;

- операторы в GPSS короткие и понятные, ниже описаны операторы использовавшиеся в программе.

 

 

1.7 Основные правила и оператора языка GPSS

 

Для описания имитационной модели на языке GPSS полезно представить ее в виде схемы, на которой отображаются элементы СМО - устройства, накопители, узлы и источники . Описание на языке GPSS есть совокупность операторов (блоков), характеризующих процессы обработки заявок. Имеются операторы и для отображения возникновения заявок, задержки их в ОА, занятия памяти, выхода из СМО, изменения параметров заявок (напрмер, приоритетов), вывода на печать накопленной информации, характеризующей загрузку устройств, заполненность очередей и т.п.

Каждый транзакт, присутствующий в модели, может иметь до 12 параметров. Существуют операторы, с помощью которых можно изменять значения любых параметров транзактов, и операторы, характер исполнения которых зависит от значений того или иного параметра обслуживаемого транзакта.

Пути продвижения заявок между  ОА отображаются последовательностью  операторов в описании модели на языке GPSS  специальными операторами передачи управления (перехода). Для моделирования используется событийный метод. Соблюдение правильной временной последовательности имитации событий в СМО обеспечивается интерпретатором GPSSPC - программной системой, реализующий алгоритмы имитационного моделирования.

 

 

1.7.1 Структура операторов GPPS

 

В записи оператора выделяют три  части: метку, название, поле переменных.

Пример оператора:

110  L1    GENERATE     30,5                     Первый сегмент модели  
      2....6.8.................18 ..19.............................................................70  
    <метка><название>   <поле переменных>                <комментарии>    

 В поле переменных выделяют  подполя, разделяемые при записи запятыми и служащие для указания чисел, стандартных числовых атрибутов (СЧА), символов, обозначающих метки, идентификаторов, указателей разновидностей операторов и т.п. Подполя могут быть пустыми. Возможна запись комментария после последнего непустого поля через пробел.  
    Стандартные числовые атрибуты служат для сокращенного указания различных величин, фигурирующих в модели.  
     Примеры СЧА: К126 - константа, равная 126; V2 - переменная N 2; Q4 - длина очереди N 4; X5 - хранимая величина N 5; FN7 - функция N 7; P4 - значение параметра N 4 транзакта; *6 - содержимое параметра  N 6 транзакта; S*3 (или FN*3) - память (или функция), определенная в параметре  N 3 транзакта.

1.7.2 Основные операторы  языка GPSS

 

 Основные операторы  языка  GPSS  приведены в виде примеров с конкретными значениями подполей в поле переменных.

GENERATE   12,4,50,5,1  -  генерация транзактов, интервалы времени между появлениями транзактов распределены равномерно в диапазоне [12-4, 12+4], первый транзакт появится с задержкой в 50 единиц модельного времени, всего будет создано 5 транзактов, приоритет транзактов равен единице.

GENERATE   12,4,50,,1    -  то же, но количество  генерируемых транзактов неограничено.

GENERATE   6, FN$FFF,50,5,1  -  то же, но интервал времени между появлениями транзактов есть целая часть произведения числа 6 на значение фунции FFF.

FNK FUNCTION RN1,C4 0,0/0.1,0.8/0.5,1.6/1.0,1.9 - описание функции FNK, ее аргументом является случайная величина (на это указывает значение RN1), равномерно распределенная в диапазоне [0,1], функция является непрерывной числовой (указатель С), заданной таблично четырьмя точками: (0;0), (0.1; 0.8), (0.5, 1.6), (1.0; 1.9).

FNK FUNCTION*2,D4 0,12/1,9/2,8/3,6  - то же, но аргументом является значение второго параметра транзакта, для которого вычисляется значение дискретной величины (D)  числовой функции FNK, заданной таблично четырьмя узловыми точками. Это текущее значение округляется до ближайшего большего значения аргумента в узловой точке.

SEIZE PLOT   - занятие устройства PLOT приходящим на его вход транзактом; если устройство занято, то транзакт задерживается в очереди к этому устройству.

RELEASE PLOT   - освобождение устройства PLOT обслуженным транзактом.

ENTER MEM,12 - занятие транзактом 12 единиц емкости в накопителе  MEM.

LEAVE    MEM,*2 - освобождение k единиц памяти в накопителе MEM, гдк  k - значение 2-го параметра транзакта.

STR STORAGE    4096 - описание накопителя STR емкостью 4096 единиц.

TERMINATE  3 - удаление транзакта из системы, при этом содержимое итогового счетчика уменьшается на 3 единицы, моделирование заканчивается, если содержимое счетчика станет равным или меньше нуля.

ADVANCE A,B  - задержка транзакта на время, определенное содержимым полей A и B, смысл величин, записываемых в этих подполях , такой же, как и в операторе GENERATE.

SPLIT 3,LLL,6 - копирование транзактов, в данном случае создаются три копии исходного транзакта, исходный транзакт направляется в следующий по порядку блок, а созданные копии - в блок с меткой LLL, при этом параметр 6 основного транзакта увеличивается на единицу, а транзактов - копий - на 2, 3, 4 соответственно.

ASSEMBLE    5 - объединение транзактов, первый из вошедших в блок транзактов продолжит движение в системе после того, как в блок придут еще четыре транзакта.

ASSIGN     2,NAP  - изменение параметров транзактов, в данном случае второй параметр транзакта получит значение  NAP.

ASSIGN     3+,V4  - изменится значение третьего параметра транзакта - к нему прибавится значение V4.

TRANSFER    ,MET  - безусловная передача управления оператору с меткой (номером) MET.

TRANSFER    BOTH,LAB1,UNN - переход к оператору с меткой LAB1, если он невозможен, то к оператору с меткой UNN , если и он невозможен, то транзакт задерживается до следующего момента дискретного модельного времени, в который повторяются указанные попытки перехода.

TRANSFER    .4,AAA,LAB - транзакт с вероятностью 0.4 переходит к оператору с меткой LAB и с вероятностью 0.6 к оператору с меткой AAA.

TRANSFER    PICK,STK7,STK21  - равновероятный переход к операторам с номерами STK7, STK7+1, STK7+2, . . . , STK21.

TRANSFER    FN,AAA,5  - переход к оператору, метка которого равна сумме значения функции AAA и числа 5.

TRANSFER    P,4,41 - переход к оператору, метка которого равна сумме значения парметра N 4 транзакта и числа 41.

Выбор языка программирования