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

Тема: Неясности с библиотекой PID_Regulators.lib

  1. #1

    Question Неясности с библиотекой PID_Regulators.lib

    Здравствуйте.
    Разъясните мне пожалуйста такой вопрос. Если предприятию необходимо использовать ПИД регулятор, для регулирования температуры при нагревании пресс-форм и при этом количество пресс-форм с десяток, но возможно и появление новых пресс-форм. То каким образом мне применять автонастройку, чтобы можно было сохранить значения всех коэффициентов для последующего их применения?

    Например:
    1) Сегодня используем п/ф (пресс-форма) №1, причем используем её впервые, применяем автонастройку, работаем и выключаем борудование до завтра.
    2) Завтра используем п/ф №2 также впервые производим автонастройку ...
    3) Послезавтра необходимо опять использовать п/ф №1. Вопрос что опять производить автонастройку? Или же существует како-то выход в данной ситуации?

    PS:
    Данная библиотека была рекомендована Вашим специалистом на выставке в Екатеринбурге. Применять данную библиотеку будем в контроллере 154

  2. #2

    По умолчанию

    Наиболее простым представляется следующее решение
    1) Объявляете два регулятора в RETAIN
    2) При использовании пресс формы №1 используете первый, иначе - второй

    Если это не совсем устраивает - например по ограничению размера флеша(сохраняете только к-ты ПИД) или хочется подстроить к-ты вручную создайте один экземпляр АНР и один PID_Function. Регулирование будет выполнять PID_function по к-там АНР

    p:PID_2POS_IM_ANR;
    p1:PID_FUNCTION;
    ................
    p1.TI_:=p.fKi;
    p1.TD_:=p.fKi*p.fKdKi;
    p1.PB:=p.fK0;
    Последний раз редактировалось Малышев Олег; 12.02.2008 в 10:46.

  3. #3

    По умолчанию

    Последнее больше устраивает, т.к. есть возможность сохранить к-ты во внешнем файле и загружать их при вводе задания.

  4. #4

    По умолчанию

    Ещё один вопрос. Не могу никак понять следующее
    Если функциональный блок используется не с измерителем ОВЕН, то необходимо завести переменную, в которую прибавлять время, равное периодичности вызова блока (периоду вызова POU). Единица времени в этой переменной должна равняться 1/100 сек, при переполнении значение должно обнуляться и накопление значения времени должно продолжаться;
    У нас ведь прога всеравно выполняется циклически, зачем этот счетчик?
    Или другими словами, если я не попаду в цикл POU то как поведет себя регуляттор?
    Использовать предстоит ADAM 4017 или 4018
    Последний раз редактировалось Мухин Сергей; 12.02.2008 в 12:12.

  5. #5

    По умолчанию

    ПИД-регулятор для вычисления диф. и инт. составляющей обязан иметь информацию о времени. Эта информация поставляется в него извне. Если время меняться не будет - ПИД работать не будет.

  6. #6

    По умолчанию

    Т.е. усли к примеру время цикла 150 мс, то с каждым циклом мы увеличиваем значение на 150 пока не отсчитаем 655.35 секунды, затем начинаем снова. Я правильно понял?

  7. #7

    По умолчанию

    Да - абсолютно верно. Думаю смысла запускать регулятор чаще чем раз в 500 миллисекунд нет. Переменная типа word при переполнении сама переходит через 0. Достаточно простого инкремента.

  8. #8

    По умолчанию

    Спасибо за подсказку
    Думаю смысла запускать регулятор чаще чем раз в 500 миллисекунд нет

  9. #9

    По умолчанию

    Цитата Сообщение от Малышев Олег Посмотреть сообщение
    Регулирование будет выполнять PID_function по к-там АНР

    p:PID_2POS_IM_ANR;
    p1:PID_FUNCTION;
    ................
    p1.TI_:=p.fKi;
    p1.TD_:=p.fKi*p.fKi;
    p1.PB:=p.fK0;
    Можно p.fKi, p.fKi, p.fK0 сохранять в других переменных а при необходимости перезаписывать из этих переменных? (Чтобы всегда работал ПИД с АНР.)

Ваши права

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