Скачиваний:
74
Добавлен:
02.05.2014
Размер:
800.26 Кб
Скачать

5 Обощенная схема моделирующего алгоритма

Обобщенная схема моделирующего алгоритма проведения одной имитации приведена на рисунке 3. При разработке схемы моделирующего алгоритма использован «принцип t». Шаг моделированияt равен 1 секунде.

Рисунок 3 – Обобщенная схема моделирующего алгоритма проведения одной имитации

Обобщенная схема проведения k имитаций приведена на рисунке 4.

Рисунок 4 – Обобщенная схема проведения k имитаций

Детальная схема моделирующего алгоритма проведения одной имитации приведена в приложении 1. В приложении 1 также приведена детальная схема моделирующего алгоритма проведения k имитаций.

6 Особенности программирования

6.1 Среда разработка

Разработанный моделирующий алгоритм можно реализовать с помощью разных языков программирования, например, C++, Pascal, Delphi, MathCad.

Средой разработки для решения поставленной задачи был выбран пакет MathCad 2001 Pro от компании MathSoft Inc. Выбор данного пакета основан на большом количестве его достоинств, среди которых можно отметить следующие:

  • все вычисления ведутся в традиционных математических нотациях;

  • имеет большое количество встроенных функций;

  • все расчеты проводятся в режиме реального времени и не требуют от пользователя никаких дополнительных команд.

Реализацией разработанного моделирующего алгоритма проведения одной имитации является написанная в среде MathCad функция One_Imitation, которая моделирует процесс регулирования движения машин на перекрестке в течение получаса. Результатом вызова данной функции являются:

  • количество машин, проследовавших в направлении улицы A;

  • количество машин, проследовавших в направлении улицы B;

  • количество машин, проследовавших в направлении улицы C;

  • количество машин, проследовавших в направлении улицы D;

  • средняя длина очереди машин, движущихся по направлению A-D;

  • средняя длина очереди машин, движущихся по направлению A-C;

  • средняя длина очереди машин, движущихся по направлению A-B;

  • средняя длина очереди машин, движущихся по направлению C-A;

  • средняя длина очереди машин, движущихся по направлению C-B;

  • максимальная длина очереди машин, движущихся по направлению A-D;

  • максимальная длина очереди машин, движущихся по направлению A-C;

  • максимальная длина очереди машин, движущихся по направлению A-B;

  • максимальная длина очереди машин, движущихся по направлению C-A;

  • максимальная длина очереди машин, движущихся по направлению C-B.

Реализацией разработанного моделирующего алгоритма проведения k имитаций является написанная в среде MathCad функция IMITATION, которая моделирует процесс регулирования движения машин на перекрестке в течение получаса k раз. Результатом вызова данной функции являются осредненные значения вышеуказанных величин.

Листинг функций One_ImitationиIMITATIONприведен в приложении 2.

6.2 Переменные имитационной модели

При написании функций One_ImitationиIMITATIONбыли приняты следующие переменные:

time_A

момент времени появления машины со стороны улицы A;

time_C

момент времени появления машины со стороны улицы C;

time_off

момент переключения светофора на сигнал, запрещающий движение;

probability

переменная, служащая для вычисления вероятности движения автомобиля в определенном направлении;

buf_A_D

количество машин, движущихся со стороны улицы A в направлении улицы D;

buf_A_C

количество машин, движущихся со стороны улицы A в направлении улицы C;

buf_A_B

количество машин, движущихся со стороны улицы A в направлении улицы B;

buf_C_A

количество машин, движущихся со стороны улицы C в направлении улицы A;

buf_C_B

количество машин, движущихся со стороны улицы C в направлении улицы B;

car_A_D

состояние полосы движения A-D:

- 1 – полоса свободна,

0 – движение по полосе завершается,

1 – движение по полосе будет завершено через 1 секунду;

car_A_C

состояние полосы движения A-C:

- 1 – полоса свободна,

0 – движение по полосе завершается,

1 – движение по полосе будет завершено через 1 секунду;

car_A_B

состояние полосы движения A-B:

- 1 – полоса свободна,

0 – движение по полосе завершается,

1 – движение по полосе будет завершено через 1 секунду;

car_C_A

состояние полосы движения C-A:

- 1 – полоса свободна,

0 – движение по полосе завершается,

1 – движение по полосе будет завершено через 1 секунду;

car_C_B

состояние полосы движения C-B:

- 1 – полоса свободна,

0 – движение по полосе завершается,

1 – движение по полосе будет завершено через 1 секунду;

time_on

момент переключения светофора на сигнал, разрешающий движение;

count_A

количество машин, преодолевших перекресток в сторону улицы A;

count_B

количество машин, преодолевших перекресток в сторону улицы B;

count_C

количество машин, преодолевших перекресток в сторону улицы C;

count_D

количество машин, преодолевших перекресток в сторону улицы D;

sred_A_D

средняя длина очереди машин, движущихся по направлению A-D;

sred_A_C

средняя длина очереди машин, движущихся по направлению A-C;

sred_A_B

средняя длина очереди машин, движущихся по направлению A-B;

sred_C_A

средняя длина очереди машин, движущихся по направлению C-A;

sred_C_B

средняя длина очереди машин, движущихся по направлению C-B;

count_switch

количество переключений светофора с запрещающего на разрешающий сигнал;

max_A_D

максимальная длина очереди машин, движущихся по направлению A-D;

max_A_C

максимальная длина очереди машин, движущихся по направлению A-C;

max_A_B

максимальная длина очереди машин, движущихся по направлению A-B;

max_C_A

максимальная длина очереди машин, движущихся по направлению C-A;

max_C_B

максимальная длина очереди машин, движущихся по направлению C-B;

time

текущее время моделирования;

k

количество проводимых имитаций;

COUNT_A

количество машин, проследовавших в сторону улицы A, полученное в результате проведения k имитаций;

COUNT_B

количество машин, проследовавших в сторону улицы B, полученное в результате проведения k имитаций;

COUNT_C

количество машин, проследовавших в сторону улицы C, полученное в результате проведения k имитаций;

COUNT_D

количество машин, проследовавших в сторону улицы D, полученное в результате проведения k имитаций;

SRED_A_D

средняя длина очереди машин, движущихся по направлению A-D, полученная в результате проведения k имитаций;

SRED_A_C

средняя длина очереди машин, движущихся по направлению A-C, полученная в результате проведения k имитаций;

SRED_A_B

средняя длина очереди машин, движущихся по направлению A-B, полученная в результате проведения k имитаций;

SRED_C_A

средняя длина очереди машин, движущихся по направлению C-A, полученная в результате проведения k имитаций;

SRED_C_B

средняя длина очереди машин, движущихся по направлению C-B, полученная в результате проведения k имитаций;

MAX_A_D

максимальная длина очереди машин, движущихся по направлению A-D, полученная в результате проведения k имитаций;

MAX_A_C

максимальная длина очереди машин, движущихся по направлению A-C, полученная в результате проведения k имитаций;

MAX_A_B

максимальная длина очереди машин, движущихся по направлению A-B, полученная в результате проведения k имитаций;

MAX_C_A

максимальная длина очереди машин, движущихся по направлению C-A, полученная в результате проведения k имитаций;

MAX_C_B

максимальная длина очереди машин, движущихся по направлению C-B, полученная в результате проведения k имитаций;

i

переменная, служащая для организации цикла;

Res_Of_One_Imitation

переменная, служащая для сохранения результатов моделирования процесса регулирования движения машин на перекрестке в течение получаса.

Входными параметрами для функции One_Imitationявляются переменные time_A, time_C, time_off, а выходными – переменные count_A, count_B, count_C, count_D, max_A_D, max_A_C, max_A_B, max_C_A, max_C_B, а также значения средних длин очередей для каждого направления. ФункцияIMITATIONне имеет в явном виде входных параметров, однако, количество проводимых имитаций k задается в теле функции. Выходными параметрами функции IMITATION являются переменные COUNT_A, COUNT_B, COUNT_C, COUNT_D, SRED_A_D, SRED_A_C, SRED_A_B, SRED_C_A, SRED_C_B, MAX_A_D, MAX_A_C, MAX_A_B, MAX_C_A, MAX_C_B.

Соседние файлы в папке Курсовая работа. Вариант 42 [Ишимбай]