Брат-2> Тем не менее, напоролся на проблему автоколебаний по оси Z (крен).
Брат-2> Всю тему прочитал, ничего не понял, я не ученый и даже не умный, просто железнодорожник, но тоже хочу!
1.
Первое, что должна делать управлялка, это поворачивать руль в противоположную сторону.
Например, держа ракету в руках, наклоняешь её вправо на 2 градуса, а управлялка поворачивает руль влево на 7 градусов. Получается коэффициент 7/2.
Сигнал_на_руль = k1 * Отклонение
Какой именно величины надо взять коэффициент зависит от эффективности рулей.
И от того, насколько жёстко ракета должна выдерживать направление.
И коэффициент называется "коэффициент жёсткости".
Если есть отклонение и руль повернулся, то ракета начнёт с ускорением поворачиваться в правильную строну. Набрав скорость она проскочит через нуль и начнёт поворачиваться влево. А а управлялка будет поворачивать руль вправо. Ракета затормозится и начнёт вращаться вправо. И так и будет колебаться туда-сюда.
Инерция ракеты и действия управлялки дают классический колебательный контур "грузик на пружинке".
2.
Чтобы подавить колебания, надо в управление добавить вязкое трение — зависимость отклонения руля от скорости вращения. "Коэффициент вязкости".
Сигнал_на_руль = k1 * Отклонение + k2 * Скорость_отклонения
Если ракета вращается вправо, то руль отклоняется влево.
Это надо в управляющей программе временно установить k1 = 0, тогда при наклоне руками с равномерной скоростью ракеты вправо, руль будет отклоняться влево. А при нулевой скорости будет вставать в нуль.
Если k2 взять слишком большой, то ракета будет слишком медленно возвращаться к нулю.
Если слишком маленький, то останутся колебания, хотя и затухающие.
Есть некоторое оптимальное значение коэффициента k2 (зависит от k1 и инерции), когда ракета максимально быстро возвращается к нулю и не колеблется.
3.
Есть ещё задержка в управлении.
Пока датчики померяют, пока комп посчитает, пока машинка отработает и руль начнёт действовать.
Если поставить k2 = 0, то за счёт этой задержки обязательно возникнут колебания и будут усиливаться.
Так что k2 нужен и для того, чтоб компенсировать гадость от задержки.
Кроме того, задержка ограничивает величину коэффициента жёсткости k1 — его нельзя делать слишком большим, иначе даже k2 не сможет подавить колебания.
4.
Чтобы правильно посчитать эти коэффициенты, надо где-то почитать про затухающие колебания, измерить инерцию и измерить эффективность рулей.
Это как-то не совсем нетривиально!!!
Я этим занимался но не довёл до конца.
Поэтому не скажу.