Подписываемся на VK

Ежедневные новости, видео и приколы...

YouTube канал

Подбор моторов

TOP статьи

Вход




RC Магазины





Home Технологии Компьюторные Миксер сигналов управления тяги двигателей двухмоторной авиамодели на основе платы Arduino Micro Pro
Миксер сигналов управления тяги двигателей двухмоторной авиамодели на основе платы Arduino Micro Pro
Технологии моделизма - Компьтерные Технологии
Автор: Андрей   

Традиционно двигатели двухмоторной модели управляются смесью сигналов Thr (тяги) и Rud (руля направления). Как показывает опыт, сделать оптимальное замешивание этик сигналов непосредственно в пульте управления очень непросто.  В дешевых пультах управления обычно отсутствуют необходимые функции,  а в более сложных реализациях прошивок, типа OpenTX такое замешивание требует установки большого количества параметров и большого количества вычислительных ресурсов для формирования сигналов при работе пульта. Поэтому, иногда бывает целесообразно изготовить "специализированный" контроллер-миксер на основе платы Arduino и разместить его непосредственно на модели.



Стандартное (аддитивное) замешивание сигналов

Попробуем проанализировать картину замешивания сигналов. При управлении тягой двигателей 2-х моторной авиамоделью традиционно формируют сигналы управления двигателями, как  сумму и разность сигналов Thr и Rud.

Thr1 = Thr + k*Rud
Thr2 = Thr - k*Rud


Будем считать что "беззнаковый" сигнал Thr изменяется в приделах [0.0 - 1.0], а "знаковый" сигнал Rud в диапазоне - [-1.0 - +1.0]. Выходные сигналы Thr1, Thr2 тоже "беззнаковые", меняются в интервале [0.0 - 1.0]. В этих формулах k - коэффициент влияния сигнала руля поворота.  Графики суммарной и разностной тяги для "аддитивного" замешивания:

Величины разностной и суммарной тяги показаны изолиниями. Чем плотнее изображены изолинии в какой либо части рисунка, тем резче изменяется параметр. На всех графиках изолинии проведены через 20% максимальной тяги одного двигателя. При этом, суммарная тяга 2-х двигательной схемы изменяется в диапазоне [0% -  200%], а разностная тяга меняется в интервале [-100% - +100%].  Графики построены для  k=1.0, но замешивание с таким большим коэффициентом редко применяется на практике (при крайних положениях рукоятки rudder-а возникает слишком большой поворотный момент и модель обычно начинает крутиться "волчком"). В реальной системе более реалистичное значение коэффициента в районе значения k=0.5. Я не привожу отдельных графиков для этого случая т.к. они (обозначены зелеными прямоугольниками) совпадают с внтуренней частью графиков для k=1.0 - достаточно предположить, что изменение сигнала Rud происходит в интервале [-0.5 - 0.5]

Почему на графиках появляются "нелинейности" - изломы изолиний? - понятно, что при некоторых значения Thr и Rud результаты вычислений Thr1, Thr2 выходят за границы разрешенного интервала  [0.0 - 1.0], но в этом случае они автоматически ограничиваются крайними значениями,  и как следствие, линейность преобразования теряется.

Недостатки аддитивного замешивания.

Все, кто хоть раз таким образом "аддитивно" замешивал сигналы Thr, Rud для разнотяга замечал, что у такого метода есть существенные недостатки:
- Когда суммарная тяга маленькая, небольшие горизонтальные движения ручки управления приводят к сильному воздействию на тяги двигателей и к резкому рысканью модели в горизонтальной плоскости (в нижней части графика разностной тяги плотность изолиний почти такая же как и в центральной части). Это не очень привычно для пилота  - ведь в моделях с одним мотором действие руля направления уменьшается вместе с тягой.
- При предельно большой тяге (верхняя часть графиков), так же есть нелинейности - разностная тяга двигателей быстро "насыщается" - один двигатель оказывается всегда включеным на максимальную мощность и не участвует в управлении, а на разностную тягу влияет только уменьшением оборотов другого двигателя.

Как исправить описанные недостатки? Нужно сформировать выходные сигналы так, чтобы движении ручажка rudder-а приводило к воздейтвию на модель, похожему на управление на моделью с помощью руля поворота. Поэтому,  относительно простое "мультипликативное" замешивание здесь выглядит более привлекательным:

ThrR = Thr * (1.0  +  k*Rud)  / 2.0
ThrL = Thr * (1.0 -  k*Rud)  / 2.0


На графиках суммарной и разностной тяги такой способ формирования сигналов будет выглядеть следующим образом:



Видно, что в нижней части графика  нелинейности практически отсутствуют - изменение разностной тяги более плавное и, главное, поворотное водействие двигателей достаточно похоже на управление моделью с помощью руля направления - при равном значении Rud разностная тяга пропорциональна Thr, и наоборот, при фиксированном значении Thr суммарная тяга не зависит от изненеий сигнала Rud.

Но такое замешивание имеет также и недостатки. В верхней части графика нелинейности все равно присутствуют - при достижении предельного значения один из двигателей так же насыщается.

Компенсация насыщения разностной тяги.

Нелинейное изменение тяги в верхней части диапазона реально мешает полетам - т.к.. именно на бОльших скоростях и тягах необходимо максимальное поворотное воздействие на модель. Но и здесь существует способ улучшить замешивание  -  в алгоритмы преобразования нужно ввести проверку - если один двигатель вышел на максимум тяги и не может увеличивать обороты, создавая дополнительный поворотный момент, то необходимо это насыщение компенсировать двойным уменьшением тяги второго двигателя. Результат действия такой компенсации показан на графиках:

Видно, что для такого 'улучшенного' замешивания, при больших тягах, в верхней центральной части графика разностная тяга ведет себя практически пропорционально сигналу Rud. Очень хороший результат, хотя за это пришлось заплатить некоторыми потерями в линейности суммарной тяги - при увеличении сигнала Rud суммарная тяга уменьшается быстрее, чем при замешивании без компенсации.

Преимущества бортового миксера сигналов.

Какие преимущества дает специализированный бортовой смеситель?
- Так как смеситель управляется сигналами Thr и Rud, то возможна работа миксера совместно с гироскопом-стабилизатором полета. Большинство гироскопов сами формируют сигнал Rud для классической схемы - теперь стабилизацию полета по "рысканью" также может осуществлять с помощью разницы тяг двигателей. Конечно, стабилизатор не сможет изменять общую тягу Thr, но здесь оптимальное значение суммарной тяги устанавливается пилотом.
- Экономия каналов управления - если у модели два двигателя и руль направления - то для передачи управляющих сигналов необходимо 3 канала управления. Замешивая сигналы непосредственно на борту число необходимых каналов может быть уменьшено до 2-х.
- В целом, отдельный миксер-контроллер гораздо более гибок и удобен для сложных вариантов замешивания, чем даже самый продвинутый пульт управления. При этом, все вычисления проводятся бортовым контроллером модели и не нагружают вычислительные мощности пульта.

Характеристики и устройство миксера.

Миксер делается на основе популярной платы Arduino Pro Micro. Он относительно простой в изготовлении, его можно собрать и запрограммировать за 1-2 вечера. Вес готового устройства получается около 12 г, что дает возможность устанавливать его даже на маленьких моделях. Миксер управляется двумя импульсными входными сигналами Thr, Rud, поступающими с приемника и формирует два выходных сигнала управления тягой двигателей - Thr1, Thr2. Дополнительно  на миксере установлены кнопка (для перехода в режим калибровки) и светодиод (для индикации состояния).
Миксер можно использовать как для 2-х моторных моделей с rudder-ом, так и без него (на схеме контроллера подключение руля управления не показано, но на фотографии контроллера виден его серворазъем, который припаян параллельно к контактам входа канала Rud).
 
Изготовление.

Технология изготовления подобных устройств подробно описана тут. Я только кратко опять хочу отметить, что все дополнительные компоненты (кнопку, светодиод, резисторы) желательно не припаивать к контактным точкам платы Ардуино, а размещать на дополнительной панели. После изготовления плату и компоненты необходимо покрыть водозащитным лаком. Когда устройство будет собрано и проверено, на него надевается защитная оболочка из отрезка термоусадочной трубки. Отверстие для кнопки удобно прожечь металлической трубкой подходящего диаметра.

Схема контроллера:

Программирование

Программа для миксера расположена тут. Особенностью платы Arduino Pro Micro является наличие микро-USB разьема, что позволяет подключать ее непосредственно к компьютеру для программирования. Информация о том, как сконфигурировать компьютер и залить прошивку в контроллер Arduino, существует в большом количестве вариантов на сайтах этой тематики в Интернете.

Проверка смесителя

1. Подсоединяем смеситель к приемнику, сервомотору rudder-а и контроллерам тяги двигателей. Светодиод на панели смесителя должен мигнуть три раза и загореться непрерывно. (Если он не горит - значит на смеситель на поступает хотя бы один из двух входных сигналов Thr или Rud).  
2. Проверяем отклик двигателей на изменение положения рычажка тяги. При первом включения контроллер устанавливает стандартные значения замешивания и, как правило, двигатели уже управляются нормально.
3. Настраиваем непосредственно входные сигналы - если у модели есть rudder, производим его триммирование обычным способом -  с помощью настроек пульта.

Калибровка смесителя

На картинке снизу изображен процесс калибровки смесителя движениями рычажка Thr-Rud.


1. Устанавливаем рычажок в нижнее центральное положение и нажимаем кнопку калибровки на смесителе - светодиод должен погаснуть.
2. Не отпуская кнопки, медленно делаем "квадрат"  - проводим рычажком управления по предельным значениям отклонения рычажка (перемещения 1-2-3-4-5). Считывая эти данные, смеситель узнает минимальные и максимальные значения сигналов Thr и Rud  и вычисляет необходимые коэффициенты для  последующего замешивания.
3.  Не отпуская кнопки калибровки, положением рычажка тяги устанавливаем коэффициент замешивания сигнала Rud (минимальная тяга соответствует k=1.0, максимальная k=0.0). Для примера, если мы хотим получить 70% замешиваение, то устанавливаем рычажок в положении 30% тяги (перемещение 6) отпускаем его и оставляем в этой позиции (его горизонтальное положение так же будет использовано для определения нейтральной точки замешвания Rud). 
4. Отпускаем кнопку калибровки - светодиод должен мигнуть три раза, подтверждая успешное окончание калибровки, и погаснуть. В этот момент смеситель сохранит все полученные в результате калибровки параметры в энергонезависимую память Arduino.
5. Переводим рычажок тяги в минимальное положение (перемещение 7) - калибровка окончена, светодиод должен снова загореться, смеситель перейдет в рабочий режим и блокировка двигателей будет прекращена. Калибровка закончена.

После калибровки миксера можно дополнительно выполнить стандартную калибровку контроллеров тяги двигателей. Контроллеры тяги бесколлекторных двигателей калибруются одновременно, с помощью команд подаваемых рычажком Thr, как описанно непосредственно в инструкции к контроллерам.

Зачем нужна калибровка смесителя?

Почему нужно делать дополнительную калибровку и  нельзя как-то настроить смешивание, изменяя параметры сигналов Тhr и Rud непосредственно на пульте? Теоритически можно, но тут появятся проблемы:
- мультипликативный смеситель, в отличие от обычного "аддитивного", смесителя является сильно нелинейными элементом.  Для  правильного замешивания он должен быть точно настроен в соответствии с параметрами сигналов пульта. Если подгонять под смеситель эти параметры прийдется решить обратную задачу - надо будет понять, какие сигналы для него являются оптимальнымы. Такая задача  достаточно нетривиальная.
- смеситель может быть подключен после гироскопа-стабилизатора, который сам преобразует и замешивает сигнал Rud. Снова - сложно предсказать зараннее какие изменения сигналов он  внесет. 

Существующий вариант миксера был облетан на 2-х моторном самолете с гироскопом-стабилизатором и, как это было ожидаемо, показал динамику полета значительно лучшую, чем при аддитивном замешивании сигналов. Конечно, на сделать 2-х моторную модель 100% похожей на 1-моторную пилотажку не удалось, но в  направлении улучшения функциональности миксера можно работать -  обладая минимальными знаниями программирования Ардуино, легко улучшить существующую прошивку.

ДОПОЛНЕНИЕ: Работа с аналоговыми PWM сигналами требует от контроллера прецизионного измерения длительности управляющих импульсов, поэтому скетч для Ардуино использует таймеры, прерывания и относительно сложный для понимания.  Я разработал новый вариант смесителя - для работы с современным приемником-стабилизатором FrSky S8R. Новый смеситель читает цифровой сигнал SBUS и подключается к приемнику одним серво-кабелем.

 

 





Последние сообщения форумаПоследние созданные темы
1) Аппа "Wensheng WS 6" нужна помощь
2) Расчет эффективного пропеллера вертолета, самолета
3) Зажигание на датчике холла
4) Аккумуляторная батарея LiPo HRB 14,8 4S 2200mA/h
5) На что заменить полетник на Iflight Protek25
6) Юлиус Пердана и SHURIK-1960
7) Помогите пожалуйста с вертолетом (управление)
8) Сервомотор ведет себя не адекватно
9) Полётный контроллер PixRacer r15 autopilot
10) Вопрос по ПК
1) Аппа "Wensheng WS 6" нужна помощь - Нужна помощь по аппаратуре управления
2) Расчет эффективного пропеллера вертолета, самолета - Как сделать пропеллер эффективным
3) Аккумуляторная батарея LiPo HRB 14,8 4S 2200mA/h
4) На что заменить полетник на Iflight Protek25 - сгорел полетник. ищу замену
5) Зажигание на датчике холла
6) Сервомотор ведет себя не адекватно - элероны
7) Помогите пожалуйста с вертолетом (управление) - Помогите пожалуйста с вертолетом (управление)
8) Вопрос по ПК - ПК фоксер ф722 v4, рагуль 1202 от fpv. Из этого сделать ЛК?
9) Продажа комплекта деталей для авиамоделирования - Здрaвcтвуйтe! Пpодaю кoмплект деталей для aвиамoделиpoвания
10) Полётный контроллер PixRacer r15 autopilot