Кафедра АППиЭ

КОНФЕРЕНЦИИ => Дни науки АмГУ 2018 Секция Автоматика, управление и моделирование => Тема начата: vlad.sin от Вторник, апреля 10, 2018, 07:47:05

Название: Моделирование регуляторов в среде MATLAB Simulink
Отправлено: vlad.sin от Вторник, апреля 10, 2018, 07:47:05
Исполнители: Синицын Владислав Романович, Поддубнова Алина Николаевна, 541 об
Научный руководитель: Усенко Валентин Иванович
МОДЕЛИРОВАНИЕ РЕГУЛЯТОРОВ В СРЕДЕ MATLAB SIMULINK


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

        Пусть имеется передаточная функция вида:
(https://d.radikal.ru/d07/1804/6b/16fa50783a50.png) (https://radikal.ru)
        Чтобы создать систему с отрицательной обратной связью и регулятором в среде Simulink, необходимо выполнить команду simulink, или нажать соответствующую кнопку. Затем добавить из  Library Browser (библиотеки элементов) добавить блоки step (единичное входное воздействие), sum (сумматор), Transfer fcn (передаточная функция),scope (осцилоскоп) и PID controller (аналоговый ПИД-регулятор) и соединить их, согласно рисунку 1.
(https://a.radikal.ru/a38/1804/ca/aaa42580048a.png) (https://radikal.ru)
Рисунок 1  - модель в Simulink

        Чтобы система работала корректно, необходимо настроить элементы. Корректировать свойства каждого элемента можно, нажав на него дважды, либо правой кнопкой мыши и выбрав Block Parameters.
        В сумматоре необходимо задать отрицательный нижний вход, путем занесения в поле List of signs строки «|+-» ; в блоке Step необходимо выставить время сигнала Step Time = 0; в блоке Transfer fcn задаются коэффициенты числителя и знаменателя ПФ в полях Numerator coefficients и Denominator coefficients соответственно.
В нашем случае [2462] - вектор коэффициентов в числителе,
                            [1 52 4457 31650 0] - вектор коэффициентов в знаменателе
(https://d.radikal.ru/d17/1804/3d/56e684d70c22.png) (https://radikal.ru)
Рисунок 2 - параметры блока Step
(https://d.radikal.ru/d35/1804/28/7cbc11edf519.png) (https://radikal.ru)
Рисунок 3 - параметры блока Transfer Fcn

        В блоке PID Controller выбираем тип регулятора в графе Controller можно выбрать разные типы регуляторов:
            -P - пропорциональный (П-регулятор) ;
            -I - интегральный (И-регулятор);
            -PD - пропорционально-дифференциальный ;
            -PI - пропорционально-интегральный;
            -PID - ПИД-регулятор;
        Мы для примера используем тип PI. При коэффициентах P=1 и I=0 данный блок не оказывает регулирующего воздействия на объект.
(https://c.radikal.ru/c01/1804/1a/ea9fbc0da8a0.png) (https://radikal.ru)
Рисунок 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.
(https://d.radikal.ru/d13/1804/2f/a0229dc99b41.png) (https://radikal.ru)
Рисунок 5 - PID Tuner

        Если характеристики системы нас устраивают, то нажимаем Update Block, чтобы записать коэффициенты в блок PID Controller. Если нет - то изменяем параметры регулятора двумя ползунками в верхней части окна.
        После применения изменений блока необходимо запустить модель. Для этого на верхней панели, справа от кнопки Run, задаем интервал времени расчета системы (в случае непрерывного расчета пишем inf) и нажимаем Run. В нашем случае достаточно интервала в 8 единиц времени.
        После выполнения вычислений делаем двойной клик по блоку Scope. Мы получили переходную характеристику, совпадающую с ПХ, полученной в PID Tuner.
(https://d.radikal.ru/d09/1804/16/a60fd317c4ed.png) (https://radikal.ru)
Рисунок 6 - ПХ в Simulink

        Проверим это, подобрав ПИД-регулятор сначала в PID Tuner, затем построив модель с таким же регулятором в Simulink.
        Аналогичным способом можно осуществлять подбор дискретного ПИД-регулятора. Для этого необходимо вместо блока PID Controller использовать блок Discrete PID Controller. Его настройка идентична изложенной выше.
(https://d.radikal.ru/d13/1804/f6/2449561e445a.png) (https://radikal.ru)
Рисунок 7 - схема в Simulink с дискретным ПИД-регулятором
(https://d.radikal.ru/d21/1804/22/5bb7c5a0397d.png) (https://radikal.ru)
Рисунок 8 - настройка дискретного регулятора через PID Tuner

        Допустим, что нас не устраивают параметры полученной системы. Попробуем их улучшить, передвигая ползунки. Сдвинув ползунок Response Time, например, до значения 1.5 и Transient Behavior 0.6 мы сталкиваемся с необходимостью уменьшения шага дискретизации.
(https://a.radikal.ru/a09/1804/aa/831f44069934.png) (https://radikal.ru)
Рисунок 9 - ПХ до уменьшения шага дискретизации

        Для этого возвращаемся в блок Discrete PID Controller и в поле Sample Time вносим менее текущего, например значение 0.2, затем нажимаем Apply и Tune. И получим более гладкую характеристику.
(https://d.radikal.ru/d40/1804/c3/9a78d353d32a.png) (https://radikal.ru)
Рисунок 10 - ПХ после уменьшения шага дискретизации

        Проверим характеристику на блоке Scope
(https://d.radikal.ru/d26/1804/d6/b384503b5053.png) (https://radikal.ru)
Рисунок 11 - ПХ на блоке Scope

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

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


Название: Re: Моделирование регуляторов в среде MATLAB Simulink
Отправлено: ran от Вторник, апреля 10, 2018, 10:27:51
2462, 52, 4457, 31650 - одной цифры не хватает для номера банковской карты, на которой лежат сокровища. Нужно угадать?
Название: Re: Моделирование регуляторов в среде MATLAB Simulink
Отправлено: knoppix от Вторник, апреля 10, 2018, 17:16:50
Я честно говоря в нынешней нумерации групп не особо разбираюсь, и возможно это начало пути... Но, два человека и работа фактически повторяющая примеры с документации Matlab (допустим вот: https://www.mathworks.com/help/slcontrol/ug/tune-pid-controller-to-balance-tracking-and-disturbance-rejection-performance.html ).

Было бы значительно интереснее доклад на тему вообще возможностей Matlab + Simulink к синтезу регуляторов, подстройки их на работающем оборудовании, генерация кода, насколько просто этот код перенести в ПЛК или другое аппаратное средство управления. Если все это планируется дальше, то стоит это указать в конце доклада.
Название: Re: Моделирование регуляторов в среде MATLAB Simulink
Отправлено: ran от Вторник, апреля 10, 2018, 17:48:07
Цифра нашлась!
2462 1524 4573 1650

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

К сожалению, ссылка https://www.mathworks.com/help/slcontrol/ug/tune-pid-controller-to-balance-tracking-and-disturbance-rejection-performance.html). (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!
Название: Re: Моделирование регуляторов в среде MATLAB Simulink
Отправлено: knoppix от Вторник, апреля 10, 2018, 22:03:28
Цифра нашлась!
2462 1524 4573 1650

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

К сожалению, ссылка https://www.mathworks.com/help/slcontrol/ug/tune-pid-controller-to-balance-tracking-and-disturbance-rejection-performance.html (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
Название: Re: Моделирование регуляторов в среде MATLAB Simulink
Отправлено: ran от Среда, апреля 11, 2018, 08:21:28
Вот что крест животворящий прямая ссылка делает! А то требуют, дураки, какую-то лицензию!