Просмотр полной версии : ПИД регулирование.
Здравствуйте.
Я использую в своей работе ПЛК 100, и принципы ПИД регулирования.
Подскажите какие нибудь блоки ПИД регулирования без автонастройки, которые стабильно работают. Сейчас работаю с блоками из библиотеки овена и Util.lib что бы вы могли сказать по поводу этих регуляторов. Так как тестов ещё не было. Может кто нибудь писал свой блок, я планирую написать свой блок ПИД регулятора, подскажите какие могут возникнуть проблемы.
Заранее спасибо.
Николаев Андрей
30.08.2011, 16:23
Есть примеры своих ПИД. Порядка 5 штук. Какие то я лично в примерах на форуме выкладывал, от CeKip.
Нельзя ли более подробнее рассказать про библиотеку oscat.de И ссылку на неё, я скачал какую то, но ПИД регулятора там не нашёл.
Николаев Андрей отлично, а у вас они не остались, ищу сейчас по форуму не могу найти.
Николаев Андрей отлично, а у вас они не остались, ищу сейчас по форуму не могу найти.
Привет :-)
Взгляни это: http://www.owen.ru/forum/showthread.php?t=10325
+ во вложении мой вариант, правда я пока его не использовал)
Нельзя ли более подробнее рассказать про библиотеку oscat.de И ссылку на неё, я скачал какую то, но ПИД регулятора там не нашёл.
http://oscat.de/files/oscat_basic_332.lib
открываете в КДС эту библиотеку, по трею спускаетесь: Engineering -> control -> и там выбираете CTRL_PID или FT_PID
Большое спасибо, и последний вопрос. Сейчас увидел написанную визуализацию к проекту, которая позволяет тестировать регулятор в режиме эмуляции. Не знаете где можно взять такой проект, чтобы потом тестировать на нём регуляторы.
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;
если я правильно понял, то это ищите
Да, скорее всего это. Спасибо. Буду тестировать регуляторы, искать приемлемый.
примерно так надо его собирать
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot