Частота воздействия ПИД

Захват, обработка и генерирование сигнала
Ответить
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 391
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Частота воздействия ПИД

Сообщение taras_33 »

Доброго времени суток. Вообщем с ПИД регулированием в LabVIEW еще не сталкивался, но вот пришлось... Вопрос в следующем, какова оптимальная частота воздействия на объект?
Одно дело, когда требуется поддержание постоянной температуры в печке, замкнутая система которой очень инерционная и совсем другое, когда нужно поддерживать постоянное напряжение на выходе трехфазного генератора, при изменчивой нагрузке. Когда десяток миллисекунд играет большую роль. Вот это как раз мой случай. Имеется cRIO 9066 с модулем NI 9263, выход которого подключен к упавляемому напряжением блоку питания, выход которого в свою очередь соединен с обмоткой возбуждения генератора. Напряжение с выхода генератора подается на NI 9205 истественно пониженное, выпрямленное и отфильтрованное. Может у кого был практический опыт. Вообщем вопрос озвучен выше. Как часто нужно расчитывать (воздействовать) на обмотку возбуждения генератора? Тогда будет решаться где строить PID в RT или FPGA? На данный момент замкнутый цикл построен в Real Time и равен 10 миллисекунд. Работает, но неустойчиво. Подозреваю что в данном случае это очень медленно, хотя возможно я неправ...
Буду признателен за советы. Спасибо.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: Частота воздействия ПИД

Сообщение Andrew Lunev »

taras_33 писал(а):Вопрос в следующем, какова оптимальная частота воздействия на объект?
У меня встречный вопрос. Оптимальная по какому критерию? Чем выше частота, тем всегда выше качество управления. Даже если управляете печкой на частоте 1 МГц, хуже от этого не будет. Просто ресурсы тратятся не рационально, возможно хватило бы контроллера по производительности раз в 1000 ниже и следовательно дешевле. Возникают другие проблемы. Нужен производительней и дороже контроллер, нужно оптимизировать алгоритм по быстродействию (для вас перевод с RT на FPGA), потребление энергии выше на питание контроллера.
Если зададитесь достаточным качеством управления и определите для себя критерий оптимальности, тогда уже можно посчитать минимальную частоту, достаточную для данного объекта. Но без идентификации объекта и без построения математической модели этого не сделать.
Повторюсь, что выше частота всегда приводит к улучшению качества управления при прочих равных условиях. Поэтому постарайтесь выжать из контроллера максимум, снизить частоту всегда сможете, если надо будет.
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 391
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Re: Частота воздействия ПИД

Сообщение taras_33 »

Чем выше частота, тем всегда выше качество управления
С этим не соглашусь, если слишком высокая частота воздествия, то в интегральной составляющей за короткое время накапливается огромная ошибка, которая приводит в "вылетанию" системы, она начинает колебаться с огромной амплитудой около заданного параметра. Это из моего опыта работы с микроконтроллерами, где я использовал ПИД. Тогда был другой генератор и частота управляющего цикла была около 1 кГц. Поэтому под оптимальностью я имел ввиду не рациональность использования cRIO, а именно само значение частоты, при котором система будет наиболее стабильной. В литературе (например вот нашел на wiki URL Перевод статьи "Просто о ПИД-алгоритмах") рекомендуется частота 1/10 - 1/100 от желаемого времени стабилизации системы. Мое "желаемое время" менее секунды, поэтому и выбрал цикл в 10 mS. Получилось как то совсем не устойчиво, начинают закрадываться мысли о том, что алгоритм расчета в LabVIEW отличается от традиционного. Вот и обратился за советом. По поводу контроллера, у него помимо ПИД других задач хватает.
Но без идентификации объекта и без построения математической модели этого не сделать.
Я не теоретик, а больше электронщик нужно почитать что для этого нужно чтобы построить эту самую модель
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Частота воздействия ПИД

Сообщение Jakob Brontfeyn »

Andrew Lunev писал(а):
taras_33 писал(а):Вопрос в следующем, какова оптимальная частота воздействия на объект?
У меня встречный вопрос. Оптимальная по какому критерию? Чем выше частота, тем всегда выше качество управления. Даже если управляете печкой на частоте 1 МГц, хуже от этого не будет. Просто ресурсы тратятся не рационально, возможно хватило бы контроллера по производительности раз в 1000 ниже и следовательно дешевле. Возникают другие проблемы. Нужен производительней и дороже контроллер, нужно оптимизировать алгоритм по быстродействию (для вас перевод с RT на FPGA), потребление энергии выше на питание контроллера.
Если зададитесь достаточным качеством управления и определите для себя критерий оптимальности, тогда уже можно посчитать минимальную частоту, достаточную для данного объекта. Но без идентификации объекта и без построения математической модели этого не сделать.
Повторюсь, что выше частота всегда приводит к улучшению качества управления при прочих равных условиях. Поэтому постарайтесь выжать из контроллера максимум, снизить частоту всегда сможете, если надо будет.
Совершенно согласен, добавлю исходя из собственного
практического опыта, что чем быстрее работает петля
ПИД регулятора тем лучше, даже если П, И, Д, параметры
установленны не оптимально он успевает не допустить
сильного отклонения величины от задания за счет высокой
частоты воздействия.
Естественно, если частота измерения при этом не отстает.
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Частота воздействия ПИД

Сообщение Jakob Brontfeyn »

С десятком милисекунд, что то у Bас не то, один только период
50 герц, это уже 20 миллисекунд.
Ротор генератора имеет большую механическую инерцию
и должен оставаться в синхронизме.
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 391
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Re: Частота воздействия ПИД

Сообщение taras_33 »

Немного не так. Генератор 400Гц (период 2.5 mS) Измеряю я напряжение используя signal conditionerSCM5B33-04D Мотор крутит генератор с постоянной скоростью, у генератора обмотка возбуждения, подавая напряжение в пределах 3 - 10 (зависит от нагрузки) вольт постоянного тока поддерживается напряжение на выходе 120V 400Hz
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Частота воздействия ПИД

Сообщение Jakob Brontfeyn »

http://www.twirpx.com/file/336777/
Коротков В.Ф. Автоматическое управление напряжением и реактивной мощностью синхронных генераторов и электрических станций: учеб. пособие PDF

В оглавлении есть пункт, может стоит его изучить для начала:
........
Микропроцессорные автоматические регуляторы возбуждения нового поколения.
........
Возможно там есть ответы на вопрос

Хотя, это генератор авиационный, там могут быть свои примочки,
да тут еще активная и реактивная составляющие влияет.
Я бы посоветовал сделатьть какую нибудь плавно меняющуюся
активную нагрузку и посмотреть.
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 391
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Re: Частота воздействия ПИД

Сообщение taras_33 »

Спасибо за книгу, буду изучать. Кстати мой генератор также авиационный.
Последний раз редактировалось taras_33 27 авг 2015, 17:29, всего редактировалось 1 раз.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: Частота воздействия ПИД

Сообщение Andrew Lunev »

taras_33 писал(а):С этим не соглашусь, если слишком высокая частота воздествия, то в интегральной составляющей за короткое время накапливается огромная ошибка, которая приводит в "вылетанию" системы, она начинает колебаться с огромной амплитудой около заданного параметра.
Не знаю, какие ПИД-регуляторы вы использовали, но в 100% тех, которые я видел интегрирование происходит методом трапеций. Формула для интегральной составляющей ниже. В ней есть умножение на дельта t, что есть период регулирования. То есть, чем выше частота, тем меньше дельта t. Если взять какой-то интервал времени, то интеграл на нем при разных частотах будет одинаков. Возьмите ошибку e(i) константой для простоты и проверьте. Например за секунду. На частоте 10 Гц у вас будет десять шагов, на частоте 100 Гц будет сто шагов, но прибавка интеграла на каждом шаге при этом будет в 10 раз меньше и в результате в обоих случаях интеграл за секунду будет одинаковым. Чем выше частота, тем точней будет само интегрирование.
Если у вас от увеличения частоты система теряла устойчивость, то скорее всего у вас дельта t была задана как константа и вы ее не меняли при изменении частоты, в этом случае у вас интегральная составляющая изменялась пропорционально частоте, но это все равно, что Ti поменять.
Подробней можно почитать здесь: http://www.ni.com/pdf/manuals/372192d.pdf Раздел 2.
Вложения
PID 01.PNG
PID 01.PNG (9.54 КБ) 9748 просмотров
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 391
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Re: Частота воздействия ПИД

Сообщение taras_33 »

Спасибо почитаю...
Я в своих микроконтроллерных проектах использовал алгоритм попроще:

Kp, Ki, Kd; // коэффициенты регулятора
p_term, i_term, d_term; // составляющие регулятора.
SetPoint, FeedBack; // уставка и обратная связь
error; // переменная для ошибки
sum_error; // переменная для накопления ошибки
last_value; // значение управляющего воздействия примененного прошлый раз

Алгоритм:
error = SetPoint - FeedBack;
sum_error = sum_error + error;

p_term = Kp * error;
i_term = Ki * sum_error;
d_term = Kd * (last_value - FeedBack);

result = p_term + i_term + d_term;
last_value = result;

return (result);

Простой как грабли, но этот алгоритм работает в многих моих микроконтроллерных проектах.
Правда я ограничиваю sum_error определенным значением (подбираю эксперементально) и использую цельно численную арифметику, для ускорения рассчетов.
Планирую увеличить скорость переписав код ПИД в FPGA, благо место еще есть.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: Частота воздействия ПИД

Сообщение Andrew Lunev »

Да уж, проще некуда.
У вас получается частный случай дискретного ПИД-регулятора для частоты контура управления 1 Гц. Для всех других частот он уже работает не корректно. Ну и интегрируете вы прямоугольником, а не трапецией. Это быстрей, но менее точно.

Для частот, отличных от 1 Гц получается, что надо пропорционально частоте менять Kp, Ki, Kd.

У меня очередной вопрос: Как вы подбираете Kp, Ki, Kd?
Если использовать классический алгоритм (как в мануале NI), то Kp, Ki, Kd можно посчитать аналитически или подсмотреть в аналогичном регуляторе, который работает с похожей системой. То есть Kp, Ki, Kd определяются объектом управления и требованиями к переходному процессу и не зависят от контроллера и частоты контура управления. В вашем же случае зависимость от частоты прямая. Если я скажу, что у меня такой же объект с ПИД-регулятором и Kp=10, Ki=5, Kd=3 например работает прекрасно, то какие числа надо подставить в ваш алгоритм?
Если частота не меняется в процессе работы регулятора, то просто заранее в алгоритме пронормируйте Kp, Ki, Kd по частоте (Delta_t):
Kp_norm =Kp;
Ki_norm =Ki*Delta_t;
Kd_norm =Kd/Delta_t;

А дальше в цикле уже используйте их:
i_term = Ki_norm * sum_error;
d_term = Kd_norm * (last_value - FeedBack);
p_term = Kp_norm * error;

Производительность не поменяется, но вы сможете менять частоту и оставлять настройки ПИД-регулятора теми же. А сейчас, если вы например повысили частоту в 10 раз, то это равносильно тому, что вы Кр увеличили в 10 раз. Понятно, что в таком случае динамика изменится кардинально и система может потерять устойчивость.
В том же документе рассказано про доработки ПИД-регулятора для улучшения качества переходного процесса. Страницы с 2-4 по 2-6.
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 391
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Re: Частота воздействия ПИД

Сообщение taras_33 »

По честному, код не мой а подсмотренный здесь, там внизу страницы ссылки на архив, который несколько лет назад я нашел на просторах интернета и использовал. Правда в моем случае он адаприрован для работы на ARM контроллерах (в недалеком прошлом он работал и на PIC)
Как я подбираю Kp, Ki, Kd Зависит от конкретного случая. Для упомянутого генератора примерно так: SetPoint в середину шкалы, скажем 50 вольт. Коэффициенты все в 0, начинаю постепенно увеличивать Кр пока не начинается осциляция. Уменьшаю найденное значение пополам, заодно запоминаю период колебаний. Далее этот период делю пополам - это мой Ki Дефиринциальную состовляющую подбираю экспрементально стараясь уменьшить overshot, ступеньчато увеличивая/уменьшая SetPoint сохранив при этом приемлимую скорость стабилизации. С cRIO это не "прокатывает" поэтому собственно и затеял эту дискуссию...
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Частота воздействия ПИД

Сообщение Jakob Brontfeyn »

taras_33 писал(а):Спасибо за книгу, буду изучать. Кстати мой генератор также авиационный.
Так это я Ваш и имел в виду, в летательных аппаратах
применяется бортовая сеть 115 вольт 400 герц.
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: Частота воздействия ПИД

Сообщение Andrew Lunev »

taras_33 писал(а):По честному, код не мой а подсмотренный здесь
Код не смотрел, но в описании как раз написано:
В дальнейшем эффект от множителей IFactor и DFactor будут зависеть от интервала выборки T.
IFactor = 128 * Kp * (T/Ti)
DFactor = 128 * Kp * (Td/T)
Именно про это я и писал выше.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Частота воздействия ПИД

Сообщение Borjomy_1 »

Можно вопрос: зачем для простой системы PID регулятор городить? P регулятора недостаточно? Ну ладно, пусть даже PI, интегральный коэффициент для выборки смещения. Но диффренциальный то зачем??? Интегральный коэффициент должен быть на порядок меньше пропорционального, иначе система вообще перестает управляться. Дифференциальный еще меньше, он вообще является "предсказателем".
Вам в первую очередь необходимо выяснить граничную полосу пропускания вашей системы регулирования. Для этого снимается частотка контура регулирования. Исходя из этого подбирается частота регулирования. Грубо говоря, если у вас полоса пропускания 1 Гц, то контур с частотой регулировки 100 Гц абсолютно бессмысленен, даже в случае с P регулятором. Даже больше -частоты выше полосы пропускания контура, которые приходят с задатчика в случае с PI и PID регуляторами будут раскачивать систему. Вам это надо?
Ясно, что частотка датчика может быть сильно выше контура управления в целом. Так вот надо их согласовывать.
Ну и напоследок. Оптимальный коэффициент это не 0.5, а 0.7 от коэффициента, на котором система возбуждается.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Обработка сигнала»