Проект Мегапират на самик!

ssh1
Syberian:

Сейчас условие единственное: если хотя бы раз после включения батарейки расстояние до дома превысило 20 метров, включение возврата разрешается.

Ок, спрошу по другому, планируется ли изменение алгоритма включения автовозврата?
Не понимаю чем плохо ограничение по скорости и высоте ?

Syberian

конечно, планируется. Я бы даже сказал, что это необходимо. Только нужно учесть, что он должен быть одинаковым для самолетов и мультироторов. Впрочем, это необязательно. Различать можно.
Ладно, как делать будем? в случае конкретно самолетов. Цифры и условия. Сейчас и внедрю.

LaPart

Олег, есть вопрос.
Зачем при включенном режиме Stab постепенно изменяются целевые значения углов для РВ и элеронов (при долгом вираже, например, при помощи элеронов и бросании стиков, элероны будут уже не в положении, которое нужно для перехода в горизонт, а сдвинутся в новое, поправленное положение? То же самое и для РВ.
Получается, что это аналог гироскопов в вертолетном режиме удержания балки, только удерживаться начинают крен и тангаж.
Если долго держать РН - понятно, корректируется курс при сохранении горизонта.
Зачем самолету запоминать и потом поддерживать крен и тангаж?
Ведь если пилот зарулился и бросил ручки, самолет должен вернуться в горизонт, разве не так?

Syberian
LaPart:

есть вопрос.

опять двадцать пять 😁 Только не говорите, что вы в воздухе это видели? Все равно не поверю.
Читайте последний абзац

LaPart
Syberian:

Читайте последний абзац

ОК, учу матчасть:)

ssh1
Syberian:

конечно, планируется. Я бы даже сказал, что это необходимо. Только нужно учесть, что он должен быть одинаковым для самолетов и мультироторов. Впрочем, это необязательно. Различать можно.
Ладно, как делать будем? в случае конкретно самолетов. Цифры и условия. Сейчас и внедрю.

Предлагаю несколько вариантов для самолётов, давайте обсудим.
1.Не включать автовозврат после “ударных” ускорений до пересброса питания.
2. Не включать возврат если скорость меньше 20 и высота меньше 20
3. Выключать возврат на высоте ниже 20 если скорость так и не превысила 20, через 3 сек после включения.

LaPart
ssh1:

несколько вариантов для самолётов, давайте обсудим

Еще вариант условия - если была скорость, а после удара стала ноль… То есть не висит против ветра, например, а приложился…

Frr
Syberian:

это типа R и Q выставить? главное, не ниже порога собственных шумов датчика, выше - можно на 2 порядка менять. А шумы датчиков я вымерял все.

Получается, что такая куча параметров в R - “почти мусор” ? 😃
А Q зависит не от шумов датчиков, а от “косины мат. модели” (из к-рой получается F). Вроде бы. 😃

Syberian
Frr:

такая куча параметров в R

По числу осей линейных датчиков - не так уж много. В q - гира и аксель. Еще в Р (ков. матрица) надо задавать начальные значения. Правда, поскольку шумы считаются некоррелированными, можно забивать только диагональ. От этого зависит скорость начального схождения. В любом случае, “смертельно” накуролесить, чтобы ничего не работало, очень сложно. Все сразу отражается на поведении.

ssh1:

Предлагаю несколько вариантов для самолётов, давайте обсудим.
1.Не включать автовозврат после “ударных” ускорений до пересброса питания.
2. Не включать возврат если скорость меньше 20 и высота меньше 20
3. Выключать возврат на высоте ниже 20 если скорость так и не превысила 20, через 3 сек после включения.

LaPart:

Еще вариант условия - если была скорость, а после удара стала ноль… То есть не висит против ветра, например, а приложился…

Суммируя вышеописанное, нужно добавить датчик удара.

  1. Разрешить аварийный возврат после однократного удаления 50м от старта и высоты 20м.
  2. Если датчик удара сработал после 1, возврат отключается.
  3. при срабатывании датчика удара включается дизарм
ssh1

А что с ситуацией низко и далеко ?
Предлаю по итогам.
Не включать после удара.
Не включать если низко и скорость менее 20
В остальных случаях пусть пытается ?

dundel1
Syberian:

Суммируя вышеописанное, нужно добавить датчик удара. 1) Разрешить аварийный возврат после однократного удаления 50м от старта и высоты 20м. 2) Если датчик удара сработал после 1, возврат отключается. 3) при срабатывании датчика удара включается дизарм

  1. Аварийный - это по условию? Т.е., с пульта я могу его включить и при невыполнении 50х20? Если нет, тогда предлагаю ограничение по высоте снять, либо сделать 2м.
    Почему: реальный случай - дальность 200м, высота 15м, зарулился. Включаешь автовозврат, а он не хочет, поскольку ограничение 20м.
  2. и 3) предлагаю ввести условия - независимо от удара,
    -если высота 0-2м скорость 0-6км/ч - движок отключаем (самолёт на земле, или человек несёт в руках)
    -если высота больше 2м, скорость 0 и в течение 2-3 сек не изменяется, движок отключаем (режим “здравствуй, дерево”, как назвал его Тим:)). Т.е., самолёт повис на дереве, или лежит где-либо “на крыше дома моего”.
    Ну, и если это всё ещё и после удара, движок отключаем без вариантов:).

Предлагаю именно не дизармить, а просто не включать двигатель в этих ситуациях!
Почему: -сдуло ветром с дерева или крыши, любопытный поднял самолёт и бросил в воздух (т.е. высота больше 2м и скорость больше 6 км/ч) - при наличии заряда в батарейке включаем двиг, занимаем эшелон и валим к точке старта:)))

Да, ещё вспомнил - если после удара высота больше 2м и скорость больше 6км/ч - пытаемся выровнять и лететь дальше (типа, ударился об ветку дерева, или провод ЛЭП…)😃

Мне вот так это дело видится. Не знаю, насколько возможно это всё реализовать…😃
О, долго клаву топтал:). Сергей уже про “далеко-низко” написал

vic2rus

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

ssh1
dundel1:
  1. Аварийный - это по условию? Т.е., с пульта я могу его включить и при невыполнении 50х20? Если нет, тогда предлагаю ограничение по высоте снять, либо сделать 2м.
    Почему: реальный случай - дальность 200м, высота 15м, зарулился. Включаешь автовозврат, а он не хочет, поскольку ограничение 20м.
  2. и 3) предлагаю ввести условия - независимо от удара,
    -если высота 0-2м скорость 0-6км/ч - движок отключаем (самолёт на земле, или человек несёт в руках)
    -если высота больше 2м, скорость 0 и в течение 2-3 сек не изменяется, движок отключаем (режим “здравствуй, дерево”, как назвал его Тим:)). Т.е., самолёт повис на дереве, или лежит где-либо “на крыше дома моего”.
    Ну, и если это всё ещё и после удара, движок отключаем без вариантов:).

Предлагаю именно не дизармить, а просто не включать двигатель в этих ситуациях!
Почему: -сдуло ветром с дерева или крыши, любопытный поднял самолёт и бросил в воздух (т.е. высота больше 2м и скорость больше 6 км/ч) - при наличии заряда в батарейке включаем двиг, занимаем эшелон и валим к точке старта:)))

Да, ещё вспомнил - если после удара высота больше 2м и скорость больше 6км/ч - пытаемся выровнять и лететь дальше (типа, ударился об ветку дерева, или провод ЛЭП…)😃

Мне вот так это дело видится. Не знаю, насколько возможно это всё реализовать…😃
О, долго клаву топтал:). Сергей уже про “далеко-низко” написал

Мне кажется на 2 метра высота может уплыть махом, что баро что жпс
. И все перестанет работать как задумано.
Кстати, Олег, как насчет поддержки сонара?

dundel1
ssh1:

Мне кажется на 2 метра высота может уплыть махом, что баро что жпс

Основная высота берётся с баро, скачкИ в пределах 1-2м как раз укладываются. Плюс условия связаны ещё и со скоростью. По-моему, вполне…
Смысл, чтобы привязать к высоте безопасной для людей, и почти безопасной для самолёта при падении “просто кирпичём”😃

ssh1
dundel1:

Основная высота берётся с баро, скачкИ в пределах 1-2м как раз укладываются. Плюс условия связаны ещё и со скоростью. По-моему, вполне…
Смысл, чтобы привязать к высоте безопасной для людей, и почти безопасной для самолёта при падении “просто кирпичём”😃

А еще 2 метра это может быть естественное изменение высоты на поле.
Тут мне кажется сколько людей столько и цифр.
Может все же дать каждому настроить как он хочет.
В настройках автопилота ввести 2 цифры мин скорость для включения и мин высота.
Работать они будут через логичекое или. То есть для включения достаточно набора или мин скорости или мин высоты.Захотел чтоб работало при любой скорости или высоте - увел нужную цифру в минус.

А, еще чекбокс “запрет включения после удара”

frwind

Добрался я таки до MPX 😃
Сейчас поеду испытывать, как раз и ветерок хороший 9-11 м/с 😃

Frr
Syberian:

По числу осей линейных датчиков - не так уж много. В q - гира и аксель.

А почему решили не включать в ФК маг. ?
Шум курса тоже придется как-то удалять.

Syberian

Он тоже там, но его шум лежит в R. Из показаний гиры интегрируется кватернион, добивается акселем, из него затем вычисляется референсный трехосевой вектор H, который является предсказанием реального вектора В, т.е. компаса.
Попутно нахаляву имеем компенсацию биасов гиры и акселя до определенных пределов и компенсацию центробежки.

serj

А как компенсация центробежки получается “нахаляву”? информация о скорости должна откуда-то поступать? 😃

Syberian

Под халявой имелось в виду биасы. Центробежка корректируется путем вычисления угловой скорости (гира), перегрузки (сам аксель - отличие длины от 9.81) и отличия Н от В, в результате вводится виртуальная “поправка” к предсказанию акселя, не меняя показания его самого. Для линейных ускорений используется именно отсутствие угловых скоростей и преобладает влияние Н, для центробежки - наоборот, преобладает гира, а Н ослаблено. Естественно, все пропускается через матрицу наблюдения. И никаких ЖПС не нужно, хех… По магнитному и ускорительному тестам получается то же, что у моего “идеала” - VN100 (картинка справа, естественно).

Для Дринкера специально: согласись, с*издить алгоритм у VectorNav - это тоже труд, достойный докторской, а не просто “поделка” 😉

Для прочих: я не *издил алгоритм ниоткуда.

Frr
Syberian:

Он тоже там, но его шум лежит в R.

Шум мага в R, а курс (из которого получается yaw-часть кватерниона) д.б. в x и его шум в P и Q, насколько понимаю. 😃

>Центробежка корректируется путем вычисления угловой скорости (гира), …
“… это разные омеги, каждая живет собственной жизнью” (C, кажется Oliver)
Для квадриков (которые летают не только носом вперед) плохо подходит.