ПИД, автоматически настраивающийся в режиме реального времени

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если ваш ПИД-регулятор является блоком 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+Fi(z)I+DN+Fd(z),

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

C=P(1+Fi(z)I+DD/N+Fd(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. Поместите блок автотюнера в Инициированную Подсистему.

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

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

|

Похожие темы