Создание собственной системы стабилизации
т.е. в данном случае этот пид- интегратор это некая система вычисляющая собственный резонанс и работающая “амортизатором”
что напрягает в пид интеграторе. непонятна его временная храрактеристика и способность к деградации. будет ли он бесконечно деградировать в определенных ситуациях,
например при постоянной ошибке курса, к примеру если компас врет градусов на 30
Амортизатором служит только дифференциальная часть - всё остальное это по сути управление… Так вот вернёмся к КУК-у там как раз угловая скорость служит пропорцией угол- интегральной составляющей - развивая дальше мысль, можно пересмотреть пид для инерциалки, где скорость будет служить пропорцией, путь - интегральной составляющей, а ускорение дифференциальной! Главное в этом то, что нет лишних интеграторов!
ИМХО
если говорить о “идеальной инерциалке” должны быть не P I D смешивания датчиков а коэфициенты к лагам компонетов системы.
к примеру знаем что жпс запаздывает на 0,1 или 0,2 сек и компенсируем это
знаем скорость деградации инерциальной скорости по времени - принимаем ее изменения в пропорции с достоверностью
безусловно пиды. втч с ОС нужны, с тем чтобы скомпенсировать собственные погрешности датчиков но как бы фиксированный лаг жпс перекрывать пидом тоже как то неразумно
лаг ЖПС у тебя перекрывается уже здесь: инав_позиция = инав_позиция * 0.998 + жпс_позиция * 0.002 и служит это дело для долгосрочной коррекции “уплывания” интегратора и совершенно пофиг, что оно лагает пока ЖПС “доплывёт” до пределов способных существенно влиять на интегратор - оно усреднится так, что мама не горюй… короче показания будут правдоподобны…
развивая дальше мысль, можно пересмотреть пид для инерциалки, где скорость будет служить пропорцией, путь - интегральной составляющей, а ускорение дифференциальной! Главное в этом то, что нет лишних интеграторов!
Вот, золотые слова!
знаем скорость деградации инерциальной скорости по времени - принимаем ее изменения в пропорции с достоверностью
Как раз “угадывающие” фильтры с этим борятся, экстраполируя первообразные из производных, полученных с “быстрых” датчиков (ускорение, угловая сскорость/ускорение), подбирают коэффициенты экстраполятора по результатам сравнения с “медленными” датчиками абсолютных величин (скрость, путь, высота). В ПИДе экстраполятором является компонент И, демпфером Д.
лаг ЖПС у тебя перекрывается уже здесь: инав_позиция = инав_позиция * 0.998 + жпс_позиция * 0.002 и служит это дело для долгосрочной коррекции “уплывания” интегратора и совершенно пофиг
при условии что коэфициент подтяга маленький, а если он накручен сильно то может и подпортить - позиция слишком интенсивно будет догонять жпс.
и кроме позиции еще ведь подтягивется скорость…
накручен сильно то может и подпортить - позиция слишком интенсивно будет догонять жпс.
и кроме позиции еще ведь подтягивется скорость…
я вчера писал про демпфер по дельте ошибки, он притормозит проскок равновесия. В этом кстати причина раскачки.
я вчера писал про демпфер по дельте ошибки, он притормозит проскок равновесия.
я попробую это реализовать, но мне нужно сначала выкурить как следует доку…
может ли быть отсутствие “коробочки” следствием неточностей в компенсации наклонов?
Может как раз с этим связаны осцилляции? Всетаки при резком оттормаживании углы меняются очень сильно.
Может как раз с этим связаны осцилляции? Всетаки при резком оттормаживании углы меняются очень сильно.
и это тоже буду тестить, нужно сначала чтоб хоть плохенько но полетело…
но отработка малых перемещений с точки зрения тестирования - задача не такая сложная как полетные осциляции ибо легко проверить экспериментально.
непонравилось - поменял и снова пробуй
Кстати, на мой взгляд ахрс и инс не обязательно должны быть единым целым. Из углов в пространстве можно вычислить теоретические показания акселерометра и вычтя из них реальные показания найти результирующий вектор ускорения. Его потом по проекциям разложить.
Что-то мне подсказывает, что я щас возьму всё по@ерю и начну проект с нуля - задолбало в чужой код вклинивать свои задумки, а потом мужественно искать тот-же барометр 😦
если честно пугают 2 вещи:
станция - вообще не представляю как это рисовать и общаться потом с ней
модули и драйвера - нарисовать не проблема, а как их “зацепить” и контролировать - х.з. я тут намедни hardfault поймал с SPI - наверно неделю не мог догнать, что нога cs2 = 1 не существует, есть cs1 = 0 компилятор пропустил я в отладке дооолго не мог понять что за порт у меня такой - вот такой из меня программер))) а всё потому что spi и датчики в одном файле, а процедура общения с ними в другом… короче надоело…
ладно за зиму что-нибудь накорякаю, блин да ещё под 2 железяки - ну эт не страшно обе помню, если других проблем не будет, надо ж как-то арду допиливать, а я совсем в другую степь пошел…
Кстати, на мой взгляд ахрс и инс не обязательно должны быть единым целым. Из углов в пространстве можно вычислить теоретические показания акселерометра и вычтя из них реальные показания найти результирующий вектор ускорения. Его потом по проекциям разложить.
не ну вроде ж так все и делают)))
Что-то мне подсказывает, что я щас возьму всё по@ерю и начну проект с нуля - задолбало в чужой код вклинивать свои задумки, а потом мужественно искать тот-же барометр
интуиция показывает что в ходе переписывания сначала найдется баро и появится желание откатиться до точки входа,
а если оно будет преодолено то все равно в результате взаимствования (и знания того как сделали другие) можно поцепить логические, математические ошибки и программные баги
😃
глаза боятся, а руки - крюки))) мне очень многое не нравится в известных мне проектах ( и как правило - это так глубоко всё завязано, что менять - руки опускаются… это как и с домом - купить или строить, вот купил, а щас понимаю, что лучше было строить… я столько переделал и понимаю, что стою до сих пор в начале пути, что надо перепланировать ещё половину дома (половину я переделал) и достроить отдельную кухню, а существующую превратить в прихожую - Макс был у меня в гостях, может подтвердить что кухня - не кухня)))
это как и с домом - купить или строить, вот купил, а щас понимаю, что лучше было строить… я столько переделал и понимаю, что стою до сих пор в начале пути, что надо перепланировать ещё половину дома (половину я переделал) и достроить отдельную кухню, а существующую превратить в прихожую - Макс был у меня в гостях, может подтвердить что кухня - не кухня)))
это тоже проходили… анализируя чужой опыт решили сразу строить…
вот что получилось my.mail.ru/mail/kozinanatoliy/photo/138
я папе посылал эскизы - он мне обмеры и руководил там.
зы прошу прощенья за отклонение от темы
зы прошу прощенья за отклонение от темы
Тоже немного отклонюсь )) Как человек мало в чем искушенный (особо в строительстве), удивлен, что сначала ставили декоративную стену, а потом внутри обкладывали пеноблоком. Дом отличный получился!
Теперь, как обещал Алексею, выложу наработки по “виртуальной лаборатории”. Вот так я это назвал )))
Вот демка, прошу прощение за качество, снято авторегистратором
для связи АП с симом использовал “прокладку” на Питоне.
Если кому интересно может сам запустить на STM32F4Discovery или F4BY. Спрашивайте, расскажу как запустить. Полётник подключается к компу через порт GPS, визуализация (тоже написанная на питоне) соединяется через USB или модемный порт. Приемник подключается по SBUS или SPPM. Прошива и питоновские скрипты в архиве.
это тоже проходили… анализируя чужой опыт решили сразу строить…
на тот момент у меня не было особого выбора, мне надо было быстро решить жилищную проблему… закрываем оффтоп…
Контроллер получает от сима угловые скорости и вектор ускорения (аксель), углы с сима используются только для формирования вектора магнитометра. По сути эмулируется плная работа ИНС. На видео управление самолем чисто коптерным ПО, естественно работает только режим угловой стабилизации, но даже этот режим позволяет управлять самолем по коптерному, на видео я задаю курс ВПП и просто подруливаю тангажем и креном, одним пальцем. Достаточно задать положение в пространстве и газ, самолет постарается занять указанную ориентацию в пространстве. Там где смоль выполняет спираль, я кручу задачу курса, если сделать это быстрее чем отработает эроплан, то он может выполнить полупетлю вверх или вниз, куда ему ближе. “Погоня за морковкой”))) Сейчас вот думаю как скрестить коптерный АП с самолетным, отдельно друг от друга (как в АРДУ) я их не рассматриваю. Видимые проблемы: раскачка на высоких скоростях, ну дописывание АП для управления аэродинамическим ЛА. Первая - нужно ввести в ПИД воздушную скорость, я так понимаю как квадратичный коэффициент; вторая - по большому счету нужно только поворачивать задающий вектор в сторону целевой точки.
Контроллер получает от сима
никак не опознать используемый симулятор, поделитесь названием?
как скрестить коптерный АП с самолетным
имхо, у вас основная ошибка — разделять АП по модельному признаку. вспоминая Openpilot, один и тот же АП используется для коптеров, самолетов, машинок и даже двухколесных моделей (которые статически неустойчивы). разница лишь в задействованных микшерах.
Теперь, как обещал Алексею, выложу наработки по “виртуальной лаборатории”. Вот так я это назвал )))
это супер!
в самом деле это супер инструмент когда есть сим, ускоряет процесс на несколько порядков.
еще со времен ардупилота на 328 меге изучал ардупилот именно с xplane
потом появился апм и в мишен планере появилась возможность соединять контроллер и симулятор прямо по юсб
с использованием mission planner
но билд “hil” (hardware in loop) работал только с совсем редкими самолетными прошивами.
была мечта изучить поведение коптера и даже модель квадрика нашлась для иксплейна но заставить квадрик летать так и не смог.
после многих попыток он таки стал стабилизироваться но ни высоту не держал ни делал адекватных попыток пройти маршрут.
видимо нужные ардукоптеру значения акселей и компаса кудато нетуда шли
или F4BY. Спрашивайте, расскажу как запустить
это интересно.
но если это писать в этой ветке то инфа которая может понадобиться многим может потеряться
как минимум надо веточку начать
имхо, у вас основная ошибка — разделять АП по модельному признаку. вспоминая Openpilot, один и тот же АП используется для коптеров, самолетов, машинок и даже двухколесных моделей (которые статически неустойчивы). разница лишь в задействованных микшерах.
миксами получится УГ
хороший автопилот использует физику модели
или F4BY
да только кто попробовать захочет слейте и сохраните лодырь на всякий, ну или заранее предупредите…