PIDcontrol.narod.ru Автор: avr123.nm.ru В
различных системах автоматического регулирования, в электроприводе,
в промышленности, в робототехнике - применяют ПИД
регулирование управляющего воздействия (УВ) на объект регулирования
(ОР). Например управляющим воздействием может быть величина силы
воздействующий на объект положение которого (координату, расстояние
до чего либо) нужно отрегулировать. УВ может
быть и величина
PWM ШИM
питания электродвигателя скорость или момент которого нужно
регулировать. УВ ПИД регулятора состоит из суммы
трех слагаемых: Ошибка (Err) - это разность между измеренным реальным параметром (РП) и требуемым параметром (ТП) объекта регулирования. ТП задается системе регулирования извне - например "переместить объект регулирования (ОР) в точку 20", если сейчас реально измеренное положение (РП) объекта регулирования показывает что он находится в точке 15 то ошибка составляет: Err = 20 - 15 = 5 Реальное значение регулируемого параметра (РП) измеряют непосредственно (например при регулировании напряжения или тока можно с помощью АЦП измерить регулируемое напряжение или напряжение на резисторе через который протекает интересующий нас ток) или вычисляют по другим данным - например скорость вращения вала мотора или колеса можно определить по времени между изменениями сигналов с датчика или энкодера вращения. Важно чтобы частота поступления информации о РП была достаточной для обеспечения заданной точности регулирования. Настраивают ПИД регулятор задавая индивидуальные для каждого из трех компонентов коэффициенты пропорциональности - обычно их обозначают так: Kp для П, Ki для И, Kd для Д Теперь можно записать алгоритм ПИД регулятора в псевдокоде, который нужно выполнять с заданной периодичностью - например каждые 20 милиСек - это время обозначим t_step /**************
Делать каждые 20 мС ***********************/ Примечание: параметр t_step можно исключить из повторяющихся вычислений заранее скорректировав коэффициенты Ki и Kd в t_step раз. Почему же применяют ПИД регулятор, а не просто пропорциональный (П) регулятор - т.е. не просто создают УВ пропорциональное ошибке а что-то мудрят еще с И и Д ? Дело в том, что в реальных системах Kp приходиться выбирать достаточно большим для достаточно быстрого реагирования на ошибку и для преодоления трения и аналогичных потерь мешающих точной установке ОР, при этом ОР имеет не нулевую скорость изменения РП при снижении ошибки до нуля и по инерции проскакивает нужное положение - происходит перерегулирование (ПРР) - ошибка меняет знак и начинает расти, сразу же растет и УВ стремясь снова свести ошибку к нулю - возникает колебательный процесс. Введение Д компонента, пропорционального скорости изменения ошибки, позволяет заблаговременно начать активное "торможение" ОР и уменьшить или вовсе исключить ППР. А компонент И позволяет регулятору преодолевать силу трения или аналогичное сопротивление и достигать долговременно нулевой ошибки.
Литература, примеры и ссылки по ПИД регулированию:
2) Скачать КНИГИ по технике и электронике можно там 3) Вы можете попробовать работу ПИД регулятора и влияние коэффициентов на характер регулирования в симуляторе PROTEUS - в его примерах, в папке Proteus\SAMPLES\VSM MPLAB Viewer\App Notes\AN696 реализован апноут AN696 - "servo привод с квадратурным энкодером и ПИД регулятором". 4) Вот проектировани и он-лайн анимация ПИД регулятора - "Пример проектирования дискретного ПИД-регулятора с применением инструментария моделирующих пакетов" посмотрите ! это интересно и написано понятно. 5) ПИД регуляторы применяют в стабилизации перевернутых маятников - inverted pendulum - есть очень толковый апноут AN964 в котором настройка ПИД описана и коэффициенты ПИД устанавливаются переменными резисторами и много интересного видео на YouTube - такой же принцип используется в балансирующих роботах и в Segway. 6) Исходники ПИД регулирования на Си для AVR есть в апноутах по электроприводу с различными типами моторов AVR447 AVR449 AVR49x и на форуме RoboForum. На форуме можно задать вопросы и сделать замечания по данному материалу после рагистрации. 2008-12-22
|