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

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

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

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

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

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

Файлы: 1 файл

Кр МСУ_10сем.docx

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

После выполнения этой команды с помощью разработанной  нечеткой модели будет получено значение выходной переменной для 3.12.02, равное З1.8897 (рис. 8). Сравнивая полученное значение с соответствующим расчетным значением, можно констатировать абсолютное совпадение этих значений.

 

Рис.8. Окно команд с отображением результата оценки построенной нечеткой модели гибридной сети.

 

 

      Существуют также среды для разработки нечетких контроллеров, такие как FuzzyStudio(STMicroelectronics), Visual FIVE (STMicroelectronics), FuzzyTech(INFORM GmbH), позволяющие эмулировать нечеткое управление на ядре конкретного микроконтроллера, или сформировать программный код на конкретном языке программирования.

      Рассмотрим процесс проектирования  нечеткого контроллера.

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

     Выберем в качестве оптимального рабочего диапазона температуру T в пределах 65°C. Мотор вентилятора работает в промежутке от 2 до 5.5 V.

      Воспользуемся программой Matlab для  построения модели.

     

 

Определяем  входные и выходные переменные:

 

Рис. 9. Окно интерфейса определения структуры правил

 

Определяем  функции принадлежности для входной  переменной:

 

 

Рис. 10. Окно интерфейса определения входной переменной

 

И для  выходной переменной:

 

 

Рис. 11. Окно интерфейса для определения выходной переменной

 

    Определим правила:

    - Если температура холодная, то напряжение низкое.

    (If Temp is cold then Volt is low);

     - Если температура нормальная, то напряжение среднее.

    (If Temp is normal then Volt is middle);

     - Если температура горячая, то напряжение высокое.

    (If Temp is hot then Volt is high).

  

 

 

 

 

 

 Посмотрим результат выполнения правил:

 

Рис. 12. Система нечетких правил управления вентилятором компьютера

 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В итоге получим  следующую поверхность решений:

 

Рис. 13. Управляющая функция

 

     Теперь необходимо реализовать  полученный нечеткий контроллер  на традиционном языке программирования. Определим основные этапы.

     1. Определение входных и выходных  переменных, и их диапазонов.

     Переменная Temp, диапазон [20 80].

     Переменная Volt, диапазон [2 5.3].

     2. Функции принадлежности и правила  можно записать в виде таблицы.

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

 

 

 

 

 

 

 

Таблица 1

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

     4. Находим результирующее значение  по методу центра тяжести.

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

 

 

Примеры некоторых  реально существующих микроконтроллеров, реализованных на базе нечёткой логики

 

 

               Некоторые существующие аппаратные fuzzy процессоры:

      • ST52 Dualogic (STMicroelectronics) - семейство 8-битовых микроконтроллеров, содержащих в одном корпусе традиционное вычислительное ядро, ядро для fuzzy-вычислений и периферийные схемы. Поддерживает специальный набор инструкций для работы с нечеткой логикой и позволяет определять несколько независимых наборов правил для нескольких различных алгоритмов;

      •   ST62 (STMicroelectronics) - 8-битовый микроконтроллер со встроенной, однократно программируемой памятью для автомобильной промышленности, продолжение семейства Dualogic. Расширенный температурный диапазон (от -40° до +125°С), гарантированный срок хранения данных для памяти EPROM и EEPROM не менее 20 лет;

      •  VY86C570 (Togai InfraLogic) - fuzzy-сопроцессор, 12 -битовое ядро FCA (Fuzzy Computational Acceleration[Акселерация Нечетких Вычислений]), 4Kx12 бит памяти OCTD (Observation, Conclusion, & Temporary Data[Наблюдение, Вывод и Временные Данные]), память RB (Rule Base[База

Правил]), и интерфейсная логика в одном  корпусе;

      •  SAE 81C99 (Siemens) - fuzzy-процессор, способный выполнять восемь программируемых алгоритмов, обрабатывать 256 входных переменных и формировать до 64 выходных значений максимум по 16384 правилам. Может использоваться как отдельное устройство или в качестве сопроцессора для 8 и 16-разрядных микроконтроллеров. Скорость работы - 10 миллионов правил в секунду;

      •   68HC12 (Motorola) - fuzzy-микроконтроллер, базирующийся на ядре стандартного микроконтроллера 68HC11 и содержащий специальные функции для реализации нечеткой логики. Предназначен для использования с программным пакетом FuzzyTech и позволяет увеличить скорость выполнения приложений, созданных в этом пакете, до 15 раз и компактность кода до 6 раз по сравнению с реализацией на обычном ядре 68HC11.

 

Семейство 16-разрядных  микроконтроллеров Motorola 68HC12: архитектура, основные характеристики, средства программирования-отладки 

В конце 1997 года компания Motorola начала выпуск нового семейства 16-разрядных микроконтроллеров 68HC12. Оно имеет ряд специфических особенностей, заинтересовавших многих производителей электронной аппаратуры различного назначения.

К числу особенностей 68HC12 относятся:

- архитектурная совместимость с широко используемым семейством 8-разрядных микроконтроллеров 68HC11;

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

- улучшенные технические характеристики: высокая производительность, пониженное энергопотребление, расширенный объём адресуемой памяти, введение сложнофункциональных периферийных устройств;

- наличие встроенных средств отладки, существенно упрощающих процесс разработки систем на базе этих микроконтроллеров.

Одной из особенностей 16-разрядных микроконтроллеров 68HC12 является расширенный набор команд и способов адресации, обеспечивающих реализацию управления с использованием “нечеткой логики”, поддержку языков высокого уровня и ряд других дополнительных возможностей. Микроконтроллеры семейства 68HC12 содержат на кристалле 16-разрядный процессор (CPU12), внутреннюю память одного или нескольких типов (ROM, FLASH, EEPROM, SRAM), модуль интеграции (LIM) и некоторый набор периферийных модулей. CPU12 является высокопроизводительным 16-разрядным процессором, который выполняет обработку битовых, 8- и 16-разрядных операндов. Микроконтроллеры семейства 68HC12 работают на тактовой частоте до 8 МГц и выпускаются в двух модификациях: для работы при напряжении питания 4,5–5,5 и 2,7–3,3 В.

Процессор CPU12 аппаратно поддерживает операции “нечеткой логики”, что позволяет эффективно реализовывать на базе микроконтроллеров семейства HC12 соответствующие системы контроля. Группа команд “нечёткой логики” включает четыре команды. Команда MEM производит фазификацию, выполняя преобразование точных значений входных переменных в значения лингвистических переменных в соответствии с функциями принадлежности из базы знаний. Далее с помощью команд REVW и REV проводится непосредственно обработка полученных значений по заданному алгоритму с учётом или без учёта весовых коэффициентов правил обработки. С помощью команды WAV осуществляется дефазификация, в результате которой осуществляется переход от нечётких значений выходной переменной к точным выходным значениям, обеспечивающим требуемое управление системой.

Микроконтроллеры  семейства 68НС12 имеют в своём  составе от 8 до 12 параллельных портов ввода/вывода.

Семейство 68HC12 интенсивно расширяется. В настоящее время в него входят семь моделей микроконтроллеров, отличающихся объёмом внутренней памяти и номенклатурой размещённых на кристалле периферийных устройств (табл. 2).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2

Характеристики

Количество:

линий ввода/вывода

выводов корпуса

Объём ROM, Кбайт

Объём Flash, Кбайт

Объём EEPROM, байт

Объём SRAM, Кбайт

Модуль таймера: число  каналов/разрядность

Модуль ШИМ: число каналов/разрядность

Последовательные интерфейсы

Модуль АЦП: число каналов/разрядность

HC12A0

61

112

1

8/16

2 SCI,

SPI

8/8

HC812A4

91

112

1

8/16

2 SCI,

SPI

8/8

HC912B32

63

80

32

768

1

8/16

4/8 или 2/16

SCI, SPI,

J1850

8/10

HC12BE32

63

80

32

768

1

8/16

4/8 или 2/16

SCI, SPI,

J1850

8/10

HC912BC32

63

80

32

768

1

8/16

4/8 или 2/16

SCI, SPI,

CAN

8/10

HC912D60

63

112

60

2

8/16

4/8 или 2/16

2 SCI, SPI,

CAN

16/10

HC912DG128

85

112

128

8

8/16

4/8 или 2/16

2 SCI, SPI,

I2C

16/10

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