Моя диссертация
3-мерная визуализация распределённых систем моделирования
1. Введение
2. История развития моделирующих средств
3. Описание алгоритмов работы и создания модели
4. Заключение
5. Список используемых источников
1. Данная работа есть продолжением работы над созданием автоматизированной системы управления объектами, которую ведет Донецкий Национальный Технический Университет вместе с Штутгартским университетом. Целью этого большого проекта есть создание автономной системы управления судами в морском и годовом судоходстве. В этой работе будут осмотренные аспекты моделирования окружающей среды на компьютере с помощью одного из языков программирование высокого уровня.
2. Речь идет о создании навигационной системы управления кораблем, что бы достаточно точно отображала ту среду в котором сейчас находиться судно. Проблемы навигации стояли перед человечеством достаточно давно. Начались составляться навигационные карты местностей, которые относительно могли обеспечить требования к оперативному определению положения того или иного корабля. Но это позднее стало не достаточно для того, чтобы безопасно и надежно руководить кораблем.
В 70-х годах появляются первые навигационные приборы. С современных систем навигации можно отметить разработки Института системной динамики и автоматического управления (ISR - Institut fur Systemdynamik und Regelungstechnik) Штутгартского университета (Германия) за инициативой и под научным руководством профессора Е.-Д. Гиллеса. Под его уходом было разработано и экспериментально исследован, в период 1970-1996 гг. три поколения бортовых систем автоматизированного управления речными судами. В данное время система установлена и успешно работает на судах что ходят по речке Рейн.
Сейчас кафедра Электронных вычислительных машин под руководством профессора В.А.Святного и доцента Аноприенко А.Я. ведут разработку интегрированной навигационной системы для речного судоходства Украины, в частности для судоходства на Днепре.
3. Одним из этапов создания этой системы есть построение 3-мерной модели местности реки по ее электронному описанию с помощью языка программирования высокого уровня. Перед созданием системы было рассмотрено несколько вариантов направлений построения ее с помощью различных языков программирование. Выбор был остановленный на достаточно языке JAVA, что в данное время очень быстро развивается, и имеет ряд особых свойств, что есть основополагающими при создании этой системы.
Язык программирования JAVA есть достаточно молодой, но уже сумела завоевать популярность в многих людей. Она, конечно же имеет как и положительные рисы, так и отрицательны. КР отрицательных можно отнести очень медленную скорость выполнения команд, эта скорость по сравнению, например, с языком C++ низшая в 100 раз. Что конечно накладывает определенные ограничения при создании программы на этом языке и необходимость предыдущих расчетов алгоритмов. Эта проблема есть достаточно существенной при создании системы визуализации, так при режиме выводу местности кадрами мы имеем ограничение по часу на создание каждого кадра. То есть, зрение человека не воспринимает мигания изображения, если последнее выводится с частотой 24-25 кадров на секунду. Отсюда можно дать расчет продолжительность времени на подготовку и вывод кадра: 1/25 = 0.04 секунды или 40 мс. За это время алгоритмы должны выполнить все расчеты, которые необходимые при правильном выводе изображения на экран:
Кроме того, во время подготовки каждого кадра выполняется перерасчет положения нашему объекту, то есть судна, по его текущей скорости и направлении движения. При разработке предыдущих работ на тему автоматизированного управления судами (авторы Потапенко и Кривошеев) было рассмотрены математические модели управления кораблем, которые точно описывали динамику корабля и учитывали почти все характеристики движения. В данной работе динамика корабля будет рассчитываться в ограниченных рамках благодаря отсутствию времени на текущие расчеты для подготовки кадра и достаточно медленной работы интерпретатора JAVA - языка.
Кроме того, необходимо отметить, что язык JAVA есть платформонезависимой. То есть разработанная система может функционировать под руководством различных операционных систем: Widows, Unix, Macintosh. Это дает возможность использовать эту систему на различных аппаратных платформах. JAVA также тесно связанная с сетевыми технологиями Internet что есть очень важным при создании системы. Данная система функционирует в 2-ох режимах: как аплет (аплеты по сути есть мене - программами, которые выполняются в среде JAVA совместимого браузера) и как отдельная программа, которая можно запустить на компьютере, на котором установленная JVM - JAVA Virtual Machine. Это предоставляет определенные преимущества при ее распространенные. То есть созданную систему можно разместить на любом сервере в Internet и запускать с рабочего места с помощью Web - браузера, что поддерживает Java - аплети.
Все перечисленные положительные особенности языка JAVA однозначно определили среду разработки данной системы.
Опишем алгоритм работы данной системы. При запуске системы выполняется создание окна визуализации, в котором будет выводиться моделирующая местность и окна управления, в котором будет ютиться кнопки управления кораблем и двумерная карта местности (реки, залива и тому подобное).
Необходимым элементом системы есть электронная карта, описание которой ютится в файле на диске компьютера и имеет определенный формат. При создании этой работы было взят формат данных, который был предложенный институтом системной динамики и автоматического управления (ISR - Institut fur Systemdynamik und Regelungstechnik) Штутгартского университета (Германия). Этот файл содержит информацию о всех объектах реки или иной водной местности: берега, острова, бухты, фарватеры, мосты и направления рекомендованного движения судна в прямом и обратном направлениях. Этот файл может иметь различные объемы данных в зависимости от загруженного в него объема картографических данных. Исходя с этого карта может быть загруженная в оперативную память частично или полностью, это зависит от имеющего свободного объема оперативной памяти. Так как доступ к оперативной памяти по часу меньший от времени доступа к дисковому накопителю, то оптимальным есть полное считывание базы данных файлу в оперативную память.
При визуализации вывод данных проводится в 2-ох окнах: в 2-х мерном и 3-х мерном виде в различных окнах. При создании анімації движения корабля в пространстве необходимо перерисовывать состав окна каждые 40 мс. Для обновления изображения в окне используется функция repaint(), что есть достаточно медленной функцию, то есть существует необходимость создания функции пользователя, которая бы делала это значительно побыстрее. В данной работе было сделано да, что при обновлении окна перерисовывать лишь отдельные элементы, которые испытали изменения во время последнего кадра или по нажатию управляющей кнопки. Для этого используется алгоритм параллельного потока, что при необходимости вызывает нужную процедуру. Это конечно есть большей погрузкой на процессора, так как ему необходимо параллельно обрабатывать сигналы от этого потока а также от основной программы или аплету, но по применению целиком он опережает repaint() по часу за счет выборочного обновления элементов окна.
При разработке программы также предусматривается создание модуля использования сетевого моделирования, при котором некоторые функции обработки данных будут возложенные на иную машину в сети или в Internet. Это может касаться перерасчета текущих координат судна, расчет матриц, анализ объектов, которые попадают в границу зрения и иных функций, которые выполняются за одинаковыми алгоритмами и отличаются лишь входными и, конечно, исходными данными, то есть на компьютере визуализации при отрисовке i-го кадра отсылаются данные на иной компьютер данные о i+1 кадре и дальше выполняется ряд действий, после чего выполняется запрос на получение данных от расчетного компьютера о i+1 кадре и загрузка нового запроса на следующий кадр. При наличии достаточно быстрого канала передачи данных по сети это может в несколько раз уменьшить затраты по подготовке кадров визуализации, что, как было отмечено ранее должны подготавливаться не больше как за 40 мс.
Также рассматривается вариант создания модулей обработки данных на иных языках программирования высокого уровня, таких как C/C++. Но это приведет к зависимости программы к машине, а точнее к определенной операционной системе. То есть при создании модуля или библиотеки на языке C/C++ будет созданная DLL файл, что будет содержать тело машинозависимого кода. Кроме того этот файл должен быть размещенный в определенную папку Windows. При роботе с такой системой по сети Internet с помощью Web - браузера это есть недопустимым, так как для правильной работы необходимо обращаться к дисковому накопителю, что невозможно с точки зрения безопасности. Это возможно лишь при использовании системы как программы на локальной машине с возможностью распределенной работы некоторых модулей в сети Internet. Конечно, что использование кода, написанного и построенного на языке C/C++ есть значительно выгоднее с точки зрения скорости. При использовании программы на платформе Unix / Linux на программу также накладываются определенные ограничения.
4. При дальнейшей разработке системы будут проведенные опыты на предмет выявления оптимальной ее структуры по всем признакам. Бесспорно, что будет уделено максимум внимания использованию ресурсов глобальной сети Internet как вспомогательных в роботе этой системы.
Эта система после конечной доработки может быть использованная как учебная моделирующая программа для обучения и первого знакомства с азами управления судами.