MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

Simulink

Работы-участники конкурса Simulink-моделей.

Исследование систем автоматического управления, классическую - одноконтурную, а также интеллектуальную с fuzzy-регулятором.

архив работы zip-файл

Котляров Роман Витальевич студент 5-го курса КемТИПП

Ямпольский Андрей Александрович программист каф. АПП и АСУ КемТИПП

В последние годы в системы автоматизации технологических процессов и производств начали активно внедряться модели, методы и технические средства, основанные на теории нечетких множеств. Широкому распространению fuzzy -систем управления в немалой степени способствует програм­мная система MATLAB, в составе которой имеется пакет программ по fuzzy -логике. Fuzzy Logic Toolbox позволяет создавать и редактировать fuzzy -системы управления с нечеткой логикой, называемые в терминах програм­мной системы MATLAB - Fuzzy Inference System или FIS. Эти системы можно создавать, используя как графические инструменты, так и команды рабочего окна MATLAB.

Кроме того, система MATLAB включает в себя пакет моделирования динамических систем Simulink, который в свою очередь позволяет при помощи стандартных блоков, входящих в его библиотеку, сформировать одноконтурную или многоконтурную систему автоматики с аналоговым или fuzzy-регулятором.

Смоделируем схему одноконтурной системы автоматического регулирования с аналоговым ПИД-регулятором в обратной связи (рисунок 1). Заметим, что все исследования проводятся при единичном ступенчатом воздействии.

Рисунок 1. Модель одноконтурной системы автоматического регулирования.

Из рисунка видим, что объект управления представляет собой последовательное соединение типовых звеньев автоматики: апериодического звена первого порядка и звена чистого запаздывания. Таким образом, передаточная функция объекта управления имеет вид:

.

Передаточная функция ПИД-регулятора имеет вид:

.

Значения параметров настройки ПИ-регулятора для данного объекта следующие: P=0.388, I=1/TИ=0.323. Значения параметров настройки ПИД-регулятора для данного объекта следующие: P=1.093, I=1/TИ =0.86, D=TД=0.209. Параметры рассчитаны с помощью метода расширенных частотных характеристик. Блок PID-controller представляет собой подсистему, то есть он образован при помощи более простых блоков системы. Внутренняя структура данного блока представлена на рисунке 2.

Рисунок 2. Внутренняя структура блока PID-controller.

Библиотека системы Simulink содержит блок fuzzy-регулятора. Сформируем модель одноконтурной системы автоматического регулирования с использованием данного блока, причём реализуем ПИ-закон регулирования. Для формирования входных сигналов по аналогии с блоком аналогового регулятора используем блок Integral (рисунок 3). Для каждой составляющей сигнала ПИ-регулятора заданы соответствующие коэффициенты. Таким же способом можно задать коэффициенты для входов fuzzy-регулятора, используя блок Gain (усилитель). Причём значения параметра Gain блоков Gain в линиях пропорциональной и интегральной составляющих сигнала соответствуют P и I настройкам аналогового ПИ-регулятора (т. е. 0.388 и 0.323). Однако количественное задание составляющих сигнала при помощи блоков Gain не рекомендуется использовать, поскольку это загромождает схему. Поэтому задают диапазоны изменения переменных непосредственно при синтезе нечёткой системы.

Рисунок 3. Модель одноконтурной системы автоматического регулирования с ПИ-подобным fuzzy-регулятором.

Теперь при помощи инструментов графического интерфейса пользователя (GUI) пакета "Fuzzy Logic Toolbox" создадим нечёткую систему, реализующую типовой аналоговый ПИ-регулятор. Заметим, что с помощью пакета "Fuzzy Logic Toolbox" можно строить нечеткие системы двух типов - Мамдани и Сугэно. Остановимся на системе типа Мамдани. Командой fuzzy в окне MATLAB вызываем окно Редактора фази-инференционной системы (Fuzzy Inference System Editor), выбираем тип системы - Мамдани, задаём два входа - для пропорциональной и интегральной составляющих и называем входные переменные, например, x1 и x2, а выходную - y.

Из данного окна вызываем окно Редактора функций принадлежности (Membership Function Editor) двойным щелчком мыши по изображению переменной x1 или при помощи меню Edit. Здесь для лингвистического описания каждой переменной выберем семь треугольных термов (NB,NM,NS,ZE,PS,PM,PB). Термы выходной переменной лучше выбирать непересекающимися. Это повысит чёткость регулирования. В этом же окне зададим диапазоны изменения переменных:

  • Для входных переменных регулятора рекомендуются симметричные диапазоны изменения, при этом и , то есть и ;

  • Для выходной переменной регулятора диапазон изменения рекомендуется брать в виде , где верхняя граница С при единичном ступенчатом воздействии варьируется от 1.1 до 2, чтобы выходной сигнал регулятора мог компенсировать это возмущение. По мере увеличения значения С уменьшается динамическая ошибка, но возрастают время регулирования и число колебаний переходного процесса. Поэтому рекомендуется С принимать равным 2, когда наблюдается оптимальное соотношение между величиной динамической ошибки, времени регулирования и количеством колебаний.

Теперь необходимо сформировать базу правил fuzzy-регулятора. В основу положен способ, предложенный в литературе. Линейный непрерывный ПИ-регулятор с передаточной функцией

(*)

можно заменить близким по стратегии и логике управления fuzzy-регулятором, если в качестве его выходной переменной рассматривать приращение управляющего воздействия Δy. Тогда закон регулирования (*) можно представить в следующей дифференциальной форме:

,

или в разностной форме:

.

Таким образом, для входных переменных ε(k) и Δε(k) и выходной Δy(k) может быть синтезирован fuzzy-регулятор, реализующий нелинейный закон

и эквивалентный в определённом смысле ПИ-регулятору.

Для нашего случая x1 соответствует сигналу рассогласования ε(k), x2 соответствует приращению сигнала рассогласования Δε(k), а y соответствует Δy(k). Лингвистические правила для такого ПИ-подобного fuzzy-регулятора приведены в таблице 1.

Таблица 1. Лингвистические правила для такого ПИ fuzzy-регулятора

ε

∆ε

NB

NM

NS

ZE

PS

PM

PB

NB

NB

NB

NB

NB

NM

NS

ZE

NM

NB

NB

NB

NM

NS

ZE

PS

NS

NB

NB

NM

NS

ZE

PS

PM

ZE

NB

NM

NS

ZE

PS

PM

PB

PS

NM

NS

ZE

PS

PM

PB

PB

PM

NS

ZE

PS

PM

PB

PB

PB

PB

ZE

PS

PM

PB

PB

PB

PB

Вызываем окно Редактора правил (Rule Editor) в меню Edit или нажатием Ctrl+3 и заполняем список правилами из таблицы 1. Правила формируются по типу: ЕСЛИ … И …, ТО…. Можно посмотреть пространство управления, вызвав окно Просмотра пространства управления(Surface Viewer) из меню View или комбинацией клавиш Ctrl+6. Полученный файл сохраним под именем fuzzy1.fis.

В окне параметров блока Fuzzy Logic Controller укажем имя файла fuzzy1. В окне модели в меню File выберем пункт Model Properties. В открывшемся окне выберем вкладку CallBacks и в поле Model pre-load function напишем:

fuzzy1=readfis('fuzzy1').

Данная команда будет каждый раз при открытии файла модели помещать файл fuzzy1.fis в WorkSpace (рабочее пространство системы MATLAB). Это необходимо для нормального функционирования модели. Стоит заметить, что при внесении изменений в fis-файл, нужно помещать его исправленную версию в WorkSpace либо при помощи пункта Export/To Workspace меню File, либо комбинацией клавиш Ctrl+T, либо каждый раз закрытием и открытием файла модели (однако последний вариант весьма утомителен).

В диалоговом окне Simulation Parameters меню Simulation во вкладке Advanced для опции Boolean logic signals необходимо установить значение off. При этом блоки логики будут допускать переменные в форме с плавающей точкой.

Графики переходных процессов для модели с аналоговым регулятором и модели с fuzzy-регулятором представлены на рисунке 4.

Как видим из рисунка время регулирования и число колебаний несколько больше для системы с fuzzy-регулятором, однако динамическая ошибка значительно уменьшилась.

а) б)

Рисунок 4. Графики переходных процессов для модели с аналоговым регулятором (а) и модели с fuzzy-регулятором (б).

Для реализации ПИД - подобного fuzzy-регулятора необходимо в структурную схему модели добавить дифференциальную составляющую сигнала рассогласования, используя блок дифференцирования Derivative (рисунок 5).

Рисунок 5. Модель одноконтурной системы автоматического регулирования с ПИД-подобным fuzzy-регулятором.

За основу fis-файла, реализующего ПИД-закон регулирования, может быть взят файл fuzzy1.fis. Необходимо в окне Редактора фази-инференционной системы добавить ещё одну входную переменную x3. В окне Редактора функций принадлежности зададим три треугольных терма для описания этой переменной - N, ZE и P. Для выходной переменной добавим два терма N и P (рисунок 6).

Рисунок 6. Термы выходной переменной ПИД-подобного fuzzy-регулятора.

Диапазоны изменения переменных определяются аналогично:

  • x1=[-0.915;0.915]

  • x2=[-1.163;1.163]

  • x3=[-1;1] (первоначально)

  • y=[0;2]

Вызываем окно Редактора правил и дополняем список правил следующими тремя правилами:

  • IF (x3=N) THEN (y=N)

  • IF (x3=ZE) THEN (y=ZE)

  • IF (x3=P) THEN (y=P)

Действительно, если скорость положительна, то выходной сигнал регулятора должен увеличиться, чтобы предупредить увеличение сигнала рассогласования, и, наоборот.

Теперь сохраним отредактированный файл под именем fuzzy2.fis. В окне параметров блока Fuzzy Logic Controller модели (рисунок 5) укажем имя файла fuzzy2. В окне параметров блока Fuzzy Logic Controller укажем имя файла fuzzy1. В окне модели в меню File выберем пункт Model Properties. В открывшемся окне выберем вкладку CallBacks и в поле Model pre-load function напишем:

fuzzy2=readfis('fuzzy2').

В диалоговом окне Simulation Parameters меню Simulation во вкладке Advanced для опции Boolean logic signals необходимо установить значение off.

Более точная настройка диапазона изменения Д-составляющей осуществляется методом подбора. Например, для данного объекта [-0.16;0.16].

Графики переходных процессов для модели с аналоговым регулятором и модели с ПИД - подобным fuzzy-регулятором представлены на рисунке 7.

а) б)

Рисунок 7. Графики переходных процессов для модели с аналоговым регулятором (а) и модели с ПИД - подобным fuzzy-регулятором (б).

Из рисунка 7 видим, что время регулирования и число колебаний больше для системы с fuzzy-регулятором, однако динамическая ошибка значительно уменьшилась.

Наличие Д-составляющей должно уменьшить динамическую ошибку системы. Проверим, так ли это? Сравним графики переходных процессов для ПИ и ПИД fuzzy-регуляторов (рисунок 8).

а) б)

Рисунок 8. графики переходных процессов для ПИ (а) и ПИД (б) fuzzy-регуляторов.

Динамическая ошибка действительно уменьшилась, однако время регулирования и число колебаний значительно больше для ПИД fuzzy- регулятора. На практике наибольшее распространение получил ПИ-регулятор, поскольку Д-составляющую настраивать нужно точно, иначе в системе возникнут колебания.

Вывод:

Легко воспринимаемые принципы построения моделей заключаются в использовании библиотеки стандартных модулей системы MATLAB 6.5 и SIMULINK 4 - блоков, которые при объединении позволяют получать модели сложных систем, в том числе систем автоматического управления (САУ). Применяя данные методы можно повысить восприимчивость студентов в освоении обширного математического аппарата по Теории автоматического управления, в том числе освоение передовых решений в области автоматики. Лабораторная база по fuzzy-системам доведена с помощью системы MATLAB 6.5 и SIMULINK 4 до практической реализации в таком виде, что позволяет настраивать нечёткий регулятор в совокупности с простыми давно освоенными моделями объектов в виде апериодических звеньев автоматики. При использовании модели можно быстро освоить принципы нечёткого логического аппарата применительно к системам автоматики.


Поиск по сайту:

Система Orphus

Яндекс.Метрика