OpenAeroVTOL V1.3 прошивка под KK2.1 для моделей СВВП

native18

На данный момент очень мало русскоговорящих моделистов занимается СВВП (Самолёт вертикального взлёта и посадки). Английский вариант - VTOL (vertical take-off and landing). А между тем существует масса реальных самолетов этой схемы. На групсах их строят в десятках тем.
Причина на мой взгляд проста – отсутствие дешевого полетного контроллера.
Но уже более двух лет Здесь обкатывается прошивка для СВВП под дешевый полетный контроллер KK2.1. Он уже у многих на руках, приобрел его и я. Но вот беда, на прошивку отсутствует русская инструкция. Третий день все свободное время разбираюсь, перевожу, пробую, эксперементирую. Что-то уже получается.

Решил в меру своих сил и убогого знания английского (гугл – транслейт мне в помощь) написать мануал для этой прошивки. Буду выкладывать по мере перевода, чтобы как-то подтянуть народ на СВВП.
Сам тоже строю модель самолета с вертикальным взлетом, поэтому помощь форумчан пригодится.

Все, с чем я не разобрался будет помечено двумя знаками вопроса «??»
Английский вариант мануала внизу первого поста указанной темы на групсах: OpenAeroVTOL_Docs_V1.3_1, но мне не нравится как он написан, я привык к описанию по пунктам меню настроек.
Буду признателен корректировкам и добавлениям.
Когда все будет понятно - выложу полный файл инструкции, а пока - как есть.

Перевод производится для прошивки:

----------------------------------------------------------------------------------------------------------------
OpenAeroVTOL V1.3 Released
Для прошивки KK2.1 (KK2.1.5 + KK2 Hard Case) и KK2.1 Mini

Данная прошивка отличается тем, что имеет настройки для 3-х режимов:
Hover – висение (коптер)
Slow Forward Flight (SFF) – переходный режим , между коптером и самолетом
Fast Forward Flight (FFF) - самолетный режим
Контроллер имеет 5 входов и позволяет подключить до 8 выходных устройств (мотор, серва).
Прошивка создана для нестандартных полетных схем, для любителей поэксперементировать.
К примеру собрать конвертоплан, или коптер с 5-ю силовыми установками, или прямоугольный коптер с 4 парами силовых установок по бокам и пр.
В случае стандартной полетной схемы ( не VTOL) – используется только один полетный режим.

Основное меню

1)General
Базовые настройки контроллера
2)Receiver setup
Базовые настройки передатчика
3)Receiver inputs
Калибровка входных сигналов с передатчика
4)Stick polarity
Графическое отображение положений стиков передатчика (в моей версии не работает)
5)Sensor calibration
Калибровка датчиков контроллера
6)Level meter
Графическое отображение положения модели по датчикам
7)Flight profile 1
PIDы и пр. параметры гироскопов для режима висения (Hover)
8)Flight profile 2
PIDы и пр. параметры гироскопов для самолетного режима (FFF)
9)Curves
Настройка кривых газа и коллективного шага.
10)Output offsets
Настройка кривых устройств для перехода между режимами
P1 - Flight profile 1, P2.n – переходный режим, P2 - Flight profile 2
11)OUT1 Mixer
Настройки для устройства подключенного к выходу №1 (по режимам P1 и P2)
12)OUT2 Mixer
Настройки для устройства подключенного к выходу №2 (по режимам P1 и P2)
13)OUT3 Mixer
Настройки для устройства подключенного к выходу №3 (по режимам P1 и P2)
14)OUT4 Mixer
Настройки для устройства подключенного к выходу №4 (по режимам P1 и P2)
15)OUT5 Mixer
Настройки для устройства подключенного к выходу №5 (по режимам P1 и P2)
16)OUT6 Mixer
Настройки для устройства подключенного к выходу №6 (по режимам P1 и P2)
17)OUT7 Mixer
Настройки для устройства подключенного к выходу №7 (по режимам P1 и P2)
18)OUT8 Mixer
Настройки для устройства подключенного к выходу №8 (по режимам P1 и P2)
19)Servo direction
Реверс устройств
20)Neg. Servo trvl. (%) (negative servo travel)
Отрицательный лимит устройства
21)Pos. Servo trvl. (%) (positive servo travel)
Положительный лимит устройства
22)Custom Ch. Order
Изменение положения каналов передатчика
23)In/Out display
Текстовое отображение входных и выходных параметров контроллера.

1) General

1.1) Orientation: Top-Rear
Положение платы на модели (24 варианта), картинки в OA-VTOL_User_Manual_V1.3_10-6-15.pdf
1.2) Tail Sitter: No
Варианты использования хвостового оперения в режиме висения и самолетном
1.3) Contrast: 30
Контраст дисплея
1.4) Safety: Armable
Активация контроллера с пульта
1.5) Diarm time: 40
Если в течении указанных секунд ручки пульта не трогать - произойдет деактивация контроллера
1.6) Low V alarm: OFF
Напряжение питания , при котором срабатывает тревога.
1.7) MPU6050 LPF: 44Hz
ФНЧ датчика
1.8) Acc.LPF: 21Hz
ФНЧ акселерометра
1.9) Gyro LPF : 44Hz
ФНЧ гироскопа
1.10) Al correct: 3
Auto-Level Correct , приблизительное время в секундах для удеражания модели в горизонте, если бросить стики передатчика, по умолчанию -6
1.11) Preset: Options
Инициализация параметров для трех готовых полетных схем и «чистый лист» для собственной полетной схемы

2)Receiver setup

2.1) RX type: PWM
Тип сигнала с приемника
2.2) PWX rate: Sync RC
??
2.3) PWX sync: Gear
??
2.4) Ch. Order: Futaba
Последовательность каналов приемника
2.5) Profile chan.: Gear
Элемен пульта для переключения режимов полета
2.6) Outbound trans: 0
??
2.7) Inbound trans.: 0
??
2.8) Transition low: 0
Положение элемента пульта для переключения на первый режим полета
2.9) Transition mid: 50
Положение элемента пульта для переключения на переходный режим полета
2.10) Transition high: 100
Положение элемента пульта для переключения на второй режим полета
2.11) Vibration display: OFF
Что-то связано с вибрацией дисплея

3)Receiver inputs
Просто жмем «Cal.» и контроллер принимает все выходы приемника за нулевые, не зависимо, что там у вас оттриммировано.
Внимание: Если уже триммировали модель с передатчика, то лучше не трогать.

4)Stick polarity
Не работает. Отключили или на потом пункт забронировали.

5)Sensor calibration
Просто жмем «Cal.» и контроллер принимает все текущие положения датчиков за нулевые. Полезная штука, если что-то куда-то поплыло.

6)Level meter
Графическое отображение положения модели по датчикам (можно использовать вместо уровня)
------------------------------------------------------------------------------

Продолжение следует…

native18

Продолжение:

----------------------------------------------------------------------------------------------------------------
7)Flight profile 1
7.1) Roll P: 100
Значение Р для крена
7.2) Roll I: 10
Значение I для крена
7.3) Roll I limit: 5
Ограничение максимальной отдачи I для крена ??
7.4) Roll I rate: 1
Значение скорости реакции на “I” при обратной связи для крена. Чем выше значение, тем быстрее реакция.
7.5) Roll autolevel: 40
Значение для сохранения автогоризонта для крена при AutoLevel
7.6) Roll trim: 0
Триммирование датчиков контроллера по крену.
Вообще достаточно откалибровать датчики. Но возможен вариант, когда требуется дополнительная корректировка из-за особенности конструкции модели. Обычно данная функция не используется и предоставлена как дополнение.
7.7) Pitch P: 100
Значение Р для тангажа
7.8) Pitch I: 0
Значение I для тангажа
7.9) Pitch I limit: 0
Ограничение максимальной отдачи I для тангажа ??
7.10) Pitch I rate: 2
Значение скорости реакции на “I” при обратной связи для тангажа. Чем выше значение, тем быстрее реакция.
7.11) Pitch autolevel: 20
Значение для сохранения автогоризонта для тангажа при AutoLevel
7.12) Pitch trim: 0
Триммирование датчиков контроллера по тангажу.
Вообще достаточно откалибровать датчики. Но возможен вариант, когда требуется дополнительная корректировка из-за особенности конструкции модели. Обычно данная функция не используется и предоставлена как дополнение.
7.13) Yaw P: 100
Значение Р для курса (рысканье)
7.14) Yaw I: 0
Значение I для курса
7.15) Yaw I limit: 0
Ограничение максимальной отдачи I для курса ??
7.16) Yaw I rate: 2
Значение скорости реакции на “I” при обратной связи для курса. Чем выше значение, тем быстрее реакция.
7.17) Yaw trim: 0
Триммирование датчиков контроллера по курсу.
Вообще достаточно откалибровать датчики. Но возможен вариант, когда требуется дополнительная корректировка из-за особенности конструкции модели. Обычно данная функция не используется и предоставлена как дополнение.

7.18) Alt. Damp: 0
Значение отфильтрованного выходной сигнал по вертикальной оси Z.
Акселерометр часто используется для поддержания высоты в режиме Hover. Не рекомендуется для использования в горизонтальном полете.

8)Flight profile 1
Все тоже самое, что и в Flight profile 1, только для самолетного режима (FFF)

9)Curves
9.1) P1 Throttle Curve
Настройка кривой газа для режима Hover
9.2) P2 Throttle Curve
Настройка кривой газа для самолетного режима (FFF)
9.3) P1 Collective Curve
Настройка кривой коллективного шага для режима Hover
9.4) P2 Collective Curve
Настройка кривой коллективного шага для самолетного режима (FFF)
9.5) Generic Curve C
Настройка кривой коллективного шага для хвостового ротора
9.6) Generic Curve D
??

10)Output offsets
10.1 – 10.8) OUT1 – OUT8
Кривые изменения режима для каждого выходного устройства
P1 - Flight profile 1 ( Hover) , P2.n – переходный режим, P2 - Flight profile 2 (FFF)
?? До конца еще не разобрался.

SergDoc

Виктор, по возможности дайте ссылку на исходники, разобраться, что есть в данном контроллере P и I - дабы упростить понимание регулировок…
всё что нагугливается старовато…

native18
SergDoc:

Виктор, по возможности дайте ссылку на исходники, разобраться, что есть в данном контроллере P и I - дабы упростить понимание регулировок.

К сожалению исходники пока не попадались, только бинарные прошивки. Если что-то найду, тут же выложу.
Мои соображения: Р и I вроде стандартные, а вот D похоже заменена тут на I limit и I rate.

Окончание меню. Дальше буду вставлять картинки и корректировки.
------------------------------------------------------------------------------------------------
11 - 18) OUT1 Mixer – OUT8 Mixer
Подпункты одинаковые, для каждого из 8-ми устройств, поэтому опишу только OUT1 Mixer
11.1) Divice: Motor
Выбор устройства, подключенного к данному выходу контроллера:
а) Motor – спид контроллер + двигатель
б) D.Servo – цифровой сервопривод
в) A.Servo – аналоговый сервопривод
11.2) P1 Thr. volume: 100
Значение газа с приемника в режиме Hover
?? Пока не очень понятно, что будет, если на передатчике выставить 100, а в этом параметре 120
11.3) P2 Thr. volume: 100
Значение газа с приемника в режиме FFF
11.4) Trans. сurve: Linear
Кривая перехода газа между P1 и P2
11.5) P1 Ail. volume: 20
Значение канала элеронов с приемника для режима Hover
11.6) P2 Ail. volume: 0
Значение канала элеронов с приемника для режима FFF
11.7) P1 Ele volume: 0
Значение канала тангажа с приемника для режима Hover
11.8) P2 Ele. volume: 0
Значение канала тангажа с приемника для режима FFF
11.9) P1 Rud. volume: 0
Значение канала курса с приемника для режима Hover
11.10) P2 Rud. volume: 0
Значение канала курса с приемника для режима FFF
11.11) P1 Roll gyro ON
Включение поддержки Gyro по крену для данного устройства в режиме Hover
11.12) P2 Roll gyro OFF
Включение поддержки Gyro по крену для данного устройства в режиме FFF
11.13) P1 Pitch gyro OFF
Включение поддержки Gyro по тангажу для данного устройства в режиме Hover
11.14) P2 Pitch gyro OFF
Включение поддержки Gyro по крену для данного устройства в режиме FFF
11.15) P1 Yaw gyro OFF
Включение поддержки Gyro по курсу для данного устройства в режиме Hover
11.16) P2 Yaw gyro OFF
Включение поддержки Gyro по курсу для данного устройства в режиме FFF
11.17) P1 Roll AL: ON
Включение AutoLevel по крену для данного устройства в режиме Hover
11.18) P2 Roll AL: OFF
Включение AutoLevel по крену для данного устройства в режиме FFF
11.19) P1 Pitch AL: OFF
Включение AutoLevel по тангажу для данного устройства в режиме Hover
11.20) P2 Pitch AL: OFF
Включение AutoLevel по тангажу для данного устройства в режиме FFF
11.21) P1 Alt. damp: OFF
Включение демпфирования по высоте для режима Hover
11.21) P2 Alt. damp: OFF
Включение демпфирования по высоте для режима FFF
Данный режим обычно не используется в горизонтальном полете, но возможность предусмотрена
11.22) P1 Source A: None
Подмешивание источника А.
Дополнительный сигнал (А), используемый в режиме Hover
11.23) P1 Valume: 0
Значение сигнала источника А, в режиме Hover
11.24) P2 Source A: None
Подмешивание источника А.
Дополнительный сигнал (А), используемый в режиме FFF
11.25) P2 Valume: 0
Значение сигнала источника А, в режиме FFF
11.26) P1 Source B: None
Подмешивание источника B.
Дополнительный сигнал (😎, используемый в режиме Hover
11.27) P1 Valume: 0
Значение сигнала источника B, в режиме Hover
11.28) P2 Source B: None
Подмешивание источника B.
Дополнительный сигнал (😎, используемый в режиме FFF
11.29) P2 Valume: 0
Значение сигнала источника B, в режиме FFF

SergDoc
native18:

Р и I вроде стандартные, а вот D похоже заменена тут на I limit и I rate.

так вот я о чём P - на скодько вижу - это угловая скорость, а не угол как и в старом добром куке, т.е. если взять вийный или арду ПИД - то это будет как раз D, а вот I по сути сумма ошибок, но угловой скорости, I лимит - как и положено обрезает излишки I где и как используется аксель не усмотрел 😦 в общем процедура настройки примерно таже что и в 1-м КУКе - I убираем в ноль выкручиваем P до небольши осцилляций - добавляем I оно будет с минусом т.к. перерегулирование по P будет прижимать (уменьшать) P

SergDoc

В общем да, классического imu и PID как такогового нет, P и I как и говорил ранее, D сделано тоже как I только со знаком минус - т.е. управление чисто пропорциями - аппарату практически параллельно где горизонт, за исключением показаний акселя (со своим PID) тоже основанном чисто на пропорциях и самое интересное связки гиро-аксель нет! а прямо в микшере каналов всё это мешается так же в пропорциях, так что да - это КУК с мнимым удержанием горизонта… Из всего следует - летать будет, но только вручную, добавление баро, компаса, GPS - безсмысленная идея (это я так - если кто захочет поэкспериментировать) короче просто и надёжно как автомат Калашникова но снарядами стрелять не будет 😃

native18
SergDoc:

а вот I по сути сумма ошибок, но угловой скорости, I лимит - как и положено обрезает излишки I

Не совсем понял, есть значение I, что уже является ограничением , тогда что обрезает I limit?

SergDoc

нет, i - это сумма ошибок и есть предел до которого его нужно собирать (грубо время сбора ошибок) Ilimit -чем больше тем стабильнее в ховере, но может перевернуться при взлёте!

native18

Авторы прошивки говорят, что этот контроллер собираются использовать НАСА. 😉

Игорь_Петрович:

ОО , пытался переводить со словарем техническим , премного благодарен

У вас есть такой контроллер? На что собираетесь его ставить?

SergDoc
native18:

Авторы прошивки говорят, что этот контроллер собираются использовать НАСА.

звездят )))
самое дешевое IMU, на более подходящих датчиках около 400$ один гироскоп (точнее ДУС на одну ось) удовлетворяющий НАСА - 300$…

native18
SergDoc:

нет, i - это сумма ошибок и есть предел до которого его нужно собирать (грубо время сбора ошибок) Ilimit -чем больше тем стабильнее в ховере, но может перевернуться при взлёте!

Сергей, что -то не могу настроить контроллер. Модель странно себя ведет, сначала все в порядке, затем вдруг начинает дергаться по тангажу и курсу. И не успевает выровняться, результат - минус винт. Настраиваю на вертолете из Halo, он маленький, не так страшно.

Вы писали, что пиды OpenAtroVtol не сходятся с пидами от Вия. Вот параметры из инструкции:
7.1) Roll P: 100
Значение Р для крена
7.2) Roll I: 10
Значение I для крена
7.3) Roll I limit: 5
Ограничение максимальной отдачи I для крена ??
7.4) Roll I rate: 1
Значение скорости реакции на “I” при обратной связи для крена. Чем выше значение, тем быстрее реакция.
7.5) Roll autolevel: 40
Значение для сохранения автогоризонта для крена при AutoLevel

Как они соотносятся с ПИДами Вия? Или что они значат по отношению Вию?
Если есть время распишите пожалуйста в одном месте последовательность настройки, согласно кода, а то я запутался.
Эксперементальным путем получается долго и увеличивается расход винтов.

SergDoc

по отношению к вию - P это d - самое простое убрать в ноль I и D и пропорцией добиваться наилучшего результата, потом добавить D - если станет хуже добавлять I убрав D перед этим в ноль…
короче P в данном контроллере это останавливающее воздействие…
тут есть нюанс - все иму предсказывают на шаг вперёд и из этого рассчитывают мнимое положение на следующем шаге - тут расчёт ведётся наоборот - получили данные - вернули обратно…

native18

Нет, так я не пойму, надо бы по пунктам, сверху вниз:
7.1
7.2
7.3
7.4
7.5

SergDoc:

по отношению к вию - P это d

А дальше? где I? где P? Это, что бы я переключил голову.

И чтобы не путаться напишите то, что вы написали, но по отношению к текущему контроллеру. Это, чтобы я понял последовательность.

SergDoc

Блин, наверно я объяснять не умею - а ещё педагог )))
Короче, Виктор, забудте про вий и всё с чистого листа:
если в вие P - это угол, на который нужно повернуть чтобы принять исходное состояние, то в КК P - это угловая скорость которую нужно применить чтобы остановить существующую, плюс вернуть начальное состояние - короче это тормоз чем в любом пиде занимается именно D - тормозит любое воздействие будь то порыв ветра или большое P…
I в данном случае сумма недотягиваний (дабы дотянуть), а D - расчёт ошибки перетягиваний (дабы в следующий раз ослабить P)…

native18

Один из первых взлетов на этой прошивке. Понравлся пункт демпфирования по высоте. Чем выше значение тем плавнее реакция на газ.

Yanchak

В одной умной документине писали, что D можно настраивать без Р.
D реагирует не на отклонение на на первую производную - на скорость отклонения. Для шустрых коптеров этого вобщем достаточно поэтому, возможно, автор КУКа и ограничился D + I.
Не очень понятно как он єто применяет к акселерометрам, возможно надеется на инегральную составляющую.
В установившемся режиме (правда для коптера єто сферический конь в вакууме) все коррекции обеспечиваются интегральной составляющей. Т.е если коптер висит в в невозмущаемом воздухе и к одному лучу привязанны плоскогубцы то интегральная составляющая должна привести тягу всех моторов в такое состояние чтоб коптер висел горизонтально, при нейтральном положении стиков.