Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 25

Тема: PID_FUNCTION библиотеки PID_Regulators.lib

  1. #1

    По умолчанию PID_FUNCTION библиотеки PID_Regulators.lib

    Здравствуйте.
    Вопрос касательно блока
    Регулятор без автонастройки (PID_FUNCTION) библиотеки PID_Regulators.lib
    В описании библиотеки сказано:
    "PV_TIME: WORD; – время получения значений регулируемой величины (циклическое время), используется для вычисления интегральной и дифференциальной составляющих.
    Отсчитывается в сотых долях секунды и берется из модуля UNIVERSAL Sensor, переменной Circular time (т. е. указывается для входной переменной адрес соответствующего модуля конфигурации контроллера в разделе PLC Configuration) или получается по сети от приборов ОВЕН. Если функциональный блок используется
    не с измерителем ОВЕН, то необходимо завести переменную, в которую прибавлять время, равное периодичности вызова блока (периоду вызова POU). Единица времени в этой переменной должна равняться 1/100 сек, при переполнении значение должно обнуляться и накопление значения времени должно продолжаться;"

    Поясните пожалуйста или дайте, если можно, пример использования блока не с измерителем Овен, а конкретно
    пример формирования времени PV_TIME

  2. #2

    По умолчанию

    Если у Вас стандартный цикл ПЛК - 1мс
    делаем так
    nn:=nn+1;
    if (nn mod 100 )=0 then CyclTime:=CyclTime+1; nn:=0;end_if

  3. #3

    По умолчанию

    А обнулять CyclTime при переполнении надо ?
    И еще такой вопрос: как остановить расчет регулятора и изменение его выхода ? Иногда требуется переключаться в ручной режим управления исполнительным механизмом, а пока оператор будет работать в ручном режиме, надо как то остановить регулятор, чтобы при переключении обратно в автомат интегральная составляющая равнялась нулю, а не содержала какое то накопленное значение
    Последний раз редактировалось VadMol; 10.11.2008 в 17:53.

  4. #4

    По умолчанию

    1.Он сам обнулится, по физической природе своей, как беззнакового числа.
    2.Все внутренние переменные доступны по указателю для чтения/записи.

  5. #5

    По умолчанию

    По второму ответу не понял, нельзя ли по подробнее ?

  6. #6

    По умолчанию

    1) При ручном режиме подавайте на вход SP измеренное значение температуры.
    2) Изменить значение интегральной составляющей можно установив _IMIN и _IMAX в нужное значение

  7. #7

    По умолчанию

    Спасибо, так и сделаю

  8. #8

    По умолчанию

    Цитата Сообщение от Малышев Олег Посмотреть сообщение
    Если у Вас стандартный цикл ПЛК - 1мс
    делаем так
    nn:=nn+1;
    if (nn mod 100 )=0 then CyclTime:=CyclTime+1; nn:=0;end_if
    А почему именно каждые 100 мс инкрементировать CyclTime, если мне необходимо более быстрое накопление интегральной составляющей, можно чаще прибавлять 1 к CyclTime ?

  9. #9

    Thumbs up

    Прибавлять чаще можно, но вот в ПИД регуляторе так заложено, что сравнивает он изменение физической величины с таким интервалом времени - это раз.
    А второе - нет прямой зависимости интегральной составляющей от времени изменения измеренной физической величины.

  10. #10

    По умолчанию

    Да, действительно, ведь CyclTime определяет интервал времени, через который нужно брать значение ошибки для расчета интеграла. Если уменьшить этот интервал, то соответственно и значение интеграла уменьшится и в итоге ничего не изменится. Тогда как же поступить, если необходимо более быстроее накопление интегральной составляющией ? Устанавливаю значение постоянной интегрирования равное 1 и все равно это медленно.

Страница 1 из 3 123 ПоследняяПоследняя

Ваши права

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