Аппаратная реализация микроконтроллеров на базе нечёткой логики
Министерство образования и науки Российской Федерации Федеральное государственное
бюджетное образовательное высшего профессионального образования «Московский государственный индустриальный университет» (ФГБОУ ВПО «МГИУ») |
|
Кафедра «Автоматика, информатика и системы управления» |
К У Р С О В А Я Р А Б О Т А
| ||
|
по дисциплине «Микропроцессорные системы
управления» ______________________________ | ||
на тему «Аппаратная реализация
микроконтроллеров на базе нечёткой логики»
| ||
|
Группа |
10331 |
|
|
Студент |
________ |
Д.А. Мустафин |
|
Преподаватель |
________
|
К.А. Палагута |
|
Оценка работы, Дата выполнения |
________
|
«___» ___________ |
МОСКВА 2008
Оглавление
Введение 3
Нечеткая логика в Матлабе 9
Общая структура нечёткого микроконтроллера 11
Реализация системы проектирования нечётких контроллеров 12
Примеры проектирования нечеткого контроллера в среде Matlab 13
Примеры некоторых реально существующих микроконтроллеров, реализованных на базе нечёткой логики 23
Семейство 16-разрядных микроконтроллеров Motorola 68HC12: архитектура, основные характеристики, средства программирования-отладки 24
Заключение 45
Список используемой литературы 47
Введение
Началом возникновения теории нечетких множеств (Fuzzy Sets Theory) можно считать 1965г., когда профессор Лотфи Заде (Lotfi Zadeh) из университета Беркли опубликовал основополагающую работу «Fuzzy Sets» в журнале «Information and Control». Эта работа заложила основы моделирования интеллектуальной деятельности человека и явилась начальным толчком к развитию новой математической теории.
Прилагательное «fuzzy» можно перевести на русский язык как нечеткий, размытый. Оно было введено в название новой теории с целью отдаления от традиционной четкой математики и булевой логики, оперирующих с четкими понятиями: «принадлежит - не принадлежит», «истина – ложь». Сама теория возникла, как «неудовлетворенность математическими методами классической теории систем, которая вынуждала добиваться искусственной точности, неуместной во многих системах реального мира, особенно в так называемых гуманистических системах, включающих людей».
Математическая теория нечетких множеств, позволяет давать описание нечетким понятиям и знаниям, оперировать этими знаниями и делать нечеткие выводы. Нечеткая логика, в основном, обеспечивает эффективные средства отображения неопределенностей и неточностей реального мира. Наличие математических средств отражения нечеткости исходной информации позволяет построить модель, адекватную реальности. Основанные на этой теории методы построения компьютерных нечетких систем существенно расширяют области применения компьютеров.
В последнее время нечеткое управление является одной из самых активных и результативных областей исследований применения теории нечетких множеств.
Применение нечеткого управления оказывается особенно полезным, когда технологические процессы являются слишком сложными для анализа с помощью общепринятых количественных методов, или когда доступные источники информации интерпретируются качественно, неточно или неопределенно. Многие комплексные процессы представляют собой многопараметрические системы и являются существенно нелинейными, а в ряде случаев нелинейными во времени. Для применения более сложных методов управления часто не хватает информации о процессе и надежных математических моделей, описывающих процесс. Знания о ходе процесса, на которые опирается оператор, реализуются им в виде правил «если – то», имеющих нечеткое информационное содержание. Этот же принцип использован при автоматизации управления процессами на базе нечеткого контроллера. Например: «если Х есть большое положительное число и Y есть малое положительное, то С есть положительное среднее» (для контроллера с двумя входными сигналами Х и Y и одной выходной переменной С). Термы «положительное большое», «положительное среднее» и «положительное малое» представляют собой так называемые лингвистические переменные, и являются неопределенными описаниями конечных значений входных переменных Х и Y, и выходной переменной С. Каждое лингвистическое правило интерпретируется начальным отношением, которое, в свою очередь, определяет в общем случае отношение между нечеткими входными и
нечеткими выходными значениями.
Экспериментально было доказано, что нечеткое управление более эффективно и выдает лучшие результаты, по сравнению с результатами, получаемыми при традиционных алгоритмах управления.
Началом практического применения теории нечетких множеств можно считать 1975г., когда Мамдани и Ассилиан (Mamdani and Assilian) построили первый нечеткий контролер для управления простым паровым двигателем.
В 1982г. Холмблад и Остергаард (Holmblad and Ostergaard) разработали первый промышленный нечеткий контроллер, который был внедрен в управление процессом обжига цемента на заводе в Дании.
Впоследствии было разработано множество подобных устройств, например, контроллер управления движением (Saski Akiyama, 1988), контроллер руки робота (Tanscheit Scharf, 1988), контроллер температуры теплого воздуха (Ollero Garc ia Cerezo, 1988) и множество других.
Успех первого промышленного контроллера, основанного на нечетких лингвистических правилах «Если – то» привел к всплеску интереса к теории нечетких множеств среди математиков и инженеров. Несколько позднее Бартом Коско (Bart Kosko) была доказана теорема о нечеткой аппроксимации (Fuzzy Approximation Theorem), согласно которой любая математическая система может быть аппроксимирована системой, основанной на нечеткой логике [5]. Другими словами, с помощью естественно-языковых высказываний - правил «Если – то», с последующей их формализацией средствами теории нечетких множеств, можно сколько угодно точно отразить произвольную взаимосвязь «входы – выход» без использования сложного аппарата дифференциального и интегрального исчислений, традиционно применяемого в управлении и идентификации.
Системы управления, основанные на нечеткой логике, разработаны и успешно внедрены в таких областях, как: управление технологическими процессами, управление транспортом, бытовая техника и электроника, медицинская диагностика, техническая диагностика, финансовый менеджмент, биржевое прогнозирование, распознавание образов. Область применения систем, основанных на нечеткой логике очень широка - от бытовой электроники и автоматики, до средств наведения ракет ПВО и управления боевыми вертолетами в военной технике.
Практический опыт разработки систем нечеткого логического вывода свидетельствует, что сроки и стоимость их проектирования значительно меньше, чем при использовании традиционного математического аппарата, при этом обеспечивается требуемый уровень робастности и прозрачности моделей.
Очевидной областью внедрения алгоритмов нечеткой логики являются всевозможные экспертные системы, в том числе:
- нелинейный контроль за процессами (производство);
- самообучающиеся системы (или классификаторы), исследование рисковых и критических ситуаций;
- распознавание образов;
- финансовый анализ (рынки ценных бумаг);
- исследование данных (корпоративные хранилища);
- совершенствование стратегий
В Японии это направление переживает настоящий бум. Здесь функционирует специально созданная лаборатория Laboratory for International Fuzzy Engineering Research (LIFE). Программой этой организации является создание более близких человеку вычислительных устройств. LIFE объединяет 48 компаний в числе которых находятся: Hitachi, Mitsubishi, NEC, Sharp, Sony, Honda, Mazda, Toyota. Из зарубежных (не Японских) участников LIFE можно выделить: IBM, Fuji, Xerox, а также к деятельности LIFE проявляет интерес NASA.
Мощь и интуитивная простота нечеткой логики как методологии разрешения проблем гарантирует ее успешное использование во встроенных системах контроля и анализа информации. При этом происходит подключение человеческой интуиции и опыта оператора.
В отличие от традиционной математики, требующей на каждом шаге моделирования точных и однозначных формулировок закономерностей, нечеткая логика предлагает совершенно иной уровень мышления, благодаря которому творческий процесс моделирования происходит на наивысшем уровне абстракции, при котором постулируется лишь минимальный набор закономерностей.
Нечеткие числа, получаемые в результате “не вполне точных измерений”, во многом аналогичны распределениям теории вероятностей, но свободны от присущих последним недостатков: малое количество пригодных к анализу функций распределения, необходимость их принудительной нормализации, соблюдение требований аддитивности, трудность обоснования адекватности математической абстракции для описания поведения фактических величин. В пределе, при возрастании точности, нечеткая логика приходит к стандартной, Булевой. По сравнению с вероятностным методом, нечеткий метод позволяет резко сократить объем производимых вычислений, что, в свою очередь, приводит к увеличению быстродействия нечетких систем.
Недостатками нечетких систем являются:
- отсутствие стандартной
- невозможность математического
анализа нечетких систем
- применение нечеткого подхода по сравнению с вероятностным не приводит к повышению точности вычислений.
К нечетким множествам
можно применять следующие
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-приложений, идеально подходит для интеграции прикладных устройств, созданных при помощи алгоритмов нечеткой логики.
В качестве примера можно
Примеры проектирования нечеткого контроллера в среде Matlab
Рис.2. Графический интерфейс
Перед генерацией структуры системы нечеткого вывода типа Сугено после вызова диалогового окна свойств зададим для первой из входных переменных 4 лингвистических терма, а для последующих – 3. В качестве типа их функций принадлежности выберем треугольные функции,а тип выходной переменной будет линейным (рис. 3).
Рис.3. Диалоговое окно для задания количества и типа функций принадлежности.
Для обучения нейронной сети воспользуемся гибридным методом обучения с уровнем ошибки 0, а количество циклов обучения зададим равным 10. После окончания обучения данной гибридной сети может быть выполнен анализ графика ошибки обучения (рис. 4), который показывает, что обучение практически закончилось после 2-го цикла.
Рис.4. График зависимости ошибки от количества циклов в процессе обучения.
Оценим структуру построенной нечеткой модели (рис. 5), количество правил в которой равно 81, что затрудняет их визуальный контроль и оценку.
Рис.5. Структура сгенерированной системы нечеткого вывода.
Для контроля и настройки параметров функций принадлежности входных переменных и правил нечетких продукций можно воспользоваться редактором (рис. 6,7).
Рис.6. Графический интерфейс
Рис.7. Графический интерфейс
Выполним проверку адекватности построенной нечеткой модели гибридной сети. Для этой цели сделаем ретроспективный прогноз значения курсовой стоимости USD на следующий банковский день, например, на 3 декабря 2002 г., считая для этого случая текущим банковским днем 30 ноября 2002 г.
Поскольку точность количественных значений, обеспечиваемая графическими средствами пакета Fuzzy Logic Toolbox, является недостаточной для решения данной задачи, воспользуемся функцией командной строки evalfis, формат вызова которой имеет вид:
out=evalfis([31.8424,31.84,31.
где 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.АВ.

- Аппаратная часть современного ПК: Дисковые устройства
- Аппаратное и программное обеспечение ЭВМ и сетей
- Аппаратное обеспечение сетей Token Ring
- Аппаратное представление персонального компьютера
- Аппаратное проектирование локальной вычислительной сети
- Аппаратно-студийный комплекс областного телецентра
- Аппаратно-технологическая схема производства глюкозамина из хитина
- Аппарат государственной власти и его структура
- Аппарат для гальванизации и лекарственного электрофореза «Поток 1» ГЭ – 50 – 2
- Аппарат для фильтрации сока I сатурации
- Аппарат (механизм) государства
- Аппарат (механизм) государства
- Аппарат (механизм) государства и принцип разделения властей
- Аппаратная и программная организация сервера