Тема: «Работа Fuzzy Logic с блоками Simulink» — КиберПедия 

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Тема: «Работа Fuzzy Logic с блоками Simulink»

2019-11-28 1002
Тема: «Работа Fuzzy Logic с блоками Simulink» 0.00 из 5.00 0 оценок
Заказать работу

Цель работы: Приобретение навыков работы Fuzzy Logic с блоками Simulink.

 

Теоретическая часть

Система нечёткого вывода, созданные тем или иным образом с помощью пакета Fuzzy Logic Toolbox, допускают интеграцию с инструментами пакета Simulink, что позволяет выполнять моделирование систем в рамках последнего. Рассмотрим это на примере контроля уровня воды в баке.

Пример 1. Контроль уровня воды в баке.

На рисунке 1 изображен объект управления в виде бака с водой, к которому подходят две трубы: через одну трубу, снабженную краном, вода втекает в бак, через другую вытекает. Подачу воды в бак можно регулировать, больше или меньше открывая кран. Расход воды является неконтролируемым и зависит от диаметра выходной трубы (он фиксирован) и от текущего уровня воды в баке. Если понимать под выходной (регулируемой) переменной уровень воды, а под регулирующим элементом кран, то можно отметить, что подобный объект регулирования, с точки зрения его математического описания, является динамическим и существенно нелинейным.

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

Рисунок 1 – Схематическое представление объекта управления
(бака с водой)

В первом приближении функционирование регулятора можно описать набором из следующих правил:

1. If (level is okay) then (valve is no_change) (1)

2. If (level is low) then (valve is open_fast) (1)

3. If (level is high) then (valve is closefast) (1)

 4. If (level is okay) and (rate is positive) then (valve is close_slow) (1)

5. If (level is okay and (rate is negative) then (valve is openslow) (1),

что в переводе означает:

1. Если (уровень соответствует заданному), то (кран без изменения) (1)

2. Если (уровень низкий), то (кран быстро открыть) (1) 3. Если (уровень высокий), то (кран быстро закрыть) (1)

4. Если (уровень соответствует заданному) и (его прирост положительный), то (кран надо медленно закрывать) (1)

5. Если (уровень соответствует заданному) и (его прирост отрицательный), то (кран надо медленно открывать) (1)

Рисунок 2 – Блок-диаграмма модели системы управления уровнем воды в баке нечётким регулятором

 Ее можно вызвать из командной строки командой sltank, что приведет к открытию окна Simulink с блок-диаграммой указанной модели (Рисунок 2). Одновременно блок Fuzzy Logic Controller будет сопоставлен с системой нечеткого вывода, записанной в файле tank.fis. Для изучения процесса функционирования системы необходимо нажать кнопку Start панели инструментов блок-диаграммы модели и дважды щелкнуть левой кнопкой мыши по блоку Comparison (Сравнение). В появившемся окне этого блока будут показаны изменяющиеся во времени сигналы заданного (последовательность импульсов прямоугольной формы) и фактического уровней воды (Рисунок 3). Как видно, переходный процесс в системе имеет апериодическую форму и заканчивается достаточно быстро, т. е. качество регулирования следует признать хорошим.

Построение нечеткой модели с использованием блоков Simulink.

Для построения какой-то собственной моделирующей системы с использованием средств нечеткой логики и блоков Simulink рекомендуется просто скопировать блок Fuzzy Logic Controller из рассмотренной системы sltank (или какого-либо другого демонстрационного примера MATLAB) и поместить его в блок-диаграмму разрабатываемой системы.

Отметим, что функционирование указанных блоков осуществляется с использованием системной S-функции sffis.mex.

Запись этой функции такова: output = sffis(t,x,u,nag,nsmat), где output – выход нечеткого регулятора, t, х и flag – стандартные аргументы системной функции Simulink, fismat – идентификатор (имя) нечеткой системы вывода, и входной сигнал (вектор входных сигналов) регулятора.

По смыслу данная функция аналогична рассмотренной выше функции evalfis, но она оптимизирована для работы в среде Simulink.

Рисунок 3 – Результаты моделирования системы управления с нечётким регулятором

Практическая часть

Задание: Опишите набором из правил функционирование регулятора, представленного в соответствующем демонстрационном примере, представьте результат моделирования.

Вариант 4: slcp – демонстрация нечеткой системы управления перевернутым маятником.

                                

Рисунок 4 –Демонстрация модели нечеткой системы управления перевернутым маятником в Simulink

Рисунок 5 – Схематичное представление задачи «нечеткой системы управления перевернутым маятником»

Рисунок 6 – Анализ переходного процесса модели slcp

Модель slcp описана правилами нечеткого вывода по Мамдани и содер-жит:

— Четыре входа:

1. in1[-0.3000 0.3000]={{in1mf1, gbellmf(0.3000 2 -0.3000 0)}, {in1mf2, gbellmf(0.3000 2 0.3000 0) }};

2. in2 [-1 1]={{in2mf1, gbellmf(1 2 -1 0)}, {in2mf2, gbellmf(1 2 1 0) }};

3. in3 [-3 3]={{in3mf1, gbellmf(3 2, 3 0)}, {in3mf2, gbellmf(3 2 3 0) }};

4. in4 [-3 3]={{in4mf1, gbellmf(3 2 -3 0)}, {in4mf2, gbellmf(3 2 3 0) }};

— Один выход: out [-10, 10] = {

— {outmf1, linear(41.3729 10.0298 3.1623 4.2875 0.3386)},

— {outmf2, linear(40.4085 10.0534 3.1623 4.2875 0.2068)},

— {outmf3, linear(41.3729 10.0298 3.1623 4.2875 0.3386)},

— {outmf4, linear(40.4085 10.0534 3.1623 4.2875 0.2068)},

— {outmf5, linear(38.5609 10.1774 3.1623 4.2875 -0.0489)},

— {outmf6, linear(37.5965 10.1537 3.1623 4.2875 -0.1807)},

— {outmf7, linear(38.5609 10.1774 3.1623 4.2875 -0.0489)},

— {outmf8, linear(37.5965 10.1537 3.1623 4.2875 -0.1807)},

— {outmf9, linear(37.5964 10.1537 3.1623 4.2875 0.1807)},

— {outmf10, linear(38.5608 10.1773 3.1623 4.2875 0.0489)},

— {outmf11, linear(37.5964 10.1537 3.1623 4.2875 0.1807)},

— {outmf12, linear(38.5608 10.1773 3.1623 4.2875 0.0489)},

— {outmf13, linear(40.4083 10.0534 3.1623 4.2875 -0.2068)},

— {outmf14, linear(41.3728 10.0297 3.1623 4.2875 -0.3386)},

— {outmf15, linear(40.4083 10.0534 3.1623 4.2875 -0.2068)},

— {outmf16, linear(41.3728 10.0297 3.1623 4.2875 -0.3386)}};

Правила нечеткого вывода по Мамдани описывающие модель slbb:

1. in1==in1mf1 & in2==in2mf1 & in3==in3mf1 & in4==in4mf1 => out=outmf1 (1)

2. in1==in1mf1 & in2==in2mf1 & in3==in3mf1 & in4==in4mf2 => out=outmf2 (1)

3. in1==in1mf1 & in2==in2mf1 & in3==in3mf2 & in4==in4mf1 => out=outmf3 (1)

4. in1==in1mf1 & in2==in2mf1 & in3==in3mf2 & in4==in4mf2 => out=outmf4 (1)

5. in1==in1mf1 & in2==in2mf2 & in3==in3mf1 & in4==in4mf1 => out=outmf5 (1)

6. in1==in1mf1 & in2==in2mf2 & in3==in3mf1 & in4==in4mf2 => out=outmf6 (1)

7. in1==in1mf1 & in2==in2mf2 & in3==in3mf2 & in4==in4mf1 => out=outmf7 (1)

8. in1==in1mf1 & in2==in2mf2 & in3==in3mf2 & in4==in4mf2 => out=outmf8 (1)

9. in1==in1mf2 & in2==in2mf1 & in3==in3mf1 & in4==in4mf1 => out=outmf9 (1)

10. in1==in1mf2 & in2==in2mf1 & in3==in3mf1 & in4==in4mf2 => out=outmf10 (1)

11. in1==in1mf2 & in2==in2mf1 & in3==in3mf2 & in4==in4mf1 => out=outmf11 (1)

12. in1==in1mf2 & in2==in2mf1 & in3==in3mf2 & in4==in4mf2 => out=outmf12 (1)

13. in1==in1mf2 & in2==in2mf2 & in3==in3mf1 & in4==in4mf1 => out=outmf13 (1)

14. in1==in1mf2 & in2==in2mf2 & in3==in3mf1 & in4==in4mf2 => out=outmf14 (1)

15. in1==in1mf2 & in2==in2mf2 & in3==in3mf2 & in4==in4mf1 => out=outmf15 (1)

16. in1==in1mf2 & in2==in2mf2 & in3==in3mf2 & in4==in4mf2 => out=outmf16 (1)

 

Вывод: были приобретены навыки работы Fuzzy Logic с блоками Simulink.


 

Практическая работа №5

 Тема: «ИЗУЧЕНИЕ СВОЙСТВ ЛИНЕЙНОГО НЕЙРОНА И ЛИНЕЙНОЙ НЕЙРОННОЙ СЕТИ»

Цель работы: изучить свойства линейного нейрона.

 

Теоретическая часть

Искусственные нейронные сети (НС) представляют собой простейшие математические модели мозга. Понять основные принципы построения НС можно, рассматривая их как совокупность (сеть) отдельных структур (нейронов). Очень грубо структуру биологического нейрона можно описать следующим образом. Нейрон имеет сому – тело, дерево входов – дендриты, выход – аксон. На соме и на дендритах распола­гаются окончания аксонов других нейронов, называемых си­напсами. Принятые синапсами входные сигналы стремятся либо возбудить нейрон, либо затормозить. Когда суммарное возбуждение достигает некоторого порога, нейрон возбуждается и посылает по аксону сигнал другим нейронам. Каждый синапс обладает уникальной синаптической силой, которая пропорционально своему значению изменяет передаваемый на нейрон входной сигнал. В соответствии с приведенным описа­нием математическая модель нейрона представляет собой суммирующий пороговый элемент (рис. 1).

 

 

Рис. 1. Искусственный нейрон

 

 

Формула срабатывания нейрона:

 

 


Поделиться с друзьями:

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

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

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.006 с.