Моделирование системы управления технологическим процессом

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    658,85 Кб
  • Опубликовано:
    2012-11-14
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Моделирование системы управления технологическим процессом

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


В вычислительную машину, работающую в системе управления технологическим процессом, через каждые 5 ± 2с поступает информация от датчиков и измерительных устройств. До обработки на ЭВМ информационные сообщения накапливаются в буферной памяти емкостью в 2 сообщения. Продолжительность обработки сообщений на ЭВМ 5 ± 4с. Динамика технологического процесса такова, что имеет смысл обрабатывать сообщения, ожидавшие в буферной памяти не более 12 с. Остальные сообщения считаются потерянными.

Смоделировать процесс поступления в ЭВМ 200 сообщений. Подсчитать число потерянных сообщений и определить коэффициент загрузки ЭВМ. Оптимизировать задачу, добиться нулевого количества потерянных сообщений.

Технологическая схема системы


На рисунке 1 представлена технологическая схема системы. От датчиков и измерительных приборов информация поступает в вычислительную машину, причем буферная память имеет емкость в 2 сообщения, соответственно, если буферная память занята, вновь пришедшие сообщения считаются потерянными. Далее сообщения выстраиваются в очередь на обработку в ЭВМ, причем на обработку попадают только те сообщения, которые ожидали в очереди не более 12 секунд. После обработки на ЭВМ сообщения попадают к пользователю.

Рисунок 1 - Технологическая схема системы

Q-схема


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

Рисунок 2 - Q-схема системы

 

Структурно-функциональная схема системы


На рисунках 3а и 3б приведена структурно-функциональная схема системы. Модель реализована с помощью IDEF0.

Структурно-функциональная схема описываемой имитационной модели состоит из двух уровней:

1.       Уровень А1. Непосредственное обслуживание сообщений. На входе - поток сообщений, поступающих на обслуживание. На управлении - занятость буфера сообщением и время нахождения в буфере. На выходе - поток обработанных сообщений и поток отброшенных сообщений.

2.       Уровень А2. Описывает поток сообщений в общем виде. На вход блока «Тест1» поступает поток сообщений. Из блока, применяя правило отброса сообщений, сообщение поступает в блок «Буфер», далее сообщение попадает в блок «Тест2», где опять же применяется правило отброса сообщений, и после этого сообщение поступает на обработку в ЭВМ. Выходным потоком являются - «Обработанные сообщения».

Рисунок 3а - Структурно-функциональная модель обработки сообщений системой управления технологическим процессом (первый уровень).

Рисунок 3б - Структурно-функциональная модель обработки сообщений системой управления технологическим процессом (второй уровень).

Алгоритм имитационного моделирования


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

Начальные условия:

1.   Рассматриваемая в задаче система представляет собой систему массового обслуживания с одноканальным обслуживанием.

2.       Время поступления и обработки сообщений - это нормально распределенная случайная величина, заданная в определенных интервалах.

.        Функционирование рассматриваемой СМО: канал (ЭВМ) обрабатывает в каждый момент времени одно сообщение; если сообщения отсутствуют, то система простаивает; если канал в данный момент занят, то сообщение ждет своей очереди на обработку.

.        Дисциплиной очереди для данной системы является FIFO - первый пришел, первый обслуживается.

Описание блок-схемы алгоритма имитационного моделирования

1.   Начало моделирования.

2.       Ввод необходимых параметров моделирования: смотри выше пункт «Начальные условия».

.        Моделирование прихода информации: интервалы времени между наступлениями этого события являются случайными величинами и распределены равномерно на интервале 5+-2 секунды.

.        Осуществление проверки на наличие свободной ячейки в буферной памяти. Емкость буферной памяти оговорена в задании и составляет 2 ячейки. Если все ячейки на момент поступления очередного сообщения заняты, то сообщение считается потерянным и переходит в блок 10.

.        Если имеется свободная ячейка, то сообщение её занимает, путем перехода в блок 5.

6.       Сообщение ожидает своей очереди. Очередь в данной системе наблюдается при поступлении сообщений в буфер вычислительной машины, где они ожидают освобождения ЭВМ для последующей обработки. Дисциплиной очереди для данной системы является FIFO - первый пришел, первый обслуживается.

7.       Осуществление проверки времени ожидания сообщения в очереди. Время ожидания сообщения в буферной памяти вычислительной машины ограничено и составляет 12 секунд, по истечении этого времени, сообщение считается потерянным и переходит в блок 10. Если время ожидания сообщения в очереди не превышает допустимый предел, сообщение опадает на обработку в ЭВМ, т.е. в блок 7.

.        Обработка сообщения на приборе обслуживания (в нашем случае ЭВМ). Прибор обслуживания характеризуется своим временем обслуживания, которое является случайной величиной, и эта величина равномерно распределена в интервале 5+-4 секунды.

.        Проверка обслуживания необходимого количества сообщений. В нашей задаче необходимое количество обработанных сообщений для завершения моделирования равно 200. Если количество обработанных сообщений не достигло этого числа, то моделирование продолжается и переход осуществляется в блок 3. По достижении необходимого количества сообщений моделирование прекращается, и переход осуществляется в блок 9.

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

.        Блок, в котором ведется учет отброшенных сообщений.

.        Конец моделирования.

Блок-схема алгоритма имитационного моделирования

обработка сообщение технологический моделирование

На рисунке 4 представлена блок-схема имитационного моделирования.

Рисунок 4 - Блок-схема имитационного моделирования

Моделирование в среде GPSS


Программный код в среде GPSS выглядит так:

;карта симуляции

GENERATE 5,2 ;поступление сообщений

TEST L Q$Och,2,Met1 ;проверка очереди, если оба места

заняты, то сообщение теряем1 ;заносим текущее время в переменную транзактаOch ;вход в очередь (Och - имя очереди)Ustr ;вход в ЭВМ (Ustr -имя устройства)Och ;выход из очередиL MP1,12,Met2 ;проверка времени ожидания, если более

сек.,то сообщение теряем

ADVANCE 5,4 ;обработка сообщения в ЭВМ

RELEASE Ustr ;выход из ЭВМ1 ;выход из модели

Ocher QTABLE Och,1,1,20 ;создаем таблицу времени ожидания в

очереди

Met2 RELEASE Ustr ;выход из ЭВМ сообщения время ожидания

которого больше 12 сек

Met1 TERMINATE ;потеря сообщений, не попавших в буфер

START 200 ;задает значение счетчика конца моделирования

(моделируем прохождение 200 сообщений)

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

GPSS World Simulation Report - Untitled Model 1.27.1

Saturday, November 03, 2012 18:14:35TIME END TIME BLOCKS FACILITIES STORAGES

.000 1081.285 12 1 0LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

GENERATE 217 0 0

TEST 217 0 0

MARK 204 0 0

QUEUE 204 0 0

SEIZE 204 1 0

DEPART 203 0 0

TEST 203 0 0

ADVANCE 200 0 0

RELEASE 200 0 0

TERMINATE 200 0 011 RELEASE 3 0 012 TERMINATE 16 0 0ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY

USTR 204 0.849 5.028 1 217 0 0 0 0MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY

OCH 2 1 204 29 0.780 4.136 4.821 0MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.% 4.147 3.426 0

.000 - 2.000 27 34.98

.000 - 3.000 20 44.83

.000 - 4.000 22 55.67

.000 - 5.000 16 63.55

.000 - 6.000 14 70.44

.000 - 7.000 13 76.85

.000 - 8.000 15 84.24

.000 - 9.000 12 90.15

.000 - 10.000 5 92.61

.000 - 11.000 6 95.57

.000 - 12.000 6 98.52

.000 - 13.000 2 99.51

.000 - 14.000 1 100.00

На рисунке 5 представлена диаграмма, которая показывает распределение количества сообщений в очереди по времени.

Рисунок 5 - Диаграмма «Время ожидания сообщений в очереди».

В результате моделирования в среде GPSS мы получили, что число потерянных сообщений равно 16, это отражено в блоке Met2 TERMINATE.

Причем 3 из этих сообщений (блок Met1 RELEASE), не попали в память ЭВМ, вследствие чего и были потеряны, остальные 13 сообщений были потеряны из-за того, что ожидали в очереди более 12 секунд. Коэффициент загрузки ЭВМ равен 0,849, это видно из результатов моделирования FACILITY USTR - UTIL. 0.849.

 

Моделирование в среде C#


Главная форма программы показана на рисунке 6.

Рисунок 6 - Главная форма программы

На рисунках 7, 8, 9, 10 представлены результаты нажатия кнопок «Задание», «Решение», «График», «Об авторе» соответственно.

Рисунок 7 - Результат нажатия кнопки «Задание»

Рисунок 8 - Результат нажатия кнопки «Решение»

Рисунок 9 - Результат нажатия кнопки «График»

Рисунок 10 - Результат нажатия кнопки «Об авторе»

Листинг программы, написанной в среде C#, расположен в Приложении.

Анализ полученных результатов


Сведем результаты, полученные в средах GPSS и C# в одну итоговую таблицу (табл.1), для наглядности.

Таблица 1 - Итоговая таблица результатов


GPSS

C#

Число потерянных сообщений

16

20

Коэффициент загрузки ЭВМ

0,849

0,8


Как видно из таблицы 1, результаты, полученные в средах GPSS и C#, различаются не слишком сильно, это значит, что погрешность, полученная в результате вычислений допустима.

 

Описание возможных улучшений в работе системы


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

Для этого изменим время обработки сообщения на ЭВМ с 5+-4сек на 3+-2сек и сделаем количество ячеек в буферной памяти 10. Результаты по изменениям начальной системы сведем в таблицу 2.

Таблица 2 - Сравнительная таблица исходной системы и улучшенной.


Время обработки сообщения на ЭВМ

Количество ячеек в буферной памяти

Число потерянных сообщений

Коэффициент загрузки ЭВМ

Исходный вариант

5+-4сек

2

16

0,849

Улучшенный вариант

3+-2сек

10

0

0,594

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

Листинг улучшенной программы на GPSS

;карта симуляции

GENERATE 5,2 ;поступление сообщений

TEST L Q$Och,10,Met1 ;проверка очереди, если оба места заняты, то сообщение теряем1 ;заносим текущее время в переменную транзактаOch ;вход в очередь (Och - имя очереди)Ustr ;вход в ЭВМ (Ustr -имя устройства)Och ;выход из очередиL MP1,12,Met2 ;проверка времени ожидания, если более 12сек.,то сообщение теряем

ADVANCE 3,2 ;обработка сообщения в ЭВМ

RELEASE Ustr ;выход из ЭВМ1 ;выход из модели

Ocher QTABLE Och,1,1,20 ;создаем таблицу времени ожидания в очереди

Met2 RELEASE Ustr ;выход из ЭВМ сообщения время ожидания которого больше 12 сек

Met1 TERMINATE ;потеря сообщений, не попавших в буфер

START 200 ;задает значение счетчика конца моделирования (моделируем прохождение 200 сообщений)

World Simulation Report - Untitled Model 1.1.1

LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

GENERATE 200 0 0

TEST 200 0 0

MARK 200 0 0

QUEUE 200 0 0

SEIZE 200 0 0

DEPART 200 0 0

TEST 200 0 0

ADVANCE 200 0 0

RELEASE 200 0 0

TERMINATE 200 0 011 RELEASE 0 0 012 TERMINATE 0 0 0

ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY

USTR 200 0.594 2.992 1 0 0 0 0 0

MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY

OCH 1 0 200 171 0.023 0.116 0.802 0

MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.% 0.116 0.358 0

_ - 1.000 191 95.50

.000 - 2.000 8 99.50

.000 - 3.000 1 100.00

На рисунке 11 представлена диаграмма, которая показывает распределение количества сообщений в очереди по времени.

Рисунок 11 - Диаграмма «Время ожидания сообщений в очереди»

 

Список литературы


1. Бахвалов Л.А. Имитационное моделирование Систем Массового Обслуживания. Электронное пособие по курсовому проектированию по дисциплине «Моделирование систем». - М., Московский Государственный Горный Университет., 2003 г. 125 с.

2. Бахвалов JI.A. Моделирование систем. Методические указания по выполнению курсовых работ. - М., Московский Государственный Горный Университет., 2004 . 114с.

Приложение 1


Листинг программы, разработанной в среде C#.

using System;System.Collections.Generic;System.Linq;System.Text;System.Threading.Tasks;WpfApplication8

{GetResults

{public Random r = new Random();public string GetText()

{Re = null;

int time = 0, i = 0;

// Создаем объект вычислительной машины

Comp Computer = new Comp();

while (Computer.GetN() < 200) // Условие окончания моделирования после

поступления 200 сообщений

{TimeWait = r.Next(3, 1); // Интервал поступления сообщений+= TimeWait; // Подсчет времени, прошедшего с момента

поступления сообщения в буфер обмена.

if (Comp > (que.Peek().TimeUsing + que) && que.Count > 0);

// Расчет коэффициента загрузки.AddToQuere(new Message(time, (byte)r.Next(5, 2), i));

// Добавляем i-тое сообщение в очередь.DelFromQuere(time); // удаляем из очереди те сообщения, которые к моменту time были обработаны или потеряны,

++; // добавляя их объекты в контейнер List

}k = 0;

Comp // Класс, служащий для описания вычислительной машины.

{

private Queue<Message> que = new Queue<Message>(); // Контейнер- очередь для

сообщенийList<Message> list = new List<Message>(); // Контейнер для хранения

результатов

public void AddToQuere(Message mes)

{.Enqueue(mes);

}void DelFromQuere(int Time) // Перемещение обслуженного или

потерянного сообщения из очереди que в

контейнер list

{(Time > (que.Peek().TimeUsing + TIME) && que.Count > 0) // для

полученного сообщения

{

TIME += que.Peek().TimeUsing;

list.Add(que.Dequeue());

}

if (que.Count > 10 && Time > (que.ElementAt(1).TimeWait + 12)) // для сообщения, у которого истек срок ожидания

{.ElementAt(1).IsFailed = true;.Add(que.Dequeue());

Message.NumOfFailed++;

}

}

}Message // Класс, служащий для описания сообщений

{readonly int TimeWait;readonly byte TimeUsing;

public readonly int ID; // Счетчик необработанных сообщений

static public byte NumOfFailed = 0; // Коэффициент загрузкиbool IsFailed = false;

Message(int TW, byte TU, int id)

{= TW;= TU;= id;

}Message() { }

}

Похожие работы на - Моделирование системы управления технологическим процессом

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!