Leave a comment

Comments 10

slazav June 7 2011, 20:19:23 UTC
А что за 18 каналов?
И как устроена стабилизация: что наблюдается, чем управляется, как выбраны параметры этого управления?

Reply

max_ushakov June 7 2011, 20:31:10 UTC
Наблюдаются угловые скорости (от гироскопов), сила тяжести (от акселерометров) и положения ручек передатчика. Дальше есть два режима: более простой, когда акселерометры не используются -- вычитаем сигнал от гироскопов из положения ручек и засовываем в PID-контроллер; его выходами питаем моторы. Второй -- вычисляем текущее положение прибора в пространстве, для этого интегрируем гироскопы и корректируем с помощью акселерометров, чтобы ноль не уплывал; всё это в координатах крен-тангаж. Потом вычитаем из крена и тангажа положения ручек и засовываем в PID. Выход PID рассматриваем как углвую скорость, которую надо обеспечить (чтобы достичь нуля в разности ручек и крена/тангажа). Эту необходимую скорость вычитаем из текущей и засовываем в ещё один PID.

18 каналов -- 3 гироскопа, 3 акселерометра, 5 входов от передатчика, 4 выхода на моторы, крен, тангаж, время оборота основного цикла (кстати, 3мс, причём это определяется задержкой, быстрее не умеют работать датчики).

Reply

slazav June 8 2011, 06:24:35 UTC
Про коррекцию по акселерометрам:
Считается, что их показания дают только силу тяжести, а все линейные ускорения фильтуются?
У тебя эта коррекция как-то странно происходит, мне кажется: сейчас любое положение считается горизонтальным (с большой постоянной времени), а надо бы, чтоб горизонталь выставлялась по акселирометрам (тоже с большой постоянной времени).

"4 выхода на моторы, крен, тангаж, время оборота основного цикла" - не понял, что это за 7 независимых параметров и что из них выходы контроллера?

А как ты параметры PID выбираешь? Кстати, казалось бы, привязанность на веревочку должна сильно менять свойства этой системы. Хотя может и не сильно: если веревочка в центре, то она не должна давать резких изменений угловых скоростей, а резкие линейные ускорения должны все равно фильтроваться...

Еще, кстати, вариант отладки - шарнирно закрепить центр и вообще не думать про линейные ускорения.

Reply

max_ushakov June 8 2011, 20:15:51 UTC
Про акселерометры -- да, поскольку они усредняются по примерно полутора-двум секундам, линейные ускорения должы бы фильтроваться. Про странность коррекции -- там отвалился проводок, и показания акселерометра не зависили от положения аппарата, поэтому и наблюдался этот эффект выравнивания. Когда я припаял проводок обратно, он перестал выравниваться на горизонталь, и стал приходить к правильным углам.

Про 7 параметров: выходы на моторы это выходы контроллера; крен и тангаж -- его внутренние расчёты (как раз из усреднённых акселерометров и гироскопов), время основного цикла -- просто время :) Если цикл успевает меньше, чем за 3мс, он ждёт, пока не пройдёт 3мс -- раньше нет смысла опрашивать датчики. Но если вычислений слишком много и цикл тормозит, то это число увеличивается, и это можно увидеть.

Параметры PID я подбираю методом тыка... А как ещё?

Шарнир в центре как-то вряд ли получится сделать хорошо... Лучше уж одну сторону закрепить.

Reply


slazav June 7 2011, 20:24:51 UTC
И еще идея для отладки: закрепить одну диагональ или одну сторону и отлаживать сперва два винта.

Reply

max_ushakov June 7 2011, 20:34:36 UTC
О, это надо попробовать! Но сначала посмотреть всё-таки на графики (хоть и непонятно, как!) А то я как-то расстраиваюсь, что всё управление получается бинарным -- сначала мотор на всю мощность, потом совсем выключен, потом опять...

Reply


Leave a comment

Up