exponenta event banner

6DOF ECEF (кватернион)

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

  • Библиотека:
  • Аэрокосмический блок/Уравнения движения/ 6DOF

  • 6DOF ECEF (Quaternion) block

Описание

Блок 6DOF ECEF (Quaternion) Реализация кватернионного представления уравнений движения с шестью степенями свободы в координатах земного центра (ECEF). В нем рассматривается поворот координатной рамки с земным центром (ECEF) (XECEF, YECEF, ZECEF) относительно опорной системы с земным центром (ECI) (XECI, YECI, ZECI). Начало координат ECEF - это центр Земли. Дополнительные сведения о координатной рамке ECEF см. в разделе Алгоритмы.

Ограничения

  • Эта реализация предполагает, что приложенные силы действуют в центре тяжести тела, и что масса и инерция постоянны.

  • Эта реализация генерирует геодезическую широту, лежащую между ± 90 градусами, и долготу, лежащую между ± 180 градусами. Кроме того, высота MSL является приблизительной.

  • Предполагается, что Земля является эллипсоидальной. Установив сведение на 0,0, можно получить сферическую планету. Прецессия Земли, нутация и полярное движение игнорируются. Небесная долгота Гринвича - гринвичское среднее сидереальное время (ГМСТ) и обеспечивает грубое приближение к сидерическому времени.

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

  • Реализация системы координат ECI предполагает, что начало координат находится в центре планеты, ось x - продолжение линии от центра Земли к весеннему равноденствию, точки оси Z в направлении северного полюса средней экваториальной плоскости, положительная на север, а ось y завершает правостороннюю систему.

Порты

Вход

развернуть все

Приложенные силы, заданные как трехэлементный вектор.

Типы данных: double

Приложенные моменты, заданные как трехэлементный вектор.

Типы данных: double

Гринвичский меридиановый начальный угол небесной долготы, определяемый как скаляр.

Зависимости

Чтобы включить этот порт, установите для небесной долготы Гринвича значение External.

Типы данных: double

Продукция

развернуть все

Скорость тела относительно кадра ECEF, выраженная в кадре ECEF, возвращается в виде трехэлементного вектора.

Типы данных: double

Положение в системе координат ECEF, возвращаемое как трехэлементный вектор.

Типы данных: double

Положение в геодезической широте, долготе и высоте, в градусах, возвращаемое как трехэлементный вектор или массив M-by-3, в выбранных единицах длины соответственно.

Типы данных: double

Углы поворота тела [крен, шаг, рыскание], возвращаемые в виде трехэлементного вектора, в радианах. Углы поворота Эйлера - это углы между системой координат тела и NED.

Типы данных: double

Преобразование координат из осей ECI в оси с фиксированным телом, возвращаемое в виде матрицы 3 на 3.

Типы данных: double

Преобразование координат из осей NED в фиксированные оси, возвращаемое в виде матрицы 3 на 3.

Типы данных: double

Преобразование координат из осей ECEF в оси NED, возвращаемое в виде матрицы 3 на 3.

Типы данных: double

Скорость тела относительно кадра ECEF, возвращаемого как трехэлементный вектор.

Типы данных: double

Относительные угловые скорости тела относительно кадра NED, выраженные в кадре тела и возвращаемые в виде трехэлементного вектора, в радианах в секунду.

Типы данных: double

Угловые скорости тела относительно кадра ECI, выраженные в кадре тела и возвращаемые в виде трехэлементного вектора, в радианах в секунду.

Типы данных: double

Угловые ускорения тела относительно кадра ECI, выраженные в кадре тела и возвращаемые в виде трехэлементного вектора, в радианах в секунду в квадрате.

Типы данных: double

Ускорения тела относительно рамки координат ECEF, возвращаемые как трёхэлементный вектор.

Типы данных: double

Ускорения в фиксированных по телу осях относительно кадра ECEF, возвращаемые как трехэлементный вектор.

Зависимости

Чтобы включить эту точку, включите инерционное ускорение.

Типы данных: double

Параметры

развернуть все

Главный

Единицы ввода и вывода, указанные как Metric (MKS), English (Velocity in ft/s), или English (Velocity in kts).

ЕдиницыСилыМоментУскорениеСкоростьПоложениеМассаИнерция
Metric (MKS) НьютонНьютон-метрМетров в секунду в квадратеМетров в секундуМетрыКилограммКилограммовый метр в квадрате
English (Velocity in ft/s) ФунтФут-фунтФутов в секунду в квадратеФутов в секундуНогиСлизнякСлизистая ножка в квадрате
English (Velocity in kts) ФунтФут-фунтФутов в секунду в квадратеУзлыНогиСлизнякСлизистая ножка в квадрате

Программное использование

Параметр блока: units
Текст: символьный вектор
Значения: Metric (MKS) | English (Velocity in ft/s) | English (Velocity in kts)
По умолчанию: Metric (MKS)

Выберите тип используемой массы:

Fixed выбор соответствует ранее описанным уравнениям движения.

Программное использование

Параметр блока: mtype
Текст: символьный вектор
Значения: Fixed | Simple Variable | Custom Variable
По умолчанию: 'Simple Variable'

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

Программное использование

Параметр блока: xg_0
Текст: символьный вектор
Значения: '[0 0 0]' | трехэлементный вектор
По умолчанию: '[0 0 0]'

Начальная скорость в осях тела, заданная как трехэлементный вектор, в фиксированном телом координатном кадре.

Программное использование

Параметр блока: Vm_0
Текст: символьный вектор
Значения: '[0 0 0]' | трехэлементный вектор
По умолчанию: '[0 0 0]'

Начальные углы ориентации Эйлера [крен, тангаж, рыскание], заданные как трехэлементный вектор, в радианах. Углы поворота Эйлера - это углы между системой координат корпуса и системой координат «север-восток-вниз» (NED).

Программное использование

Параметр блока: eul_0
Текст: символьный вектор
Значения: '[0 0 0]' | трехэлементный вектор
По умолчанию: '[0 0 0]'

Начальные угловые скорости тела относительно кадра NED, определенные как трехэлементный вектор, в радианах в секунду.

Программное использование

Параметр блока: pm_0
Текст: символьный вектор
Значения: '[0 0 0]' | трехэлементный вектор
По умолчанию: '[0 0 0]'

Начальная масса жесткого тела, заданная как двойной скаляр.

Программное использование

Параметр блока: mass_0
Текст: символьный вектор
Значения: '1.0' | двойной скаляр
По умолчанию: '1.0'

Инерция тела, заданная как двойной скаляр.

Зависимости

Чтобы включить этот параметр, задайте для параметра Тип массы значение Fixed.

Программное использование

Параметр блока: inertia
Текст: символьный вектор
Значения: eye(3) | двойной скаляр
По умолчанию: eye(3)

Установите этот флажок, чтобы добавить инерционный порт ускорения.

Зависимости

Для активизации порта Abe выберите этот параметр.

Программное использование

Параметр блока: abi_flag
Текст: символьный вектор
Значения: 'off' | 'on'
По умолчанию: off

Планета

Модель планеты для использования, Custom или Earth (WGS84).

Программное использование

Параметр блока: ptype
Текст: символьный вектор
Значения: 'Earth (WGS84)' | 'Custom'
По умолчанию: 'Earth (WGS84)'

Радиус планеты на её экваторе, определяемый как двойной скаляр, в тех же единицах, что и нужные единицы для положения ECEF.

Зависимости

Чтобы включить этот параметр, задайте для параметра Planet model значение Custom.

Программное использование

Параметр блока: R
Текст: символьный вектор
Значения: двойной скаляр
По умолчанию: '6378137'

Сведение планеты, указанное как двойной скаляр.

Зависимости

Чтобы включить этот параметр, задайте для параметра Planet model значение Custom.

Программное использование

Параметр блока: F
Текст: символьный вектор
Значения: двойной скаляр
По умолчанию: '1/298.257223563'

Скорость вращения планеты, заданная как скаляр, в рад/с.

Зависимости

Чтобы включить этот параметр, задайте для параметра Planet model значение Custom.

Программное использование

Параметр блока: w_E
Текст: символьный вектор
Значения: двойной скаляр
По умолчанию: '7292115e-11'

Источник гринвичского меридиана начальной небесной долготы, указанный как:

Internal

Используйте значение небесной долготы из небесной долготы Гринвича.

External

Используйте внешний ввод для значения небесной долготы.

Зависимости

Установка для этого параметра значения External активизирует порт LG (0).

Программное использование

Параметр блока: angle_in
Текст: символьный вектор
Значения: 'Internal' | 'External'
По умолчанию: 'Internal'

Начальный угол между гринвичским меридианом и осью x кадра ECI, определяемый как двойной скаляр.

Зависимости

Чтобы включить этот параметр, задайте для параметра Небесная долгота источника Гринвича значение Internal.

Программное использование

Параметр блока: LG0
Текст: символьный вектор
Значения: двойной скаляр
По умолчанию: '0'

Атрибуты состояния

Присвойте каждому состоянию уникальное имя. Во время линеаризации вместо контуров блоков можно использовать имена состояний.

  • Чтобы назначить имя одному состоянию, введите уникальное имя между кавычками, например: 'velocity'.

  • Чтобы назначить имена нескольким состояниям, введите разделенный запятыми список, окруженный фигурными скобками, например: {'a', 'b', 'c'}. Каждое имя должно быть уникальным.

  • Если параметр пуст (' '), имя не назначено.

  • Имена состояний применяются только к выбранному блоку с параметром name.

  • Число состояний должно равномерно делиться между числом имен состояний.

  • Можно указать меньше имен, чем состояний, но нельзя указать больше имен, чем состояний.

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

  • Чтобы назначить имена состояний переменной в рабочей области MATLAB ®, введите переменную без кавычек. Переменная может быть символьным вектором, массивом ячеек или структурой.

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

Программное использование

Параметр блока: quat_statename
Текст: символьный вектор
Значения: '' | разделенный запятыми список, окруженный фигурными скобками
По умолчанию: ''

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

Программное использование

Параметр блока: pm_statename
Текст: символьный вектор
Значения: '' | разделенный запятыми список, окруженный фигурными скобками
По умолчанию: ''

Имена состояний скорости, указанные как разделенный запятыми список, окруженный фигурными скобками.

Программное использование

Параметр блока: Vm_statename
Текст: символьный вектор
Значения: '' | разделенный запятыми список, окруженный фигурными скобками
По умолчанию: ''

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

Программное использование

Параметр блока: posECEF_statename
Текст: символьный вектор
Значения: '' | разделенный запятыми список, окруженный фигурными скобками
По умолчанию: ''

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

Значение по умолчанию: ''.

Программное использование

Параметр блока: posECI_statename
Текст: символьный вектор
Значения: '' | разделенный запятыми список, окруженный фигурными скобками
По умолчанию: ''

Небесная долгота имени штата Гринвич, заданная как вектор символов.

Программное использование

Параметр блока: LG_statename
Текст: символьный вектор
Значения: '' | скаляр
По умолчанию: ''

Алгоритмы

Начало координат ECEF - это центр Земли. Кроме того, предполагается, что интересующее тело является жестким, что исключает необходимость учитывать силы, действующие между отдельными элементами массы. Представление вращения кадра ECEF от кадра ECI упрощается, чтобы учитывать только постоянное вращение эллипсоида Земли (starte), включая начальную небесную долготу (LG (0)). Это отличное приближение позволяет пренебречь силами, обусловленными сложным движением Земли относительно «неподвижных звезд».

Поступательное движение кадра координат ECEF приведено ниже, где приложенные силы [Fx Fy Fz] T находятся в кадре тела и масса тела m принимается постоянной.

F¯b = [FxFyFz]=m (VюШb +ω¯b×V¯b+DCMbfω¯e×V¯b+DCMbf (ω¯e× (ω¯e×X¯f)))

где изменение положения в x¯˙f ECEF рассчитывается

x¯˙f=DCMfbV¯b

и скорость тела по отношению к кадру ECEF, выраженную в кадре тела (V _ b), угловые скорости тела по отношению к кадру ECI, выраженные в кадре тела (λ _ b). Скорость вращения Земли (λ fe) и относительные угловые скорости тела по отношению к кадру на северо-восток вниз (NED), выраженные в кадре тела (startbetrel), определяются как

V _ b = [uvw], λ _ rel = [pqr], λ _ e = [00ü e], ω¯b=ω¯rel+DCMbfω¯e+DCMbeω¯nedω¯ned=[l˙cosμ−μ˙−l˙sinμ]=[VE/( N + h) VN/( M + h) − VE • tanλ/( N + h)]

Динамика вращения тела, определенная в неподвижном корпусе, приведена ниже, где прикладываемые моменты равны [L M N] T, а тензор инерции I относительно начала координат О .

Уток = [u˙bv˙bω˙b]=1mF¯b−[ω¯b×V¯b+DCMbfω¯e×V¯b+DCMbf (ω¯e× (ω¯e×X¯f))] Ab​ecef=FbmM¯b = [LMN] =Iω¯˙b +ω¯b× (Iω¯b) я = [Ixx−Ixy−Ixz−IyxIyy−Iyz−Izx−IzyIzz]

Интегрирование скорости изменения вектора кватерниона приведено ниже.

[q˙0q˙1q˙2q˙3] = −12 [0ωb (1) ωb (2) ωb (3) −ωb (1) 0−ωb (3) ωb (2) −ωb (2) ωb (3) 0−ωb (1) −ωb (3) −ωb (2) ωb (1) 0] [q0q1q2q3]

В аэрокосмической Blockset™ используются кватернионы, определенные с помощью соглашения scalar-first.

Ссылки

[1] Стивенс, Брайан и Фрэнк Льюис. Управление и моделирование летательных аппаратов, 2-й ред. Хобокен, Нью-Джерси: John Wiley & Sons, 2003.

[2] Макфарланд, Ричард Э. «Стандартная кинематическая модель для имитации полета в НАСА-Эймс». НАСА CR-2497.

[3] «Дополнение к техническому докладу Министерства обороны Мировой геодезической системы 1984: Часть I - Методы, методы и данные, используемые при разработке WGS84». TR8350.2-A DMA.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.
Представлен в R2006a