PDA

Просмотр полной версии : ПИД регулятор (нужна помощь)



Danzel
24.03.2014, 18:02
Добрый день!
Подскажите как с помощью ПИД регулятора из библиотеки Util.Lib (см. рис.) обеспечить необходимую скорость нарастания температуры для нагревателя, например 1 градус в минуту, и как подобрать коэффициенты ???
12353

lara197a
24.03.2014, 18:04
Проще увеличивать уставку.

Danzel
24.03.2014, 18:44
А как уставку увеличивать? Мне нужно чтобы ТЭН нагревался со скоростью 1 градус в минуту

lara197a
24.03.2014, 19:25
Дык и прибавляйте к уставке 1 градус в минуту. Или десятую каждые 6сек.

AVF
25.03.2014, 13:00
Задайте в качестве уставки не температуру, а скорость её изменения.

Вольд
25.03.2014, 14:17
Задайте в качестве уставки не температуру, а скорость её изменения.
Ты это серьезно ? Скорость изменения температуры 1 гр./мин. Если задать уставку 1, а текущее значение температуры будет явно больше 1, то ПИД будет пытаться уменьшить эту температуру. Нагрева вообще не будет.

Danzel
25.03.2014, 14:53
Так все таки как сделать, подскажите. Как написала Lara что то не совсем понятно как это описать, помогите

Вольд
25.03.2014, 16:06
А ты ТЭН от чего питаешь ?

lara197a
25.03.2014, 16:09
к примеру Вам нужно нагреть до 150градусов.
К текущему значению температуры каждую минуту прибавляйте 1 градус, до тех пор пока температура не достигнет 150 градусов.
Используйте генератор BLINK. к примеру BLINK(ENABLE:= , TIMELOW:=T#500ms , TIMEHIGH:=T#500ms , OUT=> );
По фронту высокого уровня пишете: Уставка= Ттекущая+1.

Вольд
25.03.2014, 16:15
к примеру Вам нужно нагреть до 150градусов.
К текущему значению температуры каждую минуту прибавляйте 1 градус, до тех пор пока температура не достигнет 150 градусов.
Используйте генератор BLINK. к примеру BLINK(ENABLE:= , TIMELOW:=T#500ms , TIMEHIGH:=T#500ms , OUT=> );
По фронту высокого уровня пишете: Уставка= Ттекущая+1.
А с чего Вы взяли, что скорость нагрева при этом будет 1 гр./мин. ?

Danzel
25.03.2014, 16:52
А ты ТЭН от чего питаешь ?
ТЭН подключен через твердотельное рэле

Danzel
25.03.2014, 16:56
к примеру Вам нужно нагреть до 150градусов.
К текущему значению температуры каждую минуту прибавляйте 1 градус, до тех пор пока температура не достигнет 150 градусов.
Используйте генератор BLINK. к примеру BLINK(ENABLE:= , TIMELOW:=T#500ms , TIMEHIGH:=T#500ms , OUT=> );
По фронту высокого уровня пишете: Уставка= Ттекущая+1.
Сделал так как вы сказали, но скорость 1 град. не обеспечивается, Ттекущая с датчика температуры стала больше чем Уставка= Ттекущая+1, потом уставка догнала Ттек, но заданная скорость все равно не обеспечивается

Василий Кашуба
25.03.2014, 20:05
Сделал так как вы сказали, но скорость 1 град. не обеспечивается, Ттекущая с датчика температуры стала больше чем Уставка= Ттекущая+1, потом уставка догнала Ттек, но заданная скорость все равно не обеспечивается
Поставьте период BLINK 6 сек. и изменение температуры на 0,1 гр. Цельсия, будет гораздо точнее.

Валенок
25.03.2014, 21:05
var
ramp : ramp_real := (in:=150, ascend:=1, timebase:=t#1m);
pide : pid := (y_max:=1);
psw : real; (*0..1*)


ramp();
pide(actual:=.., set_point:=ramp.out, ..., y=>psw);

lara197a
25.03.2014, 22:08
Попробуйте по рампе, как валенок советует.
Или подберите параметры ПИД. Там вполне ПИ хватит.
Сначала просто получите рост температуры с заданной скоростью.

AVF
26.03.2014, 07:36
Ты это серьезно ? Скорость изменения температуры 1 гр./мин. Если задать уставку 1, а текущее значение температуры будет явно больше 1, то ПИД будет пытаться уменьшить эту температуру. Нагрева вообще не будет.
---вопрошающий писатель в курсе, что такое скорость изменения параметра? И какая она будет, если не будет нагрева?

Вольд
26.03.2014, 10:37
---вопрошающий писатель в курсе, что такое скорость изменения параметра? И какая она будет, если не будет нагрева?
С тобой все ясно.

Вольд
26.03.2014, 11:57
Сделал так как вы сказали, но скорость 1 град. не обеспечивается, Ттекущая с датчика температуры стала больше чем Уставка= Ттекущая+1, потом уставка догнала Ттек, но заданная скорость все равно не обеспечивается
Тебе надо снять кривую разгона тепловой установки. Охлади установку до температуры в помещении, включи ТЭН на полную мощность, затабулируй функцию T° = f(t) и построй график. Нагревай, пока температура не перестанет расти, т.е. до установившегося режима. Возможно, получить скорость нагрева 1 гр./мин. не получится из-за нехватки мощности ТЭН. В этом случае придется взять более мощный ТЭН. Если скорость нагрева получится >= 1 гр./мин., то все нормально и тебе просто будет надо правильно настроить ПИД-регулятор.

Василий Кашуба
26.03.2014, 13:03
Тебе надо снять кривую разгона тепловой установки. Охлади установку до температуры в помещении, включи ТЭН на полную мощность, затабулируй функцию T° = f(t) и построй график. Нагревай, пока температура не перестанет расти, т.е. до установившегося режима. Возможно, получить скорость нагрева 1 гр./сек. не получится из-за нехватки мощности ТЭН. В этом случае придется взять более мощный ТЭН. Если скорость нагрева получится >= 1 гр./сек., то все нормально и тебе просто будет надо правильно настроить ПИД-регулятор.
Человеку нужна скорость 1 гр./мин.

Вольд
26.03.2014, 14:13
Человеку нужна скорость 1 гр./мин.
Точно, поправил.

Danzel
26.03.2014, 15:48
Тебе надо снять кривую разгона тепловой установки. Охлади установку до температуры в помещении, включи ТЭН на полную мощность, затабулируй функцию T° = f(t) и построй график. Нагревай, пока температура не перестанет расти, т.е. до установившегося режима. Возможно, получить скорость нагрева 1 гр./мин. не получится из-за нехватки мощности ТЭН. В этом случае придется взять более мощный ТЭН. Если скорость нагрева получится >= 1 гр./мин., то все нормально и тебе просто будет надо правильно настроить ПИД-регулятор.

Скорость нагрева на полную мощность получилась больше 1 градуса! Скажите как правильно настроить ПИД-регулятор, как правильно подобрать коэффициенты и т.д

Danzel
26.03.2014, 16:30
Поставьте период BLINK 6 сек. и изменение температуры на 0,1 гр. Цельсия, будет гораздо точнее.

Поставил период Blink 6 сек, уставка каждые 6 сек прибавляет 0,1, скорость нарастания при этом варьируется в диапазоне от 0,5 град/мин до 2 град./мин. Еще такой момент когда температура с датчика превышает уставку, ПИД - регулятор не отключается, а он то вкл. то выкл., так и должно быть, или коэффициенты не правильно подобраны???

Вольд
26.03.2014, 17:49
Набери в поисковой системе "Настройка ПИД-регулятора" и будет тебе счастье. Подбор коэффициентов ПИД-регулятора - это целая наука.

lara197a
26.03.2014, 18:02
А вообще у Овна есть ТРМ с такими возможностями.
По моему ТРМ251 называется.
Я бы взял готовый прибор с отработанным алгоритмом.

AVF
27.03.2014, 10:13
С тобой все ясно.
--- травой поделишься?