|
Автонастройка ПИД |
|
|
|
Sep 23 2010, 19:56
|

Знающий
   
Группа: Свой
Сообщений: 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; Насколько эти формулы корректны? Насколько вообще точен этот способ самонастройки? Кто может поделиться опытом в этом вопросе.
--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
|
|
|
|
|
Sep 23 2010, 21:24
|
Участник

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

|
Цитата(Beginning @ Sep 23 2010, 22:56)  Хочу реализовать алгоритм автоматической настройки коэффициентов ПИД регулятора. За основу взял метод анализа процесса колебаний вокруг заданного значения. Из анализа получаем два параметра – dT(размах температуры), t(время периода).
Насколько эти формулы корректны? Насколько вообще точен этот способ самонастройки? Кто может поделиться опытом в этом вопросе. Занимаюсь почти тем-же только для регулировки оборотов двигателя, для приведенных выше формул нашел рисунки тут . У меня получился нормальный переход с одной скорости на другую, но запауск с 0 происходит с большим перерегулированием или рывками. В вашем случае (нагрев) таких проблем не должно возникнуть...
Сообщение отредактировал IKop - Sep 23 2010, 21:26
|
|
|
|
|
Sep 24 2010, 03:51
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Beginning @ Sep 23 2010, 23:56)  Насколько эти формулы корректны? Насколько вообще точен этот способ самонастройки? Кто может поделиться опытом в этом вопросе. Я вот. Никогда не применяла. И не буду. Для себя. Никогда. Ведь основной вопрос такой - какая Вам нужна форма перехода с одного значения задатчика на другое. Как может автонастройка знать это? Цитата(IKop @ Sep 24 2010, 01:24)  В вашем случае (нагрев) таких проблем не должно возникнуть... А почему Вы так считаете?
|
|
|
|
|
Sep 24 2010, 06:37
|

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

|
Я создал плату контроллера с функцией ПИД для управления трёх – ходовым клапаном. Создал стенд с лампочкой – эмулятор нагревателя. Лампочка упровляеться контроллерно-симисторовой платкой – триммер. Прикрепил датчик DS18B20 к лампочке и проверяю, как работает ПИД. Вобщем всё наглядно и совпадает с теорией. Работа ПИД сильно зависит от правильных коэффициентов – и ещё нескольких мелочей – которые никогда не упоминаются и в общем то связаны с конкретной целевой системой. Вначале начитавшись километра ереси про ПИД – решил, что это полная ахинея и неделю пытался придумать свой регулятор. Да.. прикольно получалось – метод предсказания кривых. Когда понял что зашёл слишком далеко, решил вернуться к ПИД. Нашёл правильный документ – и всё стало понятно. Очень помогли размышления над своим регулятором. При правильных настроенных коэффициентах на заданную температуру выходит чётко и быстро. Например на 80 градусов выходит ~ за 7 секунд с перерегулированием <1C и минимальными счелчками реле. Сначала игрался с П, потом с ПИ регулятором. Коэффициенты подбирал вручную. Потом добавил Д. Цитата(IKop) с 0 происходит с большим перерегулированием или рывками. В вашем случае (нагрев) таких проблем не должно возникнуть... Я думаю у вас коэффициент пропорциональности большой или интеграл не ограничен или и то и другое вместе (за Д сказать ничего не могу, мало опыта). Я например интеграл ограничиваю 0-100% открытия задвижки, хотя в некоторых источниках советуют 70%. У меня датчик прикручен к лампочке (на стенде) поэтому система похожа на вашу. При неправильных коэффициентах – перерегулирование может быть бесконечным. Цитата(Tanya) Я вот. Никогда не применяла. И не буду. Для себя. Никогда. Ведь основной вопрос такой - какая Вам нужна форма перехода с одного значения задатчика на другое. Как может автонастройка знать это? Почему не хотите применять? Есть негативный опыт? Расскажите. Ну, автонастройка знать может исходя из зависимостей, заложенных в математические формулы. Грубо говоря, математика. Но если сильно напрячься и представить математику на практике, то можно понять, почему именно так и ели не так, то почему.
--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
|
|
|
|
|
Sep 24 2010, 07:11
|

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

|
Цитата(Tanya) А она может быть разная. Ну.. в общем случае цели определены изначально раз и навсегда – максимально быстро и максимально точно выйти на заданный параметр, а остальные варианты считаются как бы приближением (несовершенством) к этим двум целям. Цитата(Tanya) Я не считаю себя глупее программы автонастройки Тут есть два подводных камня – гораздо удобнее донастраивать когда уже есть определённо неплохое приближение (хотя в некоторых случаях ручная настройка (эксперементы) практически невозможны – когда имеешь дело с очень массивными объектами с огромной инерцией), но самое главное это то что настраивать будут другие – которые могут и ничего не знать про ПИД. Цитата(Tanya) Вот Вы упомянули ограничение интегральной составляющей Ну, если честно я бы вообще включил этот закон в ПИД – бессмысленно увеличивать интеграл, когда интегральная составляющая вышла за пределы управляющего воздействия – это только дестабилизирует систему.
--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
|
|
|
|
|
Sep 24 2010, 07:56
|
Гуру
     
Группа: Модераторы
Сообщений: 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)  Ну, если честно я бы вообще включил этот закон в ПИД – бессмысленно увеличивать интеграл, когда интегральная составляющая вышла за пределы управляющего воздействия – это только дестабилизирует систему. Вы, кажется мне, не очень правильно применяете ПИД. При больших (относительное понятие - на самом деле, при любых) изменениях задатчика ПИД не должен применяться. Нужно ограничивать скорость изменения задатчика. Тогда все будет нормально.
|
|
|
|
|
Sep 24 2010, 08:26
|

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

|
Цитата(Tanya) Это не так - объекты и цели могут быть разные. Вобщемто я и не утверждал обратного. Конечно, объекты могут быть разные, и цели тоже, глупо утверждать обратное, но цели ПИД по определению заданны изначально. Т.к. речь идёт о ПИД – то цели определены –и я их описал. Цитата(Tanya) А что Вам скажут "другие", когда Ваш алгоритм настройки им что-нибудь испортит? Настройка может "испортить" перерегулированием. Но на то она и настройка – что может перерегулировать. В ручной настройке – те же закономерности. Лечится это двумя способами . На время настройки – система должна быть в состоянии когда перерегулирование ей не страшно. Второй способ - не допускать перерегулированиею Т.е. вызвать синусоиду на параметре, например температуре, ниже заданной. Т.е Заданная настройка 80С, а коэффициенты настраивать при 60С. Разумеется, требуется дополнительный контроль. Цитата(Tanya) Вы, кажется мне, не очень правильно применяете ПИД. При больших (относительное понятие - на самом деле, при любых) изменениях задатчика ПИД не должен применяться. Нужно ограничивать скорость изменения задатчика. Не понял, что вы имели ввиду. Поясните.
--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
|
|
|
|
|
Sep 24 2010, 08:38
|
Гуру
     
Группа: Модераторы
Сообщений: 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)  Не понял, что вы имели ввиду. Поясните. Что тут пояснять.. Задатчик не должен прыгать скачком, а должен плавно изменять значение с ограниченной скоростью.
|
|
|
|
|
Sep 24 2010, 09:02
|

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

|
Цитата Жизнь обширнее и сложнее наших представлений о ней.Например, нужно сделать регулятор, повышающий температуру с заданной скоростью. И отклонения от скорости должны быть минимизированы... и пр. И регулируют не только температуру. Если честно, то я так и подумал что вы приведёте этот пример. Более того – в том пирборе который я реализовываю один из вариантов работы это плавное изменение температуры. Но! Это не ПИД. Т.е. эту функцию не реализует ПИД. Я планирую выкрутиться из этой ситуации следующим образом – аппроксимировать кривую плавного изменения и получившиеся значения загонять в ПИД как установочные значения. Поэкспериментирую – посмотрю что получиться. Кстати немаловажным критерием будет являться частота щёлкания реле. Если картина будет неудовлетворительная, придётся "апгрейдить" формулы ПИД. Цитата А представьте, что это недопустимо. Представил. Как вы будете настраивать ПИД в ручном режиме без перерегулирования? Допустим, нагревательный элемент имеет хорошую инерцию. Цитата Что тут пояснять.. Задатчик не должен прыгать скачком, а должен плавно изменять значение с ограниченной скоростью. Всё равно не понял что вы хотели сказать. Как ваше утверждение относиться кэтому: Цитата(Beginning) Ну, если честно я бы вообще включил этот закон в ПИД – бессмысленно увеличивать интеграл, когда интегральная составляющая вышла за пределы управляющего воздействия – это только дестабилизирует систему. Поясню на примере. Вам надо нагреть комнату допустим до 50С. Текущая температура 10С. Вы включаете калорифер. Т.к. комната инерционный объект – температура медленно повышаться. Когда она достигнет нужной температуры – интегральная состовляющая может быть в десятки – сотни раз больше возможного изменения температуры калорифера. И для приведения интеграла в норму температура должно очень долго быть перерегулирована.
--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
|
|
|
|
|
Sep 24 2010, 09:09
|
Профессионал
    
Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960

|
Цитата(Beginning @ Sep 24 2010, 12:26)  Не понял, что вы имели ввиду. Поясните. Пример. Печка на максимальную температуру 1600 С. Вы поставили на задатчике 800 С для нагрева от комнатной температуры. Печка скорее всего на оптимальных параметрах "улетит" за 1000. При этом скорее всего, то, что там обрабатывается будет повреждено. Поэтому ничего, кроме плавного увеличения уставки не остается. ПИ(Д) оптимален только на малых отклонениях от установленного значения, когда система описывается линейным диф.уравнением невысого порядка. На больших ошибках система как правило становится нелиненой. И если ваша автоматика определила коэффициенты на относительно больших перерегулированиях, то, скорее всего, на малых (а именно это и есть рабочий режим регулятора) эти коэффициенты будут далеко не оптимальны.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|