Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мим.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

II практическая часть

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

2.1 Моделирование в системе matlab

Программа моделирования состоит из М-файла в виде М-сценария, приводимого ниже, и М-функции описания дифференциальных уравнений.

clear,clc,close all

% ВХОДНЫЕ ДАННЫЕ

L=0.33;M=0.678;

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 40];

% НАЧАЛЬНЫЕ УСЛОВИЯ

P0=[1;zeros(length(A)-1,1)];

% ВЫЗОВ РЕШАТЕЛЯ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

[t,P]=ode45(@faza,T,P0);

% ПОСТРОЕНИЕ ДИАГРАММ

figure(1),plot(t,P(:,1),'linew',2),grid,hold on,

plot(t,P(:,2),'o','linew',1),

plot(t,P(:,3),'--','linew',2),

plot(t,P(:,4),'-.','linew',2),

plot(t,P(:,5),':','linew',2),

set(gcf,'color','w'),

title('\bf\fontsize{12}Serving System of two phases'),

text(max(t)/2,0.83*max(max(P)),'\bf\fontsize{12}\lambda=0.33\newline\mu=0.678'),

text(T(2)-T(2)/10,P(end,1)+0.07*P(end,1),'\bf P_0(t)'),

text(T(2)-T(2)/9,P(end,1)+0.045*P(end,1),'\bf\downarrow'),

legend('\bf P_0(t)','\bf P_1(t)','\bf P_2(t)','\bf P_3(t)','\bf P_4(t)'),

xlabel('\bf Time'),ylabel('\bf Probability')

hold off

% ОПЕРАЦИОННЫЕ ХАРАКТЕРИСТИКИ СИСТЕМЫ

%--------------- 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 CHARACTERISTICS of Serving System:\n')

fprintf('\t Ncp = %1.4f\n',Ncp)

%------ Pf1 - ВЕРОЯТНОСТЬ НАЧАЛА ОБСЛУЖИВАНИЯ -----

Pf1=P(end,1)+P(end,2);

fprintf('\t Pf1 = %1.4f\n',Pf1)

%-------------- Pomk - ВЕРОЯТНОСТЬ ОТКАЗА -----------------------

Pomk=1-Pf1;

fprintf('\t Pomk = %1.4f\n',Pomk)

% Q - ОТНОСИТЕЛЬНАЯ ПРОПУСКНАЯ СПОСОБНОСТЬ

Q=1-Pomk;

fprintf('\t Q = %1.4f\n',Q)

% Lef - ЭФФЕКТИВНАЯ ЧАСТОТА ПОСТУПЛЕНИЯ

% ТРЕБОВАНИЙ В СИСТЕМУ

Lef=L*Pf1;

fprintf('\t Lef = %1.4f\n',Lef)

% Ab - АБСОЛЮТНАЯ ПРОПУСКНАЯ СПОСОБНОСТЬ

Ab=Lef*Q;

fprintf('\t Ab = %1.4f\n',Ab)

% Ts - ПОЛНОЕ ВРЕМЯ ПРЕБЫВАНИЯ ТРЕБОВАНИЙ

% В СИСТЕМЕ

fprintf('\n\t TIMES:\n')

Ts=Ncp/Lef;

fprintf('\t Full time Ts = %1.4f\n',Ts)

% Tcp1 - СРЕДНЕЕ ВРЕМЯ ОБСЛУЖИВАНИЯ ОДНОГО

% ТРЕБОВАНИЯ

Tcp1=2*(1/M);

fprintf('\t Tcp = %1.4f\n',Tcp1)

% Td - СРЕДНЕЕ ВРЕМЯ ЗАДЕРЖКИ

Td=Ts-Tcp1;

fprintf('\t Td = %1.4f\n',Td)

М-функция описания правых частей дифференциальных уравнений:

function f=faza(t,P)

global A

f=A*P;

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

CHARACTERISTICS of Serving System:

Ncp = 0.6723

Pf1 = 0.6384

Pomk = 0.3616

Q = 0.6384

Lef = 0.2107

Ab = 0.1345

TIMES:

Full time Ts = 3.1913

Tcp = 2.9499

Td = 0.2415

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

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