Quantum1 1 23 декабря, 2022 Опубликовано 23 декабря, 2022 · Жалоба Добрый день, товарищи! Вопрос очень конечно смешной, но я пока для себя ответа не нашел нигде, хотя прочитал кучу всего под ПИДам. Собственно в интегральной составляющей копиться ошибка, т.е. отличие текущего от целевого значения Но представим случай сигнал стоит в целевом, и тут ему целевое меняется на бОльшее значение, регулятор отрабатывает и копит ошибку до тех пор пока он не достигнет нового целевого. А теперь представим, что мы отлично подобрали коэффициенты и наш сигнал очень плавно подходит к целевому, практически без перерегулирования или с малым. Т.е. у нас в интеграле накоплена огромная ошибка допустим плюсовая, которая не сможет обнулиться т.к. сигнал очень малое время находится выше целевого значения, т.е. в зоне отрицательного роста интегральной части.... В итоге у нас сигнал в целевом значении, а интеграл совсем еще не ноль... Как он обнуляется? Ведь все три составляющие ПИДа должны стремиться к нулю, при достижении целевого значения? Простите за смешной вопрос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 23 декабря, 2022 Опубликовано 23 декабря, 2022 · Жалоба 30 minutes ago, Quantum1 said: Ведь все три составляющие ПИДа должны стремиться к нулю, при достижении целевого значения? Интегральная - нет. Потому что она компенсирует DC-составляющую ошибки. Представьте себе груз, поднимаемый двигателем до нужной точки. Вот когда все придет в устойчивое состояние, то в интеграторе будет значение, соответствующее весу груза. Чем больше вес, тем больше нужен мотору момент, чтобы груз не съехал, тем больше будет значение в интеграторе. А ошибка уже да, будет равна нулю, как и P-звено. И D-звено будет равно 0, потому что никто никуда уже не едет, просто удерживает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 23 декабря, 2022 Опубликовано 23 декабря, 2022 · Жалоба 38 минут назад, Quantum1 сказал: Собственно в интегральной составляющей копиться ошибка, т.е. отличие текущего от целевого значения В интегральной составляющей копится не ошибка, а интегральная "поправка" к управляющему сигналу. Ошибка (сигнал рассогласования) - это разность между задающим сигналом (так называемой, "уставкой") и реальным значением регулируемой величины, получаемым через обратную связь. Задающий сигнал, реальное значение, сигнал рассогласования и управляющий сигнал - разные вещи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Quantum1 1 23 декабря, 2022 Опубликовано 23 декабря, 2022 · Жалоба On 12/23/2022 at 1:35 PM, Rst7 said: Интегральная - нет. Потому что она компенсирует DC-составляющую ошибки. Представьте себе груз, поднимаемый двигателем до нужной точки. Вот когда все придет в устойчивое состояние, то в интеграторе будет значение, соответствующее весу груза. Чем больше вес, тем больше нужен мотору момент, чтобы груз не съехал, тем больше будет значение в интеграторе. А ошибка уже да, будет равна нулю, как и P-звено. И D-звено будет равно 0, потому что никто никуда уже не едет, просто удерживает. Ой... вей... благодарю, теперь все понятно! Я просто был уверен что ПИД выдает из себя поправку к сигналу управления, а он же выдает сам сигнал управления! Ну т.е. этот интеграл это просто грубо говоря сам сигнал. Для вашего примера - этот интеграл(ну т.е. управляющий сигнал в покое) должен быть одинаков хоть ПИД у нас удерживает груз, хоть дядя вася примерно ручку подкрутил подобрав значение, что бы груз не падал... On 12/23/2022 at 2:04 PM, quark said: В интегральной составляющей копится не ошибка, а интегральная "поправка" к управляющему сигналу. Ошибка (сигнал рассогласования) - это разность между задающим сигналом (так называемой, "уставкой") и реальным значением регулируемой величины, получаемым через обратную связь. Задающий сигнал, реальное значение, сигнал рассогласования и управляющий сигнал - разные вещи. Но ведь ... поправка = Ki*ошибку... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 23 декабря, 2022 Опубликовано 23 декабря, 2022 · Жалоба 12 minutes ago, Quantum1 said: этот интеграл(ну т.е. управляющий сигнал в покое) должен быть одинаков хоть ПИД у нас удерживает груз, хоть дядя вася примерно ручку подкрутил подобрав значение, что бы груз не падал... Ну если дядя Вася заменяет собой интегральное звено (т.е. на выход суммируются не P, D и I звенья, а P, D и ручка, которую крутят), то именно так. Но если на выходе у нас сумма P, D, I и дяди Васи, то в установившемся режиме в интеграторе будет разность между требуемым воздействием для равновесия груза и ручкой. Т.е. то, что дядя Вася недокомпенсирует, возьмет на себе I-звено. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Quantum1 1 23 декабря, 2022 Опубликовано 23 декабря, 2022 (изменено) · Жалоба On 12/23/2022 at 4:53 PM, Rst7 said: Ну если дядя Вася заменяет собой интегральное звено (т.е. на выход суммируются не P, D и I звенья, а P, D и ручка, которую крутят), то именно так. Я имею ввиду интегральное звено в установившимся режиме, т.е. в статике, когда P и D = 0 ну т.е. грубо говоря если к примеру для удержания груза нужно подать ШИМ с заполнением 45%. То к этим 45% придет и ПИД регулятор(в котором I =45%, P и D =0) и просто дядя вася с ручкой(без всякого P и D) Изменено 23 декабря, 2022 пользователем Quantum1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 23 декабря, 2022 Опубликовано 23 декабря, 2022 · Жалоба Да Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 23 декабря, 2022 Опубликовано 23 декабря, 2022 · Жалоба 1 час назад, Rst7 сказал: Ну если дядя Вася заменяет собой интегральное звено (т.е. на выход суммируются не P, D и I звенья, а P, D и ручка, которую крутят), то именно так. Но если на выходе у нас сумма P, D, I и дяди Васи, то в установившемся режиме в интеграторе будет разность между требуемым воздействием для равновесия груза и ручкой. Т.е. то, что дядя Вася недокомпенсирует, возьмет на себе I-звено. В классическом случае, дядя Вася только уставку крутит - задает желаемое значение. А управляющий сигнал вычисляется по сигналу рассогласования в виде суммы P+I+D. Но можно в эту сумму и уставку еще добавать (дядю Васю) со своим коэффициентом. В некоторых случаях, результат получается лучше - быстрее реакция регулятора на изменение уставки. Ну а по хорошему, нужно ограничивать скорость изменения уставки. То есть уставка, которую непосредственно крутит дядя Вася, прежде чем попасть в регулятор фильтруется. И для вычисления рассогласования используется уже отфильтрованное значение. В этом случае, резкие изменения уставки и, связанные с этим, большие значения сигнала рассогласования, становятся невозможны. И регулятор успевает плавно вывести регулируемую величину к новому значению. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 23 декабря, 2022 Опубликовано 23 декабря, 2022 · Жалоба 18 minutes ago, quark said: В классическом случае, дядя Вася только уставку крутит - задает желаемое значение. Ну мы сейчас про дядю Васю, заменяющего ПИД. 18 minutes ago, quark said: Но можно в эту сумму и уставку еще добавать (дядю Васю) 18 minutes ago, quark said: Ну а по хорошему, нужно ограничивать скорость изменения уставки. Это уже все последующие улучшения. Как и, например, разнообразные способы ограничения I-звена. И много всяких других костылей есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yamantau 15 23 декабря, 2022 Опубликовано 23 декабря, 2022 · Жалоба Нужно различать объекты управления с самовыравниванием и без самовыравнивания, т.е. где то будет статическая ошибка, где то нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 23 декабря, 2022 Опубликовано 23 декабря, 2022 · Жалоба 2 minutes ago, yamantau said: Нужно различать объекты управления с самовыравниванием и без самовыравнивания, т.е. где то будет статическая ошибка, где то нет. А зачем? PID-регулятор для того и устроен, чтобы не париться с этой самой статической только не ошибкой, а воздействием. Нужно оно - будет не ноль в I-звене, не нужно - в I-звене будет 0. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yamantau 15 23 декабря, 2022 Опубликовано 23 декабря, 2022 · Жалоба 18 минут назад, Rst7 сказал: А зачем? PID-регулятор для того и устроен, чтобы не париться с этой самой статической только не ошибкой, а воздействием. Нужно оно - будет не ноль в I-звене, не нужно - в I-звене будет 0. Простите если ввел в заблуждение, ответ был ТСу на вот это " Ведь все три составляющие ПИДа должны стремиться к нулю, при достижении целевого значения? " Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Quantum1 1 23 декабря, 2022 Опубликовано 23 декабря, 2022 · Жалоба У меня вообще задача следующая - нужно прецизионно поддерживать температуру тела с малой теплоёмкостью, при не самой стабильной сети питания нагревателя. В итоге думаю каскадировать два ПИДа, в первом уставка это температура, а выход с ПИДа это мощность нагрева. Во втором ПИДе уставка это мощность нагрева от первого, а выход это управление нагревателем. Т.е. при изменении сети питания сначала отработает второй ПИД, подтянув мощность по сути ещё до того как это с кажется на изменении температуры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 23 декабря, 2022 Опубликовано 23 декабря, 2022 · Жалоба 11 minutes ago, Quantum1 said: В итоге думаю каскадировать два ПИДа Не надо так делать. Будете мучаться со стабильностью. Сделайте лучше вот что. Оцените примерно вид функции PWM=f(Uпитания). Это может быть линейная функция, может быть набор табличных значений. И сделайте управление PWM=PID(Tтекущая,Tуставки)+f(Uпитания) Будет куда веселее работать. Ну и дальше напрашивается классика самообучения - если f(U) сделана таблицей, то можно подобучить на ходу, добавив после расчета PID коррекцию f[U]+=I*k , где k - маленький коэффициент, определяющий скорость обучения, I - значение интегратора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quark 48 23 декабря, 2022 Опубликовано 23 декабря, 2022 · Жалоба 6 минут назад, Quantum1 сказал: У меня вообще задача следующая - нужно прецизионно поддерживать температуру тела с малой теплоёмкостью, при не самой стабильной сети питания нагревателя. В итоге думаю каскадировать два ПИДа, в первом уставка это температура, а выход с ПИДа это мощность нагрева. Во втором ПИДе уставка это мощность нагрева от первого, а выход это управление нагревателем. Т.е. при изменении сети питания сначала отработает второй ПИД, подтянув мощность по сути ещё до того как это с кажется на изменении температуры. Зачем так сложно? Измеряйте сетевое напряжение и вычисляйте корректирующий коэффициент. На него потом умножите управляющий сигнал. Да, зависимость может быть не точно линейной. Но остальное - ПИД-регулятор подправит... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться