Основной тенденцией в развитии промышленности является создание нового, высокопроизводительного технологического оборудования и агрегатов, позволяющих повысить эффективность производства, и большую роль в этом играет автоматизированный привод.
В связи с тем, что электродвигатели потребляют достаточно большое количество энергии, и стоимость самой энергии постоянно растёт, к устройствам, использующим электродвигатели, предъявляются возрастающие требования по улучшению энергетических и технологических показателей, значительному расширению диапазона мощностей и рабочих скоростей, увеличению быстродействия, перегрузочной способности.
К числу новых подходов, применяемых в системах управления современными электроприводами, относится проектирование этих систем на основе микроконтроллеров с независимыми от ядра периферийными блоками, что позволяет уменьшить задержки и энергопотребление, повысить эффективность и безопасность работы системы. Периферия, независимая от ядра, снижает сложность разрабатываемой системы и позволяет отказаться от многих внешних аппаратных и программных компонентов. Она разгружает ядра на критических секциях алгоритма управления, уменьшает нагрузку на центральный процессор, ускоряет реакцию и увеличивает точность.
Такими характеристиками обладают микроконтроллеры семейства PIC16F161X компании Microchip.
Важной особенностью микроконтроллеров данного семейства является наличие ускорителя математических вычислений (Math ACC) с пропорционально-интегрально-дифференциальным модулем (Proportional-Integral-Derivative, PID). Это позволяет независимо от ядра выполнять вычисления, включая 16-разрядные математические вычисления, необходимые для формирования управляющего сигнала в системах автоматического управления с обратной связью.
Входящий в состав микроконтроллеров математический акселератор является математическим модулем, предназначенным для выполнения различных операций, в большинстве случаях выступая как ПИД- контроллер, который использует текущую ошибку (пропорциональная составляющая), сумму текущей и всех предыдущих ошибок (интегральная), и разницу между текущим и предыдущим изменением (дифференциальная), чтобы исправить их и обеспечить стабильность в системе. Он обеспечивает обратную связь в системе через ряд повторов, используя ошибки, чтобы рассчитать новый вход контроллера [1].
Для реализации ПИД — модуля необходимо определить 3 основных параметра: заданное значение, входное значение модуля, а также параметры К1, К2 и К3.
Заданное значение определяется пользователем на основе разрабатываемой программы и записывается в регистр PIDxSET.
Входное значение ПИД — модуля определяется в зависимости от управляемого процесса. Данное значение записывается в регистр PIDxIN.
Для определения параметров К1, К2 и К3 необходимо рассчитать коэффициенты kp, ki и kd, и период дискретизации Т. Следует отметить, что период дискретизации – это не время одного ПИД — вычисления, поскольку пользователи могут реализовать свои собственные алгоритмы или программы в одну итерацию, и тогда вычисления ПИД — модуля займут малый промежуток времени.
После их определения параметры К1, К2 и К3 рассчитываются по следующим формулам:
Полученные значения сохраняются в PIDxK1, PIDxK2 и PIDxK3 регистрах.
Рисунок. Принципиальная блок-схема ПИД-модуля.
Функционирование модуля в режиме ПИД-регулятора выполнено в виде замкнутой системы: вход от внешней системы поступает в контроллер, а выходной сигнал с контроллера подается обратно во внешнюю систему.
Порядок выполняемых операций показан на рисунке.
Внутри контроллера, в блоке difference (вычитатель) происходит вычитание входного значения (PIDxIN) из заданного значения (PIDxSET) для получения ошибки (Z0). В блоках multiplier (умножитель) происходит умножение ошибки Z0, а также двух предыдущих PIDxZ1 и PID xZ2 на вводимые пользователем коэффициенты (К1 К2 К3), и результаты этих умножений суммируются в блоке adder (сумматор) и поступают в блок accumulator (накопитель). Накопитель используется для накопления выходного сигнала при ПИД регулировании. Следует обратить внимание, что накопитель может переполниться, когда ошибка ПИД — регулятора (уставки, вход ПИД) слишком большая. Существуют определенные обстоятельства, при которых накопитель может легко переполниться. При выборе малого периода дискретизации происходит достаточно быстрое сложение ошибок в короткие сроки, что в конце концов приведет к быстрому изменению входной величины и к большой погрешности [2].
Важной особенностью микроконтроллеров семейства PIC16F161X является то, что он способен сохранять текущее состояние в программной среде и позволяет в дальнейшем его восстановить. Для того, чтобы выполнить это, в настоящее время не должно быть активных вычислений. Сохранению подлежат значения PIDxOUT, PIDxZ1, и PIDxZ2 и текущее состояние ПИД модуля. В зависимости от приложения желательно также сохранить PIDxK1, PIDxK2, PIDxK3, и/или PIDxSET. При желании спустя время, эти значения могут быть записаны в соответствующие регистры, и ПИД продолжит работу с предыдущего состояния.
Следует также отметить, что данные микроконтроллеры имеет развитую систему прерываний. ПИД — модуль имеет два прерывания, обозначенные флагами прерывания PIDxDIF и PIDxEIF в регистре прерываний периферии PIR5. Биты для их разрешения PIDxDIE и PIDxEIE — в регистре разрешения прерываний периферии PIE5. В PIDxDIF прерывание срабатывает после одного успешного расчета. В PIDxEIF прерывание срабатывает, когда есть ошибки в PID — вычислениях, конкретно, есть ошибка переполнения на выходном значении .
На основе описанных функциональных возможностей микроконтроллеров PIC16F161X можно сделать вывод, что их применение в системе управления позволяет сделать ее экономичной за счет снижения энергопотребления, уменьшения сложности и отказа от многих от некоторых программных и аппаратных компонентов, и высокоэффективной за счет использования математического акселератора с ПИД – модулем за счет ускорения математических вычислений , уменьшения размера кода и ПИД — регулирования.
Литература
1. Math accelerator with Proportional-Intergral-Derivative (PID) module. PID — mode setup and operation-PIC16(L)F1615/9 14/20-Pin, 8-bit Flash MCU Data Sheet. //www.microchip.com
2. Hou D. PID control on PIC16F161X by using PID peripheral. TB3136. Режим доступа: http://www.microchip.com//wwwAppNotes