Классификация моделей транспортных потоков. Моделирования структуры проезжих частей и допустимых траекторий движения на перекрестке. Общие сведения о программной платформе. Структура классов, стадии и этапы разработки. Алгоритм следования за лидером.
Аннотация к работе
Техническое задание на разработку пакета программ Данный курсовой проект представляет собой приложение, позволяющее моделировать транспортные потоки на сложных перекрестках. Тип модели - микромодель потока на основе алгоритма «следования за лидером». 1.1 Назначение и область применения Проект создан для расчета длин очередей машин на подъездах к пересечениям проезжих частей на перекрестках. 1.2 Требования к программе 1.2.1 Требования к функциональным характеристикам Программа должна обеспечивать: · возможность построения графа сложного перекрестка · моделирование поведения отдельных участников потока (машин) с учетом принятых правил проезда перекрестков · динамическое изменение параметров инфраструктуры перекрестка (приоритеты проезда пересечений, состояние, период переключения и фазы светофоров) · отслеживание состояния системы в реальном времени · графическое отображение текущей информации о системе 1.2.2 Требования к надежности 1.2.2.1 Требования к обеспечению надежного функционирования программы Надежное функционирование программы должно быть обеспечено выполнением Заказчиком совокупности организационно-технических мероприятий, перечень которых приведен ниже: а) организацией бесперебойного питания технических средств; б) использованием лицензионного программного обеспечения; в) регулярным выполнением требований ГОСТ 51188-98. ИССЛЕДОВАТЕЛЬСКАЯ ЧАСТЬ 2.1 Общие сведения о программной платформе и среде разработки Среда разработки С Builder позволяет быстро разработать удобный для пользователя графический интерфейс на основе библиотеки vcl.h и предоставляет мощные механизмы отладки сложных многопоточных приложений. КОНСТРУКТОРСКАЯ ЧАСТЬ 3.1 Описание логической структуры программы Общая структура модели: На каждом шаге мы имеем следующие данные о системе: · Текущее системное время t · Напрвленный граф разрешенных траекторий движения по перекрестку o Множество вершин § Состояние вершины (движение или разрешено светофором или запрещено) § Приоритет вершины (знак «главная дорога» или знак «уступи дорогу») o Множество ребер § Список указателей на машины, находящиеся на данном ребре (загруженность) § Вес ребра (вес определяется исходя из длины ребра и его загруженности). Класс vertex - описывает отдельный узел графа. Методы · vertex::vertex(); - конструктор вершины · int vertex::time_to_change(); - функция, возвращает время, оставшееся до изменения состояния светофора Структура edge - ребро графа. · TList *Verts; - динамический список вершин графа · TList *Edges; - динамический список ребер графа · TList *Cars; - динамический список машин, находящихся на графе Методы · graph::graph(); - конструктор графа · void graph::add_v(vertex *V); - добавить вершину V в граф · void graph::connect_v(vertex *V1, vertex *V2, bool l); - связать две вершины V1 и V2 ребром, если флаг l - истина - ребро является прямой, иначе - ребро является дугой. Класс car - класс описывает отдельную машину и реализует ее поведение.