Показано с 1 по 9 из 9

Тема: PID_FUNCTION: Как правильно использовать без охладителя?

  1. #1
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию PID_FUNCTION: Как правильно использовать без охладителя?

    У PID_FUNCTION диапазон на выходе от −100 до +100, а у нагревателя без охладителя — от 0 до 100. Как привести один диапазон к другому?

    Уже пробовал 1: игнорировать отрицательные значения. Получается ерунда после перерегулирования на подходе к уставке сверху, когда значения на управляющем выходе отрицательные. Пролетаем вниз из-за не включившегося вовремя нагревателя.

    Уже пробовал 2: сдвинуть на 100 вперёд (0 - 200) и поделить на 2. Получается ерунда на подходе к уставке снизу, т.к. нагреватель должен уже отключиться, а он по-прежнему жарит в пол-накала — пролетаем вверх.

  2. #2
    Пользователь Аватар для Василий Кашуба
    Регистрация
    20.11.2011
    Адрес
    Ставрополь
    Сообщений
    2,490

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    У PID_FUNCTION диапазон на выходе от −100 до +100, а у нагревателя без охладителя — от 0 до 100. Как привести один диапазон к другому?

    Уже пробовал 1: игнорировать отрицательные значения. Получается ерунда после перерегулирования на подходе к уставке сверху, когда значения на управляющем выходе отрицательные. Пролетаем вниз из-за не включившегося вовремя нагревателя.

    Уже пробовал 2: сдвинуть на 100 вперёд (0 - 200) и поделить на 2. Получается ерунда на подходе к уставке снизу, т.к. нагреватель должен уже отключиться, а он по-прежнему жарит в пол-накала — пролетаем вверх.
    Поставьте Min = 0, а не "-1"

  3. #3
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    У PID_FUNCTION диапазон на выходе от −100 до +100, а у нагревателя без охладителя — от 0 до 100. Как привести один диапазон к другому?

    Уже пробовал 1: игнорировать отрицательные значения. Получается ерунда после перерегулирования на подходе к уставке сверху, когда значения на управляющем выходе отрицательные. Пролетаем вниз из-за не включившегося вовремя нагревателя.

    Уже пробовал 2: сдвинуть на 100 вперёд (0 - 200) и поделить на 2. Получается ерунда на подходе к уставке снизу, т.к. нагреватель должен уже отключиться, а он по-прежнему жарит в пол-накала — пролетаем вверх.
    LIN_TRAFO Вам в помощь
    Нажмите на изображение для увеличения. 

Название:	Захват-1.png 
Просмотров:	442 
Размер:	4.2 Кб 
ID:	11836
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  4. #4
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Поставьте Min = 0, а не "-1"
    Где?
    LIN_TRAFO Вам в помощь
    «Уже пробовал 2».

  5. #5
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,656

    По умолчанию

    А что , Ymin :=0 ?; Ymax:=100 ; нельзя задать ?
    Ага , этого нетути.
    Поможет функция(формула линейной апроксимации по 2м точкам) или у Оската F_lin2.
    Выходной диапазон -100...+100 наложить на 0...100 , тогда -100 будет соответствовать 0 , а 100 , соотв.-100.

  6. #6
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Где?«Уже пробовал 2».
    LIN_TRAFO это не тоже самое, что
    Уже пробовал 2: сдвинуть на 100 вперёд (0 - 200) и поделить на 2
    А именно вот это
    Цитата Сообщение от Sergey666 Посмотреть сообщение
    Поможет функция(формула линейной апроксимации по 2м точкам) или у Оската F_lin2.
    Выходной диапазон -100...+100 наложить на 0...100 , тогда -100 будет соответствовать 0 , а 100 , соотв.-100.
    Сигнал с выхода PID в диапазоне от -100 до 100 будет преобразован к диапазону сигнала для нагревателя от 0 до 100

    ЗЫ. А что бы не "пролетало" уставку снизу или сверху нужно еще и коэффициенты PID правильно подобрать.
    Последний раз редактировалось petera; 11.02.2014 в 14:28.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #7
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    У PID_FUNCTION диапазон на выходе от −100 до +100, а у нагревателя без охладителя — от 0 до 100. Как привести один диапазон к другому?

    Уже пробовал 1: игнорировать отрицательные значения. Получается ерунда после перерегулирования на подходе к уставке сверху, когда значения на управляющем выходе отрицательные. Пролетаем вниз из-за не включившегося вовремя нагревателя.

    Уже пробовал 2: сдвинуть на 100 вперёд (0 - 200) и поделить на 2. Получается ерунда на подходе к уставке снизу, т.к. нагреватель должен уже отключиться, а он по-прежнему жарит в пол-накала — пролетаем вверх.
    Ой чувствую, что Вы ждете от PID регулятора работы в релейном режиме ВКЛ/ОТКЛ.
    По тому что,
    на подходе к уставке сверху, когда значения на управляющем выходе отрицательные. Пролетаем вниз из-за не включившегося вовремя нагревателя
    на подходе к уставке снизу, т.к. нагреватель должен уже отключиться, а он по-прежнему жарит в пол-накала — пролетаем вверх
    Так PID регулятор, по крайней мере этот работать не может, т.к. нагреватель включен всегда, а вот мощность на нем меняется плавно и в установившемся режиме должна быть в диапазоне от 0 до 100%.
    Т.е. в установившемся режиме, когда текущее значение температуры равно уставке, на выходе PID может быть любое значение между заданными MIN=-100 и MAX=100, а не возможно ожидаемое Вами "0". Какое? Такое, которое воздействуя на нагреватель, заставляет его работать с такой мощностью, которой достаточно для соблюдения равенства текущей температуры заданной уставке.
    И в этом состоянии выход PID останется сколь угодно долго до тех пор, пока из-за возмущающих факторов, текущая температура не отклонится в ту или иную сторону от заданной. При этом PID найдет новое значение для своего выхода.
    Последний раз редактировалось petera; 11.02.2014 в 15:02.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #8

    По умолчанию

    На выходе PID_FUNCTION используйте оператор выборки LIMIT
    ... из справки CoDeSys: "LIMIT
    Ограничитель
    OUT := LIMIT(Min, IN, Max) означает:
    OUT := MIN (MAX (IN, Min), Max)
    Max задает верхнюю и Min нижнюю границы ограничителя. Если IN больше верхнего или меньше нижнего пределов, результат 'обрезается' соответственно до Max или Min.
    IN и OUT могут быть любого типа."

  9. #9
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от Pashtet Посмотреть сообщение
    На выходе PID_FUNCTION используйте оператор выборки LIMIT
    ... из справки CoDeSys: "LIMIT
    Ограничитель
    OUT := LIMIT(Min, IN, Max) означает:
    OUT := MIN (MAX (IN, Min), Max)
    Max задает верхнюю и Min нижнюю границы ограничителя. Если IN больше верхнего или меньше нижнего пределов, результат 'обрезается' соответственно до Max или Min.
    IN и OUT могут быть любого типа."
    Вот после использования таких советов и возникают на форуме претензии к работе PID_FUNCTION из Util.lib.


    Мол стандартный PID не работает, помогите победить утильный PID и т.д.
    Зачем здесь ограничитель LIMIT, ведь для ограничения выходного сигнала у PID есть специальные входы Y_MIN и Y_MAX, которые не только ограничивают Y, но и не позволяют интегральной составляющей PID стремиться "в заоблачную даль".
    Когда Y упрется в Y_MIN или Y_MAX, после смены знака рассогласования он сразу начнет двигаться в противоположную сторону, а на выходе LIMIT сигнал так и останется на уровне его ограничения, до момента пока величина Y не попадет в диапазон ограничения. Вот и получим "не работающий" PID.
    Последний раз редактировалось petera; 19.02.2014 в 00:01.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Похожие темы

  1. MBA8 использовать как дикретный
    от KRUG в разделе Мх110
    Ответов: 13
    Последнее сообщение: 06.06.2013, 11:00
  2. Ответов: 6
    Последнее сообщение: 15.02.2010, 19:34
  3. как использовать энергию солнца?
    от Виктор.К в разделе Подбор Оборудования
    Ответов: 3
    Последнее сообщение: 18.06.2009, 10:37
  4. как использовать буфер
    от николай72 в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 18.04.2009, 22:25

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •