Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Quered2_1.m




% Двухфазная система массового обслуживания

 

function queue2_1

tm=15; % время окончания функционирования системы;

R=2; % число каналов первой фазы

k1=0; % количество заявок в очереди первой фазы;

k2=0; % количество заявок в очереди второй фазы;

M1=2; % емкость первого накопителя;

M2=5; % емкость второго накопителя;

vvk=[]; % массив времен окончания обработки заявок;

otk=0; % количество потерянных заявок;

tpn1=0; % время поступления заявки в накопитель первой фазы;

vpn1=[]; % массив времен поступления заявок в накопитель первой фазы;

tpn2=0; % время поступления заявки в накопитель второй фазы;

vpn2=[]; % массив времен поступления заявок в накопитель второй фазы;

tpk1=[0,0]; % время начала обработки заявки в каналах первой фазы;

tvk1=[0,0]; % время начала обработки заявки в каналах первой фазы;

vvk1=[,]; % массив времен поступления заявок в каналы первой фазы;

tpk2=0; % время начала обработки заявки в канале второй фазы;

tvk2=0; % время окончания обработки заявки в канале второй фазы;

vvk2=[]; % массив времен поступления заявок в канал второй фазы;

ti=0; % время поступления заявки в систему;

vti=[0]; % массив времен поступления заявок;

N=1; % параметр источника

m=[1,2]; % параметры каналов первой фазы

m2=3; % параметр канала второй фазы

z=[0,0]; % параметры, характеризующие состояние каналов

z2=0; % 0-свободен, 1-занят

block=0; % 0-нет блокировки каналов первой фазы, 1-есть

l=[0,0];

dt=0.1; % постоянный шаг

t0=dt; % начальный момент времени

num=0; % количество сгенерированных заявок

for t=t0:dt:tm

% сначала просмотр изменений состояний в системе

q2=0;

if tvk2<t && z2==1

z2=0; % если канал второй фазы освободился

if k2>0 % и в очереди есть заявки,

p2=exprnd(m2); % то заявка из накопителя идет на обслуживание в канал

tpk2=tvk2;

tvk2=tpk2+p2;

k2=k2-1; % количество зявок в очереди уменьшается на одну

z2=1; % канал становится занят

q2=1;

end

% vvk2=[vvk2,tvk2]; % массив времен окончания обслуживания заявок каналом второй фазы

end

if k2==M2 && z2==1 % если канал второй фазы занят и накопитель полон, то

block=1; % устанавливается блокировка каналов первой фазы

else % иначе

block=0; % блокировки нет

end

for j=1:R

if tvk1(j)<t && z(j)==1 && block==0 % если канал первой фазы освободился

z(j)=0;

l(j)=l(j)+1;

if k2==0 && z2==0 % в накопителе второй фазы нет заявок и канал второй фазы свободен

p2=exprnd(m2); % заявка из канала первой фазы

tpk2=tvk1(j); % переходит в канал второй фазы

tvk2=tpk2+p2;

q2=1;

% vvk2=[vvk2,tvk2];

z2=1; % канал второй фазы становится занят

else % канал второй фазы занят или есть очередь

tpn2=tvk1(j); % заявка становится в очередь

k2=k2+1;

vpn2=[vpn2,tpn2];

end

if k2==M2 && z2==1 % если канал второй фазы занят и накопитель полон, то

block=1; % устанавливается блокировка каналов первой фазы

end

end

if z(j)==0 % если канал первой фазы свободен

if k1>0 % есть очередь в накопителе первой фазы

p=exprnd(m(j));

tpk1(j)=t; % заявка из накопителя идет на бслуживание в канал

tvk1(j)=tpk1(j)+p;

z(j)=1; % канал становится занят

k1=k1-1; % число заявок в очереди уменьшается на единицу

end

end

end

% на момент времени t все состояния системы изменились,

% теперь рассмотрим приход новой заявки

if q2==1

vvk2=[vvk2,tvk2];

end

ql=0;

if ti<t % источник сгенерировал заявку

q=exprnd(N);

ti=ti+q;

vti=[vti,ti];

num=num+1;

for j=1:R

if z(j)==0 && ql==0 % если канал первой фазы свободен и заявка еще не ушла на обслуживание

p=exprnd(m(j)); % заявка идет на обслуживание в канал

tpk1(j)=ti-q;

tvk1(j)=tpk1(j)+p;

z(j)=1;

ql=1;

end

end

if k1<M1 && ql==0 % если в очереди есть место и заявка еще не обслуживается

tpn1=ti-q;

k1=k1+1;

vpn1=[vpn1,tpn2];

else

if k1==M1 && ql==0 % все каналы первой фазы заняты и мест в очереди нет

otk=otk+1; % потеря заявки

end

end

end

sol=[t,ti,tvk1(1),z(1),tvk1(2),z(2),k1,otk,tvk2,z2,k2,block]

end

vvk2

n=size(find(vti<tm),2); % количество поступивших заявок;

n1=size(find(vvk2<tm),2); % количество обслуженных заявок на выходе из системы;

disp(' n k1 k2 otk K1 K2 K3 1 2 3')

sol1=[n,k1,k2,otk,l(1),l(2),n1,z(1),z(2),z2]

По аналогии с алгоритмом моделирования системы на языке MATLAB строится SF-диаграмма данной СМО.


ЗАКЛЮЧЕНИЕ

В представленном учебном пособии рассмотрены различные типы поведения динамических систем и типовые математические схемы, используемые для построения математических моделей их функционирования. Основное внимание уделено вопросам разработки имитационных моделей систем с дискретным состоянием. В качестве программных средств использовались средства и возможности универсальной программной системы MATLAB и, главным образом, ее инструментария для визуального программирования и моделирования систем SIMULINK и STATEFLOW.

Для каждого из классов математических схем средствами SIMULINK-STATEFLOW

на примерах демонстрируется построение имитационных моделей, приводятся блок- схемы моделей систем и результаты моделирования. Для отдельных примеров рассмотрена программная реализация моделей на языке MATLAB.

 

 

ЛИТЕРАТУРА

1. Афанасьев В.Н., Колмановский В.Б., Носов В.Р. Математическая теория конструирования систем управления.– М.: Высш. шк., 1989.

2. Бусленко Н.П. Моделирование сложных систем.– М.: Наука, 1968.

3. Гультяев А. Визуальное моделирование в среде MATLAB. Учебный

курс.– СПб.: Питер, 2000.

4. Дьяконов В. MATLAB 6. Учебный курс.– СПб.: Питер, 2001.

5. Дьяконов В. SIMULINK 4. Специальный справочник.– СПб.: Питер, 2002.

6. Советов Б.Я., Яковлев С.А. Моделирование систем.– М.: Высш. шк., 1985.

7. Вентцель Е.С. Исследование операций.– М.: Советское радио, 1972.

8. Труб И.И. Объектно-ориентированное моделирование на С++. Учебный курс.– СПб.: Питер, 2006.

9. Сирота А.А., Компьютерное моделирование и оценка эффективности

сложных систем. – М.: Техносфера, 2006.




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 504; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.