Настройка ПИД-регулятора в режиме реального времени Разомкнутый контур помощью блока PID Autotuner

В этом примере показов, как использовать блок Разомкнутого контура ПИД Autotuner для настройки ПИ-контроллера системы управления скорости вращения двигателя как в симуляции, так и в реальном времени.

Введение блока Autotuner Разомкнутого контура

Разомкнутый контур ПИД Autotuner позволяет вам настраивать одношаговый ПИД-регулятор в режиме реального времени. Он проводит эксперимент без разомкнутого контура, который вводит сигналы возмущения на объект и вычисляет коэффициенты ПИД на основе частотных характеристик объекта, оцененных вблизи желаемой полосы пропускания.

Блок Open-Loop PID Autotuner поддерживает два типичных сценария настройки ПИД в приложениях реального времени:

(1) Разверните блок на оборудовании и используйте его в автономном приложении реального времени, без присутствия Simulink.

(2) Разверните блок на оборудовании, но контролируйте и управляйте процессом настройки в режиме реального времени в Simulink, используя режим external mode. Режим external mode позволяет осуществлять связь между Диаграммой Simulink, работающим на хосте-компьютере, и сгенерированным кодом, выполняемым на оборудовании.

Этот пример фокусируется на втором сценарии, где блок Open-Loop PID Autotuner используется для настройки системы регулировки скорости вращения двигателя в реальном времени с использованием режима external mode.

Настройка контроллера скорости вращения двигателя

Модель Simulink содержит блок PID, блок Open-Loop PID Autotuner и модель двигателя.

mdl = 'scdspeedctrlOnlinePIDTuning';
open_system(mdl);

ПИ-контроллер имеет начальные усиления P = 0,01 и I = 0,01, предоставляемые извне блоку ПИД через входные порты «P» и «I». Наличие внешних усилений P и I позволяет вам изменять их после того, как новые усиления будут вычислены блоком Open-Loop PID Autotuner позже.

Блок Open-Loop PID Autotuner вставляется между блоком PID и моделью engine. Сигнал запуска/остановки используется, чтобы начать и остановить эксперимент без разомкнутого контура. Когда ни один эксперимент не выполняется, блок Open-Loop PID Autotuner ведет себя как блок усиления единства, где сигнал "u" непосредственно переходит к "u + Когда эксперимент заканчивается, блок настраивает коэффициент коэффициентов ПИД и выводит их на порт «коэффициент усиления ПИДа».

Есть несколько вещей, о которых необходимо знать при использовании блока Open-Loop PID Autotuner против физического объекта в режиме реального времени:

  • Этот объект должен быть асимптотически стабильным, потому что в процессе настройки проводится разомкнутый контур эксперимент. Если у вашего объекта есть один интегратор, можно по-прежнему использовать блок, выбрав не оценивать коэффициент усиления объекта постоянного тока. Однако в обоих случаях необходимо внимательно следить за поведением объекта в процессе настройки и оперативно вмешиваться, если объект слишком близок к нежелательному рабочему условию.

  • Чтобы помочь более точно оценить частотные характеристики объекта в реальном времени, должно быть минимальное нарушение порядка нагрузки, возникающее в процессе настройки. Блок ожидает, что выход объекта управления будет ответом только на введенные сигналы возмущения, и нарушение порядка нагрузки искажает этот выход.

  • Включается "режим отслеживания" (входной порт TR) в блоке PID, который позволяет блоку PID отслеживать действительный вход объекта "u + Эта функция должна использоваться постоянно, чтобы обеспечить бесшумную передачу, когда цикл закрыт, и блок ПИД возобновляет управление после завершения процесса настройки.

Конфигурирование блока Autotuner разомкнутого ПИД

После надлежащего соединения блока Автотюнера ПИД разомкнутого контура с моделью объекта управления и блока ПИД, откройте диалог блока и определите параметры настройки настройки и эксперимента.

В вкладке «Настройка» есть две основные настройки настройки:

  • Целевая полоса пропускания: Определяет, насколько быстро вы хотите, чтобы контроллер ответил. В этом примере выберите 2 рад/с, поскольку желаемое время нарастания составляет 1 сек.

  • Целевой запас по фазе: Определяет, насколько устойчивым вы хотите, чтобы контроллер был. В этом примере выберите значение по умолчанию 60 степеней, которое приводит к перерегулированию около 5% в целом.

На вкладке «Эксперимент» есть две основные настройки эксперимента:

  • Амплитуды синуса: Задает амплитуды введённых синусоид. В этом примере выберите 0,1 для всей четырёх синусоид, часть номинального входа объекта 9. В процессе настройки выход объекта изменяется между 1900 и 2100 об/мин, что составляет около +/-5% от номинального выхода объекта 2000 года. Цель состоит в том, чтобы сохранить работу объекта рядом с номинальной рабочей точкой, чтобы избежать возбуждения нелинейного поведения объекта.

  • Амплитуда шага: Задает амплитуду введенного шагового сигнала. В этом примере также выберите 0,1. Обратите внимание, что, если объект имеет один интегратор, вам нужно принять решение не оценивать коэффициент усиления постоянного тока, и в результате никакой шаговый сигнал не вводится на объект.

Симуляция Разомкнутого контура ПИД блока Autotuner в режиме Normal Mode

Если у вас есть модель объекта управления, созданная в Simulink, рекомендуется симулировать блок Open-Loop PID Autotuner относительно модели объекта управления в режиме normal mode перед использованием блока во режиме external mode для настройки в реальном времени. Симуляция поможет вам идентифицировать проблемы в соединении сигналов и настройках блоков, чтобы можно было их настроить перед генерацией кода.

sim(mdl);

В этом примере скорости вращения двигателя опорного сигнала переходит с 2000 до 3000 об/мин, а затем обратно к 2000 об/мин в первые 20 секунд. Исходные усиления P = 0,01 и I = 0,01 вызывают сильные колебания в переходном процессе и должны быть перестроены.

На 20 секунде объект работает в номинальной рабочей точке 2000 об/мин и запускается оперативная настройка ПИД. Длительность эксперимента составляет 50 секунд, потому что консервативное руководство предполагает, что для сходимости онлайн-оценки частотной характеристики требуется около 100 секунд/полоса пропускания.

Когда настройка ПИД прекращается на 70 секунде, новые усиления P = 0,0026 и I = 0,0065 немедленно доступны на выходе «усиления ПИДа» и отправляются на внешний порт P и I блока ПИД, перезаписывая исходные усиления. Обратите внимание, что при закрытии цикла отбойник почти отсутствует, и блок ПИД возобновляет управление в этот момент.

Скорость скорости вращения двигателя опорного сигнала от 2000 до 3000 об/мин, а затем снова до 2000 об/мин от 80 до 100 секунд. Новые усиления PI обеспечивают намного лучшую реакцию с обратной связью.

Использование блока Autotuner с разомкнутым контуром ПИД в режиме external mode

Чтобы настроить ПИ-контроллер на физический двигатель в режим external mode, необходимо заменить раздел «Engine Model» в модели Simulink оборудования интерфейсными блоками, которые обеспечивают измерение частоты вращения как «y» и отправить угол дросселя приводу как «u».

Вот пример схемы Simulink, настроенной для настройки в режиме external mode, предполагающей, что ваше ПИ-контроллер работает на плате Arduino DUE и взаимодействует с вашим физическим механизмом через последовательные порты.

Вот сводные данные изменений (в том порядке), внесенных в исходную модель Simulink, чтобы заставить ее работать во режиме external mode:

  • Иметь хост-компьютер, который работает под управлением Simulink и общается с платой Arduino DUE через USB-соединение.

  • Установите «Пакет поддержки Simulink для оборудования Arduino». Если оборудование отличается, необходимо установить другой пакет аппаратной поддержки.

  • В диалоговом окне «Параметры конфигурации» выберите тип решателя «Fixed-Step» на панели «Solver» и аппаратной платы «Arduino DUE» на панели «Аппаратная реализация».

  • Замените раздел модели двигателя в исходной модели двумя блоками последовательного интерфейса. В режиме реального времени блок Open-Loop PID Autotuner, работающий на плате Arduino, собирает выходы объекта из блока «Serial Receive» (от датчика) и отправляет сигналы эксперимента в двигатель через блок «Serial Transmit» (к приводу).

  • Для большей гибкости в операции в реальном времени запустите и остановите процесс настройки, переворачивая ручной переключатель «Tuning Switch» вместо того, чтобы основываться на часах симуляции. Точно так же обновляйте коэффициент усиления ПИ, переворачивая «Gain Switch» и изменяйте опорный сигнал, переворачивая «Ref Switch».

  • Выберите «Режим external mode» в модели Simulink и установите время симуляции на «бесконечное».

Запустите симуляцию. Во-первых, Simulink генерирует код для всей модели и загружает его на плату Arduino DUE. После запуска программы на плате можно контролировать вход и выход объекта из возможностей режиме реального времени. Когда объект достигает номинальной рабочей точки 2000 об/мин, используйте три ручных переключателя для настройки, обновления и проверки контроллера.

Сокращение памяти и предотвращение переполнения задачи во режиме external mode

Опция «Уменьшить память и избежать переполнения задачи (режим external mode)» на вкладке « Блоке» может помочь развернуть сгенерированный код на оборудовании с ограниченными ресурсами памяти и/или очень быстрым шагом расчета.

Если на вашем оборудовании недостаточно памяти, используйте эту опцию при настройке во режиме external mode. С помощью этой опции Simulink только генерирует код для функциональности онлайн-оценки частотной характеристики. Поскольку ни один код не развернут для функциональности проекта ПИД, результатом является уменьшение использования памяти на оборудовании. В этом случае, после того, как оценка выполнена, коэффициенты ПИД вычисляются в Simulink на хост-компьютер и затем отправляются обратно в блок autotuner.

Вычисление коэффициента ПИД в конце процесса настройки требует гораздо большего расчета нагрузки, чем онлайн-оценка частотной характеристики. Если шаги расчета контроллера очень быстрый, некоторое оборудование могут не завершить вычисление в течение цикла выполнения. Поэтому наличие хоста-компьютера для выполнения вычисления коэффициента ПИД также позволяет вам настроить ПИД-регулятор с быстрого шага расчета на оборудовании с ограниченными вычислительными степенями.

bdclose(mdl)

См. также

Похожие темы