Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить

Модернизация ПИД-регулирования

Вс мар 03, 2024 11:10:55

Здравствуйте уважаемые радиокоты! Пытаюсь усовершенствовать алгоритм ПИД-регулирования, в конкретном случае для стабилизации температуры нижнего подогревателя плат. В сети есть готовые проектики и несколько библиотек ПИД-регулирования, и даже есть онлайн симуляторы для подбора коэффициентов. Но в моем случае ни один из алгоритмов почему-то не подходит. В моем случае слишком большая инерционность подогревателя. Возможно я никак не могу совладать с коэффициентами, либо нужно добавить еще один коэффициент, который будет учитывать большую инерционность. Вроде бы коэффициент Kd должен отвечать за это, но с ним только еще больше идет "раскачка". ПИД хорошо подходит для быстрых регулирований, моторчик станка, или квадрокоптера, а вот с нагревателем, у которого большая инерционность - не очень подходит. Вернее устаканивание будет длиться час не меньше, вместо пол минуты....
В общем, суть дополнительного коэффициента, по моему мнению, должна заключаться в анализировании инерционности и мгновенной подстройке обычного ПИД-регулирования. Я вижу это так: контроллер начинает (согласно заданным ПИД-коэффициентам) выдавать сигнал на нагрев, и с датчика температуры анализирует разбег запаздывания. Проще говоря, дали максимальный сигнал, и как только температура начала возрастать, сразу же отключить сигнал, и проанализировать, через какое время температура перестанет возрастать, а потом уже учитывая эту задержку заблаговременно отключать/ включать ПИД-контроль.
А то получается, что задаю температуру, например 40 градусов и сигнал на нагреватель шпарит безостановочно ровно до достижения 40 градусов, потом отключает сигнал, а нагреватель постепенно раскаляется аж до 100 градусов. Мне то понятно, что надо было заранее отключать сигнал нагрева, а вот ПИД-у почему то это неведомо.
Кто что думает на счет этого? Может в коде или в бибилиотеке подправить какую-то временную составляющую (dt какую-нибудь)? Или реально нужен для этого еще один коэффициент?
PS: Не очень силен в программировании, только начинаю знакомиться с СИ++. Если нужно, могу скинуть код, с которым я работаю.

Re: Модернизация ПИД-регулирования

Пн мар 04, 2024 00:15:40

Олегыч1 писал(а):Кто что думает на счет этого?
"Автоматчики" по сему поводу не думают, а знают - ПИД регулятор на МК :facepalm: для простого нагревателя можно, но не нужно.
Для подобных случаев есть принцип "с предварением" по регулированию. И реализация сего - "два гвоздя". Учите матчасть.
И ежели оченно хочется, то именно данный принцип можно реализовать и программно на МК, но зачем такие сложности?

Re: Модернизация ПИД-регулирования

Пн мар 04, 2024 00:54:50

Что за принцип с "предварением"? Не могли бы Вы поподробнее об этом принципе?
Я выбрал способ на микроконтроллере в целях освоения языка СИ++ и моделирования с помощью ардуино. Ну и как раз конкретная задача имеется. В общем, Вы хотите сказать, что все-таки обычного ПИД-регулирования безо всяких моих дополнительных коэффициентов будет достаточно?

Re: Модернизация ПИД-регулирования

Пн мар 04, 2024 01:07:39

http://we.easyelectronics.ru/Theory/pid ... tikov.html

Re: Модернизация ПИД-регулирования

Пн мар 04, 2024 06:05:18

Олегыч1 писал(а): В моем случае слишком большая инерционность подогревателя. Возможно я никак не могу совладать с коэффициентами

Просто вы не умеете их рассчитывать.
Вложения
30-33.pdf
(271.2 KiB) Скачиваний: 36

Re: Модернизация ПИД-регулирования

Пн мар 04, 2024 06:23:35

Китайские рексы по обзорам сами настраиваются после нескольких прогонов. Едут два штуки один уже в короьке ждет пристройства

Re: Модернизация ПИД-регулирования

Пн мар 04, 2024 11:41:58

Вроде нашел пару моментов, которым стоит уделить внимание:
1) Период (шаг воздействия и считывания).
2) Оказывается коэффициенты можно делать и отрицательными. А я это вообще упустил))
Радиокоты, спасибо! Как всегда выручаете! 8) :beer:
Попробую на этот раз с осознанием сути дела поиграть с коэффициентами.

Re: Модернизация ПИД-регулирования

Вс мар 17, 2024 02:38:02

Олегыч1, а чем вы собрались паять при 40 град., галлием? Попробуйте выставить нормальную температуру низа 160 град., может и проскакивать не будет. Пользуюсь REX-C100 (сделан на MG82F6D17AT20, типа 8051), доволен. Внутри есть 5ти-контактный технологический разъем для коннекта с контроллером (вернее отверстия под него), но я не знаю, чем и как это сделать, и не закрыт ли он на чтение.
vlasovzloy, а у вас какие рексы?

Re: Модернизация ПИД-регулирования

Вс мар 17, 2024 06:39:28

Я не разбирал. Да наверно такие же
https://aliexpress.ru/item/32857142330.html

Re: Модернизация ПИД-регулирования

Пн мар 18, 2024 00:04:22

Олегыч1 писал(а):Что за принцип с "предварением"? Не могли бы Вы поподробнее об этом принципе?
Могу. Но полагаю, что мне не обязательно перепечатать, что вам можно найти и прочитать самому?
Вот когда дойдёт до реализации того, что вы поняли и с без МК, тогда можно и поговорить.
Кстати это ещё имеет и название - "изодром" и для простых случаев часто самонастраивающийся.

Re: Модернизация ПИД-регулирования

Ср мар 20, 2024 21:34:15

Олегыч1, а чем вы собрались паять при 40 град., галлием?
Не, просто очень долго ждать, если проскочит температуру. Неудобно подбирать коэффициенты. В общем не получается нормально подобрать. Первый разогрев всегда проскакивает за 100 градусов, при настроенных на 40. А потом уже при остывании система легонько поддает, и пролетает уже градусов на 5 выше заданной. Но первый пролет я не знаю уже как нивелировать. Так и хочется добавить в код: первый разогрев работает 5 секунд, а потом наглухо отключается на 30 секунд, а далее вступает режим работы ПИД...

Re: Модернизация ПИД-регулирования

Ср мар 20, 2024 22:30:39

Один датчик на нагревателе (максимальная допустимая), второй - на рабочей поверхности.
Нагревателю ставим рабочую температуру чуток выше температуры поверхности панели.
Далее подбираем автоматическое выравнивание...
:roll:

Re: Модернизация ПИД-регулирования

Чт мар 21, 2024 20:24:38

BOB51, вариант хороший, но важно сделать только с одним датчиком. Я то понимаю, что набор температуры происходит с большим запозданием примерно в 10-15 секунд, Почему способ ПИД этого никак не поймет?

Re: Модернизация ПИД-регулирования

Чт мар 21, 2024 21:52:28

Олегыч1 писал(а):Почему способ ПИД этого никак не поймет?
Потому что ПИД - это некий принцип регулирования, а не как вы его себе представляете в виде волшебного: "автоматическое выполнение (и наверное до интуитивного понимания :) ) ваших хотелок".
Ладно вы не хотите что-то там читать, но пред выбором ПИД регулятора, хотя бы выясните что воно такЭ и для чего. И никакие коэффициенты именно в ПИД регуляторе вашу задачу не решат. Он не умеет подстраиваться подо что-то, только чёткое выполнение заложенного принципа. Всё!

Re: Модернизация ПИД-регулирования

Пт мар 22, 2024 05:53:57

И никакие коэффициенты именно в ПИД регуляторе вашу задачу не решат. Он не умеет подстраиваться подо что-то, только чёткое выполнение заложенного принципа.

Сам регулятор ПИД конечно нет. Но программа автонастройки ПИД (autotuning) может помочь. Правда, эти программы умеют делать очень и очень немногие. По крайней мере я как-то попытался попользоваться несколькими такими автотюнингами с github и получил полнейший бред.

Олегыч1, если у Вас проблема только с запуском и нет проблем с рабочим процессом, то вместо танцев с бубнами с подбором коэффициентов ПИД удобнее использовать коррекцию процесса первоначального нагрева. Для этого достаточно снять несколько кривых разогрева и сформировать на их основе соответствующие таблицы регулирования при запуске.

Re: Модернизация ПИД-регулирования

Пт мар 22, 2024 06:37:28

Олегыч1 писал(а):Почему способ ПИД этого никак не поймет?

Потому что вы идёте не правильным путём: вместо предварительного вычисления коэффициентов и их уточнения в процессе работы, вы пытаетесь тупо подобрать их. Ваша неудача типична и описана во всех пособиях по настройке ПИД.

Выведите 5 графиков: температуру, управляющее воздействие, П, И и Д составляющие, тогда, возможно, станет понятно, что не так с регулятором.

Re: Модернизация ПИД-регулирования

Пт мар 22, 2024 11:15:36

Ёжли охота с одним датчиком работать то обычным является использование алгоритма с промежуточными контрольными точками.
Добегаем до первой на полной мощности нагревателя, сбрасываем мощность на половину и выдерживаем стабилизацию этой точки. Затем уже с половинной мощностью идем к следующему значению. И так до полной стабилизации режима уже с рабочей температурой.
8)

Re: Модернизация ПИД-регулирования

Пт мар 22, 2024 14:22:00

BOB51, мысль правильная, но почему до половины, а не до трети? Или до 0,8956432 от заданного значения? 8)

Re: Модернизация ПИД-регулирования

Сб мар 23, 2024 10:38:45

Зависит от термоинерционности системы.
Т. Е. На сколько градусов будет "проскок" после остановки в контрольной точке. Затем какой размах при стабилизации (пара циклов отключения) и по полученному идем дальше.
Собственно можно ограничиться величиной "проскока" плюс десяток градусов как первый останов.
Подбор по данным после испытаний конкретного нагревателя и плиты.
8)

Re: Модернизация ПИД-регулирования

Сб мар 23, 2024 22:20:02

ART_ME
Для этого достаточно снять несколько кривых разогрева и сформировать на их основе соответствующие таблицы регулирования при запуске.
Дорогой товарищ и прочие иже с вами "изобретатели велосипедов" :) - уже писАл, для подобного это всё уже изобретено и ещё в безМКовую эру. 8)
А для описанного нагревателя тем более - МК там нафик не нужна, всё значительно (даже до смешного) проще.
Ответить