ПИД-регулятор Проекта в Live Editor

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

Откройте этот пример, чтобы увидеть предварительно сконфигурированный скрипт, содержащий задачу Tune PID Controller. Дополнительные сведения о задачах Live Editor см. в разделе Добавление интерактивных задач к Live Script.

В Live Editor создайте модель LTI для вашего объекта.

G = zpk(-5,[-1 -2 -3 -4],6);

Чтобы спроектировать ПИД-регулятор для этого объекта, откройте задачу Tune ПИД-регулятора Live Editor. На вкладке Live Editor выберите Task > Tune PID Controller. Это действие вставляет задачу в ваш скрипт.

Первоначальный проект контроллера

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

Задача также генерирует переходный процесс, показывающую переходную характеристику с обратной связью от r до y, используя первоначальный проект контроллера.

Усовершенствование проектирования контроллера

Выберите Отклик системы характеристики, чтобы отобразить числовые значения некоторых характеристик этого отклика во временной области.

Первоначальный проект контроллера имеет время нарастания около 1,5 секунд, с перерегулированием около 8%. Экспериментируйте с ползунками «Время отклика» и «Переходное поведение», чтобы изменить целевые значения проекта и увидеть их эффект на переходную характеристику.

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

Теперь можно уменьшить время отклика контроллера. Снова экспериментируйте с ползунками, наблюдая за эффектом на переходную характеристику. Для примера, который более подробно показывает, как ползунки «Время отклика» и «Переходное поведение» влияют на эффективность контроллера, см. Раздел «Настройка ПИД-регулятора для отслеживания ссылок» или «Подавления помех» (PID Tuner). Этот пример использует приложение PID Tuner вместо задачи Tune PID Controller в Live Editor, но поведение и эффект ползунков одинаковы в обоих инструментах.

Исследуйте сгенерированный код

Задача автоматически генерирует код, чтобы настроить ПИД-регулятор для объекта с заданными целями проекта. Чтобы увидеть сгенерированный код, щелкните в нижней части задачи. Задача расширяется, чтобы показать сгенерированный код.

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

Осмотрите эффективность подавления помех

Предположим, что вас интересуешь отклик системы с обратной связью на нарушение порядка на входе объекта. Чтобы сгенерировать график переходной характеристики из d1 для y в раскрывающемся меню Output Plot выберите Step Plot: Input disturbance rejection. График обновляется, чтобы показать новый ответ. В зависимости от того, как вы устанавливаете цели эффективности, когда вы изменяете график отклика, вы можете увидеть ответ, который выглядит следующим образом.

Теперь можно снова экспериментировать с параметрами контроллера и наблюдать их эффект на подавление помех. Для примера, который показывает более подробно, как можно использовать ползунки и другие расчётные параметры для улучшения подавления помех эффективности, смотрите Tune ПИД-регулятора to Favor Отслеживания уставки или Подавления помех (PID Tuner). Этот пример использует приложение PID Tuner вместо задачи Tune PID Controller в Live Editor, но поведение и эффект расчётных параметров одинаковы в обоих инструментах.

Сравнение двух проектирование контроллера

Настройка ПИД-контроллера автоматически записывает настроенный контроллер в рабочую область MATLAB ® как pid, pidstd, pid2, или pidstd2 объект модели, в зависимости от того, что подходит для настроек контроллера. Задача хранит контроллер с именем переменной, заданным в линии сводных данных задач. По умолчанию это имя переменной C. Когда вы изменяете настройки контроллера, цели эффективности или другие параметры настройки, по умолчанию задача записывает переменную C.

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

Теперь текущий проект хранится в рабочем пространстве MATLAB следующим C. Любые дальнейшие изменения в проекте хранятся следующим Cnew.

Как использовать C в качестве базовой линии для сравнения в меню Контроллер базовой линии выберите Select from workspace. Затем выберите C в появившемся меню.

Теперь, когда вы экспериментируете дальше с проектированием контроллера, на графике отображаются оба отклика системы с контроллером C (пунктирная линия) и с контроллером Cnew (сплошная линия).

Использование контроллера

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

G1 = zpk(-5,[-0.75 -2 -3 -4],8);
CL1 = getPIDLoopResponse(C,G1,'closed-loop');
CL = getPIDLoopResponse(C,G,'closed-loop');
step(CL,CL1)

См. также

Задачи Live Editor

Похожие темы