WWW.LIB.KNIGI-X.RU
БЕСПЛАТНАЯ  ИНТЕРНЕТ  БИБЛИОТЕКА - Электронные матриалы
 


Pages:   || 2 |

«ПОВОЛЖСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ КАФЕДРА “ИНЖЕНЕРИЯ ЗНАНИЙ” С.Ю. Боровик «ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ПРОЕКТИРОВАНИЯ И ...»

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

ПОВОЛЖСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ

ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ

КАФЕДРА “ИНЖЕНЕРИЯ ЗНАНИЙ”

С.Ю. Боровик

«ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ПРОЕКТИРОВАНИЯ И

ОТЛАДКИ НЕЧЕТКИХ ЛОГИЧЕСКИХ СИСТЕМ.

ПАКЕТ FuzzyTECH»

САМАРА – 2000

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

ПОСТРОЕНИЕ И РАСЧЕТ НЕЧЕТКИХ ЛОГИЧЕСКИХ СИСТЕМ

Разработка нечеткой системы

Оптимизация нечеткой логической системы и ее реализация

СОСТАВ ПАКЕТА fuzzyTECH v5.xx

Средство просмотра параметров рабочего проекта Treeview

Редактор проекта (Project Editor)

Отладчик (Debugger)

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

Генератор кода (Code Generator)

ОСНОВНЫЕ ЭЛЕМЕНТЫ УПРАВЛЕНИЯ ПАКЕТА fuzzyTECH v5.xx

Меню fuzzyTECH

Меню File

Меню Edit

Меню View

Меню Debug

Меню Analyzer

Меню Tools

Меню Window

РЕДАКТОРЫ И ПОМОЩНИКИ ПАКЕТА fuzzyTECH

Помощник по созданию проекта (Fuzzy Design Wizard (FDW))

Помощник по описанию лингвистических переменных (Linguistic Variables Wizard)

Редактор свойств переменной (Variable Properties)

Редактор переменной (Variable Editor)

Редактор свойств термов (Term Properties)

Помощник по созданию блока правил (Rule Block Wizard)

Редактор свойств блока правил (Rule Block Properties)

Редактор блока правил в табличной форме (Spreadsheet Rule Editor)

Редактор блока правил в матричном виде (Matrix Rule Editor)

Редактор текстовых ресурсов (Text Editor)

ЛАБОРАТОРНЫЙ ПРАКТИКУМ

ЛАБОРАТОРНАЯ РАБОТА №1 «БЫСТРОЕ ЗНАКОМСТВО С ПАКЕТОМ fuzzyTECH НА ПРИМЕРЕ МОДЕЛИРОВАНИЯ РАБОТЫ ПОДЪЕМНОГО КРАНА»

Система управления подъемным краном

Структура нечеткой системы управления краном

Порядок выполнения работы

Контрольные вопросы

ЛАБОРАТОРНАЯ РАБОТА №2 «МОДЕЛИРОВАНИЕ ТЕХНОЛОГИЧЕСКОГО

ПРОЦЕССА НАГРЕВА И ПОДДЕРЖАНИЯ ЗАДАННОЙ ТЕМПЕРАТУРЫ ВОДЫ В

ТЕПЛООБМЕННИКЕ НА ОСНОВЕ НЕЧЕТКОГО АЛГОРИТМА»

Система управления поддержанием заданной температуры воды…

Структура нечеткой системы управления поддержанием заданной температуры....... 72 Порядок выполнения работы

Контрольные вопросы

ЛИТЕРАТУРА

ВВЕДЕНИЕ В настоящее время во всем мире все большее применение находят средства управления и моделирования, основанные на использовании аппарата нечеткой логики. Одним из лидирующих средств разработки программного обеспечения для расчетов с применением нечеткой логики и нечетких нейронных сетей является пакет fuzzyTECH корпорации Inform Software Corporation, который достаточно успешно используется специалистами в Японии, Европе и США. Обычно fuzzyTECH поставляется в двух вариантах: fuzzyTECH Editions –для технических приложений нечеткой логики и fuzzyTECH for Business –проведение расчетов в области бизнеса и финансов.

В настоящее время существуют различные версии программного продукта, ориентированные на большинство современных аппаратных платформ. Одной из приятных черт данного пакета является то, что он содержит в себе все необходимые средства для разработки и анализа создаваемых нечетких систем, а также обеспечивает удобную работу на всех стадиях проектирования. Это все достигается благодаря использованию удобного графического интерфейса пользователя и технологии «Point-and-Click»(«Укажи и Щелкни»).

Наглядное задание правил логического вывода формата "ЕСЛИ-ТО" в диалоговом режиме общения с пользователем позволяет оптимизировать разрабатываемую систему, что, в конечном счете, приводит к повышению ее эффективности в целом.

С точки зрения сертификации следует отметить, что FuzzyTECH разработан в соответствии со стандартом IEC 1131-7 (используемым для разработки промышленных нечетких логических систем) и поддерживает стандарт ISO 9001.

Существенным преимуществом пакета является его открытый интерфейс. FuzzyTECH может быть связан или объединен с большинством других программ благодаря использованию механизмов DDE, DLL, и ActiveX. Кроме того, для большинства наиболее популярных систем (Simulink ™, InTouch ™, Excel ™, Фссуыы ™, VisualBasic ™, InControl ™, CiTECT ™, LabVIEW ™, Matlab/Simulink ™, VisSim ™, WinFACT ™, WinCC ™, BridgeVIEW ™, и др.) пакет обеспечивает интерфейс стандарта "plug-and-play". Благодаря собственному интерфейсу API (Application Programming Interface), который обеспечивает удаленное управление, пакет также удобен и с точки зрения его интеграции с другими программными комплексами, разрабатываемыми исходя из потребностей конечного пользователя.

Ниже приводится описание методики разработки нечеткой системы или модели, описание одной из последних реализаций пакета fuzzyTECH – версии 5.xх, а также ряд заданий, направленных на изучение основных интерфейсных элементов пакета и приобретения навыков работы с ним.

ПОСТРОЕНИЕ И РАСЧЕТ НЕЧЕТКИХ ЛОГИЧЕСКИХ СИСТЕМ

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

Разработка нечеткой системы В общем случае разработка нечеткой системы (в дальнейшем – модели) заключается в описании лингвистических переменных системы, разработке структуры системы, выработке стратегии логического вывода, задания базы правил и, наконец, выборе наиболее приемлемого способа дефазификации полученных результатов. Лингвистические переменные модели составляют «словарь», используемый при логическом выводе на основании заданных правил, структура системы описывает информационные потоки, связывающие отдельные элементы модели, а база правил является «мозгом» нечеткой системы, в котором сконцентрированы знания экспертов.

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

- Этап определения лингвистических переменных моделей;

- Этап выбора функции принадлежности;

- Этап создания базы правил

- Этап выбора способа дефазификации.

Определение лингвистических переменных. Как известно, в качестве значений лингвистических переменным могут выступать «лингвистические термы», которые обычно называют просто «термами». Термы являются возможными лингвистическими интерпретациями различных физических понятий. Так, например, понятие «расстояние», измеряемое в метрах, может иметь свою лингвистическую интерпретацию вида: «очень далеко», «далеко», «близко», «очень близко», «вплотную». Реальная физическая переменная, которую описывает лингвистическая переменная, принято называть «базовой переменной».

Возникает вопрос: сколько необходимо задать термов для описания лингвистической переменной?

С одной стороны, большинство концепций естественного языка предполагают наличие как минимум двух крайних значений и одного промежуточного. С другой стороны, и это определяется особенностями памяти, человек обычно не в состоянии оперировать с более чем 7 символами описания физического понятия одновременно. Все это и привело к тому, что в обычной практике для задания лингвистической переменной используют от 3 до 7 термов. Еще одной особенностью описания лингвистической переменной является то, что в большинстве случаев используется нечетное число термов (3, 5 или 7). Опять же этому есть свое объяснение: обычно лингвистические переменные симметричны, т.е. существует терм, который описывает среднее состояние между двумя предельными.

Для того, чтобы определиться сколько все таки необходимо использовать термов – 3, 5 или 7 - для описания лингвистической переменной, необходимо сформулировать несколько типичных нечетких правил вывода разрабатываемой модели. Это должно помочь с определением какие именно термы и сколько их необходимо для описания полной базы правил модели. Если формулировка расширенной базы правил вызывает какие-то затруднения, то начать можно с определения по 3 терма для каждой входной переменной и по 5 термов для выходных переменных. Как показывает опыт, именно такое количество термов является минимальным для большинства приложений. Далее, по мере формулировки новых правил, описания лингвистических переменных могут быть переопределены.

Выбор функции принадлежности. Под степенью принадлежности (рангом) лингвистической переменной понимают значение, которому удовлетворяет реальная физическая величина в контексте термов лингвистической переменной. Для непрерывных переменных степень принадлежности определяется с помощью так называемых функций принадлежности (membership function (MBF)). Функция принадлежности устанавливает соответствия между значениями реальной физической величины и термами лингвистической переменной. Обычно принято изображать все функции принадлежности для всех термов лингвистической переменной на одной диаграмме.

Несмотря на то, что в последних публикациях приводятся достаточно много различных вариантов функций принадлежности, применительно к нечеткой логике, те не менее, подавляющее большинство приложений использует стандартные функции принадлежности (Standard-MBF). Существует 4 типа стандартных функций принадлежности: Z-type, -type (lambda), -Type (pi), и S-type (рис. 1). Кроме того, обычно стандартные функции принадлежности нормированы, т.е. их максимум всегда соответствует степени принадлежности µ=1, а минимум - µ=0.

–  –  –

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

Обычно задание стандартной функции принадлежности осуществляется в 4 приема.

На первом шаге для каждого терма определяется значение, которое наиболее подходит к его лингвистическому определению. Этому значению присваивается степень принадлежности µ=1. На втором шаге устанавливаются границы терма, в которых степень принадлежности µ=0. Эти границы совпадают со значениями, наиболее типичными для соседних термов (слева и справа), т.е. степень принадлежности значений в данных точках для правого и левого термов равна 1. Далее, на третьем шаге, соединяем точку со значением µ=1 с точками, в которых µ=0 прямой линией. В результате получаем функцию принадлежности для термов, описывающих промежуточные значения лингвистической переменной. Граничные термы (самый левый и самый правый), задаются на последнем шаге.

Предполагается, что все значения левее точки с µ=1 для самого левого терма имеют степень принадлежности тоже равную 1 (терм Z-типа). Аналогично, все значения правее точки с µ=1 для самого правого терма имеют степень принадлежности тоже равную 1 (терм S-типа).

На рис. 2 приведен пример, поясняющий описанные выше операции по заданию терма «CLOSE» лингвистической переменной «DISTANCE».

Рис. 2

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

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

Создание базы правил. Знания нечеткой системы отражаются в виде правил логического вывода. Лингвистические переменные в данных правилах используются как словарь, на основании которого можно выработать, например, стратегию нечеткого управления для контроллера и т.д. Рассмотрим более подробно, как можно создать базу правил.

В большинстве своем нечеткие системы используют нормализованные базы правил.

При этом под нормализованной базой логических правил понимается база, в которой в предпосылках допускается использование только операции логического умножения «AND».

Так, например, правило IF A=a OR B=b THEN C=c можно нормализовать, если разбить его на два правила:

(1) IF A=a THEN C=c (2) IF B=b THEN C=c Преимущество нормализованной базы правил очевидно: она более прозрачна для понимания. Так, например, разобраться с правилом вида:

IF ((Temp = very_high) AND NOT ((Press = above_norm) OR (Antech_Press = low)) AND (O2_Frac = NOT normal)) THEN (CH4_Val = throttled AND Carb = low) с первого раза будет не очень просто. Несмотря на то, что для отражения точного контекста иногда может понадобиться значительно большее число нормализованных правил, чем если бы мы использовали в предусловиях весь набор стандартных логических операций, тем не менее, база даже со 100 нормализованными правилами останется понятной и легко читаемой.

Кроме того, реальные нечеткие системы используют только нормализованные базы правил, так как они более эффективны с точки зрения проведения расчетов.

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

На первом шаге определяется по одному правилу для каждой комбинации термов входных переменных, т.е. переменных, находящихся в части «ЕСЛИ» правила. Для этих правил устанавливается степень их поддержки (DoS) равная 1. Далее, для каждого заданного правила, выбирается наиболее правдоподобный терм выходной переменной (формируется часть «ТО» правила). В общем случае размер базы правил (число правил в ней) нечеткой системы будет равен произведению количества термов входных переменных. Так, например, для случая с тремя входными переменными и одной выходной переменной, каждая из которых содержит по 5 термов, база правил будет состоять из 125 правил.

На втором шаге осуществляется проверка на полноту созданной базы правил, т.е.

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

Далее, на третьем шаге, производится оптимизация созданной базы правил по степени важности каждого правила в отдельности. В большинстве случаев степень поддержки (важности) каждого правила равна 1. Однако возможны ситуации, когда необходимо «подчеркнуть» важность какого-то правила или, наоборот, эффект от применения данного правила слишком большой. Тогда, для задания «относительной важности» правила необходимо модифицировать DoS.

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

К последним относятся правила двух видов:

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

Заданы два правила:

ПРАВИЛО 1: «ЕСЛИ Вх1=мало и Вх2=среднее, ТО Вых=Высокий»

ПРАВИЛО 2: «ЕСЛИ Вх1=мало, ТО Вых=Высокий»

Понятно, что ПРАВИЛО 1 избыточное и может быть удалено из базу правил.

К правилам, которые никогда не исполняются, относятся те, в которых в части «ЕСЛИ» задаются нереальные комбинации входных переменных, либо комбинации, которые никогда не могут быть использованы. Стоит сказать, что правила, которые никогда не исполняются, достаточно сложно идентифицировать, т.к. конкретная ситуация зависит от поведения системы в целом. Тем не менее проблема может решиться, если для данной цели воспользоваться накопленной статистикой по поведению систем подобного рода.

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

стратегия может быть усовершенствована путем добавления остальных правил.

Выбор способа дефазификации. Результатом нечеткого логического вывода является лингвистическая переменная. Например, для антискользящей системы рулевого управления задана переменная «РУЛЕВОЕ УПРАВЛЕНИЕ», термы которой принимают значения «СИЛЬНО ВЛЕВО», «ВЛЕВО», «ПРЯМО», «ВПРАВО», «СИЛЬНО ВПРАВО». В результате расчета модели мы получили результат, который ставит в соответствие термам лингвистической переменной «РУЛЕВОЕ УПРАВЛЕНИЕ» значение функции принадлежности (0, 0, 0.3, 0.8, 0) соответственно, что означает приблизительно «В БОЛЬШЕЙ СТЕПЕНИ ВПРАВО ЧЕМ СЛЕГКА ВЛЕВО». Преобразование такого лингвистического значения в конкретный угол для сервомеханизма системы рулевого управления и называется дефазификацией.

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

Одним из наиболее известных и широко применяемых методов поиска наиболее компромиссного решения является метод поиска центра максимума (Center-of-Maximum method - CoM). Согласно данному методу вначале определяются наиболее типичные значения для каждого терма, а затем вычисляется наилучшее приближение (компромисс между всеми типичными значениями) к результату нечеткого логического вывода. В последнем случае, для получения компромиссного значения результата нечеткого логического вывода в виде вещественного числа, каждому нечеткому «подрезультату»

ставится в соответствие свой вес в общем решении для позиции, соответствующей наиболее типичному значению терма. Наилучшим компромиссным решением будет «четкое» значение в точке, где все веса сбалансированы.

Данный метод используется в подавляющем большинстве приложений. Однако, существуют ситуации, когда данный метод не срабатывает, т.е. результаты нечеткого логического вывода таковы, что невозможно определить обоснованное решение. Например, в случае поиска компромисса между двумя достаточно хорошими решениями, дефазификация путем поиска центра максимума может привести не к самому лучшему результату. В этом случае лучше всего воспользоваться методом, который в качестве решения предлагает выбирать наиболее правдоподобный результат. Таки является метод поиска значения максимума (Mean-of-Maximum method - MoM). Другими словами, в данном методе в качестве результата выбирается значение терма, который имеет наибольший вес в решении. Если максимум не уникален (в случае использования -термов), вычисляется значение максимизирующего интервала.

Говоря о данных двух методах как об основных методах дефазификации, следует отметить, что существуют ряд подразновидностей как CoM, так и MoM. Так, например, одним из вариантов метода CoM является метод поиска центра площади (Center-of-Area (CoA) method). Именно данный способ, который иногда еще называют методом поиска центра тяжести, и использовался в первых приложениях замкнутого управления. Суть метода заключается в том, что сначала отсекается функция принадлежности соответствующего терма по уровню равному степени принадлежности, затем производят наложение площадей под полученными функциями принадлежности и рассчитывают центр тяжести сформированной фигуры, который и является результатом поиска компромисса между отдельными значениями решения нечеткой логической модели.

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

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

-типа возможны варианты.

Одним из наиболее важных свойств дефазификации является ее непрерывность.

Определение непрерывности следующее.

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

Методы дефазификации CoM и CoA/CoG являются непрерывными в то время, как MoM – таковым не является. Это и понятно, при поиске наилучшего компромисса нельзя «резко» перескочить с одного на другое значение выходной переменной при незначительных изменениях входных переменных. В тоже при поиске наиболее правдоподобного результата мы можем достичь такой точки, когда «наиболее правдоподобное» решение «перескакивает»

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

Естественно, что у разработчика нечеткой системы возникает вопрос: «Какой способ дефазификации необходимо выбрать для данной задачи?»

Следует знать, что свойство непрерывности метода дефазификации очень важно при построении замкнутых систем управления с обратной связью. Если выход нечеткой логической системы непосредственно воздействует на процесс, то «прыжки» управляющего сигнала на выходе контроллера могут привести к нестабильности и колебаниям системы. В этой связи, как уже отмечалось, почти все нечеткие системы управления используют CoM метод дефазификации. Исключением может быть случай, когда с выхода контроллера сигнал поступает на интегрирующее устройство. Здесь становится возможным использовать MoM методы дефазификации, т.к. интегратор, в данном случае, обеспечивает выполнение условия непрерывности.

Приложения, ориентированные на распознавание образов, преимущественно используют MoM метод дефазификации. Действительно, если вы хотите идентифицировать объект по сигналам датчиков, вы заинтересованы не в поиске «компромиссного» решения, а в выборе наиболее правдоподобного варианта решения. Кроме того, некоторые приложения вообще не используют дефазификацию. В этом случае результатом идентификации (классификации) объекта является вектор степеней принадлежности выходной лингвистической переменной, который и определяет «похожесть» сигнала реальному объекту.

В системах принятия решения выбор метода дефазификации зависит от ситуации, в которой принимается решение. Использование метода CoM применимо к принятию «количественных» решений, таких как, например, бюджетные ассигнования или определение приоритета проекта. В тоже время для принятия «качественных» решений, таких как определение подделки кредитных карточек или оценка кредитоспособности клиента, наиболее целесообразно воспользоваться MoM методом дефазификации.

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

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

С точки зрения практического применения единственным различием в методах дефазификации является то, где они обеспечивают наиболее компромиссное (CoM, CoA, CoG) или наиболее правдоподобное (MoM, LoM, RoM) решение. Вне данных групп не существует сколь либо существенных различий, которые не могли бы быть устранены путем модификации функции принадлежности или базы правил.

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

Как уже отмечалось, с математической точки зрения, нечеткая логическая система представляет собой отображение n-мерного входного пространства в m-мерное выходное пространство со следующими свойствами:

- детерминизм (одни и те же входные условия обеспечивают получение одного и тоже результата);

- инвариантность времени (функция преобразования, описывающая операцию отображения остается неизменной во времени);

- нелинейность (выходные переменные являются нелинейными комбинациями входных переменных).

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

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

Оптимизация нечеткой логической системы и ее реализация Если говорить об оптимизации разработанной нечеткой системы, то обычно выделяют два этапа:

- автономная оптимизация (off-line оптимизация);

- оптимизация в реальном масштабе времени (on-line оптимизация).

Автономная оптимизация (Off-line оптимизация). На данном этапе производится моделирование поведения и тестирование прототипа разработанной нечеткой логической системы. При этом все технологические средства, используемые на данном этапе разработки, во многом определяются выбранным приложением системы. Безусловно, что на этапе автономной оптимизации системы огромную роль играют программные средства, т.к. при моделировании поведения системы используются либо накопленные ранее данные либо производится имитация рабочего процесса, реализованная с помощью специальных программ. В качестве одного из вариантов программных средств, применяемых для задач автономной оптимизации, можно предложить средства, реализованные по технологии нечетких нейронных сетей. Естественно, что все работы по такой оптимизации осуществляются в режиме off-line, когда ПЭВМ не связана с объектом управления и система не работает в режиме реального времени.

Оптимизация нечеткой системы в реальном масштабе времени. Продолжением этапа автономной оптимизации нечеткой логической системы является ее оптимизация в режиме реального времени. Следует отметить, что в ряде случаев, такой режим проверки работоспособности и оптимизации систем управления может быть единственным, т.к. для некоторых объектов не существует достаточно хорошей математической модели описания их поведения. С другой стороны, использование накопленной ранее информации имеет свои ограничения, по крайней мере, с точки зрения построения систем управления, т.к. в этом случае нет возможности обеспечить обратную связь. В последнем случае наиболее целесообразно использовать для оптимизации средства, обеспечивающие модификации системы «на лету».

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

Если говорить об используемых на этапе реализации нечеткой системы средствах, то они, в первую очередь, зависят от выбранного семейства микроконтроллеров. Существует достаточно широкий спектр программных средств, обеспечивающих генерацию оптимального ассемблерного кода для заданного типа контроллеров. К таковым можно отнести, например, пакет fuzzyTECH MCU Editions. Учитывая, что ряд программируемых логических контроллеров (PLC) и системы распределенного управления (DCS) позволяют непосредственное программирование на языке С, возможна автономная генерация С-кода, в том числе и средствами пакета fuzzyTECH.

СОСТАВ ПАКЕТА fuzzyTECH v5.xx Для обеспечения возможности создания, отладки и оптимизации разрабатываемых нечетких систем, в состав пакета fuzzyTECH v5.xx включены следующие основные элементы:

- средство просмотра параметров рабочего проекта в виде дерева (TreeView);

- редактор проекта (Project Editor);

- отладчик (Debugger);

- анализатор (Analyzer);

- генератор кода (Code Generator).

Доступ ко всем функциям пакета осуществляется пользователем либо из основного меню программы, либо нажатием комбинаций специальных «горячих клавиш», либо путем выбора соответствующей кнопки на панели быстрого запуска (ToolBar). Для упрощения работы возможен запуск специальных «помощников», которые будут руководить процессом разработки проекта (Fuzzy Design Wizard), процессом задания лингвистических переменных (Variables Wizard), а также процессом создания базы правил проекта (Rule Block Wizard).

Кроме того, пакет содержит достаточно развитую справочную систему, которая наряду с информацией о функциях основных интерфейсных элементов программы, предоставляет пользователю общие сведения об основах нечеткой логики (раздел Fuzzy Primer меню Help), о комбинировании нечеткой логики с нейронными сетями (раздел NeuroFuzzy Primer меню Help) и о кластерных технологиях, используемых в fuzzyTECH (раздел FuzzyCluster Primer меню Help).

Средство просмотра параметров рабочего проекта Treeview Средство Treeview пакета fuzzyTECH обеспечивает просмотр всех ресурсов (переменных, блоков правил и текста) редактируемого проекта в соответствии с их иерархией. Последнее свойство очень удобно при редактировании ресурсов. С точки зрения интерфейса, внешний вид Treeview идентичен тому, который используется в проводнике MS Windows.

Treeview достаточно прост в управлении. Для того, чтобы развернуть/свернуть структуру проекта достаточно два раза щелкнуть мышкой по заголовку ресурса, или щелкнуть один раз по символам «+»/«-», расположенных слева от него. Те же операции необходимо проделать для просмотра или сокрытия компонентов ресурсов (термы, переменные, блоки правил и текстовые объекты) соответствующих уровней иерархии рабочего проекта.

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

Структура представления информации и внешний вид средства просмотра параметров проекта Treeview приведены на рис. 1 и рис. 2 соответственно.

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

Окно средства просмотра ресурсов проекта Treeview может быть скрыто или показано путем выбора подпункта «Treeview» меню «View» или нажатием комбинации клавиш Alt+0 (ноль). Кроме того, скрыть или показать Treeview можно нажав клавишу на панели быстрого запуска.

Project Title - наименование проекта Входные, выходные, вспомогательные переменные проекта Name of Variables - наименования переменных (переменные, относящиеся к данной группе, перечисляются ниже названия группы) Name of Terms - наименования термов (термы, принадлежащие соответствующей переменной, перечисляются ниже ее названия) Блок правил проекта Rule Block Name - наименование блока правил (блоки правил перечисляются под надписью «Rule Blocks». Каждый блок имеет свое имя) Подгруппы блоков правил (каждый блок правил имеет подгруппы RB Inputs/RB Outputs) Names of the Inputs / Outputs - наименование входа/выхода модели проекта (перечисляются входы/выходы модели, относящиеся к заданному блоку правил) Текстовые ресурсы проекта Text Name - наименование текстового ресурса Debug Mode – режим отладки (отображается текущее состояние режима отладки проекта)· Transfer Plot, 3D Plot, Time Plot (под наименованием соответствующей группы приводится список средств анализа модели в соответствии с их номером в проекте)

–  –  –

Редактор проекта (Project Editor) Еще одним важным элементом пакета fuzzyTECH, который предназначен для графического отображения структуру редактируемого проекта, является редактор проекта (Project Editor). Окно редактора (рис. 4) создается при запуске fuzzyTECH и не может быть закрыто в течение всей работы с программой. Единственной возможностью скрыть окно редактора проекта является его минимизация (функция «свернуть в значок» системного меню главного окна программы).

–  –  –

Редактор использует три основных вида ресурсов: текст, переменные, базы правил.

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

Переменные. Каждая переменная входа/выхода разрабатываемой нечеткой логической модели связана со своим отображением - интерфейсом на рабочем листе редактора проектов (Input/Output Interface на рис. 4). Интерфейс переменной представляет собой небольшой прямоугольник, в котором отображаются имя переменной и иконка. В случае выходных переменных иконка отображает способ их вычисления (SoM, MoM и т.д.). При этом для входных переменных иконка расположена ближе к левому краю прямоугольника, а для выходной переменной – ближе к правому краю.

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

Блок правил. В пакете fuzzyTECH принята идеология, когда индивидуальные правила вывода объединяются в блоки для более наглядного представления структуры проекта. При этом в одном проекте может быть несколько таких блоков.

Блок правил (Rule Block на рис. 4) состоит из колонок переменных и двух прямоугольников-операторов. В левой колонке отображаются переменные, используемые в качестве условий нечетких правил (часть правила «ЕСЛИ»), а в правой колонке – переменные, получаемые в ходе применений правил логического вывода (часть правил «ТО»).

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

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

Отладчик (Debugger) Встроенный в fuzzyTECH отладчик позволяет осуществлять отладку, верификацию и оптимизацию разработанного проекта. Для этих целей предусмотрены как режимы автономной (off-line mode) отладки, так и режимы отладки в реальном масштабе времени (on-line mode). Выбранный режим работы отладчика отображается в строке статуса основного окна программы, в окне средства просмотра ресурсов проекта и отмечается специальным значком в подменю DEBUG основного меню программы. При запуске любого из режимов отладки, текущий проект проверяется на целостность и полноту данных. Если в ходе проверки будут обнаружены ошибки, то они будут выведены в специальном окне в виде списка ошибок (ErrorListing) (рис. 5)

Рис. 5

Проверке разрабатываемого проекта на целостность подразумевает, прежде всего, что:

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

- переменные в блоке правил должны быть связаны либо с входными/выходными переменными, либо с другим блоком правил;

- каждый блок правил должен содержать по меньшей мере одно правило.

Рассмотрим более подробно режимы автономной работы отладчика и режимы работы отладчика в режиме реального времени.

Режимы автономной работы отладчика (off-line mode).

К данным режимам работы отладчика относятся:

- Диалоговый режим отладки (Interactive Debug Mode). Данный режим отладки позволяет разработчику нечеткой системы исследовать поведение системы путем задания входных данных вручную (рис. 6).

Рис. 6

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

сразу отобразятся в отладчике.

- Режим отладки по последовательной связи (Serial Link Debug Mode). Данный режим отладки позволяет соединить проект, разработанный в fuzzyTECH с другой системой посредством интерфейса последовательной связи и вести удаленную отладку проекта. Естественным условием, предшествующим запуску данного режима отладки, является наличие физической последовательной связи между двумя компьютерами.

- Режим отладки в режиме записи в файл (File Recorder Debug Mode). Данный режим работы отладчика позволяет использовать накопленные ранее с помощью других технических средств данные для отладки нового проекта. Данный режим работы отладчика очень похож на диалоговый режим отладки за исключением того факта, что данные задаются не вручную, а берутся из файла. Если сравнивать данный режим с пакетной отладкой, то отличие заключается в том, что результаты расчета пишутся не в файл, а выводятся на экран монитора.

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

Режимы работы отладчика в реальном времени (on-line mode). Некоторые редакции пакета fuzzyTECH обеспечивают отладку проекта в режиме реального времени. Эти режимы работы отладчика позволяют оптимизировать нечеткую логическую систему непосредственно при ее установке на реальный объект управления. Для целей визуализации процесса отладки осуществляется непрерывная передача обрабатываемых данных от прибора в оболочку fuzzyTECH. При этом любые изменения в проекте, внесенные в ходе отладки, немедленно будут внесены в реальную систему.

Настройка соединения с реальным прибором осуществляется с помощью специального помощника (Online Wizard), который руководит всем процессом настройки протокола обмена данными.

В пакете предусмотрено два режима отладки нечетких проектов в режиме реального времени:

- Отладка в режиме мониторинга (Monitor Debug Mode). Работа в данном режиме отладки возможна только в случае, когда возможно реальное соединение между пакетом fuzzyTECH и системой реального времени (по протокола TCP/IP, RS232, DDE и т.д), а также отлаживаемая нечеткая система полностью загружена в редактор проекта со всеми взаимосвязанными модулями. Если хотя бы одно из данных условий не выполняется, будет запущен помощник Online Wizard. Когда отладка в режиме мониторинга уже запущена, можно воспользоваться анализатором треков (Trace analyzator) для трассировки данных, поступающих от системы реального времени. Данный режим отладки обеспечивает наиболее полный анализ работоспособности разработанной нечеткой системы, защищая ее от непреднамеренных изменений со стороны пользователя.

- отладка в режиме мониторинга и модификации данных (Monitor&Modify Debug Mode). Данный режим работы отладчика аналогичен предыдущему за исключением того, что можно осуществлять не только мониторинг разработанной нечеткой логической системы, но и вносить в нее какие-либо изменения. Каждое изменение (например, изменения функции принадлежности, правила и т.д.) немедленно трансформируется в нечеткую систему реального времени и реализуется там. Это дает возможность осуществлять оптимизацию системы «на лету» тем самым уменьшает временные затраты на отладку.

Анализатор (Analyzer) Анализатор обеспечивает наглядное представление исходных данных и результатов работы нечеткой логической системы на экране монитора. Обязательным условием при работе со средствами анализатора является предварительный запуск режима отладки. В противном случае средства анализатора будут недоступны. Ниже приводятся различные средства, входящие в состав анализатора нечеткой системы.

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

Рис. 7

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

3D диаграмма (3D Plot). 3D диаграмма (рис. 8) обеспечивает представление характеристик входов и выходов нечеткой системы, а также их частей в трехмерном пространстве путем построения плоскостей в пространстве управления. По двум горизонтальным осям откладываются значения двух входных переменных, а значения выходной переменной откладываются по вертикальной оси. Естественно, что если разрабатываемая нечеткая система содержит только один нечеткий вход, воспользоваться 3D диаграммой для анализа работоспособности системы не удастся.

Рис. 8

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

Временная диаграмма (Time Plot). Временные диаграммы (рис. 9) позволяют анализировать распределение характеристик нечеткой системы во времени. Одновременно в программе может быть активизировано до 10 временных диаграмм, каждая из которых может отображать временные характеристики 10 переменных.

На поле временной диаграммы отображаются значения переменных, выбранных при конфигурации диаграммы: четкие значения лингвистических переменных, степени принадлежности для термов и степени соответствия выбранному правилу. Оцифровка вертикальной оси соответствует значениям базовой переменной для лингвистических переменных, от 0 до 1 для термов и степеней соответствия правилам. По горизонтальной оси откладываются циклы управления (точки, соответствующие моментам изменения входных переменных). Если цикл управления синхронизирован по времени, как это бывает в большинстве систем, данная ось превращается в ось времени.

Рис. 9

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

Анализатор правил (Rule Analyzer). Данный режим позволяет отслеживать выбираемые правила на каждом шаге работы системы. Информация, выводимая в окне анализатора (рис.

10), соответствует предыдущему состоянию системы. При этом перечисляются все термы выходной переменной с указанием степени принадлежности результата каждому терму выходной лингвистической переменной. Кроме того, для каждого терма выходной лингвистической переменной отображается правило вывода, конечно, если в части THEN данная переменная участвует и совокупное значение степеней принадлежности для термов входных переменных, стоящих в части IF правила отличен от 0.

–  –  –

Статистика (Statistics). Данное средство анализа позволяет оценивать частоту применения правил. При этом статистика накапливается для каждого правила из базы правил и может быть просмотрена в режиме редактирования и модифицирования базы правил.

Трассировка (Trace...). Данный режим работы анализатора позволяет сохранять результаты работы нечеткой системы в реальном времени или данные моделирования ее поведения в файлах с расширением *.TRC (рис. 11). При этом трассировка может использоваться при любом режиме отладки нечеткой системы, и особенно удобна при анализе очень быстрых или очень медленных процессов.

Рис. 11

Генератор кода (Code Generator) FuzzyTECH является программным пакетом, который содержит собственный компилятор, т.е. обеспечивает формирование исходного кода, который может быть перемещен на различные аппаратные платформы разрабатываемых систем реального времени.

Для этого в пакете предусмотрено генерация следующих ресурсов:

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

Динамические библиотеки реального времени (fuzzyTECH Runtime DLL). Динамические библиотеки реального времени FTRUN32.DLL или FTRUN.DLL могут быть использованы для интеграции нечеткой системы с другими Windows-приложениями, обладающими способностью загружать DLL и осуществлять вызов их функций. Библиотека FTRUN DLL обеспечивает дружественный интерфейс пользователя для загрузки и компиляции нечеткой системы. Генератор кода fuzzyTECH преобразует проект нечеткой системы в компактный двоичный файл параметров (*.FTR), который затем может быть использован функциями библиотеки FTRUN в реальном масштабе времени.

Генератор С-кода (C-Code Generation). FuzzyTECH может откомпилировать любую нечеткую систему и сгенерировать код С, который затем может использоваться при разработке различных С и С++ приложений. При этом в процессе генерации исходного кода С могут быть настроены различные параметры компилятора, например, такие как тип пересылаемых параметров, точность и т.д. Данная функция особенно полезна в случаях, когда пакет fuzzyTECH не имеет средств генерации оптимального кода для аппаратной платформы, на которую предполагается установить нечеткую логическую систему, тем не менее аппаратные средства (процессоры, контроллеры) поддерживают программирование на С.

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

Библиотеки реального времени для COBOL. Генератор кода fuzzyTECH обеспечивает компиляцию проекта в файл исходного кода для COBOL (файлы с расширением *.COB).

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

Если говорить о каких-либо рекомендациях по использованию того или иного способа генерации исходного кода, то следует отметить, что в случае разработки приложений для промышленных распределенных систем управления (например, таких как управление химическим заводом) целесообразно компилировать приложение в библиотеки FTRUN или ActiveX. При программировании ПЛМ (программируемые логические контроллеры) естественным является использование компиляции в аппаратно-ориентированный ассемблерный код.

ОСНОВНЫЕ ЭЛЕМЕНТЫ УПРАВЛЕНИЯ ПАКЕТА fuzzyTECH v5.xx К основным элементам управления пакета fuzzyTECH, как впрочем и большинства других Windows-приложений, относятся меню (как глобальное, так и контекстное), клавиши быстрого вызова и панели инструментов. Рассмотрим данные элементы более подробно.

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

Элементы, расположенные на основной панели меню представлены на рис. 12.

–  –  –

Меню File

Данный пункт меню (рис. 13) содержит следующие элементы:

New (Создать) – открывает диалоговое окно создания нового проекта (Generate Project) (рис. 14) и создает новый проект. По умолчанию новому проекту присваивается имя "untitled."

–  –  –

Fuzzy Design Wizard (Помощник по созданию проекта) – запускает помощника для создания новой нечеткой логической системы.

Open (Открыть) – запускает диалоговое окно открытия файла проекта.

Пакет позволяет открывать файлы следующих форматов:

*.FTL – файлы проектов fuzzyTECH начиная с версии 3.x и выше.

*.CFG – файл конфигурации положения элементов нечеткой системы в окне проекта.

Если *.FTL загружен и в рабочем каталоге обнаружен файл *.CFG, то все элементы проекта будут расположены в окне проекта согласно сохраненным в данном файле позициям. В противном случае система выведет их на рабочее поле согласно своим установкам по умолчанию.

*.FTP – формат файлов проекта fuzzyTECH версии 2.x. Пакет fuzzyTECH версии 3.x и выше может открывать файлы данного формата, но сохранять данные позволяет только в формате FTL.

*.REV – открывает файлы ревизии проекта.

Close (Закрыть) – закрывает текущий редактируемый проект.

Save (Сохранить) – сохраняет проект и файл конфигурации подименем, заданным в заголовке основного окна программы. Текущий проект сохраняется в формате FTL (Fuzzy Technology Language) в файл *.ftl.

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

Save As (Сохранить как) - открывает диалоговое окно, позволяющее сохранить текущий проект и файл конфигурации под новым именем. Чтобы файл конфигурации сохранялся автоматически с сохранением файла проекта, необходимо выбрать опцию «Save Window Configuration» в диалоговом окне настроек Preferences dialog Save.

Revision Control (Управление ревизией проекта) – открывает диалоговое окно (рис.

15) системы ревизии проекта, которое позволяет загружать, сохранять и удалять файлы из проекта. Благодаря данной системе проект может быть сохранен в двоичном файле и защищен паролем. Система ревизии позволяет вести протокол наиболее важных изменений в проекте с указанием даты, времени и человека, внесшим данные изменения.

Рис. 15

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

Pattern Generator (Генератор тестовых последовательностей) – открывает диалоговое окно генератора тестовых последовательностей (рис. 17), который позволяет автоматически генерировать последовательность входных воздействий для данного проекта нечеткой логической системы с целью исследования и анализа ее характеристик. Сгенерированный файл (*.PNT) может быть использован в последствии в режимах отладки с записью результатов в файл (File Recorder) и в пакетном режиме отладки проекта (Batch Debug Mode).

View FTL File (Просмотр файла формата FTL) – открывает диалог просмотра файла текущего проекта системы (*.FTL) в редакторе, который указан в настройках. Обычно по умолчанию используется БЛОКНОТ (Notepad) Windows. В случае использования другого редактора естественным условием является наличие его в системе.

View File (Просмотр файла) – открывает диалоговое окно в котором предлагается выбрать файл для просмотра (файлы *.FTL, файлы данных, исходные коды программ и т.д) с помощью средств, указанных в настройках. Также как и в предыдущем случае по умолчанию используется БЛОКНОТ (Notepad) Windows. В случае использования другого редактора естественным условием является наличие его в системе.

–  –  –

Print Window (Печать окна) – открывает диалоговое окно рис. 18 в котором пользователю предлагается выбрать одно из рабочих окон проекта для вывода его на печать.

–  –  –

Copy Window (Копировать окно) - открывает диалоговое окно подобно рис. 18 в котором пользователю предлагается выбрать одно из рабочих окон проекта для копирования его в буфер обмена (clipboard).

Exit (Выход) – закрывает текущую сессию редактирования проекта. Если в ходе редактирования в проект были внесены какие то изменения, то пользователю будет предложено их сохранить (последнее не распространяется на демо-версию пакета).

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

Пункт меню Edit (рис. 19) содержит следующие элементы:

–  –  –

Duplicate Variable (Дублирование переменной) – создает дубликат текущей выделенной переменной и запускает помощник по созданию лингвистических переменных (Linguistic Variables Wizard).

New Rule Block (Новый блок правил) – запускает помощник по созданию блока правил (Rule Block Wizard) для задания нового блока правил текущего проекта.

Duplicate Rule Block (Дублирование блока правил) – создает дубликат текущего выделенного блока правил и запускает диалоговое окно настройки блока правил (Rule Block Properties).

New Text (Новый текст) – открывает диалоговое окно настройки текстового ресурса проекта (Text Properties) с целью создания нового текстового ресурса в окне рабочего проекта и средства просмотра Treeview.

Duplicate Text (Дублирование текста) – выбранный фрагмент текста копируется и дублируется в текущем окне проекта и средстве просмотра ресурсов Treeview с сохранением всех свойств. При этом автоматически запускается диалоговое окно настройки свойств текстового ресурса (Text Properties) для их переопределения.

DDE Links (Связь по DDE) – открывает диалоговое окно конфигурирования связи по DDE (рис. 20) между пакетом fuzzyTECH и любым другим клиентом DDE.

–  –  –

Меню View Данный пункт меню (рис. 21) позволяет конфигурировать оболочку fuzzyTECH в соответствии с возможностями по визуализации вашей ПЭВМ и вашими личными предпочтениями. В данном пункте меню вы можете определить какие интерфейсные элементы как основного окна fuzzyTECH, так и элементы остальных диалоговых окон, вы хотите оставить видимыми, а какие спрятать. Все проделанные вами изменения будут иметь силу до последующей модификации и не зависят от загружаемого проекта.

Рис. 21 Рис. 22

Toolbars (Панели инструментов) – панели инструментов обеспечивают быстрый и удобный доступ к большинству функций редактора fuzzyTECH. В общем случае панели инструментов могут быть определены для следующих диалоговых окон (рис.

22):

- основное окно fuzzyTECH;

- окно редактора переменных (Variable Editor);

- окно редактора правил в виде таблиц (Spreadsheet Rule Editor);

- окно матричного редактор правил (Matrix Rule Editor);

- окно просмотра (Watch Window);

- окно диаграммы переходов (Transfer Plot);

- окно трехмерной диаграммы (3D Plot);

- окно временной диаграммы (Time Plot);

- окно анализатора правил (Rule Analyzer).

Помимо включения/отключения видимости отдельных панелей инструментов возмо одномоментное включение/отключение всех панелей инструментов сразу путем выбора опций «Показать все/Спрятать все» (Show all/Show none).

Statusbar (Строка статуса) – строка статуса (рис. 23) основного окна программы fuzzyTECH отображает текущее состояние системы и проекта.

–  –  –

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

Zoom Project Editor (Масштабирование редактора проекта) – для более наглядного представления, изображение содержимого окна редактора проекта программы fuzzyTECH может быть увеличено или уменьшено. Масштабные коэффициенты принимают значения: 75%, 50% или 100% (рис. 22). Последнее значение масштабного Рис. 22 коэффициента используется в проекте по умолчанию.

Gridlines (Линии сетки) – позволяет делать видимыми или невидимыми линии сетки в окне редактора переменных (Variable Editor) и на временной диаграмме (Time Plot).

Разрешение сетки, при этом, устанавливается автоматически.

Term List Box (Список термов) – позволяет делать видимым (Show all) или невидимым (Show none) список термов в окне редактирования переменных (Variable Editor). Данная опция доступна и непосредственно из окна редактора переменных Plot Background (Фон диаграммы) – позволяет менять цвет фона временной и трехмерной диаграмм на черный (Black) или белый (White).

Lines (Линии) – позволяет менять толщину линий на временной диаграмме и в редакторе переменных (толстые/тонкие линии - Thick/Thin).

Object Comments (Комментарии к объекту) – если данная опция выбрана, то при указании курсором мышки на любой объект проекта выводятся комментарии к данному объекту.

Treeview (Средство просмотра ресурсов проекта в виде дерева) – делает видимым или невидимым средство просмотра ресурсов проекта в виде дерева (Treeview) Меню Debug Меню отладки (рис. 23) позволяет разработчику выбирать различные режимы проверки работоспособности проекта. Как уже отмечалось ранее, с целью верификации и оптимизации проекта пакет fuzzyTECH предоставляет большое число режимов отладки. При выборе любого режима отладки появляется окно просмотра (Watch Window) рис. 6. Выбранный режим отладки отображается в заголовке окна просмотра, в Treeview и отмечается специальным символов в меню рис. 23.

Рис. 23 При выборе любого из режимов отладки, разрабатываемый проект прежде всего проверяется на целостность структуры.

Пользователь может выбрать 4 автономных режима отладки:

- диалоговый режим отладки (Interactive Debug Mode);

- отладка по последовательной связи (Serial Link Debug Mode);

- отладка в режиме записи в файл (File Recorder Debug Mode)

- пакетный режим отладки (Batch Debug Mode).

И два режима отладки проекта в реальном времени:

- отладка в режиме мониторинга (Monitor Debug Mode);

- отладка в режиме мониторинга и модификации (Monitor&Modify Debug Mode).

Interactive (Диалоговый режим) – позволяет инспектировать отклик нечеткой логической системы на входные данные, задаваемые вручную.

Serial Link (Последовательная связь) – позволяет настроить протокол обмена данными между fuzzyTECH и другой системой через интерфейс последовательной связи с целью дистанционного управления процессом отладки.

File Recorder (Запись в файл) – позволяет считывать исходные данные из текстового файла, созданного по определенным правилам и выводить результаты на временную диаграмму.

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

Monitor (Монитор) – позволяет проводить тестирование нечеткой логической системы запущенной на отдельной независимой аппаратной платформе. В данном режиме реботы отладчика функции модификации проекта недоступны. Данный режим возможен только для редакций пакета fuzzyTECH поддерживающих режимы Online или RTRCD.

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

Подобно предыдущему режиму отладки, данный режим тоже возможен только для редакций пакета fuzzyTECH поддерживающих режимы Online или RTRCD.

Меню Analyzer Меню анализатора (Analyzer) пакета fuzzy TECH (рис. 24) позволяет управлять средствами визуального анализа работы тестируемой нечеткой системы. Данный пункт меню доступен только при включенном режиме отладки. При этом все средства анализатора доступны в любом режиме работы отладчика.

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

Пользователь имеет возможность сохранить текущую конфигурацию и число окон анализа путем установки маркера [Save Window Configuration] в диалоге настройки параметров сохранения (Preferences dialog Save) пакета fuzzyTECH.

Данный пункт меню содержит следующие элементы:

Transfer Plot (Диаграмма переходов) – позволяет проводить анализ характеристик входов/выходов нечетких систем и их элементов.

3D Plot (Трехмерная диаграмма) – представляет характеристики входов/выходов нечеткой системы и ее частей в виде трехмерной диаграммы.

Time Plot (Временная диаграмма) – позволяет анализировать временные характеристики элементов нечеткой логической системы. Выбор анализируемых переменных, термов и индивидуальных правил осуществляется с помощью специального диалогового окна рис. 25.

–  –  –

Rule Analyzer (Анализатор правил) – открывает окно анализатора правил (рис. 10) для первой выходной переменной.

Statistics (Статистика) – средство, позволяющее оценивать степень использования каждого правила нечеткой логической системы. С этой целью для каждого правила вводится отдельная колонка в таблице редактора правил (Spreadsheet Rule Editor) в которую записывается либо абсолютное число циклов исполнения данного правила вывода, либо число циклов относительно общего числа циклов исполнения программы. Чтобы данная опция была доступна, данный подпункт меню необходимо отметить с помощью специального маркера.

Trace (Трассировка) – запускает диалоговое окно управления и конфигурирования (Trace Control window) процессом трассировки (сохранением результатов работы нечеткой логической системы в файлах *.TRC). Трассировка не избирательна к какому-либо способу отладки и может быть запущена в любом режиме работы отладчика. Наиболее целесообразно ее использовать для отображения очень быстрых и очень медленных процессов. Режим трассировки, как, впрочем, и остальные режимы работы анализатора, доступен только в режиме отладки.

Меню Tools В данном меню (рис. 26) содержится вызов таких вспомогательных средств пакета fuzzyTECH, как генератор кода, нечеткий нейро-модуль (NeuroFuzzy module), нечеткий кластерный модуль (FuzzyCluster module) и другие средства, позволяющие конфигурировать основную оболочку fuzzyTECH.

Рассмотрим более подробно отдельные подпункты меню. Рис. 26

–  –  –

C (С-код) – компилирует текущий проект и генерирует код, совместимый с С.

M (Matlab код) – компилирует текущий проект и генерирует код, совместимый с пакетом Matlab FTR (файл формата*.FTR) – компилирует проект в файл двоичных параметров с расширением *.FTR, который затем может быть доступен для динамических библиотек реального времени FTRUN32.DLL или FTRUN32.DLL и элементов ActiveX пакета управления реального времени fuzzyTECH.

FTR + Wrapper Class for Visual C++/MFC (FTR+упакованный класс для Visual C++/MFC) – компилирует проект в файл двоичных параметров с расширением *.FTR. В качестве дополнения генерируется модуль С++ для Microsoft Visual C++ (файлы Ftr*.cpp, Ftr*.h), в котором определяются классы CFtr* с функциями API динамической библиотеки FTRUN32.DLL.Вполне возможно, что некоторые разработчики, работающие на C++, найдут использование методов и свойств классов CFtr* более простым и удобным в сравнении с использованием функций FTRUN-API.

FTR + Wrapper Class for Visual Basic (FTR+упакованный класс для Visual Basic) – компилирует проект в файл двоичных параметров с расширением *.FTR. В дополнении к этому генерируется модуль классов Visual Basic (*.CLS), в котором определяется класс Ftr*, описывающий нечеткую систему, с функциями API динамической библиотеки FTRUN32.DLL..

FTR + Wrapper Class for VBA (FTR+упакованный класс для VBA) – компилирует проект в файл двоичных параметров с расширением *.FTR. В дополнении к этому генерируется модуль классов Visual Basic for Applications (*.cls), в котором определяется класс Ftr*, описывающий нечеткую систему, с функциями API динамической библиотеки FTRUN32.DLL..

Следует отметить, что опция меню «Compile To» не работает в демо-версии пакета fuzzyTECH.

Neuro (Нейро) – fuzzyTECH обеспечивает адаптацию разработанной нечеткой логической системы путем использования дополнительного модуля NeuroFuzzy, который позволяет улучшать и оптимизировать нечеткую логическую систему путем «тренировки» ее компонент по алгоритмам шаблонов данных. Если данные берутся непосредственно из процесса, то для проверки согласованности данных и для устранения излишнего их количества, можно использовать кластерные алгоритмы.

Меню Neuro содержит две опции:

- конфигурирование (Configuration);

- обучение (Learning).

Cluster (Кластер) – при обучении нечеткой системы путем применения нечетких нейросетей обычно используются реальные данные процессов. При этом многие системы требуют предварительной обработки данных. Модуль FuzzyCluster пакета fuzzyTECH обеспечивает комбинацию общепринятых кластерных технологий и нечеткой логики для задач предварительной обработки данных.

Меню Cluster содержит две опции:

- Кластер ISO (IsodataCluster);

- Нечеткий кластер (FuzzyCluster).

Project Options (Опции проекта) –содержит диалоговые окна (рис. 28), позволяющие настроить fuzzyTECH под конкретное приложение. Все изменения, вносимые при работе с диалогами данного окна, немедленно задействуются в проекте и имеют силу только для данного проекта.

–  –  –

General (Общие настройки) – обеспечивают настройку параметров компилятора системы с учетом особенностей реализации нечеткой логической системы на конкретной аппаратной платформе с использованием особенностей компиляторов.

Online Timing (Хронирование в режиме Online) – позволяет настраивать временные характеристики связи (время обновления (Refresh Time) и лимит времени (Timeout)) при работе в режиме Online.

Code Generator (Генератор кода ) – позволяет определять параметры компилятора.

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

–  –  –

Диалоговое окно настроек параметров пакета содержит следующие опции:

General (Общие настройки) – позволяет определить общие настройки программы в соотвествии с конфигурацией вашей ПЭВМ и личными предпочтениями.

- Для того, чтобы в меню File выводился список наиболее часто используемых файлов, отметьте маркером поле Recently Used File List. Число файлов в списке можно указать в окне Entries.

- Для отображения при каждом запуске окна быстрой подсказки отметьте маркером поле Quick Help Window Active.

- С целью требования подтверждения отдельных действий пользователя во время редактирования проекта (удаление, перемещение и т.д.) поставьте маркер в поле Show Additional Warnings.

- Для того, чтобы вместо таблицы блока правил при двойном щелчке мыши на поле блока в редакторе проекта появлялся редактор правил в виде матрицы (Matrix Rule Editor), поставьте маркер в поле Open by Double-clicking Rule Block.

Save (Сохранить) – устанавливает опции сохранения резервных копий проекта.

- Для сохранения резервных копий в каталоге FTHOME\BACKUP (файлы с расширением *.FT!), установите маркер в поле Automatic Project Backup.

- Для сохранения уникального положения окон редактора проекта в специальном файле конфигурации (*.CFG) при сохранении основного проекта (файлы *. FTL), установите маркер в поле Save Window Configuration.

- Для автоматического запуска диалогового окна общего описания разрабатываемого проекта (Project Information) до выполнения команды сохранения файла, установите маркер в поле Prompt for Project Information.

Editors (Редакторы) – позволяет настроить редакторы файлов FTL (опция Editor) и редактора документации проектора (опция Word Processor).

Watch Window (Окно просмотра) – позволяет настраивать опции окна тестирования проекта и просмотра результатов

- Для вывода окна просмотра в виде иконки необходимо отметить поле Open Iconized.

- Для отображения наименования и значений входных и выходных переменных нечеткой системы в цвете необходимо отметить поле Use Colors. В противном случае – переменные будут отображаться в черно-белом цвете.

- Для отображения вспомогательных переменных отметьте поле Show Intermediate Variables.

- Если программа fuzzyTECH выступает в роли DDE-клиента, соединенного с другим приложением - DDE-сервером, то значения переменных могут быть изменены только со стороны приложения – сервера. Установка маркера в поле Edit DDE Input Variables переопределяет это правило и делает возможным перезадание переменных со стороны клиента.

- Для задания числа знаков после запятой необходимо ввести их число в поле No. of Digits after Decimal.

Matrix Rule Editor (Матричный редактор блока правил) – осуществляет настройку матричного редактора блока правил, который является альтернативой редактора блока правил в виде таблиц.

- Для вывода дополнительной информации о числе заданных правил и безразличных правил, установите маркер в поле Advanced Display in Matrix Items.

- Для задания минимального и максимального размера ячейки матрицы блока правил в пикселях, введите соответствующие значения в поля Minimum Size of Matrix Items и Maximum Size of Matrix Items.

- Для задания режима отображения матрицы правил (в виде первых двух букв терма, в виде цветовой гаммы терма или в виде цветовой схемы, задающей позицию терма и его значения) выберите соответствующую опцию (Gray Scale, Term Colors, False Colors).

Serial Interface (Интерфейс последовательной связи) – обеспечивает настройку интерфейса последовательной связи путем задания порта связи (Connection), скорости передачи (Transfer Rate (Baud)), числа бит данных (Data Bits) и др. параметров (Parity, Stop Bits, Protocol, размер буфера передачи (Transmit buffer size) и приема (Recieve buffer size)).

Editions (Редакции пакета) – позволяет выбирать желаемую редакцию пакета fuzzyTECH (рис. 30). При выборе редакции главное окно программы закрывается и происходит перезагрузка компьютера. Если в окне были не сохраненные файлы, то пользователю будет предложено их сохранить на жестком диске компьютера.

–  –  –

Language (Язык) – позволяет задавать язык для меню и диалоговых окон программы fuzzyTECH. Как и в предыдущем случае, для изменения языка потребуется перезагрузка программы.

Меню Window Данное меню функционально мало чем отличается от стандартного меню управления окнами в MDI – приложениях MS Windows.

Меню содержит следующие пункты:

Open all Variable Editors of (Открыть все редакторы переменных) – позволяет открыть одновременно окна редактирования для всех переменных нечеткой системы (Input Variable), всех выходных переменных (Output Variables), вспомогательных переменных (Intermediate Vaqriables) и всех переменных проекта (All Variables).

Open all Spreadsheet Rule Editors (Открыть все табличные редакторы блоков правил)– позволяет открыть табличные редакторы базы правил для каждого блока правил проекта.

Close all Variable Editors (Закрыть все редакторы переменных) - закрывает все открытые ранее редакторы переменных.

Close all Spreadsheet Rule Editors (Закрыть все табличные редакторы блоков правил) – закрывает все открытые раннее табличные редакторы блоков правил.

Остальные опции данного меню программы ничем не отличаются от стандартных.

Меню Help Данный пункт меню ничем не отличается от стандартного для приложений MS Windows.

Управление пакетом fuzzyTECH с клавиатуры Подобно большинству программных пакетов почти все основные функции приложения fuzzyTECH доступны с клавиатуры.

Данных механизм основан на следующих основных соглашениях Windows:

[Alt][ch] – доступ к элементам основного меню программы (ch=подчеркнутому символу пункта меню).

[F9] или [Shift][F10] - открывает контекстное (всплывающее) меню для активного окна.

[Ctrl][F6] - позволяет переключать фокус между окнами основного окна программы.

[Tab] - перебирает различные группы элементов активного окна программы.

[], [], [], [] - используются для перемещения между элементами внутри группы.

[Enter] - активизировать выбранную опцию.

[Ins] - вставить выбранный объект.

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

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

Последнее можно сделать, если следовать следующим инструкциям:

1. выберите с помощью клавиши [Tab] объект (точку терма), который надо переместить;

2. активизируйте данный объект (точку терма) нажав влавишу[Enter];

3. переместите объект (точку терма) на новое место используя клавиши [], [], [], [];

4. «отпустите» объект нажав клавишу [Enter].

Клавиши быстрого вызова (Short Keys) пакета fuzzyTECH

–  –  –

Клавиши быстрого вызова редактора проекта (Project Editor):

[Ctrl][V] Создать новую переменную.

[Ctrl][R] Создать новый блок правил.

[Ctrl][X] Создать новый текстовый ресурс.

Клавиши быстрова вызова средства просмотра ресурсов проекта Treeview:

[Ins] Вставить выбранный объект в Treeview.

[F2] Переименовать выбранный в Treeview объект.

[Ctrl][V] Создать новую переменную.

[Ctrl][D] Сделать дубликат переменной.

[Ctrl][R] Создать новый блок правил.

[Ctrl][B] Сделать дубликат блока правил.

[Ctrl][X] Создать новый текстовый ресурс.

Клавиши быстрого вызова в редакторе переменных (Variable Editor):

[Ctrl][T] Создать новый терм лингвистической переменной.

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

К таким окнам относятся:

- основное окно программы fuzzyTECH;

- окно редактора переменных (Variable Editor);

- окно табличного редактора базы правил нечеткого проекта (Spreadsheet Rule Editor);

- окно матричного редактора базы правил нечеткого проекта (Matrix Rule Editor);

- окно просмотра (Watch Window);

- окно диаграммы переходов (Transfer Plot Analyzer);

- окно трехмерной диаграммы (3D Plot Analyzer);

- окно временной диаграммы (Time Plot Analyzer);

- окно анализатора правил (Rule Analyzer).

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

Панель инструментов основного окна программы fuzzyTECH Видимостью панели инструментов основного окна программы fuzzyTECH (рис. 31) можно управлять устанавливая определенные опции пункта View основного меню программы.

–  –  –

Данная панель инструментов содержит следующие элементы:

New File (Создать файл) – открывает окно генератора проекта (Generate Project) и создает новый файл. По умолчанию файлу присваивается имя «untitled».

Fuzzy Design Wizard (Помощник по созданию проекта) – запускает помощника по созданию нового проекта.

Open File (Открыть файл) – открывает диалоговое окно открытия файла проекта fuzzyTECH.

Save File (Сохранить файл) – сохраняет текущее состояние проекта в файл *. FTL, а настройки и конфигурацию окна редактирования проекта в файл *. CFG.

Documentation (Документация) – открывает диалоговое окно настройки и запуска генератора документации рабочего проекта.

Revision Control (Управление ревизией) – открывает диалоговое окно управления ревизией рабочего проекта.

Undo (Отмена) – позволяет сделать отмену предыдущим действиям по редактированию рабочего проекта. Число откатов - до 16.

Interactive Debug Mode (Интерактивный режим отладки) – запускает режим интерактивной отладки и открывает окно просмотра (Watch Window).

Monitor (Монитор) – запускает мониторинговый режим отладки нечеткой системы, реализованной на независимой аппаратной платформе.

Monitor&Modify (Мониторинг и внесение изменений) - запускает мониторинговый режим отладки нечеткой системы, реализованной на независимой аппаратной платформе с возможностью внесения изменений в систему в реальном масштабе времени.

Transfer Plot (Диаграмма переходов) – запускает окно диаграммы переходов для анализа характеристик входов/выходов нечеткой логической системы.

3D Plot (Трехмерная диаграмма) - запускает окно для анализа характеристик входов/выходов нечеткой логической системы в виде трехмерной диаграммы.

Time Plot (Временная диаграмма) – запускает окно для анализа временных характеристик нечеткой логической системы.

Rule Analyzer (Анализатор правил) – запускает анализатор правил для определения числа и вида используемых правил для заданной комбинации входных параметров нечеткой логической системы.

Statistics (Статистика) – добавляет специальную колонку с информацией о частоте использования того или иного правила в табличный редактор блока правил.

Compile to C (Компилировать проект в код С) – позволяет создавать свободный от лицензирования код С для данной нечеткой системы.

Compile to FTR (Компилировать в файл параметров FTR) – позволяет генерировать свободный от лицензирования файл параметров нечеткой логической системы формата *.FTR.

Compile to XYZ (Компилировать в код ассемблера) – позволяет генерировать свободный от лицензирования аппаратно-ориентированный ассемблерный код для данной нечеткой системы.

Project Options (Опции проекта) – открывает окно настроек параметров проекта.

Neuro Learning (Обучение нейронной сети) – запускает модуль обучения нечеткой нейронной сети для данного проекта.

Create Linguistic Variable (Создать лингвистическую переменную) – запускает диалоговое окно создания лингвистической переменной.

Create Rule Blocks (Создать блок правил) – запускает диалоговое окно создания нового блока правил.

Create Text (Создать текстовый ресурс) – запускает диалоговое окно по созданию нового текстового ресурса.

Properties (Свойства) – запускает диалоговое окно редактирования свойств выбранного элемента рабочего проекта.

Treeview (Средство просмотра ресурсов проекта Treeview) – управляет видимостью средства просмотра ресурсов проекта Treeview.

Help (Справка) – запускает справочную систему пакета fuzzyTECH.

Панель инструментов окна редактирования переменных (Variable Editor) Видимостью панели инструментов окна редактирования переменных (рис. 32) можно управлять устанавливая определенные опции пункта View основного меню программы.

–  –  –

Данная панель инструментов содержит следующие элементы:

Select Next Term (Выбрать следующий терм) – перебирает термы лингвистической переменной.

New Term (Новый терм) – открывает диалог создания нового терма.

New Inverse Term (Создать инверсный терм) – создает терм, дополняющий выбранный в данный момент (функция принадлежности нового терма равна 1-функция принадлежности выделенного терма).

Sort Terms (Сортировать термы) – сортирует термы лингвистической переменной. В списке термы располагаются по степени убывания - сначала положительные термы, а затем отрицательные.

Base Variable (Базовая переменная) – открывает диалоговое окно настройки базовой переменной в помощнике по созданию лингвистической переменной (Linguistic Variables Wizard).

Standard MBF (Стандартная MBF) – автоматически преобразует все функции принадлежности в стандартные.

Variables Wizard (Помощник по созданию переменных) – запускает диалоговое окно, которое руководит действия пользователя по созданию лингвистической переменной.

Show Listbox (Показать список термов) – управляет видимостью списка термов лингвистической переменной.

Display Defuzzification (Переключить опции дефазификации) – позволяет переключать различные опции при использовании Hyper CoM метода дефазификации.

Становится активной только при запуске режима отладки.

Learn MBFs (Обучение MBF) – запускает режим обучения нечеткой нейронной сети для функций принадлежности.

Help (Справка) – запускает справочную систему по окну редактирования лингвистических переменных.

Панель инструментов окна редактирования базы правил в табличном виде (Spreadsheet Rule Editor) Видимостью панели инструментов окна редактирования базы правил в табличном виде (рис. 33) можно управлять устанавливая определенные опции пункта View основного меню программы.

–  –  –

Данная панель инструментов содержит следующие элементы:

Matrix Rule Editor (Редактор базы правил в матричном виде) – переключает режим редактирования базы правил.

Rule Block Wizard (Помощник по созданию базы правил) – руководит процессом установления взаимосвязи между лингвистическими переменными нечеткой системы.

Delete All Rules (Удалить все правила в блоке) – удаляет все правила из блока.

Set DoS (Установить DoS) – открывает диалоговое окно настройки степени поддержки правила.

Partial Rule Block (Частичный блок правил) – удаляет все правила из базы правил и генерирует новую базу правил, где перечислены все возможные комбинации входных переменных. Степень использования каждого правила устанавливается равной 1. Следует подчеркнуть, что генерируется частичный блок правил, т.к. перечисляются только комбинации входных переменных (часть правила IF), а следствия правил (часть THEN) остаются незаполненными.

Full Rule Block (Полный блок правил) - удаляет все правила из базы правил и генерирует новую базу правил, где перечислены все возможные комбинации входных и выходных переменных. Степень использования каждого правила устанавливается равной 1.

Fuzzy Operators (Нечеткие операторы) – открывает окно настройки свойств блока правил и позволяет настроить композиционное правило вывода.

Sort Rules (Сортировка правил) – открывает диалог сортировки правил блока.

Compressed Rule Table (Сжатая таблица правил) – открывает окно, в котором выводится таблица с правилами в компактном виде.

Show Absolute Statistics (Показать абсолютную статистику) – отображает абсолютную статистику выполнения конкретного правила блока. Функция доступна только при включенном режиме анализатора.

Show Relative Statistics (Показать относительную статистику) - отображает статистику выполнения конкретного правила блока по отношению к общему числу выполнения правил. Функция доступна только при включенном режиме анализатора.

Reset Statistics Counter (Сбросить счетчик статистики) – сбрасывает все значения в колонке статистики на рабочем листе табличного редактора правил в 0. Функция доступна только при включенном режиме анализатора.

Learn DoS (Обучить DoS) - запускает режим обучения нечеткой нейронной сети для степени поддержки правил.

Help (Справка) – запускает справочную систему по окну редактирования блока правил.

Панель инструментов окна редактирования базы правил в матричном виде (Matrix Rule Editor) Видимостью панели инструментов окна редактирования базы правил в виде матрицы (рис. 34) можно управлять устанавливая определенные опции пункта View основного меню программы.

–  –  –

Данная панель инструментов содержит следующие элементы:

Spreadsheet Rule Editor (табличный редактор блока правил) - переключает режим редактирования базы правил.

Fuzzy Operators (Нечеткие операторы) – открывает окно настройки свойств блока правил и позволяет настроить композиционное правило вывода.

Preferences - Matrix Rule Editor (Настройки матричного редактора) – запускает диалог настроек матричного редактора блока правил.

Swap Row and Column (Поменять местами строку и колонку) – меняет местами переменные матрицы. Переменные, отображаемые в строках, будут отображаться в колонках и наоборот.

Display Gray Scale (Отобразить матрицу в серой палитре) – отображает матрицу правил используя серую палитру (градации серого отображают степень применимости правила - DoS).

Display Term Colors (Отображать правила цветом терма) – ячейки матрицы отображаются цветом выходной лингвистической переменной, связывающей входные переменные.

Display False Colors – ячейки матрицы отображаются градациями цвета по степени их приближение к положительному терму выходной переменной.

Display Input Aggregation (Отобразить результат объединения входных переменных)

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

Display Degree of Support (Отобразить степень поддержки правила) – в ячейках матрицы отображается степень поддержки каждого правила. Наиболее удобно при этом использовать представление правил в серой гамме, где каждой DoS соотвествует своя градация серого.

Display Composition with Degree of Support (Отобразить результат применения композиционного правила вывода) – в ячейках матрицы отображается результат применения композиции. Опция возможна только при активном режиме отладки.

Help (Справка) – запускает справочную систему по окну редактирования блока правил.

Панель инструментов окна просмотра (Watch window) Видимостью панели инструментов окна просмотра (рис. 35) можно управлять устанавливая определенные опции пункта View основного меню программы.

–  –  –

Данная панель инструментов содержит следующие элементы:

Preference - Watch Window (Настройки окна просмотра) – открывает диалоговое окно настроек параметров окна просмотра (Watch Window).

Colored (Окрашенный) – переключает режим цветовой вывода наименований переменных.

Intermediate List Box (Список вспомогательных переменных) – выводит весь список вспомогательных переменных. Если в проекте таковых нет, то данная опция недоступна.

Reinitialize DDE Links (Регенерировать все DDE-соединения) обновляет все текущие соединения по протоколу DDE.

Help (Справка) – запускает справочную систему по окну просмотра.

Edit Field (Поле редактирования) – позволяет модифицировать значение выделенной переменной.

Панель инструментов окна диаграммы переходов (Transfer Plot) Видимостью панели инструментов окна диаграммы переходов (рис. 36) можно управлять устанавливая определенные опции пункта View основного меню программы.

–  –  –

Данная панель инструментов содержит следующие элементы:

Show Cross Section (Показать пересекающиеся области) – управляет видимостью пересекающихся областей на диаграмме переходов.

Show Variable Boxes (Показать поля переменных) – управляет видимостью полей с именами переменных.

Repaint (Перерисовать) – обновляет (регенерирует) содержимое диаграммы.

Trace (Трассировка) – управляет включением/выключением режима трассировки.

Reset Trace (Сброс трассировки) – стирает результаты последней трассировки.

Help (Справка) – запускает справочную систему по окну диаграммы переходов.

Панель инструментов окна 3D диаграммы (3D Plot) Видимостью панели инструментов окна трехмерной диаграммы (рис. 37) можно управлять устанавливая определенные опции пункта View основного меню программы.

–  –  –

Данная панель инструментов содержит следующие элементы:

Rotate Plot (Повернуть диаграмму) – поворачивает диаграмму с учетом перспективы с шагом 10 градусов. Двойной щелчок мыши по любой клавише приводит к автоматическому повороту диаграммы до двухмерного представления.

Stop Rotation (Остановить вращение) – останавливает вращение 3D диаграммы.

Vertical change (Отражение вертикальной оси) – зеркально отражает диаграмму относительно горизонтальной плоскости.

Variable Box (Поле переменных) – управляет видимостью полей переменных в окне диаграммы.

Crisp Values (Четкие значения) – управляет видимостью значений переменных в виде красных стрелок на диаграмме в режиме отладки.

Change Color Palette (Сменить цветовую схему) – меняет цветовую схему 3D диаграммы.

Repaint (Перерисовать) – регенерирует изображение диаграммы.

Background Paint (Прорисовка в фоновом режиме) – управляет режимом прорисовки диаграммы. Если данный режим включен, то диаграмма прорисовывается в памяти, а затем отображается в окне. В противном случае она выводится по частям.

Trace (Трассировка) – управляет включением/выключением режима трассировки.

Reset Trace (Сброс трассировки) – стирает результаты последней трассировки.

Help (Справка) – запускает справочную систему по окну 3D диаграммы.

Панель инструментов окна временной диаграммы (Time Plot) Видимостью панели инструментов окна временной диаграммы (рис. 38) можно управлять устанавливая определенные опции пункта View основного меню программы.

–  –  –

Данная панель инструментов содержит следующие элементы:

Configuration (Конфигурация) – открывает диалоговое окно конфигурирования временной диаграммы.

Zoom Factor List (Окно ввода масштабного коэффициента) – управляет масштабным коэффициентом по оси Х (оси времени). При этом в качестве масштабного коэффициента указывается число пикселов на один цикл.

Zoom In/Zoom Out (Увеличить/уменьшить) – управляет масштабом по горизонтальной оси диаграммы.

Reset (Сброс) – очищает поле диаграммы.

Freeze (Заморозить) – останавливает вывод на диаграмму.

Shows Listbox (Показать список) – управляет видимостью списка переменных.

Show Grid (Показать сетку) – управляет видимостью масштабной сетки.

Add Input Variables (Добавить входные переменные) – добавляет на диаграмму входные переменные.

Add Output Variables (Добавить выходные переменные) - добавляет на диаграмму выходные переменные.

Help (Справка) – запускает справочную систему по окну временной диаграммы.

Панель инструментов окна анализатора правил (Rule Analyzer) Видимостью панели инструментов окна временной диаграммы (рис. 39) можно управлять устанавливая определенные опции пункта View основного меню программы.

–  –  –

Данная панель инструментов содержит следующие элементы:

Variable Name (Имя переменной) – задает имя анализируемой переменной.

Sort by Aggregation (Сортировка по объединению правил) – правила сортируются по степени их объединения.

Sort by Result-Aggregation (Сортировка по объединению результата) – правила сортируются по степени объединения результата.

Help (Справка) – запускает справочную систему по окну анализатора правил.

РЕДАКТОРЫ И ПОМОЩНИКИ ПАКЕТА fuzzyTECH

В составе fuzzyTECH можно выделить следующие группы редакторов:

1. Редактор проекта целиком;

2. Редактор лингвистических переменных;

3. Редактор базы нечетких правил

4. Редактор текстовых ресурсов К первой группе относятся: помощник по созданию проекта (Fuzzy Design Wizard), собственно редактор проекта (Project Editor) и средство просмотра ресурсов (Treeview).

Вторая группа редакторов, в свою очередь, состоит из: помощника по описанию лингвистических переменных (Linguistic Variable Wizard), редактора свойств переменных (Variable Properties), собственно редактора переменных (Variable Editor) и редактора свойств термов (Term Properties).

Третья группа редакторов включает в себя помощника по созданию блока правил (Rule Block Wizard), редактор блока правил (Rule Block Properties), редактор таблиц блока правил (Spreadsheet Rule Editor) и редактор матрицы правил (Matrix Rule Editor).

И, наконец, к четвертой группе относится редактор текстовых ресурсов проекта - Text Properties.

Помощник по созданию проекта (Fuzzy Design Wizard (FDW)) FDW запускает ряд диалоговых окон, которые помогают в интерактивном режиме создавать новый или редактировать уже существующий проект. Запуск помощника осуществляется либо при выборе соответствующего подпункта в меню «File», либо путем нажатия виртуальной клавиши на панели быстрого запуска.

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

- вызывает подсказку для заданной ситуации;

- выход из помощника без сохранения изменений;

- переход к предыдущему диалоговому окну;

- переход к следующему диалоговому окну;

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

При запуске помощника первым появляется окно рис. 40, в котором предлагается либо внести изменения в уже существующий проект (Append an existing system), либо создать новый (Create new system). Далее, в окне рис. 41 предлагается определить переменные модели. Для этого необходимо задать число входных/выходных/вспомогательных переменных (Input/Output/Intermediate LVs), а также число термов для соответствующих переменных (Input/Output/Intermediate Terms/LVs). Позднее все лингвистические переменные могут быть переопределены в последующих диалоговых окнах (рис. 42).

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

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

–  –  –

После определения лингвистических переменных необходимо задать способ дефазификации результатов расчета нечеткой логической модели (рис. 43). Пользователю предлагается выбрать либо метод наилучшего компромисса – метод поиска центра максимума (Center of Maximum (CoM)), либо метод наибольшего правдоподобия – метод значения максимума (Mean-of-Maximum (MoM). Первый метод обычно применяется при разработке нечетких систем управления процессами и предполагает поиск компромисса между возможными результатами решения нечеткой задачи. Второй способ дефазификации применяется, в основном, для распознающих систем и предполагает выбирать в качестве решения терм с наивысшим рангом (степенью принадлежности.) Последним шагом работы помощника является определение параметров блоков правил (рис. 44). В пакете fuzzyTECH принята идеология объединения отдельных правил, задающих стратегию вывода или принятия решения в конкретном случае, в блоки, определяющие стратегию решения задачи целиком. В этой связи необходимо определить число таких блоков правил в поле Rule Blocks. Далее, если выбрать опцию Create Rule Base, то программа сгенерирует набор правил для каждого блока в отдельности. Правила будут генерироваться для каждой комбинации термов. В случае, когда достаточно только одного блока правил, с ним будут ассоциированы все входные и выходные лингвистические переменные. В пределе, можно определить 8 входных переменных и 4 выходных.

Если база правил более сложная, то возможно определить степень поддержки правила (Degree of Support (DoS)), когда «важность» каждого правила оценивается не «0» или «1», а некоторым значением в диапазоне [0, 1].

Так, например, пусть задано правило:

IF "Distance" = medium AND "Angle" = pos_small THEN "Power" = pos_medium Пусть его степень поддержки DoS=0.8. При этом, для заданной задачи, данное правило удовлетворяет решению на 0.8 (Degree of Validity of the Condition = 0.8).

В этом случае результат применения данного правила будет:

PROD{Degree of Validity of the Condition, Degree of Support}:=

Result of the Rule (Validity of the Consequence) PROD{0.8,0.8} = 0.64.

Т.о., значение переменной "Power" = pos_medium с рангом 0.64.

В зависимости от выбранной опции Random Defined DoS Value / User Defined DoS Value степень поддержки правила будет соответственно задана либо случайно, либо будет определяться пользователем вручную.

Учитывая, что описания основного окна редактора проекта (Project Editor) и окна средства просмотра ресурсов проекта TreeView уже рассматривались ранее, в настоящем разделе они не приводятся.

Помощник по описанию лингвистических переменных (Linguistic Variables Wizard) Помощник по описанию лингвистических переменных состоит из набора диалоговых окон, позволяющих руководить процессом описания лингвистической переменной.

Вызвать помощника можно несколькими способами:

1) Используя контекстное (всплывающее) меню в окне средства просмотра ресурсов проекта Treeview. Для этого необходимо щелкнуть правой клавишей мыши по выделенному имени любой существующей лингвистической переменной и в появившемся контекстном меню выбрать опцию New Variable (Новая переменная) или Duplicate Variable (продублировать переменную).

2) Используя контекстное (всплывающее) меню в основном окне редактора проекта (Project Editor). Для этого необходимо щелкнуть правой клавишей мыши в любом месте основного окна редактора проекта и в появившемся контекстном меню выбрать опцию New Variable (Новая переменная) или Duplicate Variable (продублировать переменную).

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

3) Выбрав клавишу на основной панели инструментов.

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

Рис. 45

В поле Name (имя) задается имя новой переменной. Длина имени ограничена 16 символами, при этом в имени переменной не допускается использование пробелов. Поля I/O Mapping и Show I/O Mapping используются только в определенных редакцияз пакета fuzzyTECH - IAS и IA-S5, а посему в настоящем разделе не рассматриваются. Для определения, каким будет выводиться вновь создаваемая лингвистическая переменная в окне просмотра Watch Window и на временной диаграмме, воспользуйтесь клавишей Color. В поле Type (Тип) задается тип переменной – входная, выходная или вспомогательная. В поле Method (Метод) задается метод фазификации для входных переменных и метод дефазификации для выходных переменных. Обычно в качестве метода фазификации (преобразования из «четкого» уровня в нечеткий) используют вычисление функций принадлежности (Compute MBF). Выбор метода дефазификации определяется, как уже отмечалось, решаемой задачей.

По завершении описания основных характеристик лингвистической переменной, пользователю предлагается задать диапазон базовой переменной в окне рис. 46. При этом пользователь должен задать граничные значения для базовой переменной в полях Min/Max, значение, которое будет использоваться для переменной по умолчанию (например, в случае, если для выходной переменной не будет найдено правило вывода для заданной комбинации входных переменных) (поле Default) и единицы измерения базовой переменной (поле Units).

Рис. 46 Рис. 47 Следующим этапом является задание функций принадлежности для термов лингвистической переменной (рис. 47). В поле Number задается число термов (функций принадлежности), а в поле Names выбрать наиболее подходящие названия для термов лингвистической переменной. Для того, чтобы задать имена термов, отличные от предлагаемых помощником, необходимо выйти из помощника и запустить редактор переменных (Variable Editor). В поле Shoulder (Плечо) определяется форма термов для наибольшего и наименьшего значения базовой переменной. Обычно для входных переменных используют «высокое плечо» (High Shoulder), а для выходных переменных – «низкое плечо» (Low Shoulder). Симметричность или несимметричность термов лингвистической переменной задается в поле Non-Linearity (Нелинейность). При этом все действия по описанию лингвистической переменной отображаются в поле Preview.

На последнем шаге в окне рис. 48 приводятся комментарии к задаваемой лингвистической переменной (поле Comment) и список сокращений (поле Veriable Name Explanation).

–  –  –

Управление навигацией по помощнику осуществляется с помощью стандартного набора виртуальных клавиш: Help, Next, Previous, End, Cancel.

Редактор свойств переменной (Variable Properties) В данном диалоговом окне пользователь может переопределить основные свойства существующих лингвистических переменных. Во многом редактор свойств переменной (рис.

49) идентичен помощнику по созданию лингвистической переменной. Вызвать редактор можно несколькими способами:

1) Используя контекстное (всплывающее) меню в окне средства просмотра ресурсов проекта Treeview. Для этого необходимо щелкнуть правой клавишей мыши по выделенному имени любой существующей лингвистической переменной и в появившемся контекстном меню выбрать опцию Properties (Свойства).

2) Используя контекстное (всплывающее) меню в основном окне редактора проекта (Project Editor). Для этого необходимо щелкнуть правой клавишей мыши на имени лингвистической переменной и в появившемся контекстном меню выбрать опцию Properties (Свойства).

3) Выбрав в средстве просмотра TreeView или в основном окне редактора проекта нужную лингвистическую переменную и нажав клавишу на основной панели инструментов.

–  –  –

Редактор свойств лингвистической переменной содержит три страницы:

- Общие настройки;

- Базовая переменная;

- Комментарии.

Операции по редактированию свойств те же, что и в аналогичных окнах помощника по созданию лингвистической переменной.

Редактор переменной (Variable Editor) Редактор переменной позволяет в графическом виде задавать и изменять функции принадлежности для каждого терма лингвистической переменной. Окно редактора может быть открыто для любой лингвистической переменной, если дважды щелкнуть левой клавишей мыши по названию этой переменной в основном окне редактора проекта или средстве просмотра ресурсов проекта TreeView.

Рис. 50

Панель инструментов для данного окна программы fuzzyTech уже рассматривалась.

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

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

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

Редактор свойств термов (Term Properties) Окно редактора свойств терма (рис. 51) появляется в случае, когда

- создается новый терм;

- редактируются свойства существующего терма.

–  –  –

В поле Term Name (Имя терма) задается и редактируется имя текущего терма лингвистической переменной. При этом следует помнить, что нельзя вставлять в имя пробелы и оставлять это поле пустым. В поле Shape задается форма терма.

При этом возможны следующие варианты:

- терм S-формы задается дифференцируемой функцией с определенными параметрами;

- терм L-формы задается линейной функцией;

- терм L-Shape (negative) задается линейной функцией, которая при гипердефазификации интерпретируется как отрицательная.

Для выбора цвета редактируемого или вновь создаваемого терма необходимо нажать виртуальную клавишу Color.

Помощник по созданию блока правил (Rule Block Wizard) Подобно всем помощникам Rule Block Wizard содержит ряд диалоговых окон, обеспечивающих руководство действиями пользователя по созданию базы правил.

Запустить помощника можно следующими способами:

1) Нажав клавишу быстрого вызова [Ctrl][R].

2) Используя контекстное меню средства просмотра ресурсов проекта Treeview. Для этого надо щелкнуть правой клавишей мыши по полю блока правил и выбрать опцию New Rule Block (Новый блок правил) или Duplicate Rule Block (Продублировать блок правил).

3) Используя контекстное меню основного окна редактора проекта (Project Editor).

Для этого необходимо выбрать блок правил на поле окна редактора проекта, щелкнуть по нему правой клавишей мыши и в появившемся меню выбрать опции New Rule Block или Duplicate Rule Block.

Рис. 52

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

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

Для создания блока правил с начальным набором правил необходимо поставить метку в поле Create Rule Base (Создать блок правил). В противном случае будет создан блок не содержащий ни одного правила.

На следующем шаге (рис 53) пользователю предлагается определить способы объединения входных условий и задать композиционное правило вывода.

Рис. 53

Объединение входных условий является первым этапом нечеткого вывода и позволяет определить к какому значению будет стремиться результат объединения значений, стоящих в части IF правил. Для различных предусловий используются различные операторы объединения степеней принадлежности нечетким множествам. Для вычислений на основе нечетких правил возможны три группы операторов объединения, каждый из которых использует параметры (GAMMA или LAMBDA), находящиеся в диапазоне от 0 до 1 и отражающих степени принадлежности нечетким множествам.

Операции объединения входных переменных задаются следующим образом:

Min-Max, Lambda = 0.0: MIN Minimum, соотносится с логическим AND.

Min-Max, Lambda = 1.0: MAX Maximum, соотносится с логическим OR Min-Avg, Lambda = 1.0: AVG Average (среднее) Gamma, Gamma = 0.0: PROD Product (продукция) Характеристики выбранного способа объединения отображаются в окне диаграммы Operator Plot.

В поле Result Aggregation (Объединение результата) задаются правила объединения нечетких решений в случае, когда несколько правил приводят к одному и тому же решению.

Способ объединения MAX предполагает выбирать в качестве решения результат с наибольшей степенью принадлежности, в то время как метод BSUM предлагает просуммировать все степени принадлежности.

Следует отметить, что для объединения входных условий обычно используют метод Min-Max, Lambda = 0.0, а для объединения выходных условий – метод MAX.

На следующем шаге (окно Define Variable Influence рис. 54) определяется влияние входных переменных на выходные.

Рис. 54

В данном блоке пользователь может базовый набор логических правил, которые отражают влияние между выбранными входными и выходными переменными (для каждой входной переменной будет открыто свое окно настроек). Другими словами, для каждой пары входной и выходной переменных, помощник по созданию правил позволяет определить влияние из диапазона [very negative (очень отрицательное), negative (отрицательное), not at all (отсутствует), positive (положительное), very positive (очень положительное)]. Если какая либо входная переменная не оказывает никакого влияния на выходную переменную, то можно ее исключить из правил убрав метку из поля с именем данной переменной.

И, наконец, на последнем шаге в окне Comments for Rule Block (рис. 55) задаются комментарии к блоку правил. В дальнейшем комментарии будут отображаться в основном окне редактирования проекта при подведении указателя мышки к соотвествующему блоку правил.

Рис. 55 Рис. 56 Редактор свойств блока правил (Rule Block Properties) По своей структуре редактор свойств блока правил (Rule Block Properties рис. 56) подобен Rule Block Wizard. Отличие заключается в том, что если помощник позволяет пользователю определять новый блок правил, то редактор свойств блока правил позволяет редактировать свойства уже существующего блока.

Вызвать редактор можно несколькими способами:

1) Выделив блок правил в основном окне редактора проекта и нажав клавишу ПРОБЕЛ.

2) Используя контекстное (всплывающее) меню в окне средства просмотра ресурсов проекта Treeview. Для этого необходимо щелкнуть правой клавишей мыши по выделенному имени блоку правил и в появившемся контекстном меню выбрать опцию Properties (Свойства).

3) Используя контекстное (всплывающее) меню в основном окне редактора проекта (Project Editor). Для этого необходимо щелкнуть правой клавишей мыши на имени блока правил и в появившемся контекстном меню выбрать опцию Properties (Свойства).

4) Выбрав в средстве просмотра TreeView или в основном окне редактора проекта нужный блок правил и нажав клавишу на основной панели инструментов.

Редактор свойств блокаправил содержит три страницы:

- Общие настройки;

- Операторы;

- Комментарии.

Операции по редактированию свойств те же, что и в аналогичных окнах помощника по созданию блока правил.

Редактор блока правил в табличной форме (Spreadsheet Rule Editor) Редактор блока правил в табличном виде (Spreadsheet Rule Editor) рис. 57 позволяет задавать и редактировать правила нечеткой системы. Все правила представляются в табличной форме. При включенном режиме отладки нечеткой системы в поле степени поддержки правила (DoS) в качестве дополнительной информации отображается динамика выбора правил.

–  –  –

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

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

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

Колонка блока правил THEN содержит заключения (правая часть) каждого правила и служит для их задания и редактирования. Подобно колонке IF данная колонка разделяется на ряд подколонок, число которых определяется числом выходных переменных+1.

Дополнительная подколонка содержит значения степени поддержки (DoS) для каждого правила. Если включен режим отладки, то в подколонке DoS в виде двух столбиковых диаграмм отображается динамика выбора каждого правила. При этом высота левого столбика соответствует результату объединения входных условий, а высота правого столбика – результату применения композиционного правила для выходной переменной.

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

Строки блока правил содержат одно (или более) нечеткое правило. Левая часть правила (условие) задается в ячейках колонки IF, а правая часть правил (заключения) задаются в ячейках колонки THEN. Если блок правил содержит более одной части THEN, то в каждой строке может содержаться более одного правила (несколько выходов нечеткой системы).

Если хотя бы одна ячейка колонки IF остается незаполненной, то такие правила называются безразличными.

Правила могут быть созданы, удалены или изменены. Для модификации ячеек таблицы можно воспользоваться контекстным меню. Для его вызова необходимо щелкнуть правой клавишей мыши на ячейке, содержимое которой необходимо изменить. Кроме того, для каждого правила может быть установлена своя степень поддержки путем задания значения от 0 до 1 в колонке DoS. Правила с DoS=0.0 считаются полными, но они не оказывают никакого влияния на получение конечного результата. Все неполные правила при закрытии редактора будут автоматически удалены.

Редактор блока правил в матричном виде (Matrix Rule Editor) Как уже отмечалось ранее, fuzzyTECH позволяет отображать и редактировать правила не только в виде таблиц, но и в виде матриц, что особенно удобно при визуализации больших блоков правил. Редактор блока правил в матричном виде (Matrix Rule Editor) рис.

58 можно запустить непосредственно из табличного редактора блока правил нажав виртуальную клавишу на панели инструментов (в свою очередь, в табличный редактор блока правил можно вернуться аналогичным образом) или воспользовавшись контекстным меню основного окна редактора проекта или средства просмотра ресурсов проекта Treeview.

Подобно предыдущему редактору блока правил, все функции редактирования в Matrix Rule Editor доступны либо из контекстного меню, либо из панели инструментов окна редактора.

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

Рис. 58

Поля ЕСЛИ/ТО (IF/THEN) служат для отображения лингвистических переменных и значений их термов, находящихся, соответственно, в части «ЕСЛИ» или «ТО» правила логического вывода.

Списки термов (Term List Box) позволяют выбирать конкретный терм лингвистической переменной разрабатываемой нечеткой системы. Если список термов входной лингвистической переменной отображается серый цветом и недоступен для редактирования, это означает, что термы данной лингвистической переменной используются в качестве наименований строй или столбцов матрицы. Пустое поле в списке значений термов входных лингвистических переменных позволяет определять «безразличные» правила. Если выбрать значение терма выходной переменной в списке, то в матрице будут подсвечены все ячейки, содержащие данный терм.

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

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

Каждая ячейка охватывает правила с одной и той же частью IF. Это означает, что каждая ячейка матрицы отображает выходной терм «сильнейшего» правила. Если для одной и той же ячейки матрицы были определены несколько правил, будет выведено «сильнейшее»

правило, при этом символами *** будет показано, что для данной ячейки определено несколько правил. Посмотреть правила для каждой ячейки в привычном виде (в виде подсказки формата IF A AND B THEN C) можно подведя курсор мыши к ячейке матрицы.

Выбор нечетких правил в матрице осуществляется путем задания термов входных и выходных лингвистических переменных блока правил. Если переменная не будет оказывать никакого влияния на вывод, необходимо для заданного терма выбрать опции «безразличный» (don't care). Следует отметить, что завершенная база правил должна содержать по меньшей мере одно правило, не объявленной как безразличное. Выбор термов переменных, отображаемых в матрице, осуществляется путем выбора их с помощью указателя мыши с фиксацией выбора щелчком левой клавиши. Термы, которые не отображены в поле матрицы, могут быть выбраны из списка лингвистической переменной.

Двойное нажатие в пустой (черной) ячейке матрицы позволяет задать новое правило логического вывода со степенью поддержки DoS=1. При этом, в части условия правила будут стоять значения термов заголовков строки и столбца матрицы, а в части заключения правила – значение текущего терма выходной переменной в списке термов. Кроме того, для заданной ячейки матрицы можно задать заключающую часть правила из контекстного меню.

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

Создание и редактирование в матричном редакторе двух и более блоков правил в настоящем разделе не рассматривается.

Редактор текстовых ресурсов (Text Editor) Для размещения текстового ресурса на рабочем листе редактора проекта необходимо выбрать подпункт «New Text...» меню «Edit», либо нажать комбинацию клавиш «Ctrl+X», либо нажать виртуальную клавишу на панели быстрого запуска.

–  –  –

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

ЛАБОРАТОРНЫЙ ПРАКТИКУМ

Лабораторный практикум состоит из трех лабораторных работ и преследует следующие цели:

- углубление знаний о нечетких множествах, лингвистической переменной и нечетких алгоритмах;

- ознакомление с технологией применения нечеткой логики для моделирования управления сложными технологическими и бизнес процессами;

- ознакомление с современным инструментальным средством fuzzyTECH v5.xx, применяемым для построения нечетких систем;

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

ЛАБОРАТОРНАЯ РАБОТА №1 «БЫСТРОЕ ЗНАКОМСТВО С



Pages:   || 2 |
Похожие работы:

«ЭЛЕКТРОКИНЕТИЧЕСКИЕ ЯВЛЕНИЯ ПРИ ВОЗДЕЙСТВИИ УЛЬТРАЗВУКА НА ЖИДКИЕ СРЕДЫ В.Л. Ланин Белорусский государственный университет информатики и радиоэлектроники, ул. П. Бровки, 6, г. Минск, 220013, Республика Беларусь, vlanin@bsuir.by Введение Воздействие мощного ультразву...»

«0315654 Новые достижения, новые возможности! Компания АЛС и ТЕК была создана в 1993 году коллективом ведущих разработчиков оборонных предприятий г. Саратова. Работая в постоянном сотрудничестве с Министерством Российской федерации по связи и информатизации, центром отраслевой науки ЛОНИИС (г. СанктПетербург), операторами свя...»

«Информационные процессы, Том 14, № 1, 2014, стр. 87–107. 2014 Лопес-Мартинес, Кобер, Карнаухов. c МАТЕМАТИЧЕСКИЕ МОДЕЛИ, ВЫЧИСЛИТЕЛЬНЫЕ МЕТОДЫ Восстановление изображений с помощью микросканирующей изображающей системы Х.Л.Лопес-Мартинес, В.И.Кобер,...»

«Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича...»

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕР...»

«Применение параллельных алгоритмов для решения системы линейных алгебраических уравнений с ленточной матрицей итерационными методами на кластерной системе Демешко И.П., Акимова Е.Н., Ко...»

«Известия высших учебных заведений. Поволжский регион МАШИНОСТРОЕНИЕ И МАШИНОВЕДЕНИЕ УДК 004.8:621.923. А. А. Игнатьев, А. В. Каракозова АНАЛИЗ ИНФОРМАТИВНОСТИ ВИБРОАКУСТИЧЕСКИХ ПАРАМЕТРОВ ПРИ КОН...»

«1 Открытый урок по математике в 5 классе по теме: Деление десятичных дробей на натуральные числа Тема: "Деление десятичных дробей на натуральные числа"Цели: 1. Продолжить работу над формированием умения выполнять деление десятич...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ Учебно-методическое объединение по образованию в области информатики и радиоэлектроники УТВЕРЖДАЮ Первый заместитель Министра образования Республики Беларусь _В.А.Богуш 04.02.2015 Регистрационный № ТД-I.1171/тип. ОСНОВЫ ПРОЕКТИРОВАНИЯ ЭЛЕКТРОННЫХ В...»

«Всеволод Несвижский Санкт-Петербург "БХВ-Петербург" УДК 681.3.068 ББК 32.973.26-018.1 Н55 Несвижский В. Н55 Программирование аппаратных средств в Windows. — 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2008. — 528 с.: ил. + CD-ROM — (...»

«УДК 620.19 : 622.83 ФИЗИЧЕСКИЕ И МЕТОДОЛОГИЧЕСКИЕ АСПЕКТЫ АКУСТОЭМИССИОННОГО КОНТРОЛЯ НАПРЯЖЕННО-ДЕФОРМИРОВАННОГО СОСТОЯНИЯ МАССИВА ГОРНЫХ ПОРОД Аркадий Васильевич Леонтьев Федеральное государственное бюджетное учреждение науки Инс...»

«Санкт-Петербургский государственный университет Кафедра Системного Программирования Болотов Сергей Сергеевич Разработка компилятора для языка РуСи на платформу MIPS Бакалаврская работа Научный руковод...»

«Программирование на ADOBE ACTIONSCRIPT 3.0 ® ® © Adobe Systems Incorporated, 2008. Все права защищены. Авторские права Программирование на Adobe® ActionScript® 3.0 в Adobe® Flash® Если данное руководство распространяется с программным обеспечением, кот...»

«Муниципальное бюджетное общеобразовательное учреждение средняя общеобразовательная школа №10 с углубленным изучением отдельных предметов Щёлковского муниципального района Московской области УТВЕРЖДАЮ Директор МБОУ СОШ №10 с УИОП ЩМР МО _ Е...»

«Федеральное государственное бюджетное учреждение науки Инстиryт систем информатики им. А.П. Ершова Сибирского отделения Российской академии наук (иси со рАн) иси со рАн РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ Системы искусственного...»

«4 МЕТОДИКА КУРСОВОГО ПРОЕКТИРОВАНИЯ ПО ДИСЦИПЛИНЕ "АРХИТЕКТУРА КОМПЬЮТЕРОВ И ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ" (на примере операции умножения) 4.1 Кодирование чисел 4.1.1 Кодирование знака числа. Кодирование чисел позволяет заменить операцию арифметического вычитания...»

«5. Программирование 1.Для программирования параметров войдите в сервисный режим. Для этого после набора [0] [0] [0] [0] [0] [0] подождите, пока не погаснет светодиод(5сек), далее наберите мастер-код( в случае ошибки при наборе шести нулей подождите 5сек после...»

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РФ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ "РЯЗАНСКИЙ ГОСУДАРСТВЕННЫЙ АГРОТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ П.А.КОСТЫЧЕВА" ИНЖЕНЕРНЫЙ ФАКУЛЬТЕТ Кафедра Электротехника и физика для выполнения лабораторных работ по дисциплине "Программирование...»

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

«ИНФОРМАЦИОННО-ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ И КОМПЛЕКСЫ УДК 519.6 В.И. Агошков, М.В. Ассовский, С.В. Гиниатулин, Н.Б. Захарова, Г.В. Куимов, И.Е. Пармузин, В.В. Фомин Институт вычислительной математики Российской академии наук, г. Москва ИНФ...»

«Федеральное агентство связи Федеральное государственное бюджетное образовательное учреждение высшего образования "Сибирский государственный университет телекоммуникаций и информатики" (СибГУТИ) Кафедра Вычислительных систем Допустить к защите Зав.каф. _Мамойленко С.Н. ВЫПУСКНАЯ КВ...»

«ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ Е. В. Баранова, профессор кафедры информатики И. К. Елизарова, программист учебно-методического управления ИНФОРМАЦИОННОЕ СОПРОВОЖДЕНИЕ ИНДИВИДУАЛЬНО-ОРИЕНТИРОВАННОГО УЧЕБНОГО ПРОЦЕССА Индивидуально-ориентированная организация учебного процесса предп...»








 
2017 www.lib.knigi-x.ru - «Бесплатная электронная библиотека - электронные матриалы»

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