Дипломы, курсовые, рефераты, контрольные...
Срочная помощь в учёбе

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

ДиссертацияПомощь в написанииУзнать стоимостьмоей работы

Проблема производительности является актуальной для многих разработчиков ВС. В прошлом повышение производительности универсальных процессоров в основном происходило за счет увеличения тактовой частоты. Однако в настоящий момент практически все ведущие разработчики ВС, такие как Intel, AMD, Тега, Level One, IBM, Cray Research и др. пришли к тому, что дальнейшее повышение частоты оказалось… Читать ещё >

Содержание

  • Перечень принятых сокращений
  • 1. МЕТОДЫ РЕШЕНИЯ ЗАДАЧ МОРСКОЙ НАВИГАЦИИ В СУДОВОЙ НАВИГАЦИОННО-ИНФОРМАЦИОННОЙ СЕТИ И ПОСТАНОВКА ЗАДАЧИ ИССЛЕДОВАНИЯ
    • 1. 1. Математическое содержание траекторных задач морской навигации на плоскости и сфере
      • 1. 1. 1. Классификация и выбор решаемых задач в траекторном процессоре судовой навигационно-информационной сети
      • 1. 1. 2. Математическое содержание траекторных задач на плоскости
      • 1. 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. Качественная оценка эффективности

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

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

Развитие информационных технологий и совершенствование технических средств навигации (ТСН) привело к объединению ТСН в рамках судового навигационно-информационного комплекса (СНИК), необходимой составляющей которого, согласно конвенционным требованиям, является транспондер автоматической информационной системы (АИС). Это позволяет судам и оператору системы управления движения судов (СУДС) автоматически обмениваться информацией сгенерированной и обработанной в СНИК, что в настоящий момент играет важную роль в обеспечении безопасности мореплавания. Развитие ТСН, входящих в СНИС приводит к увеличению информационных потоков и росту объема вычислений. Такие задачи, как расчет прогнозируемых и исполнительных траекторий судна [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, а также в научно-исследовательских и опытно-конструкторских разработках по созданию современных перспективных средств автоматической радиолокационной прокладки (САРП) на предприятии ОАО «Горизонт», г. Ростов-на-Дону.

Показать весь текст

Список литературы

  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 № 802 013.
  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. № ОМЕ 44 271,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 34 240 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. Авторское свидетельство № 1 472 902. Устройство для преобразования координат (Владимиров В. В.) опубл. БИ. № 14, — 1989.
  59. В. В. Алгоритм сопроцессора дискретного кватернионного преобразования. /Многопроцессорные вычислительные структуры./.-Таганрог: ТРТИ, 1989 с. Вып. 11.
  60. Авторское свидетельство № 1 403 062. Устройство для преобразования координат вектора в трехмерном пространстве (Владимиров В. В. и др.) опубл. БИ. № 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. Авторское свидетельство № 959 071. Вычислительное устройство. (Владимиров В. В. и др.) опубл. БИ № 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.17 453 292 519 943 294 771 042 868 789 248 -PI/180 RADSdiv60 DD 0.2 908 882 086 657 216 152 881 594 368 -RADS/60 AuxAccDD 1.1 547 005 383 792 515 337 217 091 043 328 -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 о ict: H'io Кем ом р :.ч". «кч — ьс .V» J о.- i, i :! -: jno-j-.1 kiMa.ii.ii-ii, и: юла ра qv. no i км комплскоп. с Ipoiu ! нл. ижпикчж К). В. С '.'-'>' г, г- 'Г*
Заполнить форму текущей работой