Моделирование регуляторов в среде MATLAB Simulink

Автор vlad.sin, Вторник, апреля 10, 2018, 07:47:05

« предыдущая тема - следующая тема »
Вниз

vlad.sin

Исполнители: Синицын Владислав Романович, Поддубнова Алина Николаевна, 541 об
Научный руководитель: Усенко Валентин Иванович
МОДЕЛИРОВАНИЕ РЕГУЛЯТОРОВ В СРЕДЕ MATLAB SIMULINK


        В статье рассматривается пример подбора регулятора в среде MATLAB Simulink

        Пусть имеется передаточная функция вида:

        Чтобы создать систему с отрицательной обратной связью и регулятором в среде Simulink, необходимо выполнить команду simulink, или нажать соответствующую кнопку. Затем добавить из  Library Browser (библиотеки элементов) добавить блоки step (единичное входное воздействие), sum (сумматор), Transfer fcn (передаточная функция),scope (осцилоскоп) и PID controller (аналоговый ПИД-регулятор) и соединить их, согласно рисунку 1.

Рисунок 1  - модель в Simulink

        Чтобы система работала корректно, необходимо настроить элементы. Корректировать свойства каждого элемента можно, нажав на него дважды, либо правой кнопкой мыши и выбрав Block Parameters.
        В сумматоре необходимо задать отрицательный нижний вход, путем занесения в поле List of signs строки «|+-» ; в блоке Step необходимо выставить время сигнала Step Time = 0; в блоке Transfer fcn задаются коэффициенты числителя и знаменателя ПФ в полях Numerator coefficients и Denominator coefficients соответственно.
В нашем случае [2462] - вектор коэффициентов в числителе,
                            [1 52 4457 31650 0] - вектор коэффициентов в знаменателе

Рисунок 2 - параметры блока Step

Рисунок 3 - параметры блока Transfer Fcn

        В блоке PID Controller выбираем тип регулятора в графе Controller можно выбрать разные типы регуляторов:
            -P - пропорциональный (П-регулятор) ;
            -I - интегральный (И-регулятор);
            -PD - пропорционально-дифференциальный ;
            -PI - пропорционально-интегральный;
            -PID - ПИД-регулятор;
        Мы для примера используем тип PI. При коэффициентах P=1 и I=0 данный блок не оказывает регулирующего воздействия на объект.

Рисунок 4 - характеристики блока PID Controller

Чтобы выполнить автоматический подбор коэффициентов, необходимо нажать кнопку Tune, после чего запустится инструмент PID Tuner. Данный инструмент также доступен в MATLAB командой pidTuner(sys), где sys - исследуемая система.
        Есть возможность строить различные характеристики, список которых можно увидеть, нажав кнопку Add Plot.
        Domain позволяет выбрать настройку регулятора относительно времени (time), либо относительно частоты (frequency).
        В режиме настройки относительно времени доступны два ползунка:
            -Response Time, позволяющий задать время отклика системы (Slower медленнее, faster - быстрее);
            -Transient Behavior, отвечающий за устойчивость системы (Aggressive - менее устойчивая (более колебательная), Robust - устойчивая, грубая).
        А в режиме настройки по частоте ползунки заменятся соответственно:
            -Bandwidth - полоса пропускания;
            -Phase Margin - запас по фазе.
        Отобразить параметры системы с регулятором можно, нажав на кнопку Show Parameters.
        В случае настройки по частоте удобнее пользоваться не переходной характеристикой, а диаграммами Боде, которые можно добавить через Add Plot. Также PID Tuner автоматически строит характеристические графики для системы без регулятора пунктирной линией, что позволяет наглядно сравнить работу регулятора. Коэффициенты отображаются в правом нижнем углу окна.
        Необходимо подобрать тип регулятора и значения параметров, при которых характеристики системы, такие как перерегулирование и время переходного процесса, будут удовлетворительными.
        При запуске PID Tuner автоматически подбирает коэффициенты, которые могут не удовлетворять нашим требованиям. В нашем случае мы получили ПИ-регулятор с коэффициентом Kp=30,26 и Ki=14,68.

Рисунок 5 - PID Tuner

        Если характеристики системы нас устраивают, то нажимаем Update Block, чтобы записать коэффициенты в блок PID Controller. Если нет - то изменяем параметры регулятора двумя ползунками в верхней части окна.
        После применения изменений блока необходимо запустить модель. Для этого на верхней панели, справа от кнопки Run, задаем интервал времени расчета системы (в случае непрерывного расчета пишем inf) и нажимаем Run. В нашем случае достаточно интервала в 8 единиц времени.
        После выполнения вычислений делаем двойной клик по блоку Scope. Мы получили переходную характеристику, совпадающую с ПХ, полученной в PID Tuner.

Рисунок 6 - ПХ в Simulink

        Проверим это, подобрав ПИД-регулятор сначала в PID Tuner, затем построив модель с таким же регулятором в Simulink.
        Аналогичным способом можно осуществлять подбор дискретного ПИД-регулятора. Для этого необходимо вместо блока PID Controller использовать блок Discrete PID Controller. Его настройка идентична изложенной выше.

Рисунок 7 - схема в Simulink с дискретным ПИД-регулятором

Рисунок 8 - настройка дискретного регулятора через PID Tuner

        Допустим, что нас не устраивают параметры полученной системы. Попробуем их улучшить, передвигая ползунки. Сдвинув ползунок Response Time, например, до значения 1.5 и Transient Behavior 0.6 мы сталкиваемся с необходимостью уменьшения шага дискретизации.

Рисунок 9 - ПХ до уменьшения шага дискретизации

        Для этого возвращаемся в блок Discrete PID Controller и в поле Sample Time вносим менее текущего, например значение 0.2, затем нажимаем Apply и Tune. И получим более гладкую характеристику.

Рисунок 10 - ПХ после уменьшения шага дискретизации

        Проверим характеристику на блоке Scope

Рисунок 11 - ПХ на блоке Scope

        Очевидно, что ПХ системы соответствует ПХ, полученной в PID Tuner.

        Таким образом, можно осуществлять подбор регуляторов различного типа к системам в среде моделирования Simulink.



ran

2462, 52, 4457, 31650 - одной цифры не хватает для номера банковской карты, на которой лежат сокровища. Нужно угадать?

knoppix

#2
Вторник, апреля 10, 2018, 17:16:50 Последнее редактирование: Вторник, апреля 10, 2018, 21:52:21 от knoppix
Я честно говоря в нынешней нумерации групп не особо разбираюсь, и возможно это начало пути... Но, два человека и работа фактически повторяющая примеры с документации Matlab (допустим вот: https://www.mathworks.com/help/slcontrol/ug/tune-pid-controller-to-balance-tracking-and-disturbance-rejection-performance.html ).

Было бы значительно интереснее доклад на тему вообще возможностей Matlab + Simulink к синтезу регуляторов, подстройки их на работающем оборудовании, генерация кода, насколько просто этот код перенести в ПЛК или другое аппаратное средство управления. Если все это планируется дальше, то стоит это указать в конце доклада.
Амурский Государственный Университет  - 2010 - Специалист
Harbin Institute of Technology - 2016 - M.Sc.Eng
Главный инженер-программист АСУ ТП

ran

#3
Вторник, апреля 10, 2018, 17:48:07 Последнее редактирование: Вторник, апреля 10, 2018, 18:06:27 от ran
Цифра нашлась!
2462 1524 4573 1650

Насчет
насколько просто этот код перенести в ПЛК или другое аппаратное средство управления
- хорошая идея! Докладчику это явно "по зубам" (в смысле, справится). И было бы действительно интересно (и главное, полезно!)

К сожалению, ссылка https://www.mathworks.com/help/slcontrol/ug/tune-pid-controller-to-balance-tracking-and-disturbance-rejection-performance.html). нерабочая. Но сайт открывается. Правда, зайдя в "Control System Design and Tuning", я получил "You are not associated with a license or a trial. To view the documentation for this product, associate to a license or contact sales". Нет у меня  license!

knoppix

Цифра нашлась!
2462 1524 4573 1650

Насчет
насколько просто этот код перенести в ПЛК или другое аппаратное средство управления
- хорошая идея! Докладчику это явно "по зубам" (в смысле, справится). И было бы действительно интересно (и главное, полезно!)

К сожалению, ссылка https://www.mathworks.com/help/slcontrol/ug/tune-pid-controller-to-balance-tracking-and-disturbance-rejection-performance.html.) нерабочая. Но сайт открывается. Правда, зайдя в "Control System Design and Tuning", я получил "You are not associated with a license or a trial. To view the documentation for this product, associate to a license or contact sales". Нет у меня  license!
Починил ссылку, скобка с точкой в нее влезли.

https://www.mathworks.com/help/slcontrol/ug/tune-pid-controller-to-balance-tracking-and-disturbance-rejection-performance.html
Амурский Государственный Университет  - 2010 - Специалист
Harbin Institute of Technology - 2016 - M.Sc.Eng
Главный инженер-программист АСУ ТП

ran

Вот что крест животворящий прямая ссылка делает! А то требуют, дураки, какую-то лицензию!

Вверх