Перейти к содержанию
    

Подскажите по ПИД регулированию

Zp - "зона пропорциональности".

Ну так написано Kp - зона пропорциональности. Просто неудачно буковки подобраны. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если не в напряг помогите разобраться.

 

Те параметры которые я понял для чего,

 

Setpoint - к примеру 300 градусов

Sysout - 200 градусов

 

Нет, не совсем так. Приведенный фрагмент кода "крутится в цикле" с той частотой, с какой производится изменение выходного напряжения. И соответственно Sysout бутет менятся

 

Acc_out_prev - 196 градусов

 

Аналогично, это значение температуры, которое было на предыдущем цикле измерения

 

 

 

Ti - Постоянная времени интегр. в единицах периода дискретизации (в чем она должна быть выражена)

 

Выражается в секундах. Если цикл раз в секунду - то непосредственно в секундах и будет выражено

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Например так

--------------------

/*

 

Перед запуском

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 ?

post-15254-1151233828_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может я несовсем понял прочтя ПДФ от 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) того, что может выдать выхожной каскад регулятора, в результате - ошибка интегрируется, а выход не изменяется, что приводит к существенному увеличению времени выхода. Подробнее - посмотрите в Яндексе на "насыщения интегратора ПИД регулятора"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А у кого нибудь есть исходник на Си автоподстройки ПИД регулятора ? Самонастраивающийся короче.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А у кого нибудь есть исходник на Си автоподстройки ПИД регулятора ? Самонастраивающийся короче.

ХЕХЕХЕ СМИШНО!!! :laugh:

Не в обиду... Вы хоть представляете себе сложность задачи самомподстраивающегося ПИД регулятора? Просто припомните как он в ручную настраивается. Припоминаете? Ага... на глаз... по форме переходного процесса. Исхоники вам дать... Даже если они есть у кого... сколько чатлов Вы за него готовы отдать? :)

 

У меня кстати есть дока по подстройке с помощью генетических алгоритмов (чья-та буржуйская студенческая работа) плюс код в на матлабе. Сам не вникал. Не до регуляторов пока.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не считаю что это сложно, просто спросил нет ли у кого. Процес настройки достаточно прост и легко алгоритмизируется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не считаю что это сложно, просто спросил нет ли у кого. Процес настройки достаточно прост и легко алгоритмизируется.

 

Ну если сам регулируемый объект более-менее стабилен (ну, или, скажем так, предсказуем ;) ), то в автонастройке проблем нет - единичный импульс на вход, снятие отклика, расчет характеристик объекта и по ним расчет значений для пид-регулятора. Это дело искать гуглей. А если у вас объект меняет свои свойства случайным образом (или еще какая кака) - то это тема для диссера...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Rst17

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

В реальной жизни автоподстройка производится по оценке реакции на естественные возмущения.

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В реальной жизни автоподстройка производится по оценке реакции на естественные возмущения.

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

 

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

Да не я не философствую я просто съязвить пытаюсь. :) Просто Вы спросили что-то вроде "А не завалялось ли у кого докторской диссертации? Выложите плиз нахаляву." :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да не я не философствую я просто съязвить пытаюсь. :) Просто Вы спросили что-то вроде "А не завалялось ли у кого докторской диссертации? Выложите плиз нахаляву." :)

 

У очень многих промышленно выпускаемых терморегуляторов есть функция автоматического определения параметров ПИД регулирования. Очевидно, что можно найти объекты на которых эта автонастройка работать не будет. Но на объектах без "заморочек" работает вполне нормально. Я не думаю, что в каждом из них сидит внутри докторский диссер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да не я не философствую я просто съязвить пытаюсь. :) Просто Вы спросили что-то вроде "А не завалялось ли у кого докторской диссертации? Выложите плиз нахаляву." :)

 

У очень многих промышленно выпускаемых терморегуляторов есть функция автоматического определения параметров ПИД регулирования. Очевидно, что можно найти объекты на которых эта автонастройка работать не будет. Но на объектах без "заморочек" работает вполне нормально. Я не думаю, что в каждом из них сидит внутри докторский диссер.

 

Там действительно нет ничего труднореализуемого. Автонастройку делают либо по колебательному процессу (регулятор переводится в режим 2-хпозиционного) , либо по отклику на еденичный импульс.

В первом случае измеряются амплитуда и период колебаний, и на их основе всё расчитывается.

Во втором случае снимается передаточная характеристика и по ней всё определяется.

http://www.contravt.ru/?id=242

http://atm.h1.ru/root/theory/theory.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну с известными возмущениями действительно все решаемо, а я вот вроде где -то видел регуляторы которые подстраивались под печки в процессе работы (убейте не помню кто их делает помню только многоконтурные и в каком-то институте делали их). Колебания нельзя делать - спалишь нагреватель в печке. Вот кто бы объяснил как ни это делают...

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Колебания нельзя делать - спалишь нагреватель в печке.

 

ну колебать то можно и в охлаждение а затем в нагрев. зачем сразу палить. И еще раз говорю колебания сами собой существуют при изменении режима - их и измеряют-анализируют.

 

такие исходники за просто так не выкладывают.

 

это от широты души зависит - я ж в Россее !

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...