SpiritDance 0 24 июня, 2006 Опубликовано 24 июня, 2006 · Жалоба Zp - "зона пропорциональности". Ну так написано Kp - зона пропорциональности. Просто неудачно буковки подобраны. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvs157 0 24 июня, 2006 Опубликовано 24 июня, 2006 · Жалоба Если не в напряг помогите разобраться. Те параметры которые я понял для чего, Setpoint - к примеру 300 градусов Sysout - 200 градусов Нет, не совсем так. Приведенный фрагмент кода "крутится в цикле" с той частотой, с какой производится изменение выходного напряжения. И соответственно Sysout бутет менятся Acc_out_prev - 196 градусов Аналогично, это значение температуры, которое было на предыдущем цикле измерения Ti - Постоянная времени интегр. в единицах периода дискретизации (в чем она должна быть выражена) Выражается в секундах. Если цикл раз в секунду - то непосредственно в секундах и будет выражено Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TamTam 0 25 июня, 2006 Опубликовано 25 июня, 2006 · Жалоба Например так -------------------- /* Перед запуском 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 ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvs157 0 25 июня, 2006 Опубликовано 25 июня, 2006 · Жалоба Может я несовсем понял прочтя ПДФ от 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) того, что может выдать выхожной каскад регулятора, в результате - ошибка интегрируется, а выход не изменяется, что приводит к существенному увеличению времени выхода. Подробнее - посмотрите в Яндексе на "насыщения интегратора ПИД регулятора" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shurmas 0 25 июня, 2006 Опубликовано 25 июня, 2006 · Жалоба А у кого нибудь есть исходник на Си автоподстройки ПИД регулятора ? Самонастраивающийся короче. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpiritDance 0 25 июня, 2006 Опубликовано 25 июня, 2006 · Жалоба А у кого нибудь есть исходник на Си автоподстройки ПИД регулятора ? Самонастраивающийся короче. ХЕХЕХЕ СМИШНО!!! :laugh: Не в обиду... Вы хоть представляете себе сложность задачи самомподстраивающегося ПИД регулятора? Просто припомните как он в ручную настраивается. Припоминаете? Ага... на глаз... по форме переходного процесса. Исхоники вам дать... Даже если они есть у кого... сколько чатлов Вы за него готовы отдать? :) У меня кстати есть дока по подстройке с помощью генетических алгоритмов (чья-та буржуйская студенческая работа) плюс код в на матлабе. Сам не вникал. Не до регуляторов пока. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shurmas 0 25 июня, 2006 Опубликовано 25 июня, 2006 · Жалоба Я не считаю что это сложно, просто спросил нет ли у кого. Процес настройки достаточно прост и легко алгоритмизируется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 26 июня, 2006 Опубликовано 26 июня, 2006 · Жалоба Я не считаю что это сложно, просто спросил нет ли у кого. Процес настройки достаточно прост и легко алгоритмизируется. Ну если сам регулируемый объект более-менее стабилен (ну, или, скажем так, предсказуем ;) ), то в автонастройке проблем нет - единичный импульс на вход, снятие отклика, расчет характеристик объекта и по ним расчет значений для пид-регулятора. Это дело искать гуглей. А если у вас объект меняет свои свойства случайным образом (или еще какая кака) - то это тема для диссера... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpiritDance 0 26 июня, 2006 Опубликовано 26 июня, 2006 · Жалоба Rst17 Да только вы еще не учли тот факт что в реальной жизни требуется автоподстройка во время работы, а не в специальном режиме по еденичному возмущению. Ну да прост и легко алгоритмизируется, ага... :) попробовали бы его сначала алгоритмизировать, потом бы уж...:) хотя может для Вас это и легко... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shurmas 0 26 июня, 2006 Опубликовано 26 июня, 2006 · Жалоба в реальной жизни требуется автоподстройка во время работы, а не в специальном режиме по еденичному возмущению. В реальной жизни автоподстройка производится по оценке реакции на естественные возмущения. Ну да прост и легко алгоритмизируется, ага... :) попробовали бы его сначала алгоритмизировать, потом бы уж...:) хотя может для Вас это и легко... Ну что филосовствовать то ? я ж спросил пример кода - може валяется у кого. Если б я сам попробовал то не спрашивал бы, а выложил код в специальный раздел на форуме. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpiritDance 0 26 июня, 2006 Опубликовано 26 июня, 2006 · Жалоба В реальной жизни автоподстройка производится по оценке реакции на естественные возмущения. В реальной жизни в советские времена этой проблемой занимались целые группы инеженеров-исследователей в различных НИИ. Ну что филосовствовать то ? я ж спросил пример кода - може валяется у кого. Если б я сам попробовал то не спрашивал бы, а выложил код в специальный раздел на форуме. Да не я не философствую я просто съязвить пытаюсь. :) Просто Вы спросили что-то вроде "А не завалялось ли у кого докторской диссертации? Выложите плиз нахаляву." :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvs157 0 26 июня, 2006 Опубликовано 26 июня, 2006 · Жалоба Да не я не философствую я просто съязвить пытаюсь. :) Просто Вы спросили что-то вроде "А не завалялось ли у кого докторской диссертации? Выложите плиз нахаляву." :) У очень многих промышленно выпускаемых терморегуляторов есть функция автоматического определения параметров ПИД регулирования. Очевидно, что можно найти объекты на которых эта автонастройка работать не будет. Но на объектах без "заморочек" работает вполне нормально. Я не думаю, что в каждом из них сидит внутри докторский диссер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
okela 0 26 июня, 2006 Опубликовано 26 июня, 2006 · Жалоба Да не я не философствую я просто съязвить пытаюсь. :) Просто Вы спросили что-то вроде "А не завалялось ли у кого докторской диссертации? Выложите плиз нахаляву." :) У очень многих промышленно выпускаемых терморегуляторов есть функция автоматического определения параметров ПИД регулирования. Очевидно, что можно найти объекты на которых эта автонастройка работать не будет. Но на объектах без "заморочек" работает вполне нормально. Я не думаю, что в каждом из них сидит внутри докторский диссер. Там действительно нет ничего труднореализуемого. Автонастройку делают либо по колебательному процессу (регулятор переводится в режим 2-хпозиционного) , либо по отклику на еденичный импульс. В первом случае измеряются амплитуда и период колебаний, и на их основе всё расчитывается. Во втором случае снимается передаточная характеристика и по ней всё определяется. http://www.contravt.ru/?id=242 http://atm.h1.ru/root/theory/theory.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpiritDance 0 26 июня, 2006 Опубликовано 26 июня, 2006 · Жалоба Ну с известными возмущениями действительно все решаемо, а я вот вроде где -то видел регуляторы которые подстраивались под печки в процессе работы (убейте не помню кто их делает помню только многоконтурные и в каком-то институте делали их). Колебания нельзя делать - спалишь нагреватель в печке. Вот кто бы объяснил как ни это делают... Про докторский диссер я же не буквально, просто задача мне по прежнему не кажется такой уж простой и такие исходники за просто так не выкладывают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shurmas 0 26 июня, 2006 Опубликовано 26 июня, 2006 · Жалоба Колебания нельзя делать - спалишь нагреватель в печке. ну колебать то можно и в охлаждение а затем в нагрев. зачем сразу палить. И еще раз говорю колебания сами собой существуют при изменении режима - их и измеряют-анализируют. такие исходники за просто так не выкладывают. это от широты души зависит - я ж в Россее ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться