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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> И снова про ПИД-регулятор..., Мысли вслух.
okela
сообщение Mar 6 2006, 12:55
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896



Возникли несколько вопросов про цифровой ПИД-регулятор...

Два разных источника по-разному описывают конечные формулы для расчета выходного воздействия по методу приращений:
http://atm.h1.ru/index.html
http://www.rlda.ru/PID_Control_Tutor.htm
Ход рассуждений в обоих случаях вроде бы один и тот же, но в итоговой формуле : U(n)= U(n-1)+dU(n)

, где dU(n) = Kp*[Q0*e(n)+Q1*e(n-1)+Q2*e(n-2)] коэффициенты Q0 и Q1 сильно отличаются.

Собственные выкладки дали результат совпадающий с результатом первого источника. Его и было взято за основу.

Используем алгоритм приращений для ПИ-регулятора по следующей формуле:
U(n)= U(n-1)+ Kp*(e(n)-e(n-1)+T*e(n)/Ti)
и дополнительно результат выхода U(n) ограничен снизу нулём и сверху значением максимума (255).
Так вот при отключении интегральной части (большое значение Ti) и установке достаточно большого усиления Kp теоретически регулятор должен вырождаться в позиционный,т.е. при значениях ошибки е > 0 имеем на выходе 255 и в остальных случаях - 0.
Но.... Всё было бы именно так если бы не было ограничений выхода. Так как выход ограничен и в качестве аргумента выходной функции используется изменение ошибки...то получается что, допустим при текущем состоянии позиционного регулятора в максимуме, небольшой дрейф регулируемого параметра вверх(несколько едениц) вызовет кратковременный провал результирующего сигнала.
Этого эффекта не будет наблюдаться при использовании прямой зависимости : U(n)= Kp*e(n), где аргументом является сама ошибка.

Также вызвал ряд вопросов метод автонастройки ПИДа по процессу двухпозиционного регулирования, который описано в следующем источнике:
http://members.vicard.net/sensor/main1_10.htm
Здесь как-то не сходится задачка с ответом.. Если предположим , что в системе с диапазоном изменения параметра = 180 у.е. , устанавливаются колебания с размахом, например 5 у.е. , то по формуле имеем Кр = 0.45/А (А-размах).. Приводя к процентам, получаем что
Кр = 0.09*100 = 9[%/у.е.].
Теоретически значение значение Кр должно быть близко к расчитанному из соотношения Y=Kр·(U-X) для П-регулятора, где
Y -выходная величина сигнала регулятора и входная Е = U-X (невязка). Отношение максимального Y к максимальному Е дает результат
в тех же процентах - 100/180 = 0.555[%/у.е.] . Далеко не близкие результаты получились..
Где я ошибаюсь ????
Go to the top of the page
 
+Quote Post
LordN
сообщение Mar 6 2006, 14:51
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 704
Регистрация: 15-10-05
Из: г.Томск
Пользователь №: 9 686



Цитата
dU(n) = Kp*[Q0*e(n)+Q1*e(n-1)+Q2*e(n-2)]

эту формулу не следует использовать для получения П-регулятора.
"разверните" её и увидите, что в такой записи П-регулятор превратится в ПИ- с некоторой "неуправляемой" постоянной времени.
меж нами говоря, я бы вообще не советовал использовать такую запись для численного воплощения регулятора, т.к. в ней очень быстро накапливается вычислительная ошибка (шум). да и ведет себя такой регулятор "неправильно".
прямая запись ведет себя более "корректно", допускает всякие фокусы с отдельными составляющими - например можно слегка фильтрануть дифф-часть, прежде чем загнать её в регулятор, да и сам дифференциал можно брать по разному.
интеграл тоже - его можно тупо брать методом прямоугольников, а можно легко перейти к трапеции или к какому другому методу...

в общем, типа резюме, работа регулятора по приращению мне очень не понравилась в работе на реальных объектах.

Сообщение отредактировал LordN - Mar 6 2006, 14:52


--------------------
C уважением, LordN.
Go to the top of the page
 
+Quote Post
okela
сообщение Mar 6 2006, 15:28
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896



Цитата(LordN @ Mar 6 2006, 18:51) *
Цитата
dU(n) = Kp*[Q0*e(n)+Q1*e(n-1)+Q2*e(n-2)]

эту формулу не следует использовать для получения П-регулятора.
"разверните" её и увидите, что в такой записи П-регулятор превратится в ПИ- с некоторой "неуправляемой" постоянной времени.
меж нами говоря, я бы вообще не советовал использовать такую запись для численного воплощения регулятора, т.к. в ней очень быстро накапливается вычислительная ошибка (шум). да и ведет себя такой регулятор "неправильно".
прямая запись ведет себя более "корректно", допускает всякие фокусы с отдельными составляющими - например можно слегка фильтрануть дифф-часть, прежде чем загнать её в регулятор, да и сам дифференциал можно брать по разному.
интеграл тоже - его можно тупо брать методом прямоугольников, а можно легко перейти к трапеции или к какому другому методу...

в общем, типа резюме, работа регулятора по приращению мне очень не понравилась в работе на реальных объектах.


Метод этот вроде бы широко рекомендуется для реализации цифрового варианта ПИД . Один из его плюсов - отсутсвие насышения интеграла.. А "неправильная" работа такого регулятора что связана именно с накопленным выч.шумом ? Хотя мне думалось что вычислительная ошибка не сильно скажется
при 8-битном выходном сигнале.
Go to the top of the page
 
+Quote Post
LordN
сообщение Mar 6 2006, 16:40
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 704
Регистрация: 15-10-05
Из: г.Томск
Пользователь №: 9 686



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


--------------------
C уважением, LordN.
Go to the top of the page
 
+Quote Post
subver
сообщение Mar 7 2006, 03:27
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 4-06-05
Из: Омск
Пользователь №: 5 726



Цитата
Метод этот вроде бы широко рекомендуется для реализации цифрового варианта ПИД . Один из его плюсов - отсутсвие насышения интеграла.. А "неправильная" работа такого регулятора что связана именно с накопленным выч.шумом ? Хотя мне думалось что вычислительная ошибка не сильно скажется
при 8-битном выходном сигнале.


А про отсутствие насыщения интеграла можно подробнее?

При реализации такого метода после ограничения выходного сигнала регулятор вел себя некорректно. При реализации "в лоб" (отдельно П и И ветви) - все отлично.
Go to the top of the page
 
+Quote Post
LordN
сообщение Mar 7 2006, 04:03
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 704
Регистрация: 15-10-05
Из: г.Томск
Пользователь №: 9 686



Цитата
А про отсутствие насыщения интеграла можно подробнее?

ну, приращение и есть по сути интеграл сам в себе. в такой записи интегральная составляющая присутсвует неявно, потому и нет насыщения.
при реализации "в лоб" нужно отдельно накапливать интегральную составляющую, ограничивать её сверху и снизу и на полный сигнал тоже надо накладывать ограничение сверху/снизу.


--------------------
C уважением, LordN.
Go to the top of the page
 
+Quote Post
NickNich
сообщение Mar 7 2006, 06:01
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 8-11-05
Пользователь №: 10 593



По поводу насыщения в выходном сигнале ПИ-регулятора.

Что мешает завести обратную связь по предыдущему значению не с выхода ПИД-регулятора (который у Вас ограничен), а с выхода сумматора, на котором выполняется интегрирование? А выход пусть себе ограничивается как ему угодно...
Go to the top of the page
 
+Quote Post
LordN
сообщение Mar 7 2006, 07:01
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 704
Регистрация: 15-10-05
Из: г.Томск
Пользователь №: 9 686



?)
Цитата
Что мешает завести обратную связь по предыдущему значению не с выхода ПИД-регулятора
а о какой ОС речь? об ограничении? если да, то так и делается, сумма ограничивается непосредственно при вычислении...
Цитата
А выход пусть себе ограничивается как ему угодно...

это не всегда годится. (а может я просто не понял о чем речь)


--------------------
C уважением, LordN.
Go to the top of the page
 
+Quote Post
NickNich
сообщение Mar 7 2006, 07:43
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 8-11-05
Пользователь №: 10 593



2 LordN

В корневом сообщении написано, что ограничивается только выход ПИ-регулятора. О промежуточных ограничениях и насыщениях речи не идёт. Т.е. у автора реализован следующий способ получения выхода (обратная связь в интегратор заводится с выхода регулятора):

Uout(k) = SAT(Uout(k-1) + Kp*(...)).

Предлагается делать так (обратная связь в интегратор заводится с выхода сумматора):

U1(k) = U1(k-1) + Kp*(...)
Uout(k) = SAT(U1(k))
Go to the top of the page
 
+Quote Post
LordN
сообщение Mar 7 2006, 07:49
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 704
Регистрация: 15-10-05
Из: г.Томск
Пользователь №: 9 686



SAT(...) - это сумма по k?


--------------------
C уважением, LordN.
Go to the top of the page
 
+Quote Post
NickNich
сообщение Mar 7 2006, 07:51
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 8-11-05
Пользователь №: 10 593



SAT = SATURATION, насыщение или ограничение результата
Go to the top of the page
 
+Quote Post
okela
сообщение Mar 7 2006, 12:11
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896



Цитата(NickNich @ Mar 7 2006, 11:43) *
2 LordN

В корневом сообщении написано, что ограничивается только выход ПИ-регулятора. О промежуточных ограничениях и насыщениях речи не идёт. Т.е. у автора реализован следующий способ получения выхода (обратная связь в интегратор заводится с выхода регулятора):

Uout(k) = SAT(Uout(k-1) + Kp*(...)).

Предлагается делать так (обратная связь в интегратор заводится с выхода сумматора):

U1(k) = U1(k-1) + Kp*(...)
Uout(k) = SAT(U1(k))


Да , действительно использована первая запись... Может быть и имеет смысл попробовать второй вариант.
А по поводу автонастройки коэффициетна усиления у кого-нить есть какие-то рекомендации ?
Go to the top of the page
 
+Quote Post
LordN
сообщение Mar 7 2006, 12:17
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 704
Регистрация: 15-10-05
Из: г.Томск
Пользователь №: 9 686



Цитата(NickNich @ Mar 7 2006, 13:51) *
SAT = SATURATION, насыщение или ограничение результата
ага, теперь понятно.
т.е. имеет ввиду такая запись:
Код
SAT(х, Min, Max)
{
           temp = x;

           if(x > Max) temp = Max else
           if(x < Min) temp = Min;
           return temp;
}
?
если да, то нет, так:
Цитата
U1(k) = U1(k-1) + Kp*(...)
Uout(k) = SAT(U1(k))
делать нельзя, т.к. ограничивать нужно именно само U1(k), т.е.
U1(k) = SAT(U1(k-1) + Kp*(...))
только так, иначе U1(k) может легко "уйти" далеко за пределы и перестанет реагировать на ошибку e(k)


--------------------
C уважением, LordN.
Go to the top of the page
 
+Quote Post
okela
сообщение Mar 7 2006, 16:57
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896



Цитата(LordN @ Mar 7 2006, 16:17) *
Цитата(NickNich @ Mar 7 2006, 13:51) *
SAT = SATURATION, насыщение или ограничение результата
ага, теперь понятно.
т.е. имеет ввиду такая запись:
Код
SAT(х, Min, Max)
{
           temp = x;

           if(x > Max) temp = Max else
           if(x < Min) temp = Min;
           return temp;
}
?
если да, то нет, так:
Цитата
U1(k) = U1(k-1) + Kp*(...)
Uout(k) = SAT(U1(k))
делать нельзя, т.к. ограничивать нужно именно само U1(k), т.е.
U1(k) = SAT(U1(k-1) + Kp*(...))
только так, иначе U1(k) может легко "уйти" далеко за пределы и перестанет реагировать на ошибку e(k)


Согласен, при достаточно большом коэффициенте усиления регулятор может быстро "улететь" в никуда, особенно если разрядность вычисляемых значений невысока...
Go to the top of the page
 
+Quote Post
LordN
сообщение Mar 7 2006, 17:20
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 704
Регистрация: 15-10-05
Из: г.Томск
Пользователь №: 9 686



Цитата
А по поводу автонастройки коэффициетна усиления у кого-нить есть какие-то рекомендации ?

практических - у меня нету sad.gif
на сайте owen.ru что-то про это было, они для своих регуляторов полуавтоматическую настройку пользуют.
на уровне слухов - вроде успешно используют нечеткие алгоритмы для автопоиска параметров ПИДа...
вот, пожалуй, и все, что по этой теме знаю..


--------------------
C уважением, LordN.
Go to the top of the page
 
+Quote Post

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

 


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


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