МИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«РОССИЙСКИЙ УНИВЕРСИТЕТ ТРАНСПОРТА (МИИТ)»
(РУТ (МИИТ)
Одобрено кафедрой
«ЖЕЛЕЗНОДОРОЖНАЯ АВТОМАТИКА ТЕЛЕМЕХАНИКА И СВЯЗЬ»
Протокол № от 201 г.
Автор:
ЗАДАНИЕ НА КУРСОВОЙ ПРОЕКТ С МЕТОДИЧЕСКИМИ
УКАЗАНИЯМИ
ПО ДИСЦИПЛИНЕ
Моделирование систем управления
Уровень ВО: Бакалавриат
Форма обучения: Заочная
Курс: 4
Специальность/Направление: 27.03.04 Управление в технических
системах (УТб)
Специализация/Профиль/Магистерская программа: (УТ) Системы и
технические средства автоматизации и управления
Москва
ОБЩИЕ УКАЗАНИЯ
Курсовой проект посвящен проектированию имитационной модели
работы сортировочной станции с заданными параметрами, а также
статистической обработкой результатов моделирования. Варианты исходных
данных к задачам студент выбирает по двум последним цифрам своего
учебного шифра.
К выполнению курсового проекта рекомендуется приступать после
изучения теоретической части курса в целом. При выполнении курсового
проекта следует привести исходные данные в соответствии с вариантом,
краткие пояснения, расчеты и схемы, предусмотренные методическими
указаниями. Все схемы должны быть выполнены в графических редакторах.
Результаты расчетов представляются в табличной форме, в соответствии с
методическими указаниями.
Оформление курсового проекта выполняется на одной стороне
стандартных листов А4, с использованием текстовых редакторов, в
соответствии с требования по оформлению (14 шрифт, полуторный
межстрочный интервал, поля справа – 3 см, слева – 3 см, сверху и снизу – 2
см). Листы должны быть сброшюрованы и пронумерованы. В конце
контрольной работы необходимо привести список использованной
литературы.
Провести имитационное моделирование работы железнодорожной
сортировочной станции, в которой производится расформирование составов
на единственной сортировочной горке. В парке прибытия сортировочной
станции имеется Nприемн. путей, на которых составы ожидают роспуска. При
этом станция должна выплачивать штраф в размере Sштраф за один час простоя
одного состава. Если эти пути заняты, то пришедший поезд вынужден
покинуть эту станцию.
Время моделирования Tмод принимается равным 24 часам.
Значения интервалов между приходящими поездами на станцию,
которые необходимо расформировать, а также время роспуска состава на
сортировочной горке являются случайными целыми числами, вид
распределения которых и параметры этих распределений выбираются из
табл. 1 и 2 согласной варианту.
Остальные исходные данные приведены в таблице 3.
По результатам имитационного моделирования необходимо провести
их статистическую обработку и определить:
- вероятность отказа в роспуске поезду, при занятости всех приемных
путей;
- среднее время пребывания состава на путях парка приема и среднее
квадратичное отклонение;
- среднее число составов, ожидающих очереди на расформирование и
среднее квадратичное отклонение;
- суммарный суточных штраф, который придется заплатить станции за
простой составов на приемных путях.
Моделирование случайных чисел с параметрами распределения,
заданными согласно варианту, проводится на основании генератора базовых
случайных чисел. Также должно быть приведено сравнение функций
плотности распределения случайных чисел, полученных в результате
указанного моделирования, с функцией плотности этого же распределения
случайных чисел, полученных встроенными функциями программной среды
моделирования.
Таблица 1. Вид и параметры распределения значений интервалов между
входящими на станцию поездами
|
№ предпоследней |
Вид распределения |
Параметры распределения |
|
0 |
экспоненциальное |
интенсивность: λ = 0,03 поезда/мин |
|
1 |
нормальное |
мат. ожидание: |
|
2 |
равномерное |
минимальное значение: максимальное значение: |
|
3 |
экспоненциальное |
интенсивность: λ = 0,02 поезда/мин |
|
4 |
нормальное |
мат. ожидание: |
|
5 |
равномерное |
минимальное значение: максимальное значение: |
|
6 |
экспоненциальное |
интенсивность: λ = 0,025 поезда/мин |
|
7 |
нормальное |
мат. ожидание: |
|
8 |
равномерное |
минимальное значение: максимальное значение: |
|
9 |
нормальное |
мат. ожидание: |
Таблица 2. Вид и параметры распределения времени расформирования
одного состава на сортировочной горке
|
№ последней |
Вид распределения |
Параметры распределения |
|
0 |
равномерное |
минимальное значение: максимальное значение: |
|
1 |
равномерное |
минимальное значение: максимальное значение: |
|
2 |
равномерное |
минимальное значение: максимальное значение: |
|
3 |
равномерное |
минимальное значение: максимальное значение: |
|
4 |
равномерное |
минимальное значение: максимальное значение: |
|
5 |
нормальное |
мат. ожидание: |
|
6 |
нормальное |
мат. ожидание: |
|
7 |
нормальное |
мат. ожидание: |
|
8 |
нормальное |
мат. ожидание: |
|
9 |
нормальное |
мат. ожидание: |
Таблица 3. Остальные исходные данные
|
№ последней |
Число путей в парке приема, |
Штраф за час простоя |
|
0 |
2 |
2000 |
|
1 |
2 |
2500 |
|
2 |
3 |
3000 |
|
3 |
3 |
3500 |
|
4 |
4 |
4000 |
|
5 |
2 |
2250 |
|
6 |
2 |
2750 |
|
7 |
3 |
3250 |
|
8 |
3 |
3750 |
|
9 |
4 |
4250 |
ТЕОРПЕТИЧЕСКАЯ ЧАСТЬ
Концептуальная и алгоритмическая модель работы сортировочной
станции
Сортировочную станцию в рамках поставленной задачи можно
представить в качестве системы массового обслуживания с ожиданием. В
этом случае каналом обслуживания является сортировочная горка, а буфером
данных – пути парка приема (рис. 1).
Входной поток
поездов
Поток отказов в
обслуживании
Рисунок 1. Концептуальная модель работы сортировочной станции
Поток отказов в обслуживании возникает в том случае, если все
приемные пути заняты поездами (то есть все места в буфере заняты).
С учетом принятого допущения можно составить блок-схему
имитационной модели работы сортировочный станции (рис. 2).
Для упрощения написания программы имитационного моделирования
работы сортировочной станции составим на основании блок-схемы (рис. 2)
составим следующий пошаговый алгоритм этой имитационной модели.
Шаг 1: ввести начальные параметры модели
Вид и параметры распределения случайных значений интервалов
между входящими поездами;
Вид и параметры распределения случайных значений времени
роспуска каждого состава;
Время моделирования: Tмод = 1440 мин.;
Количество путей в парке приема: Nприемн. путей = 3;
Штраф за один час простоя одного поезда на путях парка приема:
Sштрафа = 1000 руб.;
Размер финансовых потерь за отказ в расформировании одного
поезда: Бпотерь = 9 000 руб.;
установка счетчиков:
Количество отказов Nотк = 0;
Моменты времени освобождения путей в парке приема:
Tосвоб.пути [ k] = 0, при k=1,2_, Nкан;
Момент времени освобождения сортировочной горки:
Tосвоб. горки 0;
Счетчик номера входящего поезда: i = 1;
Счетчик номера минуты моделирования: CurrentMinute = 0;
Счетчик количества поездов в очереди на горку: Ochered = 0.
Рис. 2. Блок-схема имитационной модели работы сортировочной станции
Шаг 2: генерация значения интервалов между входящими поездами и
формирования массива с этими значениями IntervalR.
Шаг 3: Генерация времени роспуска каждого состава и формирования
массива данных этого значения TimeRospuskaR.
Шаг 4: Формирование массива с моментами времени прибытия каждого
поезда на станцию TimeLineR.
Шаг 5: Проверка не окончено ли моделирование:
если текущая минута моделирования больше времени моделирования
(CurrentMinute<Tмод),
то переход на шаг 23.
иначе увеличиваем счетчик номера минуты моделирования на единицу.
(CurrentMinute = CurrentMinute+1).
Шаг 6: Проверка, на прибытие поезда на станцию в текущую минуту
моделирования:
если значение текущей минуты моделирования не совпадает с
прибытием i-го поезда, CurrentMinute Ф TimeLineR [i],
то переход на шаг 19.
Шаг 7: Проверка наличия свободного пути в парке приема:
если (CurrentMinute < Tосвоб пути [к.]) для всех k = 1,2,..., Nприемн. путей ,
то переход к шагу шаг 16,
иначе зафиксировать номер свободного пути к.
Шаг 8: Проверка свободности горки в минуту прибытия i-го поезда на
приемный путь:
если ( CurrentMinute < Tосвоб. горки),
то переход на шаг 12.
Шаг 9: Зафиксировать момент времени освобождения к-го пути и начала
роспуска i-го состава:
Tосвоб пути [ к] = CurrentMinute
Tнач.роспуска = CurrentMinute
Шаг 10: Определения времени роспуска i-го состава и фиксация момента
времени освобождения горки:
Tосвоб. горки CurrentMinute + TimeRospuskaR [ i ]
Шаг 11: Переход на шаг 17.
Шаг 12: Увеличение счетчика очереди на один поезд:
Ochered = Ochered + 1
Шаг 13: Определение времени ожидания в очереди i-го состава и фиксация
момента времени освобождения k-го приемного пути и начала роспуска i-го
состава:
Tочереди [i] Tосвоб. горки CurrentMinute,
Tосвоб пути
[ k] = CurrentMinute + Tочереди [i] = Tосвоб. горки
Tнач. роспуска =
Tосвоб пути
[k]
Шаг 14: Определения времени роспуска i-го состава и фиксация момента
времени освобождения горки:
Tосвоб. горки
Tосвоб. горки
+ TimeRospuskaR [ i ]
Шаг 15: Переход на шаг 17.
Шаг 16: Увеличение счетчика отказов в роспуске на единицу:
Nотк = Nотк + 1
Шаг 17: Фиксация для i-го поезда момента времени прихода на станцию,
момента времени начала роспуска состава с горки, времени роспуска состава
и момента окончания роспуска состава с горки:
Tвх. на ст.[i] = CurrentMinute
Tнач. роспуска[i] Tнач. роспуска
Tроспуска[i] = TimeRospuskaR [ i ]
Tосвоб. горки
Tоконч. роспуска[i]
Шаг 18: Увеличение счетчика номера входящего поезда на единицу:
i = i + 1
Шаг 19: Проверка на соответствие текущей минуты моделирования моменту
времени освобождения приемного пути при наличии в очереди на
расформирование хотя бы одного поезда:
если (CurrentMinute = Tосвоб путей [k], при всех к = 1, 2, .„, Nприемн. путей) И
( Ochered # 0),
то переход к следующему шагу 20,
иначе переход к шагу 21.
Шаг 20: Уменьшение счетчика очереди на один поезд:
Ochered = Ochered - 1
Шаг 21: Фиксация количества проездов в очереди в текущую минуту
моделирования:
Ochered [ CurrentMinute ] = Ochered
Шаг 22: Увеличение текущей минуты моделирования на единицу и переход к
шагу 5:
CurrentMinute = CurrentMinute + 1
Шаг 23: Вывод результатов моделирования.
Значения интервалов между входящими поездами, а также значение
времени роспуска состава с горки по условию задания являются случайными
величинами, которые имеют заданные законы распределения (равномерный,
экспоненциальный или нормальный). При этом предполагается, что
инструмент моделирования имеет возможность генерировать случайные
числа в пределах от 0 до 1, которые подчиняются равномерному закону
распределения. Совокупность {Ri}, при i = 1, 2, ... независимых равномерно
распределенных на отрезке [0,1] случайных величин называется
последовательностью базовых случайных чисел.
Необходимо провести моделирование случайных чисел с параметрами
распределения, заданными согласно варианту, на основании генератора
базовых случайных чисел.
Для большинства распределений случайных чисел случаев решение
задачи основывается на методе инверсий.
Теорема: если случайная величина ^ имеет плотность распределения p(x), то
распределение случайной величины
f
П = | p (x) dx, (1)
о
является равномерным в интервале (0,1).
Допустим, что требуется получить значения случайной величины {f},
распределенной в интервале (a, b) с заданной плотностью вероятности p(x).
Тогда согласно методу инверсий значения f можно определять из
следующего интегрального уравнения:
f
j p(x) dx = Ri, (2)
a
где Ri - базовое случайное число.
Моделирование равномерно распределенной случайной величины на
отрезке ( a, b )
Пусть x - это случайное число, распределенное по равномерному
закону в интервале (a, b). Функция плотности распределения этой случайной
величины имеет вид:
p(x) =
1
b - a
(3)
Математическое ожидание и дисперсия равномерного распределения
соответственно равны:
Mx
a + b
^~,
D = (b - a )2
x 12
.
(4)
(5)
Предположим, что нам необходимо составить программу для
моделирования входного потока заявок распределенного по равномерному
закону в интервале (a, b). Тогда уравнение метода инверсии (2) выглядит
следующим образом:
Pv = R .
ab - a
(6)
Решением этого интегрального уравнения является:
yr1=R • (7)
b - a
Тогда искомое случайное число определяется по формуле:
y = a + R(b - a) • (8)
Моделирование экспоненциальной случайной величины
Случайная величина, подчиняющаяся экспоненциальному закону,
распределена в интервале (0, ∞) и имеет функцию плотности вероятности
вида:
p(x) = A • e-' ,(9)
где λ – параметр экспоненциального распределения.
Математическое ожидание Mx и дисперсия Dx экспоненциального
распределения соответственно равны:
Mx = 1,(10)
A
Dx = 712.(H)
A
Для нахождения алгоритма имитации экспоненциально
распределенных чисел применяется метод инверсии:
|
]A-e^dx = R , |
(12) |
|
1 - e- Ay = R , |
(13) |
|
y=- ylnQ - R) • A |
(14) |
Поскольку случайная величина (1-R) распределена точно так же, как R
на отрезке (0,1), то формулу (11) можно заменить:
у = -l]nR . (15)
л
Моделирование нормальной случайной величины на основе
центральной предельной теоремы
Нормальное (гауссово) распределение - это один из наиболее важных и
часто используемых в имитационном моделировании видов непрерывных
распределений.
Функция плотности вероятности нормального распределения
случайной величины имеет следующий вид:
1 । x - Mx )2
Р(x) = nz---e 2° , (16)
2na
где Мх - математическое ожидание,
а - средне квадратическое отклонение.
Метод инверсии не может быть использован для функций нормального
распределения, так как не имеют аналитического выражения. Поэтому
алгоритмы моделирования нормальных случайных чисел базируются на
центральной предельной теореме теории вероятностей.
Теорема: Пусть совокупность {Xi}, при i = 0,1, ..., одинаково
распределенных случайных чисел с математическим ожиданием Mx и
дисперсией Dx = а2. Если случайные величины {Xi} независимы и Dx < ®, то
i • n+n-1
при достаточно большом n закон распределения сумм Si = ^ Xk будет
k=i • n
сколь угодно близок к нормальному закону распределения с математическим
ожиданием n^Mx и дисперсией nDx.
Тогда используя базовые числа {Ri}, определим новую случайную
величину:
Si = R1 + R2... + Rn.
(17)
Тогда, согласно вышеуказанной теореме и формулам (4) и (5)
математическое ожидание и дисперсия величины S равны:
n
Ms = -,
s2
(18)
Ds = —,
s 12
(19)
Тогда случайная величина z, распределенная по нормальному закону с
нулевым математическим ожиданием и единичной дисперсией, равна:
(20)
Пусть y является случайной непрерывной величиной, которая
распределена по нормальному закону, и с математическим ожиданием My и
дисперсией Dy. Тогда в соответствии с указанным выше n базовым
случайным числам:
(21)
У = My +
n У
“
2 J
1n2
= My
+
n
Z Ri
V i=1
2 J
(22)
Согласно предельной теореме, нормальность достигается быстро даже
при сравнительно небольших значениях n. В практических задачах n обычно
принимается равным 12.
При моделировании случайных чисел с заданным распределением
необходимо удостовериться, что случайные числа, полученные с
использованием базовых случайных чисел, подчиняются закону
распределения с заданными параметрами. Для этого сравниваются функции
плотности распределения случайных чисел, полученных в результате
указанного моделирования, с функцией плотности этого же распределения
случайных чисел, полученных встроенными функциями программной среды
моделирования. Пример такого сравнения для экспоненциального
распределения с параметром λ=2 приведен на рис. 2.
Параметр: х = 2
Количество случайных чисел: N := 4000
ЛАЛА
Интервал от Одо N: intervals 0..N
Точность построения функции: int . ^ := 0.1 interval
Генерация случайных чисел через
слуйные базовые числа
Генерация случайных чисел через
встроенные функции
Функции плотности вероятности
случайной величины
rand2 := rexp(N, X)
pl :=
hist(in.t,randl)
р2 :=
hist(in.t,rand2)
Рис. 2. Программная реализация сравнения функции плотности
распределения случайных чисел
График плотностей распределений указанных случайных чисел
приведен на рис. 3.
0.2
Рис. 3. График плотностей распределений случайных чисел
экспоненциального распределения с параметром λ=2
Моделирование работы сортировочной станции в данной работе
проводиться в программной среде MathCAD. Требуется реализовать
алгоритм работы сортировочной станции, приведенный в параграфе 3, в
синтаксисе программной среды.
Допустим, что уже были сформированы массивы значений интервалов
между входящими поездами (IntervalR) и времени роспуска каждого состава
каждого состава (TimeRospuskaR). В соответствии с алгоритмом требуется
сформировать массив TimeLineR значений моментов времени прибытия на
станцию каждого поезда. Это можно реализовать с помощью подпрограммы,
отдельной от основной программы, приведенной на рис. 4.
|
TimeLineR := |
Mo ^ Interval^ for k e 1.. (rows(IntervalR) - 1) M, ^ M, . + IntervalR, M |
Рис. 4. Подпрограмма для формирования массива значений моментов
времени прибытия на станцию каждого поезда
В рамках основной программы, необходимо привести моделируемую
систему к исходному состоянию. Для этого устанавливаются начальные
значения переменным, используемым в системе (рис. 5):
Notk = 0 – счетчик количества отказов в обслуживании, когда на
момент прибытия поезда на станцию все приемные пути заняты;
TimeOsvobPriemPut[k] = 0, для всех k = от 0 до (количество приемных
путей – 1) – массив, в котором индексом (k) является номер приемного пути,
а значением является момент освобождения k-го пути (номер минуты);
TimeOsvobGorki = 0 – момент освобождения горки для роспуска
следующего состава (номер минуты);
ochered = 0 – количество занятых приемных путей на текущую минуту
моделирования;
CurrentMinute = 0 – номер текущей минуты моделирования;
i = 0 – счетчик поездов прибывающих на станцию.
Notk ← 0
for k∈ 0.. (N_priem_put - 1)
TimeOsvobPriemPutk ← 0
TimeOsvobGorki ← 0
ochered ← 0
CurrentMinute ← 0
i←0
Рис. 5. Приведение системы к исходному состоянию
Программная реализация шагов №5 и №6 приведена на рис. 6. В этом
случае для проверки на окончание моделирование (шаг №5) и организации
итерационного процесса моделирования используется цикл с параметром
(оператор for), в котором последовательно изменяется номер текущей
минуты моделирования (CurrentMinute) на единицу после каждого
выполнения тела этого цикла.
for CurrentMinute ∈ 0.. Tmod
if CurrentMinute = TimeLineR
i
шаг№7
...
шаг№18
шаги№19 - 22
Рис. 6. Программная реализация шагов №5-6
Программная реализация проверки на наличие свободного приемного
пути в момент прибытия поезда на станцию приведена, на рис. 7. Переменная
free_priem_put является флагом наличия или отсутствия свободного
приемного пути. То есть после выполнения приведенного фрагмента
программы эта переменная примет значение 1 если имеется свободный путь,
иначе переменная примет значение 0. Переменная k_put_zanyatiya будет
содержать номер свободного пути, если free_priem_put=1.
k←0
k_put_zanyatiya ← 0
free_priem_put ← 0
while (free_priem_put = 0) ∧ (k < N_priem_put)
if TimeOsvobPriemPutk < TimeLineRi
free_priem_put ← 1
k_put_zanyatiya ← k
k←k+ 1
Рис. 7. Проверка наличия свободного приемного пути в момент прибытия
очередного поезда на станцию
Согласно алгоритму если приемные пути заняты, то необходимо
увеличить счетчик количества отказов на единицу (рис. 8). Для этого случая
фиксируются следующие переменные: момент времени перехода поезда на
сортировочную горку (T_per_na_gorku=0), время расформирования
(T_rasform=0) и момент времени выхода из сортировочной горки
(T_vyhoda_iz_gorki=TimeLineR[i]). Указанные переменные в дальнейшем
потребуются для формирования массива данных с результатами
моделирования, которые будут использоваться для статистической
обработки.
if free_priem_put = 1
T_per_na_gorku ^ TimeLineRi if TimeLineRi > TimeOsvobGorki
otherwise
T_per_na_gorku ^ TimeOsvobGorki
ochered ^ ochered + 1
TimeOsvobPriemPut . ^ T per na gorku
k_put_zanyatiya
T_rasform ^ TimeRospuskaRi
T_vyhoda_iz_gorki ^ T_per_na_gorku + T_rasform
TimeOsvobGorki ^ T_vyhoda_iz_gorki
otherwise
Notk e Notk + 1
T_per_na_gorku e 0
T rasform e 0
T_vyhoda_iz_gorki e TimeLineRi
Рис. 8. Программная реализация шагов №№7-16
Если же хотя бы один путь на момент прибытия поезда свободен, то
сначала проводится проверка на свободность сортировочной горки для
роспуска пришедшего состава в этот же момент времени (сопоставление
переменных TimeOsvobGorki и TimeLineR[i]). Если горка в рассматриваемый
момент свободна, то в переменную T_per_na_gorku записывается значение
равное моменту времени прибытия поезда на станцию (TimeLineR[i]). Иначе
эта переменная примет значение равное моменту времени освобождения
сортировочной горки (T_per_na_gorku=TimeOsvobGorki).
Затем фиксируются значения переменных: время расформирования
(T_rasform=TimeRospuskaR[i]) и момент времени выхода из сортировочной
горки (T_vyhoda_iz_gorki = T_per_na_gorku + T_rasform), который также
равен моменту освобождения горки (TimeOsvobGorki=T_vyhoda_iz_gorki).
После этого считается, что моделирование обслуживание
сортировочной станцией одного i-го поезда окончено, и дополняется
итоговой массив данных ключевыми временными параметрами этого поезда
(момент времени прибытия на станцию, момент времени перехода поезда на
горку, фактическое время расформирования состава на горке, момент выхода
поезда с сортировочной горки). Также увеличивается на единицу счетчик
номеров входящих поездов на станцию (рис. 9).
M.—i +1
1, 0
M. , — TimeLineR
1, 11
M. , — T_per_na_gorku
1, 2
M. . — T rasform
i, 3-
Mi 4 — T_vyhoda_iz_gorki
i — i + 1
Рис. 9. Программная реализация шагов №№17-18
В конце каждой итерации цикла минут моделирования необходимо
фиксировать количество поездов, ожидающих в эту минуту на приемных
путях своей очереди на расформирование с горки (шаги №№19-21). Сначала
проводится проверка на совпадение минуты освобождения приемных путей
каким-либо поездом (номер которого меньше i-го) с номером моделируемой
минуты. Причем, если такой совпадение имеет место, то значение не нулевой
очереди (ochered) уменьшается на единицу (рис. 10).
for j e 0.. (rows(M) - 1)
if ochered > 0
ochered — ochered - 1 if CurrentMinute = M. ,
j, 2
Ochered^ — ochered
CurrentMinute
Рис. 10. Программная реализация шагов №№19-21
На этом программная реализация алгоритма моделирования работы
сортировочной станции окончена. Полный листинг программы представлен в
приложении 1.
Выходные данные имитационного эксперимента представляющие
собой, как правило, массивы случайных чисел, описывают соответствующие
операционные характеристики модели. Как известно, исчерпывающей
характеристикой случайной величины Х является ее закон распределения
вероятностей F(x) – правило, позволяющее определять вероятность
попадания этой величины в любую заданную область ее значений.
Чтобы найти закон распределения экспериментальным путем, нужно
располагать достаточно обширным статистическим материалом: порядка
нескольких тысяч опытов (или наблюдений, экспериментов). На практике
редко удается собрать такое количество экспериментального материала, а
иногда это и не требуется – достаточно определить только оценки некоторых
основных характеристик (параметров) закона распределения, таких как
математическое ожидание, дисперсию. Поэтому необходимо уметь получать
статистические оценки при ограниченных опытных данных.
Задачи статистической обработки экспериментальных данных, как
правило, решаются в условиях, когда вид закона распределения
анализируемой случайной величины не известен. Однако бывают
исключения. Так, если вид закона распределения случайной величины
известен заранее, то задача статистической обработки упрощается и
заключается только в нахождении некоторых параметров закона
распределения, которые полностью определяют соответствующий закон
распределения.
Например, если априори известно, что закон распределения случайной
величины Х нормальный (гауссовский), то задача обработки данных сводится
к определению двух его параметров: математического ожидания (Mx), –
средне квадратического отклонения (σx).
В некоторых задачах имитационного моделирования вид закона
распределения несущественен, а требуется знать только его числовые
характеристики (параметры). Задачи такого рода называются задачами
параметрической оценки.
Следует отметить, что любое значение искомого параметра,
вычисленное на основе ограниченного числа экспериментальных данных,
всегда будет содержать элемент случайности, а значит и ошибку. Такое
приближенное, случайное значение будем называть оценкой параметра.
Например, оценкой для математического ожидания случайной величины X
может служить среднее арифметическое наблюденных значений в n
независимых опытах. При очень большом количестве опытов среднее
арифметическое будет с большой вероятностью весьма близко к истинному
значению математического ожидания. Если же число опытов n невелико, то
замена математического ожидания средним арифметическим приводит к
некоторой ошибке. То есть эта ошибка обратно пропорциональна числу
опытов. Аналогичная ситуация и с оценками других неизвестных
параметров.
Математическое ожидание mx случайной величины Х = { x 1, x2, ..., xn }
называется сумма произведений всех n возможных значений случайной
величины на вероятности pi этих значений:
n
mx = 2 x p. (23)
i=1
В случае гауссовского (нормального) распределения для истинного
математического ожидания mx существует его оценка mx, вычисляемая по
выборке объема n случайной величины Х = (x 1, x2, ., xn):
1
mx =-Ex . (24)
n i=1
Для истинной дисперсии Dx (характеристика рассеивания случайной
величины около ее математического ожидания) ее оценка Dx при известном
математическом ожидании mx вычисляется так:
~ 1
Dx = °x = ---тЕ(x - mx ) , (25)
n - 1 i=1
где ax является средне квадратическим отклонением.
В случае неизвестного математического ожидания дисперсию D~x
нужно вычислять по формуле:
n n2
D. = -17 Zх2 -1 |Хx) . (26)
n - 1 [ i=1 n v i=1 J
По приведенным формулам производится расчет требуемых
параметров модели (работы сортировочной станции).
Пусть в массиве данных ResultModel содержатся временные
характеристики входящих на станцию поездов за время моделирования.
Тогда вероятность отказа в роспуске поезду, при занятости всех приемных
путей:
Notk
Potkaza :=-------------------
rows(ResultModel)
Для определения среднего времени пребывания состава на путях парка
приема и среднего квадратичного отклонения примем Nobsl – число составов,
которые за время моделирования были расформированы с сортировочной
горки:
Nobsl := rows(ResultModel) - Notk
rows(ResultModel) -1
Mvremya_prebyvaniya :=
1
Nobsl
Z
k = 0
v
ResultModelk 2 - ResultModelk 1 if ResultModelk 2 > 0 ^
0 otherwise
J
avremya_prebyvaniya :=
|
1 |
rows(ResultModel)-1 r Z L k=0 L |
(ResultModelk 2 - ResultModelk 1) if ResultModelk 2 > 0 0 otherwise |
---(Nobsl-Mvremya_prebyvaniya) Nobsl |
|
Nobsl - 1 |
Среднее число составов, ожидающих очереди на расформирование и её
среднее квадратичное отклонение:
rows(TimelineOehered)-1
Mehislo sostavov :=-- \ TimelineOehered.
Tmod i
i = 0
|
CTehislo sostavov := |
Tmod - 1 |
rows(TimelineOehered) -1 Z (TimelineOeheredi)---(Tmod-Mehislo_sostavov) _ i = 0 mo _ |
Суммарный суточных штраф, который придется заплатить станции за
простой:
Mvremya prebyvaniya- S shtraf
Mshtraf :=-----------------------------
60
где Sshtraf – стоимость за час простоя одного поезда.
По результатам статистической обработки необходимо
сформулировать заключение о возможной необходимости увеличения или
уменьшения приемных путей, о возможной необходимости увеличения или
уменьшения интервала между поездами для увеличения эффективности
сортировочной станции.
1. Советов Б.А., Яковлев С.А. Моделирование систем. Учеб. для вузов —
М.: Высшая школа, 2007. — 343 с.
2. Дунин-Барковский И.В., Смирнов Н.В. Теория вероятностей и
математическая статистика в технике (общая часть). Гостехиздат, 1955.
3. Тюрин Ю.Н., Макаров А.А. Статистический анализ данных на
компьютере. М., ИНФРА., 1998.
Программа моделирования сортировочной станции
TimeLineR :=
Mq <— IntervalRg
for kt 1.. (rows(IntervalR) - 1)
M, <— M, . + IntervalR,
к к-1 к
M
ModelsortSt :=
Notk <- 0
for к € 0.. (N_priem_put - 1)
TimeOsvobPriemPut^ <— 0
TimeOsvobGorki <— 0
ochered <— 0
CurrentMinute <— 0
i^ 0
for CurrentMinute e 0.. Tmod
if CurrentMinute = TimeLineR.
k^O
k_put_zanyatiya <— 0
free_priem_put <— 0
while (free_priem_put = (J) л (к < N_priem_put)
if TimeOsvobPriemPut^ < TimeLineR.
free_priem_put <— 1
k_put_zanyatiya <— к
k+ 1
if free_priem_put = 1
T_per_na_gorku <— TimeLineR. if TimeLineR. > TimeOsvobGorki
otherwise
T_per_na_gorku <— TimeOsvobGorki
ochered <— ochered + 1
TimeOsvobPriemPut . .. <— T per na gorku
k_put_zanyatiya —1 — —°
T_rasform <- TimeRospuskaR.
T_vylioda_iz_gorki <— T_per_na_gorku + T_rasform
TimeOsvobGorki <— T_vyhoda_iz_gorki
otherwise
Noth <— Notk + 1
T_per_na_gorku <— 0
T_rasform <— 0
T_vyho da_iz_gorki +— TitneLineR^
M. n i + 1
M. d <— TimeLineR.
M- ^ <— T_per_na_gorku
И. ... <— T rasform
IvL 4 «— T_vyhoda_iz_gorki
i^ i+ 1
for j € 0.. (rows(M) - 1) if ochered > 0
ochered <— ochered - 1 if CurrentMinute = M—,
Ochered- . +— ochered
CurrentMmute
/ M
Ochered
Notk ^
ResultModel := ModelSortSt»
TimelineOchered := ModelSortSt^
Notk := ModelSortSt^
Провести имитационное моделирование работы железнодорожной
сортировочной станции, в которой производится расформирование составов
на единственной сортировочной горке. В парке прибытия сортировочной
станции имеется Nприемн. путей, на которых составы ожидают роспуска. При
этом станция должна выплачивать штраф в размере Sштраф за один час простоя
одного состава. Если эти пути заняты, то пришедший поезд вынужден
покинуть эту станцию.
Время моделирования Tмод принимается равным 24 часам.
Значения интервалов между приходящими поездами на станцию,
которые необходимо расформировать, а также время роспуска состава на
сортировочной горке являются случайными целыми числами, вид
распределения которых и параметры этих распределений выбираются из
табл. 1 и 2 согласной варианту.
Остальные исходные данные приведены в таблице 3.
По результатам имитационного моделирования необходимо провести
их статистическую обработку и определить:
- вероятность отказа в роспуске поезду, при занятости всех приемных
путей;
- среднее время пребывания состава на путях парка приема и среднее
квадратичное отклонение;
- среднее число составов, ожидающих очереди на расформирование и
среднее квадратичное отклонение;
- суммарный суточных штраф, который придется заплатить станции за
простой составов на приемных путях.
Моделирование случайных чисел с параметрами распределения,
заданными согласно варианту, проводится на основании генератора базовых
случайных чисел. Также должно быть приведено сравнение функций
29
плотности распределения случайных чисел, полученных в результате
указанного моделирования, с функцией плотности этого же распределения
случайных чисел, полученных встроенными функциями программной среды
моделирования.
Вид и параметры распределения значений интервалов между входящими на
станцию поездами
|
Вид распределения |
Параметры распределения |
|
экспоненциальное |
интенсивность: λ = 0,03 поезда/мин |
Вид и параметры распределения времени расформирования одного состава
на сортировочной горке
|
Вид распределения |
Параметры распределения |
|
равномерное |
минимальное значение: a = 15 мин максимальное значение: b = 20 мин |
|
Число путей в парке приема, |
Штраф за час простоя |
|
3 |
3500 |
Сортировочную станцию в рамках поставленной задачи можно
представить в качестве системы массового обслуживания с ожиданием. В
этом случае каналом обслуживания является сортировочная горка, а буфером
данных – пути парка приема (рис. 3.1).
Входной поток
поездов
Поток отказов в
обслуживании
Рисунок 3.1. Концептуальная модель работы сортировочной станции
Поток отказов в обслуживании возникает в том случае, если все
приемные пути заняты поездами (то есть все места в буфере заняты).
С учетом принятого допущения можно составить блок-схему
имитационной модели работы сортировочный станции (рис. 3.2).
Для упрощения написания программы имитационного моделирования
работы сортировочной станции составим на основании блок-схемы (рис. 3.2)
составим следующий пошаговый алгоритм этой имитационной модели.
Рис. 3.2. Блок-схема имитационной модели работы сортировочной станции
Шаг 1: ввести начальные параметры модели
Вид и параметры распределения случайных значений интервалов
между входящими поездами;
Вид и параметры распределения случайных значений времени
роспуска каждого состава;
Время моделирования: Tмод = 1440 мин.;
Количество путей в парке приема: Nприемн. путей = 3;
Штраф за один час простоя одного поезда на путях парка приема:
Sштрафа = 3500 руб.;
установка счетчиков:
Количество отказов Nотк = 0;
Моменты времени освобождения путей в парке приема:
Tосвоб.пути
[k] = 0, при k=1,2..., Nкан
Момент времени освобождения
Tосвоб. горки
= 0;
сортировочной горки:
Счетчик номера входящего поезда: i = 1;
Счетчик номера минуты моделирования: CurrentMinute = 0;
Счетчик количества поездов в очереди на горку: Ochered = 0.
Шаг 2: генерация значения интервалов между входящими поездами и
формирования массива с этими значениями IntervalR.
Шаг 3: Генерация времени роспуска каждого состава и формирования
массива данных этого значения TimeRospuskaR.
Шаг 4: Формирование массива с моментами времени прибытия каждого
поезда на станцию TimeLineR.
Шаг 5: Проверка не окончено ли моделирование:
если текущая минута моделирования больше времени моделирования
(CurrentMinute<Tмод),
то переход на шаг 23.
иначе увеличиваем счетчик номера минуты моделирования на единицу.
(CurrentMinute = CurrentMinute+1).
Шаг 6: Проверка, на прибытие поезда на станцию в текущую минуту
моделирования:
если значение текущей минуты моделирования не совпадает с
прибытием i-го поезда, CurrentMinute # TimeLineR [i],
то переход на шаг 19.
Шаг 7: Проверка наличия свободного пути в парке приема:
если (CurrentMinute < Tосвоб пути [k]) для всех к = 1,2,..., Nприемн. путей ,
то переход к шагу шаг 16,
иначе зафиксировать номер свободного пути к.
Шаг 8: Проверка свободности горки в минуту прибытия i-го поезда на
приемный путь:
если ( CurrentMinute < Tосвоб. горки),
то переход на шаг 12.
Шаг 9: Зафиксировать момент времени освобождения к-го пути и начала
роспуска i-го состава:
Tосвоб пути [ k] = CurrentMinute
Tнач.роспуска = CurrentMinute
Шаг 10: Определения времени роспуска i-го состава и фиксация момента
времени освобождения горки:
Tосвоб. горки CurrentMinute + TimeRospuskaR [ i ]
Шаг 11: Переход на шаг 17.
Шаг 12: Увеличение счетчика очереди на один поезд:
Ochered = Ochered + 1
Шаг 13: Определение времени ожидания в очереди i-го состава и фиксация
момента времени освобождения k-го приемного пути и начала роспуска i-го
состава:
Tочереди [i] Tосвоб. горки CurrentMinute,
Tосвоб пути
[ k.] = CurrentMinute + TЭчереди[i] = Tосвоб. горки
Tнач. роспуска =
Tосвоб пути
[k]
Шаг 14: Определения времени роспуска i-го состава и фиксация момента
времени освобождения горки:
Tосвоб. горки
Tосвоб. горки
+ TimeRospuskaR [ i ]
Шаг 15: Переход на шаг 17.
Шаг 16: Увеличение счетчика отказов в роспуске на единицу:
Nотк
= Nотк + 1
Шаг 17: Фиксация для i-го поезда момента времени прихода на станцию,
момента времени начала роспуска состава с горки, времени роспуска состава
и момента окончания роспуска состава с горки:
Tвх. на ст.[i] = CurrentMinute
Tнач. роспуска[i] Tнач. роспуска
Tроспуска[i] = TimeRospuskaR [ i ]
Tоконч. роспуска
[i]
Tосвоб. горки
Шаг 18: Увеличение счетчика номера входящего поезда на единицу:
i = i + 1
Шаг 19: Проверка на соответствие текущей минуты моделирования моменту
времени освобождения приемного пути при наличии в очереди на
расформирование хотя бы одного поезда:
если (CurrentMinute = Tосвоб путей [k], при всех k = 1, 2, .„, Nприемн. путей) И
( Ochered # 0),
то переход к следующему шагу 20,
иначе переход к шагу 21.
Шаг 20: Уменьшение счетчика очереди на один поезд:
Ochered = Ochered - 1
Шаг 21: Фиксация количества проездов в очереди в текущую минуту
моделирования:
Ochered [ CurrentMinute ] = Ochered
Шаг 22: Увеличение текущей минуты моделирования на единицу и переход к
шагу 5:
CurrentMinute = CurrentMinute + 1
Шаг 23: Вывод результатов моделирования.
4 Моделирование случайных непрерывных чисел с заданными
параметрами распределения
Экспоненциальная случайная величина моделируется по формуле:
y = —— In R
A
Примем – число точек, число интервалов для
построения плотности распределения случайной величины.
Интервалы между входящими на станцию поездами
Экспоненциальное X := 0.03
N := 3000 kk := 0.. N
ЛААА
Nm •= 30 - число интералов пип = 0 Nm
1 ЛЛЛЛЛЛ
.. 300
Массив интервалов: h =--= 10 int -hmm
Nm
Генерация случайных чисел через случайные базовые числа:
randL. :=--ln(md(l))
Генерация случайных чисел через встроенные функции:
rand 11:= rexp (N, X)
Функции плотности вероятности случайной величины:
hist(int.randl)
hN
hist(int.randll)
hN
График сравнения функций плотности распределения случайных чисел,
полученных в результате указанного моделирования, с функцией плотности
этого же распределения случайных чисел, полученных встроенными
функциями программной среды моделирования:
Равномерная случайная величина моделируется по формуле:
y = a + R (b - a )
Примем – число точек, число интервалов для построения
плотности распределения случайной величины.
Время расформирования одного состава на сортировочной горке
Равномерное а := 15 b := 20 минут
Nm - 50 - число интералов mm - 0 Nm
VAW, 1
х b — а
Массив интервалов: h =----= 01 int = а + h mm
лл* Nm mm
Генерация случайных чисел через случайные базовые числа:
fand2y_ := а + md(l)(b - а)
Генерация случайных чисел через встроенные функции:
rand22 := runif(N,a,b)
Функции плотности вероятности случайной величины:
hist( int, rand?) hist(int,rand22)
График сравнения функций плотности распределения случайных чисел,
полученных в результате указанного моделирования, с функцией плотности
37
этого же распределения случайных чисел, полученных встроенными
функциями программной среды моделирования:
Поскольку дальнейший алгоритм использует целочисленный счётчик
времени прибытия поездов на станцию, то необходимо округлить
сформированные массивы случайных чисел.
IntervalR := ceil(randl)
TimeRospuskaR := ceil(rand2)
Моделирование работы сортировочной станции в данной работе
проводиться в программной среде MathCAD. Требуется реализовать
алгоритм работы сортировочной станции, приведенный в параграфе 3, в
синтаксисе программной среды.
Допустим, что уже были сформированы массивы значений интервалов
между входящими поездами (IntervalR) и времени роспуска каждого состава
каждого состава (TimeRospuskaR). В соответствии с алгоритмом требуется
сформировать массив TimeLineR значений моментов времени прибытия на
станцию каждого поезда. Это можно реализовать с помощью подпрограммы,
отдельной от основной программы, приведенной на рис. 5.1.
|
TimeLineR := |
Mo ^ Interval^ for k e 1.. (rows(IntervalR) - 1) M, ^ M, . + IntervalR, M |
Рис. 5.1. Подпрограмма для формирования массива значений моментов
времени прибытия на станцию каждого поезда
В рамках основной программы, необходимо привести моделируемую
систему к исходному состоянию. Для этого устанавливаются начальные
значения переменным, используемым в системе (рис. 5.2):
Notk = 0 – счетчик количества отказов в обслуживании, когда на
момент прибытия поезда на станцию все приемные пути заняты;
TimeOsvobPriemPut[k] = 0, для всех k = от 0 до (количество приемных
путей – 1) – массив, в котором индексом (k) является номер приемного пути,
а значением является момент освобождения k-го пути (номер минуты);
TimeOsvobGorki = 0 – момент освобождения горки для роспуска
следующего состава (номер минуты);
ochered = 0 – количество занятых приемных путей на текущую минуту
моделирования;
CurrentMinute = 0 – номер текущей минуты моделирования;
i = 0 – счетчик поездов прибывающих на станцию.
Notk ← 0
for k∈ 0.. (N_priem_put - 1)
TimeOsvobPriemPutk ← 0
TimeOsvobGorki ← 0
ochered ← 0
CurrentMinute ← 0
i←0
Рис. 5.2. Приведение системы к исходному состоянию
Программная реализация шагов №5 и №6 приведена на рис. 5.3. В этом
случае для проверки на окончание моделирование (шаг №5) и организации
итерационного процесса моделирования используется цикл с параметром
(оператор for), в котором последовательно изменяется номер текущей
минуты моделирования (CurrentMinute) на единицу после каждого
выполнения тела этого цикла.
for CurrentMinute ∈ 0.. Tmod
if CurrentMinute = TimeLineR
i
шаг№7
...
шаг№18
шаги№19 - 22
Рис. 5.3. Программная реализация шагов №5-6
Программная реализация проверки на наличие свободного приемного
пути в момент прибытия поезда на станцию приведена, на рис. 5.4.
Переменная free_priem_put является флагом наличия или отсутствия
свободного приемного пути. То есть после выполнения приведенного
фрагмента программы эта переменная примет значение 1 если имеется
свободный путь, иначе переменная примет значение 0. Переменная
k_put_zanyatiya будет содержать номер свободного пути, если
free_priem_put=1.
k e 0
k_put_zanyatiya e 0
free_priem_put e 0
while (free_priem_put = 0) л (k < N_priem_put)
if TimeOsvobPriemPulk < TimeLineRi
free_priem_put e 1
k_put_zanyatiya e k
k e k + 1
Рис. 5.4. Проверка наличия свободного приемного пути в момент прибытия
очередного поезда на станцию
Согласно алгоритму если приемные пути заняты, то необходимо
увеличить счетчик количества отказов на единицу (рис. 5.5). Для этого
случая фиксируются следующие переменные: момент времени перехода
поезда на сортировочную горку (T_per_na_gorku=0), время расформирования
(T_rasform=0) и момент времени выхода из сортировочной горки
(T_vyhoda_iz_gorki=TimeLineR[i]). Указанные переменные в дальнейшем
потребуются для формирования массива данных с результатами
моделирования, которые будут использоваться для статистической
обработки.
if free_priem_put = 1
T_per_na_gorku e TimeLineRi if TimeLineRi > TimeOsvobGorki
otherwise
T_per_na_gorku e TimeOsvobGorki
ochered e ochered + 1
TimeOsvobPriemPut , e T per na gorku
k_put_zanyatiya
T_rasform e TimeRospuskaRi
T_vyh°da_iz_gorki e T_per_na_gorku + T_rasform
TimeOsvobGorki e T_vyhoda_iz_gorki
otherwise
Notk e Notk + 1
T_per_na_gorku e 0
T rasform e 0
T_vyhoda_iz_gorki e TimeLineRi
Рис. 5.5. Программная реализация шагов №№7-16
Если же хотя бы один путь на момент прибытия поезда свободен, то
сначала проводится проверка на свободность сортировочной горки для
роспуска пришедшего состава в этот же момент времени (сопоставление
переменных TimeOsvobGorki и TimeLineR[i]). Если горка в рассматриваемый
момент свободна, то в переменную T_per_na_gorku записывается значение
равное моменту времени прибытия поезда на станцию (TimeLineR[i]). Иначе
эта переменная примет значение равное моменту времени освобождения
сортировочной горки (T_per_na_gorku=TimeOsvobGorki).
Затем фиксируются значения переменных: время расформирования
(T_rasform=TimeRospuskaR[i]) и момент времени выхода из сортировочной
горки (T_vyhoda_iz_gorki = T_per_na_gorku + T_rasform), который также
равен моменту освобождения горки (TimeOsvobGorki=T_vyhoda_iz_gorki).
После этого считается, что моделирование обслуживание
сортировочной станцией одного i-го поезда окончено, и дополняется
итоговой массив данных ключевыми временными параметрами этого поезда
(момент времени прибытия на станцию, момент времени перехода поезда на
горку, фактическое время расформирования состава на горке, момент выхода
поезда с сортировочной горки). Также увеличивается на единицу счетчик
номеров входящих поездов на станцию (рис. 5.6).
M.—i +1
1, 0
M. , — TimeLineR
1, 11
M. , — T_per_na_gorku
1, 2
M. . — T rasform
i, 3-
Mi 4 — T_vyhoda_iz_gorki
i — i + 1
Рис. 5.6. Программная реализация шагов №№17-18
В конце каждой итерации цикла минут моделирования необходимо
фиксировать количество поездов, ожидающих в эту минуту на приемных
путях своей очереди на расформирование с горки (шаги №№19-21). Сначала
проводится проверка на совпадение минуты освобождения приемных путей
каким-либо поездом (номер которого меньше i-го) с номером моделируемой
минуты. Причем, если такой совпадение имеет место, то значение не нулевой
очереди (ochered) уменьшается на единицу (рис. 5.7).
for j ∈ 0.. (rows(M) - 1)
if ochered > 0
ochered ← ochered - 1 if CurrentMinute = M
j, 2
Ochered
CurrentMinute
← ochered
Рис. 5.7. Программная реализация шагов №№19-21
На этом программная реализация алгоритма моделирования работы
сортировочной станции окончена.
Выходные данные имитационного эксперимента представляющие
собой, как правило, массивы случайных чисел, описывают соответствующие
операционные характеристики модели. Как известно, исчерпывающей
характеристикой случайной величины Х является ее закон распределения
вероятностей F(x) - правило, позволяющее определять вероятность
попадания этой величины в любую заданную область ее значений.
Чтобы найти закон распределения экспериментальным путем, нужно
располагать достаточно обширным статистическим материалом: порядка
нескольких тысяч опытов (или наблюдений, экспериментов). На практике
редко удается собрать такое количество экспериментального материала, а
иногда это и не требуется - достаточно определить только оценки некоторых
основных характеристик (параметров) закона распределения, таких как
математическое ожидание, дисперсию. Поэтому необходимо уметь получать
статистические оценки при ограниченных опытных данных.
Задачи статистической обработки экспериментальных данных, как
правило, решаются в условиях, когда вид закона распределения
анализируемой случайной величины не известен. Однако бывают
исключения. Так, если вид закона распределения случайной величины
известен заранее, то задача статистической обработки упрощается и
заключается только в нахождении некоторых параметров закона
распределения, которые полностью определяют соответствующий закон
распределения.
Например, если априори известно, что закон распределения случайной
величины Х нормальный (гауссовский), то задача обработки данных сводится
к определению двух его параметров: математического ожидания (Мх), -
средне квадратического отклонения (ox).
В некоторых задачах имитационного моделирования вид закона
распределения несущественен, а требуется знать только его числовые
характеристики (параметры). Задачи такого рода называются задачами
параметрической оценки.
Следует отметить, что любое значение искомого параметра,
вычисленное на основе ограниченного числа экспериментальных данных,
всегда будет содержать элемент случайности, а значит и ошибку. Такое
приближенное, случайное значение будем называть оценкой параметра.
Например, оценкой для математического ожидания случайной величины X
может служить среднее арифметическое наблюденных значений в n
независимых опытах. При очень большом количестве опытов среднее
арифметическое будет с большой вероятностью весьма близко к истинному
значению математического ожидания. Если же число опытов n невелико, то
замена математического ожидания средним арифметическим приводит к
некоторой ошибке. То есть эта ошибка обратно пропорциональна числу
опытов. Аналогичная ситуация и с оценками других неизвестных
параметров.
Математическое ожидание mx случайной величины Х = { x 1, x2, ..., xn }
называется сумма произведений всех n возможных значений случайной
величины на вероятности pi этих значений:
mx =lLxpi. (6.1)
i=1
В случае гауссовского (нормального) распределения для истинного
математического ожидания mx существует его оценка mx, вычисляемая по
выборке объема n случайной величины Х = (x 1, x2, ., xn):
1
m =-E x. (6.2)
n ,=1
Для истинной дисперсии Dx (характеристика рассеивания случайной
величины около ее математического ожидания) ее оценка 2?x при известном
математическом ожидании mx вычисляется так:
~ 1
Dx = °x = ---Ё( xi- mx ) , (6.3)
n - 1 i=1
где ax является средне квадратическим отклонением.
В случае неизвестного математического ожидания дисперсию D~x
нужно вычислять по формуле:
n n2
о=—4sx -14xii . (6.4)
n -1 [ i=1 n V i=1 7
По приведенным формулам производится расчет требуемых
параметров модели (работы сортировочной станции).
Пусть в массиве данных ResultModel содержатся временные
характеристики входящих на станцию поездов за время моделирования.
Тогда вероятность отказа в роспуске поезду, при занятости всех приемных
путей:
Notk
Potkaza :=-------------------
rows(ResultModel)
Для определения среднего времени пребывания состава на путях парка
приема и среднего квадратичного отклонения примем Nobsl – число составов,
которые за время моделирования были расформированы с сортировочной
горки:
Nobsl := rows(ResultModel) - Notk
rows(ResultModel) -1
Mvremya_prebyvaniya :=
1
Nobsl
z
k = 0
V
ResultModelk 2 - ResultModelk 1 if ResultModelk 2 > 0 ^
0 otherwise
7
CTvremya_prebyvaniya :=
|
1 |
rows(ResultModel)-1 r Z L k=0 L |
(ResultModelk 2 - ResultModelk 1) if ResultModelk 2 > 0 0 otherwise |
---(Nobsl-Mvremya_prebyvaniya) Nobsl |
|
Nobsl - 1 |
Среднее число составов, ожидающих очереди на расформирование и её
среднее квадратичное отклонение:
rows(TimelineOehered)-1
Mehislo sostavov :=-- \ TimelineOehered.
Tmod i
i = 0
|
CTehislo sostavov := |
Tmod - 1 |
rows(TimelineOehered) -1 Z (TimelineOeheredi)---(Tmod-Mehislo_sostavov) _ i = 0 mo _ |
Суммарный суточных штраф, который придется заплатить станции за
простой:
Mvremya prebyvaniya- S shtraf
Mshtraf :=-----------------------------
60
где Sshtraf – стоимость за час простоя одного поезда.
При одной из реализаций случайных чисел получены следующие результаты:
Число отказов:
Notk := ModelSortSt,, = 1
Вероятность отказа:
Notk
Potkaza := --------------------= 0.03
rows (ResultModel)
Число обслуженных составов:
Среднее время пребывания на путях парка приёма:
M\Temya_prebyvaniya = 10.906 минут
Среднее квадратическое отклонение времени пребывания на путях парка приёма
Gvremya_prebyvaniya = 14.072 минут
Среднее число составов, ожидающих очереди:
Mchislo_sostavov = 0.242
Среднее квадратическое отклонение числа составов, ожидающих очереди:
crMchislo_sostavov = 0.5 S9
Суммарный суточный штраф:
Mvremvaprebwaniva-S shtraf
Mshtraf :=---------------------=-----
60
Mshtraf = 636.19S
Таким образом за сутки будут обслужены 32 из 33 прибывших
составов, среднее время ожидания (пребывания состава на путях парка
приема) составит примерно 10.9 минут.
Поскольку вероятность отказа небольшая (около 3%), то рекомендация
по увеличению приёмных путей будет зависеть от стоимости её реализации.
В любом случае рекомендуется немного уменьшить среднее время
расформирования одного состава на сортировочной горке.
Комментарии (0)