|
|
  |
Подскажите по ПИД регулированию |
|
|
|
Jun 24 2006, 11:06
|
Профессионал
    
Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960

|
Цитата(TamTam @ Jun 24 2006, 04:33)  Если не в напряг помогите разобраться.
Те параметры которые я понял для чего,
Setpoint - к примеру 300 градусов Sysout - 200 градусов Нет, не совсем так. Приведенный фрагмент кода "крутится в цикле" с той частотой, с какой производится изменение выходного напряжения. И соответственно Sysout бутет менятся Цитата(TamTam @ Jun 24 2006, 04:33)  Acc_out_prev - 196 градусов Аналогично, это значение температуры, которое было на предыдущем цикле измерения Цитата(TamTam @ Jun 24 2006, 04:33)  Ti - Постоянная времени интегр. в единицах периода дискретизации (в чем она должна быть выражена) Выражается в секундах. Если цикл раз в секунду - то непосредственно в секундах и будет выражено
|
|
|
|
|
Jun 25 2006, 11:10
|

Местный
  
Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254

|
Цитата(vvs157 @ Jun 24 2006, 00:16)  Например так -------------------- /*
Перед запуском Acc_out_prev = 0; Acc_Ti = 0; Acc_Tds = 0;
При переходе с ручного режима управления на автоматический установить
Acc_Ti = Kp*output-Setpoint+Sysout;
*/
Acc_Ti=Acc_Ti+1/Ti*(Setpoint-Sysout)-1/Tw*Sat_out; Acc_Tds=Acc_Tds+1/Tds*(Td*(Acc_out_prev-Sysout)-Acc_Tds); Kp_val=Setpoint-Sysout; output=1/Kp*(Kp_val+Acc_Ti+Acc_Tds); Sat_out=0; if (output>Maxout) { Sat_out=output-Maxout; output=Maxout; }; if (output<0) { Sat_out=output; output=0; };
---------------------- Еще раз а то вы меня несовсем поняли. Setpoint - 300 Sysout - Значение наростает если нагреваем 0 ---> 300 я хочу расчитать для одного шага поэтому возьму равным 200 Acc_out_prev - значение меняется но возьмем к примеру 196 Acc_Ti - накопитель для интегрального канала Acc_Tds - накопитель для фильтра диф. канала output - выходное значение регулятора Maxout - у меня шим поэтому max=100 Может я несовсем понял прочтя ПДФ от AVR221 но берем равным Ti - 0,5 Tw = (0.1 - 0.5) Ti Td - 0,12 Tds = (0.2 - 1) Td Кр - 0,65 Попробую расчетать из того что имею. Расчет в экселе. и еще что такое - Sat_out ?
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 25 2006, 11:51
|
Профессионал
    
Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960

|
Цитата(TamTam @ Jun 25 2006, 15:10)  Может я несовсем понял прочтя ПДФ от AVR221 но берем равным Ti - 0,5 Tw = (0.1 - 0.5) Ti Td - 0,12 Tds = (0.2 - 1) Td Кр - 0,65
и еще что такое - Sat_out ? Ti, Td, Kp - эти параметры определяются исходя из конкретных параметров объекта регулирования (запаздывание, нелинейность итп) Если эти параметры подобраны неверно - то либо система войдет в автоколебательный режим, либо будет иметь очень плохие харатеристики (например будет очень долго по сравнению с оптимальной настройкой выходить на заданное значение) Sat_out - эта переменная, которая нужена для предотвращения так называемого насыщения интегратора (в иностранной литературе integrator windup). Зачем это нужно - при больших рассогласованиях расчетный выход регулятора становится больше (или меньше - выход терморегулятора не может быть <0) того, что может выдать выхожной каскад регулятора, в результате - ошибка интегрируется, а выход не изменяется, что приводит к существенному увеличению времени выхода. Подробнее - посмотрите в Яндексе на "насыщения интегратора ПИД регулятора"
|
|
|
|
|
Jun 25 2006, 18:42
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(Shurmas @ Jun 25 2006, 17:28)  А у кого нибудь есть исходник на Си автоподстройки ПИД регулятора ? Самонастраивающийся короче. ХЕХЕХЕ СМИШНО!!! Не в обиду... Вы хоть представляете себе сложность задачи самомподстраивающегося ПИД регулятора? Просто припомните как он в ручную настраивается. Припоминаете? Ага... на глаз... по форме переходного процесса. Исхоники вам дать... Даже если они есть у кого... сколько чатлов Вы за него готовы отдать? У меня кстати есть дока по подстройке с помощью генетических алгоритмов (чья-та буржуйская студенческая работа) плюс код в на матлабе. Сам не вникал. Не до регуляторов пока.
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Jun 26 2006, 05:23
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата(Shurmas @ Jun 25 2006, 21:58)  Я не считаю что это сложно, просто спросил нет ли у кого. Процес настройки достаточно прост и легко алгоритмизируется. Ну если сам регулируемый объект более-менее стабилен (ну, или, скажем так, предсказуем  ), то в автонастройке проблем нет - единичный импульс на вход, снятие отклика, расчет характеристик объекта и по ним расчет значений для пид-регулятора. Это дело искать гуглей. А если у вас объект меняет свои свойства случайным образом (или еще какая кака) - то это тема для диссера...
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jun 26 2006, 06:00
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Rst17 Да только вы еще не учли тот факт что в реальной жизни требуется автоподстройка во время работы, а не в специальном режиме по еденичному возмущению. Ну да прост и легко алгоритмизируется, ага...  попробовали бы его сначала алгоритмизировать, потом бы уж...  хотя может для Вас это и легко...
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Jun 26 2006, 06:36
|
Местный
  
Группа: Новичок
Сообщений: 232
Регистрация: 24-06-06
Пользователь №: 18 332

|
Цитата(SpiritDance @ Jun 26 2006, 10:00)  в реальной жизни требуется автоподстройка во время работы, а не в специальном режиме по еденичному возмущению. В реальной жизни автоподстройка производится по оценке реакции на естественные возмущения. Цитата(SpiritDance @ Jun 26 2006, 10:00)  Ну да прост и легко алгоритмизируется, ага...  попробовали бы его сначала алгоритмизировать, потом бы уж...  хотя может для Вас это и легко... Ну что филосовствовать то ? я ж спросил пример кода - може валяется у кого. Если б я сам попробовал то не спрашивал бы, а выложил код в специальный раздел на форуме.
|
|
|
|
|
Jun 26 2006, 06:49
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(Shurmas @ Jun 26 2006, 10:36)  В реальной жизни автоподстройка производится по оценке реакции на естественные возмущения. В реальной жизни в советские времена этой проблемой занимались целые группы инеженеров-исследователей в различных НИИ. Цитата(Shurmas @ Jun 26 2006, 10:36)  Ну что филосовствовать то ? я ж спросил пример кода - може валяется у кого. Если б я сам попробовал то не спрашивал бы, а выложил код в специальный раздел на форуме. Да не я не философствую я просто съязвить пытаюсь.  Просто Вы спросили что-то вроде "А не завалялось ли у кого докторской диссертации? Выложите плиз нахаляву."
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Jun 26 2006, 09:23
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896

|
Цитата(vvs157 @ Jun 26 2006, 11:09)  Цитата(SpiritDance @ Jun 26 2006, 10:49)  Да не я не философствую я просто съязвить пытаюсь.  Просто Вы спросили что-то вроде "А не завалялось ли у кого докторской диссертации? Выложите плиз нахаляву."  У очень многих промышленно выпускаемых терморегуляторов есть функция автоматического определения параметров ПИД регулирования. Очевидно, что можно найти объекты на которых эта автонастройка работать не будет. Но на объектах без "заморочек" работает вполне нормально. Я не думаю, что в каждом из них сидит внутри докторский диссер. Там действительно нет ничего труднореализуемого. Автонастройку делают либо по колебательному процессу (регулятор переводится в режим 2-хпозиционного) , либо по отклику на еденичный импульс. В первом случае измеряются амплитуда и период колебаний, и на их основе всё расчитывается. Во втором случае снимается передаточная характеристика и по ней всё определяется. http://www.contravt.ru/?id=242http://atm.h1.ru/root/theory/theory.html
|
|
|
|
|
Jun 26 2006, 11:25
|
Местный
  
Группа: Новичок
Сообщений: 232
Регистрация: 24-06-06
Пользователь №: 18 332

|
Цитата(SpiritDance @ Jun 26 2006, 14:30)  Колебания нельзя делать - спалишь нагреватель в печке. ну колебать то можно и в охлаждение а затем в нагрев. зачем сразу палить. И еще раз говорю колебания сами собой существуют при изменении режима - их и измеряют-анализируют. Цитата(SpiritDance @ Jun 26 2006, 14:30)  такие исходники за просто так не выкладывают. это от широты души зависит - я ж в Россее !
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|