PDA

Просмотр полной версии : ПИД регулирование.



Игоррр
30.08.2011, 12:05
Здравствуйте.
Я использую в своей работе ПЛК 100, и принципы ПИД регулирования.
Подскажите какие нибудь блоки ПИД регулирования без автонастройки, которые стабильно работают. Сейчас работаю с блоками из библиотеки овена и Util.lib что бы вы могли сказать по поводу этих регуляторов. Так как тестов ещё не было. Может кто нибудь писал свой блок, я планирую написать свой блок ПИД регулятора, подскажите какие могут возникнуть проблемы.
Заранее спасибо.

capzap
30.08.2011, 13:14
oscat.de Вам в помощь

Николаев Андрей
30.08.2011, 16:23
Есть примеры своих ПИД. Порядка 5 штук. Какие то я лично в примерах на форуме выкладывал, от CeKip.

Игоррр
30.08.2011, 16:24
Нельзя ли более подробнее рассказать про библиотеку oscat.de И ссылку на неё, я скачал какую то, но ПИД регулятора там не нашёл.

Игоррр
30.08.2011, 16:29
Николаев Андрей отлично, а у вас они не остались, ищу сейчас по форуму не могу найти.

Gans
30.08.2011, 17:22
Николаев Андрей отлично, а у вас они не остались, ищу сейчас по форуму не могу найти.
Привет :-)
Взгляни это: http://www.owen.ru/forum/showthread.php?t=10325
+ во вложении мой вариант, правда я пока его не использовал)

Игоррр
30.08.2011, 17:37
Спасибо!!!

capzap
30.08.2011, 18:22
Нельзя ли более подробнее рассказать про библиотеку oscat.de И ссылку на неё, я скачал какую то, но ПИД регулятора там не нашёл.

http://oscat.de/files/oscat_basic_332.lib
открываете в КДС эту библиотеку, по трею спускаетесь: Engineering -> control -> и там выбираете CTRL_PID или FT_PID

Игоррр
30.08.2011, 18:25
Большое спасибо, и последний вопрос. Сейчас увидел написанную визуализацию к проекту, которая позволяет тестировать регулятор в режиме эмуляции. Не знаете где можно взять такой проект, чтобы потом тестировать на нём регуляторы.

capzap
30.08.2011, 18:35
FUNCTION_BLOCK SIMTEMP
VAR_INPUT
PROC:REAL:=0.0; (* процент открытия регулирующего клапана,т.е. выход пид в процентном исполнении*)
COLD:BOOL:=FALSE; (*симулировать охлаждение или нагрев*)
AMBIENTE:REAL:=20.0; (*стремление температуры к комнатной,т.е. состояние покоя*)
KA:REAL:=0.1;
VAPORE:REAL:=140.0; (*стремление температуры к температуре нагревательного(охладительного) элемента*)
KV:REAL:=0.5;
END_VAR
VAR_OUTPUT
TMP:REAL;
END_VAR
VAR
TMPBUF:REAL:=20.0;
END_VAR
IF COLD THEN
TMP:=TMPBUF+KA*(EXP((AMBIENTE-TMPBUF)/AMBIENTE)-1)+KV*(EXP((0.01-TMPBUF)/0.01)-1)*(PROC/100.0);
ELSE
TMP := TMPBUF + KA*(EXP((AMBIENTE-TMPBUF)/AMBIENTE)-1) + KV*(EXP((VAPORE-TMPBUF)/VAPORE)-1)*(PROC/100.0);
END_IF;
TMPBUF:=TMP;



если я правильно понял, то это ищите

Игоррр
30.08.2011, 18:44
Да, скорее всего это. Спасибо. Буду тестировать регуляторы, искать приемлемый.

capzap
30.08.2011, 19:01
примерно так надо его собирать