Smalltim OSD and autopilot (часть 2)

baychi
smalltim:

В стабилизаторе стоят однопроцентные резисторы, задающие выходное напряжение.

А точность источника опорного?
Как бы там не было мы судим по фактам. Разброс напряжения питания лично у меня 4.92 на одном комплекте и 4.85 на другом, погрешность измерения напряжения -3% на первом и -9% на втором.
Тим, я ж не для себя прошу, сам то давно себе все коэффициенты ввел и летаю в удовольствие. 😃

Есть более интересные темы. Возвращаюсь к вопросам тангажа и крена в режимах сос стабилизацией. По логам моих полетов (да и большниства здесь) видно, что целевой крен или тангаж всегад больше (по абсолютной величине) реального. То есть АП никогда не дотягивает до требуемого угла. Близко к нейтрали мне это понятно: АП учитывает нейтраль серв и считает, что положительный тангаж можно создать только при подъеме РВ, а отрицательный только при опускании. В итоге, если реальный тангаж, скажем +5 градусов, а целевой 0, АП никогда не приведет реальный тангаж в 0. Аналогично на больших значениях, когда самостабилизирующая модель пытается привестись в нейтраль, АП при данном алгоритме всегда будет оставать по тангажу и крену.
ИМХО, стоит попытаться решить эту проблемму.
Есть идеи?

Llirik

Идеи давно придуманы и многомилионно раз и вездесущи применяются!
ИНТЕГРАЛЬНАЯ компонента ПИД!!!

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

В идеале при застабилизированном положении и П и Д нулевые, а И - подобранное регулятором воздействие…

baychi:

Близко к нейтрали мне это понятно

Для регулятора должно быть по боку положительный тангаж или отрицательный. Регуль смотрит на разность задания и обратной связи… Ну и “съедает” ее…

baychi
Llirik:

ИНТЕГРАЛЬНАЯ компонента ПИД!!!

Поможет во многих случаях, но например люфт РВ она не нейтрализует. 😃 Хочется более “человекоподобный” алгоритм. 😃

Llirik:

Для регулятора должно быть по боку положительный тангаж или отрицательный

Должнно быть, но вот не пофигу оказывается…

Llirik

при отключенной стабилизации и требуемым нулевым тангажем (по стику) и точно таком же газу какой реальный угол тангажа? Уверен, что тоже не нулевой, а чуть меньше 10…
Это так?

Кстати, скорее всего еще и чуть больше чем при включенной стабилизации!..

Ради интереса снимите лог в следующих режимах:
При одном и том же газе и стик тангажа в нейтрали включите/выключите стабилизацию.

baychi:

Поможет во многих случаях, но например люфт РВ она не нейтрализует.

😁😁😁

Люфт - нет… Но разницу - да!

Llirik

Кстати, вопрос к производителям:

В документации про чувствительность написано весьма понятно:

Чувствительность – величина, определяющая, насколько сильно управляющие плоскости модели
отклоняются при отличии текущего угла от требуемого. Например:
 При чувствительности в канале тангажа 50%, отклонение текущей ориентации модели от требуемой по
тангажу на 60 градусов (~1 радиан) приведет к отклонению руля высоты на 1 * 50% = 50% от полного
отклонения.
 При чувствительности в канале тангажа 160%, отклонение текущей ориентации модели от требуемой в
минус 45 градусов (~-0.8 радиан) приведет к отклонению руля высоты на -0.8 * 160% = -124% = -100%
(всегда ограничено диапазоном -100%…100%) от полного отклонения.

Другими словами, чувствительность [%/рад] - это есть П коэффициент регулятора. Если единицы измерения текущего и заданного угла радианы, а выход регулятора проценты (от-100% до +100%).

А вот про демпфирование поленились расписать…
Можно поподробнее! Какая четкая связь между значением демпфирования и дифференциальным коэффициентом D регулятора?
Понятно, что скорее всего D= K*демпфирование[%]*сек/рад.
Если так, то мой вопрос по сути: чему равно К?

Виктор
Llirik:

ИНТЕГРАЛЬНАЯ компонента ПИД!!! При наличии внешних воздействий на систему ПД никогда не застабилизируется на точно заданной уставке! Система остановится в уравновешенном состояниии между внешним воздействием (неправильный выкос, центровка, боковой ветер и т.д) и пропорциональной состовляющей! В идеале при застабилизированном положении и П и Д нулевые, а И - подобранное регулятором воздействие…

Вы бы почитали хотя бы немного про ПИД-регуляторы, чтобы иметь о них хоть какое нибудь представление ru.wikipedia.org/wiki/���-���������

SkyWorker
Виктор:

Вы бы почитали хотя бы немного про ПИД-регуляторы, чтобы иметь о них хоть какое нибудь представление ru.wikipedia.org/wiki/���-���������

А с чего Вы решили, что Кирилл не разбирается в том, о чем говорит?

Llirik
Виктор:

Вы бы почитали хотя бы немного про ПИД-регуляторы, чтобы иметь о них хоть какое нибудь представление

Даже и не знаю что ответить… С учетом того, что в данный момент руковожу внедрением АСУТП состоящей из сотен контуров регулирования…

SkyWorker
Виктор:

Потому что написан какой то бред.

Ну так вразумите его. Прочтите ему лекцию пл ПИДам. Я и сам с удовольствием послушаю. Только объясняйте доходчиво, на простом языке. Спасибо.

Llirik

Так чтоб доходчиво для всех и простым языком?

Попробую “вразумить” сам себя…

Если предположить что написанное мною бред, то:
Если система стабилизирована в требуемом состоянии (отклонения от заданного значения нет и отсутствует динамика) и регулирование ею происходит по простому ПД, то из этого следует, что пропорциональная составляющая воздействия равна нулю, т.к. нет отклонения и дифференциальная равна нулю, т.к. нет скорости изменения…

Что же заставляет ее оставаться на заданном уровне?! Что компенсирует внешнее воздействие?! Или в Smalltim-е реализована аддитивная компенсация? Сомневаюсь…

Выложенные выше логи наглядно показывают невозможность такого удержания.

Виктор, пока Вы даете ответ на эти вопросы, поясню, что я имел в виду под «уравновешенным состоянием между пропорциональной составляющей и внешним воздействием»:

Для понимания остановлюсь на «доходчивом» пояснении терминологии.

Система – собственно сама модель…

Отклонение (обозначим е)- разница между заданием (уставкой) и действительным значением регулируемой величины (обратная связь). В нашем случае задание – это «требуемый угол тангажа», а действительное значение - «текущий угол тангажа».

Воздействие ( обозначим U)– то чем мы влияем на поведение модели. В данном случае процент отклонения РВ.

При ПИД регулировании воздействие складывается из пропорциональной, интегральной и дифференциальной составляющих. U=П+И+Д. Цель алгоритма найти необходимое воздействие, такое чтобы обратная связь равнялась заданию. Допустим у нас прямое регулирование – это когда увеличение U приводит к увеличению угла тангажа. В этом случае:

П=P*e (чем больше отклонение, тем большее воздействие надо приложить). Т.е. применительно к нам, чем сильнее отличие заданного угла тангажа от текущего, тем сильнее надо отклонить руль высоты… P – пропорциональный коэффициент.

И= I*[интеграл е по времени] . Суть И заключается в том, что с течением времени пока е больше нуля (текущий угол тангажа меньше задания) И растет, а если е меньше нуля (текущий угол больше задания) то И уменьшается, тем самым «подбираясь» к необходимому значению воздействия, причем чем больше отклонение тем быстрее он это делает. I- интегральный коэффициент (чем больше тем быстрее изменяется И). На практике чаще используется обратная величина Т и=1/I – время интегрирования…

Д=D*d e/dt. Суть данной составляющей – противодействовать изменению e, дабы минимизировать инерционные промахи при выходе на уставку, а так же противодействовать внешним возмущениям при устоявшемся состоянии…

Так вот, в случае ПД регулирования (И отсутствует) и при наличии внешнего воздействия мы на уставку не выйдем!!! Например, если модель тренер верхнеплан (скайвокер) то низкое расположенный центра масс будет пытаться выровнять модель в горизонтальный полет (создавать момент сил по направлению лонжерона крыла, или, если будет понятнее, момент сил, пытающийся «опустить нос на место» при положительном угле тангажа, и наоборот при отрицательном «поднять нос») Обзовем его М1. Мы даем уставку (задание держать угол тангажа) к примеру 15 градусов. ПД выведет тангаж на меньший угол. Например этот угол оказался 10 градусов. Разница е= 5 формирует П=Р*e. Т.к. мы смотрим на уже устаканившийся угол, то Д=0. Итого наше U=П=P*e.
Напомню, что U- отклонение РВ, которое в свою очередь создает момент сил пытающийся поднять нос до заданного значения. Обзовем его М2.
Так вот!.. При ПД регулировании положение модели устаканится при М1=М2, а не при угле тангажа равном заданию!!!..

Нужна интегральная состовляющая, которая, как мы уже выяснили будет увеличиваться, поднимая сильнее РВ, до тех пор пока угол тангажа не сравняется с заданием…

Хотел вразумить себя, но не получилось…. Виктор, может у Вас получится?

P.S. Помимо описанного класического ПИД есть различные его модификации, которые для совсем уж комфортной стабилизации придется использовать… Но об этом позже… Когда полетаю, поэкспериментирую…

Виктор
Llirik:

Даже и не знаю что ответить… С учетом того, что в данный момент руковожу внедрением АСУТП состоящей из сотен контуров регулирования…

Руководить это не означает знать, а тем более уметь объяснять это тут. Но не будем тут разводить полемику. Я вроде тоже специалист по САУиР. И попытки объяснить на пальцах ТАУ предпринимал ещё два года назад вот в этой теме rcopen.com/forum/f87/topic176184/4

Виктор

Не хотел тут больше ничего писать, но пишу то для всех. Хочу предупредить, что интегральная составляющая управляющего сигнала больше всех влияет на устойчивость модели (системы). Поясню на пльцах, т.е. пока

Llirik:

интегральная состовляющая, которая, как мы уже выяснили будет увеличиваться, поднимая сильнее РВ, до тех пор пока угол тангажа не сравняется с заданием…

, наше

Llirik:

U=П=P*e.

не стоит на месте, а тоже изменяется(уменьшается), и вы опять не достигните

Llirik:

М1=М2

ОШИБКА - (е) ВСЕГДА будет присутствовать.

Annex
Виктор:

интегральная составляющая управляющего сигнала

“Ругаются” непонятными словами… Прочитал, затупил, упал-заревел 😃
Шутка… 😉

Главное что в споре (ну за частую), рождается ИСТИНА 😉

SkyWorker
smalltim:

Пообщались по телефону. Фиксить 2й управляющтй канал (это просто) и убрать дергание на канале номер два. Тоже просто.

И еще- сделайте поддержку сумм ппм до 12 каналов!
Что бы в КП можно было задавать значение каналов уже не из 8 доступных ппм сигналов, а из 12.

aerocraft

не подскажите такой програматор не подойдет для прошивки ? banned link

Pavel_K
aerocraft:

не подскажите такой програматор не подойдет для прошивки ?

теоретически подойдет, но у меня на практике не получилось прошить телеметрию программатором, только через автопилот. Правда надо сразу оговориться, что в моем случае была перепайка микроконтроллера и скорее всего нарытые в форуме значения фьюзов были неверными, потому и не заработало. При простой смене прошивки фьюзы должны остаться на месте.

а вообще этот программатор довольно удачный, шьет даже Turnigy 9X без танцов с бубном ковыряния с паяльником.

Llirik
Виктор:

Руководить это не означает знать

Виктор, Вы уже второй раз оскорбляете меня.
ДА! Для меня обвинение в незнании азов регулирования - оскорбление. Я не только руковожу (хотя это занимает процентов 90 всего времени), но и в случае неразрешимых проблем, лично вмешиваюсь в конфигурирование/наладку систем. И сам создавал регуляторы по сравнению с которыми ПИД - задачка для первоклассника…

Но я на Вас не обижаюсь. Единственно чего прошу - не переходить на личности, а если с чем то не согласны, просто задать вопрос - разъясню более расширенно…

Виктор:

а тем более уметь объяснять это тут

С этим согласен! Возможно говорю непонятно. Но как и просили, я постарался объяснить доходчиво, не ссылаясь на преобразование Лапласа, не углубляясь в критерии качества регулирования и т.п… Возможно не совсем доходчиво получилось…

Но, по моему то, что наше U=П=P*e при успокоившемся (сбалансированном) состоянии системы стоит на месте объяснил достаточно понятно…

Ну ладно… Перекур закончен… Помчусь дальше “руководить”…

Виктор:

ОШИБКА - (е) ВСЕГДА будет присутствовать.

конечно же будет… ни кто не спорит…

msv
Llirik:

конечно же будет…

А если Лапласом по ней?.. Да сверху Фурье с Калманом помазать?.. 😃
Хотя не первый раз, высказываю удивление: почему до сих пор в этом проекте не реализованы полноценные, настраиваемые ПИДы? Параметры только не в попугаях, а в вполне понятных физических величинах. Можно контекстную подсказку- “если Вы ламер- забейте 0, если хотите большего - посмотрите вики (в тч. узнать, что такое ламер)”…

Llirik
msv:

А если Лапласом по ней?.. Да сверху Фурье с Калманом помазать?..

😃 😃
Точно!.. Только не забыть нейтронные сети расставить и генетику применить… Еще разок пригладить Калманом и продать Smalltim в Роскосмос!..

На вырученные бабки купить всем форумчанам по вагону самолетов и построить в каждом городе по ВПП для комфортных полетов!..

А по второй части (уже без шуток) думаю проблем не возникнет…
Единственно я программированием чипов не занимался никогда. Каюсь - грешен…
Если будет время разобраться, то попробую на своем комплекте реализовать…

smalltim
baychi:

Тим, я ж не для себя прошу, сам то давно себе все коэффициенты ввел и летаю в удовольствие.

Уже писал: сделано, но будет выложено не прямо сейчас.

baychi:

По логам моих полетов (да и большниства здесь) видно, что целевой крен или тангаж всегад больше (по абсолютной величине) реального. То есть АП никогда не дотягивает до требуемого угла. Близко к нейтрали мне это понятно: АП учитывает нейтраль серв и считает, что положительный тангаж можно создать только при подъеме РВ, а отрицательный только при опускании. В итоге, если реальный тангаж, скажем +5 градусов, а целевой 0, АП никогда не приведет реальный тангаж в 0. Аналогично на больших значениях, когда самостабилизирующая модель пытается привестись в нейтраль, АП при данном алгоритме всегда будет оставать по тангажу и крену. ИМХО, стоит попытаться решить эту проблемму. Есть идеи?

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

Llirik:

Или в Smalltim-е реализована аддитивная компенсация? Сомневаюсь…

Аддитивной компенсации нет, мне не нравится эта идея. Но экспериментируем с комплексным двухкомпонентным интегральным, должно выстрелить очень хорошо.

Llirik:

Виктор, Вы уже второй раз оскорбляете меня.

Виктор, Кирилл, спорьте, но не ссорьтесь. В сообщениях Кирилла я не увидел ереси, а Ваши не полез смотреть в ветку по ссылке 😃
Но думаю, что и Вы и Кирилл, как человеки, едавшие ПИДов, не будете говорить ереси. Просто с терминоголией договоритесь 😃

msv:

Хотя не первый раз, высказываю удивление: почему до сих пор в этом проекте не реализованы полноценные, настраиваемые ПИДы?

Милейший, Вы в этом уверены или это Вам показалось? Пожалуйста, подскажите, что заставляет Вас считать, что в этом проекте ПИДы неполноценные и ненастраиваемые. Спасибо.

msv:

Параметры только не в попугаях, а в вполне понятных физических величинах

Милейший, пожалуйста, объясните, что скажут коэффициенты пропорциональности, описанные “в вполне понятных физических величинах” человеку, который термин “угловая скорость” видит в первый раз в жизни, а углы меряет градусами, а не радианами, как все нормальные люди? Таких нормальных людей - 95% пользователей smalltim.
Хотите грузить гиков делалями - грузите, а я как-нибудь детали лучше упрячу внутрь, а наружу выставлю человекопонятные коэффициенты “в попугаях”.