1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

ПИД регулятор

Обсуждение вопросов, не относящихся ни к одному из других подразделов

Модератор: kirillio

Ответить
Аватара пользователя

Ka3ax
read only
read only
Сообщения: 42
Зарегистрирован: 30 окт 2012, 04:14
Имя: Олд Белл
Страна: Германия
город/регион: Киль
Благодарил (а): 14 раз
Забанен: Бессрочно

Re: ПИД регулятор

Сообщение Ka3ax »

а что было по ссылке о " Регулирование на основе SIMATIC"
книга Мюллера Юргена? или статья ?
Аватара пользователя

hell_boy
почётный участник форума
почётный участник форума
Сообщения: 1746
Зарегистрирован: 18 янв 2009, 12:25
Имя: Дмитрий
Страна: Россия
город/регион: Москва
Благодарил (а): 6 раз
Поблагодарили: 143 раза

Re: ПИД регулятор

Сообщение hell_boy »

Там была книга. Сейчас она здесь http://iadt.siemens.ru/assets/files/inf ... ATIC_r.pdf
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой

Global_viewer
здесь недавно
здесь недавно
Сообщения: 22
Зарегистрирован: 28 дек 2013, 20:24
Имя: Ковалев Антон Русланович
Страна: РФ
город/регион: Екатеринбург
Поблагодарили: 1 раз

Re: ПИД регулятор

Сообщение Global_viewer »

Marrenoloth писал(а): Если интересно, сходите на http://code.google.com/p/s7-facility/, скачайте ПИД...
Файлк то убрали. Если кто качал прошу поделитесь сюды: [email protected]
Спасибо
Аватара пользователя

Ka3ax
read only
read only
Сообщения: 42
Зарегистрирован: 30 окт 2012, 04:14
Имя: Олд Белл
Страна: Германия
город/регион: Киль
Благодарил (а): 14 раз
Забанен: Бессрочно

Re: ПИД регулятор

Сообщение Ka3ax »

решаю задачу по поддержанию постоянного давления в системе
компрессор
частотный преобразователь, диапазон выходной частоты 20 Герц- 50 Герц. 20 Герц минимально разрешенная частота для компрессора
контролер S7-300
величина задания частоты частотному преобразователю 0-16384, вместо 0 будет число соответствующее минимально разрешенной частоте.
сейчас смысла нет указывать, так как 16384 может соответствовать и 750 об в мин или 3000 об в мин. Зависит от настроек частотного преобразователя.
частота опроса сигнала с датчика не ограничена, например, 10 раз в секунду
расчет ошибки регулирования производится с частотой равной частоте опроса датчика
а вот выдача сигнала регулирования растянута во времени, ограничение 1 Герц в секунду, быстрее изменять в сторону повышения не разрешено.

полагаю, что PID в данном случае не справится, но для того, что бы подтвердить это математически, мне необходима информация,
что в моем случае
1. время реакции системы регулирования
как я понимаю, время отработки от минимально разрешенной частоты, до максимально разрешенной. или от 0 до 100 процентов для отвлеченной регулируемой величины
2. запаздывание системы..
если честно, то разницы не вижу с первым пунктом.
Но согласно научным фолиантам разница имеется.
для определения возможности применения PID регулятора для какой либо системы, нужно взять отношение первого ко второму.
если величина лежит в диапазоне 1/2 -1/4 то PID справится с задачей.


пока вижу такой способ регулирования.
Эл. мотор 3000 об мин
Fmin- min Частота= 20 Hz = 1200 об в мин
Fmax-max Частота = 50 Hz = 3000 об в мин
Out_min- величина задания частотному преобразователю Fmin = (16384/50 Hz)*20 Hz =~ 6555
Out_max-величина задания частотному преобразователю Fmax = 16384
ADD_Out_S -разрешенное приращение выходной величины регулирования в секуду, 16384/50 Hz=~333
SUB_Out_S- сделаем равное по времени уменьшение величины регулирования в секунду = ~ 333

Out_S- выходная величина, задание частотному преобразователю

Err- ошибка
Err_old- предыдущая ошибка
SP-set point величина задания- например, 100
AP-actual point текущая величина регулируемого параметра, например, 90
TZ- мертвая зона= 10, или разрешенная выходная величина 100+-5
KP- коэффициент пропорциональности, подбирается методом ДОСААФа, 0,5 - 1,0
Out_temp- временная переменная для вычислений величины зада
Out_S_old- предыдущее задание частоты
вызов функции будет производится в OB, вызываемом 10 раз в секунду. 10 ms-OB


------------пробовал тег code, плохо читается
инициализация
Err=0
Err_old=0
Out_S=6555
Out_S_old=6555
ADD_Out_S=33 (333/10)
SUB_Out_S=33 (333/10)
Out_S_min= 6555
Out_S_max=16384
TZ=5

BEGIN

Err=SP-AP
If I ErrI <= TZ then JUMP // если текущая ошибка по модулю меньше или равна "мертвой зоне" переходим на метку Jump

Out_temp= I 1/(KP*Err) I // берем по модулю, величина лежит в пределах 0-1, только одно не понятно, делить на ноль нельзя

if Err > 0 then Out_S=)Out_temp * 16384) +ADD_Out_S // Если ошибка положительная, то приращиваем значение. 16384 - Fmax задание
else
Out_S=(Out_temp * 16384) - SUB_Out_S // Если ошибка отрицательная, уменьшаем выходное значение
end if

if Out_S < Out_S-min then Out_S=Out_S_min // если задание меньше разрешенной величины задания, то выход равен минимуму
else If Out_S > Out_S_max then Out_S=Out_S_max // выходная величина не может быть больше разрешенной

: Jump
Out_S=Out_S
Out_S_old=Out_S

END
----------------------------------------
Аватара пользователя

Ka3ax
read only
read only
Сообщения: 42
Зарегистрирован: 30 окт 2012, 04:14
Имя: Олд Белл
Страна: Германия
город/регион: Киль
Благодарил (а): 14 раз
Забанен: Бессрочно

Re: ПИД регулятор

Сообщение Ka3ax »

Попробовал реализовать задуманное, но скомпилировать не получается.

в строках
компилятор версии 5.3 определяет ошибки, а я не могу распознать

строка 33 место 28 за последней скобкой
строка 36 место 24 за знаком * умножение
строка 38 место 24 указатель отсутствует..

в прикрепленных PDF в цвете, с нумерацией строк.

Код: Выделить всё

FUNCTION_BLOCK FB112
VAR_INPUT
SetPoint : REAL;
ActualPoint : REAL; 
Err: REAL;
Err_old: REAL;
OutSold: REAL ;
ADDOutS: REAL ; // 33 как 330/10 10 это время в миллисекундах, частота вызова блока
SUBOutS: REAL ;
OutSmin: REAL ;
OutSmax: REAL ;
KP :  REAL ;
TZ: REAL ;
  END_VAR  
VAR_OUTPUT
    OutS: REAL;
END_VAR  
    VAR_TEMP
      OutTemp : REAL;
    END_VAR
LABEL
    END ;
END_LABEL        
  
  BEGIN
  
Err := SetPoint-ActualPoint ;

IF ABS (Err) <= TZ THEN 
    GOTO END ;
           END_IF;
   
    OutTemp = 1 /(KP * Err); // строка 33 место 28 за последней скобкой
 
 IF Err > 0 THEN
    OutS :=  (Out_temp * 16384) + ADDOutS ; // строка 36 место 24 за знаком *

ELSE                                        // строка 38 место 24 указатель отсутствует
    OutS :=  (Out_temp * 16384) - SUBOutS ;
END_IF;

    IF OutS < OutSmin THEN
         OutS := OutSmin;
          END_IF;
 
    
  IF OutS > OutSmax THEN
     OutS := OutSmax ;
     END_IF;
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

Ka3ax
read only
read only
Сообщения: 42
Зарегистрирован: 30 окт 2012, 04:14
Имя: Олд Белл
Страна: Германия
город/регион: Киль
Благодарил (а): 14 раз
Забанен: Бессрочно

ПИД регулятор

Сообщение Ka3ax »

отпишусь здесь, раз тема попала на глаза.
сдача в эксплуатацмю была сделана во время. в основе остался же этот код.
немного изменял позже. но вот не понял, отчего первое время все было плачевно.
возможно в памяти переменные пересекались или софт барахлил. я работал с двумя компами PG и HP офисный.
ПОмню постоянно лезли ошибки временного штампа.
к сожалению все выветрелось за время работы на другом месте.
Ответить

Вернуться в «Общие вопросы»