Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБЫ Роб.docx
Скачиваний:
15
Добавлен:
11.04.2015
Размер:
311.49 Кб
Скачать

Лабораторная работа №1 Построение и реализация моделирующих алгоритмов q-схем. Метод “δt”

Цель работы: выработка навыков алгоритмизации и программирования имитационных моделей систем массового обслуживания (СМО) методом «ΔT», фиксации и обработки данных в ходе статистических экспериментов с моделью.

Оборудование и программные средства: персональный компьютер, операционная система MS Windows XP/7, с системой программирования на языке высокого уровня С# в среде MS Visual Studio.

Программа выполнения работы

  1. Изучить обобщенные алгоритмы моделирования, использующие для продвижения модельного времени схему событийного типа и метод «дельта Т», примеры реализации моделирующего алгоритма для простейшей системы массового обслуживания.

  1. Составить программу моделирования в соответствие с заданием на одном из алгоритмических языков по схеме «дельта Т». Ввести в компьютер и отладить программу моделирования.

  1. Провести вычислительные эксперименты с моделью.

Краткая теория.

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

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

Принцип Δt. Он заключается в том, что весь промежуток функционирования объекта разбивается на участки Δ t, в течении которых все параметры системы или объекта считаются постоянными и для них составляется модель, производятся вычисления, определяются параметры.

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

Моделируемая система имеет вид:

Програмная реализация

Скриншот программы:

Код программы:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace СМО_dT__Robot_

{

public partial class SMS : Form

{

public SMS()

{

InitializeComponent();

}

// инициализация объектов

int n_max = 100, n = 0 ;

TimeSMS GlobalTime = new TimeSMS();

int g1min = 150, g1max = 250, g2min = 180, g2max = 260;

G G1 = new G();

G G2 = new G();

U U1 = new U();

U U2 = new U();

T T1 = new T();

private void Start_Click(object sender, EventArgs e)

{

timer1.Start();

}

private void timer1_Tick(object sender, EventArgs e)

{

label7.Text = Convert.ToString(GlobalTime.T);

label8.Text = Convert.ToString(G1.Tg);

label9.Text = Convert.ToString(G2.Tg);

label10.Text = Convert.ToString(U1.LQ);

label11.Text = Convert.ToString(U2.LQ);

label12.Text = Convert.ToString(n);

label13.Text = Convert.ToString(U1.Tu);

label14.Text = Convert.ToString(U2.Tu);

GlobalTime.T+=GlobalTime.dt;

G1.Tg -= GlobalTime.dt;

G2.Tg -= GlobalTime.dt;

//step 4 for the First device

if (G1.Tg <= 0)

{

//Step 5 for the First device

n++;

G1.Fg(g1min, g1max);

U1.LQ++;

if (U1.Z == false)

{

U1.LQ--;

U1.Z = true;

U1.Fu(true);

}

}

//step 4 for the Second device

if (G2.Tg <= 0)

{

//Step 5 for the Second device

n++;

G2.Fg(g2min, g2max);

U1.LQ++;

if (U1.Z == false)

{

U1.LQ--;

U1.Z = true;

U1.Fu(true);

}

}

//step 6

if (U1.Z == true)

{

//step7

U1.Tu -= GlobalTime.dt;

if (U1.Tu <= 0)

{

U1.Z = false;//commit13.05

if (U1.LQ > 0)

{

U1.Z = true;

U1.LQ--;

U1.Fu(true);

U2.LQ++;

if (U2.Z == false)//commit13.05

{

U2.Z = true;

U2.LQ--;

U2.Fu(false);

}

}

}

}

//step8

if (U2.Z == true)

{

//step9

U2.Tu -= GlobalTime.dt;

if (U2.Tu <= 0)

{

if (U2.Tu == -1)

{

U2.Tu = 0;

}

U2.Z = false;

if (U2.LQ > 0)

{

U2.LQ--;

U2.Z = true;

U2.Fu(false);

}

}

}

if (n >= n_max)

{

timer1.Stop();

T1.n = n;

}

}

}

}

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]