Чтобы использовать алгоритм автонастройки ПИД-регулятора в автономном приложении для настройки в реальном времени против вашего физического объекта, необходимо развернуть блок автотюнера ПИДа в собственную систему. Для этого вы создаете модель Simulink® для развертывания. Можно сконфигурировать эту модель с экспериментом и настраивающимися параметрами. Или, можно сконфигурировать его, чтобы предоставить такие параметры внешне откуда-либо в системе. После того, как развернутый на вашей собственной системе, модель автотюнера вводит сигналы в ваш объект и получает ответ объекта, не используя Simulink, чтобы управлять настраивающим процессом. Развертывание алгоритма автонастройки ПИД-регулятора требует продукта генерации кода, такого как Simulink Coder™.
Как альтернатива, можно настроиться в реальное время против физического объекта при использовании Simulink, чтобы управлять экспериментом. Для получения дополнительной информации смотрите Управление Автонастройка ПИД-регулятора В реальном времени в Simulink.
В обзоре рабочий процесс для развертывания алгоритма автонастройки ПИД-регулятора для настройки в реальном времени:
Создайте модель 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
выходные параметры непосредственно во входные параметры усиления ПИД-регулятора могут ввести алгебраический цикл, который предотвращает генерацию кода. Чтобы избежать этой проблемы, можно ввести состояние в логике обновления ПИДа, которая повреждает алгебраический цикл. Например, можно попробовать один из следующих подходов:
Используйте Unit Delay
блокируйтесь, чтобы сохранить контроллер, выводит один временной шаг перед входными параметрами контроллера.
Используйте блок Data Store Memory, как проиллюстрировано в ПИД-регуляторе Мелодии в режиме реального времени Используя Блок Автотюнера ПИДа С обратной связью.
Когда вы используете Open-Loop PID Autotuner, если ваш контроллер включает действие интегратора, полагайте, что сигнал реализации, отслеживающий, избегает завершения интегратора во время настраивающегося эксперимента. Отслеживание сигнала позволяет ПИД-регулятору продолжить отслеживать действительный вход объекта, в то время как это вне цикла. Без него ваша система может испытать удар, когда цикл управления закрывается в конце настраивающего процесса.
Если ваш ПИД-регулятор является блоком Simulink PID Controller, можно использовать параметр Enable tracking mode блока контроллера, чтобы избежать этого удара. Следующая схема иллюстрирует модуль, содержащий блок Open-Loop PID Autotuner и блок PID Controller со сконфигурированным режимом отслеживания. Объект ввел подачу во вход отслеживания блока контроллера.
Чтобы запустить и остановить процесс автоматической настройки, используйте сигнал в 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.
Чтобы задать настройку ПИД-регулятора в вашей системе, используйте следующие параметры блока автотюнера:
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.
Эксперимент оценки частотной характеристики вводит синусоидальные сигналы на частотах вокруг целевой пропускной способности ω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.
После того, как вы развернете модуль автотюнера в свою систему, используйте возрастающий start/stop
сигнал начать процесс автоматической настройки. Развернутый модуль вводит тестовые сигналы в ваш физический объект в режиме реального времени. После подходящего времени, или когда % conv
сигнал стабилизирует близкие 100%, используйте падающий start/stop
предупредите, чтобы закончить эксперимент. Осторожная оценка в течение времени эксперимента является 200/ωc для настройки с обратной связью или 100/ωc для настройки разомкнутого цикла, где ωc c является вашей целевой пропускной способностью. Когда эксперимент останавливается, модуль вычисляет новые коэффициенты ПИД на основе предполагаемой частотной характеристики в системе и ваших заданных настраивающих целях. Можно исследовать настроенные коэффициенты ПИД с помощью pid gains
сигнал.
Когда вы исследуете эти усиления и передаете их вашему собственному контроллеру, знать о значении этих усилений в блоках автотюнера ПИДа. В дискретное время блоки принимают следующую передаточную функцию ПИД-регулятора:
в параллельной форме, или в идеальной форме,
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) не является настраиваемым. Как следствие вы не можете получить доступ к нему непосредственно в сгенерированном коде, когда вы развертываете блок. Изменить шаг расчета контроллера в развернутом блоке во время выполнения:
Установите Controller sample time (sec) на –1.
Поместите блок автотюнера в Triggered Subsystem.
Инициируйте подсистему в желаемом шаге расчета.
Closed-Loop PID Autotuner | Open-Loop PID Autotuner