автореферат диссертации по радиотехнике и связи, 05.12.13, диссертация на тему:Разработка алгоритмов дискретных кватернионных преобразований для решения задач морской навигации в судовой навигационно-информационной сети

кандидата технических наук
Звягинцев, Николай Сергеевич
город
Новороссийск
год
2006
специальность ВАК РФ
05.12.13
Диссертация по радиотехнике и связи на тему «Разработка алгоритмов дискретных кватернионных преобразований для решения задач морской навигации в судовой навигационно-информационной сети»

Автореферат диссертации по теме "Разработка алгоритмов дискретных кватернионных преобразований для решения задач морской навигации в судовой навигационно-информационной сети"

Звягинцев Николай Сергеевич

РАЗРАБОТКА АЛГОРИТМОВ ДИСКРЕТНЫХ КВАТЕРНИОННЫХ ПРЕОБРАЗОВАНИЙ ДЛЯ РЕШЕНИЯ ЗАДАЧ МОРСКОЙ НАВИГАЦИИ В СУДОВОЙ НАВИГАЦИОННО-ИНФОРМАЦИОННОЙ СЕТИ

05.12.13 - Системы, сети и устройства телекоммуникаций 05.22.19- Эксплуатация водного транспорта, судовождение

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

Новороссийск - 2006

Работа выполнена в ФГОУ ВПО «Морская государственная академия имени адмирала Ф. Ф. Ушакова» на кафедре «Технические средства судовождения».

Научный руководитель:

кандидат технических наук, доцент Владимиров Виктор Владимирович. Официальные оппоненты;

доктор технических наук, профессор Федосов Валентин Петрович, кандидат технических наук, доцент Мамаев Константин Петрович.

Ведущая организация: ОАО «Новороссийское морское пароходство (НОВОШИП)»

Защита диссертации состоится «26» декабря 2006 года в 13 часов на заседании Диссертационного совета Д 223.007.01 при Морской государственной академии имени адмирала Ф. Ф. Ушакова по адресу: 353918 г. Новороссийск, пр. Ленина, 93.

С диссертацией можно ознакомится в библиотеке МГА имени адмирала Ф. Ф- Ушакова (г. Новороссийск, пр. Ленина 93).

Отзывы на диссертацию или её автореферат присылать в двух экземплярах, заверенных печатью организации, направлять ученому секретарю Диссертационного Совета Д 223.007.01 по адресу: 353918 г. Новороссийск пр. Ленина 93, МГА имени адмирала Ф. Ф. Ушакова.

Автореферат разослан » ноября 2006 года.

Ученый секретарь диссертационного совета д.т.н., профессор

А. В. Бачише

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность темы. Диссертационная работа посвящена разработке алгоритмов дискретных хватерннонных преобразований, сокращающих и распараллеливающих вычисления при решении задач морской навигации в судовой навигационно-информационной сети (СНИС).

Развитие информационных технологий и совершенствование технических средств навигации (ТСН) привело к объединению ТСН в рамках судового на-вигационно-информацнонного комплекса (СНИК), необходимой составляющей которого, согласно конвенционным требованиям, является транспондер автоматической информационной системы (АИС). Эта позволяет судам и оператору системы управления движения судов (СУДС) автоматически обмениваться информацией сгенерированной и обработанной в СНИК, образуя таким образом судовую навигационно-информациониую сеть. Развитие ТСН, входящих в СНИС приводит к увеличению информационных потоков обрабатываемых вычислительными средствами (ВС) СНИС и, как следствие, к увеличению объема вычислений. Это требует повышения производительности ВС при высоком уровне надежности, которая является необходимым условием эксплуатации ВС в составе СНИС. Одновременное выполнение таких противоречивых показателей характеризует эффективность ВС СНИС, на повышение которой ориентированы предложенные в работе алгоритмы. Современная статистика по судам, запрашивающим технический ремонт в порту Новороссийск, показывает, что 4% случаев выхода из строя таких терминальных частей СНИС, как РЛС/САРП и ЭКДИС обусловлены отказом вычислительных средств, что является подтверждением того, что повышение надежности бортовых ВС в составе СНИС остается актуальной тематикой.

Эффективность современных ВС во многом определяется их аппаратной архитектурой, отображающей проблемно-ориентированные методы и основанные на них алгоритмы. Вопрос специализации ВС является особо значимым в бортовой аппаратуре, от которой требуется высокая производительность и надежность при решении задач как в реальном, так и в ускоренном масштабах времени (РМВ и УМВ). В частности, эффективность решения навигационных задач на современном этапе также определяется проблемной ориентацией ВС СНИС, при этом задача повышения эффективности бортовых ВС остается актуальной из-за роста объема вычислений, встречающимся случаям отказа ВС СНИС.

В общем случае, проблемная ориентация вычислительной аппаратуры, реализующей методы, снижающие и распараллеливающие вычисления, позволяет достичь следующих преимуществ:

• повышается эффективность ВС. Практика разработки ВС показала, чем выше производительность, тем уже класс эффективно решаемых ими задач;

- предоставляется возможность распараллеливания вычислений и, как следствие, увеличивается производительность. Параллельная организация вычис-

лений, как ма аппаратном, так и на программном уровне лежит в основе разделения вычислительного процесса на множество одновременных однотипных операций, реализуемых в проблемно-ориентированных ВС и является в настоящее время мощным инструментом, позволяющим повысить производительность;

- проблемно-ориентированным средствам присуща простая аппаратная архитектура и высокая надежность, что выгодно отличает их при эксплуатации на подвижных объектах, в частности, на борту судна.

Программная реализация специализированных методов вычислений умаляет ■ вышеперечисленные выгоды, однако сокращение объема вычислений снижает нагрузку на универсальный процессор, уменьшает вероятность случайной ошибки в вычислениях, предоставляет возможность реализации вычислений в менее производительных ВС, отличающихся повышенной надежностью и пониженным энергопотреблением.

Проблемно-ориентированную архитектуру (как аппаратную, так и программную) определяют методы вычислений и вытекающие из них алгоритмы. Повышение эффективности ВС СНИС основывается, прежде всего, на совершенствовании методов вычислений, ориентированных на специфику решаемых задач.

Таким образом, для повышения эффективности ВС СНИС при решении задач морской навигации, в состав СНИС предложено ввести траекторный процессор, логика работы которого основана на реализации оптимальных методов решения навигационных задач. Структура СНИС с траектоным процессором представлена на рнс. 1

Рис. 1, Структура СНИС с траекторным процессором

Большинство навигационных задач описываются аппаратом тригонометрии как на плоскости, так и в пространстве. Наиболее выгодный в настоящее время подход к выполнению тригонометрических преобразований, как общий и частные случаи вращения вектора, основывается на применении алгоритма Водцера, различных его дополнений и производных. Такие алгоритмы получили название дискретных линейных преобразований (ДЛГТ).

Однако при весомом сокращении объема вычислений алгоритмы ДЛП имеют ряд существенных недостатков. Во-первых, независимо от величины угла для его отработки необходимо выполнить фиксированное количество итераций, равное разрядности углов. Поэтому такие алгоритмы неэффективны в задачах морской навигации, требующих пошагового вращения вектора на малые углы, таких, как задачи автосопровождения, проигрывания маневра расхождения судов н др. Во-вторых, данные алгоритмы реализуют «псевдовращение» и им присущ такой недостаток, как удлинение вектора. Использование любого из существующих методов компенсации удлинения (модифицированные алгоритмы Волдера) вызывает значительное усложнение вычислений, как правило, в два раза.

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

Реальные процессы, реализацию которых необходимо описать, являются функциями от времени, тогда как аргументами реализуемых преобразований являются углы. Отсутствие временной зависимости не предоставляет возможности учета изменения параметров движения судна и требует перемаспггаби-рования углов вращения на каждом шаге. Поэтому решение задач, как в РМВ, так и в УМВ будет проблематичным: нарушение интервалов отсчета данных и индикации результатов, усложнение организации вычислительного процесса ввиду невозможности учета изменения шага и, как следствие, снижение точности отработки и затруднение ев итоговой оценки. Кроме того, метод численного интегрирования в этих алгоритмах реализован только по формуле прямоугольников (интегрирование с недостатком), что ограничивает точность вычислений.

Целью диссертационной работы является разработка алгоритмов дискретных кватернионных преобразований (ДКП), реализующих трехмерное вращение вектора, не в традиционной угловой метрике, а в шкале реального

времени. Это обеспечивает весомое сокращение вычислительного объема (до 27 раз) и позволяет повысить скорость и надежность вычислений при решении задач морской навигации по данным информационных потоков СНИС, а также увеличить объем обрабатываемой информации без роста производительности самих ВС.

Достижение поставленной цепи требует решения следующих основных задач:

1. Синтез алгоритмов ДКП, ориентированных на сокращение и распараллеливание вычислений при решении навигационных задач в вычислительных средствах СНИС. Анализ сходимости и точности алгоритмов ДКП.

2. Представление задач навигации алгоритмами ДКП по данным информационных потоков СНИС.

3. Аппаратурная и программная реализация алгоритма ДКП, увязанная с пропускной способностью телекоммуникационных каналов связи в СНИС (см. рис. 1), Моделирование навигационных задач алгоритмами ДКП.

4. Оценка эффективности предлагаемого метода в сравнении с традиционными методами реализации навигационных задач.

Исследования проводились с использованием методов математического аппарата линейной алгебры, дифференциального и интегрального счисления, дискретной линейной алгебры, теории рядов и математического моделирования.

Научная новизна представлена следующими результатами:

- разработан новый класс алгоритмов, получивших название алгоритмов дискретных кватернионных преобразований и реализующих вращение вектора в трехмерном пространстве в шкале времени. В отличие от ранее известных, алгоритмы ДКП реализуют «естественное», а не «псевдо» вращение вектора по формулам интегрирования различных порядков - прямоугольников, трапеций и парабол;

- исследована и доказана сходимость алгоритмов ДКП (методом прямого сравнения с традиционной тригонометрической формой);

- получены формулы оценки трансформируемой и суммарной погрешностей алгоритма ДКП, предложена методика выбора шага алгоритма ДКП в зависимости от заданного интервала решения задач и допустимой ошибки вычислений;

- представлен обобщенный подход к описанию траекторных задач алгоритмами ДКП по данным информационных потоков СНИС.

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

Практической ценностью полученных в диссертации результатов является существенное снижение объема и возможность распараллеливания вычислений при реализации навигационных задач в терминальных частях СНИС алгоритмами ДЕЛ, что позволяет повысить эффективность вычислительных средств СНИС и, как следствие; повысить безопасность мореплавания.

Реализация результатов работы. Полученные в диссертационной работе алгоритмы ДКП были использованы при модернизации серийно выпускаемого изделия «Наяда 25 М1», а также в научно-исследовательских и опытно» конструкторских разработках по созданию перспективных средств автоматической радиолокационной прокладки на предприятии ОАО «Горизонт», г. Ростов-на-До ну.

Апробация работы. Основные положения проведенных исследований были доложены и обсуждены на четвертой Новороссийской городской научной конференции (апрель 2002г.), на Всероссийской научно-технической конференции с международным участием «Компьютерные и информационные технологии в науке, инженерия и управлении», г, Таганрог (май 2004г.) и дважды на Международной научно-практической конференции «Интеллектуальные многопроцессорные системы», г. Дивноморск (сентябрь 2005г.), г. Кацивели, Украина (сентябрь 2006 г.).

Публикации. Основные результаты диссертационной работы опубликованы в 11 печатных работах (из которых 7 работ в изданиях списка ВАК), получены свидетельство РФ об официальной регистрации программы для ЭВМ и патент РФ на изобретение.

Структура и объем работы. Общий объем диссертации 146 страниц: содержание - 3 страницы, введение — 11 страниц, пять разделов — US страниц, список литературы из 95 наименования—9страниц, 21 иллюстрация, 19 таблиц.

СОДЕРЖАНИЕ РАБОТЫ

Во введении обосновывается актуальность исследования, формулируются цель и задачи исследования, приводятся основные результаты работы.

Первый раздел посвящен обоснованию выбора направления и постановке задачи исследования. Для этого выделены задачи навигации, занимающие преобладающий объем и время вычислений в СНИС — задачи, решение которых связано с траекторией собственного и/или окружающих судов и выполняется в РМВ или УМВ. Такие задачи названы траекторными.

Установлен характер математического содержания и произведена количественная оценка траекториях задач по виду функциональных преобразований, что является исходной информацией для выбора и совершенствования методов и алгоритмов их решения. По результатам оценки следует вывод о том, что основное содержание траекторных задач — тригонометрические преобразования, описываемые вращением вектора на плоскости и в пространстве.

Рассмотрены базовая структура современной СНИС. Для сокращения объема и распараллеливания вычислений, а также улучшения таких характеристик работы ВС СНИС как производительность, надежность и живучесть обоснована целесообразность введения в состав вычислительных блоков терминалов СНИС проблемно-ориентированного вычислителя для реализации траекторных задач - траекториого процессора. Структура терминальной части СНИС с траекторным процессором представлена на рис. 2.

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

Системная магистраль

Вычислительный блок

Центральный процессор

П.

ТраекторныЙ процессор

НЕ

~тт

ПИ СНС ЛАГ ПС САРП (РЛС)

зх:

у

г о

аз м ° 3 я 2

I -

3 а.

4"

Транспондср АИС

Рис. 2. Обобщенная структура СНИК с траекторным процессором

Для выбора оптимальных методов реализации вращения вектора приведен анализ известных алгоритмов, компромиссно решающих проблему быстродействия н аппаратурных затрат. Для алгоритмического решения траекторных задач следует выполнять вращение вектора в трехмерном пространстве на малые углы, соответствующие изменению географических координат судна в шкале времени. В результате анализа известных алгоритмов вращения вектора наиболее эффективными алгоритмами для реализации траекторных задач признаны алгоритмы вращения вектора в трехмерном пространстве методом численного интегрирования. Однако им присущи весьма существенные недостатки:

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

- интегрирование в алгоритмах вращения вектора реализовано по формуле прямоугольников (интегрирование с недостатком), что ограничивает их точность.

Для устранения этих недостатков предложено реализовывать вращение вектора методом численного интегрирования в шкале времени функций радиус-вектора н угловой скорости его вращения

= = К С),®, ('>.«>. (О I (1-1)

с шагом а =сопз1.

Второй раздел посвящен синтезу алгоритмов дискретного линейного вращения вектора в шкале времени для решения траекгорных задач по данным информационных потоков СНИС. В основу синтеза положено выражение для перемещения = {Агх, Агу, Аг,} вектора Ж за время ДГ — — , представляемое зависимостью

АЯ -

(2.1)

которая в проекции на оси трехмерного пространства, с учетом (1.1) сводится к выражениям:

о е • •

Лг,(0 - - Ь«®, (0* - %№*.(0-%№<*г С)

0 0 0 0

(2.2)

где (^0» - дифференциал угла вращения в

трехмерном пространстве.

На основе интерполяционного метода численного интегрирования, предложенного акад. Л. В. Каляевым, были получены выражения дня каждого из шести интегралов Стнлтьеса, входящих в левые части выражений

М >-| 0-0

(.1

где - и*», и т,пе{х,у,г}.

{23)

В отличии от формул интегрирования, предложенных академиком А. В. Каляевым, формула (2.3) предусматривает назначение различных порядков разложения а и Ь подынтегральных и поддифференциальных функций в ннте-

грале Стилтьеса в зависимости от требуемой точности вращения вектора. Свойственной задачам навигации особенностью является то, что на (гИ)-м шаге численного интегрирования (2.3) известны значения углов о,+;, щ, а=/а,, Оу, а,}, а по координатам — лишь значения = Поэтому

при вращении (2.2) в формуле (2.3) приращения Да,, (в частном случае широты и долготы) известны, в отличие от координат Дня определения искомых левых частей уравнений (2.2) необходимо использовать экстраполированные значения )' ~ и е {г,у,г}. Формулы экстраполяции строятся на основе Второй интерполяционной формулы Ньютона. Порядок экстраполяции п должен быть не ниже порядков разложения а и Ъ.

Задавая различные порядки разложения и экстраполяции числен-

ным интегрированием (23) выражений (2.2), получим следующие дискретные линейные алгоритмы, реализующие вращение вектора в трехмерном пространстве в шкале времени;

а)««онб»0 б) я»л-б»1

(формула прямоугольников) (формула трапеций)

Хы ^^-УМх+гМ*;

(2.4)

= - 2 (Зл - )Аог я + 3 г, - ,)Да^;

(2.5)

-п =-а =6 =.2

(формула парабол)

(2.6)

Алгоритмы (2.4) — (2.6) реализуют вращение вектора с шагом &1 =сош, который определяет значения приращений углов вращения

&аш те{х,у,г} на каждом шаге. Отличие полученных формул от

ранее известных заключается в конкретном подходе к назначению порядков разложения функций. Общая форма записи алгоритмов (2.4) — (2.6) имеет вид

Хм =*1~ С:Дг(У, а,), + С^Мг, ау ); Ум'йгМ^аД+Л-СМг,«,): (2.7)

где йг(к,а,)1, А; /е ДО определяются численным интегрированием (2.3) и

экстраполяцией координат, е {1,0,-1} - оператор направления вращения (введен дня отработки углов в противоположенном направлении н контроля текущих вычислений).

Алгоритмы (2.4) — (2.6) реализуют кватернионное преобразование, матричная запись которого имеет вид

ЖО-АОС.

где: л0

Уо

- начальный вектор; Л(0'

яо

(2.8)

-преобразованный вектор;

Л0=

«(»МОП - СО5б(0] - - СОзОДЬ й^Ш^М

- матрица кватерннонного преобразо-

АО+П-гЧО]«»^/) ,

вания; о(/)» ДО. К')-направляющие косинусы оси ад -суммарный угол поворота.

(2,1), (2.2) есть дискретная форма представления вращения (2.8), поэтому алгоритму (2.7) дано обобщенное название — алгоритм дискретного кватерннонного преобразования (ДКП), реализующий наиболее общий случай вращения в трехмерном пространстве.

Исследованы вычислительные возможности алгоритма ДКП. В результате выявлено, что этот алгоритм помимо (2.8) выполняет 15 ортогональных преобразований различного вида (прямые преобразования), а именно:

а) 5"= Е,Жа (3 вида), (2.9)

где Е, -матрица частного вращения, которая в зависимости от /епринимает вид

Е. -

(I о о 0 мм ах -8шог О 8шаа сот я.

' ива,, 0 ятст,.

Е = у

0 I

— 5Ц> СГ„ 0

сова, -йпа, С1 яп«г сова, 0 0 0 1

б)л - (б видов),

(2.10)

где Р-Е,Е„Ет\ 1,т,пе{ж,у,г},/*т*п.

в) Я (3 вида),

(2.11)

где Ат я—матрица, полученная из (2.8) путем нулевого задания направляющего косинуса для 1-й оси системы координат.

Алгоритмом ДКП также вычисляются углы между проекциями заданного вектора на любую из плоскостей и образующую её осями, модули этих проекций, а также углы, составляемые заданным вектором с осями координат, и модуль самого вектора (обратные преобразования), вычисляются произведения си-нуснсикосинусных сочетаний.

В третьем разделе исследована н доказана сходимость алгоритма ДКП и выполнен анализ погрешностей этого алгоритма.

Для доказательства сходимости использована следующая логика. Наименьшему порядку разложения соответствует алгоритм ДКП с порядком я -0, и именно от этого алгоритма можно ожидать худших результатов в смысле точности отработки кватернионного преобразования (2.8). Следовательно, решив вопрос сходимости алгоритма с нулевым порядком, можно утверждать о сходимости алгоритмов с более высоким порядком разложения и экстраполяции. Доказано, что для бесконечно малого угла вращения в коэффициенты при координатах начального вектора в преобразовании (2.8) представляют собой коэффициенты алгоритма ДКП с нулевым порядком, с точностью до бесконечно малых величин второго порядка. Поэтому алгоритм ДКП на каждой итерации выполняет именно преобразование (2.8). Для оценки точности, с которой алгоритм ДКП реализует преобразование (2.8), а также интервала сходимости ДКП выполнен анализ погрешностей.

Общая структура погрешности алгоритма ДКП па текущем шаге имеет вид

- ¿Га- ошибка начальных данных;

- - трансформируемая погрешность, являющаяся следствием ошибки в координате вращаемого вектора на предыдущем шаге;

- Д^ы* " погрешность в координате на текущем шаге вследствие ошибки приращений углов вращения;

- - методическая ошибка, накладываемая конкретным значением шага н порядком алгоритма ДКП при реализации метода численного интегрирова-

(3 вида).

(2.12)

(3-1)

где:

ния при вращении. Эта погрешность также присутствует и накапливается как сумма на каждом шаг«.

В результате оценок составляющих (3.1) получена формула предельной ошибки в любой координате вращаемого вектора

Ж* -Я +^р»«]. (3.2)

где;

- = тах{д+1} - максимальное значение методической погрешности на интервале Г. Методическая погрешность на итерации рассчитывается по формуле

(3.3)

погрешности е определяются по формулам, предложенным

акад. А. В. Каляевым:

• для формулы прямоугольников

<34>

(3.5)

(3.6)

• для формулы трапеций

и „■Д(г), ^ЛП. у

• для формулы парабол

_ А/* ,¿4(0, ..М(0, ^дДО, .У*<0, ,

" 24 ¡¡¡^ 1

Т

-и —--количество итераций по алгоритму ДКП;

- я —модуль вращаемого вектора;

- Да = тах{Дсг;} • максимальное значение приращения угла вращения на интервале г;

- ¿¡&а-максимальная ошибка в приращении угла вращения. Предельная погрешность алгоритма ДКП для вектора 5"= равна

= (3.7)

Отметим, что для плоских преобразований в формулах (3.2) и (3.7) вместо коэффициента л/з следует использовать л/2. Условием сходимости алгоритма (2.7) на интервале является неравенство

(3.8)

где - допустимая погрешность при вычислении координат.

При заданных величине М^, порядке алгоритма ДКП и шаге Д/ из формул определяется количество итераций п, при котором обеспечивается сходимость алгоритма ДКП. Для этого необходимо решить уравнение

аиа+Лк+с=0( (3.9)

где: а = + -Дд"".)".

А-Дог(2Л<Иог + 2-^;—Ди"°.)+2ДМа + -Ди"к,; (3.10)

В четвертом разделе даны общие принципы построения траектории судна алгоритмами ДКП для решения траекторных задач в спецпроцессоре СНИС по данным навигационно-икформационных потоков. Приведено описание представления траекторных задач алгоритмами ДКП, предложена методика выбора шага алгоритма ДКП для решения траекторных задач в терминалах СНИС.

Для применения полученных алгоритмов при решении траекторных задач показан общий принцип представления траектории судна. Основной особенностью является переход от широты и долготы к углам вращения вокруг осей Х,У,2 (рис. 4.1).

Составляющие угловой скорости вращения гг(/) геоцентрического радиус-вектора £(/) как функции от географических координат равны

: Д>Д/) = 0>Д()£и1 Л(г) = ЯП А(1)

о>} (О в ~ШГ (О ссз Л(/) = -созЛО)

(0 е®* (О

л

(4.1)

Выражения (4.1) определяют значения приращений углов вращения алгоритма ДКП (2.7) на шаге д/

дых,, : (4.2)

Алгоритм (2.7) с приращениями (4.2) реализует кватернионное преобразование (2.8) со следующими параметрами вращения (суммарным углом поворота вокруг оси вращения ш(/) и направляющими косинусами оси а (О)

0(0 = «(0-

' . .

ят

До) „ _ сов ЛЩ<р(()

КО-

¿¿(О +ЕЛЦ0]1

(4.3)

Рис.2 Угловая скорость вращения гп» и её проекции для отработки траектории судна кватерн ионным преобразованием

Текущие координаты геоцентрического вектора соответствуют отработке траектории алгоритмом ДКП (2,7) по приращениям углов вращения (4.2) с шагом а.

Приведено описание представления алгоритмом ДКП таких траекторных задач, решаемых по данным информационных потоков СНИС, как автосопровождение (АС), автопрокладка (АП), проигрывания маневра (ПМ) и определения текущего значения пройденного расстояния на Земной сфере по данным

СНС и ЛИС. Дня реализации этих задач алгоритмом ДКП необходимо выполнение как прямых преобразований с шагом /и (определение координат вращаемого вектора), так и обратных с угловым шагом да (определение модуля вектора и угла, составляемого вектором с осью системы координат), также необходимо выполнять линейные операции сложения (вычитания) и умножения, реализация которых а рамках алгоритма ДКП возможна в каналах любой их координат. Количественный состав преобразований, необходимый для решения выбранных задач в траекторном процессоре СНИС на шаге м, реализующим вращение вектора по алгоритму ДКП, приведен в табл. 4.1.

Из данных табл. 4.1 видно, траекторные задачи вращением вектора сводятся к небольшому набору линейных преобразований, реализуемому в рамках алгоритма ДКП

Таблица 4.1

Количественный состав преобразований, необходимый для реализации тра-ехторных задач я траекторном процессоре

Вращение

Задача Сложение Умножение Одна итерация (прямые преобразования) п итераций (обратные преобразования)

АС 7 5 3 3

АП 2 3 1 1

ПМ 3 1 1 1

РЗС 3 2 2 2

Для выбора шага как при прямых, так и при обратных ДКП предложена следующая методика. Шаг выбирается для каждого порядка пе {0,1,2} алгоритма ДКП исходя из заданного интервала решения траекторией задачи г и величины допустимой погрешности вычислений М^. Так как траекторные задачи реализуются как прямыми, так и обратными ДКП, то ошибки в координатах, возникающие при реализации первого преобразования, будут являться ошибками начальных данных (#",) для второго и так далее.

По формулам (3.2) — (3.7) рассчитываются предельные значения погрешностей при прямых преобразованиях М? для каждого я, при этом текущие координаты судна принимаются за истинные, а погрешности ^ и ¿йл равными нулю. При расчете методической погрешности по формулам (3.3) — (З.б) в выражениях (3.4) - (3.6) значения функций координат ¿(0 вычисляются по формуле (2.8), где параметры вращения определяются по выражениям (4.3), а функции углов а,(0 определяются интегрированием выражений (4.1). Для функций р(г) И Л(0 в формулах (4.1) выбирается траектория судна, характеризующаяся максимальными погрешностями, а именно — активное торможение

быстроходного судна на циркуляции. Ошибка Л/** играет роль погрешности начальных данных для последующего преобразования.

Предельная общая ошибка модуля вектора определяемого реализацией обратного преобразования вычисляется по формуле

где:

(4.4)

(4-5)

(4.6)

Расчет величины методической погрешности ц— в выражении (4.6) производится по формулам (33) — (3.6), при этом в выражениях (3.4) — (3.6) значения функций координат ед вычисляются по формулам

4(0 *= при к •= х,-

4(0 = при к=у,

а функции углов а,(г) определяются зависимостью

(4.7)

4

(4.8)

Общая предельная ошибка в угле в, составляемом вектором 7 с ближайшей осью, определяется по формуле

где:

(4.9)

(4.10)

В траекторкых задачах модуль вектора д и его угол с осью в представляют собой навигационные параметры. Поэтому ошибки &* и 5е не должны превышать допустимые погрешности определения навигационных параметров

Итак, шаг А/ н приращение угла вращения Лог, выбираются для заданного интервала Т и порядка я таким образом, чтобы выполнялись условия

¿е < А<\

(4.11)

Количественный анализ составляющих общей предельной погрешности определения модуля вектора (4.4) показал, что погрешность М,"*, появляющаяся при прямых преобразованиях, составляет менее 0,1% от общей величины погрешности (4.4), н основная часть общей погрешности появляется при реализации обратных преобразований и зависит от величины углового шага Дог,. Поэтому при реализации траекторных задач алгоритмами ДКП шаг ¿г целесообразно назначать в зависимости от требуемой практикой дискретности решения той или иной задачи.

Расчеты по формулам (4.4) — (4.6) показали, что реализация обратных преобразований алгоритмом ДКП (п=0) приводит X существенным погрешностям в определении модуля преобразуемого вектора, а также к необходимости выполнения значительного количества итераций, что отрицательно сказывается на вычислительной сложности ДКП (я»0). Более универсальные в смысле точности и менее емкие вычисления целесообразно реалшовывзть ДКП высших порядков (и «1,2). Расчеты согласно вышеприведенной методики показали, что для получения относительной погрешности определения модуля век-

ЛС

тора Д=—£-х10®/о-0.1% (в частном случае это дистанция и скорость) ДКП

ГС

(л-1) нужен угловой шаг Аа, =0,06 = 5,5% а ДКП (я-2) нужен шаг Да, = 0,87 - 5,0*. Отметим, что реализация обратных преобразований с такими шагами вызовет высокую погрешность (4.10), которая снижается путем выполнения дополнительных итераций с меньшими шагами. Для реализации обратных преобразований с точностью А =0,1% и <■»" = 0,5' алгоритму ДКП (л=1) необходимо выполнить 15 итераций, а ДКП (п-з) — 11 итераций, что обеспечивает существенное снижение объема вычислений даже в сравнении с алгоритмом Волдера.

В пятом разделе приведены примеры аппаратурной и программной реализации алгоритма ДКП, результаты математического моделирования траекторных задач алгоритмами ДКП, оценка эффективности представления траекторных задач алгоритмами ДКП.

В качестве примера аппаратурной реализации ДКП предложена функциональная схема траекторяого процессора СНИС, реализующая как прямые, так и обратные преобразования вектора в трехмерном пространстве по алгоритму ДКП.

В качестве примера программной реализации предложен кед алгоритма ДКП (я -1) на языке ассемблера.

Как пример реализации траекторией задачи /щи алгоритм представления задачи АС в рамках ДКП, в соответствии с которым проведено моделирование задачи АС в среде Mathcad 12 Pro. Результаты моделирования показали, что погрешности алгоритма ДКП не превышают теоретических оценок, что является доказательством состоятельности предложенной методики выбора шага алгоритма ДКП.

В результате моделирования выявлено, что повышение порядка ДКП в среднем на один порядок повышает точность вычислений, поэтому наиболее точным является представление траекторных задач алгоритмом ДКП (л =2).

Проведен сравнительный анализ объема вычислений, который необходимо выполнить ВС СНИС для решения траекторных задач традиционными методами и алгоритмами ДКП, за единицу сравнения выбрана эквивалентная операция сложения (ЭОС). Получены значения коэффициентов » н 1„ характеризующих снижение объема вычислений при реализации выбранных траекторных задач алгоритмами ДКП

к- N i _ ^ "дкп N дня

где : N - количество ЭОС, необходимых для реализации траекторных задач традиционными методами;

Мдт~ количество ЭОС, необходимых для реализации тех же задач алгоритмом ДКП в универсальном процессоре терминала СНИС;

NTsia! - количество ЭОС, необходимых для реализации тех же задач алгоритмом ДКП в траекторном процессоре СНИС.

Значения коэффициентов k и кт для различных порядков л алгоритма ДКП приведены в табл. 5.1.

Таблица 5.1

Значения коэффициентов снижения объема вычислений при реализации траекторных задач алгоритмами ДКП

Задача АС АП ПМ

Коэс »фициент к к к V

ii Е л =0 11.3 183 9.8 17.4 12.7 18.6

«=1 14.1 27.1 11.7 24.8 16.2 26.7

л-2 7.7 14.7 7.1 14.2 8.4 14.9

Сравнительный анализ вычислительной сложности представлен следующими результатами:

- реализация траекторных задач алгоритмами ДКП обеспечивает весомое сокращение вычислений (от 7.1 до 27.1 раз) для всех задач, что свидетельству-

ет об универсальности алгоритма ДКП, как эффективного метода решения навигационных задач в терминалах СНИС;

- наиболее эффективной представляется формула трапеций (п), так как она обеспечивает наибольшее сокращение объема вычислений (от 11.7 до 27.1 раз) при высокой точности самих вычислений (в среднем на порядок выше, чем дня ДКП по формуле прямоугольников)

В результате качественной оценки алгоритмов ДКП выделены их основные преимущества:

- высокая точность метода позволяет получить значения тригонометрических функций и их комбинаций на малых углах за одну итерацию;

- трехмерная размерность матрицы кваггернионного преобразования, реализуемая алгоритмом ДКП в пределах заданной точности на каждой итерации и являющаяся базовым операндом ДКП, позволяет сократить объем преобразований в трехмерном пространстве;

- временная размерность шага ДКП упрощает его применение для решения задач в РМВ и УМВ;

- структура алгоритма ДКП позволяет распараллелить вычисления по каналам каждой координаты, однако, стоит отметить, что классическая фон-неймановская структура универсальных ВС СНИС не предоставляет возможности организации параллельных вычислений, то есть возможности ДКП будут реализованы не полностью. При этом весомым преимуществом является то, что в универсальных процессорах СНИС для реализации ДКП (набора тригонометрии) не требуется обращение к вычислительному устройству с плавающей запятой, несущего основную нагрузку при реализации вычислений традиционными методами, что выгодно отличает программную реализацию ДКП от других известных алгоритмов.

Аппаратурная реализация ДКП в виде траекторного процессора СНИС дополнительно характеризуется следующим:

- более весомым сокращением объема вычислений в сравнении с программной реализацией в среднем в 1.8 раза;

-распараллеливанием вычислений между центральным и траеигорным процессорами вычислительного блока терминала СНИС, что способствует снижению нагрузки на центральный процессор и сокращению времени вычислений;

- простая структура ДКП не требует больших аппаратурных затрат и обладает высокой надежностью.

Вышеприведенные факторы характеризуют алгоритм ДКП как эффективный метод аппаратурной н программной реализации траекторных задач в вычислительных средствах СНИС.

Для достижения максимального выигрыша в снижении объема вычислений показана перспективность и целесообразность введения в состав вычислительных средств СНИС траекторного процессора, логика работы которого основана на реализация методов ДКП.

В заключении обобщаются основные результаты, полученные в диссертационной работе.

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ

Основной научный результат состоит в разработке алгоритмов дискретных кватернионных преобразований для решения траекторных задач, снижающих объем вычислений от 7,1 до 27,1 при реализации навигационных задач в реальном и ускоренном масштабах времени в терминалах судовой навн-гационно-информацнонной сети.

Главные теоретические и практические результаты, полученные в работе, можно сформулировать следующим образом:

1. Выполнен синтез алгоритмов, реализующих дискретное вращение вектора методом численного интегрирования по Стилтьесу в шкале времени. В результате получен класс алгоритмов дискретных кватернионных преобразований (ДКП).

2. Исследована и доказана сходимость алгоритмов ДКП. Выполнен анализ погрешностей и получены рабочие формулы для оценки предельной суммарной погрешности и интервала сходимости.

3. Предложена методика выбора шага алгоритма ДКП, в зависимости от требуемого интервала решения задач навигации в терминалах СНИС н допустимой погрешности определения навигационных параметров.

4. Представлен обобщенный подход к описанию траекторных задач алгоритмами ДКП по данным навигационно-информационных потоков СНИС.

5. Разработана подтвержденная патентом на изобретение структура траек-торного процессора СНИС, реализующая вращение вектора по алгоритму ДКП (формула трапеций).

6. Проведен сравнительный анализ вычислительной сложности разработанных алгоритмов, подтверждающий сокращение объема вычислений при решении задач навигации в терминалах СНИС.

Полученные результаты подтверждают состоятельность, эффективность и целесообразность использования алгоритмов ДКП для решения траекторных задач в СНИС.

Основные материалы диссертации опублихованы в 13 печатных работах:

1. Звягинцев Н. С. Кватернионная реализация алгоритма контроля текущих координат судна на сфере /Материалы четвертой новороссийской городской конференции. — Новороссийск: НГМА, 2002, стр. 68.

2. Владимиров В. В., Звягинцев Я. С. Решение задач автосопровождения по спутниковым обсервациям: Сборник научных трудов НГМА. Выпуск 8. - Новороссийск: НГМА, 2003.- С. 44-47.

3. Звягинцев Н. С. Реализация задач автосопровождения и проигрывания маневра алгоритмами кватернионных преобразований; Сборник научных трудов НГМА. Выпуск 8. - Новороссийск: НГМА, 2003,- С. 85-87

4. Владимиров В. В., Звягинцев Н. С., Граждан Д. В. О точности отработки траектории движения судном алгоритмами кватернионных преобразований: Сборник научных трудов НПМА. Выпуск 8, - Новороссийск: НГМА, 2003.— С. 72-74.

5. Владимиров В. В., Звягинцев Н. С., Граждан Д. В. Применение кватерниоиных преобразований для описания траектории судна. /Проблемы водного транспорта. Известия ВУЗов, Северо-Кавказский решон. - Ростов-на-Дону: РТУ, 2004,-С. 36-40.

6. Владимиров В. В. Звягинцев Н. С. Анализ и синтез алгоритмов дискретного вращения вектора для решения задач морской навигации. /Проблемы водного транспорта. Известия ВУЗов, Северо-Кавказский регион. - Ростов-на-Дону: РГУ, 2004,- С. 44-47.

7. Владимиров В. В, Звягинцев Я. С. Вычислительные возможности алгоритма трехмерного дискретного вращения вектора. /Проблемы водного транспорта. Известия ВУЗов, Северо-Кавказский регион. — Ростов-на-Дону: РГУ, 2004.-С. 57-60.

8. Владимиров В. В. Звягинцев Н, С. Граждан Д. В. Анализ сходимости алгоритмов дискретных кватерниоиных преобразований. /Материалы Всероссийской научно-технической конференции с международным участием «Компьютерные и информационные технологии в науке, инженерии и управлении» №1(45). - Таганрог: ТРТУ, 2005,- С. 78-81.

9. Владимиров В. В. Звягинцев Н. С Граждан Д. В. Вычисление синусно-косинусных сочетаний алгоритмами дискретных кватернионных преобразований //Перспективные информационные технологии и интеллектуальные системы № 1 (21). - Таганрог: ТРТУ, 2005.- С. 29-33.

10. Владимиров В. В. Звягинцев Я. С Граждан Д. В. Алгоритмы дискретного кватернионноло преобразования для интеллектуальных систем подвижных объектов /Материалы международной научно-технической конференции «Интеллектуальные многопроцессорные системы». Т.], — Таганрог: ТРТУ, 2005.— С. 106-111.

11. Владимиров В. В. Звягинцев И. С. Граждан Д. В. Алгоритмы дискретных кватернионных преобразований с подвижной осью вращения /Материалы международной научно-технической конференции «Интеллектуальные многопроцессорные системы». Т.1. -Таганрог: ТРТУ, 2006-С. 124-128.

12. Владимиров В. В., Звягинцев Я. С., Граждан Д. В. Арифметическое устройство. Патент РФ на изобретение № 2268482.

13. Владимиров В. В., Звягинцев Я. С., Граждан Д. В_ Программа реализации алгоритма вращения вектора. Свидетельство об официальной регистрации программы для ЭВМ №2009611732.

Формат 60x114 1/16. Тир»® 100. Заказ 1094. Отечотано в редакциоино-издательском отделе

ФГОУ ВПО «Морская государственная академия им. ада. Ф.Ф.Ушаков»» 353918, г. Новороссийск, пр. Ленина, 93

Оглавление автор диссертации — кандидата технических наук Звягинцев, Николай Сергеевич

Перечень принятых сокращений.

ВВЕДЕНИЕ.

1. МЕТОДЫ РЕШЕНИЯ ЗАДАЧ МОРСКОЙ НАВИГАЦИИ В СУДОВОЙ НАВИГАЦИОННО-ИНФОРМАЦИОННОЙ СЕТИ И ПОСТАНОВКА ЗАДАЧИ ИССЛЕДОВАНИЯ.

1.1 Математическое содержание траекторных задач морской навигации на плоскости и сфере.

1.1.1 Классификация и выбор решаемых задач в траекторном процессоре судовой навигационно-информационной сети.

1.1.2 Математическое содержание траекторных задач на плоскости.

1Л .3 Математическое содержание траекторных задач на сфере . .23 1.1.4 Особенности математического содержания траекторных задач на плоскости и сфере.

1.2 Базовая структура и пути повышения эффективности работы вычислительных средств судовой навигационно-информационной сети при решении траекторных задач.

1.3 Алгоритмы координатных преобразований для реализации вращения вектора.

1.4 Анализ алгоритмов вращения вектора для решения траекторных задач морской навигации в судовой навигационно-информационной сети.

1.5 Развитие структуры судовой навигационно-информационной сети и постановка задачи исследования.

2. СИНТЕЗ АЛГОРИТМОВ ДИСКРЕТНОГО ВРАЩЕНИЯ

ВЕКТОРА ДЛЯ РЕШЕНИЯ ЗАДАЧ МОРСКОЙ НАВИГАЦИИ В СУДОВОЙ НАВИГАЦИОННО-ИНФОРМАЦИОННОЙ СЕТИ.

2.1 Синтез алгоритмов дискретного линейного вращения вектора методом численного интегрирования.

2.2 Частные алгоритмы дискретного линейного вращения вектора.

2.3 Геометрия трехмерного вращения вектора. Дискретное кватернионное преобразование.

2.4 Вычислительные возможности алгоритмов дискретных кватернионных преобразований.

2.4.1 Прямые и обратные преобразования.

2.4.2 Вычисление произведений синусно-косинусных сочетаний.

3. ИССЛЕДОВАНИЕ СХОДИМОСТИ И ТОЧНОСТИ АЛГОРИТМОВ ДИСКРЕТНЫХ КВАТЕРНИОННЫХ ПРЕОБРАЗОВАНИЙ.

3.1 Анализ сходимости алгоритмов дискретных кватернионных преобразований.

3.2 Общая структура ошибки алгоритма дискретного кватернионного преобразования.

3.3 Методическая, трансформируемая и суммарная погрешности алгоритма дискретного кватернионного преобразования.

4. ПРЕДСТАВЛЕНИЕ ТРАЕКТОРНЫХ ЗАДАЧ МОРСКОЙ

НАВИГАЦИИ АЛГОРИТМАМИ ДИСКРЕТНЫХ КВАТЕРНИОННЫХ ПРЕОБРАЗОВАНИЙ ПО ДАННЫМ ИНФОРМАЦИОННЫХ ПОТОКОВ

СУДОВОЙ НАВИГАЦИОННО- ИНФОРМАЦИОННОЙ

СЕТИ.

4.1 Особенности представления траектории судна алгоритмами дискретного кватернионного преобразования.

4.2 Представление задачи автосопровождения алгоритмами дискретных кватернионных преобразований.

4.3 Представление задач автопрокладки и проигрывания маневра алгоритмами дискретных кватернионных преобразований.

4.4 Определение пройденного расстояния алгоритмами дискретных кватернионных преобразований.

4.5 Методика выбора шага алгоритма дискретного кватернионного преобразования.

5. АППАРАТУРНАЯ РЕАЛИЗАЦИЯ ТРАЕКТОРНОГО ПРОЦЕССОРА СУДОВОЙ НАВИГАЦИОННО-ИНФОРМАЦИОННОЙ СЕТИ.

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ И ОЦЕНКА ЭФФЕКТИВНОСТИ АЛГОРИТМОВ ДИСКРЕТНЫХ КВАТЕРНИОННЫХ ПРЕОБРАЗОВАНИЙ

5.1. Аппаратурная реализация траекторного процессора судовой навигационно-информационной сети.

5.2. Программная реализация траекторных задач алгоритмами дискретных кватернионных преобразований.

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

5.4. Оценка эффективности применения алгоритмов дискретных кватернионных преобразований для решения траекторных задач.

5.4.1 Количественная оценка эффективности.

5.4.2 Качественная оценка эффективности.

Введение 2006 год, диссертация по радиотехнике и связи, Звягинцев, Николай Сергеевич

Диссертационная работа посвящена разработке алгоритмов дискретных линейных кватернионных преобразований, сокращающих и распараллеливающих вычисления при решении задач морской навигации в судовых навигационно-информационных сетях (СНИС).

Развитие информационных технологий и совершенствование технических средств навигации (ТСН) привело к объединению ТСН в рамках судового навигационно-информационного комплекса (СНИК), необходимой составляющей которого, согласно конвенционным требованиям, является транспондер автоматической информационной системы (АИС). Это позволяет судам и оператору системы управления движения судов (СУДС) автоматически обмениваться информацией сгенерированной и обработанной в СНИК, что в настоящий момент играет важную роль в обеспечении безопасности мореплавания. Развитие ТСН, входящих в СНИС приводит к увеличению информационных потоков и росту объема вычислений. Такие задачи, как расчет прогнозируемых и исполнительных траекторий судна [1], определение параметров движения, обеспечивающих безопасное плавание [2], а также элементов сближения маневрирующих судов [3] в настоящее время находят решение в СНИС[4],[5], что позволяет повысить безопасность мореплавания. Многие задачи судовождения решаются как в реальном так и в ускоренном масштабах времени (РМВ и УМВ). Это требует повышения производительности вычислительных средств (ВС) СНИС при высоком уровне их надежности. Такая необходимость обусловлена тем, что рост объема вычислений, реализуемых процессором в единицу времени приводит к повышению нагрузки на ВС, увеличению вероятности случайной ошибки в вычислениях, к росту времени решения задач и снижению точности расчетов в РМВ и УМВ [6],[7]. Традиционное решение проблемы повышения производительности за счет реализации вычислений в мощных универсальных процессорах не всегда эффективно. Такой путь приводит к усложнению аппаратной архитектуры ВС, повышению энергопотребления системы в целом и введению эффективных систем охлаждения [8]. Вышеперечисленные факторы снижают надежность вычислительного блока и повышают его стоимость [9],[10]. Современная статистика по судам, запрашивающим технический ремонт в порту Новороссийск, показывает, что 4% случаев выхода из строя таких терминальный частей СНИС, как новых РЛС/САРП и ЭКДИС обусловлены отказом вычислительных средств и в 9% - отказы средств энергообеспечения, что является подтверждением того, что надежность бортовых ВС остается актуальной проблемой в современных условиях. Одновременное удовлетворение таких противоречивых показателей работы ВС как производительность и надежность характеризует эффективность ВС, на повышения которой ориентированы разрабатываемые в работе алгоритмы.

Проблема производительности является актуальной для многих разработчиков ВС. В прошлом повышение производительности универсальных процессоров в основном происходило за счет увеличения тактовой частоты. Однако в настоящий момент практически все ведущие разработчики ВС, такие как Intel, AMD, Тега, Level One, IBM, Cray Research и др. пришли к тому, что дальнейшее повышение частоты оказалось неэффективным из-за ряда фундаментальных физических барьеров, связанных с повышением потребляемой мощности, выделением тепла, задержками при обращении к памяти, архитектурными ограничениями [И]. Выходом из сложившейся ситуации стало разделение задачи на множество одновременных операций и их распределение среди ряда небольших вычислительных устройств [12],[13],[14],[15],[16],[17]. Именно этот путь в настоящее время выбран ведущими производителями вычислительной техники, как наиболее перспективное решение проблемы повышения эффективности ВС как универсальных, так и специализированных [11],[18]. Эффективность подхода, основанного на реализации вычислений в проблемно-ориентированной аппаратуре, называемой сопроцессорами, расширителями, контроллерами, конверторами и др., заключается в следующем:

- проблемно-ориентированные ВС, реализующие специальные методы реализации конкретных задач, отличаются повышенной эффективностью, в сравнении с универсальными. Практика разработки ВС показала, чем выше производительность, тем уже класс эффективно решаемых ими задач [19];

- предоставляется возможность распараллеливания вычислений и, как следствие, увеличение производительности. Параллельная организация вычислений как на аппаратном, так и на программном уровне лежит в основе разделения вычислительного процесса на множество одновременных однотипных операций, реализуемых в проблемно-ориентированных ВС и является в настоящее время мощным инструментом, позволяющим повысить производительность [18],[19];

- проблемно-ориентированные средства отличаются простой аппаратной архитектурой и высокой надежностью [10], что выгодно отличает их при эксплуатации на подвижных объектах, в частности на борту судна.

Необходимо отметить, что распараллеливание и проблемная ориентация вычислений, выбранные ведущими производителями ВС в качестве генерального пути повышения эффективности ВС (ярким примером является оглашенная корпорацией Intel концепция «Разделяй и властвуй» [11]), не являются новыми, но давно признаны и реализуются в подавляющем большинстве специализированных технических средств, систем и приборов, в том числе навигационных.

Заметим, что аппаратурный состав специализированных ВС, как правило, базируется на основе процессоров общего назначения. Причиной этому является их массовое производство и низкая стоимость. При этом, специализация закладывается включением специальной аппаратуры, архитектура которой реализует проблемно-ориентируемые методы вычислений тех задач, которые требуют выполнения большого объема вычислений традиционными способами. Как правило, к такой аппаратуре относятся ВС работающие в жестком режиме реального времени [19]. Так, основное большинство производителей навигационных радаров, такие как DataBridge, JRC, Kelvin Huges, Furuno, Anschutz (радары линейки Pathfinder/ST) и др. для задач построения радарной развертки в РМВ используют отдельный процессор (как правило универсальный), с параллельно подключенной специальной аппаратурой, такой как графические контроллеры, контроллеры ввода/вывода (часто используется несколько контроллеров для каждого вида отображаемой информации) и др. [20],[21 ],[22],[23],[24]. Задачи цифровой обработки сигнала в подавляющем большинстве PJIC также реализуются в специальной аппаратуре [25],[26]. В других навигационных приборах, работающих в режиме реального времени, таких как лаги, эхолоты, приемоиндикаторы спутниковых навигационных систем (ПИ СНС), вычисления также реализуются в проблемно-ориентированных ВС [27],[28],[29].

Тенденция реализации вычислений в проблемно-ориентированных ВС, вместе с растущим объемом информации навигационного характера (конвенционное внедрение АИС, обмен данных между приборами по протоколам NMEA, IEE и др.) привели к целесообразности решения навигационных задач в спецпроцессорах и контроллерах реализующих специальные методы вычислений. Примеров - множество, среди них, такие известные современные PJI станции, как Furuno FR-8051/8111/8251, задачи автоматической радиолокационной прокладки (АРП) в которых решаются в спецпроцессоре [30], линейка PJIC JMA 5110/5106/5104 (производитель JRC), где задачи АРП решаются в рамках отдельной платы на базе спецпроцессора [31], PJIC PATHFINDER®/ST МК2 RADAR, задачи АРП в которой возложены на специальный Tracking Processor [25] и многие другие. Разработке и совершенствованию специальных методов решения навигационных задач как на аппаратном, так и на программном уровне посвящены труды таких ученых как Бранец [32], Д. Парини [33], Van der Veer [34], [35] и др.

Обобщая вышеизложенное отметим, что эффективность современных вычислительных средств во многом определяется их аппаратной архитектурой, отображающей проблемно-ориентированные методы и основанные на них алгоритмы. Роль методов вычислений является основополагающей в специализированной аппаратуре, где за счет проблемной ориентации достигаются повышенная производительность и надежность ВС. Вопрос специализации ВС является особо актуальным в бортовой аппаратуре, т.е в терминальной части СНИС, от которой требуется высокая производительность и надежность при решении задач в РМВ и УМВ по данным информационных потоков СНИС. В частности, эффективность решения навигационных задач на современной этапе также определяется проблемной ориентацией ВС, при этом задача совершенствования методов вычислений остается актуальной благодаря росту объема вычислений, встречающимся случаям отказа ВС и систем энергообеспечения.

В общем случае, снижение объема вычислений при обработке информационных потоков СНИС позволяет достичь следующих технических и экономических преимуществ [8], [9], [10]:

- увеличение объема решаемых задач без повышения производительности вычислительных средств;

- уменьшение нагрузки на вычислительные средства и, как следствие, снижение вероятности случайных ошибок;

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

Таким образом, эффективные методы вычислений и основанные на них алгоритмы должны быть ориентированы на специфику решаемых задач в плане сокращения объема и распараллеливания вычислений. Большинство вычислений навигационного характера, выполняемых при обработке информационных потоков СНИС, описываются аппаратом тригонометрии как на плоскости, так и в пространстве. Наиболее эффективный в настоящее время подход к выполнению тригонометрических преобразований, вращением вектора положен в работах Дж. Волдера, Дж. Меджита, Дж. Уолтера в конце 50-х и в 60-х годах [36], [37], [38]. Результатом стал известный алгоритм Волдера, реализующий ортогональное преобразование плоского ортонормированного базиса и устройство на его основе - CORDIC (Coordinate rotation digital computer - цифровой компьютер для преобразования координат). Далее, в работах российских и зарубежных ученых, таких как Байков В. Д. [39], [40], Смолов В. Б. [41], [42], Каляев А. В. [43], Духнич Е. В. [44], [45], [46], [47] Деревесков С. О. [48], Д. Парини [33], Van der Veer [34],[35],[49], J. Delosme [50], [51], S. Hsiao [52], [53], G. Cavalaro [54], [55], S. Paul [56], A. Elster [57], S. Freeman [58] и др. проведено обобщение алгоритмов вращения вектора и рассматривались вопросы реализации различных математических и прикладных задач (в том числе и навигационных) алгоритмами дискретных линейных преобразований (ДЛП), основывающимися на алгоритме Волдера.

Однако при весомом сокращении объема вычислений алгоритмы ДЛП имеют ряд существенных недостатков. Во-первых, независимо от величины угла для его отработки необходимо выполнить фиксированное количество итераций, равное разрядности углов. Поэтому такие алгоритмы неэффективны в задачах морской навигации, требующих пошагового вращения вектора на малые углы, таких как задачи автосопровождения, проигрывания маневра расхождения судов и др. Во-вторых, данные алгоритмы реализуют «псевдовращение» и им присущ такой недостаток, как удлинение вектора. Использование любого из существующих методов компенсации удлинения [59], [60] (модифицированных алгоритмов Волдера) вызывает значительное усложнение вычислений.

Альтернативный подход к реализации вращения вектора предложен в работах Владимирова В. В. [61], [62], [63], [64]. Предложенные алгоритмы выполняют «естественное», а не «псевдо», трехмерное дискретное линейное вращение вектора вокруг произвольно направленной оси в шкале угловой метрики, методом численного интегрирования. Такие алгоритмы имеют преимущества в сравнении с другими при реализации вращений на малые углы, в частности, исключается удлинение вектора. Более того, базовым операндом вращения, реализуемого этими алгоритмами является трехмерная (а не плоская как в алгоритме Волдера) матрица, в общем случае реализующая кватернионное преобразование, что позволяет существенно сократить объем вычислений в трехмерном пространстве. Однако использование предложенных алгоритмов для решения задач навигации проблематично по следующим причинам.

Реальные процессы, реализацию которых необходимо описать, являются функциями от времени, тогда как аргументами реализуемых преобразований являются углы. Отсутствие временной зависимости не предоставляет возможности учета изменения параметров движения судна и требует перемасштабирования углов вращения на каждом шаге. Поэтому, решение задач, как в РМВ, так и в УМВ будет проблематичным: нарушение интервалов отсчета данных и индикации результатов, усложнение организации вычислительного процесса ввиду невозможности учета изменения шага, и, как следствие, снижение точности отработки и затруднение её итоговой оценки. Кроме того, метод численного интегрирования в этих алгоритмах реализован только по формуле прямоугольников (интегрирование с недостатком), что ограничивает точность вычислений.

Целыо диссертационной работы является разработка алгоритмов дискретных кватернионных преобразований (ДКП), реализующих трехмерное вращение вектора в шкале времени и обеспечивающих сокращение объема вычислений, что способствует повышению надежности бортовых вычислительных средств входящих в состав СНИС и, как следствие, повышению безопасности мореплавания.

Исходными данными для синтеза являются результаты анализа математического содержания и известных методов реализации навигационных задач по данным информационных потоков СНИС.

Результаты работы направлены на сокращение объема и распараллеливание вычислений, при реализации задач морской навигации в судовой навигационно-информационной сети.

Объектом исследования являются алгоритмы для решения траекторных задач морской навигации по данным информационных потоков СНИС: спутниковых навигационных систем (СНС) и автоматических идентификационных систем (АИС) в траекторном процессоре СНИС, как составной части терминала телекоммуникаций.

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

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

Приводится проблемно-ориентированный состав задач, решаемых в судовой навигационно-информационной сети (СНИС) на современном уровне и обосновывается целесообразность введения в состав вычислительных средств СНИС траекторного процессора для достижения максимальной эффективности разрабатываемых алгоритмов. Приводятся и исследуются известные алгоритмы рационального вращения вектора. По результатам анализа приведенных алгоритмов ставится задача синтеза и формулируется задача исследования.

Второй раздел посвящен синтезу алгоритмов дискретного линейного вращения вектора методом численного интегрирования по Стилтьесу. Из общего вида алгоритма получены частные формы. Анализируется геометрия координатного преобразования, реализуемого полученными алгоритмами. По результатам анализа алгоритмы получают обобщенное название - алгоритм дискретного кватернионного преобразования (ДКП). Исследуются вычислительные возможности алгоритма ДКП.

В третьем разделе доказывается сходимость алгоритма ДКП, исследуются общая структура ошибки алгоритма ДКП, приводятся и выводятся формулы для количественной оценки её составляющих. В результате получена формула суммарной погрешности алгоритма ДКП, на основании которой базируется оценка интервала сходимости в зависимости от заданной величины допустимой ошибки, что необходимо для практического использования алгоритма при решении задач навигации по данным информационных потоков СНИС.

В четвертом разделе приводится обобщенный подход к описанию траектории судна алгоритмами ДКП. Описывается применение алгоритмов ДКП для решения конкретных навигационных задач, решаемых в терминалах СНИС, таких как автосопровождение, автопрокладка, проигрывание маневра и определение текущего значения пройденного расстояния. Приводится методика выбора шага алгоритма ДКП в зависимости от требуемого интервала решения задачи и величины допустимой погрешности.

В пятом разделе описывается примеры аппаратурной и программной реализации алгоритма ДКП, приводятся результаты проверки теоретических оценок точности, выполненной методом математического моделирования на основе данных реальных информационных потоков. Доказывается состоятельность применения алгоритмов ДКП для решения навигационных задач в СНИС путем сравнительного анализа вычислительной сложности задач навигации, реализованных алгоритмами ДКП, как описано в разд. 4 и тех же задач, но решенных ранее известными методами.

Научная новизна представлена следующими результатами:

- разработан новый класс алгоритмов, получивших название алгоритмов дискретных кватернионных преобразований и реализующих вращение вектора в трехмерном пространстве в шкале времени. В отличие от ранее известных, алгоритмы ДКП реализуют вращение вектора по формулам интегрирования различных порядков - прямоугольников, трапеций и парабол;

- исследована и доказана сходимость алгоритмов ДКП;

- получены формулы оценки трансформируемой и суммарной погрешностей алгоритма ДКП, предложена методика выбора шага алгоритма ДКП в зависимости от заданного интервала решения задач и допустимой ошибки вычислений;

- на основании полученных результатов исследования предложен обобщенный подход к реализации траекторных задач алгоритмами ДКП по данным информационных потоков СНИС.

Практической ценностью полученных в диссертации результатов является снижение объема вычислений при обработке информационных потоков СНИС и возможность распараллеливания вычислений в рамках предложенного алгоритма ДКП при решении задач морской навигации, что позволяет увеличить объем (перечень) решаемых вычислительными средствами задач без повышения их мощности, а, следовательно, повысить надежность и уменьшить аппаратурную сложность, энергопотребление и стоимость вычислительных средств терминалов СНИС.

Исследования проводились с использованием методов математического аппарата линейной алгебры, дифференциального и интегрального счисления, дискретной линейной алгебры, теории рядов и математического моделирования.

При выполнении работы использовались полученные самостоятельно автором теоретические результаты и совместные разработки, выполненные на кафедре «Технические средства судовождения» Морской государственной академии им. адмирала Ф. Ф. Ушакова.

Результаты проведенных в диссертации исследований использованы при модернизации программного обеспечения серийно выпускаемого изделия Наяда 25 Ml, а также в научно-исследовательских и опытно-конструкторских разработках по созданию современных средств автоматической радиолокационной прокладки (САРП) на предприятии ОАО «Горизонт», г. Ростов-на-Дону.

Основные положения проведенных исследований были доложены и обсуждены на четвертой Новороссийской городской научной конференции (апрель 2002г.), на Всероссийской научно-технической конференции с международным участием «Компьютерные информационные технологии в науке, инженерии и образовании», г. Таганрог, (май 2004г.), и дважды на Международной научно-практической конференции «Интеллектуальные многопроцессорные системы», г. Дивноморск (сентябрь 2005г.) г. Кацивели (Украина, 2006г.).

Заключение диссертация на тему "Разработка алгоритмов дискретных кватернионных преобразований для решения задач морской навигации в судовой навигационно-информационной сети"

ЗАКЛЮЧЕНИЕ

Основной научный результат состоит в разработке алгоритмов дискретных кватернионных преобразований, снижающих объем вычислений в СНИС при реализации навигационных задач в реальном и ускоренном масштабах времени.

Главные теоретические и практические результаты, полученные в работе, можно сформулировать следующим образом.

1. Выполнен синтез алгоритмов, реализующих дискретное вращение вектора методом численного интегрирования по Стилтьесу в шкале времени. В результате получен класс алгоритмов дискретных кватернионных преобразований (ДКП).

2. Исследована и доказана сходимость алгоритмов ДКП на шаге At. Выполнен анализ погрешностей и получены рабочие формулы для оценки предельной суммарной погрешности и интервала сходимости.

3. Предложена методика выбора шага алгоритма ДКП, в зависимости от требуемого интервала решения задач навигации и допустимой погрешности определения навигационных параметров.

4. Представлен обобщенный подход к описанию траекторных задач алгоритмами ДКП.

5. Разработана подтвержденная патентом на изобретение структура траекторного процессора СНИС, реализующая вращение вектора по алгоритму ДКП (формула трапеций).

6. Проведен сравнительный анализ вычислительной сложности разработанных алгоритмов, подтверждающий сокращение объема вычислений при решении задач навигации.

Полученные результаты подтверждают состоятельность, эффективность и целесообразность использования алгоритмов ДКП для решения траекторных задач.

Основные теоретические положения и прикладные вопросы диссертационной работы представлены следующими частными результатами:

1. Для сокращения объема навигационных вычислений в СНИС выполнен анализ математического содержания задач навигации. Выявлена основная часть математического содержания - тригонометрические преобразования, а наиболее эффективный путь их реализации - вращение вектора на плоскости и в пространстве. Для достижения максимальной эффективности реализации алгоритмов предложено ввести в состав вычислительных средств СНИС траекторный процессор, логику работы которого предложено основывать на алгоритмах вращения вектора. Исследованы известные алгоритмы вращения вектора, и показана необходимость и возможность их дальнейшего развития.

2. Синтезированы алгоритмы, реализующие вращение вектора методом численного интегрирования по Стилтьесу в шкале времени. От известных алгоритмов вращения полученные алгоритмы отличаются реализацией вращения вектора по формулам различных порядков - прямоугольников, трапеций и парабол. Показано, что по своей геометрии используемый метод вращения вектора является кватернионным преобразованием. В результате синтезированные алгоритмы названы дискретными кватернионными преобразованиями. Исследованы вычислительные возможности алгоритмов ДКП.

3. Получены аналитические зависимости связи значений шага, интервала сходимости и погрешности вычислений по алгоритму ДКП.

4. Предложен обобщенный подход к представлению траектории судна по данным информационных потоков СНИС алгоритмами ДКП. Дано описание представления задач АС, АП, ПМ и определения текущего значения пройденного расстояния алгоритмами ДКП. Предложена методика выбора шага и приращения угла вращения в зависимости от интервала решения навигационных задач и требований к точности.

5. В качестве примера аппаратурной реализации ДКП предложена функциональная схема траекторного процессора, также приведен пример программной реализации ДКП на языке Ассемблера. Проведен сравнительный анализ вычислительной сложности алгоритмов ДКП при решении задач АС, АП и ПМ. Анализ показал значительное сокращение объема вычислений в сравнении с классическими методами решения, а именно от 7 до 27 раз, в зависимости от порядка ДКП, и способа его реализации.

Основные материалы диссертации опубликованы в 11 статьях, получены свидетельство РФ об официальной регистрации программы для ЭВМ и патент РФ на изобретение.

Основные положения проведенных исследований были доложены и обсуждены на четвертой Новороссийской городской научной конференции (апрель 2002г.), на Всероссийской научно-технической конференции с международным участием «Перспективные информационные технологии и интеллектуальные системы в науке, инженерии и образовании», г. Таганрог, (май 2004г.) и дважды на Международной научно-практической конференции «Интеллектуальные и многопроцессорные системы», г. Дивноморск (сентябрь 2005г.), г. Кацивели (Украина, 2006г.).

Результаты проведенных в диссертации исследований использованы при модернизации серийно выпускаемого изделия Наяда 25 Ml, а также в научно-исследовательских и опытно-конструкторских разработках по созданию современных перспективных средств автоматической радиолокационной прокладки (САРП) на предприятии ОАО «Горизонт», г. Ростов-на-Дону.

139

Библиография Звягинцев, Николай Сергеевич, диссертация по теме Системы, сети и устройства телекоммуникаций

1. Зайков В. И. Единая математическая модель маневрирующих судов/Крыловские чтения: тез. докл. Всесоюзн. Научно-техн. Конф./ НТО им. акад. А. Н. Крылова. - Л.Судостроение, 1978.

2. Ольшамовский С. Б. Повышение безопасности мореплавания. Часть 1,2,3. Новороссийск: НГМА, 2000г.

3. Ольшамовский С. Б., Перекрестов А. Н. Исследование расхождений крупнотоннажных судов в море. ЦБНТИ ММФ, серия «Безопасность мореплавания», вып. 2. (152), 1983.

4. Instruction manual for ECDIS JAN 3590 Japan Radio Co. LTD.

5. Operator's manual for ECDIS FEA 2100/2105 FURUNO Electric Co. LTD: Nishinomiya, Japan.

6. Кузнецов B.B., Смагин B.A. Прямая и обратная задачи надежности сложных программных комплексов / Надежность и контроль качества./ -1997.-№ 10.

7. Mysa J. A theory of software reliability and its application. /IEEE Trans, on software Eng./ sept. 1975. - vol.SE-1.

8. Литвинский И.Е., Прохоренко B.A. Обеспечение безотказности персональных ЭВМ. М.: Радио и связь, 1993.

9. Дмитриев С. П., Колесов Н. В., Осипов А. В. Информационная надежность, контроль и диагностика навигационных систем. СПб.: ГНЦ РФ - ЦНИИ «Элекроприбор», 2003.

10. Shreekant Thakkar, Tom Huff. The Internet Streaming SIMD Extentions. /Intel Technologies/ 1999. - vol.2.

11. Jagannath Keshava, Vladimir Pentkovskiy. Pentium III Processor Implementation Tradeoffs. /Intel Technologies/ 1999. - vol.2.

12. Glenn Hinton, Dave Sager и др. The Microarchitecture of Pentium 4 Processors. /Intel Technologies/ 2001. - vol. 1.

13. Marius Cornea-Hasegan. Providing the IEEE Correctness of Iterative Floating Point Square Root, Divide and Remainder Algorithms. /Intel Technologies/ -1998.-vol.3.

14. AMD Athlon™ Processor x86 Code Optimization Guide: Advanced Micro Devises Corp.

15. Mobile AMD-K6®-2+ Processor Data Sheet: Advanced Micro Devises Corp.

16. Стив Павловски. Архитектура платформ будущего. /Technology@Intel/ -2006.-vol.1.

17. А. П. Пятибратов, JI. П. Гудыно, А. А. Кириченко. Вычислительные системы, сети и телекоммуникации. М.: Финансы и статистика, 2005.20.1nstallation and user's manual for ECDIS "DataBridge 2000".

18. Radar 3000 Instruction manual. Japan, Tokyo: Japan Radio Co. LTD, 2001.22.0perating Information for Nucleus Radar Systems with AIS. England, London: Kelvin Hughes Publication №2029, 2003.

19. ECDIS EC 1000 EC1000B Technical Manual. Finland, Furuno Publication № 802013.

20. Pathfinder®ST ECDIS Operator Manual. Germany, Kiel: Raytheon Marine, 2002.

21. Pathfinder®ST MK2 Radar Operator Manual. Germany, Kiel: Raytheon Marine, 2002.

22. Workshop Manual Technical and Maintenance Information for Nucleus 3 Radar Systems. England, London: Kelvin Hughes Publication, 2003.

23. SIMRAD GN33 GPS Navigator Manual.- Germany, Hamburg: SIMRAD A Kongsberg Company, 2002.

24. GP-90 Dual Operator Manual. Japan, Nishinomiya: Furuno Electric Co. Publ. № ОМЕ 44271,2003.

25. Color Echo Sounder JFV-90 Instruction Manual. Japan, Tokyo: Japan Radio Co. LTD, 2002.

26. Marine Radar FR 8051/8111/8252 Installation Manual. Japan, Nishinomiya: Furuno Electric Co. Publ. № IME 34240 F, 2001.

27. JMA 5104/5106/5110 Instruction Manual. Japan, Tokyo: Japan Radio Co. LTD, Code № 7ZPRD0590,2001.

28. Бранец В. H., Шмыглевский И. П. Введение в теорию безплатформенных инерциальных систем. М.: Наука, 1992.

29. Парини Д. Система «Дивик» для решения сложных навигационных задач. -Жура. «Электроника», 1966, №18.

30. Van der Veen A.J., Deprettere E.F. Parallel VLSI matrix pencil algorithm for high resolution direction finding /IEEE Trans, on signal processing./-1991.-Vol.39,No.2.

31. Van der Veen A.J., Ober P.B., Deprettere E.F. Azimuth and elevation computation in high resolution DOA estimation /IEEE Trans, on signal processing./-1992.-Vol.40,No.7.

32. Voider J.E. The CORDIC Trigonometric Computing Technique. /IRE Trans. On Electronic Computers./ ,1959, Vol. EC-8 (3)

33. Meggit J.~E. Pseudo Division and Pseudo Multiplication Processes /IBM Journal of Research and Development. /,1962, Vol.6.

34. Walther J.S. A Unified Algorithm for Elementary Functions. /AFIPS Conf. Proc. / ,1971, Vol. 38.

35. Байков В. Д. Вычисление логарифмических и показательных функций по методу «цифра за цифрой» в ЦВМ с плавающей запятой. Изв. вузов. Приборостроение, 1977, т. 20, - №5.

36. Банков В. Д. Селютин С. А. Аппаратурно-ориентированный метод решения задач линейной алгебры. АВТ, 1983, - №1.

37. Смолов В.Б., Байков В. Д. Перспективные направления использования метода вычислений «цифра за цифрой» в микропрограммных процессорах. Изв. Вузов. Приборостроение. 1978,- т.21,№5.

38. Байков В. Д. Смолов В. Б. Аппаратурная реализация элементарных функций в ЦВМ. Л.: Изд. ЛГУ, 1975.

39. Каляев А. В. Многопроцессорные системы с программируемой архитектурой. -М.: Радио и связь, 1984.

40. Духнич Е. В. Каляев А.В. Алгоритмы для аппаратурной реализации преобразования компонент тензоров /Автоматика и вычислительная техника./ I977.-N2.

41. Духнич Е. В. Мурашов С.В. Два варианта алгоритмов для быстрой аппаратурной реализации линейного преобразования отражения /Проектирование ЭВМ: Межвуз. Сб. Научн. трудов.ЛРязань: РГРА, 1992.

42. Духнич Е.И., Егунов В.А. Алгоритмы многомерных отражений, ориентированные на систолическую реализацию /Проектирование ЭВМ: Межвузовский сборник научных трудов./ Рязань : РГРА, 1994.

43. Духнич Е.И. Алгоритмы быстрого преобразования Якоби для мультипроцессорной реализации /Многопроцессорные вычислительные структуры: Межведомственный тематический научный сборник./ -Таганрог: ТРТИ, 1989.- вып. II (XX).

44. Деревенсков С.О. Быстрый ДЛП-алгоритм многомерного вращения вектора /Волгоград.гос.техн.ун-т./ Волгоград, 1995.-4с.- Деп. В ВИНИТИ. № 2442 - В95.

45. Van der Veen A.J., Deprettere E.F., Swindlehurst A.L. Subspace-based signal analysis using singular value decomposition /Proc. of the IEEE./-1993 .-Vol.81.

46. Delosme J.-M., Ipsen I.C. Parallel Solution of Symmetric Positive Definite Systems with Hyperbolic rotations /LINEAR ALGEBRA AND ITS APPLICATIONS./- 1986.- Vol.77.

47. Hsiao S.-F., Delosme J.-M. Parallel Processing of Complex Data Using Quaternion and Pseudo-Quaternion CORDIC Algorithms /In Proceedings of the ASAP'94 Conf./- University of California: 1994.

48. Hsiao S.-F., Delosme J.-M. Householder CORDIC Algorithms /IEEE Transactions on Computers./ 1995. - Vol. 44(8).

49. Hsiao S.-F., Delosme J.-M. Parallel Singular Value Decomposition of Complex Matrices Using Multidimensional CORDIC Algorithms. /IEEE Trans. On Signal Processing./- 1996. Vol. (3).

50. Cavallaro J.R., Elster A.C. Complex Matrix Factorizations with CORDIC Arithmetic /Technical Report 89-1071/ Department of Computer Science, Cornell University.- 1989.

51. Cavallaro J.R., Hemkumar N.-D. Efficient complex matrix transformationsthwith CORDIC /In Proceedings of the 11 IEEE Symposium on Computer Arithmetic./- Windsor, Ontario.- 1993.

52. Paul S., Gotze J, Sauer M. Error Analysis of CORDIC-Based Jacobi Algorithms. /IEEE Transactions on Computers./ 1995. - Vol. 44(7).

53. Elster A.C. A CORDIC Processor Array for the SVD of a Complex Matrix. /R. Vaccaro, Ed., SVD and Signal Processing II./-Amsterdam: Elsevier Science, 1991.

54. Freeman S., O'Donnell M. A Complex Arithmetic Digital Signal Processor Using CORDIC Rotators /In Proceedings of the APPLICATION IMPLEMENTATIONS AND MAPPINGS Conf./ 1995. - Vol. 5.

55. Духнич Е.И., Лукашева Г.Н., Серов A.A. Модифицированные алгоритмы дискретных линейных преобразований вращения /Многопроцессорные вычислительные структуры./ -Таганрог, 1990.-Вып.12 (XXI).

56. Сверхбольшие интегральные схемы и современная обработка сигналов: Пер. с англ./Под ред. С.Гуна, Х.Уайтхауза, Т.Кайлата./- М.: Радио и связь, 1989.

57. Владимиров В. В. Алгоритм кватернионного преобразования и его вычислительные возможности./Многопроцессорные вычислительные структуры. /- Таганрог: ТРТИ, 1987.- Вып. 9.

58. Авторское свидетельство № 1472902. Устройство для преобразования координат (Владимиров В. В.) опубл. БИ. №14,- 1989.

59. Владимиров В. В. Алгоритм сопроцессора дискретного кватернионного преобразования. /Многопроцессорные вычислительные структуры./.-Таганрог: ТРТИ, 1989 с. Вып. 11.

60. Авторское свидетельство № 1403062. Устройство для преобразования координат вектора в трехмерном пространстве (Владимиров В. В. и др.) опубл. БИ. №22,- 1988.

61. Владимиров В. В. Звягинцев Н. С. Решение задачи автосопровождения по спутниковым обсервациям. / Сборник научных трудов НГМА / -Новороссийск: НГМА 2003, вып. №8.

62. Лукин А. Н. Кожухов В. П. и др. Математические основы судовождения. -М.: Транспорт, 1993.

63. Владимиров В. В. Звягинцев Н. С. Вычислительные возможности алгоритма трехмерного дискретного вращения вектора. /Проблемы водного транспорта./ Известия ВУЗов, Северо-Кавказский регион, 2004.

64. Сизов В. В. Морские навигационно-картографические системы. -Ростов н/Д: ИРИДИС, 2000.

65. Кешин М. О. и др. Кинематическое позиционирование в реальном масштабе времени с помощью используемой Интернет дифференциальной GPS разработки НАСА. /Гироскопия и Навигация/СПб.: ЦНИИ «Электроприбор», 2004г, вып. 47.

66. Пелевин А. Е. Стабилизация движения судна на криволинейной траектории. /Гироскопия и Навигация./- СПб.: ЦНИИ «Электроприбор», 2002, вып. 37.

67. Кузнецов В.В., Смагин В.А. Прямая и обратная задачи надежности сложных программных комплексов / Надежность и контроль качества./ -1997.-№ 10.

68. Муса Дж.Д. Измерение и обеспечение надежности программных средств. /ТИИЭР/, 1980, Т.68, №9.

69. Карповский Е.Я., Чижов С.А. Надежность программной продукции. -Киев: Техника, 1990.

70. Mysa J. A theory of software reliability and its application. /1ЕЕЕ Trans, on software Eng./ sept. 1975. - vol.SE-1.

71. Духнич Е.И. Синтез класса алгоритмов и вычислительных структур для реализации дискретных линейных преобразований: Диссерт. на соискание уч. степени д.т.н. Таганрог, 1985.

72. Андреев А. Е. Аппаратурно-ориентируемые алгоритмы типовых унитарных преобразований линейной алгебры: Диссерт. на соискание уч. степени к.т.н. Волгоград, 1998.

73. Тесленко А. В. Разработка и исследование аппаратурно-ориентированных алгоритмов дискретных косинусных преобразований: Диссерт. на соискание уч. степени к.т.н. Волгоград, 1998.

74. Духнич Е. И. Об одном подходе к выполнению цифровых линейных преобразований // Кибернетика. 1985.- N5.

75. Егунов В.А. Разработка и исследование аппаратурно-ориентированных алгоритмов быстрого преобразования Хаусхолдера: Диссерт. на соискание уч. степени к.т.н.- Волгоград, 1996.

76. Стрельников Олег Иванович. Разработка и исследование аппаратурно-ориентированных алгоритмов для нахождения собственных значений матриц. Диссерт. на соискание уч. степени к.т.н. Волгоград, 2002.

77. Духнич Е.И., Деревенсков С.О. ДЛП-алгоритмы многомерных вращений для СБИС-реализации /Многопроцессорные вычислительные структуры: Междуведомственный тематический научный сборник сборник./ -Таганрог: ТРТИ, 1995.- Вып. 15-16.

78. Деревенсков С.О. Быстрый ДЛП-алгоритм многомерного вращения вектора /Волгоград.гос.техн.ун-т./- Волгоград, 1995.-4с.- Деп. В ВИНИТИ. № 2442 В95.

79. Авторское свидетельство №959071. Вычислительное устройство. (Владимиров В. В. и др.) опубл. БИ №34, 1982.

80. Духнич Е. И., Лученко А. Е. и др. Итерационный способ решения ОГЗ для преобразования гиперболических координат в геодезические. Деп. рук. №3-6679, МРС, ТТЭ, серия 0, №31,1981.

81. Духнич Е. И., Лученко А. Е. и др. Векторный метод решения обратной геодезической задачи. /Вопросы радиоэлектроники./ Сер. ОТ, 1980, вып.9.

82. Духнич Е. И., Митраков В. А. О возможности расширения набора операций вычислителя DIVIC. / В кн.: III Всесоюзная конференция по аналоговой вычислительной технике./ М.: НТО РЭС им. А. Н. Попова, 1969.

83. Духнич Е. И., Бартошевский В. Д. Алгоритмы решения ОГЗ для функциональных расширителей навигационных ЭВМ. /Известия ЛЭТИ./ -Л.: 1981,-вып. 285.

84. Демидович Б. П., Марон И. А. Основы вычислительной математики. М. : Наука, 1966.

85. Каляев А. В. Теория цифровых интегрирующих машин и структур. М.: «Советское радио», 1970.

86. Г.Корн, Т. Корн. Справочник по математике для научных работников и инженеров. СПб.: издательство «Лань», 2003.

87. Владимиров В. В. Звягинцев Н. С. Анализ и синтез алгоритмов дискретного вращения вектора для решения задач морской навигации. /Проблемы водного транспорта./ Известия ВУЗов, Северо-Кавказский регион, 2004.

88. Казанова Г. Векторная алгебра. М. Мир, 1979.

89. Владимиров В. В. Звягинцев Н. С. Граждан Д. В. Анализ сходимости алгоритмов дискретных кватернионных преобразований. /Перспективные информационные технологии и интеллектуальные системы. /- Таганрог: ТРТУ, 2005,-№1(21).

90. В.В. Владимиров, Н. С. Звягинцев, Д. В. Граждан. Применение кватернионных преобразований для описания траектории судна. /Проблемы водного транспорта./ Известия ВУЗов, Северо-Кавказский регион, 2004.

91. Программный код алгоритма ДКП (п=0)386р

92. STK SEGMENT STACK USE16 DB 256 DUP (?) STK ENDS

93. DATA SEGMENT PARA PUBLIC "DATA" USE16kSISW DB 1 ;REVERSE/DIRECT SWITCHgXO DD 10.0 ;INPUT COORDINATES gYO DD 10.0 gZO DD 10.0mAAx DD 12.0 ;ANGLES TO ROTATE ON mAAyDD 12.0 mAAz DD 12.0

94. M DD 1.0 ;ACCURACY DATA ENDS

95. EXTRN ITERALGOR:FAR EXTRN REVERSE:FAR

96. CODE SEGMENT PARA PUBLIC "CODE" USE16 MAIN:

97. ASSUME CS:CODE, DS:DATA MOV AX, DATA MOV DS, AX XOR AX, AX

98. CALL ITERALGOR JMP EXIT REVSCALL:

99. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

100. CLUDE SGNMACRO.INC INCLUDE macroSC.INC INCLUDE macroROT.INC INCLUDE NULLaxis.INC INCLUDE ALGOmacr.INC INCLUDE STOPcond.INC KSIS STRUC STRUCTURE FOR ROTAXIS X DD (?) Y DD (?) Z DD (?) KSIS ENDS .386p

101. ROTATION AXIS & kSi SWITCH1. RTAXIS DB (?)

102. STOPAXIS DB (?) ;STOP CRITERIA FOR REVERSE CALCULATIONS kSISW DB (?) ; 1 IS TRUE, 0 FALSE - REVERSE CALC SWITCHхххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх COMMONDATA ENDS

103. DATA SEGMENT PUBLIC PARA "DATA" USE16 ADDRSTOP DW ENDCYCLE

104. RADS DD 0.017453292519943295769236907684886 ;PI/180 RADSdiv60 DD 0.0002908882086657215961539484614 ;RADS/60 AuxAccDD 1.1547005383792515290182975610039 ;2/SQR(3) ;INPUT ANGLES

105. AAx DD (?) AAy DD (?) AAz DD (?)1.TERMIDIATE ANGLES

106. Aix DD (?) AiyDD (?) Aiz DD (?)1. SCALE VALUESdAx DD (?) dAy DD (?) dAzDD (?)

107. Mx DD (?) My DD (?) Mz DD (?)kSi VALUES

108. KSIKSIS о ;STRUCTURE FOR ROTAXIS

109. SGNS KSIS о ;KSIS STRUC FOR MEMORIZING SGN (AAx, AAy, AAz)

110. NLAXISBF KSIS о ; FOR NULLAXIS MACRO

111. NLAXISAF KSIS о ;F0R ALTERNATIVE STOPkSiX DD (?)kSiY DD (?)kSiZ DD (?)1. STEP & ACCURACY1. STP DD (?) ;M DD 600.01. COORDINATEScX0 DD 10.0 ;cY0 DD 10.0 ;cZ0 DD 10.0cXl DD (?) cYl DD (?) cZl DD (?)cX2 DD (?) cY2 DD (?) cZ2 DD (?)

112. XFINAL DD (?) YFINAL DD (?) ZFINAL DD (?)

113. ROTATION AXIS & KSI SWITCH ;RTAXIS DB "X"

114. STOPAXIS DB "Y" ;STOP CRITERIA FOR REVERSE CALCULATIONS ;kSISW DB 1 ; 1 IS TRUE, 0 FALSE - REVERSE CALC SWITCH1. THREE DD 3.0 TWO DD 2.01.DD (?)1. DD (?)1.I DD (?) DATA ENDS1. PUBLIC ITERALGOR

115. CODE SEGMENT PUBLIC PARA "CODE" USE16 ASSUME CS:CODE, DS:DATA, ES:COMMONDATA1. MAIN:1.ERALGOR PROC FAR1. MOV AX, COMMONDATA1. MOV ES, AX1. XORAX, AX1. MOV AX, DATA1. MOV DS, AX1. XORAX, AX1. FINIT

116. FLD gAAz FLD gAAy FLD gAAx FSTP AAx FSTP AAy FSTP AAz1. XXXXXXXXXX

117. SCALING & CALCULATING STEP ;XXXXXXXXXX1.fl: ;FIRST KSI SWITCH CONDITION

118. MOV AL, kSISW CMP AL, 1 JETRUE1

119. ELSE1: ;KSI SWITCH IS FALSE1. SCALE AAx, AAy, AAz, RADS

120. FSTP Mx RETRIEVING SCLAED ANGLES FROM NCP STACK1. FSTP My FSTP Mz1. CALCULATING STEP

121. FMUL RADSdiv60 RADIANS FSTM1. FMUL AuxAcc FSTP STP1. JMP ENDIF1

122. TRUE1: FLDM FLD1 FLD1 FLD1 FSTP Mx FSTP My FSTP Mz

123. FMUL RADSdiv60 RADIANS FSTP STP1. ENDIF1:1. XOR AL, AL ;END IF11. FLDMz ;dAj=Mj*STP

124. FLD My FLD Mx FMUL STP FSTP dAx FMUL STP FSTP dAy FMUL STP FSTP dAz ;XXXXXXXXXX

125. END SCALING & CALCULATING STEP ;XXXXXXXXXX

126. XXXXXXXXXX ;SETTING ROTATION AXIS ;XXXXXXXXXX

127. SGN1 AAx FSTP SGNS.X SGN1 AAy FSTP SGNS.Y SGN1 AAz FSTP SGNS.Z•xxxxxxxxxx

128. HERE BEGINS THE CYCLE ;ХХХХХХХХХХ

129. MOV ECX, 1 ;STOP CONDITIONS PUT ZERO IN THIS REGISTER

130. CONVERTING IN MINUTES AND MINUTES IN

131. SAVING ACCURACY FOR NORMSTOP

132. STP = 2*M/SQR(3) ;SAVING STP1. KSI SWITCH IS TRUE1. Mx=My=Mz=I ;STP=M

133. CONVERTING STEP IN MINUTES AND MINUTES IN1. DO CYCLE:1.ITIAL ALGORITHM DATA1. CMP ECX, 1 JNE COUNTER2

134. FLD cZO ;IF IT IS FIRST STEP X1=X2=X0, SAME OTHER COORDS1. FLD cYO FLD cXO

135. FST cX2 FSTP cXl FST cY2 FSTP cYl FST cZ2 FSTP cZl1. JMP ENDCOUNTER

136. COUNTER2: CMP ECX,2 JNE ENDCOUNTER

137. FLD cZO ;IF IT IS SECOND STEP X1=X0, SAME OTHER COORDS1. FLD cYO1. FLD cXO1. FSTPcXl1. FSTP cYl1. FSTP cZl1. ENDCOUNTER:

138. END INITIAL ALGORITHM DATA

139. SECOND KSI SWITCH CONDITION1.f2:

140. MOV AL, kSISW CMP AL, 1 JE TRUE2 ELSE2: SGN2 AAx, Aix FSTP kSiX SGN2 AAy, Aiy FSTP kSiY SGN2 AAz, Aiz FSTP kSiZ

141. KSI SWITCH IS FALSE kSiX=SGN(Ax-Aix) kSiY=SGN(Ay-Aiy) kSiZ-SGN(Az-Aiz)1. JMP ENDIF2

142. TRUE2: ;KSI SWITCH IS TRUE

143. ROTAXIS KSI, RTAXIS, cX2, cY2, cZ2 ;SETTING kSis AS PER REQ ROTATION AXIS FSTP kSiX FSTP kSiY1. FSTP kSiZ1. ENDIF2: ;END IF21. XORAL, AL

144. XXXXXXXXXX ; ALGORITHM MACRO :XXXXXXXXXX1. ALGORITHM

145. XXXXXXXXXX ; ALGORITHM ENDS ;XXXXXXXXXX

146. RE-ASSINING INITIAL DATA AND CHECKING FOR STOP1. FLD cZ2 FLD cY2 FLD cX2

147. FSTP cXl FSTP cYl FSTP cZl1. X1=X2 ;Y1=Y2 ;Z1=Z21.f3: ;THIRD KSI SWITCH CONDITION

148. MOV AL, kSISW ;MEMORIZING INITIAL kSiS

149. CMP AL, 1 JNE ENDIF3 TRUE3: ;KSI SWITCH IS TRUE

150. NULLAXIS NLAXISBF, STOPAXIS, cX2, cY2, cZ21. ENDIF3: ;END IF31. XOR AL, AL

151. FLD ZFINAL FLD YFINAL FLD XFINAL

152. FSTP cX2 FSTP cY2 FSTP cZ21.f4: ;FOURTH KSI SWITCH CONDITION

153. MOV AL, kSISW CMP AL, 1 JE TRUE4

154. ELSE4: ;KSI SWITCH IS FALSE1. FLD dAz FLD dAy FLD dAx

155. FMUL SGNS.X FSTP dAx FMUL SGNS.Y FSTP dAy FMUL SGNS.Z FSTP dAz

156. CALCULATING Aij=Aij+dAj*SGN(Aj)

157. FLD dAx FLD Aix FLD dAz FLD Aiz FLD dAy FLD Aiy

158. FADD FXCH ST(1) FADDP ST(2),ST FXCH ST(2)

159. FADDP ST(3),ST ;RESULT IN NCP Z, Y, X

160. FSTP Aiz FSTP Aiy FSTP Aix

161. NORMSTOP AAx, AAy, AAz, Aix, Aiy, Aiz, M CMP ECX, 0 JNEDONEXT JMP ADDRSTOP DONEXT: ;IF STOP TRUE STOP ;ELSE CONTINUE CYCLE JMP ENDIF4 TRUE4: ;KSI SWITCH IS TRUE

162. NULLAXIS NLAXISAF, STOPAXIS, XFINAL, YFINAL, ZFINAL ALTSTOP NLAXISBF, NLAXISAF ZEROCHECK kSiX, kSiY, kSiZ

163. EXIT CYCLE HERE IF STOP IS TRUE CMP ECX, 0 JNE DONEXT 1

164. JMP ADDRSTOP ;IF STOP TRUE STOP DONEXT1: ;ELSE CONTINUE CYCLE

165. FLD dAx ;CALCULATING Aij=Aij+dAj1. FLD Aix1. FLD dAz1. FLD Aiz1. FLD dAy1. FLD Aiy

166. FADD FXCH ST(1) FADDP ST(2),ST FXCH ST(2) FADDP ST(3),ST

167. FSTP Aiz FSTP Aiy FSTP Aix ENDIF4: XORAL, AL1. RESULT IN NCP Z, Y, X1. END IF4

168. C ECX JMP DOCYCLE !!!!!!!!!!!!!!!!!!!!!!! XXXXXXXXXX ENDING ALGORITHM CYCLE XXXXXXXXXX ENDCYCLE: FINIT FLD Aiz FDIV RADS FLD Aiy FDIV RADS FLD Aix FDIV RADS FLD ZFINAL FLD YFINAL FLD XFINAL

169. CREASING CYCLE COUNTER ;IF STOP FALSE CONTINUE

170. CONVERTING BACK IN DEGREES

171. CONVERTING BACK IN DEGREES

172. CONVERTING BACK IN DEGREES1. FLDZ

173. FST NLAXISBF.X ;RE-INITIALIZING ALL DATA IN CASE OF LATER USE1. FST NLAXISBF.Y1. FST NLAXISBF.Z1. FST NLAXISAF.X1. FST NLAXISAF.Y1. FST NLAXIS AF.Z

174. FST Aix FST Aiy FST Aiz FST dAx FST dAy FSTP dAz1. RET ENDP

175. EXITALL: MOV AX, 4C00h INT21H1. CODE ENDS END MAIN386p

176. ROTATION AXIS & kSi SWITCH1. RTAXIS DB (?)

177. STOPAXIS DB (?) ;STOP CRITERIA FOR REVERSE CALCULATIONS kSISW DB (?) ;1 IS TRUE, 0 FALSE - REVERSE CALC SWITCH ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx COMMONDATA ENDS

178. DATA SEGMENT PARA PUBLIC "DATA" USE 16mXO DD 20.0 ;INPUT COORDINATES mYO DD 20.0 mZO DD 20.0mAAx DD (?) ;ANGLES TO ROTATE ON mAAy DD (?) mAAz DD (?)mM DD 0.1 ;ACCURACY

179. ROTATION AXIS & kSi SWITCH mRTAXIS DB "X"'mSTOPAXIS DB "Y" ;STOP CRITERIA FOR REVERSE CALCULATIONS mkSISW DB (?) ; 1 IS TRUE, 0 FALSE - REVERSE CALC SWITCH

180. REVERSE CALCULATIONS OUTPUT VALUES1. AxP DD (?) AyP DD (?)1. AzP DD (?)

181. AxVrDD (?) Ay Vr DD (?) AzVr DD (?)

182. PrjYOZ DD (?) PijXOZ DD (?) PrjXOY DD (?)1. DATA ENDS

183. CODE SEGMENT PARA PUBLIC "CODE" USE16

184. EXTRN ITERALGOR-.FAR MAIN:

185. ASSUME CS:CODE, DS:DATA, ES:COMMONDATA MOV AX, DATA MOV DS, AX XORAX, AX

186. MOV AX, COMMONDATA MOV ES, AX XORAX, AX1. SETTING ACCURACY1. FINIT1. FLD mM1. FSTP M1. XXXXXXXXXX1. FIRST ROUND OF CYCLES1. XXXXXXXXXX1. ROTATION AROUND X ON ZOX1. XXXXXXXXXX

187. SETTING INPUT DATA FOR ALGORITHM FLD mZO FLD mYO FLDmXO FSTP cXO FSTP cYO FSTP cZO MOV AL, "Y" MOV STOPAXIS, AL MOV AL, "X" MOV RTAXIS, AL MOV AL, 1 MOV kSISW, AL

188. CALL ITERALGOR ;SAVING OUTPUT DATA1. FSTP сХО FSTP cYO

189. FST PrjYOZ ;SAVING PROJECTION ON YOZ FSTP cZO

190. FSTP AxP ;Ax ANGLE ;XXXXXXXXXX

191. END ROTATION AROUND X ON ZOX1. XXXXXXXXXX1. XXXXXXXXXX

192. ROTATION AROUND Y ON XOY ;XXXXXXXXXX FINIT

193. SETTING INPUT DATA FOR ALGORITHM MOVAL, "Z"

194. MOV STOPAXIS, AL ;NO NEED TO RESET cXO, cYo, cZO THEY WERE RE-SAVED ABOVE

195. MOV AL, "Y" ;NO NEED TO SET kSISW TO 1 IT WAS SET TO 1 ABOVE1. MOV RTAXIS, AL1. CALL ITERALGOR FXCH ST(4)

196. FSTP AxVr ;SAVING YOZ PROJECTION ANGLE FINIT1. XXXXXXXXXX1. END FIRST ROUND OF CYCLES1. XXXXXXXXXX1. XXXXXXXXXX1. SECOND ROUND OF CYCLES1. XXXXXXXXXX1. ROTATION AROUND Y ON XOY1. XXXXXXXXXX

197. SETTING INPUT DATA FOR ALGORITHM FLD mZO FLD mYO FLD mXO FSTP cXO FSTP cYO FSTP cZO MOVAL, "Z" MOV STOPAXIS, AL MOV AL, "Y" MOV RTAXIS, AL

198. CALL ITERALGOR ;SAVING OUTPUT DATA FST PrjXOZ ;SAVING PROJECTION ON YOZ FSTP cXO FSTP cYO FSTP cZO1. FXCH ST(1)

199. FSTPAyP ;Ay ANGLE ;XXXXXXXXXX

200. END ROTATION AROUND Y ON XOY ;XXXXXXXXXX ;XXXXXXXXXX ROTATION AROUND Z ON ZOY ;XXXXXXXXXX FINIT

201. SETTING INPUT DATA FOR ALGORITHM MOV AL, "X"

202. MOV STOPAXIS, AL ;NO NEED TO RESET cXO, cYo, cZO THEY WERE RE-SAVED ABOVE

203. MOV AL, "Z" ;NO NEED TO SET kSISW TO 1 IT WAS SET TO 1 ABOVE1. MOV RTAXIS, AL1. CALL ITERALGOR FXCH ST(5)

204. FSTP AyVr ;SAVING XOY PROJECTION ANGLE FINIT1. XXXXXXXXXX

205. END SECOND ROUND OF CYCLES iXXXXXXXXXX1. XXXXXXXXXX1. THIRD ROUND OF CYCLES1. XXXXXXXXXX1. ROTATION AROUND Z ON ZOY1. XXXXXXXXXX

206. SETTING INPUT DATA FOR ALGORITHM FLD mZO FLD mYO FLD mXO FSTP cXO FSTP cYO FSTP cZO MOV AL, "Xм MOV STOPAXIS, AL MOV AL, "Z" MOV RTAXIS, AL

207. CALL ITERALGOR ;SAVING OUTPUT DATA FSTP cXO

208. FST PrjXOY ;SAVING PROJECTION ON XOY FSTP cYO FSTP cZO FXCH ST(2)

209. FSTPAzP ;Az ANGLE ;XXXXXXXXXX

210. END ROTATION AROUND Z ON ZOY ;XXXXXXXXXX ;XXXXXXXXXX ROTATION AROUND X ON XOZ ;XXXXXXXXXX FINIT

211. SETTING INPUT DATA FOR ALGORITHM MOV AL, "Y" MOV STOPAXIS, AL MOV RTAXIS, AL1. CALL ITERALGOR FXCH ST(3)

212. FSTP AzVr ;SAVING XOY PROJECTION ANGLE1. XXXXXXXXXX1. END THIRD ROUND OF CYCLES1. XXXXXXXXXX1. FINIT1. FLD AzVr1. FLD AyVr1. FLD AxVr1. FLD PrjXOY1. FLD PrjYOZ1. FLD PrjXOZ

213. EXIT: MOV AX, 4C00h INT21H CODE ENDS END MAIN1. ALGORITHM MACRO FINIT

214. CALCULATING I, II, III FLD cXl FLD cX2 FMULTHREE FSUBR

215. FDIV TWO ;I = (3*X2-Xl)/2 FSTI

216. FLD cYl FLD cY2 FMUL THREE FSUBR

217. FDIV TWO ;II = (3*Y2-Yl)/2 FST II1. FLD cZl FLD cZ21. FMUL THREE FSUBR

218. FDIV TWO ;III = (3*Z2-Zl)/2 FST III1. FLD dAy FLD kSiY FMUL

219. FMUL ;dAy*kSiY*III, STACK RESLT1III00.

220. FXCH ST(1) ; STACK IIRESLT1I00. FLD dAz FLD kSiZ FMUL

221. FMUL ;dAz*kSiZ*II, STACK RESLT2RESLT1I00 FSUB ;RESULT 1 -RESU LT2, STACK NEWRSLTI00 FLD cX2

222. FADD ;XFINAL FSTP XFINAL ; STACK I00.1. FLD dAz FLD kSiZ FMUL

223. FMUL ;dAz*kSiZ*I, STACK RESLT100.1. FLD III1. FLD dAx1. FLD kSiX1. FMUL

224. FMUL ;dAx*kSiX*III, STACK RESLT2RESLT100. FSUB ;RESULT1-RESULT2, STACK NEWRSLT00. FLD cY2 FADD1. FSTP YFINAL ;STACK 00.

225. FLD II FLD dAx FLD kSiX FMUL

226. FMUL ;dAx*kSiX*II, STACK RESULT00.1. FLD I1. FLD dAy1. FLD kSiY1. FMUL

227. FMUL ;dAy*kSiY*I, STACK RESLT2RESLT100. FSUB ;RESULT1-RESULT2, STACK NEWRSLT00., FLD cZ2 FADD1. FSTP ZFINAL ;STACK 00.1. ENDM

228. THIS MACRO REQUIRES PRE-DIFENED KSIS STRUC ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ROTAXIS MACRO KSI:REQ, STRING 1:REQ, X2:REQ, Y2:REQ, Z2:REQ LOCAL Xc, Yc, Zc, GoOUT

229. XORAX, AX MOV AL, STRING 1 CMP AL, "X" JE Xc1. CMP AL, "Y" JE Yc1. CMP AL, "Z" JE Zc1. Xc:1. SGN1 Y2

230. FSTP KSI.X; USING FREE FIELD TO STORE INTERMIDIATE SGN VALUE SGN1 Z2 FMUL KSI.X FSTP KSI.X FLDZ FST KSI.Y FSTP KSI.Z JMP GoOUT Yc:1. SGN1 X2

231. FSTP KSI.Y ; USING FREE FIELD TO STORE INTERMIDIATE SGN VALUE SGN1 Z2 FMUL KSI.Y FSTP KSI.Y FLDZ FST KSI.X FSTP KSI.Z JMP GoOUT Zc:1. SGN1 X2

232. FSTP KSI.Z; USING FREE FIELD TO STORE INTERMIDIATE SGN VALUE SGN1 Y2 FMUL KSI.Z FSTP KSI.Z FLDZ FST KSI.X FSTP KSI.Y GoOUT: FINIT FLD KSI.Z FLD KSI.Y FLD KSI.X ENDM

233. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

234. ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХхххххххххххххххххххххх1. PART OF ITERALGOR

235. COMPARES 3 SIGNED/UNSIGNED DWORD VALUES ;RETURNES 3 SCALED ABS VALUES ;OUTPUT ON TOP OF NCP STACK

236. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXхххххххххххххххххххххх

237. SCALE MACRO X:REQ, Y:REQ, Z:REQ, CONV:REQ

238. CAL XABS, YABS, ZABS, RADconv, XmoreYxUnZ, XxIsMAX, YxIsMAX, ZxIsMAX,1. GoOUT1. XABS DD (?)1. YABS DD (?)1. ZABS DD (?)1. FINIT FLDX FLDY FLDZ

239. FMUL CONV CALCULATING THEIR ABS VALUES AND CONVERTING DEGREES IN REQ UNITS FSTZ FABS1. FSTP ZABS

240. FMUL CONV CALCULATING THEIR ABS VALUES AND CONVERTING DEGREES IN REQ UNITS FSTY FABS1. FSTP YABS

241. FMUL CONV CALCULATING THEIR ABS VALUES AND CONVERTING DEGREES IN REQ UNITS FSTX FABS1. FSTP XABS1. FLD YABS FLD XABS

242. FCOM COMPARING XABS AND YABS1. FSTSWAX1. SAHF1. JAE XmoreYxUnZ1. FINIT FLD ZABS FLD YABS

243. FCOM COMPARING YABS AND ZABS1. XOR АХ, АХ1. FSTSWAX1. SAHF1. JAE YxIsMAX

244. JMP ZxIsMAX ;Z is MAX and goes for output

245. XmoreYxUnZ: ;XABS >YABS, COMPARING XABS AND ZABS

246. FXCH ST(1) FSTP YABS FLD ZABS FXCH ST(1) FCOM1. XOR AX, AX FSTSW AX SAHF

247. JAE XxIsMAX ;OTHEWISE Z IS MAX1. ZxIsMAX:1. FINIT

248. FLD ZABS ;Z is MAX and goes for output ;SCALING CALCULATIONS WITH MAX = Z1. FLD XABS1. FDIVR ; XABS/ZABS

249. FSTP XABS ;NOW XABS IS SCALED

250. FLD ZABS ;ZABS IS MAX ANGLE FLD YABS1. FDIVR ; YABS/ZABS

251. FSTP YABS ;NOW YABS IS SCALED1. FLD1

252. FSTP ZABS ; Z IS MAX ANGLE, ITS SCALE -1 JMP GoOUT1. YxIsMAX:1. FINIT

253. FLD YABS ;Y is MAX and goes for output ;SCAL1NG CALCULATIONS WITH MAX = Y FLD XABS1. FDIVR ; XABS/YABS

254. FSTP XABS ;NOW XABS IS SCALED

255. FLD YABS ;YABS IS MAX ANGLE FLD ZABS1. FD1VR ; ZABS/YABS

256. FSTP ZABS ;NOW ZABS IS SCALED1. FLD1

257. FSTPYABS ; Y IS MAX ANGLE, ITS SCALE -1 JMP GoOUT1. XxIsMAX:1. FINIT

258. FLD XABS ;X is MAX and goes for output ;SCALING CALCULATIONS WITH MAX = X FLD YABS1. FDIVR ; YABS/XABS

259. FSTP YABS ;NOW YABS IS SCALED

260. FLD XABS ;YABS IS MAX ANGLE FLD ZABS1. FDIVR ; ZABS/XABS

261. FSTP ZABS ;NOW ZABS IS SCALED1. FLD1

262. FSTP XABS ; X IS MAX ANGLE, ITS SCALE -11. GoOUT:

263. FLD ZABS FLD YABS FLD XABS1. ENDM

264. REQUIRES PRE-DEFINED KSIS STRUC ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX NULLaxis MACRO KSINAME:REQ, STRING 1:REQ, X2:REQ, Y2:REQ, Z2:REQ LOCAL Xc, Yc, Zc, GoOUT

265. XORAX, AX MOV AL, STRING 1 CMP AL, "X" JE Xc1. CMP AL, "Y" JE Yc1. CMP AL, "Z" JE Zc1. Xc:1. SGN1 X21. FSTP KSINAME.X1. JMP GoOUT Yc:1. SGN1 Y2

266. FSTP KSINAME.Y JMP GoOUT Zc: SGN1 Z21. FSTP KSINAME.Z GoOUT:1. ENDM

267. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

268. ITIALIZE MACRO MOV AX, @DATA MOV DS, AX XORAX, AX ENDM

269. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx

270. SGN MACRO ;PART OF ITERALGOR

271. CALCULATES SGN OF DIFFERENCE OF 2 FLOAT VALUES ;ONE OF VALUES IS REQ, ANOTHER OPTIONAL

272. ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХxxxxxxx

273. SGN2 MACRO VALUE 1:REQ, VALUE2:REQ LOCAL POSITIVE, ZERO, NEGATIVE, OUTING FINIT

274. FLD VALUE 1 FLD VALUE2 FSUB1. XORAX, AX FTST

275. FSTSWAX SAHF JZ ZERO JC NEGATIVE POSITIVE: FINIT FLD1

276. JMP OUTING ZERO: FINIT FLDZ

277. JMP OUTING NEGATIVE: FINIT FLD1 FCHS OUTING:

278. ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХххххххх

279. SGN1 MACRO VAL1:REQ LOCAL POS, ZEROl, NEGG, OUTING 1 FINIT FLD VAL1 XOR AX, AX FTST

280. FSTSWAX SAHF JZ ZEROl JC NEGG POS: FINIT FLD1

281. JMP OUTING 1 ZEROl: FINIT FLDZ

282. JMP OUTING 1 NEGG: FINIT FLD1 FCHS OUTING 1: ENDM

283. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX NORMSTOP MACRO AA:REQ, BB:REQ, CC:REQ, A:REQ, B.REQ, C:REQ, M:REQ LOCAL CONTINUE, ELSESTOP1. FINIT1. CALCULATING ABS(Aj-Aij)

284. FLD A FLD AA FLD С FLD CC FLD В FLD BB

285. FSUBR FXCH ST(1) FSUBRP ST(2),ST FXCH ST(2)

286. FSUBRP ST(3),ST ;RESULT IN NCP C, B,A FABS1. FXCH ST(2) FABS1. FXCH ST(1)

287. FABS ;RESULT IN NCP А, С, В

288. FCOMPM COMPARING FIRST VALUE DIFF AX1. FSTSWAX1. SAHF1. JA CONTINUE

289. FCOMP M COMPARING 2ND VALUE DIFF AZ1. FSTSWAX1. SAHF1. JA CONTINUE

290. FCOMP M COMPARING 3RD VALUE DIFF AY1. FSTSWAX1. SAHF1. JA CONTINUE1. ELSESTOP: FINIT

291. XOR ECX, ECX ;SETTING COUNTER RG TO ZERO1. CONTINUE: FINIT ENDM

292. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;REQUIRES TWO KSIS STUCTURES ALTSTOP MACRO BEFORE:REQ, AFTER:REQ LOCAL STOPIT, CONTINUE XOR AX, AX FINIT

293. FLD BEFORE.Z FLD BEFORE. Y FLD BEFORE.X FCOMP AFTER.X FSTSW AX SAHF

294. JNE STOPIT FCOMP AFTER.Y FSTSWAX SAHF

295. JNE STOPIT FCOMP AFTER.Z FSTSW AX SAHF1. JNE STOPIT JMP CONTINUE1. STOPIT:

296. XOR ECX, ECX ;SETTING COUNTER RG TO ZERO1. CONTINUE: ENDM

297. VIM! I'Ж Л \!<» ичкаа ы pc i i1 'p /f^A^Ul'i!1. K Iо pia.m (лини pc IN. п. I a Kill пнчч'р l aiinoiiiinii рамп i ы Jiuii тмина 11.< . I'a ipafioi ка а.м ори i мин лпскреi in.i\ una u pinioniii.i \ npt-nnpa touaiimi l.ni решения ta.ia'i ммрскми наши ашш»

298. Li/i ia J" Ml". a ia.'wi.c и Н.Л чпи-ж \ k'.iHH.i iv' iu-m:\ h oi;u i • >-KiMK i p\ ■■ Ivi-1:\ pa -.panoi lie оч. lamno ;iqvi;cK'iiiaiii.!\ c|v jc : я аыома-. i: msi p: n:n !>'.j!,,ti'MiH»M срок sa и

299. Pan.»;;,; !.»:-1ч.!»!сь и рлмкл\ .jm »>.",< >pj о ic\t:H'io Кем ом р\ :.ч»."кч ; ьс .V" J о.; i,i :! ;: jno-j;.1 kiMa.ii.ii;ii, и: юла ра qv.no i км комплскоп. \с Ipoiu ! нл.ижпикчж К ). В. С '.'-'>' г,г- 'Г*