Задание на лабораторные работы (1086521), страница 17
Текст из файла (страница 17)
Система (1.2) — это система однородных обыкновенных дифференциальных уравнений с постоянными коэффициентами. Ее можно представить в матричном виде:
где — вектор размера 5×1 с элементами
,
— матрица коэффициентов (из
и
) размера 5×5.
Как известно, для того чтобы система n линейных однородных уравнений с n неизвестными имела нетривиальное решение, необходимо и достаточно, чтобы определитель системы был равен нулю. Для системы (1.2) определитель (характеристический определитель) будет иметь вид
Раскрывая характеристический определитель, получим характеристическое уравнение. И если действительные части корней характеристического уравнения будут иметь отрицательные значения, то решение системы дифференциальных уравнений будет устойчивым, т.е. стремиться к установившемся значениям.
Для интегрирования системы (1.2) будем задавать естественные начальные условия, т.е. такие, когда в начальный момент времени, равный нулю вероятность отсутствия требований в системе равна единице, а остальные вероятности в начальный момент времени равны нулю:
1.2 Трехфазная система обслуживания
В трехфазной системе каждая из фаз может быть свободной (символ 0), занятой (символ 1), а фазы 1 и 2 могут быть к тому же заблокированы (символ b). Если состояние первой фазы обозначить символом i, состояние второй фазы — символом j, состояние третьей фазы — символом k, то возможные состояния трехфазной системы будут следующими:
В соответствии с возможными состояниями (1.4) трехфазной системы можно получить систему дифференциальных уравнений 13-го порядка относительно вероятностей состояний :
Система (1.5) — это система однородных обыкновенных дифференциальных уравнений с постоянными коэффициентами. Ее также можно представить в матричном виде:
где — вектор состояний системы 13-го порядка, А — матрица постоянных коэффициентов размера 13×13.
Для решения системы (1.5) следует задать начальные условия, которые могут быть естественными, т.е.
Отметим также, что система линейных дифференциальных уравнений будет иметь нетривиальное решение, если ее характеристический определитель будет равен нулю. В матричном виде получаем так называемое характеристическое уравнение
где Е — единичная матрица того же размера, что и матрица коэффициентов А, s — скалярная в общем случае комплексная переменная, относительно которой решается характеристическое уравнение. Если действительная часть корней характеристического уравнения отрицательна, то решение системы дифференциальных уравнений будет устойчивым, т.е. будет иметь установившееся значение (вектор решений).
Таким образом, система дифференциальных уравнений (1.5) с начальными условиями (1.6) представляет собой математическую модель трехфазной системы массового обслуживания с нулевой вместимостью блоков ожидания. Схема трехфазной модели системы обслуживания показана на рисунке 1.2.
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 — Переходные процессы в двухфазной системе
2.2 Моделирование в системе GPSS/PC
Для моделирования в системе GPSS/PC (GPSS World) необходимо подготовить данные по функциям распределения случайных величин, с помощью которых осуществляется имитация пуассоновского входного потока требований и экспоненциального обслуживания. В обоих случаях моделируется экспоненциальное распределение случайных величин, поскольку интервалы времени между требованиями в пуассоновском потоке распределены по экспоненциальному закону. В рассматриваемом случае параметры пуассоновского потока и экспоненциального обслуживания заданы и равны соответственно λ = 0.33; = 0.678.
Чтобы смоделировать случайные величины, распределенные по экспоненциальному закону с параметром, отличного от единицы, поступают следующим образом:
-
генерируют значения случайной величины, распределенной по экспоненциальному закону с параметром, равным 1;
-
находят произведение полученного значения и математического ожидания случайной величины, распределенной по экспоненциальному закону с параметром не равным 1.
Описанная процедура реализована в MATLAB по следующей программе:
%-------------- For GPSS/PC -------------------------
X=0:0.2:8;
px1=(1-exp(-X));
fprintf('\n\t CDF for Input:\n')
q = [px1',1/L*X'];
dlmwrite('zx1',q,',') % 1-st method
type zx1
for J = 1:length(q(:,1))% 2-nd method
fprintf('%g%s%g\n',q(J,1),',',q(J,2))
end
C1=size([px1',1/L*X']);
fprintf('\t Row = %g\t Col = %g',C1)
fprintf('\n')
Y=0:0.25:10;
py1=1-exp(-Y);
fprintf('\n\t CDF for Service:\n')
C2=size([py1',1/M*Y']);
w = [py1',1/M*Y'];
dlmwrite('zx2',w,',') % 1-st method
type zx2
for J = 1:length(w(:,1))% 2-nd method
fprintf('%g%s%g\n',w(J,1),',',w(J,2))