РАЗДЕЛ I. ОБЩИЕ ВОПРОСЫ СИНТЕЗА И АНАЛИЗА ИНФОРМАЦИОННО-ИЗМЕРИТЕЛЬНЫХ
СИСТЕМ
УДК 681.3:519.6
МОДЕЛИРОВАНИЕ АЛГОРИТМА ИНЕРЦИАЛЬНОЙ НАВИГАЦИИ
В MATLAB-SIMULINK
М.И. Ледовской
В статье рассмотрены цели и задачи моделирования алгоритма инерциальной навигации в MATLAB-Simulink. Предложены Simulink-блоки на основе С-кода алгоритма. Приведены Simulink-модели для воспроизведения погрешностей алгоритма, а также результаты моделирования.
Ключевые слова: программа микроконтроллера, моделирование алгоритма, Simulink-блок, Simu-link-модель, погрешности алгоритма
Введение
Создание гибридных навигационных систем ГЛОНАСС/БИНС для автотранспортных средств приводит к необходимости моделирования алгоритмов, которые предназначены для реализации в микроконтроллере бесплатформенной инерциальной навигационной системы (БИНС) [1]. Эффективным средством решения данной задачи является система моделирования МА^АВ с пакетом расширения Simulink. В этой системе обеспечивается удобство моделирования входных сигналов БИНС и графического представления результатов.
Однако использование языка МА^АВ-Simulink приводит к тому, что моделирование алгоритма и разработка программы микроконтроллера на языке С выполняются последовательно друг за другом. К тому же исходный алгоритм может со временем уточняться, что требует повторного моделирования в системе МАТЬАВ^тиИпк и последующего отображения вносимых изменений в С-код микроконтроллера. В результате увеличивается общее время разработки БИНС.
В настоящей работе предлагается совместить во времени моделирование алгоритма и разработку программы микроконтроллера. Для этого в качестве главной цели моделирования выдвигается разработка С-кода алгоритма. Эта цель достигается путем сквозной программной реализации алгоритма на языке С, начиная с этапа моделирования, до получения исполняемого кода в среде программирования микрокон-
троллера. Другие цели моделирования, рассмотренные ниже, реализуются с учетом обеспечения указанной главной цели.
Тестирование алгоритма
Как известно [2], алгоритм инерциальной навигации сводится к задаче Коши для системы обыкновенных дифференциальных уравнений. Первоначально алгоритм программируется на языке С в среде Visual C++, где создается консольное приложение с использованием библиотеки MFC для графического представления результатов работы программы (рисунок1).
Для тестирования алгоритма имитируется круговое движение объекта из точки старта с известными координатами. По завершении каждого круга в момент выхода объекта на долготу точки старта фиксируется ошибка алгоритма. Она определяется путем сопоставления счисляемого значения широты места объекта с широтой точки старта. С целью минимизации вычислительной погрешности в программе реализуется метод численного интегрирования Рун-ге-Кутта 4-го порядка, формат данных -«двойное вещественное», шаг интегрирования - 0,01 сек. В частности, при радиусе круга 50 км и скорости 180 км/час ошибка алгоритма после выполнения первого круга движения объекта в пересчете на меры длины составила 1,6 м.
При реализации алгоритма в микроконтроллере достаточно использовать метод численного интегрирования более низкого порядка точности и более короткий формат данных, что требует соответствующего
РАЗДЕЛ I. ОБЩИЕ ВОПРОСЫ СИНТЕЗА И АНАЛИЗА ИНФОРМАЦИОННО ИЗМЕРИТЕЛЬНЫХ СИСТЕМ обоснования. Это является причиной рассмотрения следующих целей моделирования.
ритма в системе MATLAB-Simulink: методи-
W Р W
ческой погрешности м и инструментальной
Рисунок 1 - Процесс тестирования алгоритма
Рисунок 2 - Структура Simulink-модели для экспериментального анализа методической и инструментальной погрешностей алгоритма
Обоснование выбора формата данных, метода и шага численного интегрирования для микроконтроллера
Эти цели достигаются путем экспериментального анализа погрешностей алго-
погрешности 8и (рисунок 2). Однако с учетом главной цели вместо стандартных блоков библиотеки Simulink для реализации алгоритма используются Simulink-блоки собственной разработки. Как известно [3], Simulink позволяет создавать блоки, функциональность которых обеспечивается готовым С-кодом. Кроме того, имеется возможность перекомпилировать С-код после внесения изменений. В нашем случае достаточно воспользоваться С-кодом алгоритма, который получен в среде программирования Visual C++.
Разработке подлежат следующие Simulink-блоки, реализующие алгоритм инерциальной навигации на языке С:
Simulink-блок IN_ideal - эталонная модель алгоритма, где используется метод Рунге-Кутта 4-го порядка и формат данных «двойное вещественное», что позволяет
^ 0 р
обеспечить Ьм ~ и и ~ " соответственно;
Simulink-блок ^_соп^оИег - модель алгоритма, реализуемого в микроконтроллере. Здесь используется метод интегрирования низкого порядка точности, например, формула трапеций и формат данных «короткое вещественное», что приводит к по-
~ Р Р
явлению погрешностей м и и соответственно. Блок используется для анализа ин-
~ Р
струментальной погрешности и путем сопоставления результатов с блоком ^^еа1_соп^оПег (см. ниже), а также суммарной вычислительной погрешности
8в - ем + 8и - с блоком
Simulink-блок ^^еа1_соп^оПег -вспомогательная модель алгоритма. В этом блоке используется метод интегрирования такой же, как в блоке ^_соп^оИег, что вызывает погрешность рм, и формат данных «двойное вещественное», обеспечивающий р ~ 0
и ~ . Блок необходим для анализа мето-
~ Р
дической погрешности м путем сопоставления результатов с блоком
Кроме того, с помощью стандартных блоков библиотеки Simulink создается модель инерциальных измерителей БИНС, которая позволяет построить общую Simulink-модель для экспериментального анализа методической и инструментальной погрешностей алгоритма (рисунок 2).
¡0
10
ПОЛЗУНОВСКИЙ ВЕСТНИК № 3/1 2011
Рисунок 3 - Структура Simulink-модели для экспериментального анализа трансформированной погрешности алгоритма.
Определение требований к точностным характеристикам инерциальных измерителей БИНС
Данная цель достигается путем экспериментального анализа трансформирован-
е
т, которая вы-инерциальных
ной погрешности алгоритма зывается погрешностями измерителей БИНС. Для этого создается модель погрешностей инерциальных измерителей, а затем Simulink-модель на основе двух Simulink-блоков ^_соп^оПег, результаты которых сопоставляются (рисунок 3).
Simulink-модели, приведенные на рисунке 2 и 3, позволяют контролировать выполнение общего баланса погрешностей
ем + еи + е т — е доп
алгоритма м и т доп, а также соотношения между методической и инструмен-
е„„„
е — е
тальной погрешностями м _ и
где
допустимая погрешность.
На рисунке 4 приведен один из результатов моделирования алгоритма в системе МА^АВ^тШтк для случая, когда объект движется по кругу радиусом 5 км со скоростью 180 км/час в течение 6000 сек. При этом в Simulink-блоке ^_соп^оИег используется формула трапеций, шаг интегрирования - 0,1 сек.
В результате моделирования в Simulink-блоке ^_соп^оПег формируется отлаженный С-код алгоритма, который можно использовать в среде программирования микроконтроллера для получения
исполняемого кода, и тем самым ускорить создание БИНС.
•J Scope1
Рисунок 4 - Методическая и суммарная вычислительная погрешность счисления широты места объекта
СПИСОК ЛИТЕРАТУРЫ
1. Ледовской М.И. Алгоритмы математических операций для воспроизведения вариаций переменных в уравнениях инерциальной навигации автотранспортных средств // Перспективы развития навигационных систем ГЛОНАСС, GPS, Galileo: материалы Международной научно-технической конференции - Донецк, ДонНТУ, 2010. -С.76-80.
2. Успенский В.Б. Решение задачи инерциальной навигации в бесплатформенной инерциальной навигационной системе / В.Б. Успенский, И.А. Багмут // Авиационно-космическая техника и технология. - 2009. - №3 (60). - С. 39-44.
3. Черных И.В. Simulink: Инструмент моделирования динамических систем. -Режим доступа: http://matlab.exponenta.ru/simulink/book1/index .php.
Доцент М.И. Ледовской тел. 8-8634-3280-25, kafmps@ttpark.ru - каф. микропроцессорных систем Технологического института Южного федерального университета в г. Таганроге.