Quantum1 0 December 23, 2022 Posted December 23, 2022 · Report post Добрый день, товарищи! Вопрос очень конечно смешной, но я пока для себя ответа не нашел нигде, хотя прочитал кучу всего под ПИДам. Собственно в интегральной составляющей копиться ошибка, т.е. отличие текущего от целевого значения Но представим случай сигнал стоит в целевом, и тут ему целевое меняется на бОльшее значение, регулятор отрабатывает и копит ошибку до тех пор пока он не достигнет нового целевого. А теперь представим, что мы отлично подобрали коэффициенты и наш сигнал очень плавно подходит к целевому, практически без перерегулирования или с малым. Т.е. у нас в интеграле накоплена огромная ошибка допустим плюсовая, которая не сможет обнулиться т.к. сигнал очень малое время находится выше целевого значения, т.е. в зоне отрицательного роста интегральной части.... В итоге у нас сигнал в целевом значении, а интеграл совсем еще не ноль... Как он обнуляется? Ведь все три составляющие ПИДа должны стремиться к нулю, при достижении целевого значения? Простите за смешной вопрос. Quote Share this post Link to post Share on other sites More sharing options...
Rst7 5 December 23, 2022 Posted December 23, 2022 · Report post 30 minutes ago, Quantum1 said: Ведь все три составляющие ПИДа должны стремиться к нулю, при достижении целевого значения? Интегральная - нет. Потому что она компенсирует DC-составляющую ошибки. Представьте себе груз, поднимаемый двигателем до нужной точки. Вот когда все придет в устойчивое состояние, то в интеграторе будет значение, соответствующее весу груза. Чем больше вес, тем больше нужен мотору момент, чтобы груз не съехал, тем больше будет значение в интеграторе. А ошибка уже да, будет равна нулю, как и P-звено. И D-звено будет равно 0, потому что никто никуда уже не едет, просто удерживает. Quote Share this post Link to post Share on other sites More sharing options...
quark 49 December 23, 2022 Posted December 23, 2022 · Report post 38 минут назад, Quantum1 сказал: Собственно в интегральной составляющей копиться ошибка, т.е. отличие текущего от целевого значения В интегральной составляющей копится не ошибка, а интегральная "поправка" к управляющему сигналу. Ошибка (сигнал рассогласования) - это разность между задающим сигналом (так называемой, "уставкой") и реальным значением регулируемой величины, получаемым через обратную связь. Задающий сигнал, реальное значение, сигнал рассогласования и управляющий сигнал - разные вещи. Quote Share this post Link to post Share on other sites More sharing options...
Quantum1 0 December 23, 2022 Posted December 23, 2022 · Report post 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*ошибку... Quote Share this post Link to post Share on other sites More sharing options...
Rst7 5 December 23, 2022 Posted December 23, 2022 · Report post 12 minutes ago, Quantum1 said: этот интеграл(ну т.е. управляющий сигнал в покое) должен быть одинаков хоть ПИД у нас удерживает груз, хоть дядя вася примерно ручку подкрутил подобрав значение, что бы груз не падал... Ну если дядя Вася заменяет собой интегральное звено (т.е. на выход суммируются не P, D и I звенья, а P, D и ручка, которую крутят), то именно так. Но если на выходе у нас сумма P, D, I и дяди Васи, то в установившемся режиме в интеграторе будет разность между требуемым воздействием для равновесия груза и ручкой. Т.е. то, что дядя Вася недокомпенсирует, возьмет на себе I-звено. Quote Share this post Link to post Share on other sites More sharing options...
Quantum1 0 December 23, 2022 Posted December 23, 2022 (edited) · Report post 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) Edited December 23, 2022 by Quantum1 Quote Share this post Link to post Share on other sites More sharing options...
Rst7 5 December 23, 2022 Posted December 23, 2022 · Report post Да Quote Share this post Link to post Share on other sites More sharing options...
quark 49 December 23, 2022 Posted December 23, 2022 · Report post 1 час назад, Rst7 сказал: Ну если дядя Вася заменяет собой интегральное звено (т.е. на выход суммируются не P, D и I звенья, а P, D и ручка, которую крутят), то именно так. Но если на выходе у нас сумма P, D, I и дяди Васи, то в установившемся режиме в интеграторе будет разность между требуемым воздействием для равновесия груза и ручкой. Т.е. то, что дядя Вася недокомпенсирует, возьмет на себе I-звено. В классическом случае, дядя Вася только уставку крутит - задает желаемое значение. А управляющий сигнал вычисляется по сигналу рассогласования в виде суммы P+I+D. Но можно в эту сумму и уставку еще добавать (дядю Васю) со своим коэффициентом. В некоторых случаях, результат получается лучше - быстрее реакция регулятора на изменение уставки. Ну а по хорошему, нужно ограничивать скорость изменения уставки. То есть уставка, которую непосредственно крутит дядя Вася, прежде чем попасть в регулятор фильтруется. И для вычисления рассогласования используется уже отфильтрованное значение. В этом случае, резкие изменения уставки и, связанные с этим, большие значения сигнала рассогласования, становятся невозможны. И регулятор успевает плавно вывести регулируемую величину к новому значению. Quote Share this post Link to post Share on other sites More sharing options...
Rst7 5 December 23, 2022 Posted December 23, 2022 · Report post 18 minutes ago, quark said: В классическом случае, дядя Вася только уставку крутит - задает желаемое значение. Ну мы сейчас про дядю Васю, заменяющего ПИД. 18 minutes ago, quark said: Но можно в эту сумму и уставку еще добавать (дядю Васю) 18 minutes ago, quark said: Ну а по хорошему, нужно ограничивать скорость изменения уставки. Это уже все последующие улучшения. Как и, например, разнообразные способы ограничения I-звена. И много всяких других костылей есть. Quote Share this post Link to post Share on other sites More sharing options...
yamantau 16 December 23, 2022 Posted December 23, 2022 · Report post Нужно различать объекты управления с самовыравниванием и без самовыравнивания, т.е. где то будет статическая ошибка, где то нет. Quote Share this post Link to post Share on other sites More sharing options...
Rst7 5 December 23, 2022 Posted December 23, 2022 · Report post 2 minutes ago, yamantau said: Нужно различать объекты управления с самовыравниванием и без самовыравнивания, т.е. где то будет статическая ошибка, где то нет. А зачем? PID-регулятор для того и устроен, чтобы не париться с этой самой статической только не ошибкой, а воздействием. Нужно оно - будет не ноль в I-звене, не нужно - в I-звене будет 0. Quote Share this post Link to post Share on other sites More sharing options...
yamantau 16 December 23, 2022 Posted December 23, 2022 · Report post 18 минут назад, Rst7 сказал: А зачем? PID-регулятор для того и устроен, чтобы не париться с этой самой статической только не ошибкой, а воздействием. Нужно оно - будет не ноль в I-звене, не нужно - в I-звене будет 0. Простите если ввел в заблуждение, ответ был ТСу на вот это " Ведь все три составляющие ПИДа должны стремиться к нулю, при достижении целевого значения? " Quote Share this post Link to post Share on other sites More sharing options...
Quantum1 0 December 23, 2022 Posted December 23, 2022 · Report post У меня вообще задача следующая - нужно прецизионно поддерживать температуру тела с малой теплоёмкостью, при не самой стабильной сети питания нагревателя. В итоге думаю каскадировать два ПИДа, в первом уставка это температура, а выход с ПИДа это мощность нагрева. Во втором ПИДе уставка это мощность нагрева от первого, а выход это управление нагревателем. Т.е. при изменении сети питания сначала отработает второй ПИД, подтянув мощность по сути ещё до того как это с кажется на изменении температуры. Quote Share this post Link to post Share on other sites More sharing options...
Rst7 5 December 23, 2022 Posted December 23, 2022 · Report post 11 minutes ago, Quantum1 said: В итоге думаю каскадировать два ПИДа Не надо так делать. Будете мучаться со стабильностью. Сделайте лучше вот что. Оцените примерно вид функции PWM=f(Uпитания). Это может быть линейная функция, может быть набор табличных значений. И сделайте управление PWM=PID(Tтекущая,Tуставки)+f(Uпитания) Будет куда веселее работать. Ну и дальше напрашивается классика самообучения - если f(U) сделана таблицей, то можно подобучить на ходу, добавив после расчета PID коррекцию f[U]+=I*k , где k - маленький коэффициент, определяющий скорость обучения, I - значение интегратора. Quote Share this post Link to post Share on other sites More sharing options...
quark 49 December 23, 2022 Posted December 23, 2022 · Report post 6 минут назад, Quantum1 сказал: У меня вообще задача следующая - нужно прецизионно поддерживать температуру тела с малой теплоёмкостью, при не самой стабильной сети питания нагревателя. В итоге думаю каскадировать два ПИДа, в первом уставка это температура, а выход с ПИДа это мощность нагрева. Во втором ПИДе уставка это мощность нагрева от первого, а выход это управление нагревателем. Т.е. при изменении сети питания сначала отработает второй ПИД, подтянув мощность по сути ещё до того как это с кажется на изменении температуры. Зачем так сложно? Измеряйте сетевое напряжение и вычисляйте корректирующий коэффициент. На него потом умножите управляющий сигнал. Да, зависимость может быть не точно линейной. Но остальное - ПИД-регулятор подправит... Quote Share this post Link to post Share on other sites More sharing options...