Моделирование системы «Радиостанция»

Автор работы: Пользователь скрыл имя, 27 Декабря 2011 в 16:47, курсовая работа

Краткое описание

Радиостанция «Жу-Жу» проводит ежедневное вечернее шоу, во время которого, радиоведущие беседуют с дозвонившимися на заданную тему, а также зачитывают сообшения, присланные слушателями на e-mail и по заявке на сайте радиостанции. Время передачи в эфире 2 часа - с 18.00 до 20.00 часов (время моделирование 7200 секунд).

Содержимое работы - 1 файл

курсовой проект (2).doc

— 216.00 Кб (Скачать файл)

Министерство  образования  и науки Российской Федерации

Федеральное агентство по образованию

ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Факультет кибернетики

Кафедра автоматизированных систем 
 
 

                                                  Допускаю к защите

Руководитель ______  Лебедев К.С.

                                                                                                                                              подпись               Фамилия И.О. 
 

Моделирование системы «Радиостанция»

_____________________________________________________________________________ 
 
 

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе по дисциплине

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

название  дисциплины 

    _______________________ПЗ

обозначение документа 
 
 

Выполнили студенты группы       ИП-07-1    __________          Куренкова Е.Г

                                                                                               шифр               подпись                            Фамилия И.О.                               

Нормоконтролер                                                 _________           Лебедев К.С.

                                                                                                                            подпись                                    Фамилия И.О. 
 

Курсовой  проект защищен

с оценкой ____________ 
 
 
 
 

Иркутск 2011 

ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ 

ЗАДАНИЕ

НА КУРСОВУЮ РАБОТУ 
 
 
 
 

По курсу: Имитационное моделирование 

Студенту: Куренкова Е.Г. группа ИП-07-1         

Тема  проекта: Моделирование системы «Радиостанция» 

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

    1. Реализация  модели системы массового обслуживания типа G/G/1 на высокоуровневом языке  программирования.
    2. Реализация модели системы массового обслуживания на языке GPSS.
    3. Проверка полученных результатов аналитическим моделированием.
 
 
 
 
 
 
 
 
 
 

Дата выдачи задания “____”___________ 20__ года

Дата представления  проекта руководителю “____”___________ 20__ года 

Руководитель  курсового

проектирования_______________ 

Оглавление

Оглавление 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

    1. Описание системы

      Радиостанция  «Жу-Жу» проводит ежедневное вечернее шоу, во время которого, радиоведущие беседуют с дозвонившимися на заданную тему, а также зачитывают сообшения, присланные слушателями на e-mail и по заявке на сайте радиостанции. Время передачи в эфире 2 часа - с 18.00 до 20.00 часов (время моделирование 7200 секунд).

      Станция оборудована тремя многоканальным телефоном с двумя линиями  на каждом (очередь на звонок составляет 6 мест).

      В обязанности ведущего входит вести  беседу с человеком по телефону, а также обрабатывать сообщения, присланные с сайта радио «Жу-Жу» и на e-mail. Каждый звонок радиослушателя обслуживается 120 секунд. Обработка сообщений с сайта и с электронной почты длится 30 секунд.  

Таблица 1. Описание входных потоков

Назв-е Интенсивность входного потока
1 Zvonok 1/20
2 Mail 1/600
3 Site 1/300

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

    Моделирование системы было произведено в среде  программирования Borland Delphi.

      Разработку  схемы будем вести при следующих условиях.

  1. Заданы функции распределения A(t) и B(t) для интервалов поступления и длительностей обслуживания заявок, т.е. СМО полностью формализована.
  2. В начале моделирования система свободна.
  3. Задано время моделирования Т и в общем случае, когда моделирование завершается, система может быть не свободна.
  4. В результате моделирования определяются следующие характеристики функционирования СМО:
    1. загрузка системы ρ;
    2. среднее время ожидания ω;
    3. средняя длина очереди l;
    4. среднее время пребывания u;
    5. среднее число заявок в системе m;
    6. максимальная длина очереди Nqmax.

    Блок  схема программы представлена на рисунке 1.

      Вывод результатов:

  • F – задает состояние приборы: F = 0, если прибор свободен и F = 1, если занят.
  • Nin – счетчик входов (определяет число вошедших в модель заявок).
  • Nout – счетчик выходов.
  • Nq – текущая длина очереди.
  • Nqmax – максимальная длина очереди.
  • Tin – момент прихода заявки.
  • Tout — момент окончания обслуживания.
  • Stв, Stω, Stu – переменные для накопления суммарных значений времен обслуживания, ожидания и пребывания соответственно.
  • Mtq[...] –  массив, который фиксирует моменты становления заявок в очередь.
  • N0 – счетчик заявок, которые проходят очередь без ожидания.
  • ρ – загрузка системы;
  • ω – среднее время ожидания;
  • l – средняя длина очереди;
  • u – среднее время пребывания;
  • m – среднее число заявок в системе;
 

    Рис. 1 Блок-схема

    • Листинг программы

    unit Unit1;

    interface

    uses

      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

      Dialogs, StdCtrls, ComCtrls, Buttons, Math, Grids;

    type

      TForm1 = class(TForm)

        Label3: TLabel;

        Edit1: TEdit;

        Label4: TLabel;

        Edit2: TEdit;

        UpDown2: TUpDown;

        Label5: TLabel;

        Edit3: TEdit;

        UpDown3: TUpDown;

        Label6: TLabel;

        Edit4: TEdit;

        Edit5: TEdit;

        Label7: TLabel;

        Label8: TLabel;

        Edit6: TEdit;

        Edit7: TEdit;

        Label9: TLabel;

        Label10: TLabel;

        Edit8: TEdit;

        Memo1: TMemo;

        Label11: TLabel;

        BitBtn1: TBitBtn;

        BitBtn2: TBitBtn;

        Label1: TLabel;

        procedure BitBtn1Click(Sender: TObject);

        procedure BitBtn2Click(Sender: TObject); 

     private 

        { Private declarations }

      public

        { Public declarations }

      end; 

    var

      Form1: TForm1;

      T,MatOz1,MatOz2: real;

      F: integer;

      Nin, Nout: integer;

      Nq,Nqmax: integer;

      Tin,Tout: real;

      Stb,Stw,Stu: real;

      Mtq: array [1..1000] of real;

      tm: real;

      N0: integer;

      p,w,l,u,m: real;

      Ax,Bx: Byte; 

    implementation 

    {$R *.dfm} 

    function slChisl(fun: byte; matOz: real): real;

    var

    i: integer;

    rez,lambd: real;

    chisl: real;

    x: array[1..3] of real;

    begin

    lambd:=1/matOz; 

    if fun=1 then

    begin

    randomize;

     chisl:=random;

     rez:=lambd*exp(-lambd*chisl);

    end; 

    if fun=2 then

        begin

          randomize;

          chisl:=random;

          rez:=(lambd/2)*exp(-lambd*abs(chisl));

        end;

    slChisl:=rez;

    end; 

    procedure TForm1.BitBtn1Click(Sender: TObject);

    var

    i:integer;

    sch: real;

    Mtq1: array [1..1000] of real;

    begin

    Memo1.Lines.Clear; 

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

     Ax:=1;

     Bx:=2;

     T:=StrToFloat(Edit1.Text);

     MatOz1:=StrToFloat(Edit2.Text);

     MatOz2:=StrToFloat(Edit3.Text); 

     //2 Инициализация переменных

    F:=0; Nin:=0; Nout:=0; Nq:=0; Nqmax:=0;

     Tin:=0; Tout:=0; Stb:=0; Stw:=0; Stu:=0; tm:=0; N0:=0; 

     //3 Планирование прихода первой заявки

    sch:=slChisl(Аx,MatOz1);

     Tin:=tm+sch;

     Tout:=T+20; 

    //4 Сдвиг  модельного времени на момент  ближайшего события

     tm:=min(Tin,Tout);

     tm:=min(tm,T); 

     While (tm=Tin) or (tm=Tout) do

          begin

              if tm=Tin then

              begin

              Nin:=Nin+1;

              sch:=slChisl(Bx,MatOz1);

              Tin:=tm+sch;

     //Планирование прихода следующей заявки       

               if F=0 then

                  begin

                  F:=1; N0:=N0+1;

                  sch:=slChisl(Ax,MatOz2);

                  Tout:=tm+sch;

                  Stb:=Stb+sch;

                  Stu:=Stu+sch;

                  end else

                      begin

                      if Nq<5 then

                      Nq:=Nq+1 else Nq:=Nq;

                      Nqmax:=max(Nq,Nqmax);

                      Mtq[Nq]:=tm;

                      end;

              end; 

              if tm=Tout then

              begin

              Nout:=Nout+1;

              if Nq=0 then

                 begin

                 F:=0;

                 Tout:=T+20;

                 end else

                    begin

                    w:=tm-Mtq[1];

                    Stw:=Stw+w;

                    Nq:=Nq-1;

                    for i:=2 to 1000 do Mtq1[i-1]:=Mtq[i];

                    for i:=1 to 1000 do Mtq[i]:=Mtq1[i];

                    sch:=slChisl(Ax,MatOz2);

                    Tout:=tm+sch;

                    Stb:=Stb+sch;

                    Stu:=w+sch;

                    end;

              end; 

    //Обработка  результатов моделирования

     p:=Stb/T;

     w:=Stw/(Nout+F);

     l:=Stw/t;

     u:=w+MatOz2;

     m:= T/Stu;

     tm:=min(Tin,Tout);

     tm:=min(tm,T);

          end; 

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

    Edit4.Text:=FloatToStr(p);

    Edit5.Text:=FloatToStr(w);

    Edit6.Text:=FloatToStr(l);

    Edit7.Text:=FloatToStr(u);

    Edit8.Text:=FloatToStr(m);

    Memo1.Lines.Add('F='+intToStr(F));

    Memo1.Lines.Add('NO='+intToStr(N0));

    Memo1.Lines.Add('Nin='+intToStr(Nin));

    Memo1.Lines.Add('Nout='+intToStr(Nout));

    Memo1.Lines.Add('Nq='+intToStr(Nq));

    Memo1.Lines.Add('Nqmax='+intToStr(Nqmax)); 

    for i:=0 to 10 do Memo1.Lines.Add('Mtq['+inttostr(i)+']='+FloatToStr(Mtq[i])); 

    end; 

    procedure TForm1.BitBtn2Click(Sender: TObject);

    begin

    Close;

    end;

    end. 

    Результат работы программы представлен на рисунке 2.

      По результатам  моделирования в среде программирования Borland Delphi получили: 

      ρ – загрузка системы = 0,996 — система загружена на 99%;

      u – среднее время пребывания = 6,33 — в среднем, каждая заявка пребывает в системе 6 минут; 

        Рис. 2 – Результат работы программы.

      3. Исследование заданной системы с помощью модели типа «Процесс массового обслуживания»

      • Расчеты характеристик системы

           Исследуем работу приемщика. Сведем данные в таблицу, которые даны по условию и которые необходимы для расчета критерия эффективности E.

      Е = λ · (eотк · Pотк + eу · Pух) + eп · (m – k),

        где – интенсивность входного потока заявок; 
        eотк– штраф за отказ системы принять заявку; 
        eу– штраф за уход заявки из СМО; 
        eп– штраф за незанятый канал (простой канала); 
        Pотк– вероятность отказа в обслуживании заявки; 
        Pу– вероятность ухода «нетерпеливых заявок»;

        μ – интенсивность потока обслуживания;

        n – количество мест в очереди;

        m – количество каналов обслуживания;

        – время пребывания заявок в системе;

        ρ= λ/ μ – эффективность входного потока; 
        – среднее число занятых каналов.

        eотк 6000
        eу 500
        eп 5000

      Возможные состояния системы :

      1. P0 – в системе нет заявок;
      2. P1 – в системе одна заявка, очередь отсутствует;
      3. P2 – в системе одна заявка, 1 в очереди;
      4. P3 – в системе одна заявка, 2 в очереди;
      5. P4 – в системе одна заявка, 3 в очереди;
      6. P5 – в системе одна заявка, 4 в очереди;
      7. P6 – в системе одна заявка, 5 в очереди;
      8. P7 – в системе одна заявка, 6 в очереди все каналы заняты, очередь занята.
       

      Находим вероятности пребывания системы в i-ом состоянии по формулам:

      До появления  очереди:

      , где i=1,2,..,m

      После появления очереди:

          , где l=1,2,..,n 

      Вероятность отказа P7 = 0,5464, что является реальным показателем для популярного вечернего шоу на радиостанции, но очень плохим показателем для слушателей.

      Среднее число занятых каналов

      k =  
      0,997

      Средняя длина  очереди:

      e =  
      5,8008
       

      Критерий эффективности СМО

      E = 213,28 

      Таким образом, суммарные потери за один прямой эфир составляют 213, 28 рублей. Так как эфирное время очень «дорогое», штрафы за отказы назначаются большие. Ведущий работает с эффективностью 99%, тем самым снижая потери до минимума. Средняя длина очереди на протяжении всего прямого эфира составляет 5,8 из 6 возможных мест, что говорит о необходимости увеличения числа телефонных аппаратов для принятия звонков.

        4. Исследование заданной системы с помощью системы имитационного имитационного моделирования GPSS

        • Листинг программы
         

        EXPON1 FUNCTION RN2,C24

        0,0/.100,.104/.200,.222/.300,.355/.400,.509/.500,.690/.600,.915/.700,1.200/

        .750,1.380/.800,1.600/.840,1.830/.880,2.120/.900,2.300/.920,2.520/.940,2.810/

        .950,2.990/.960,3.200/.970,3.500/.980,3.900/.990,4.600/.995,5.300/.998,6.200/

        .999,7/1,8 

        zvonok storage 6

        ogran storage 6

        ved storage 200 
         

        generate 20,FN$EXPON1

        gate NU ved,met

        seize ved

        ADVANCE 120,FN$EXPON1

        release ved

        TERMINATE

                                    

        met gate SNF ogran,met2 

        queue ogran

        enter zvonok

        depart ogran

        gate NU ved

        seize ved

        ADVANCE 30,FN$EXPON1

        release ved

        leave zvonok

        met2 TERMINATE 

        generate 600,FN$EXPON1

        queue mail

        gate NU ved

        seize ved

        depart mail

        ADVANCE 30,FN$EXPON1

        release ved

        TERMINATE 

        generate 300,FN$EXPON1

        queue site

        gate NU ved

        seize ved

        depart site

        ADVANCE 30,FN$EXPON1

        release ved

        TERMINATE 

        generate 7200

        terminate 1

          • Результаты
           
           

                     START TIME           END TIME  BLOCKS  FACILITIES  STORAGES

                          0.000           7200.000    34        1          3 
           

                        NAME                       VALUE 

                    EXPON1                      10000.000

                    MAIL                        10005.000

                    MET                             7.000

                    MET2                           16.000

                    OGRAN                       10002.000

                    SITE                        10004.000

                    VED                         10003.000

                    ZVONOK                      10001.000 
           

           LABEL              LOC  BLOCK TYPE     ENTRY COUNT CURRENT COUNT RETRY

                              1    GENERATE           371             0       0

                              2    GATE               371             0       0

                              3    SEIZE                2             0       0

                              4    ADVANCE              2             0       0

                              5    RELEASE              2             0       0

                              6    TERMINATE            2             0       0

          MET                 7    GATE               369             0       0

                              8    QUEUE              369           146       0

                              9    ENTER              223             0       0

                             10    DEPART             223             5       0

                             11    GATE               218             0       0

                             12    SEIZE              218             0       0

                             13    ADVANCE            218             1       0

                             14    RELEASE            217             0       0

                             15    LEAVE              217             0       0

          MET2               16    TERMINATE          217             0       0

                             17    GENERATE            13             0       0

                             18    QUEUE               13             1       0

                             19    GATE                12             0       0

                             20    SEIZE               12             0       0

                             21    DEPART              12             0       0

                             22    ADVANCE             12             0       0

                             23    RELEASE             12             0       0

                             24    TERMINATE           12             0       0

                             25    GENERATE            24             0       0

                             26    QUEUE               24             1       0

                             27    GATE                23             0       0

                             28    SEIZE               23             0       0

                             29    DEPART              23             0       0

                             30    ADVANCE             23             0       0

                             31    RELEASE             23             0       0

                             32    TERMINATE           23             0       0

                             33    GENERATE             1             0       0

                             34    TERMINATE            1             0       0 
           

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

           VED                255    0.999      28.213  1      241    0    0     7      0 
           

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

           OGRAN             146  146    369      6    82.551   1610.758   1637.383   0

           SITE                4    1     24      0     0.582    174.473    174.473   0

           MAIL                1    1     13      0     0.297    164.675    164.675   0 
           

          STORAGE            CAP. REM. MIN. MAX.  ENTRIES AVL.  AVE.C. UTIL. RETRY DELAY

           ZVONOK              6    0   0     6      223   1    5.946  0.991    0  146

           OGRAN               6    6   0     0        0   1    0.000  0.000    0    0

           VED               200  200   0     0        0   1    0.000  0.000    0    0 
           

          FEC XN   PRI         BDT      ASSEM  CURRENT  NEXT  PARAMETER    VALUE

             412    0        7200.555    412      0      1

             241    0        7203.753    241     13     14

             409    0        7388.736    409      0     17

             402    0        7908.815    402      0     25

             413    0       14400.000    413      0     33 
           

              Проанализировав данные отчета, можно сказать, что загруженность ведущего является идеальной - 99%, а потери которые получаются из за простоя и отказа клиентов не значительные.  Очередь на звонок в среднем занята практически полностью, на 5,9 мест из 6, что совпадает с результатами аналитического моделирования и подтверждает тот факт, что существует необходимость в увеличении количества теелефоных аппаратов. 
           
           
           
           
           
           

            Вывод

              В процессе выполнения данной работы были закреплены знания и навыки в области имитационного моделирования систем.

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

              Все результаты указывают на то, что  работа радиостанции эффективна почти  на 100%. Вероятность обслуживания звонка радиослушателя мала, так как количество заявок велико и идет с большой интенсивностью, очередь почти сразу же наполняется до предела.

            Список  использованной литературы

          1. Бусленко  Н.П. Моделирование сложных систем. – М.: Наука, 1978. – 339 с.;
          2. Петров А.В. Моделирование систем. Учебное пособие. – Иркутск: Изд-во ИрГТУ,2000.–268с.
          3. Петров А.В. Моделирование систем. Учебное пособие. – Иркутск: Изд-во ИрГТУ, 2000. – 268 с., ил.
          4. Петров А.В. Генерирование случайных чисел. Методические указания к самостоятельной работе. – Иркутск: Изд-во Иркут. госуд. техн. ун-та, 2006.
          5. Петров А.В. Генерирование случайных процессов. Методические указания к самостоятельной работе. – Иркутск: Изд-во Иркут. госуд. техн. ун-та, 2006.

Информация о работе Моделирование системы «Радиостанция»