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

 
 
> И снова про ПИД-регулятор..., Мысли вслух.
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
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 26)
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
subver
сообщение Mar 9 2006, 03:47
Сообщение #16


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

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



Цитата(LordN @ Mar 7 2006, 23:20) *
Цитата
А по поводу автонастройки коэффициетна усиления у кого-нить есть какие-то рекомендации ?

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


Есть еще такое предложение: если примерно известна модель системы, можно измерить ее реакцию на известный сигнал, и по этой реакции уже рассчитать коэффициенты ПИД-а. Т.е. здесь фактически не нужны алгоритмы поиска и т.п.
Go to the top of the page
 
+Quote Post
LordN
сообщение Mar 10 2006, 18:12
Сообщение #17


Знающий
****

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



Цитата
Есть еще такое предложение: если примерно известна модель системы, можно измерить ее реакцию на известный сигнал, и по этой реакции уже рассчитать коэффициенты ПИД-а. Т.е. здесь фактически не нужны алгоритмы поиска и т.п.

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


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


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(okela @ Mar 7 2006, 15:11) *
...А по поводу автонастройки коэффициетна усиления у кого-нить есть какие-то рекомендации ?
Фильтры Калмана посмотрите...


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
okela
сообщение Mar 14 2006, 08:32
Сообщение #19


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

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



Цитата(Stanislav @ Mar 10 2006, 23:51) *
Цитата(okela @ Mar 7 2006, 15:11) *
...А по поводу автонастройки коэффициетна усиления у кого-нить есть какие-то рекомендации ?
Фильтры Калмана посмотрите...


А попроще чего-нибудь...?
Можно, конечно, снимать переходную характеристику реакции на скачок входного воздействия и рассчитывать по ней. Также можно постепенно увеличивая Кр определить критический Кр и вычислить по нему... Но это всё как бы уже не автонастройка.
Go to the top of the page
 
+Quote Post
subver
сообщение Mar 14 2006, 12:26
Сообщение #20


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

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



Цитата(okela @ Mar 14 2006, 14:32) *
Цитата(Stanislav @ Mar 10 2006, 23:51) *

Цитата(okela @ Mar 7 2006, 15:11) *
...А по поводу автонастройки коэффициетна усиления у кого-нить есть какие-то рекомендации ?
Фильтры Калмана посмотрите...


А попроще чего-нибудь...?
Можно, конечно, снимать переходную характеристику реакции на скачок входного воздействия и рассчитывать по ней. Также можно постепенно увеличивая Кр определить критический Кр и вычислить по нему... Но это всё как бы уже не автонастройка.


А чего вы ПИДрегулировать хотите? Может от этого стоит отталкиватся? Возможно там будет эффективнее не ПИД, а ПДД или ПИИ регулятор?
Go to the top of the page
 
+Quote Post
okela
сообщение Mar 14 2006, 13:10
Сообщение #21


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

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



2 Subver

Да, собственно, температуру железяки (нагреватель для сварки ПХВ) регулировать надо..
Go to the top of the page
 
+Quote Post
LordN
сообщение Mar 14 2006, 13:44
Сообщение #22


Знающий
****

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



Цитата
Да, собственно, температуру железяки (нагреватель для сварки ПХВ) регулировать надо..

и нах тут ПИД? извините smile.gif...
термостата с гистерезисом разве не хватит?

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


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


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

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



Цитата(LordN @ Mar 14 2006, 17:44) *
Цитата
Да, собственно, температуру железяки (нагреватель для сварки ПХВ) регулировать надо..

и нах тут ПИД? извините smile.gif...
термостата с гистерезисом разве не хватит?


Дело в том что незвестно какая достаточна точность поддержания температуры... поэтому решил взять
ПИД за основу.
Go to the top of the page
 
+Quote Post
LordN
сообщение Mar 14 2006, 17:47
Сообщение #24


Знающий
****

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



Цитата
Дело в том что незвестно какая достаточна точность поддержания температуры...

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

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


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


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(okela @ Mar 14 2006, 11:32) *
А попроще чего-нибудь...?
Можно, конечно, снимать переходную характеристику реакции на скачок входного воздействия и рассчитывать по ней. Также можно постепенно увеличивая Кр определить критический Кр и вычислить по нему... Но это всё как бы уже не автонастройка.
Простите, фильтры Калмана - немного не из той оперы. Навеяно постом #17...
Автонастройку регулятора сделать можно, в виде адаптивного фильтра. Однако, заниматься этим не советую - сложно, нестабильно, гимор, короче. Для правильного выбора к-тов усиления необходимо задаться параметрами модели. Проще всего, как Вы и сказали, записать отклик системы на скачок. Далее следует вооружиться Матлабом. Берем тулбокс "System Identification", по отклику вычисляем параметры модели, предварительно задавшись её порядком (обычно 1-й, максимум 2-й). Более правильный, но и сложный подход заключается в решении уравнения теплопроводности для данной конфигурации нагревателя.
Теперь, когда есть модель системы, переходим к "Control System Design" тулбоксу, там есть чудные GUI (напр, SISO Design GUI), заносим полученные параметры модели и ПИД регулятора. Играясь параметрами регулятора, получаем желаемый вид переходной характеристики системы с ОС.
Не пугайтесь, если эти процедуры выглядят несколько сложно: разобраться в соответствующих инструментариях Матлаба очень полезно, когда-нибудь все равно пригодится.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
vvs157
сообщение Mar 14 2006, 22:31
Сообщение #26


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

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(Stanislav @ Mar 15 2006, 00:33) *
... Берем тулбокс "System Identification",
... переходим к "Control System Design" тулбоксу


А где эти дивные тулбоксы водятся?
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Mar 14 2006, 22:41
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(vvs157 @ Mar 15 2006, 01:31) *
Цитата(Stanislav @ Mar 15 2006, 00:33) *

... Берем тулбокс "System Identification",
... переходим к "Control System Design" тулбоксу
А где эти дивные тулбоксы водятся?
У меня в Матлабе 7.1 "System Identification" тулбокс находится в самом конце списка (сперва More... нажать нужно). "Control System" - в начале. Слово "Design" лишнее - было, по-моему, в более ранних версиях Матлаба, написал по памяти.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st August 2025 - 17:41
Рейтинг@Mail.ru


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