Автопилот маленького самолёта

 
Это если машинки встроены напрямую в систему управления. Такие есть - https://aliexpress.ru/item/1005006477096112.html, и куча проектов на базе и шаговиков и обычных электромоторов с энкодером (и коллекторные и безколлекторные годятся). А если сервоприводы будут стоять в системе триммирования, то подходят и обычные сервомашинки, их вполне достаточно и автопилот рулит самолётом без проблем, если что их легко пересилить. Один знакомый форумчанин так несколько лет уже летает маршруты. Правда жаловался что часто выходят из строя и руки потом устают пересиливать всю дорогу.
По ссылке моторчики с редуктором. Правда- редуктор хороший, стальной. Но и цена за один- сами видите. Вообще не полторы тысячи "за всё" 🙂
 
Та ёпрст... надеюсь на фото прототип и в таком виде он в серию не пойдёт.
 
Посмотрим по какой цене он пойдет в серию и какой к нему нужен будет состав доп оборудования и требуемая энергетика… Дьявол как известно кроется в деталях…

Но новость отличная…
 
«… Автопилот АП-МВЛ разработки Конструкторского бюро промышленной автоматики (КБПА, входит в КРЭТ) прост в эксплуатации и обладает высокой отказобезопасностью. В состав системы АП-МВЛ входит цифровой пульт-вычислитель, а также исполнительные механизмы в виде сервоприводов, подключаемые параллельно в систему управления самолетом. При этом автопилот сопряжен по цифровым интерфейсам с информационными системами, такими как курсовертикаль, системы воздушных сигналов и навигации, а также электромеханизмами триммирования…»

Это с сайта Ростеха…

Я же говорил что нужно будет докупить кое что еще… )))

Ценник будет видимо тоже…
 
По ссылке моторчики с редуктором.

Они работают в режиме сервы как с жёстким позиционированием, так и с мягкой силой в нужном направлении. Ценник кстати не высокий, только недавно такие стоили в разы дороже. Можно их считать агрегатами самолёта, а в полторы тысячи учитывать только сам полётный контроллер с автопилотом.
 
Добрый день, коллеги.
Немного картинок для разнообразия 🙂
Я неспеша делаю свой EFIS и EMS для проекта Zenith CH650 B
Пока и с постройкой забот хватает, но беспокойные руки и голова не дают сидеть без дела дома. Поэтому пишу потихоньку. интерфейс на Питоне, обработку датчиков на C, железо Ардуино.
Думаю, что при нынешних возможностях элементной базы и количестве всего написанного, простой автопилот на сервах -- не проблема. Теория PID-регулирования и обратной связи всем нам в помощь.

В течение месяца-двух планирую подкючить потихоньку датчики статики-динамики к железу и дисплею и потестить пока на машине 🙂


P.S. А в порядке обсуждения логики простого автопилота предлагаю начать с wing level, то есть удержания крена/тангажа.
То есть, если с нашей системы AHRS (измерения крена/тангажа/курса) построенной на вполне дешевых акселерометрах и гиродатчиках типа MPU6050 приходят значения углов, то наш автопилот должен выдавать управляющие сигналы на сервы в каналах крена и тангажа для удержания заданного тпнгажа для ГП и крена 0. Любая простая плата управления дроном или РУ самолетом с этим справится, думаю. Конечно нужны настройки, подстройки, те же PIDы.
Но.. как вариант для начала вполне себе по-моему

IMG_1666.jpeg
 
Последнее редактирование:
На углах Эйлера это работать не будет. Ну, разве только, на малых кренах. Нужно считать на кватернионах.
Вцелом, подобные системы в РФ уже есть. Есть и готовые и в разработке. И с навигацией и без. Обычно всё это довольно недорого. С автопилотом сложнее, но кмк, проще купить готовую недорогую, но с получением от неё пространственного положения. Думаю, это решаемо с разработчиками. А уже потом вешать на них машинки. Или даже проще- для горизонтального полёта достаточно китайского контроллера от БПЛА самолётного типа, только к нему другие машинки подключить.
 
Не важно как назвать входящие параметры для системы стабилизации. Углы Эйлера это всего лишь три угла связанной с самолетом системы координат. Кватернионы-- более сложная система пространственных координат, удачно описывающая сложное движение и вращение на большие углы.
Вы ведь, надеюсь, автопилот не для высшего пилотажа создавать собрались?

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

Ну и чтобы вам спокойно было с кватернионами🙂, этот самый датчик MPU6050 имеет на борту DMP (digital motion processor), он как раз выдает значения кватернионов, которые потом и пересчитываются в те самые углы Эйлера

IMG_1668.jpeg
 
Последнее редактирование:
В течение месяца-двух планирую подкючить потихоньку датчики статики-динамики к железу и дисплею и потестить пока на машине 🙂
Прошу прощения если невнимательно читал, но интересно, какие датчики давления на динамику и статику решили использовать?
 
Добрый день, коллеги.
Немного картинок для разнообразия 🙂
Я неспеша делаю свой EFIS и EMS для проекта Zenith CH650 B
Пока и с постройкой забот хватает, но беспокойные руки и голова не дают сидеть без дела дома. Поэтому пишу потихоньку. интерфейс на Питоне, обработку датчиков на C, железо Ардуино.
Думаю, что при нынешних возможностях элементной базы и количестве всего написанного, простой автопилот на сервах -- не проблема. Теория PID-регулирования и обратной связи всем нам в помощь.

В течение месяца-двух планирую подкючить потихоньку датчики статики-динамики к железу и дисплею и потестить пока на машине 🙂


P.S. А в порядке обсуждения логики простого автопилота предлагаю начать с wing level, то есть удержания крена/тангажа.
То есть, если с нашей системы AHRS (измерения крена/тангажа/курса) построенной на вполне дешевых акселерометрах и гиродатчиках типа MPU6050 приходят значения углов, то наш автопилот должен выдавать управляющие сигналы на сервы в каналах крена и тангажа для удержания заданного тпнгажа для ГП и крена 0. Любая простая плата управления дроном или РУ самолетом с этим справится, думаю. Конечно нужны настройки, подстройки, те же PIDы.
Но.. как вариант для начала вполне себе по-моему

Посмотреть вложение 573476
Любопытно узнать как вы сию красоту перенесете в кокпит… Как я понял вы сейчас «кодите» на ноутбуке… куда будете переносить символгенератор и как и на что выводить картинку… как будет организована связь с датчиками… вот это интересно … или вы с ноутбуком летать будете?! Заранее мерси за ответ…
 
Любопытно узнать как вы сию красоту перенесете в кокпит… Как я понял вы сейчас «кодите» на ноутбуке… куда будете переносить символгенератор и как и на что выводить картинку… как будет организована связь с датчиками… вот это интересно … или вы с ноутбуком летать будете?! Заранее мерси за ответ…
Отвечаю. В кокпите это будет работать на одноплатном компьютере Raspberry Pi.
Вывод картинки будет сделан через HDMI порт на монитор 7 дюймов (пока) встроенный в приборную доску. Связь с датчиками и их контроллерами через CAN-шину.
 
P.S. А в порядке обсуждения логики простого автопилота предлагаю начать с wing level, то есть удержания крена/тангажа.
Может для начала просто крен, без тангажа? Крен в самолете сложнее, чем рулить рулем в машине. Как мне представляется, крен должен быть зависимым параметром, причем далеко не первым в цепочке вычислений. Например наш истинный курс 200, а требуется 270, при этом мы можем быть или не быть в повороте. Тогда последовательность вычислений могла бы быть такой:
- посчитать требуемую коррекцию курса (+70)
- посчитать требуемую для этой коррекции угловую скорость (+3 град/сек)
- посчитать требуемую коррекцию угловой скорости, так как мы уже можем находится в координированном повороте с некой угловой скоростью и со штурвалом в нейтральном положении (например мы уже в повороте +1 град/сек, тогда нам надо добавить +2 град/сек)
- посчитать требуемый поворот штурвала
- повернуть штурвал
Я в своем автопилоте пытаюсь применить такой метод, но пока борюсь с самовозбуждением системы, т.к. возникают осциляции при удержании курса. Длительные повороты со стандартной угловой скоростью 3 град/сек, как ни странно, держит нормально.
Отдельным пунктом думаю будет настройка, так как все самолеты разные и ведут себя по-разному, даже при поворот в разные стороны не симметричны, может тут что-то самообучающееся можно придумать?
 
Может для начала просто крен, без тангажа? Крен в самолете сложнее, чем рулить рулем в машине. Как мне представляется, крен должен быть зависимым параметром, причем далеко не первым в цепочке вычислений. Например наш истинный курс 200, а требуется 270, при этом мы можем быть или не быть в повороте. Тогда последовательность вычислений могла бы быть такой:
- посчитать требуемую коррекцию курса (+70)
- посчитать требуемую для этой коррекции угловую скорость (+3 град/сек)
- посчитать требуемую коррекцию угловой скорости, так как мы уже можем находится в координированном повороте с некой угловой скоростью и со штурвалом в нейтральном положении (например мы уже в повороте +1 град/сек, тогда нам надо добавить +2 град/сек)
- посчитать требуемый поворот штурвала
- повернуть штурвал
Я в своем автопилоте пытаюсь применить такой метод, но пока борюсь с самовозбуждением системы, т.к. возникают осциляции при удержании курса. Длительные повороты со стандартной угловой скоростью 3 град/сек, как ни странно, держит нормально.
Отдельным пунктом думаю будет настройка, так как все самолеты разные и ведут себя по-разному, даже при поворот в разные стороны не симметричны, может тут что-то самообучающееся можно придумать?
Согласен, можно начать с крена. Но, имхо, именно крена, а не курса. Управлять курсом -- следующий этап.
Для начала попытаться сформировать управляющую функцию для поддержания крена 0 градусов. Уходит крен от нуля, добавляем элеронов против крена, пропорционально скорости изменения крена, не доходя до 0 (допустим градус), элероны в нейтраль. И далее подстраивая параметры системы (те самые PID -- proportional/integral/derivative) добиваться устойчивого выдерживания нулевого крена.

Так же с тангажом.

С курсом более сложная задача -- в зависимости от разницы заданного и текущего курса формируем значение крена и удерживаем его, уменьшая разницу курсов. При подходе к заданному курсу (например за 10 град.) уменьшаем крен до минимального (3 град например) и потом в горизонт. И снова PID- настройки.
Дело нудное, но интересное 🙂
 
Вот небольшой примерчик программы на Python, которая использует простую библиотеку PID-регулирования для выдерживания крена 0 отклонением элеронов максимум на 10 градусов.
Исходный крен -- рандом для примера:

сложно код вставить нормально(
 

Вложения

  • roll.docx
    roll.docx
    7,1 КБ · Просмотры: 10
Последнее редактирование:
Вот небольшой примерчик программы на Python, которая использует простую библиотеку PID-регулирования для выдерживания крена 0 отклонением элеронов максимум на 10 градусов.
Исходный крен -- рандом для примера:

сложно код вставить нормально(
кмк flight controller от ardupilot уже делает всю эту работу, нужно только подключить.
 
Отвечаю. В кокпите это будет работать на одноплатном компьютере Raspberry Pi.
Вывод картинки будет сделан через HDMI порт на монитор 7 дюймов (пока) встроенный в приборную доску. Связь с датчиками и их контроллерами через CAN-шину.
HDMI бытовой интерфейс, не сильно надёжный. Лучше SDI, у того BNC разъёмы, с защёлкой.
Имху
 
Никакое изменение в системе(крен, тангаж, курс) не происходит мгновенно. Поэтому нужен только высокочастотный опрос портов в которые воткнуты датчики и сравнение с сохраненным значением. Ком порт имел частоту опроса под 180килогерц, емнип.
 
HDMI бытовой интерфейс, не сильно надёжный. Лучше SDI, у того BNC разъёмы, с защёлкой.
Имху
Приходится отталкиваться от того, что есть на борту у Raspberry Pi. Не очень хочется включать конвертер hdmi-sdi в передачу картинки. Согласен с тем, что hdmi не особо надежен, поищу варианты разъемов с фиксацией на винтах
 
Назад
Вверх