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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Автонастройка ПИД
Beginning
сообщение Sep 23 2010, 19:56
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Хочу реализовать алгоритм автоматической настройки коэффициентов ПИД регулятора.
За основу взял метод анализа процесса колебаний вокруг заданного значения.
Из анализа получаем два параметра – dT(размах температуры), t(время периода).
В сети гуляет документ ”Автоматическая настройка регулятора ТРМ101”. В нём описаны формулы расчёта коэффициентов – но формулы не полные.
Вырезка:
Цитата
Из значений параметров автоколебательного процесса вычисляются параметры модели объекта: коэффициент объекта Км и постоянная времени объекта Тм, зная которые, а также коэффициент α, прибор вычисляет в первом приближении параметры ПИД-регулятора:
Хп= k1 * F1(Kм, Tм, α);
Ти= k2 * F2(Kм, Tм, α);
Тд = Ти * α,
где F1 и F2 – некоторые функции оптимальных параметров регулятора в зависимости от параметров объекта;
k1 и k2, α = Тд /Ти – заданные пользователем коэффициенты (по умолчанию k1 = 0,32, k2 = 5, α = 0,1…0,25).

Вопрос – что такое коэффициент объекта Км и постоянная времени объекта Тм?
Что за функции - F1 и F2. Разуметься вопрос относиться к тем, кто работал с ОВЕН.
Ещё нашёл один документ где приводятся простые формулы:
Цитата
kP = 1.2 * dT; kI = 1.5 * t; kD = 0.2 * t;

Насколько эти формулы корректны?
Насколько вообще точен этот способ самонастройки?
Кто может поделиться опытом в этом вопросе.


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Sep 23 2010, 20:28
Сообщение #2


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

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



несколько книг по ПИД: http://depositfiles.com/en/files/4a2oa0cfk , может что-то найдете...
Go to the top of the page
 
+Quote Post
DS
сообщение Sep 23 2010, 21:24
Сообщение #3


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Тут же имелась, кажется, книга Гудвина в закромах Родины ? Там все подробненько разжевано.


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
IKop
сообщение Sep 23 2010, 21:24
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 6-08-09
Пользователь №: 51 776



Цитата(Beginning @ Sep 23 2010, 22:56) *
Хочу реализовать алгоритм автоматической настройки коэффициентов ПИД регулятора.
За основу взял метод анализа процесса колебаний вокруг заданного значения.
Из анализа получаем два параметра – dT(размах температуры), t(время периода).

Насколько эти формулы корректны?
Насколько вообще точен этот способ самонастройки?
Кто может поделиться опытом в этом вопросе.


Занимаюсь почти тем-же только для регулировки оборотов двигателя, для приведенных выше формул нашел рисунки тут . У меня получился нормальный переход с одной скорости на другую, но запауск с 0 происходит с большим перерегулированием или рывками. В вашем случае (нагрев) таких проблем не должно возникнуть...

Сообщение отредактировал IKop - Sep 23 2010, 21:26
Go to the top of the page
 
+Quote Post
Tanya
сообщение Sep 24 2010, 03:51
Сообщение #5


Гуру
******

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



Цитата(Beginning @ Sep 23 2010, 23:56) *
Насколько эти формулы корректны?
Насколько вообще точен этот способ самонастройки?
Кто может поделиться опытом в этом вопросе.

Я вот. Никогда не применяла. И не буду. Для себя. Никогда. Ведь основной вопрос такой - какая Вам нужна форма перехода с одного значения задатчика на другое. Как может автонастройка знать это?



Цитата(IKop @ Sep 24 2010, 01:24) *
В вашем случае (нагрев) таких проблем не должно возникнуть...

А почему Вы так считаете?
Go to the top of the page
 
+Quote Post
Beginning
сообщение Sep 24 2010, 06:37
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Я создал плату контроллера с функцией ПИД для управления трёх – ходовым клапаном. Создал стенд с лампочкой – эмулятор нагревателя. Лампочка упровляеться контроллерно-симисторовой платкой – триммер. Прикрепил датчик DS18B20 к лампочке и проверяю, как работает ПИД. Вобщем всё наглядно и совпадает с теорией. Работа ПИД сильно зависит от правильных коэффициентов – и ещё нескольких мелочей – которые никогда не упоминаются и в общем то связаны с конкретной целевой системой.
Вначале начитавшись километра ереси про ПИД – решил, что это полная ахинея и неделю пытался придумать свой регулятор. Да.. прикольно получалось – метод предсказания кривых. Когда понял что зашёл слишком далеко, решил вернуться к ПИД. Нашёл правильный документ – и всё стало понятно. Очень помогли размышления над своим регулятором.
При правильных настроенных коэффициентах на заданную температуру выходит чётко и быстро. Например на 80 градусов выходит ~ за 7 секунд с перерегулированием <1C и минимальными счелчками реле. Сначала игрался с П, потом с ПИ регулятором. Коэффициенты подбирал вручную. Потом добавил Д.
Цитата(IKop)
с 0 происходит с большим перерегулированием или рывками. В вашем случае (нагрев) таких проблем не должно возникнуть...

Я думаю у вас коэффициент пропорциональности большой или интеграл не ограничен или и то и другое вместе (за Д сказать ничего не могу, мало опыта). Я например интеграл ограничиваю 0-100% открытия задвижки, хотя в некоторых источниках советуют 70%. У меня датчик прикручен к лампочке (на стенде) поэтому система похожа на вашу. При неправильных коэффициентах – перерегулирование может быть бесконечным.
Цитата(Tanya)
Я вот. Никогда не применяла. И не буду. Для себя. Никогда. Ведь основной вопрос такой - какая Вам нужна форма перехода с одного значения задатчика на другое. Как может автонастройка знать это?

Почему не хотите применять? Есть негативный опыт? Расскажите. Ну, автонастройка знать может исходя из зависимостей, заложенных в математические формулы. Грубо говоря, математика. Но если сильно напрячься и представить математику на практике, то можно понять, почему именно так и ели не так, то почему.


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
Tanya
сообщение Sep 24 2010, 06:58
Сообщение #7


Гуру
******

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



Цитата(Beginning @ Sep 24 2010, 10:37) *
Я думаю у вас коэффициент пропорциональности большой или интеграл не ограничен или и то и другое вместе (за Д сказать ничего не могу, мало опыта). Я например интеграл ограничиваю 0-100% открытия задвижки, хотя в некоторых источниках советуют 70%. У меня датчик прикручен к лампочке (на стенде) поэтому система похожа на вашу. При неправильных коэффициентах – перерегулирование может быть бесконечным.

Почему не хотите применять?

Начну с конца. Кажется, написала, почему. Добавлю еще. Я не считаю себя глупее программы автонастройки. Настраивать нужно, добиваясь определенно цели. А она может быть разная.
Вот Вы упомянули ограничение интегральной составляющей... А она в стационарном случае дает львиную долю мощности.
Go to the top of the page
 
+Quote Post
Beginning
сообщение Sep 24 2010, 07:11
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Цитата(Tanya)
А она может быть разная.

Ну.. в общем случае цели определены изначально раз и навсегда – максимально быстро и максимально точно выйти на заданный параметр, а остальные варианты считаются как бы приближением (несовершенством) к этим двум целям.
Цитата(Tanya)
Я не считаю себя глупее программы автонастройки

Тут есть два подводных камня – гораздо удобнее донастраивать когда уже есть определённо неплохое приближение (хотя в некоторых случаях ручная настройка (эксперементы) практически невозможны – когда имеешь дело с очень массивными объектами с огромной инерцией), но самое главное это то что настраивать будут другие – которые могут и ничего не знать про ПИД.
Цитата(Tanya)
Вот Вы упомянули ограничение интегральной составляющей

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


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
Tanya
сообщение Sep 24 2010, 07:56
Сообщение #9


Гуру
******

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



Цитата(Beginning @ Sep 24 2010, 11:11) *
Ну.. в общем случае цели определены изначально раз и навсегда – максимально быстро и максимально точно выйти на заданный параметр, а остальные варианты считаются как бы приближением (несовершенством) к этим двум целям.

Это не так - объекты и цели могут быть разные.
Цитата(Beginning @ Sep 24 2010, 11:11) *
Тут есть два подводных камня – гораздо удобнее донастраивать когда уже есть определённо неплохое приближение (хотя в некоторых случаях ручная настройка (эксперементы) практически невозможны – когда имеешь дело с очень массивными объектами с огромной инерцией), но самое главное это то что настраивать будут другие – которые могут и ничего не знать про ПИД.

А что Вам скажут "другие", когда Ваш алгоритм настройки им что-нибудь испортит?
Цитата(Beginning @ Sep 24 2010, 11:11) *
Ну, если честно я бы вообще включил этот закон в ПИД – бессмысленно увеличивать интеграл, когда интегральная составляющая вышла за пределы управляющего воздействия – это только дестабилизирует систему.

Вы, кажется мне, не очень правильно применяете ПИД. При больших (относительное понятие - на самом деле, при любых) изменениях задатчика ПИД не должен применяться. Нужно ограничивать скорость изменения задатчика. Тогда все будет нормально.
Go to the top of the page
 
+Quote Post
Beginning
сообщение Sep 24 2010, 08:26
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Цитата(Tanya)
Это не так - объекты и цели могут быть разные.

Вобщемто я и не утверждал обратного. Конечно, объекты могут быть разные, и цели тоже, глупо утверждать обратное, но цели ПИД по определению заданны изначально. Т.к. речь идёт о ПИД – то цели определены –и я их описал.
Цитата(Tanya)
А что Вам скажут "другие", когда Ваш алгоритм настройки им что-нибудь испортит?

Настройка может "испортить" перерегулированием. Но на то она и настройка – что может перерегулировать. В ручной настройке – те же закономерности. Лечится это двумя способами . На время настройки – система должна быть в состоянии когда перерегулирование ей не страшно. Второй способ - не допускать перерегулированиею Т.е. вызвать синусоиду на параметре, например температуре, ниже заданной. Т.е Заданная настройка 80С, а коэффициенты настраивать при 60С. Разумеется, требуется дополнительный контроль.
Цитата(Tanya)
Вы, кажется мне, не очень правильно применяете ПИД. При больших (относительное понятие - на самом деле, при любых) изменениях задатчика ПИД не должен применяться. Нужно ограничивать скорость изменения задатчика.

Не понял, что вы имели ввиду. Поясните.


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
Tanya
сообщение Sep 24 2010, 08:38
Сообщение #11


Гуру
******

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



Цитата(Beginning @ Sep 24 2010, 12:26) *
Вобщемто я и не утверждал обратного. Конечно, объекты могут быть разные, и цели тоже, глупо утверждать обратное, но цели ПИД по определению заданны изначально. Т.к. речь идёт о ПИД – то цели определены –и я их описал.

Жизнь обширнее и сложнее наших представлений о ней.
Например, нужно сделать регулятор, повышающий температуру с заданной скоростью. И отклонения от скорости должны быть минимизированы... и пр. И регулируют не только температуру.
Цитата(Beginning @ Sep 24 2010, 12:26) *
На время настройки – система должна быть в состоянии когда перерегулирование ей не страшно.

А представьте, что это недопустимо.
Цитата(Beginning @ Sep 24 2010, 12:26) *
Не понял, что вы имели ввиду. Поясните.

Что тут пояснять.. Задатчик не должен прыгать скачком, а должен плавно изменять значение с ограниченной скоростью.
Go to the top of the page
 
+Quote Post
Beginning
сообщение Sep 24 2010, 09:02
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Цитата
Жизнь обширнее и сложнее наших представлений о ней.Например, нужно сделать регулятор, повышающий температуру с заданной скоростью. И отклонения от скорости должны быть минимизированы... и пр. И регулируют не только температуру.

Если честно, то я так и подумал что вы приведёте этот пример. Более того – в том пирборе который я реализовываю один из вариантов работы это плавное изменение температуры.
Но! Это не ПИД. Т.е. эту функцию не реализует ПИД. Я планирую выкрутиться из этой ситуации следующим образом – аппроксимировать кривую плавного изменения и получившиеся значения загонять в ПИД как установочные значения. Поэкспериментирую – посмотрю что получиться. Кстати немаловажным критерием будет являться частота щёлкания реле. Если картина будет неудовлетворительная, придётся "апгрейдить" формулы ПИД.
Цитата
А представьте, что это недопустимо.

Представил. Как вы будете настраивать ПИД в ручном режиме без перерегулирования? Допустим, нагревательный элемент имеет хорошую инерцию.
Цитата
Что тут пояснять.. Задатчик не должен прыгать скачком, а должен плавно изменять значение с ограниченной скоростью.

Всё равно не понял что вы хотели сказать.
Как ваше утверждение относиться кэтому:
Цитата(Beginning)
Ну, если честно я бы вообще включил этот закон в ПИД – бессмысленно увеличивать интеграл, когда интегральная составляющая вышла за пределы управляющего воздействия – это только дестабилизирует систему.

Поясню на примере. Вам надо нагреть комнату допустим до 50С. Текущая температура 10С. Вы включаете калорифер. Т.к. комната инерционный объект – температура медленно повышаться. Когда она достигнет нужной температуры – интегральная состовляющая может быть в десятки – сотни раз больше возможного изменения температуры калорифера. И для приведения интеграла в норму температура должно очень долго быть перерегулирована.


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
vvs157
сообщение Sep 24 2010, 09:09
Сообщение #13


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

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



Цитата(Beginning @ Sep 24 2010, 12:26) *
Не понял, что вы имели ввиду. Поясните.
Пример. Печка на максимальную температуру 1600 С. Вы поставили на задатчике 800 С для нагрева от комнатной температуры. Печка скорее всего на оптимальных параметрах "улетит" за 1000. При этом скорее всего, то, что там обрабатывается будет повреждено. Поэтому ничего, кроме плавного увеличения уставки не остается.
ПИ(Д) оптимален только на малых отклонениях от установленного значения, когда система описывается линейным диф.уравнением невысого порядка. На больших ошибках система как правило становится нелиненой. И если ваша автоматика определила коэффициенты на относительно больших перерегулированиях, то, скорее всего, на малых (а именно это и есть рабочий режим регулятора) эти коэффициенты будут далеко не оптимальны.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Sep 24 2010, 09:12
Сообщение #14


Гуру
******

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



Цитата(Beginning @ Sep 24 2010, 13:02) *
Всё равно не понял что вы хотели сказать.

Я поняла, что Вы не поняли.
Применительно к Вашему примеру это должно выглядеть так - задатчик плавно меняет уставку - 10.1, 10.2 градусов, 12... 50.
Со скоростью, которая не приводит к зашкаливанию И-компоненты. Возможны варианты..
Go to the top of the page
 
+Quote Post
Oldring
сообщение Sep 24 2010, 09:25
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(Beginning @ Sep 24 2010, 11:11) *
Ну, если честно я бы вообще включил этот закон в ПИД – бессмысленно увеличивать интеграл, когда интегральная составляющая вышла за пределы управляющего воздействия – это только дестабилизирует систему.


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


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th June 2025 - 16:04
Рейтинг@Mail.ru


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