реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Производная ступенчатой функции, угла, измеряемого энкодером
_Ivana
сообщение Mar 18 2014, 02:47
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Здравствуйте. Для управления механической конструкцией хочу использовать ПИД-регулятор от величины угла, измеряемого энкодером. Количество щелчков на оборот - порядка нескольких тысяч, то еть для измерения угла вполне достаточно. Но в управление пропорционально входит производная угла. Если считать как разность текущего и предыдущего показаний деленную на интервал опроса датчика, то получаются весьма большие скачки, которые идут в управление и не способствуют стабильности конструкции. Если увеличить время расчета производной или использовать ряд предыдущих значений угла на расширенном интервале опроса, то получается задержка в рассчитанном значении, из чего вытекает задержка в управлении и опять же нестабильность. Подскажите пожалуйста возможные варианты решения.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Mar 18 2014, 03:43
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Вариантов несколько:
1) Отказаться от Д составляющей.
2) Сделать фильтрованную Д составляющую. Так же называется "реализуемый ПИД" или "ПИД" с замедлением. Идея в том, что вместо передаточной функции K_d*p сделать реализуемую функцию вида (K_d*p)/(\tau*p+1) или (K_d*p)/(\tau^2*p + 2*\tau*p+1). Чем меньше \tau, тем ближе процесс к исходному. Но от баланса скачки - задержка вы никуда не денетесь.
3) Ввести какие-то более сложные варианты фильтрации, рассчитать цифровой фильтр-дифференциатор для определенных частот. Опять, конкретный выбор фильтра - вопрос баланса.
4) Отказаться от ПИД регулятора и построить какой-то линейный регулятор, у которого порядок числителя не больше, а лучше на единицу меньше, чем порядок знаменателя. Такое решение предполагает, что вы знаете или можете хотя бы примерно определить модель объекта. Настраивать подбором, как в ПИД, тут будет сложно. С другой стороны, такое решение наиболее гибкое и, на мой взгляд, наиболее предпочтительное, если качество ПИД вас не устраивает.
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Mar 18 2014, 03:53
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



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

Модель объекта у меня есть (появилась с момента моего последнего слепого тыкания в теме), я почитал про акробот, получил его диффур для моего случая - как общий, так и линеаризованный в окрестности нужного мне положения. Если это поможет - могу написать. И коэффициенты своего ПИДа я получаю подбором только двух параметров, а все предварительные расчеты (в зависимости от параметров конструкции) получаются по формулам из этой модели.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 18 2014, 04:50
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(_Ivana @ Mar 18 2014, 07:53) *
, а даже засекать само время между щелчками, повесив его на входящее прерывание.

Так-то будет лучше. Но в любом случае квантовый (дискретный) сигнал не может быть "правильно" обработан.
Ведь в любой текущий момент расчета нельзя предсказать, что через ничтожно малое время произойдет или не произойдет скачок.
Можно также игнорировать малые значения производной. В любом случае производная получится с задержкой, так как используется прежнее значение.
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Mar 18 2014, 05:05
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Поскольку измеряется скорость изменения угла механической системы, есть основания предполагать, что она ограничена по максимальному значению. А насчет задержки - вопрос в ее величине. Например, у нас угол изменяется линейно но медленно, значения по энкодеру на каком-то периоде опроса будут 0,0,0,0,0,0,0,0,0,1 - последняя единица - щелчок когда превысили шаг квантования. И если считать производную по 2 последним отсчетам, деленным на период опроса - будет неверное огромное значение, если по трем и более - будет увеличиваться задержка в показаниях. Я действительно, пожалуй, еще подумаю насчет не периодического равномерного опроса, а получения именно максимально точных интервалов времени между щелчками и попытаюсь придумать, как обработать такой неравномерно дискретизированный сигнал.
Go to the top of the page
 
+Quote Post
SSerge
сообщение Mar 18 2014, 05:22
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(_Ivana @ Mar 18 2014, 09:47) *
...
Если считать как разность текущего и предыдущего показаний деленную на интервал опроса датчика, то получаются весьма большие скачки, которые идут в управление и не способствуют стабильности конструкции.
...

Хм, а если просто правильно вычислять разность?
Например, разность между 359 и 1 градус составляет вовсе не 358, как думают некоторые, а всего лишь -2 градуса.
И никаких скачков.


Upd:
Что-то я сегодня невнимателен, чушь всякую несу...


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Mar 18 2014, 05:33
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



SSerge, вы немного не поняли причины скачков. Допустим, у нас 1 градус накопился за минуту, истинная производная мизерная, но по энкодеру будет 59.99 секунд нули и нулевая производная, а последнюю 0.01 секунду - скачок из 0 в 1 - и производная 100 градусов в секунду.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Mar 18 2014, 05:42
Сообщение #8





Guests






Скорее всего, это Вы не поняли - производная должна считаться между скачками энкодера, а не за какую-то "последнюю" секунду.

P.S.
Для улучшения качества управления по производным вполне возможно, что лучше использовать т.н. "наблюдатели", если более-менее известна физ-мех. модель система.
В этом случае производные можно получать с модели с высокой частотой опроса, а состояние модели будет корректироваться эпизодически с частотой срабатывания энкодера.

Грубый пример.
Есть инерционный объекта массой m к которому прикладывается сила F, объект совершает линейное перемещение.
По энкодеру измеряем с переменным интервалом дискретизации скорость Vизм = dS/dT, ускорение Aизм = dV/dT
Вычисляем силу F(t) = m * Aизм

Вводим F(t) в модель системы и наблюдаем с желаемой частотой за параметрами модели, в частности - ускорением.
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Mar 18 2014, 05:51
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



TSerg, насколько я понимаю, ваш вариант не будет работать. Допустим, у нас идут небольшие колебания около одного положения - если эти колебания "внутри" шага энкодера - он их не ловит и производная нулевая (что хорошо), а если на границе шага - то мы получаем периодические щелчки на мизерное время (когда верхушка амплитуды превышает порог), и получаем даже еще бОльшие скачки, чем при равномерном опросе показаний.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 18 2014, 06:04
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(_Ivana @ Mar 18 2014, 09:51) *
и получаем даже еще бОльшие скачки, чем при равномерном опросе показаний.

Так это и есть реальность. Надо научиться с ней жить - правильно реагировать. Такова жизнь.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Mar 18 2014, 07:40
Сообщение #11





Guests






Цитата(_Ivana @ Mar 18 2014, 09:51) *
TSerg, насколько я понимаю, ваш вариант не будет работать.


Не просто будет работать, а будет хорошо работать.


Цитата(_Ivana @ Mar 18 2014, 09:51) *
Допустим, у нас идут небольшие колебания около одного положения - если эти колебания "внутри" шага энкодера - он их не ловит и производная нулевая (что хорошо), а если на границе шага - то мы получаем периодические щелчки на мизерное время (когда верхушка амплитуды превышает порог), и получаем даже еще бОльшие скачки, чем при равномерном опросе показаний.


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


Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 18 2014, 08:12
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(TSerg @ Mar 18 2014, 11:40) *
Поэтому убирайте из своей терминологии всякий "мизер" и переходите на инженерный подход к решению задач.

Совсем необязательно, что этот мизер плохой. В некоторых случаях быстрого дрожание около положения равновесия я и добиваюсь.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Mar 18 2014, 08:37
Сообщение #13





Guests






Спорить не буду, бывают и такие способы повышения точности или устойчивости. За примером далеко ходить не надо - подмешивание на вход АЦП небольшого шума или маятник Капицы.
Но я больше о терминологии, чем о принципах.
Go to the top of the page
 
+Quote Post
amaora
сообщение Mar 18 2014, 14:20
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778



Цитата(_Ivana @ Mar 18 2014, 09:51) *
Допустим, у нас идут небольшие колебания около одного положения - если эти колебания "внутри" шага энкодера - он их не ловит и производная нулевая (что хорошо), а если на границе шага - то мы получаем периодические щелчки на мизерное время (когда верхушка амплитуды превышает порог), и получаем даже еще бОльшие скачки, чем при равномерном опросе показаний.


Все "щелчки" происходят тогда, когда их предсказывает модель системы. Тогда невязка (разность предсказанного и измеренного) получается близкой к нулю, и оценка состояния корректируется лишь немного. То есть на выходе больше результат моделирования чем измерения до тех пор, пока нет большой невязки.
Go to the top of the page
 
+Quote Post
AndreyVN
сообщение Mar 19 2014, 05:27
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 754
Регистрация: 29-06-06
Из: Volgograd
Пользователь №: 18 458



Цитата(_Ivana @ Mar 18 2014, 06:47) *
... Но в управление пропорционально входит производная угла....


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

К стати, с каким знаком у Вас входит управление по производной?
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 17:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01492 секунд с 7
ELECTRONIX ©2004-2016