Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Программа имитационной модели для среды MATLAB






Программа разработана в среде MATLAB, поскольку данная среда предоставляем удобный интерфейс для обработки результатов моделирования. Представляет собой m-файл. Результатом является среднее количество рейсов в день при заданных вероятностях поломок. Для того, чтобы они показывались в командном окне, в соответствующих строчках не ставится точка с запятой. Значения промежуточных величин можно посмотреть в редакторе массивов.

Текст программы:

clear % очищаем рабочее пространство, удаляем значения всех %определенных до того переменных

N=10; % количество рейсов в день

a=0.2; % вероятность мелкой поломки

b=0.8; % вероятность крупной поломки

 

%теоретическое значение среднего количества рейсов при альфа-%стратегии

Ma=N/(1+a)+(a*(1-(-a)^N))/((1+a)^2)

%теоретическое значение среднего количества рейсов при бетта-%стратегии

Mb=(a^2*(1-(1-b)^N)-b^2*(1-(1-a)^N))/(a*b*(a-b))

 

SG1=1; % логическая переменная принимает значение 1, если автобус %находится в хорошем состоянии, и значение 0, если автобус находится %в состоянии А (альфа стратегия)

 

SG2=1; % логическая переменная принимает значение 1, если автобус %находится в хорошем состоянии, и значение 0, если автобус находится %в состоянии А (бетта стратегия)

 

SB2=0; %логическая переменная равна 1 если автобус находится в %состоянии В, и 0 в других случаях

 

DMAX=100; % число дней, которое мы хотим моделировать

D=1; %текущее число дней при моделировании

RM=1; % число моделируемых рейсов в день, включая отдельные рейсы

 

%Определяем массивы случайных чисел, необходимых для принятия %решений о поломке каждого рейса.

rrrA=unifrnd(0, 1, DMAX);

rrrB=unifrnd(0, 1, DMAX);

 

n=1;

%для альфа стратегии

 

for D=1: DMAX %цикл по дням моделирования

RM=0; % обнуление количества рейсов в начале дня

SG1(1)=1; % в первый рейс автобус выходит исправным

RR(1)=1; % первый рейс состоится

% проверка первого рейса состоялась ли поломка

if rrrA(1, D)< a; % если поломка состоялась,

SG1(1)=0; %автобус переходит в ухудшенное состояние

else% иначе

SG1(1)=1; %остается в исправном состоянии

end

for n=2: N %цикл по рейсам для каждого дня

if RR(n-1)==0 %если в предыдущем рейсе автобус ремонтировался

RR(n)=1; % то рейс состоится

if rrrA(n, D)< a; % если поломка состоялась,

SG1(n)=0; %автобус переходит в ухудшенное состояние

else% иначе

SG1(n)=1; %остается в исправном состоянии

end

else% иначе

if SG1(n-1)==0; % если поломка состоялась в предыдущем рейсе,

RR(n)=0; %рейс не состоится

SG1(n)=1; %автобус ремонтируется

else% иначе

RR(n)=1; %рейс состоится

% произойдет ли поломка в n-м рейсе

if rrrA(n, D)< a; % если поломка состоялась,

SG1(n)=0; %автобус переходит в ухудшенное состояние

else% иначе

SG1(n)=1; %остается в исправном состоянии

end

end

end

end

RM=sum(RR); %суммируем количество рейсов без поломок, когда автобус был исправным

%оно соответствует количеству состоявшихся рейсов

RMA(D)=RM; % запись количества рейсов в массив по дням

end

 

% для бетта стратегии

 

for D=1: DMAX%цикл по дням моделирования

RM=0; % обнуление количества рейсов в начале дня

R(1)=1; % первый рейс всегда состоится

 

% произойдет ли поломка в 1-м рейсе

if rrrA(1, D)< a; % если поломка состоялась,

SG2(1)=0; %автобус переходит в ухудшенное состояние

else% иначе

SG2(1)=1; %остается в исправном состоянии

end

SB2(1)=1; % в первом рейсе автобус не может получить серьезную поломку

 

R(2)=1; % второй рейс всегда состоится

 

for n=2: N % цикл по рейсам, начиная со второго

if R(n-1)==0 %если автобус в прошлом рейсе ремонтировался

R(n)=0; % то он продолжает ремонтироваться

else% иначе, если предыдущий рейс состоялся

if SB2(n-1)==0

R(n)=0;

else

R(n)=1;

if SG2(n-1)==0% если в предыдущем рейсе автобус перешел в ухудшенное состояние

SG2(n)=0; % то он так в нем и остается

if rrrB(n, D)< b; %состоялась ли крупная поломка

SB2(n)=0; %состоялась

else %иначе

SB2(n)=1; %не состоялась

end

else

SB2(n)=1;

if rrrA(n, D)< a; %если мелкая поломка состоялась

SG2(n)=0; %автобус переходит в ухудшенное состояние

 

else% иначе

SG2(n)=1; %остается полностью исправным

end

end

end

end

end

RM=sum(R); % сумма по состоявшимся рейсам

RMB(D)=RM; % запись количества рейсов в массив по дням

end

 

mean(RMA) %среднее значение массива RMA (количество рейсов в %каждый из дней при альфа-стратегии)

mean(RMB) % среднее значение массива RMA (количество рейсов в %каждый из дней при бетта-стратегии)

Конец текста программы.

Аналитическая модель для выбора варианта обслуживания

В настоящее время известно аналитическое решение рассматриваемой задачи, т.е. формулы, определяющие среднее количество рейсов Ma и Mb. Для удобства записи формул обозначим:

 

а - вероятность РА перехода в состояние А;

b - вероятность РB перехода в состояние B.

Тогда среднее количество рейсов для двух стратегий определяется следующими соотношениями:

Ma = ;

Mb = ,

где N – планируемое число рейсов в день.

Таким образом, зная вероятности РА, РВ и N по приведенным формулам можно всегда вычислить среднее число рейсов для разных стратегий обслуживания, и выбрать такую стратегию, которая обеспечит максимальное ожидаемое количество рейсов при данных конкретных параметрах модели.

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


 


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

mylektsii.su - Мои Лекции - 2015-2024 год. (0.01 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал