Автонастройка ПИД-регулятора в режиме реального времени

Чтобы использовать алгоритм автонастройки ПИД-регулятора в автономном приложении для настройки в реальном времени против вашего физического объекта, необходимо развернуть блок автоматической настройки ПИД в вашей собственной системе. Для этого вы создаете Simulink® модель для развертывания. Можно сконфигурировать эту модель с параметрами эксперимента и настройки. Или можно сконфигурировать его, чтобы поставить такие параметры внешне из другого места в вашей системе. После развертывания в вашей собственной системе модель autotuner вводит сигналы в ваш объект и получает ответ объекта, не используя Simulink для управления процессом настройки. Развертывание алгоритма автонастройки ПИД-регулятора требует продукта генерации кода, такой как Simulink Coder™.

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

Рабочий процесс

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

  1. Создайте модель Simulink для развертывания блока PID autotuner в вашей системе.

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

  3. Укажите параметры контроллера, такие как тип контроллера и целевая полоса пропускания для настройки.

  4. Сконфигурируйте параметры эксперимента, такие как амплитуды возмущений, введенных во время эксперимента частотной характеристики.

  5. Разверните модель в своей системе и инициируйте процесс автотунирования против вашего физического объекта. Можно проверить эффективность в системе с обратной связью в режиме реального времени.

На практике для настройки в реальном времени можно хотеть задать некоторые параметры во время исполнения, такие как целевая полоса пропускания или амплитуды возмущения. Дополнительные сведения об указании параметров в развернутом приложении см. в разделе Доступ к параметрам автообучения после развертывания.

Шаг 1. Создайте развертываемую модель Simulink с блоком PID Autotuner

Использование блока PID autotuner для настройки в реальном времени требует создания модели Simulink для развертывания. Существует несколько способов сделать это.

Развертываемый модуль только с Autotuner

В самой базовой форме модель для развертывания автонастройки ПИД-регулятора в реальном времени напоминает следующий рисунок, используя блок Closed-Loop PID Autotuner или Open-Loop PID Autotuner. Преимущество этого подхода в том, что он позволяет вам переключаться между и настраивать различные ПИД-регуляторы во время исполнения.

Здесь блоки, соединенные с входами и выходами блока PID autotuner, представляют аппаратные интерфейсы, которые считывают или записывают данные в реальном времени для вашей системы. Для примера, Read PID controller output блок может быть интерфейсом для приема последовательных данных, блоком UDP Receive для приема пакетов UDP или интерфейсом для приема других сигналов через беспроводную сеть. Точно так же блоки для записи данных, такие как Write plant input, могут быть интерфейсами для последовательного, UDP или других интерфейсов для записи данных на оборудование.

Портами по умолчанию блока autotuner являются:

  • u - Принимает сигнал управления.

  • y - Получает выход объекта.

  • start/stop - Получает сигнал, который начинается и завершает процесс настройки.

  • u+Δu - Выводит сигнал для подачи на вход объекта. Когда эксперимент не запускается, u+Δu выводит сигнал управления как вход на u. Когда эксперимент запускает блок и вводит тестовые сигналы в u+Δu. Для настройки только без разомкнутого контура, блок разбивает цикл между u и u+Δu на время эксперимента. Когда эксперимент заканчивается, блок восстанавливает соединение между u и u+Δu.

  • % conv - Выводит числовой индикатор прогресса эксперимента по оценке частотной характеристики.

  • pid gains - Выводит настроенные коэффициенты ПИД, когда процесс настройки останавливается.

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

Развертываемый модуль с контроллером

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

На этом рисунке ПИД-регулятора реализована как блок PID Controller Simulink. Поскольку коэффициенты ПИД этого блока настраиваются, можно сконфигурировать систему, чтобы записать настроенные усиления на развернутый контроллер. Также можно использовать собственную пользовательскую подсистему ПИД-регулятора в модели, которую вы развертываете.

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

Примечание

Когда вы используете блок Closed-Loop PID Autotuner, подавая pid gains Выходы непосредственно в ПИД-регулятор усиления входов могут ввести алгебраический цикл, который препятствует генерации кода. Чтобы избежать этой проблемы, можно ввести состояние в логику обновления ПИД, которая ломает алгебраический цикл. Например, можно попробовать один из следующих подходов:

Бесшумная передача для разомкнутого контура

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

Если ваш ПИД-регулятор является блоком Simulink PID Controller, можно использовать параметр Enable tracking mode блока контроллера, чтобы избежать этой выдавливания. Следующая схема иллюстрирует модуль, содержащий блок Open-Loop PID Autotuner и блок PID Controller с сконфигурированным режимом отслеживания. Вход объекта подается на вход отслеживания блока контроллера.

Шаг 2. Сконфигурируйте сигнал запуска/остановки

Чтобы запустить и остановить процесс автотунирования, используйте сигнал в start/stop порт. Когда эксперимент не запускается, блок передает сигналы без изменений от u на u+Δu. В этом состоянии блок не влияет на поведение объекта или контроллера.

Эксперимент по оценке частотной характеристики начинается и заканчивается сигналом повышения или падения в start/stop порт, соответственно. Таким образом, после развертывания, чтобы начать процесс автотунирования, используйте сигнал повышения в start/stop порт. Через соответствующее время или после % conv сигнал устанавливается около 100, используйте сигнал падения, чтобы закончить эксперимент. Когда эксперимент заканчивается, алгоритм генерирует настроенные коэффициенты ПИД и возвращает их в pid gains порт. Консервативная оценка времени эксперимента - 200/ ωc для настройки с обратной связью или 100/ ωc для настройки разомкнутого контура, где ωc - целевая полоса пропускания. Для получения дополнительной информации о том, как сконфигурировать сигнал start-stop, смотрите Closed-Loop PID Autotuner или Open-Loop PID Autotuner страницы с описанием блоков.

Шаг 3. Установите параметры настройки ПИД

Чтобы задать строение ПИД-регулятора в вашей системе, используйте следующие параметры блока autotuner:

  • Type

  • Form

  • Time Domain

  • Controller sample time (sec)

  • Integrator method

  • Filter method

Для Closed-Loop PID Autotuner можно также задать шаг расчета для настройки, которое отличается от Controller sample time (sec). Алгоритм настройки коэффициента ПИД является в вычислительном отношении интенсивным, и когда вы хотите развернуть блок на оборудовании и настроить контроллер с быстрым шагом расчета, некоторое оборудование может не выполнить вычисление коэффициента ПИД за один временной шаг. Чтобы уменьшить требования к пропускной способности оборудования, включите Tune at different sample time параметр, а затем задайте шаг расчета медленнее, чем шаг расчета контроллером, используя параметр Tuning sample time (sec).

Затем задайте целевую полосу пропускания и запас по фазе для настройки с параметрами Target bandwidth (rad/sec) и Target phase margin (degrees), соответственно.

Целевая полоса пропускания, заданная в рад/сек, является целевым значением для 0-dB частота среза усиления настроенного разомкнутого контура отклика CP, где P - реакция объекта управления и C - реакция контроллера. Эта частота среза примерно устанавливает пропускную способность управления. Для времени нарастания τ секунд хорошее предположение для целевой полосы пропускания составляет 2/ τ рад/сек.

Целевой запас по фазе устанавливает робастность настроенной системы. Обычно выбирают значение в области значений около 45-60 °. В целом более высокий запас по фазе улучшает перерегулирование, но может ограничить скорость отклика. Значение по умолчанию, 60 °, имеет тенденцию балансировать эффективность и робастность, давая около 5-10% перерегулирования, в зависимости от характеристик вашего объекта.

Большинство параметров настройки можно задать в собственном приложении после развертывания, вместо их фиксации в блоке PID autotuner перед развертыванием. См. раздел «Доступ к параметрам автообучения после развертывания».

Для получения дополнительной информации о значениях, используемых для этих параметров, смотрите Closed-Loop PID Autotuner или Open-Loop PID Autotuner страницы с описанием блоков.

Шаг 4. Установите параметры эксперимента

Эксперимент по оценке частотной характеристики вводит синусоидальные сигналы на частотах вокруг целевой ωc полосы частот:

  • [1/3, 1, 3, 10] ωc для блока Open-Loop PID Autotuner

  • [1/10,1/3, 1, 3, 10] ωc для блока Closed-Loop PID Autotuner

Используйте параметр Sine Amplitudes блоков, чтобы задать амплитуды этих сигналов.

Если ваше растение асимптотически стабильно, блок Open-Loop PID Autotuner может оценить коэффициент усиления постоянного тока объекта с помощью шагового возмущения. Задайте амплитуду этого возмущения с параметром Step Amplitude . Если у вашего объекта есть один интегратор, очистите параметр Estimate DC gain with step signal.

Внимание

  • Не используйте автонастройку ПИД-регулятора с обратной связью или без разомкнутого контура с нестабильным объектом.

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

Все амплитуды возмущения должны быть:

  • Достаточно большое, что возмущение преодолевает любую тупиковую полосу в приводе объекта и генерирует ответ выше уровня шума.

  • Достаточно маленькая, чтобы сохранить объект в пределах приблизительно линейной области около номинальной рабочей точки и избежать насыщения входных или выходных параметров объекта.

Для получения дополнительной информации о настройке параметров эксперимента смотрите страницы Closed-Loop PID Autotuner и Open-Loop PID Autotuner блочных ссылок.

Шаг 5. Настройка и валидация

После развертывания модуля autotuner в системе используйте растущую start/stop сигнал для начала процесса автоподстройки. Развернутый модуль вводит тестовые сигналы в ваш физический объект в режиме реального времени. Через соответствующее время или когда % conv сигнал стабилизируется около 100%, используйте падающую start/stop сигнал на прекращение эксперимента. Консервативная оценка времени эксперимента составляет 200/ ωc для настройки с обратной связью или 100/ ωc для настройки разомкнутого контура, где ωc c - ваша целевая полоса пропускания. Когда эксперимент останавливается, модуль вычисляет новые коэффициенты ПИД на основе предполагаемой частотной характеристики в системе и ваших заданных целей настройки. Можно изучить настроенные коэффициенты ПИД с помощью pid gains сигнал.

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

C=P+IFi(z)+D[N1+NFd(z)],

в параллельной форме, или в идеальной форме,

C=P[1+IFi(z)+D(N1+NFd(z))].

Fi (z) и Fd (z) зависят от значений, заданных для Integrator method и Filter method формул, соответственно. Для получения дополнительной информации см. Closed-Loop PID Autotuner или Open-Loop PID Autotuner страниц с описанием блоков.

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

Доступ к параметрам автообучения после развертывания

Некоторые параметры, которые вы устанавливаете, чтобы сконфигурировать autotuner, настраиваются, так что вы можете получить доступ к ним в сгенерированном коде. Для параметров, которые не настраиваются, необходимо сконфигурировать их в блоке перед развертыванием.

Настраиваемые параметры

Следующие параметры блоков PID autotuner можно настроить после развертывания. Для получения дополнительной информации обо всех этих параметрах см. Closed-Loop PID Autotuner или Open-Loop PID Autotuner страниц с описанием блоков.

ПараметрОписание
Target bandwidth (rad/sec)Целевая частота среза разомкнутой реакции
Target phase margin (degrees)Целевой минимальный запас по фазе разомкнутой реакции
Sine AmplitudesАмплитуда синусоидальных возмущений
Estimate DC gain with step signalВведите сигнал шага в объект
Step AmplitudeАмплитуда шагового возмущения
TypeТип ПИД-регулятора (такого как ПИ, ПД или ПИД)
FormФорма ПИД-регулятора
Integrator methodДискретная формула интегрирования для члена интегратора
Filter methodДискретная формула интегрирования для члена производного фильтра

Ненастраиваемые параметры

Следующие параметры блоков PID autotuner не настраиваются после развертывания. Вы должны задать их в блоке перед генерацией кода, и их значения останутся фиксированными в вашем приложении. Для получения дополнительной информации обо всех этих параметрах см. Closed-Loop PID Autotuner или Open-Loop PID Autotuner страниц с описанием блоков.

ПараметрОписание
Time DomainПИД-регулятор временного интервала
Controller sample time (sec)Шаг расчета из ПИД-регулятора (см. «Изменение Шагов расчета после развертывания»)
Reduce memory and avoid task overrun (external mode only)Развертывание только алгоритма настройки
Data TypeТочность с плавающей точностью

Изменение Шагов расчета после развертывания

Параметр Controller sample time (sec) не настраивается. Как следствие, вы не можете получить к нему доступ непосредственно в сгенерированном коде, когда развертываете блок. Чтобы изменить шаг расчета контроллера в развернутом блоке во время исполнения:

  1. Установите Controller sample time (sec) значение -1.

  2. Поместите блок autotuner в Triggered Subsystem.

  3. Инициируйте подсистему в требуемый шаг расчета.

См. также

|

Похожие темы