Настройка ПИД-регулятора из измеренных данных о заводе с помощью задач Live Editor

В этом примере показов, как использовать задачи Live Editor для настройки ПИД-регулятора для объекта, начиная с измеренной характеристики объекта и заканчивая известным входным сигналом. В этом примере вы используете задачу Estimate State-Space Model, чтобы сгенерировать код для оценки параметрической модели объекта управления. Затем вы используете задачу Преобразовать скорость модели (Convert Model Rate), чтобы дискретизировать идентифицированную модель в непрерывном времени. Наконец, вы используете задачу Tune ПИД-регулятора для разработки ПИД-регулятора, чтобы получить ответ с обратной связью, который удовлетворяет вашим проектом требованиям. (Для использования оценочной модели пространства состояний требуется лицензия System Identification Toolbox™.)

Задачи Live Editor позволяют вам в интерактивном режиме итерировать параметры и настройки, наблюдая их эффекты на результат расчетов. Затем задачи автоматически генерируют код MATLAB ®, который достигает отображаемых результатов. Чтобы экспериментировать с задачами Live Editor в этом скрипте, откройте этот пример. Дополнительные сведения о задачах Live Editor см. в разделе Добавление интерактивных задач к Live Script .

Загрузка данных объекта

Загрузите измеренные входно-выходные данные. В этом примере данные состоят из отклика двигателя на вход. Область входа u вектор, содержащий входной сигнал, дискретизированный каждые 0,04 секунды. Вектор выхода y содержит соответствующую измеренный отклик.

load icEngine.mat u y
t = 0.04*(0:length(u)-1);
plot(t,u,t,y)
legend("input u","response y")

Figure contains an axes. The axes contains 2 objects of type line. These objects represent input u, response y.

Оценка модели пространства состояний

Чтобы оценить модель пространства состояний из этих данных, используйте задачу Estimate State-Space Model (System Identification Toolbox) Live Editor. Можно вставить задачу в скрипт с помощью меню Task в Live Editor. В этом скрипте уже вставлена модель Estimate State-Space. Откройте пример, чтобы экспериментировать с задачей.

Чтобы выполнить оценку, в задаче задайте входной и выходной сигналы, которые вы загрузили, u и y, и шаг расчета, 0,04 секунды. (В данном примере данные валидации отсутствуют.) Необходимо также определить порядок объекта. Как правило, вы можете угадать объект порядка на основе ваших знаний о вашей системе. В целом необходимо использовать самый низкий порядок объекта, который дает достаточно хорошую оценку подгонки. В задаче Estimate State-Space Model экспериментируйте с различными значениями порядка объекта и наблюдайте результат подгонки, отображаемый на выход графике. Для получения дополнительной информации о доступных опциях и параметрах смотрите страницу с описанием задачи Estimate State-Space Model (System Identification Toolbox).

Когда вы варьируете параметры в задаче, это автоматически обновляет сгенерированный код для выполнения оценки и создания графика. (Чтобы увидеть сгенерированный код, щелкните в нижней части задачи.)

В данном примере на объект порядка 4 оценка подгонки составляет около 72%. Увеличение объекта порядка не сильно улучшает подгонку. Поэтому используйте объект четвертого порядка. Код создает идентифицированную модель пространства состояний с именем переменной, которое вы вводите в сводную линию задачи Estimate State-Space Model. В данном примере используйте sys_id. После завершения экспериментов с задачей идентифицированная модель пространства состояний sys_id находится в рабочей области MATLAB ®, и вы можете использовать его для дополнительного проекта и анализа таким же образом, как вы используете любой другой объект модели LTI. Например, исследуйте частотную характеристику идентифицированной модели пространства состояний sys_id.

bode(sys_id)
grid on

Предположим, что вы хотите дискретизировать эту модель, прежде чем проектировать ПИД-регулятор для нее. Для этого используйте задачу Convert Model Rate. В задаче выберите идентифицированную модель sys_id. Укажите шаг расчета достаточно быстро, чтобы включить резонанс в идентифицированную характеристику модели, например, 0,025 с. Вы также можете выбрать другой метод преобразования, чтобы лучше соответствовать частотной характеристике вблизи резонанса. Для образца используйте Билинейное (Тустин) приближение с частотой предварки 38,4 рад/с, местоположение максимальной чувствительности. Когда вы экспериментируете с настройками в задаче, сравните оригинальные и преобразованные модели на диаграмме Боде, чтобы убедиться, что вы удовлетворены соответствием. (Для получения дополнительной информации о параметрах и опциях смотрите страницу с описанием задачи Convert Model Rate.)

Преобразуйте скорость модели генерирует код, который создает дискретизированную модель с именем переменной, которое вы вводите в сводную линию задачи. В данном примере используйте sys_d.

Чтобы подтвердить, что дискретизированная модель захватывает переходный ответ из-за резонанса, сравните первые несколько секунд переходных характеристик исходной идентифицированной модели sys_id и дискретизированную модель sys_d.

step(sys_id,sys_d,3)
legend('identified model sys_id','discretized model sys_d')

Настройка контроллера для дискретизированной модели объекта управления

Наконец, используйте задачу Tune ПИД-регулятора, чтобы сгенерировать код для настройки PI или ПИД-регулятора для дискретизированного объекта sys_d. Задача проектирует ПИД-регулятор для заданного объекта с учетом стандартного строения управления с обратной связью на следующей схеме.

В задаче выберите sys_d как объект и экспериментируйте с такими настройками, как тип контроллера и время отклика. Когда вы изменяете настройки, выберите выходные графики, на которых можно наблюдать реакцию замкнутого цикла, сгенерированную задачей. Проверяйте характеристики отклика Системы, чтобы сгенерировать численное отображение характеристик переходной характеристики с обратной связью, таких как время нарастания и перерегулирование.

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

Последующий анализ проекта

Как и другие задачи Live Editor, Tune PID Controller генерирует код, который создает настроенный контроллер с именем переменной, которое вы вводите в сводную линию задачи. В данном примере используйте C. Настроенный контроллер C является pid объект модели в рабочем пространстве MATLAB, который можно использовать для последующего анализа. Например, вычислите реакцию с обратной связью на нарушение порядка на выходе объекта управления sys_d, с использованием этого контроллера. Исследуйте ответ и его характеристики.

CLdist = getPIDLoopResponse(C,sys_d,"output-disturbance");
step(CLdist)
grid on

Можно использовать модели sys_id, sys_d, и C для любых других задач разработки или анализа системы управления.

См. также

Задачи Live Editor

Похожие темы