Самодельный гироскоп (Eng)

Если вы не знаете, что такое RC гироскопы и для чего они нужны, рекомендую обзорную статью http://www.rcdesign.ru/articles/radio/gyro_stady

Идея сделать самодельный гироскоп с функцией удержания направления (Heading Hold, Smart Lock, AVCS) занимала меня довольно давно. В первую очередь это представлялось мне интересной инженерной задачей. Азарт также подстегивали многочисленные утверждения знатоков, что приблизиться к функциональности фирменных гироскопов типа Futaba или CSM невозможно. Реальных же проблем я видел всего три:

1. датчик,
2. алгоритмы и
3. тестирование.

К примеру, решать вторую проблему путем третьей, причем в полевых условиях и на ДВС Рапторе мне представлялось не очень хорошей идеей, особенно при нерешенной первой проблеме. :о)

Решаем проблему номер один (датчик)

От использования недорогих датчиков типа Murata ENC-03M

я отказался сразу после исследования их температурных характеристик. Вот примерно так выглядит экспериментально снятая зависимость выходного напряжения датчика от температуры:

Линейная аппроксимация дает коэффициент около 3.4 мВ на градус температуры. При этом чувствительность датчика - около 0.7 мВ на градус в секунду угловой скорости. Таким образом, изменение температуры всего на 1 градус эквивалентно угловой скорости почти 5 градусов в секунду, т.е. интегральная ошибка азимута за минуту составит почти 300 угл. градусов. Я же хотел получить дрейф азимута не хуже 5-10 градусов в минуту. Следовательно, ENC-03M не подходил мне даже при условии термокомпенсации или термостатирования. От мечты сделать гироскоп в 10 раз лучше Футабы и при этом в 10 раз дешевле поневоле пришлось отказаться. В конце концов, первая проблема решилась просто (хотя и не дешево) - я купил датчик ADIS16100 производства Analog Devices. На www.analog.com можно почитать про iMEMS датчики, например, эту статью (кстати, технология впечатляет!) и скачать документацию.

Поскольку датчик имеет встроенный АЦП, схема получилась довольно простой. Схема гироскопа в формате PDF. Кроме очевидных вещей, я добавил в схему 4 Мбит EEPROM, чтобы облегчить себе решение проблем 2 и 3.

А вот как выглядит собранная плата:

Габаритные размеры 38х27х10 мм, масса - 6 граммов.

Сделать корпус я так и не удосужился, плата просто затянута в термоусадку. Так это выглядит на Trex-450:

 

Решаем проблему номер два (алгоритм работы и закон регулирования)

С алгоритмом в первом приближении все выглядело просто: чтобы получить угол азимута, нужно интегрировать угловую скорость и соответственно управлять хвостовой сервомашинкой, если азимут меняется без команды руля направления (РН). Неясными оставались: закон и параметры регулирования, а также кое-какие нюансы типа того, что делать, если вертолет на земле принудительно развернули на несколько оборотов и ошибка азимута составляет сотни или тысячи градусов.
Для начала я проштудировал инструкции на продвинутые гироскопы Futaba и CSM, поскольку состав их настроек дает некоторое представление о возможном законе регулирования. Очевидно присутствие пропорционального и интегрального контуров регулирования, а также системы демпфирования РН при выходе из быстрых пируэтов. Затем я установил свой гироскоп на вертолет вместе с GY401, причем мой модуль измерял угловую скорость, значение канала РН и длительность сервоимпулься от GY401 и сохранял их в реальном времени в EEPROM. (Кстати, я внимательно изучил инструкцию на GY401 и не нашел там никаких запретов так поступать). В таком режиме логгера я выполнил несколько тестовых полетов и просто различных поворотов с разной амплитудой и скоростью, с разными параметрами gain, delay, DS. Данные из EEPROM перекачивались в РС, обрабатывались и анализировались. Выяснилось, что если рассматривать GY401 как систему стабилизации угла с обратной связью (ОС), то там работает пропорционально-дифференциальное (ПД) регулирование. Соответственно, если рассматривать его как стабилизатор угловой скорости, то регулирование можно назвать пропорционально-интегральным (ПИ). Важно, что интегральный контур имеет ограничитель в несколько десятков градусов, и этот ограничитель препятствует накоплению слишком больших ошибок азимута, когда контур ОС разомкнут (помните нюансы?). После этого не составило большого труда подобрать коэффициенты контуров по образу и подобию Футабы. Вот так, к примеру, совпали графики реакции на разворот гироскопа GY401 и моей компьютерной ПИ модели:

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

Надо честно заметить, что на быстрых пируэтах с разомкнутой ОС дорожки GY401 и моей ПИ модели несколько расходились. Возможно, из-за разных алгоритмов ограничения И контура. Также возможно, что Футаба несколько уменьшает к-ты регулирования при высоких угловых скоростях. В любом случае, я не усмотрел тут особой проблемы для общей функциональности. Что касается дистанционной регулировки чувствительности GY401, она влияет одновременно на коэффициенты обоих контуров (П и И). В режиме DS (digital servo) период сервоимпульсов на выходе GY401 уменьшается с 14 мс до 3.7мс. Регулировка DELAY затягивает быстрые фронты при возвращении ручки РН в нейтраль. Вот, собственно, и все, что удалось вытянуть из GY401.

Далее уже было делом программистской техники претворить добытые сакральные данные в программу для микроконтроллера ATmega88. Объем кода составил около 6 кБайт. На текущий момент реализован нормальный режим и режим удержания направления. Есть поддержка цифровых сервомашинок. Режим и чувствительность задаются с дополнительного канала приемника. Такие параметры как реверс, DS и расходы сервомашинок задаются через установочный режим (quick setup) с передатчика. Ведутся полетные логи в энергонезависимой памяти. Есть канал связи с РС. На текущий момент не реализовано: программирование продвинутых параметров через RS232. Руководство пользователя (пока только меня)

Решаем проблему номер три (тестирование)

Перспектива делать первый взлет с самодельным гироскопом на большом страшном Рапторе мне как-то не очень нравилась. К счастью, к этому времени у меня появился электрический TRex-450SA, а с ним проводить испытания было удобно и не страшно (его при необходимости даже можно было держать в руке). В первых испытаниях участвовала сервомашинка Futaba S3154. Поведение аппарата в полете сравнивалось с GY240 и GY401 субъективно и по логам. Нормальный режим сразу нормально заработал и с пристрастием не анализировался. В режиме удержания: дрейф азимута от времени при висении в нормале (~2400 об/мин) - около 5-10 градусов/мин против 15-20 градусов GY240. Виляние хвостом при резком добавлении-сбросе газа в режиме обычной сервы - 20-25 градусов, как у самоделки, так и в 240 и 401, но в самоделке наблюдались некоторые колебания при возвращении хвоста. В режиме цифровой сервы (DS) самоделка мне понравилась больше, чем 401 (меньше виляние и колебания при резком бросании раддера), но, возможно, это субъективно. По-любому, эффективности ХР не хватало, чтобы адекватно компенсировать набросы шага/газа. В Idle-up (~2900 об/мин) и DS хвост был "как прибитый" как на самоделке, так и на GY401. В общем, первые же полеты показали, что проект можно было признать успешным. Дальше были некоторые доработки и улучшения. В частности, мне удалось уменьшить дрейф азимута до 1-2 градусов в минуту.

Резюме

Сделать хороший самодельный гироскоп можно.

И немного о грустном

Из всего вышесказанного можно сделать вывод, что у меня было все совершенно безоблачно и замечательно. На самом деле были и проблемы. Во-первых, сервомашинка S3154 довольно быстро сдохла, где-то в пятом-шестом полете. (Причем прямо в полете!) И я не могу сказать, кто виноват в ее преждевременной кончине - лично я или известный ее производитель. Конечно, кругом много жалоб на долговечность S3154, но чувство вины и скорби все же не покидает меня. (Теперь на хвосте Трекса стоит обычная аналоговая HS-55 и, кстати, нам с ней летается очень неплохо). Во-вторых, у меня нет возможности провести действительно полноценные испытания: с крутым 3D (не умею), с разнообразными многочисленными вертолетами и сервомашинками (не имею). А это не дает мне права гордо утверждать, что я догнал и перегнал Футабу или Колина Милла.

Обсуждение проекта на rcdesign.ru (впрочем, ничего конструктивного)

© Вадим Кушнир (aka Vad64)

На главную страницу

 

Hosted by uCoz