Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ШПОРКИ.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
321.65 Кб
Скачать

5.(2)Нечеткая логика. Фазификация и дефазификация.

Что такое нечеткая логика и за чем она нужна? Что бы понять чем отличается нечеткая логика от обычной рассмотрим простой пример с краном. Обычная логика:     Если в кране нет воды,                значит выпили жиды.   Если в кране есть вода,              то еврей .... туда.     Другими словами вода либо есть либо нет, а третьего не дано, а главное кто виноват ясно. Усложним задачу  у Вас всегда в кране есть и горячая и холодная вода. Залезаете Вы под душ и начинает крутить краны. Сначала откручиваете кран с холодной водой, затем постепенно откручивая кран доводите температуру до приемлемой. В чем разница? Теперь у Вас не только есть вода (или ее нет), как в случае обычной логики, но она еще может быть,  холодной, очень холодно, нормальной, горячей или совсем кипяток.  А задача управления, в данном случае привести температуру к нормальной.     На этом месте можно задать такой вопрос. Если известна температура воды, то можно построить алгоритм управления открывающий нужный кран в зависимости от текущей температуры и поддерживающий заданную температуру, в МВТУ подобные алгоритмы делаются без всякой нечеткой логики, где здесь особенность?     Отличие нечеткой логики при решении  задач управления состоит в том, что  как человек в данном примере тактильно не может определить температуру воды в градусах Кельвина, Цельсия или Фаренгейта, так и алгоритм управления не связан с точной температурой воды. Человек может почувствовать горячая вода, холодная или нормальная но при этом крутить краны в нужную сторону.    Основная идея состоит в том чтобы отказаться от составления сложных законов управления. Если с помощью только тактильных ощущений  можно с успехом регулировать температуру воды, почему бы не попробовать такой же метод и для других задачах управления.      Вместо того чтобы подбирать коэффициентов для всяких ПИД регуляторов, управление осуществляется с помощь набора правил например: 1. если вода горячая то открываем кран холодной воды;  2. если вода холодная то открываем кран горячей воды;  3. если вода холодная и кран горячей открыт полностью, то закрываем кран холодной;  4. если вода горячая и кран холодной воды открыт полностью, то закрываем кран горячей воды.    Как видим алгоритм управления становится простым и понятным даже первокласснику второгоднику. Если все так просто, то почему бы не строить любое управление по такому принципу?.

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

 Для того, чтобы можно было применять простые правила, данные, передаваемые в блок регулирования на основе нечеткой логики, должны быть преобразованы. Для этого предлагается следующие:    Входные и выходные преобразовываются в лингвистические переменные. Каждая лингвистическая переменная характеризуется набором термов. Например лингвистическая переменнаятемпература может иметь следующие термы  "холодно", "нормально", "горячо". Лингвистическая переменная уровень может иметь следующие термы: "низкий", "нормальный", "высокий". Лингвистическая переменная задвижка может иметь следующие термы "открывать быстро", "открывать медленно", "не трогать", "закрывать медленно", "закрывать быстро". Каждый терм описывается своей функции принадлежности µi(x), которая может принимать значения от 0 до 1.  Получив численное значение входной переменной x в блоки нечетко логики вычисляется значения µi(x) каждого терма. Это процедура называется  термином Фазификация.  Результатом применения правила являются величина, называемая степенью истинности, а попросту число от 0 до 1.  Что бы было понятно рассмотрим пример: Есть задвижка которая открывается по сигналу уровня и простое правило:     Если уровень низкий то задвижку открывать быстро.  У нас есть входная величина уровень h в метрах. Если величина уровня очевидно низкая (µlow(h) = 1, где µlow(h) - функция принадлежности для трема низкий), или уровень очевидно низкий ((µlow(h) = 0),  то все происходит как и в обычной логике, степень истинности правила принимает значение 1 или 0.  Нечеткость начинается если 0 < µlow(h) < 1, например = 0.5. Уровень низкий, но не очень. Соответственно и открывать задвижку нужно быстро, но не очень. В данном правиле степень истинности равна 0.5. Подобным образом происходит ее вычисления для каждого правила.    По научному, этот процесс называется Активизация.     Заключения из каждого правила собираются вместе для каждой лингвистической переменной, этот процесс называется Аккумуляця. Например после расчета набора правил, мы получаем результаты для лингвистической переменной задвижка:  "открывать быстро" - 0.5, "открывать медленно" - 0.3, "не трогать" - 0, "закрывать медленно"-0, "закрывать быстро"-0. Понятно, что скорость задвижки лежит где то между медленной и быстро.      Зная степень истинности для каждого терма выходной переменной можно рассчитать ее числовое значение. Эта процедура называется Дефазификацией. Таким образом работа блока управления на базе нечеткой логики может быть разбита на следующие этапы:

  1. Фазификация входных переменных.

  2. Активизация заключений правил нечеткой логики.

  3. Аккумуляция заключений для каждой лингвистической переменной.

  4. Дефазификация выходных переменных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]