понедельник, 15 января 2018 г.

Автопилот на AT91SAM7: 2. Программно-аппаратная модель



2.     Программно-аппаратная модель


                Функциональная схема автопилота представлена на рис.1.  Сердцем автопилота является блок LEVEL1. Этот модуль является высокоприоритетной функцией и выполняется независимо от других событий каждые (15.625 мс испытанный вариант) 46.875 мс. Его задача - удержание самолета в правильном полетном положении.  

Рис. 1
Входными данными для модуля является структура FSSi, которая содержит параметры крен (Roll), тангаж (Pitch) и воздушную скорость (Air Speed).  Правильным положением считается при отсутствии сигналов Ref крен = 0 и тангаж = 0. Также этот модуль управляет контроллером двигателя самолета и обеспечивает удержание скорости, полученной от блока LEVEL2 в соответствие с полетным заданием. Модуль Level2 вносит возмущение в модуль LEVEL1 и таким образом заставляет его удерживать уже не нулевые значения крена и тангажа, а рассчитанные в соответствие с полетным заданием. Параметр скорости непосредственно передается из полетного задания. Выходом модуля является структура данных, которая содержит текущее положение элеронов(ailerons), руля высоты(elevator), руля направления или рысканья(rudder) и РУД (Ручка управления двигателем, Throttle). Эта структура в программе названа FSSo, Модуль имеет имя FltStSys (flight stabilization system).  Она может быть подана в PWMC (Pulse Wide Modulation Controller) если активирован режим автопилота. В противном случае на PWMC подается структура, заполненная таймером в соответствие с измеренными значениями, полученными от приемника ВЧ. Это режим управления традиционный для радиоуправляемых моделей.
                Модуль Level2 работает медленнее, 1 раз в секунду он формирует управляющие воздействия - смещает нулевые точки - для модуля Level1. Данные, передаваемые в Level1, помечены словом keep в программе. Т.е. это то, что должен удерживать модуль Level1. Этот модуль выполняет все остальные функции:
1) реализация взлетного режима.
2) Удержание высоты
3) Удержание курса
4) Расчет маршрута и проведение самолета по маршруту, заданному на SD карточке.
5) Запись полетных параметров на SD карту один раз в секунду. (Функция черного ящика)
6) При подключенном к одному из COM портов модуля bluetooth выдача телеметрической информации.
                Основная идея построения LEVEL1 автопилота заключается в построении полностью инерциальной системы пилотирования самолета, не использующей внешние сигналы, такие как фотодатчики цветовой температуры неба и земли или например NAVSTAR или ГЛОНАСС для удержания самолета в нормальном полетном положении. При исчезновении сигнала GPS полет выполняется по магнитному компасу.  Для обеспечения таких требований используются следующие датчики:
1. Roll. Значение крена вычисляется по значению угловой скорости разворота самолета и его линейной скорости в предположении, что разворот происходит без скольжения.  Аналоговый сигнал от датчика угловой скорости GYRO оцифровывается встроенным в контроллер АЦП(ADC1) и далее модуль Calc вычисляет крен.
2. Pitch. Значение тангажа (pitch) контроллер получает путем измерения таймером длительности импульса от датчика-акселерометра.  Это позволительно делать, поскольку как правило слишком быстрого изменения скорости (кроме взлетного режима) у самолетов обычно не бывает.  
3.   Altitude. Для измерения высоты используется датчик абсолютного давления. Данные получаем в виде напряжения, которое оцифровывается одним из каналов АЦП(ADC2) контроллера.
4.  Course. Для получения значения курса используется либо GPS модуль, либо, при его недоступности или при нулевой скорости (перед стартом контроль курса), цифровой компас Honeywell c датчиками Холла.  Подключение к контроллеру по интерфейсу I2C.
5.  Speed. Датчик воздушной скорости на трубке Пито. Используется датчик относительного давления.  Напряжение с датчика измеряется одним из каналов АЦП(ADC3) контроллера. Также для некоторых вещей используется значение скорости с модуля GPS.
6. GPS. Модуль GPS подключен через com порт.  Служит для получения маршрутных данных и скорости относительно земли (GND speed).
7. SD card. Не является датчиком, однако с нее считываются данные о настройках модулей (коэффициенты для формул), данные о маршруте. На нее записываются полетные данные раз в секунду.

Комментариев нет:

Отправить комментарий