Аппаратная реализация микроконтроллеров на базе нечёткой логики

Автор работы: Пользователь скрыл имя, 18 Мая 2012 в 20:18, курсовая работа

Описание работы

Прилагательное «fuzzy» можно перевести на русский язык как нечеткий, размытый. Оно было введено в название новой теории с целью отдаления от традиционной четкой математики и булевой логики, оперирующих с четкими понятиями: «принадлежит - не принадлежит», «истина – ложь». Сама теория возникла, как «неудовлетворенность математическими методами классической теории систем, которая вынуждала добиваться искусственной точности, неуместной во многих системах реального мира, особенно в так называемых гуманистических системах, включающих людей».

Содержание работы

Введение 3
Нечеткая логика в Матлабе 9
Общая структура нечёткого микроконтроллера 11
Реализация системы проектирования нечётких контроллеров 12
Примеры проектирования нечеткого контроллера в среде Matlab 13
Примеры некоторых реально существующих микроконтроллеров, реализованных на базе нечёткой логики 23
Семейство 16-разрядных микроконтроллеров Motorola 68HC12: архитектура, основные характеристики, средства программирования-отладки 24
Заключение 45
Список используемой литературы 47

Файлы: 1 файл

Кр МСУ_10сем.docx

— 296.40 Кб (Скачать файл)

1.объединение 

2.пересечение 

3.дополнение 

4.концентрация 

5.размывание (или размытие)

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

Дефаззификация - процесс, обратный фаззификации.

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

Степень принадлежности - это не вероятность, т.к. неизвестна функция распределения, нет повторяемости экспериментов. Так, если взять из рассмотренного ранее примера прогноза погоды два взаимоисключающих события: будет дождь и не будет и присвоить им некоторые ранги, то сумма этих рангов необязательно будет равна 1, но если равенство все-таки есть, то нечеткое множество считается нормированным. Значения функции принадлежности M(x) могут быть взяты только из априорных знаний, интуиции (опыта) , опроса экспертов.

В нечеткой логике вводится понятие лингвистической  переменной, значениями которой являются не числа, а слова естественного языка, называемые термами.

 

Нечеткая логика в Матлабе

 

Fuzzy logic toolbox - встроенная в Матлаб совокупность функций, обеспечивающая набор средств, позволяющих:

- создавать  и редактировать нечеткие системы  внутри среды Матлаб;

- встраивать  нечеткую подсистему в Симулинк (поставляется с Матлабом) при  моделировании общей системы;

- построить  нечеткую систему в Матлабе  в виде процедуры, вызываемой  из программы, написанной на  языке С++.

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

- функции  командной строки (command line functions);

- графический  интерактивный интерфейс; 

- использование  встроенных блоков Симулинка. 

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

type имя_функции 

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

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

Третья категория - моделирование в среде Симулинк. Здесь подсистемы представляются в виде блоков - можно соединить каким-либо образом и сразу получить результаты.

 

 

В Матлабе есть множество  встроенных функций принадлежности, в частности:

- сигмоидальная; 

- двухсторонняя  сигмоидальная; 

- гауссова;

- колоколообразной  формы 

- S-функция  принадлежности;

- Z-функция  принадлежности;

- трапециевидная;

- треугольная  и др.

Все действия над нечеткими числами задаются минимальным набором функций  и происходят внутри программы. Таким  образом, пользователю необязательно изучать все тонкости теории нечетких множеств, достаточно только определить все входные и выходные переменные и задать таблицу правил, а всю оставшуюся "грязную" работу сделает Matlab. Дефаззификация осуществляется одним из пяти методов, указанных программистом. Кроме того, можно вывести на экран согласно введенным правилам результирующие поверхности управления в зависимости от комбинации входов, схему получившейся нечеткой программы и это лишь малая часть всех возможностей данного тулбокса. Одним словом, работа в этой среде доставляет сплошное удовольствие.

 

Общая структура  нечёткого микроконтроллера

 

Общая структура  микроконтроллера, использующего нечеткую логику, показана на рис.1. Она содержит в своем составе следующие составные части:

- блок фаззификации;

- базу знаний;

- блок решений; 

- блок дефаззификации.

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

Блок решений использует нечеткие условные (if – then) правила, заложенные в базе знаний, для преобразования нечетких входных данных в требуемые управляющие воздействия, которые носят также нечеткий характер.

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

 
 
Рис.1. Общая структура нечеткого  микроконтроллера.

В качестве реальных микроконтроллеров, поддерживающих нечеткую логику выступают 68HC11, 68HC12 фирмы Motorola, MCS-96 фирмы Intel, а также некоторые другие.

Реализация  системы проектирования нечётких контроллеров

 

        Приложения с нечеткой логикой развивались не только на логическом уровне. Разработчики систем управления начали встраивать нечеткую логику непосредственно в процессоры. Так, в 1986 году, компания AT&T Bell Labs начала создавать процессоры со встроенной нечеткой логикой обработки информации. В связи с популярностью и распространенностью традиционных микроконтроллеров, в Европе и США ведутся интенсивные работы по интеграции fuzzy команд в ассемблеры для программирования промышленных контроллеров (чипы Motorola 68HC11, 68HC12, 68HC21, Intel MCS96). А также, разрабатываются различные варианты fuzzy-сопроцессоров, работающих совместно с центральным процессором по общей шине данных, и помогающих в обработке информации и оптимизации использования правил (Siemens Nixdorf).

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

         Компания Аптроникс(Aptronix) предлагает использовать язык Java, имеющий все необходимое для достаточно адекватного воспроизведения инструкций нечеткой логики реализуемого приложения методами языка. Кроме того, использование Java API открывает новые перспективы для исследования fuzzy-систем. Сеть Internet, как глобальная среда распространения Java-приложений, идеально подходит для интеграции прикладных устройств, созданных при помощи алгоритмов нечеткой логики.

       В качестве примера можно привести  устройство для управления душем,  эмуляция работы которого, написана  на языке Java.

 

Примеры проектирования нечеткого контроллера в среде Matlab

 

 

Рис.2. Графический интерфейс редактора  ANFIS после загрузки обучающих данных.

Перед генерацией структуры системы нечеткого  вывода типа Сугено после вызова диалогового  окна свойств зададим для первой из входных переменных 4 лингвистических терма, а для последующих – 3. В качестве типа их функций принадлежности выберем треугольные функции,а тип выходной переменной будет линейным (рис. 3).

 

Рис.3. Диалоговое окно для задания  количества и типа функций принадлежности.

 

Для обучения нейронной сети воспользуемся гибридным  методом обучения с уровнем ошибки 0, а количество циклов обучения зададим равным 10. После окончания обучения данной гибридной сети может быть выполнен анализ графика ошибки обучения (рис. 4), который показывает, что обучение практически закончилось после 2-го цикла.

Рис.4. График зависимости ошибки от количества циклов в процессе обучения.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оценим  структуру построенной нечеткой модели (рис. 5), количество правил в  которой равно 81, что затрудняет их визуальный контроль и оценку.

Рис.5. Структура сгенерированной  системы нечеткого вывода.

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

Рис.6. Графический интерфейс редактора  FIS.

Рис.7. Графический интерфейс редактора  функций принадлежности встроенной системы нечеткого вывода для проверки первой входной переменной.

Выполним  проверку адекватности построенной  нечеткой модели гибридной сети. Для этой цели сделаем ретроспективный прогноз значения курсовой стоимости USD на следующий банковский день, например, на 3 декабря 2002 г., считая для этого случая текущим банковским днем 30 ноября 2002 г.

Поскольку точность количественных значений, обеспечиваемая графическими средствами пакета Fuzzy Logic Toolbox, является недостаточной для решения данной задачи, воспользуемся функцией командной строки evalfis, формат вызова которой имеет вид:

out=evalfis([31.8424,31.84,31.84,31.8382], priceUSD)

где out - условное имя выходной переменной; 31.8424 - значение курсовой стоимости USD на 30.11.02; 31.84 - значение курсовой стоимости USD на 29.11.02; 31.84 - значение курсовой стоимости USD на 28.11.02; 31.8382 - значение курсовой стоимости USD на 27.11.02; ргiсеUSD - имя структуры FIS, предварительно загруженной в рабочую область системы МАТI.АВ.

Информация о работе Аппаратная реализация микроконтроллеров на базе нечёткой логики