Опубликован: 30.11.2010 | Уровень: специалист | Доступ: платный | ВУЗ: Мордовский государственный университет имени Н.П. Огарева
Лекция 1:

Моделирование многофазных систем массового обслуживания

Лекция 1: 123 || Лекция 2 >

Практическая часть

Рассмотрим моделирование двухфазной системы массового обслуживания в программных средах MATLAB и GPSS/PC. Сначала выполним моделирование двухфазной системы в MATLAB. Примем, что параметр входного простейшего потока равен 1.7, а интенсивность обслуживания каждой фазы равна 0.67, т. е. \lambda = 1.7, \mu = 0.67. В основе моделирования стоит задача интегрирования системы дифференциальных уравнений вида (1.2) на отрезке времени, когда вероятности состояний примут свои установившиеся значения. По установившимся значениям вероятностей рассчитываются операционные характеристики системы. Входными данными программы, таким образом, будут являться интенсивности входного потока и обслуживания, а также матрица коэффициентов системы дифференциальных уравнений.

1. Пример моделирования в системе matlab

Программа моделирования оформлена в виде М -функции без аргументов и без возвращаемого значения. Это позволит в одном М -файле использовать дополнительные М -функции.

Программный код решения примера:

function twophase;
clc,close all
% ВХОДНЫЕ ДАННЫЕ
L = 1.7;
M = 0.67;
global A
A = [-L, M, 0, 0, 0;
    0, -(L+M), M, 0, M;
    L, 0, -M, M, 0;
    0, L, 0, -2*M, 0;
    0, 0, 0, M, -M];

% ИНТЕРВАЛ ИНТЕГРИРОВАНИЯ
T = [0, 20];
% НАЧАЛЬНЫЕ УСЛОВИЯ
P0 = [1;zeros(length(A)-1,1)];
% ВЫЗОВ РЕШАТЕЛЯ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
[t,P] = ode45(@faza,T,P0);

% ПОСТРОЕНИЕ ДИАГРАММ ВЕРОЯТНОСТЕЙ СОСТОЯНИЙ
figure(1);
line(t,P(:,1),'linew',2, 'color','r'),
line(t,P(:,2), 'marker','o','color', [0,102,102]/255),
line(t,P(:,3), 'lines','--','linew',2, 'color', 'k'),
line(t,P(:,4), 'lines','-.','linew',2, 'color', 'b'),
line(t,P(:,5), 'linestyle',':','linew',2, 'color','m'),

 
str='\bfВероятности состояний двухфазной системы обслуживания:';
 
title(sprintf('%s %s = %g; %s = %g',str,'\lambda',L,'\mu', M));
legend('P_0_0(t)','P_0_1(t)','P_1_0(t)','P_1_1(t)','P_b_1(t)');
xlabel('\bf -  -  -  -  -  -  t -  -  -  -  -  - ');
ylabel('\bf P(t)');
%%% ОПЕРАЦИОННЫЕ ХАРАКТЕРИСТИКИ СИСТЕМЫ
% Ncp - СРЕДНЕЕ ЧИСЛО ТРЕБОВАНИЙ В СИСТЕМЕ
k =[0, 1, 2];
Pk = [P(end,1);P(end,2)+P(end,3);P(end,4)+P(end,5)];
Ncp = k*Pk;

fprintf('\n\t ОПЕРАЦИОННЫЕ ХАРАКТЕРИСТИКИ ДВУХФАЗНОЙ СИСТЕ-МЫ:\n');
fprintf('\t Среднее число требований в системе: Ncp = %f\n',Ncp);

% Pf1 - ВЕРОЯТНОСТЬ НАЧАЛА ОБСЛУЖИВАНИЯ 
Pf1 = P(end,1)+P(end,2);
fprintf('\t Вероятность начала обслуживания: Pf1 = %f\n',Pf1);

% Pomk - ВЕРОЯТНОСТЬ ОТКАЗА В ОБСЛУЖИВАНИИ  
Pomk = 1-Pf1;
fprintf('\t Вероятность отказа: Pomk = %f\n',Pomk);

%  Q - ОТНОСИТЕЛЬНАЯ ПРОПУСКНАЯ СПОСОБНОСТЬ 
Q = 1-Pomk;
fprintf('\t Относительная пропускная способность системы: Q = %f\n',Q);

% Lef - ЭФФЕКТИВНАЯ ЧАСТОТА ПОСТУПЛЕНИЯ ТРЕБОВАНИЙ В СИСТЕМУ
Lef = L*Pf1;
fprintf('\t Эффективная частота поступления требований в систему: Lef = %f\n',Lef);

% Ab - АБСОЛЮТНАЯ ПРОПУСКНАЯ СПОСОБНОСТЬ 
Ab = Lef*Q;
fprintf('\t Абсолютная пропускная способность системы: Ab = %f\n',Ab)

% Ts - ПОЛНОЕ ВРЕМЯ ПРЕБЫВАНИЯ ТРЕБОВАНИЙ В СИСТЕМЕ  
Ts = Ncp/Lef;
fprintf('\t Полное время пребывания требования в системе: Ts = %f\n',Ts);
% Tcp1 - СРЕДНЕЕ ВРЕМЯ ОБСЛУЖИВАНИЯ ОДНОГО ТРЕБОВАНИЯ
Tcp1 = 2*(1/M);
fprintf('\t Среднее время обслуживания требования в системе: Tcp = %f\n',Tcp1);
% Td - СРЕДНЕЕ ВРЕМЯ ЗАДЕРЖКИ 
Td = Ts - Tcp1;
fprintf('\t Среднее время задержки в обслуживании: Td = %f\n',Td);

% Финальные (стационарные) вероятности
fprintf('\n\t Финальные (стационарные) вероятности:\n');
k = 0;
for J = 1 : length(P0)
    if J == 1 | J == 2
fprintf('\t P0%d = %f\n ',J-1,  P(end, J));
    
    elseif J > 2 & J < length(P0)
fprintf('\t P1%d = %f\n ', k,  P(end, J));
k = k + 1;
   
    else
fprintf('\t Pb1 = %f\n', P(end,end));
   end
end
 

% М-функция описания правых частей дифференциальных уравнений
function f = faza(t,P)
global A
f = A*P;

Результаты моделирования по определению операционных характеристик

ОПЕРАЦИОННЫЕ ХАРАКТЕРИСТИКИ ДВУХФАЗНОЙ СИСТЕМЫ
	 Среднее число требований в системе: Ncp = 1.345670
	 Вероятность начала обслуживания: Pf1 = 0.224859
	 Вероятность отказа: Pomk = 0.775141
	 Относительная пропускная способность системы: Q = 0.224859
	 Эффективная частота поступления требований в систему: Lef = 0.382260
	 Абсолютная пропускная способность системы: Ab = 0.085955
	 Полное время пребывания требования в системе: Ts = 3.520298
	 Среднее время обслуживания требования в системе: Tcp = 2.985075
	 Среднее время задержки в обслуживании: Td = 0.535224
	 
          Финальные (стационарные) вероятности:
	 P00 = 0.063570
 	 P01 = 0.161289
 	 P10 = 0.365900
 	 P11 = 0.204626
 	 Pb1 = 0.204615

Переходные процессы вероятностей состояний показаны на рис. 1.3.

Переходные процессы вероятностей состояний в двухфазной системе

Рис. 1.3. Переходные процессы вероятностей состояний в двухфазной системе

Задание 1

  1. Вычислите по формуле Литтла среднее количество требований в системе.
  2. Проверьте нормировочное условие для вероятностей состояний системы в трех точках временного интервала интегрирования.
  3. В соответствии с номером компьютера, на котором выполняется лабораторная работа (1, 2, 3 и т. д.), увеличьте интенсивность входного потока на этот номер. Выполните два предыдущих пункта задания.
  4. Результаты расчета операционных характеристик запишите в текстовый файл с именем compX.txt, где Х — номер компьютера, на котором выполняется лабораторная работа.
  5. Напишите программу с различными интенсивностями обслуживания в фазах обслуживания. Рассчитайте также операционные характеристики двухфазной системы обслуживания.
Лекция 1: 123 || Лекция 2 >
Мария Ястребинская
Мария Ястребинская

Добрый день. Я приступила сегодня к самостоятельному изучению курса "Моделирование систем". Хочу понять - необходимо ли отсылать мои решения практических заданий на сайт, (и если да - то где найти волшебную кнопку "Загрузить...") или практические задания остаются полностью на моей совести? (никто не проверяет, и отчётности по ним я предоставлять не обязана?)

P.S.: тьютора я не брала

алена зянтерекова
алена зянтерекова
Дмитрий Степаненко
Дмитрий Степаненко
Россия
Маржан Мукынова
Маржан Мукынова
Россия, Новосибирск