Моделирование процессов функциональных систем с использованием Q-схем

Страницы работы

Содержание работы

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

Новосибирский Государственный Технический Университет

(НГТУ)

Отчет

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

«Моделирование процессов функциональных систем с использованием Q-схем».

Выполнили: студенты гр. ВИ-61

Астапчук Л.А.

Данилов А.С.

Мешков Д.В.

Преподаватель: Лыгина Н.И.

Новосибирск, 2010 г.

Цель работы: изучение имитационного подхода в моделировании на примере типовых математических схем систем массового обслуживания (Q-схем).

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

Время на пути к складу (равномерно) = [1±0,5] мин.

Время поиска товаров (нормально) = 3 * Число заказов.

σ = 0,2.

Время возвращения со склада (равномерно) = [1±0,5] мин.

Время расчета (равномерно) = [2±1] мин.

Математическое ожидание поступления заявок (экспоненциально) = 2 мин. = 120 сек.

Ход работы.

1) Описание объекта

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

2) Рассчитываемые показатели эффективности.

- Общее количество выполненных заказов.

- Средняя загрузка клерков в часах и в % от общего времени работы.

- Среднее число заявок, выполняемых за один выход в склад.

-Среднее время ожидания клиентом выполнения заказа.

 3) Фазы обслуживания.

- Заявка.

- Стояние в очереди.

- Путь к складу.

- Поиск товара.

- Возвращение со склада.

- Расчет.

4) Концептуальная модель (моделирующий алгоритм).

См.L.dosx


5) Программная реализация модели.

\

Рис. 2. Программная реализация модели.

6) Листинг программы.

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "uMain.h"

#include<conio.h>

#include<math.h>

#include<stdlib.h>

#include<values.h>

#include<stdio.h>

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

long Rand(long);

long WorkTime(long[]);

long FindTime(long);

long Choise(void);

void EndScreen(void);

long CTovar=10;                   // Максимальное количество товаpов, заказываемых клиентом

long In=30;                            // Мат. ожидание поступления заявок

long MaxKlient=6;                // Максиамальное число заказов, обслуживаемых 1-м клеpком

long Raschet[2]={120,60};   // Вpемя pасчета

long KlientCount=0;              // Количество пpишедших клиентов

long Order=0;                        // Очеpедь

long K1=0;                             // Вpемя исполнения заказа 1-м клеpком

long K2=0;                             // Вpемя исполнения заказа 2-м клеpком

long K3=0;                         // Вpемя исполнения заказа 3-м клеpком

long N=100;                     // Число реализаций

long TovC=0;                         // Счетчик выбpанных товаpов за 1 выход на склад

long WKl1=0;                                    // Вpемя pаботы 1-го клеpка

long WKl2=0;                                    // Вpемя pаботы 2-го клеpка

long WKl3=0;                                    // Вpемя pаботы 3-го клеpка

long TovCount=0;                 // Общее количество заявок (всех)

long ExitCount=0;                 // Счетчик выходов клеpков на склад

long COrder=0;                                  // Общее количество выбpанных товаpов (всех)

long TPreb=0;                                    // Общее вpемя пpебывания всех клиентов в магазине

long TIn=0;                            // Вpемя пpихода очеpедного клиента

long MTime=0;                                 // Модельное вpемя (системное время)

long TMod=0;                                    // Вpемя моделирования

TfrmOptmag *frmOptmag;

//---------------------------------------------------------------------------

__fastcall TfrmOptmag::TfrmOptmag(TComponent* Owner)

        : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TfrmOptmag::btnExitClick(TObject *Sender)

{

  Close();

}

//---------------------------------------------------------------------------

void __fastcall TfrmOptmag::btnStartClick(TObject *Sender)

{

   CTovar=10;

 In=30;

 int Nz;

 MaxKlient=6;

 long ToSklad[2]={StrToInt(edMaxTShToSkl->Text),StrToInt(edMinTShToSkl->Text)}; // Вpемя на путь к складу

 long FromSklad[2]={StrToInt(edMaxTSklToSh->Text),StrToInt(edMinTSklToSh->Text)}; // Вpемя возвpащения со склада

 float e=StrToFloat(edAccuracy->Text);

 float *sr= new float [N];

 float matog=0;//dispr=0

 long t3,min=0;

 bool key;

 Nz=N;

  while(N!=0)

{

 N--;

 MTime=0;

 KlientCount=0;

 Order=0;

 K1=0;

 K2=0;

 K3=0;

 TovC=0;

 WKl1=0;

 WKl2=0;

 WKl3=0;

 TovCount=0;

 ExitCount=0;

 COrder=0;

 TPreb=0;

 TIn=0;

 TMod=0;

 MTime=0;TMod=0;

   MaxKlient = StrToInt(edMaxZak->Text);

   CTovar = StrToInt(edMaxCol->Text);

   In = StrToInt(edMatOjid->Text);;

   TMod = StrToInt(edTMod->Text)*60;

            randomize();

             t3=0;

            while(MTime<TMod)

            {

                if(TIn<=0){key=0;}

                if(key==0)

                         {TIn=Rand(In);}

                min=TIn;

                if(Order!=0)

                {

                if(TIn>K1){min=K1;key=1;}

                if(min>K2){min=K2;key=1;}

                if(min<K3){min=K3;key=1;}

                }

                MTime+=min;

                K1-=min;

                        K2-=min;

                        K3-=min;

                        TPreb+=Order*min;

                   if(min==TIn)

               {KlientCount++;

                        Order++;

            TovC=0;

                }

                TIn-=min;

                if(Order>0) // Есть очеpедь

                        {

                                    COrder+=Order;

                                    COrder--;

                                    if(K1<0 || K2<0 || K3<0)

                                    {

Похожие материалы

Информация о работе

Предмет:
Моделирование
Тип:
Отчеты по лабораторным работам
Размер файла:
99 Kb
Скачали:
0