Комментарии 82
К сожалению, довольно поверхностно знаком с ТАУ, но стараюсь изучать, так как тема полезная. У меня такой вопрос, а какие ещё существуют(и более-менее нередко используются в промышленности) виды регуляторов, которые могут работать оптимальнее пресловутого ПИД? Я изучал основы ТАУ применительно к импульсным преобразователям, и там в передаточной функции некоторых топологий есть ноль в правой полуплоскости. И вроде бы именно цифровые методы управления в этом случае решают проблему. Но, к сожалению, мне не попалось описания реализации этих цифровых регуляторов.
Какие то маленькие коэффицинты ПИД регулятора. Если задать Kp=300, Kd=80, Ki=0 (интеграл тут нафиг не нужен, т.к. сам обьект — интегратор), то вполне себе получаю то же время переходного поцесса около 1.2с.
Ki еще обнулите, здесь интеграл только мешает.
поставил Kp=219, Kd=56, Ki=0.
До уровня 0.991добегает за 1.1с.
Первая оптимизаця еще лучше нашла ответ. 0.31 сек!
Да ну? У Вас где то ошибка — скорее всего в ограничении уровня на выходе регулятора. При постоянном входном сигнале = 10 выход объекта до уровня 1.0 минимум за ~0.83с добегает.
Первые два звена — на их выходе будем иметь линейно нарастающий сигнал идущий в положительную область. Далее идет растроение сигнала, причем нижняя ветвь — имеет коэффициент передачи примерно в 20 раз больше чем верхние две, т.е. сигнал на выходе сумматора обязан быть положительным.
P.S. Если верхнюю мешанину свернуть получаем вот такую схему:
а на собранную в симулинке схему можно глянуть?
На выходе интегратора (0.01/p) при наличии на входе объекта единичной функции будет положительный линейно нарастающий сигнал.
Далее идут две параллельные ветви:
1) Два верхних звена с перекрестными связями дадут следующую пф:
W(p) = [ -0.01*0.26*w1-0.04*0.16*w2-(0.16*0.01*2.27+0.26*0.005*0.04)*w1*w2 ] / [1-0.005*2.27*w1*w2],
где:
w1=1/(1.21+p)
w2=1/(0.59+p)
Коэффициент передачи чт ото около -0.018.
2) Самая нижняя ветвь с коэффициентом передачи 0.37.
Итого — реакция на единичную функцию на входе объекта может быть только положительной.
Ну вот теперь все сходится. Если входное воздействие -200 а не +10, то выход объекта побежит в отрицательную сторону в 20 раз быстрее.
Теперь вопрос, чем Вы все таки пытаетесь управлять? П.Ф. объекта регулирования W(p)? или -20*W(p)? и где этот коэффициент -20 в статье?
Там такой текст есть:
" Общая схема объекта вместе с системой управления будет выглядеть так, как показано на рисунке 2. Усилитель со значением – 20, модель исполнительного механизма (опять-таки взятая «as is» из книги В.И. Гостева)."
Если бы я делал модель, я тоже этот усилитель внутри модели поставил бы, но взял как в оригинале, вдруг в этом половой смысл был.
Нда, в самом начале мелким шрифтом :))
вдруг в этом половой смысл был.
… мягко говоря нет слов. Смысл вижу только один — внести путаницу.
P.S. для ограничения ±200 и Kp=210, Kd=56 на уровень 0.991 выходит примерно за 0.5с. Теоретический максимум ~ 0.1с. Ну и те результаты что приведены выше получается что рассчитаны для ограничения выхода ПИД регулятора в 20 раз меньше чем для FL регулятора.
Итого: ПИД с ограничениями управляющего сигнала ±10 вывел объект на режим быстрее чем FL с ограничением ±200. Иронично :)))
Вы бы сделали свое моделирование в Симулинке, тогда можно было бы поиграться…
На сколько я понимаю, там коллектив продвигает свою альтернативу Matlab/Simulink, в которой и выполняется всё моделирование.
Генерация кода под Миландр вот здесь: https://yadi.sk/d/e1TOelC155busw
Также примеры и шаблон кодогенерации под STM32F103RBT
1) https://yadi.sk/d/rbZePLyPEEGbEw
2) https://yadi.sk/d/sT3wifbJaumTeQ
Про Ардуино вот здесь: Мы завели дискуссию в discord https://discord.gg/aAw4Dd на тему совместной работы SimInTech и Arduino. Если это тема для вас интересна, подключайтесь.
Параллельно запущен чат канал в Телеге https://t.me/simintech для общих вопросов.
Ссылка на дискорд с ардуино почему то из хабра не работает, попробую еще раз
https://discord.com/invite/aAw4Dd
Есши не сработает и сейчас тогда только через телегу
Сколько лет вы уже эту книгу мучаете? :)
Ограничивая воздействие, изменяем переходной процесс, увеличивая перерегулирование
При наличии насыщения на выходе рекомендуется вводить anti-windup схемы для интегральной составляющей. Как раз, чтобы не было роста перерегулирования.
Пишу, потому что мы год потратили на разбор и переделку софта для 25-тимегаваттной Сименсовской турбины, блин ))
А так втутри там ПИД-регулятор, причем крайне тупой — наш (мой) намного умнее )
и тоже получу ПИД как лучший регулятор.
Это потому что у Вас объект управления «классический». Т.е. по сути интегратор + звено третьего порядка (если учесть что коэффициенты передачи при верхней части схемы мизерные, то вобще можно сказать что первого порядка). Зачем для управления таким объектом нечеткая логика? Если есть классические методы ТАУ (уже давно разработанные и обкатанные), которые дают результат выше которого не прыгнуть?
Объект не совсем классический, просто модель сильно упрощенная.
Тот объект который мучает в симуляторе автор — классический линейный объект управления, ибо ни одного нелинейного звена я там не вижу :) а в реальности, да, все нелинейно, ну или почти линейно в определенных диапазонах/при определенных условиях.
Реальный регулятор частоты вращения для турбины имеет порядка 1000 настроек, из которых настройки ПИД — малая часть.
Сейчас глянул файлы с настройками для самой свежей турбины мощностью 32 МВт — они занимают 107 килобайт (порядка 1500 настроек).
А вот в систему управления чистых параметров переменных настраиваемых для регулятора блока регулятора ПИД 51 шт. а там еще и блоки KDRK и SWF всего порядка 100 переменных. Но при этом оптимизация работала, и если заменить ПИД на FL, получалось лучше Картинки реальной системы с АЭС которую использовал, для иллюстрации, что там тоже все нелинейно и совсем не упрощенно было.
Есть не единичные примеры, когда все эти накопленные поколениями инженеров костыли в виде деястка ПИДов с переключениями и эвристиками проигрывают вдумчиво сделанному хорошим экспертом алгоритму управления. Но инеженры редко знают что-то за пределами ПИД, ЛКР и Калмана с наблюдателем возмущения, да и то знают не всегда правильно. Отсюда и растут все эти франкенштейны настоящих регуляторов.
Но это не всегда и не везде, сугубо моё личное мнение, а я в газотурбинах не разбираюсь.
Конечно. Я же сказал: "есть не единичные примеры". :)
Но если вы хотите конкретный пример было-стало, то я его описывать не буду, можете не верить. Или вы хотите узнать, какие вообще есть методы используются в индустрии, кроме ПИД?
в каких областях применяются кабинетные идеальные регуляторы
А мне кажется, что вы уже заранее для себя всё решили. Я вас переубеждать не буду.
Просто я видел множество таких алгоритмов от «экспертов», которые прекрасно работали на бумаге и в моделях, но совсем не работали на практике. Например один такой «эксперт» предложил и успешно защищал вариант очень быстрого управления током в инверторе на основе гистерезисного релейного алгоритма (здесь, кстати, тоже этот вариант проскакивал). Только этот «эксперт» не учел, что в реальности в канале измерения тока присутствуют наводки, в том числе от переключения транзисторов на выходе этого релейного регулятора, умертвляющие эту идею в корне — так как регулятор просто начинал колбаситься. Но с фильтрами релейный алгоритм уже не был лучше других.
Так и у вас — симуляция-симуляцией, но на практике далеко не все идеи работоспособны.
Так и у вас — симуляция-симуляцией, но на практике далеко не все идеи работоспособны.
Простите, я не понял, это вы мне ответили? О каких моих симуляциях идёт речь?
У меня есть мнение, что специалисту по управлению проще разобраться в предметной области, чем инженеру-предметнику в теории управления. Тут как с програмистами. :) Но это только мое мнение, а мир удивителен и разнообразен.
а термопара 5 градусов
по паспорту точность термопары +- 2.5 градуса
Это же ±50%! :)
Так модель считала перепад 300 градусов в системе кодиционирования, с турбохолодильником двумя теплообмениками и 3 регуляторами. Он разницу между расчетным и ищмеренным значением, подешил на измеренное. Погрешность модели менее 1% в этом режиме. Я его спорсил а если бы в режиме на выходе 0 градусов? Какая погрешность быда бы.
Возможно, ваш "эксперт" был не тем экспертом? Кто работают с high-gain регулятороми, обычно в курсе их поведения при шумах, области применения, эквивлентном управлении и прочих нюансах. Если что, то релейные алгоритмы очень распространены во многих задачах. Например, отопление.
Конечно не был, но работал в консирукиорском отделе на заводе и принимал нашу модель, составлял отчет. Поэтому чедовеческий фактор важне специализации. Специалист по балистике космических аппаратов, делает испоонителтную систему для алгоритмов управления реакторов, а сейчас предлагает занятся модедирование 3D для молекулярной биологии, и я верю у него получится. А вот тому конструктору с завода бесполезно что то изучать, мне кажется.
А с регуляторами ADRC кто-нибудь работал? Есть хоть какой-нибудь пример, чтобы почитать, как там рассчитывается (моделируется, выпекается, не знаю что ещё) супервайзер?
У меня даже есть код под STM с ADRC регулятором для стабилизации коптера. Только там понятно ноль целых ноль десятых. Куча магических циферок.
Хотя на видео ADRC выглядит ну оооочень внушительно:
Смотришь, и думаешь «Ну блин, ну как?»
Судя по обрывкам статей и вики ADRC это наблюдатель + ПИД.
мимо
Нечеткая логика и конечные автоматы против ПИД-регулятора. Избиение младенцев продолжается