WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     | 1 ||

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Леонтьев А.Г. ...»

-- [ Страница 2 ] --

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

Этап 2. Построение нечетких правил.

Большинство нечетких систем используют продукционные правила для описания зависимостей между лингвистическими переменными. Типичное продукционное правило состоит из антецедента (часть ЕСЛИ...) и консеквента (часть ТО...). Антецедент может содержать более одной посылки. В этом случае они объединяются посредством логических связок “И” или “ИЛИ” т.е. операндов MIN/MAX. Сам процесс вычисления нечеткого правила носит название нечеткого логического вывода и подразделяется на два этапа: обобщение и заключение.

Например, для системы управления башенным краном, функциональная схема которой показана на рис. 6.10, входными переменными являются расстояние (дистанция) от каретки до стены d[м], и угол отклонения груза от вертикали °, а выходной переменной - мощность, подаваемая на двигатель каретки m. Допустим, что каждая из этих переменных имеет три терма - нулевое, среднее и большое, которым соответствуют свои характеристические величины:

Рис. 6.10 Функциональная схема управления башенным краном.

D0 - нулевое (малое) расстояние;

Dср - среднее расстояние;

Dб - большое расстояние;

0 - нулевой (малый) угол;

ср - средний угол ;

б - большой угол;

М0 - нулевая (малая) мощность;

Мср - средняя мощность;

Мб - большая мощность;

Все эти величины принимают значения на интервале {0-1}.

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

ЕСЛИ Дистанция=средняя И Угол=малый, ТО Мощность=средняя.

С учетом введенных выше обозначений это правило можно представить в виде логической формулы Мср = Dср 0 = min[Dср, 0].

После вычисления всех правил получается нечеткое значение выходной переменной в виде степеней принадлежности ее термов. В данном примере - М0, Мср, Мб. Чтобы исполнительное устройство могло срабатывать, необходимо перейти от степеней принадлежности к значению выходной физической величины (в данном случае мощности m). Этот процесс носит название дефаззификации.

Этап 3. Дефаззификация.

Наиболее распространены три способа дефаззификации:

-метод центра максимума (CoM), при котором выходная величина является средним значением величины, полученной через вычисленные степени принадлежности - m0, mср, mб;

т.е.

m=(1/3)(m0+mср+mб);

-метод набольшего значения (MoM), при котором выбирается наибольшее значение из полученных, т.е. m=MAX(m0,mср,mб);

-метод центроида (CoA), при котором значение выходной величины является координатой центра тяжести фигуры, получаемой усечением характеристических функций выходной величины полученными значениями их степеней принадлежности.

Рассмотрим более подробно разработку алгоритмов функционирования системы управления башенным краном.

Этап 1. Фаззификация.

На этом этапе разрабатываются функции принадлежности для всех трех переменных, показанные на рис. 6.11.

Этап 2. Построение продукционных правил.

Перечислим все возможные комбинации входных переменных D00, D0ср, D0б, Dсрб;

- М Dср0, Dсрср, Dбб;

- Мср Dб0, Dбср;

- Мб Разобьем их на три группы, соответствующие трем термам выходной переменной, например, так, как показано выше.

На основании этого разбиения можем написать формулы, соответствующие продукционым правилам вычисления выходных переменных М0=D0 Dсрб=max[D0 ;

min(Dсрб)] (6.6) Мср=DсрсрDбб=max[min(Dсрср);

min(Dбб)] Мб=Dб(0б)=min[Dб ;

max(0ср)] Произведем вычисления для конкретных значений d=25м и =4°, см. табл. 6.1.

Результаты вычисления по формулам (6.6) Таблица 6.1.

D0 Dср Dб М0 Мср Мб 0 ср б 0.4 0.6 0 0.3 0.7 0 0.3 0.6 М0=max[0.3 ;

min(0.7;

0)]=0. Мср=max[min(0.7;

0.6);

min(0;

0)]=0. Мб=min[0 ;

max(0.4;

0.6)]= Этап 3. Дефаззификация.

Принцип дефаззификации показан на рис. 6.11.в),:

-по методу CoM получим m=4.5 квт;

-по методам MoM и CoA m=5 квт.

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

а) Рис. 6.11. Функции принадлежности входных (а,б) и выходной (в) величин системы управления башенным краном.

6.3.Проектирование систем управления динамическими объектами с использованием алгоритмов нечеткой логики на стандартных микроконтроллерах.

После бурного старта прикладных нечетких систем в Японии, многие разработчики в США и Европе обратили внимание на новую технологию. Но к этому моменту время было упущено и мировым лидером в области нечетких систем стала Япония. К концу 80-х годов в этой стране был налажен выпуск специализированных нечетких контроллеров выполненных по технологии СБИС. Догонять японцев значило потерять массу времени. Поэтому фирмой Intel было принято альтернативное решение. Имея большое количество разнообразных контроллеров от MCS-51 до MCS-96, которые на протяжении многих лет успешно используются во многих приложениях, Intel решила предоставить разработчикам средство разработки приложений на базе этих контроллеров, но с использованием технологии нечеткости. Создание подобной системы позволило избежать значительных затрат на создание собственных нечетких контроллеров, а разработанная система, получившая название fuzzyTECH, завоевала огромную популярность не только в США и Европе, но и в Японии.

Сейчас существует много версий fuzzyTECH. Все они различаются как по своим возможностям, так и по своей цене. Самый простой из семейства fuzzyTECH - это пакет fuzzyTECH Explorer Edition. Explorer - это великолепное средство обучения. Он предоставляет пользователю большие возможности по практическому освоению нечеткой технологии. Существует и более мощный профессиональный пакет fuzzyTECH MCU-96, ориентированный на микроконтроллеры Intel семейства MCS-96. Еще один вариант - это fuzzyTECH On-line Edition.

Этот пакет позволяет отлаживать готовую систему, отлавливая ошибки прямо “на лету”. В приложениях, работающих в реальном масштабе времени, это незаменимое средство отладки.

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

FuzzyTECH - это полностью графическое средство поддержки разработки приложений на основе нечеткой логики. Это средство моделирования и оптимизации всего проекта. Обладает совместимостью с обычными средствами разработки. Графическое представление на экране всех стадий разработки позволяет найти множество путей оптимизации проекта. Наконец, это генератор кода, который поддерживает большинство современного оборудования, при этом разрабатываемый код может быть сгенерирован как код языка C. Ассемблерный код весьма функционален, точно соответствует возможностям применяемого аппаратного обеспечения и типу микроконтроллера.

Обычно выделяется пять стадий разработки проекта с помощью fuzzyTECH:

1. Формализация поставленной задачи (определение лингвистических переменных, сопоставление термов с конкретными физическими значениями);

2. Разработка базы правил, определяющих стратегию управления (задание метода дефаззификации выходных данных);

3. Оптимизация разработанной системы в режиме off-line (интерактивный анализ поведения системы с использованием заранее подготовленных данных или при помощи программной модели объекта управления);

4. Оптимизация в режиме on-line (подключение созданной системы управления к реальному объекту и оптимизация различных компонентов системы в реальных условиях;

так как в модели объекта управления невозможно учесть все тонкости процесса, то данный режим отладки весьма важен при создании систем управления);

5. Реализация (выбирается вариант генерируемого кода;

полученный код для микропроцессора может быть связан с основной программой либо записан в ПЗУ системы управления).

При использовании пакета fuzzyTECH все шаги разработки осуществляются посредством нажатий кнопок мыши. Внутренняя работа fuzzyTECH проводится с использованием языка FTL (Fuzzy Technology Language). FTL - это аппаратно независимый объектно-ориентированный язык для разработки нечетких систем. Он имеет открытую архитектуру и может быть расширен в зависимости от потребностей пользователя.

Работа над созданием fuzzyTECH началась в середине 80-х годов исследовательской группой под руководством профессора Ганса Циммерманна (Hans Zimmermann), который более 20 лет является наиболее известным специалистом в области теории нечетких множеств. Первая версия пакета появилась в 1990 году. В настоящий момент существует версия для MS-Windows 3.1. Для ее запуска требуется 386 (или выше) PC с графическим адаптером VGA, DOS 5.0 (или выше) и MS-Windows 3.1 (или выше), запущенная в расширенном режиме. Так как fuzzyTECH интенсивно использует графику, то рекомендуется цветной графический монитор с разрешением 800x600 или 1024x768. Для цветных графиков рекомендуется 256-цветный графический режим. Все функции fuzzyTECH доступны с клавиатуры, следовательно мышь не обязательна (но очень желательна). FuzzyTECH производится немецкой фирмой INFORM, которая имеет отделения в Германии, США и Японии.

Система Разработки fuzzyTECH содержит:

o Редакторы (Editors).

o Отладчик (Debugger).

o Анализатор (Analyzer).

o Генератор Кодов (Code Generation) для реализации нечетких систем.

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

FuzzyTECH использует стандартные MS-Windows функциональные назначения.

FuzzyTECH может использоваться с мышью или клавиатурой. Обычно, объект выбирается единственным нажатием кнопки мыши. Двойное нажатие на объекте обычно активизирует окно редактирования свойств объекта. Используя клавиатуру, [Ctrl][F6] клавиши позволяют переключать фокус между окнами основного окна. Внутри окна, [ТАБ] выбирает разные группы. Используйте клавиши управления курсором, чтобы перемещаться внутри группы и клавишу [Enter], чтобы активизировать ту или иную опцию. Некоторые объекты, как например, определенные точки в редакторе лингвистических переменных или объекты редактора проекта, могут быть перемещены внутри окна. Для того, чтобы разместить эти объекты с помощью клавиатуры, сначала выберите объект, который нужно переместить используя [ТАБ], активизируйте его [Enter] и переместите клавишами управления курсором и установите его, снова нажав [Enter].

Каждое окно в fuzzyTECH имеет собственное всплывающее меню для опций доступных только для этого окна. Для того, чтобы сделать доступным меню или нажмите над соответствующим окном правой кнопкой мыши или используйте клавишу [Shift] вместе с нажатием левой кнопки мыши. [Shift][F10] или [F9] также могут использоваться для доступа к меню.

При запуске, fuzzyTECH открывает два окна - Окно Редактора Проекта и Окно Лингвистических Переменных (LV) (рис. 6.12). Только одно окно редактора проекта и одно LV окно могут быть открыты одновременно. Ни одно из этих окон не может быть закрыто в течение сеанса работы с fuzzyTECH, но столько окон лингвистических переменных (LV) можно открыть, сколько определено переменных. Редактор Проекта содержит структуру системы нечеткой логики, то есть интерфейсы и блоки правил в то время как LV-окно содержит список всех лингвистических переменных системы.

Большинство возможностей редактирования доступны из различных окон редактирования с помощью всплывающих меню:

LV Окно:

o Редактор Лингвистических Переменных o Окно Определения Базовой Переменной (Base Variable Dialog Box) o Окно Определения Терма (Term Dialog) Редактор проекта:

o Окно Определения Блока Правил (Rule Block Dialog) o Табличный Редактор Правил (Spreadsheet Rule Editor) o Матричный Редактор Правил (Matrix Rule Editor) o Окно Определения Опций Интерфейса (Interface Options Dialog) o Окно Определения Замечаний (Remark Dialog) Лингвистические Переменные указываются в алфавитном порядке в Рис. 6.12. Вид окна fuzzyTECH при запуске системы.

LV-окне. LV-окно всегда открыто и может быть свернуто до пиктограммы, но не закрыто. LV окно содержит все лингвистические переменные текущего проекта по именам в алфавитном порядке. Если нужно всегда указывать переменные в другом порядке, продолжите все имена переменных буквами, например 'AA_FirstVar', 'AB_SecVar'.

В нечеткой логике, различные величины для данной лингвистической переменной представляют собой понятия, а не числа. В нечеткой логике, даже приближенные описания такие как “чрезвычайно близко” и “очень далеко” возможны, поскольку каждый лингвистический терм представлен специфическим нечетким множеством, названным Функцией Членства.

Конечно, техническая величина измерима как точная. Степень с которой точная величина принадлежит ко множеству представлена числом, лежащим между 0 и 1. Эта величина названа Степень Членства (или степень принадлежности) (Membership Function - MBF). 0 означает, что переменная определенно не принадлежит ко множеству;

1 отражает абсолютное членство.

Величины между 0 и 1 представляют частичное членство, таким образом учитываясь в выражениях, которые частично истинны и частично ложны (задание, которое невозможно выполнить используя стандартную логику). В нечеткой логике, Степень Членства обычно нормирована в интервале [0;

1]. Технические цифры представлены на горизонтальной оси функции, а степени членства на вертикальной. Технические цифры названы базовой переменной. Хотя научные публикации предложили много разных типов функций членства для нечеткой логики, в большинстве практических приложений используются Стандартные Функции Членства. Стандартные Функции Членства могут быть в общем представлены L формой определения. Научные исследования предлагают несколько иной подход к этой задаче.

Он базируется на психо-лингвистическом исследовании человеческой классификации длительных переменных, получающим S-форму функции членства. Пока большинство приложений использует стандартные MBF через S-тип MBF, хотя некоторые методы вывода функций членства и некоторая техника адаптации требует более общих функций. Для удобства проектирования этих типов функций членства и для наиболее эффективного динамического кодового представления, функции произвольного членства наилучшим образом приближенно представимы как линейные многоугольники. Стандартные функции членства - Z, Лямбда, Pi и S-типы (рис. 6.9). Все эти типы стандартных функций математически могут быть представлены как часть функций - линейных многоугольников с вплоть до 4 определяющих точек.

FuzzyTECH позволяет определять ассиметричный характер параметра "форма". Имейте в виду, что S-типа функции членства требуют больше динамического кода и больше вычислительного времени, если они не сохранены как таблицы.

Фаззификация означает оценку всех степеней членства в точке специфической операции.

Результат фаззификации используется в качестве входа для Нечетких Правил. Если переменная используется в качестве выходной в нечеткой системе, лингвистические термы могут быть вновь переведены в точные физические величины. Эти вычисления названы дефаззификацией.

В большинстве приложений, количестве используемых термов - между 3 и 7. Менее чем используемых терма - редкое явление вследствие того, что, когда люди оценивают реальные числа, те которые имитируют лингвистические переменные, они обычно имеют по крайней мере три величины в уме - два предела и середина. Количество используемых термов редко превышает 7 поскольку оценка чисел включает краткосрочную память, которая лучше всего работает с не более чем 7 символическими величинами. Переменные с “центром” или “нулем” наилучше работают с нечетным количеством термов (рис. 6.13).

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

Это Рис. 6.13. Вид окна fuzzyTECH-редактирование термов.

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

Если большее термов нужно создать в течении разработки, то они могут легко быть добавлены при использовании fuzzyTECH.

Большинство нечетко-основанных систем используют продукционные правила, чтобы представить отношения между лингвистическими переменными и получить данные от входов.

Продукционные правила состоят из условия (ЕСЛИ-часть) и вывода (ЗАТЕМ-часть). ЕСЛИ часть может состоять из более чем одного предусловия, компонуемых вместе лингвистическими конъюнкциями (И и ИЛИ) (рис. 6.14).

Используя стандартные MAX-MIN/MAX-PROD методы, оптимизация базового правила часто состоит из произвольного дополнения/удаления правила. Этот метод может дать результат по методу проб и ошибок так как индивидуальное значение правила может быть выражено только как 0 или 1. По этой причине, большинство редакций fuzzyTECH поддерживают усовершенствованную стратегию вывода - Нечеткие Ассоциативные Карты (FAM). С FAM, каждое правило наделено Степенью Поддержки (DoS), представляющей индивидуальное значение правила. Таким образом правила сами могут быть "нечетки" - знача, с достоверностью между 0 и 1. Если работа с нечеткими технологиями только начинается, то используйте правила со степенью поддержки только 0 и 1.

Рис. 6.14. Вид окна fuzzyTECH-редактирование правил.

Достоверность вывода вычисляется компоновкой достоверности условия в целом со степенью поддержки оператором композиции. Когда продукционный оператор используется в качестве оператора композиции, степень поддержки отражает “значение” правила.

Результат, полученный из оценки нечетких правил - нечеткий. Функции Членства используются, чтобы вновь перевести нечеткий вывод в точную величину. Этот перевод известен как дефаззификация и может быть выполнен с использованием различных методов.

Дефаззификация, используемая редакциями fuzzyTECH:

o CoM - Центр Максимума - метод используется для большинства нечетких логических приложений.

o CoA - Центр Области - метод подобен CoM.

o MoM - Значение Максимума - метод используется для приложений распознавание образов.

o MoM BSUM и CoA BSUM - варианты MoM и CoA, которые оптимизировались для реализации эффективных СБИС.

Опция Нечеткий Выход подавит процедуру дефаззификации при использовании генерации кода.

Методы дефаззификации CoM и CoA дают в результате “наилучшее компромиссное решение”, MoM дает в результате "большинство правдоподобных решений". В управляющих приложениях, CoM - наиболее часто используется, поскольку выходная величина представляет наилучший компромисс между всеми результатами логического вывода. MoM часто используется в распознавании образов и приложениях классификации и правдоподобное решение будет здесь наиболее подходящим. Научная литература предложила многие другие стратегии дефаззификации, которые до сих пор редко использовались в промышленных приложениях. Поскольку fuzzyTECH также учитывает пропуск дефаззификации, может также использоваться метод дефаззификации определяемый пользователем.

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

Литература:

1. Микропроцессорные системы автоматического управления / Бесекерский В.А.

и др. - Л.:Машиностроение, Лен. отд., 1988 - 365с.

2. Боборыкин А.В. и др., Однокристальные микроЭВМ, М.:МИКАП, 3. Гребнев В.В., Однокристальные микроЭВМ (микроконтроллеры) семейства MCS-96, 4. Микропроцессоры в системах автоматического управления. INTEL 8XC196MC: Учеб. пособие / Бутырин Н.Г. и др.: СПбГТУ, СПб., 1995, 115с.

5. Изерман Р., Цифровые системы управления: пер. с англ. - М.: Мир, 1984 - 541с., ил.

6. Микропроцессорное управление электроприводами станков с ЧПУ. / Тихомиров Э.Л. и др. - М.: Машиностроение, 7. Заде Л. Понятие лингвистической переменной и его применение к принятию приближенных решений., М.: Мир, 1976, 165с.

8. Прикладные нечеткие системы / Тэрано Т., Асаи К., Сугено М.,

Pages:     | 1 ||



© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.