Самодельный
гувернер
(редакция
от 07.06.2008)
Данный проект можно отнести к проектам-"долгостроям". Он был начат одновременно с самодельным гироскопом в мае 2007 года и представлялся более простой задачей, чем гироскоп. Тем не менее, гироскоп начал свои успешные полеты уже в конце июня 2007, а гувернер по ряду объективных и субъективных причин еще целый год находился в стадии доработок и испытаний. Историю проекта можно проследить по комментариям к прошивке в приложении.
Итак, как известно, функция гувернера - поддерживать заданные обороты вертолетного двигателя в условиях изменяющихся нагрузок и внешних условий. Для этого прибор измеряет скорость вращения вала мотора, сравнивает ее с заданной и выдает необходимые команды на сервопривод дроссельной заслонки двигателя. В качестве прототипов я рассматривал фирменные гувернеры Futaba GV-1 и CSM RevLock20. Для измерения скорости вращения обычно используются магнитные (или реже - оптические) датчики. Я решил использовать магнитный датчик Холла, а именно - попавшийся под руку HW-300A. В качестве магнита был применен некий круглый магнит Ф4х2, обточенный на наждаке до нужных размеров для установки в крыльчатку охлаждения Раптор 30/50:
Относительно возможности задавать настройки прибора, то мне больше импонировал вариант Futaba GV-1, а именно, прибор с ЖКИ и системой меню настроек. Однако, под рукой не оказалось подходящего малогабаритного ЖКИ, и я остановился на системе настроек CSM - кнопка, потенциометр, куча светодиодов, а также возможность редактировать настройки через последовательный интерфейс. Чтобы не изобретать велосипед, я практически скопировал систему установок RevLock 20. С помощью кнопки можно войти в режим настроек, где задаются крайние точки сервопривода и диапазоны скоростей. Относительно режимов работы и их переключения, - они тоже были, в основном, позаимствованы из описания RevLock20. Я (на текущий момент) не стал реализовывать ручной режим, так что для задания скорости, активации гувернера и переключения режимов его работы необходим дополнительный канал управления. При этом потенциометр используется как общий дополнительный регулятор усиления контуров обратной связи (ОС).
Исходя из функций прибора, была разработана схема:
а также печатные платы:
Кроме очевидных вещей, в схему добавлена ИМС 4 Мбит EEPROM для сохранения полетных логов. Первые полеты были в режиме логов - проводилось измерение скорости вращения двигателя, велась оцифровка каналов управления, но сервопривод газа было замкнут на соответствующий канал от приемника.
Датчик был установлен на печатную плату (S 0.5 мм)и самодельный кронштейн толщиной 0.7 мм:
Как показали первые испытания на вертолете Raptor30 с двигателем TT39PRO, данная конструкция плата-кронштейн оказалась неудачной. Тонкая и длинная плата и тонкий короткий кронштейн приводили к значительной вибрации датчика, и, как следствие - к ощутимому шуму измерения скорости вращения двигателя:
Следующая реинкарнация кронштейна (уже для Раптор 50) имела увеличенные длину и толщину (S 1.2 мм).
Наконец, последний вариант кронштейна имеет ребро для повышения жесткости в поперечном направлении (хотя, возможно, это уже излишне):
Впоследствии была выявлена ошибка в схеме включения датчика. При нагреве выходное напряжение датчика уменьшалось и это приводило к сбоям измерения скорости вращения. Проблема была решена переводом датчика из режима питания током в режим питания напряжением (в схему добавлен VT1), что резко уменьшило температурную нестабильность выходного напряжения и устранило сбои. Еще одной (довольно курьезной) проблемой стала установка платы на прокладку из какого-то симпатичного черного поролона неизвестного присхождения. Как оказалось, поролон был от упаковки ИМС и имел поверхностное сопротивление сотни Ом на см. Это вело к плохому запуску и неустойчивой работе кварцевого генератора. Ситуация кажется смешной, но понять причину бессистемных сбоев было довольно трудно.
Следующим этапом проекта стала разработка модели управления. По составу настроек фирменных гувернеров можно было предположить, что в приборе необходимо реализовать пропорционально-интегральный (ПИ) регулятор. Для проверки этого решения и оценки необходимых коэффициентов усиления контуров ОС была создана упрощенная математическая модель двигатель-ротор-гувернер-сервопривод. Физическая составляющая модели была взята из статьи Gavrilets, Mettler, Feron "Dynamic Model for a Miniature Aerobatic Helicopter" (файл helimodel.pdf в Сети). Там же обнаружилось подтверждение догадки о ПИ характере регулирования Futaba GV-1.
Модель основана на переменной состояния скорости вращения ротора w. Каждое последующее значение w рассчитывается по формуле:
где Pmax - мощность двигателя, S - нормированное положение дроссельной заслонки, Kmr - коэффициент, зависящий от конструкции лопастей ротора, Q - крутящий момент нагрузки ротора, J - момент инерции ротора, dt - квант времени расчета.
Для упрощения визуализации результатов модель была написана на VBA под MS Excel:
На данной модели было исследовано влияние параметров системы на качество регулирования в разных условиях работы и были подобраны к-ты контуров ОС, обеспечивающие приемлемые точность и стабильность регулирования при скачках заданных оборотов и нагрузки ротора. (Надо отметить, что введение дифференциального контура, который, видимо, присутствует в RevLock20, на модели не дало значительного улучшения качества регулирования). Далее, модель регулирования была перенесена в код прошивки процессора Atmel AVR ATmega88 и начались испытания прибора уже в режиме гувернера. Результаты первых полетов осенью 2007 года на Raptor 30 и весной 2008 года на Raptor 50 оказались неудовлетворительными. Вот пример фрагмента полетного лога:
Видно, что при резких нагрузках и разгрузках вертолета ручкой газа (throttle и servo в реверсе) в системе управления наблюдаются перерегулирование и колебания. Кроме того, в установившемся режиме (первая треть диаграммы) присутствует неоправданно большой шум длительности импульса сервопривода. Все это наводило на мысль, что к-ты усиления контуров ОС сильно завышены, причем уменьшение к-тов в 1.5-2 раза кардинально ситуацию не улучшило. Все это ощутимо расходилость с данными мат. моделирования. Анализ с пристрастием выявил системную ошибку при переходе от мат. модели к программе. Из-за неверного пересчета единицы измерения скорости из рад/сек в 10 об/мин к-ты регулирования в программе оказались завышены более чем на порядок. Кроме этого, параметры модели, взятые из статьи helimodel.pdf, были характерны для вертолета 90-го класса, а не 30-50. Повторное моделирование и корректировка ошибок дали значительно лучший результат в последующих полетах:
Видно, что колебательный переходной процесс сменился апериодическим, а также и значительно уменьшились шумы регулирования. Ошибка регулирования скорости (на роторе) не превышает -150 об/мин при полной загрузке и +60 об/мин при полной разгрузке ротора. Дальнейшие эксперименты с коэффициентами показали, что их увеличение позволяет несколько снизить ошибку регулирования, но повышает динамические нагрузки на сервомашинку. В результате, я остановился на неких компромиссных значениях усиления.
Для упрощения редактирования настроек гувернера были созданы программа-конфигуратор для PC:
и для Pocket PC:
Применение Моста IrDA-COM вместо кабеля к СОМ порту позволило повысить удобство и оперативность задания настроек и чтение логов на этапе испытаний и отладки:
В полевых условиях для этих целей использовался планшетный ПК. Пластиковый фонарь оказался прозрачен для ИК излучения, что позволило вести обмен данными, не снимая капот.
© Вадим Кушнир (aka Vad64)
Приложение 1.
История проекта в комментаниях
// 28.06.2007 Started as GPS logger
// 30.06.2007 Got GPS flight log
// 07.07.2007 rpm and throttle measurement implemented and tested
in the flight
// 21.08.2007 rpmCnt1, rpmN1 (second edge capture) added to rpm
measurement to improve accuracy
// 28.09.2007 Some development and improvements. Ver. 0.01
// 03.10.2007 First flight as governor with quite bad results.
Possible bug discovered (adcISR exec time was close to irq
period) - ADC period increased. uC clock frequency changed from
10 to 12MHz
// 09.04.2008 Hardware problem (big sensor temperature
dependancy) fixed.
// 15.04.2008 Target RPM LP filter implemented to smooth mode
switch transients. Some code clean-up.
// 11.05.2008 Series of test flights with a so-so result. Error
in gain scaling discovered
// 21.05.2008 Modes and settings support added. PID math slightly
improved. PC settings support implemented. Ready for new flight
tests
// 27-28.05.08 Series of test flights. Quite good results with
Kp=0.26 Ki=0.005
// 02.06.2008 Another series of test flights. Kp=0.4-0.7,
Ki=0.007-0.012. RPM error is a bit smaller
Приложение
2. Ссылки по теме
Гувернер Futaba GV-1
Гувернер CSM RevLock
Обзор гувернера Aerospire
MultiGov -
интересно посмотреть на графики
ошибки регулирования