Телеметрия (часть 1)

Dikoy

Гы!
Сегодня летал на автомате 😃
Какой же хороший самолёт кута! В снег сажать одно удовольствие! Взрыв пуха в момент касания и закрученый винтом вихрь сзади, а потом равномерное замедление.
В целом 2 полёта прошли успешно - самолёт держится ровно. Один полёт был нечто - толи автопилот глюканул, толи ветер был на высоте, но самоль так колбасило в воздухе, что я с горем пополам только смог спустить его на ~7 метров и выключить двигатель, после чего он грохнулся в снег. Жив. Только нос немного помят. Бум лечить 😃
Вечером попробую выложить видео.
Осознал, что хочу на борту камеру. Скорее бы изикаб приплыл 😦

Dikoy

На ужатом видео не видно нихрена… 😦

belkinnn

Всем боброго времени суток,кто мне поможет есть камера DF-335CT а как подключить не знаю провода потерены,на камере голый разъем?

smalltim

Чтобы отладить управляющие ПД - циклы для крена-тангажа, замоделировал физику самика на компутере, упрощенно, конечно:

  1. Скорость относительно воздуха - постоянна, т.е. эффективность управляющих плоскостей - постоянна.
  2. Момент инерции и эффективность управляющих плоскостей самика - некий объединенный коэффициент Х (о нем позже), на который хитро домножается синус угла отклонения сервы для получения угловой скорости:
    curspeed=curspeed*(1-inertialfactor)+sin(currentservoposition)*inertialfactor;
  3. Скорость поворота серв - стандартная, 500 градусов/сек
  4. Максимальные углы отклонения плоскостей - разные варианты, от +/-30 до +/- 60 градусов.
  5. Дискретность выхода РРМ на сервы загрублена до 6 разрядов (опять же, заведомо ухудшенные условия)

В итоге, варьируя Х (имея Торик и Изик я беру их угловые скорости на бочках и петлях как крайние значения “резвости” самика, и расширяю этот интервал вверх и вниз, до 2 порядков, т.е., грубо говоря, от 0.1 до 0.001, ставя алгоритм в замедомо ухудшенные условия), я подобрал оптимальные коэффициенты ПД контроллера, дающие:

  1. минимум вылета за целевое значение углов тангажа/крена (до 50% на самых “тормозных” самиках и 0 на самых “шустрых”),
  2. от 1.5 до 5 секунд на приведение самика из любого положения в горизонталь (зависит от резвости самика. очевидно)
  3. Иммунитет алгоритма к шуму в определении углов тангажа/крена (с пирометров). Иммунитет означает отсутствие раскачки самика. Ошибка ориентирования, конечно, есть, и она примерно пропорциональна уровню шума. Шум специально никак не фильтруется.
  4. Адекватный ответ на единичную функцию (отсутствие вылета больше 50%, отсутствие дрожания серв, приемлемое время стабилизации, отсутствие ошибки после стабилизации в новом положениии)
  5. Адекватный ответ на меандр со случайной величиной “полок”.
  6. Адекватный ответ на процесс со случайными приращениями (дерганая кривая, медленно ползущая куда придется)
  7. Иммунитет (в разумной степени) к задержкам в определении ориентации самика, т.е. показания пирометров можно фильтровать почти как угодно.

В общем, правильно настроенный ПД контроллер - жесть.

Что планируется:

  1. пользовательские настройки коэффициентов ПД - нафик. Для каждого конкретного самика заманчиво подобрать свои коэффициенты ПД, например, можно “шустрые” самики из любого положения выводить в горизонталь за секунду, но при этих настройках “медленные” самики будут очень долго приходить к целевой ориентации. Наоборот, медленные самики можно за 3 секунды привести к нужной ориентации, но шустрые на этих настройках будут переруливаться и появится дрожь в сервах или даже раскачка самика.
    Прикольно, что средние настройки в большинстве случаев обеспечивают привод самика средней резвости к нужной ориентации, скажем, по крену, всего двумя взмахами сервы: первый, резкий, закручивает самик, придавая угловую скорость, второй более слабый но продолжительный взмах в противоположную сторону останавливает самик в нужном положении.
    Так вот, к пользовательским настройкам ПД контроллера. Отменяется. Слишком легко ввести что-нибудь левое и потерять нафиг самик.
  2. Независимые ПД контроллеры по каналам крена, тангажа, газа.
  3. Высота контролируется отдельным ПД контроллером, меняющим по ситуации целевое значение тангажа. Т. е. изменение высоты выглядит так: хотим подняться повыше - задаем тангаж +10 скажем градусов (выставляется пользователем) и понеслась. Т.е. в этом случае 2 ПД каскадом.
  4. Курс контролируется отдельным ПД контроллером, меняющим по ситуации целевое значение крена. Т. е. изменение курса выглядит так: для поворота налево задаем левый крен на 45 градусов (задается пользователем) и понеслась. В этом случае тоже 2 ПД каскадом. Примечательно, что работающий независимо канал тангажа, увидев неизбежный клевок носом самика при повороте, приподнимет РВ, еще сильнее заворачивая самик. И получается красивый такой разворот без потери высоты.
  5. Набор управляющих плоскостей и миксеры задаются пользователем (элероны+РВ+РН, РВ+РН, элевоны/V-хвост)

Как-то вот так.

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

Brandvik

Ну прямо уже не терпится собрать и отправить его слетать к эйфелевой… это где-то 5 км по прямой 😒

Dikoy
smalltim:

В общем, правильно настроенный ПД контроллер - жесть.

Ага 😃
А оставил ПД только по крену/тангажу. Газ и направление, как показала практика, проще регулировать тупо дискретно. У меня эффективность руля направления очень низкая, даже несмотря на то, что он напротив винта стоит. Разворот одним рулём направления составляет около 70 метров радиус 😦 Какой тут ПД нафиг…
Кстати, экспериментировал тут. Оказывается, если тупо связать угол без фильтрации (только ФСС, без поправок) с положением серв в соотношении 1/2, то всё работает не хуже ПД 😃 Попробуйте отмоделировать такую ситуацию, с учётом характеристики пирометра, что я присылал. Раскачка есть, но довольно быстро удаляется. ИМХО в копилоте именно так и сделано. Время вычислений по крену/тангажу == 400 мкС при 8 МГц.

Brandvik

Может я забегаю далеко вперед…

  1. Набор управляющих плоскостей и миксеры задаются пользователем (элероны+РВ+РН, РВ+РН, элевоны/V-хвост)

Как на счет задания крайних точек для серв? И в режиме стабилизации, микс элероны-флапы(тормоза), тоесть поймет ли контролеер такую комбинацию из двух серв сигналов на них?

smalltim

>Как на счет задания крайних точек для серв?
Задается.

smalltim

>микс элероны-флапы(тормоза), тоесть поймет ли контролеер такую комбинацию из двух серв сигналов на них

Канал элеронов один, т.е. если есть 2 сервы и режим флаперонов, придется использовать всяческие Y-кабели и микшеры, а канал элеронов пропускать через автопилот. На борту автопилота будет только микшер для V-tail или элевонов настраиваемый с компука.

Dikoy

smalltim, вы б не могли ещё раз выложить картинки схемы и платы автопилота? Старые вложения убились.
У меня тут непонятка с USB, хотелось бы сравнить… Оно же уже работает в железе, как я понимаю (USB часть)?

smalltim

Да, конечно, в железе работает. Картинки выложить не могу (аттачи так и не вылечены), но схема совпадает с "Figure 21-3. Typical Bus powered application with 5V I/O" из даташита

Dikoy

А питание чипа внешнее 5 вольт?
Меня удивляет отсутствие диода между VBUS и всем остальным. Одновременно подключать плату от внешнего источника и USB не приходилось? Кею это не страшно, например. Т.к. у него диодная развязка источника питания.
Да и отсутствие диодов по дата-линиям смущает. В кее они есть, да и во всех остальных девайсах, что я видел, диоды ставят. Почему их упустили в ДШ я не знаю…
Странно, короче. Кей очень избыточно напичкан защитами, но и неубиваем (проверяли не раз). А по ДШ защиты не нужны вообще. Странное различие между двумя документами одного производителя.

UID как и рекомендуется в ДШ, просто висит в воздухе?

Brandvik

Канал элеронов один, т.е. если есть 2 сервы и режим флаперонов, придется использовать всяческие Y-кабели

Очень-очень жаль 😦 и даже не из за тормозов.

Dikoy

2smalltim. Всёж, если не сложно, скиньте картинки мне в мейл. Уж больно много различий в апнотах атмела…

maloii

Купил GSM модуль, поигрался. Работает отлично, sms шлет на ура, с инетом соединяется и стабильно работает. Вот теперь думою какое ему применение можно применить кроме как в случае файл сейфа слать смс. У кого какие есть идеи?

maloii

Споял платку для бутербродика 😃. Купил карту мегафоновскую, но с ней почеу то инет гораздо медленней работает, надо на работе проверить там помощнее ловит

Олег#

с инетом соединяется и стабильно работает

а для чего он соединяется с инетом то…
и кде такая штука продаётся 😮

smalltim

>2smalltim. Всёж, если не сложно, скиньте картинки мне в мейл. Уж больно много различий в апнотах атмела…

Вот схема подключения к USB: smalltim.ru/i/schem_usb.JPG

Никакой самодеятельности, кроме Шоттки на входе - чтоб не питать компуковый питатель USB от автопилотного стабилизатора 😃
Насчет неубиваемости - не знаю. Что-то левое в разъем miniUSB засунуть трудно, а статикой мне убить автопилот пока не удалось, хоть и таскаю плату плату в рюкзаке или в кармане каждый день.

Автопилот потихоньку продвигается, кстати. Сегодня добил диалог установок включения-выключения автопилота и мигающих циферок (alarm) на телеметрической картинке (болванка диалога - вторая картинка smalltim.ru/autopilot/screenshots/), слив всего этого в плату автопилота и обратно на компук, ну и, разумеется, сохранение в набортном флеше. Использования EEPROMa, по-прежнему, успешно избегаю 😉

Заодно обнаружился интересный глюк штатного бутлодера. Если после обновления прошивки пнуть бутлодер, чтоб отресетил Мегу из DFU в обычный режим, Мега грузится в непонятно каком полуобморочном состоянии и стирает флеш, но не целиком, а как-то выборочно. Как это бутлодеру удается, не знаю. Ограничился отключением пинков бутлодера и выводом на экран просьбы отключить-подключить питание или нажать кнопочку ресета автопилота.

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

А бедная плата телеметрии с прошивкой “под автопилот” станет тупым придатком: только сбор данных с каналов АЦП и собственно отрисовка на экране.