Похоже, тут именно не BOOL 0,1 (включено/выключено), а именно REAL от 0 до 1.
Пусть меняется выход ПИДа как удобно, например от 0 до 100. После него можно поставить блок LIN_TRAFO и сделать от 0 до 1.
Igor Petrov
Первоначально опубликовано _IP_
Похоже, тут именно не BOOL 0,1 (включено/выключено), а именно REAL от 0 до 1.
Пусть меняется выход ПИДа как удобно, например от 0 до 100. После него можно поставить блок LIN_TRAFO и сделать от 0 до 1.
А как сделать чтобы ПИД менялся от 0 до 100?
В библиотеке даны только такие входные и выходные параметры:
VAR_INPUT ACTUAL :REAL; (* Actual value / Istwert *) DESIRED:REAL; (* Desired Value / Sollwert *) KP:REAL; (* Proportional const. / Proportionalitдtskoeff. 0<KP<1 *) TR:DWORD; (* Reset Time / Nachstellzeit in msec *) TD:DWORD; (* Derivative Time / Vorhaltzeit in msec *) RESET:BOOL; END_VAR VAR_OUTPUT OUT:REAL ; (* Set value (absolute) / Stellwert (absolut) *) END_VAR
Больше там настраивать вроде нечего...
Первоначально опубликовано waldius
Я надеялся что на выходе получу значение от 0 до 1, а тут что-то непонятное для меня...
Как это согласуется с вашими ожиданиями, не пойму логики 0 и 1 и ШИМ как вы хотите подружить и как предполагали включать обогреватель, регулятор ПИ может менять его мощность но включать его он не должен, задача регулятора как раз состоит в том, что бы расcчитать мощность вашего нагревателя таким образом, что бы привести контролируемый параметр за кратчайшее время к заданному значению с минимальным перерегулированием.
Если я все правильно понял, то вам все равно нужен компаратор, для включения нагревателя и ПИ регулятор для регулирования мощности нагревателя. Дифференциальная составляющая вам не нужна. Дифференциальная составляющая как правило используется для внесения опережающего воздействия с целью уменьшения амплитуды убегания в первый момент времени когда скорость отклонения параметра максимальна.
Первоначально опубликовано Dismay
Первоначально опубликовано waldius
Я надеялся что на выходе получу значение от 0 до 1, а тут что-то непонятное для меня...
Как это согласуется с вашими ожиданиями, не пойму логики 0 и 1 и ШИМ как вы хотите подружить и как предполагали включать обогреватель, регулятор ПИ может менять его мощность но включать его он не должен, задача регулятора как раз состоит в том, что бы расcчитать мощность вашего нагревателя таким образом, что бы привести контролируемый параметр за кратчайшее время к заданному значению с минимальным перерегулированием.
Если я все правильно понял, то вам все равно нужен компаратор, для включения нагревателя и ПИ регулятор для регулирования мощности нагревателя. Дифференциальная составляющая вам не нужна. Дифференциальная составляющая как правило используется для внесения опережающего воздействия с целью уменьшения амплитуды убегания в первый момент времени когда скорость отклонения параметра максимальна.
Понятно что ПИД-регулятор не участвует во включении нагревателя... Нагреватель включается если измеренная температура опустилась ниже уставки на один градус...
А насчет значения от 0 до 1 - это я предполагал что так буду вычислять ширину импульса ШИМ... Для мощности нагревателя... Если 1,0 то импульс полный, нагреватель работает на полную мощность, если 0,0 то нагреватель не греет вообще, если 0,3 то импульс ШИМ равен Полный импульс * 0,3... Т.е. не знаю как связать то что получается на выходе ПИД-регулятора с длительностью импульса ШИМ...
Кстати, я правильно понял что в этом ПИД-регуляторе входное значение ACTUAL - это текущая температура, а TARGET - это уставка?...
Первоначально опубликовано waldius
Кстати, я правильно понял что в этом ПИД-регуляторе входное значение ACTUAL - это текущая температура, а TARGET - это уставка?...
Входы ACTUAL, SET_POINT, KP, Y_OFFSET, Y_MIN Y_MAX типа REAL. Входы TN и TV типа DWORD, RESET и MANUAL типа BOOL.
Выходы Y - REAL, LIMITS_ACTVE и OVERFLOW типа BOOL.
Механизм ограничения выхода PID аналогичен PD регулятору.
Неправильная настройка регулятора может вызвать неограниченный рост интегральной составляющей. Для обнаружения такой ситуации предназначен выход OVERFLOW. При переполнении он принимает значение TRUE, одновременно останавливается работа регулятора. Для его включения необходимо использовать рестарт.
Первоначально опубликовано WAGO-IO-PRO 32
The PID controller function block: ACTUAL (actual value) and DESIRED (desired or nominal value) as well as KP, the proportionality coefficient, are all input values of the type REAL. TN, the integral action time, and TV, the derivative action time, are delivered in msec by a DWORD. RESET is of the type BOOL and serves to reset the controller. The output, the absolute control output (OUT), is again of the type REAL, and is calculated as follows:
OUT = ACTUAL + K ( + + TV )
The PID controller can be easily converted to a PI controller by setting TV=0.
Это цитата из старой документации, в мае было обновление. Описание блока несколько дополнено, но ест-но там не написано как вообще использовать ПИД.
Первоначально опубликовано _IP_
Это цитата из старой документации, в мае было обновление. Описание блока несколько дополнено, но ест-но там не написано как вообще использовать ПИД.
В любом случае то что в CodeSys отличается от того что у меня в WAGO-IO-PRO 32... Библиотеки разные...
[/QUOTE]
В любом случае то что в CodeSys отличается от того что у меня в WAGO-IO-PRO 32... Библиотеки разные...
[/QUOTE]
Вам из WAGO-IO-PRO 32 на самом деле необходим только один пакет Customer который содержит таргет и библиотеки WAGO для ваших ПЛК а сам CoDeSys лучше обновлять на сайте 3S я юзаю customer_2.3.7.2.zip от WAGO из под CoDeSys 2.3.8.5 и считаю, что это самый правильный вариант то есть лучше оперировать последними версиями если нет необходимости в обратном
Up!
Неужели никто не работает с ПИД- или ПИ-регуляторами?...
Нужна зависимость между значением выхода регулятора и мощностью нагревателя...
Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме