Упрощение процесса настройки ПИД-регулятора
Настройка ПИД-регулятора на первый взгляд кажется простой операцией, ведь требуется определить значения всего трех коэффициентов усиления: пропорциональной, интегральной и дифференциальной составляющих. Но на практике определение набора коэффициентов усиления, обеспечивающих наилучшую работу замкнутой системы, представляет собой сложную задачу. Традиционно ПИД-регуляторы настраивают вручную или с помощью формализованных итеративных процедур. Ручные методы отнимают много времени, а если они применяются к реальному оборудованию, то возможно его повреждение. Формализованные итеративные процедуры не всегда совместимы с неустойчивыми объектами, объектами высокого порядка, а также с объектами с малой постоянной времени. При работе с ПИД-регулятором также необходимо решать такие задачи проектирования, как дискретизация по времени и масштабирование для арифметики с фиксированной точкой.
Четырехзвенный шарнирный механизм: синтез системы управления
Четырехзвенный шарнирный механизм (рис. 1) имеет широкий спектр применения. Например, он используется в подвеске автомобилей, исполнительных механизмах роботов и шасси самолетов.
Система управления состоит из двух контуров: контура прямой связи и ПИД-регулятора в контуре управления обратной связи. Регулятор управления прямой связи инвертирует динамику объекта — он обрабатывает основное движение механизма, учитывая нелинейные характеристики. ПИД-регулятор в контуре обратной связи минимизирует ошибки позиционирования с учетом погрешностей моделирования и внешних возмущений. В этой статье основное внимание уделяется разработке ПИД-регулятора в контуре управления с обратной связью.
При наличии расхождения между желаемым и фактическим углом поворота одного из рычагов ПИД-регулятор получает сигнал ошибки и формирует корректирующее управление крутящим моментом (рис. 2). Это корректирующее управление суммируется с заданием по крутящему моменту, формируемым регулятором прямой связи, и суммарный сигнал используется для управления электродвигателем постоянного тока, который вращает шарнир, соединяющий рычаги. Регулятор должен стабилизировать работу объекта. Он также должен обеспечить малое время отклика и небольшое перерегулирование. Поскольку регулятор будет реализован в 16-разрядном процессоре для обработки данных в арифметике с фиксированной точкой, необходимо применять дискретизацию по времени, а коэффициенты усиления и рассчитываемые сигналы должны иметь соответствующие диапазоны значений.
Синтез замкнутой системы и настройка регулятора
Состоящая из четырех рычагов модель механизма моделируется в SimMechanics, а двигатель постоянного тока моделируется в SimElectronics. Для создания архитектуры регулятора, показанной на рис. 2, следует добавить блок ПИД-регулятора с дискретизацией по времени из библиотеки Simulink Discrete. Теперь, когда система управления с обратной связью создана, можно перейти к настройке регулятора.
Для этого требуется открыть диалоговое окно блока PID Controller («ПИД-регулятор»), указать период дискретизации и нажать кнопку Tune («Настройка»). Откроется окно PID Tuner (рис. 3).
Интерфейс настройки Simulink Control Design линеаризует объект в текущей рабочей точке и строит линейную модель объекта с постоянными параметрами (LTI), с которой взаимодействует блок ПИД-регулятора в замкнутом контуре управления. Вычислительная задержка, связанная с дискретизацией сигнала, учитывается автоматически. Используя метод автоматической настройки, интерфейс Simulink Control Design вычисляет первоначальные коэффициенты усиления ПИД-регулятора. Этот метод не накладывает никаких ограничений на порядок объекта или постоянную времени, причем он работает в областях как непрерывного, так и дискретного времени.
На рис. 4 показана реакция на ступенчатое воздействие в рабочей точке замкнутой системы с первоначальными коэффициентами ПИД-регулятора. Если регулятор работает удовлетворительно, следует нажать кнопку Apply («Применить»), чтобы обновить значения коэффициентов усиления P, I, D и N в диалоговом окне блока PID Controller («ПИД-регулятор»). Затем можно проверить работу системы, моделируя нелинейности и контролируя результаты (рис. 5). Также можно произвести настройку в интерактивном режиме с помощью ползунка, увеличивая или понижая быстродействие регулятора (рис. 4).
Подготовка к реализации
Для подготовки к реализации в 16-разрядном микропроцессоре регулятор масштабируют для расчета в арифметике с фиксированной точкой, которая поддерживается процессором.
Используя вкладку Data Types («Типы данных») в диалоговом окне блока, следует выбрать параметры, необходимые для расчетов в арифметике с фиксированной точкой (рис. 6). Можно получить эти параметры автоматически с помощью инструмента Fixed-Point Tool в Simulink. Затем следует выполнить моделирование с использованием типов данных в арифметике с фиксированной точкой и убедиться, что результаты расчетов в фиксированной точке близки к результатам, полученным для модели регулятора в плавающей точке.
Генерация выполняемого кода
Когда ПИД-регулятор готов к реализации, последним шагом становится использование расширения Embedded Coder для автоматической генерации кода на языке Cи (рис. 7). Для проверки этого кода мы заменили блок ПИД-регулятора сгенерированным кодом на языке Си и запустили этот код в модели с обратной связью. Для этого можно использовать расширение Embedded Coder и автоматически создать блок Simulink, который исполняет сгенерированный код на Cи.
Теперь можно запустить моделирование, используя автоматически сгенерированный код на Си. Этот же код будет работать и на реальном процессоре. Моделирование показывает, что сгенерированный код дает результаты, точно соответствующие результатам, полученным при использовании блока ПИД-регулятора в плавающей точке (рис. 8). Теперь можно реализовать этот код на процессоре и начать контролировать наш четырехзвенный шарнирный механизм в режиме реального времени.