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

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

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

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

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

  1. Создайте модель Simulink для развертывания блока автотюнера ПИДа в вашу систему.

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

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

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

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

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

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

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

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

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

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

Порты по умолчанию блока автотюнера:

  • u — Получает управляющий сигнал.

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

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

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

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

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

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

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

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

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

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

Примечание

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

Передача Bumpless для настройки разомкнутого контура

Когда вы используете 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 является вашей целевой пропускной способностью. Для более подробной информации о том, как сконфигурировать стартстопный сигнал, смотрите страницы с описанием блока Closed-Loop PID Autotuner или Open-Loop PID Autotuner.

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

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

  • Type

  • Form

  • Time Domain

  • Controller sample time (sec)

  • Integrator method

  • Filter method

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

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

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

Можно установить большинство настраивающихся параметров в собственном приложении после развертывания, вместо того, чтобы фиксировать их в блоке автотюнера ПИДа перед развертыванием. Смотрите, что доступ Автоматически настраивает Параметры После Развертывания.

Для получения дополнительной информации о значениях, чтобы использовать для этих параметров, смотрите страницы с описанием блока 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 может оценить усиление DC объекта с возмущением шага. Задайте амплитуду этого возмущения параметром Step Amplitude . Если ваш объект имеет один интегратор, очистите параметр Estimate DC gain with step signal.

Внимание

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

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

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

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

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

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

Шаг 5. Настройте и подтвердите

После того, как вы развернете модуль автотюнера в свою систему, используйте возрастающий 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.

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

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

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

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

Следующие параметры блоков автотюнера ПИДа являются настраиваемыми после развертывания. Для получения дополнительной информации обо всех этих параметрах, смотрите страницы с описанием блока 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Тип ПИД-регулятора (такой как PI, PD или ПИД)
FormФорма ПИД-регулятора
Integrator methodДискретная формула интегрирования для термина интегратора
Filter methodДискретная формула интегрирования для производного термина фильтра

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

Следующие параметры блоков автотюнера ПИДа не являются настраиваемыми после развертывания. Необходимо задать их в блоке перед генерацией кода, и их значения остаются фиксированными в приложении. Для получения дополнительной информации обо всех этих параметрах, смотрите страницы с описанием блока 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. Поместите блок автотюнера в Triggered Subsystem.

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

Смотрите также

|

Похожие темы