51268

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

Лабораторная работа

Информатика, кибернетика и программирование

Два наладчика обслуживают 6 станков. Станок требует наладки в среднем через каждые 0,5 часа. Наладка занимает у рабочего в среднем 10 минут. Все потоки событий – простейшие. Определить, как изменятся следующие показатели:

Русский

2014-02-08

91 KB

15 чел.

Белорусский Государственный Университет

Информатики и Радиоэлектроники

Кафедра ПОИТ

Отчёт

по лабораторной работе № 4

по курсу САиММ

«Построение имитационной и аналитической моделей системы»

Вариант 16

Выполнил:

                               Проверил:

                                      Мельник Н. И.

Минск 2006


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

      Два наладчика обслуживают 6 станков. Станок требует наладки в среднем через каждые 0,5 часа. Наладка занимает у рабочего в среднем 10 минут. Все потоки событий – простейшие. Определить, как изменятся следующие показатели:

- среднее число занятых рабочих;

-абсолютная пропускная способность;

- среднее число неисправных станков,

если рабочие будут налаживать станки совместно, затрачивая при этом на наладку одного станка в среднем 5 минут.

2. Аналитическая модель системы

         Общий вид системы:

                                                      

              …

              N=6                 K=2

Состояния СМО определяются количеством заявок, поступивших в систему: 

        S0 – СМО свободна;

        S1 – занят  один   канал;                                           

         …;                                                  очереди   нет

        Sk – занято  k   каналов   ();                                  

         …;                       

        Sn – заняты   все   п   каналов;

        Sn+1 – заняты все п  каналов,  1 заявка стоит в очереди;

         …;

        Sn+r – заняты все п каналов, r  заявок стоят в очереди ();       очередь

         …;

        Sn+m – заняты все п  каналов и все m мест в очереди;

Диаграмма интенсивности переходов для нашей системы  при  K=2 и  N=6:

                                     

 

Система уравнений имеет следующий вид:     

λ – интенсивность входного потока = 1/Твх = 1/(1/2) = 2

μ – интенсивность выходного потока = 1/Твых = 1/(1/6) = 6

N = 6 – количество подсистем (станков)

К = 2 – количество каналов обслуживания (рабочих)

ω = λ/μ = 1/3

Вероятность нахождения системы в состоянии S0 и S1:

P0 = [ 1 + 6*1/3 + [(6*5)/(1*2)]*(1/3)2 + ... + [(6*5*4*3*2*1)/(1*2*24)]*(1/3)6 ]-1 = 0.153

P1 = 6/1 * 1/3 * P0 = 0.306

Отсюда и получим результаты работы нашей системы:

  •  среднее число занятых рабочих:

                  k = 1*P1 + 2*(1 - P0 - P1) = 1.235

  •  абсолютная пропускная способность системы:

                  A = k*μ = 7.41

  •  среднее число неисправных станков:

                              ω = N – A/λ = 6 – 7.41/2 = 2.30

      Рассмотрим также случай, когда рабочие работают совместно, при этом Твых  

      уменьшится в 2 раза. Тогда входные параметры системы будут следующими:

               λ = 2

               μ = 12

               N = 6

               К = 1

               ω = 1/6

      Тогда, вероятность нахождения системы в состоянии S0:

                   P0 = [1+1 + (6*5)/62 + (6*5*4)/63 + ... + (6*5*4*3*2*1)/66] = 0.264                  

       Следовательно результаты работы системы:

  •  среднее число занятых рабочих:

                     k = 1 – P0 = 0.736

  •  абсолютная пропускная способность системы:

                     A = k*μ = 0.736*12 = 8.8

  •  среднее число неисправных станков:

                                 ω = N – A/λ = 6 – 8.8/2 = 1.6

Сравнив полученные результаты, очевидно, что показатели системы при совместной работе каналов улучшились.

3. Имитационная модель системы

  Листинг программы, реализующей имитационную модель СМО:

unit U_SAiMM_Lab4;

interface

uses

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

 Dialogs, StdCtrls, Buttons, Qt;

type

 TForm1 = class(TForm)

   Label1: TLabel;

   TimeWorkingSystem: TEdit;

   Label4: TLabel;

   Label5: TLabel;

   Label6: TLabel;

   Label7: TLabel;

   Label8: TLabel;

   SredneeCountNotWorkSystems: TEdit;

   Label9: TLabel;

   Label10: TLabel;

   AbsoluteOutputPS: TEdit;

   SredneeCountCanals: TEdit;

   StartSystemWork: TBitBtn;

   CountOutputCanals: TComboBox;

   Label11: TLabel;

   Memo1: TMemo;

   Memo2: TMemo;

   Label2: TLabel;

   Label3: TLabel;

   TimeToInterval: TEdit;

   TimeToProcess: TEdit;

   procedure StartSystemWorkClick(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

const

 CountSystems = 6;

var

 Form1: TForm1;

implementation

{$R *.dfm}

function CountTackt(Param: Real): Integer;

begin

 result:=Round(-(1/Param) * ln(Random)*575) ;

end;

procedure TForm1.StartSystemWorkClick(Sender: TObject);

type

 Element = record

   Time: Integer;

   InQue: Boolean;

 end;   

var

 MasSystems: array [1..CountSystems] of Element;

 IsWorkCanal, TimeWorkCanal: array [1..2] of Integer;

 I, J, Queque, CurrentTime: Integer;

 FullWorkTime, ProcessTime, IntervalTime, CCanals: Integer;

 R_CountCanals, R_CountSystems, R_AbsolutePS: real;

 L, M: Real;

 Canal1, Canal2: Integer;

 CountWorkCanals, SumQueque: Integer;

begin

 Memo1.Clear; Memo2.Clear;

 CountWorkCanals := 0;

 SumQueque := 0;

 Queque := 0;

 FullWorkTime := StrToInt(TimeWorkingSystem.Text);

 CCanals := StrToInt(CountOutputCanals.Text);

   L := 2;

   if CCanals = 1 then M := 6

   else M := 12;

 for I:=1 to CountSystems do

 begin

   MasSystems[I].Time := CountTackt(L);

   MasSystems[I].InQue := False;

   Memo2.Lines.Add(IntToStr(MasSystems[I].Time));

 end;

 for I:=1 to CCanals do IsWorkCanal[I] := 0;

 Memo2.Lines.Add('');

 

 for CurrentTime:=1 to FullWorkTime do

 begin

   for I:=1 to CountSystems do

   begin

     if (MasSystems[I].Time <= CurrentTime) then

     begin

       // если у нас только 1 канал

       if CCanals = 1 then

       begin

         if IsWorkCanal[1] = 0 then

         begin

           if (Queque > 0) then Dec(Queque);

           TimeWorkCanal[1] := CountTackt(M);

           Memo2.Lines.Add('1: '+IntToStr(CurrentTime)+'  '+IntToStr(TimeWorkCanal[1]));

           MasSystems[I].Time := I + TimeWorkCanal[1] + CountTackt(L);

           MasSystems[I].InQue := False;

           IsWorkCanal[1] := 1;

         end

         else

           if (MasSystems[I].InQue = False)and(Queque < 4) then

           begin

             Inc(Queque);

             MasSystems[I].InQue := True;

           end;

       end;

       // если у нас 2 канала

       if CCanals = 2 then

       begin

         if IsWorkCanal[1] = 0 then

         begin

           if (Queque > 0) then Dec(Queque);

           TimeWorkCanal[1] := CountTackt(M);

           Memo2.Lines.Add('1: '+IntToStr(CurrentTime)+'  '+IntToStr(TimeWorkCanal[1]));

           MasSystems[I].Time := I + TimeWorkCanal[1] + CountTackt(L);

           MasSystems[I].InQue := False;

           IsWorkCanal[1] := 1;

         end

         else

           if IsWorkCanal[2] = 0 then

           begin

             if (Queque > 0) then Dec(Queque);

             TimeWorkCanal[2] := CountTackt(M);

             Memo2.Lines.Add('2: '+IntToStr(CurrentTime)+'  '+IntToStr(TimeWorkCanal[2]));

             MasSystems[I].Time := I + TimeWorkCanal[2] + CountTackt(L);

             MasSystems[I].InQue := False;

             IsWorkCanal[2] := 1;

           end

           else if (MasSystems[I].InQue = False)and(Queque < 4) then

           begin

             Inc(Queque);

             MasSystems[I].InQue := True;

           end;

       end;

     end;

   end;

   if CCanals = 2 then

     Memo1.Lines.Add(IntToStr(CurrentTime)+'  '+IntToStr(Queque)+

                     '   '+IntToStr(IsWorkCanal[1])+' '+IntToStr(IsWorkCanal[2]))

   else

     Memo1.Lines.Add(IntToStr(CurrentTime)+'  '+IntToStr(Queque)+

                     '   '+IntToStr(IsWorkCanal[1]));

   SumQueque := SumQueque + Queque;

   if (IsWorkCanal[1] = 1) and (IsWorkCanal[2] = 1) then

   begin

     CountWorkCanals := CountWorkCanals + 2;

     SumQueque := SumQueque + 2;

   end

   else

     if (IsWorkCanal[1] <> IsWorkCanal[2]) then

     begin

       Inc(CountWorkCanals);

       Inc(SumQueque);

     end;

   for J:=1 to CCanals do

     if IsWorkCanal[J] = 1 then

     begin

       Dec(TimeWorkCanal[J]);

       if TimeWorkCanal[J] <= 0 then

         IsWorkCanal[J] := 0;

     end;

 end;

 R_CountCanals := CountWorkCanals/FullWorkTime;

 R_CountSystems := SumQueque/FullWorkTime;

 R_AbsolutePS := R_CountCanals*M;

 SredneeCountCanals.Text := FloatToStrF(R_CountCanals, ffFixed, 3, 14);

 SredneeCountNotWorkSystems.Text := FloatToStrF(R_CountSystems, ffFixed, 3, 14);

 AbsoluteOutputPS.Text := FloatToStrF(R_AbsolutePS, ffFixed, 3, 14);

end;

end.

Результаты работы имитационной модели СМО:

    Время работы системы = 1000 тактов

    Интервал выдачи заявки = 30

    Время обслуживания заявки = 10

Кол-во каналов в системе

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

Среднее число неисправных подсистем

Абс. пропускная способность

2

1.12

1.95

6.73

(*)

1.23

2.13

7.36

1.30

2.20

7.82

1.38

2.61

8.26

1.56

2.59

9.34

1

0.554

1.77

6.65

(*)

0.734

2.22

8.81

(*)

0.782

1.67

9.38

0.82

2.47

9.84

0.928

2.49

11.1

(*) – помечены результаты, наиболее близко соответствующие аналитической модели СМО.

4. Выводы

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

2m

2m

   Очередь

m

S3

Нет очереди

S2

.......

S1

2m

2m

S6

S0

EMBED Equation.3

EMBED Equation.3


 

А также другие работы, которые могут Вас заинтересовать

32785. Определение ускорения свободного падения при помощи машины Атвуда 569.5 KB
  Северодвинске Факультет: № 4 Кафедра: № 12 Лабораторная работа Определение ускорения свободного падения при помощи машины Атвуда г. Северодвинск 2007 Лабораторная работа ФМ 11 Определение ускорения свободного падения при помощи машины Атвуда 1. Цель и метод: С помощью машины Атвуда исследовать законы кинематики и научиться экспериментально определять ускорение свободного падения. Законы свободного падения тел открыл итальянский физик Галилео Галилей 1564 ― 1642.
32786. Изучение законов колебания математического и физического маятников 251.5 KB
  Определить положение центра масс физического маятника. Отклонение маятника от положения равновесия будем характеризовать углом образованным нитью с вертикалью рис. При отклонении маятника от положения равновесия возникает вращательный момент силы тяжести равный по модулю произведению силы mg на её плечо = l sin : M = mgl sin где m масса; l длина маятника. 1 Напишем для маятника уравнение динамики вращательного движения обозначив угловое...
32787. Происхождение, сущность и социальные функции науки 15.93 KB
  Наука – исторически сложившаяся форма духовнопрактического освоения мира направленная на познание и преобразование объективной действительности. Понятие наука имеет несколько аспектов: 1 система знаний 2 их духовное производство 3 практическая деятельность на их основе4 социальный институт. Этот аспект подчеркивает социальную сущность науки: наука как социальный институт представляет собой систему взаимосвязей между научными коллективами организациями членами научных сообществ а также систему норм и ценностей. Наука прошла...
32788. Особенности научного познания 14.79 KB
  Особенности научного познания. Цель научного познания – открытие объективных законов природы общества мышления постижение сущности изучаемых явлений. Объективность – адекватное отражение действительности не зависящее от субъекта познания. Наличие методологии познания.
32789. Уровни и методы научного познания 14.54 KB
  Уровни и методы научного познания. В научном познании используются разнообразные методы. Метод греч. Учение о методах – методология ее предметом является обоснование методов исследование их эффективности особенностей применения в различных областях знания.
32790. Диалектика, её исторические формы. Диалектика и метафизика 15.42 KB
  Диалектика и метафизика. диалектика – это учение о всеобщих связях и закономерностях развития природы общества и мышления а также основанный на этом учении метод познания. Диалектика как теория и метод познания в своем историческом развитии прошла несколько этапов. Наивная или стихийная диалектика античности.
32791. Общее понятие о философии. Исторические основания возникновения философии. Дофилософские мировоззренческие системы и их роль в формировании философии 15.71 KB
  Философия зародилась около 25 тыс. Термин философия был введен Пифагором и дословно означал любовь к мудрости phileo – любовь sophi – мудрость. Философия все больше превращалась в обобщенную систему знаний о мире задачей которой являлось дать ответы на наиболее общие глубинные вопросы о природе обществе человеке. Философия – это форма духовной деятельности человека форма общественного сознания направленная на осмысление коренных мировоззренческих вопросов.
32792. Спецефика филосовского знания. Соотношение философии и частных наук. Взаимосвязь философии и медецины 15.26 KB
  Соотношение философии и частных наук. Взаимосвязь философии и медецины. С выделением отдельных наук в самостоятельные области знаний возникает вопрос о соотношении философии и частных наук под частными науками понимаются те которые изучают отдельные области реальности. Роль философии представители данного направления сводят к логическому анализу научного языка; 3антисциентизм ограничивает роль науки решением узко практических задач.
32793. Основной вопрос философии и его 2 стороны. Исторические формы материализма и идеализма 16.65 KB
  Основной вопрос философии и его 2 стороны. Центральная мировоззренческая проблема – об отношении человека к миру – конкретизируется в философии как вопрос об отношении мышления к бытию об отношении идеального и материального. Этот вопрос является основным вопросом философии т. Крупнейший представитель немецкой классической философии И.