exponenta event banner

getFISCodeGenerationData

Создание однородной нечеткой структуры системы вывода

Описание

Чтобы создать код для анализа системы нечеткого вывода с помощью MATLAB ® Coder™, необходимо преобразовать объект системы нечеткого вывода в однородную структуру с помощьюgetFISCodeGenerationData.

пример

fisOut = getFISCodeGenerationData(fisIn) преобразует систему нечеткого вывода типа 1 fisIn в однородную структуру fisOut. fisIn может быть объектом FIS или именем .fis файл.

пример

fisOut = getFISCodeGenerationData(fisIn,'FuzzySetType',setType) указывает тип функций членства, используемых в fisIn.

Примеры

свернуть все

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

fisObject = readfis('tipper');

Преобразование результирующего mamfis объект в однородную структуру.

fisStructure = getFISCodeGenerationData(fisObject);

В этой структуре, если поле является массивом структуры, все элементы этого массива имеют одинаковый размер. Например, рассмотрим элементы массива входных переменных fisStructure.input.

fisStructure.input(1)
ans = struct with fields:
              name: 'service'
    origNameLength: 7
             range: [0 10]
                mf: [1x3 struct]
         origNumMF: 3

fisStructure.input(2)
ans = struct with fields:
              name: 'food   '
    origNameLength: 4
             range: [0 10]
                mf: [1x3 struct]
         origNumMF: 2

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

Загрузка системы нечеткого вывода, сохраненной в файле tipper.fis в однородную структуру.

fis = getFISCodeGenerationData('tipper.fis');

Создайте систему нечеткого вывода типа 2. В этом примере создайте FIS по умолчанию с тремя входами и двумя выходами.

fisObject = mamfistype2('NumInputs',3,'NumOutputs',2);

Преобразование результирующего mamfistype2 объект в однородную структуру.

fisStructure = getFISCodeGenerationData(fisObject,'FuzzySetType',"type2");

Входные аргументы

свернуть все

Входная система нечеткого вывода, заданная как одно из следующих значений:

  • mamfis, sugfis, mamfistype2, или sugfistype2 объект. getFISCodeGenerationData поддерживает только объекты системы нечеткого вывода для моделирования.

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

Если fisIn является либо mamfistype2 или sugfistype2 , то необходимо указать setType как "type2".

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

Тип членских функций, используемых в fisIn, указано как одно из следующих:

  • "type1" - Type-1 членские функции

  • "type2" - Type-2 членские функции

Выходные аргументы

свернуть все

Система вывода нечеткого вывода, возвращенная как однородная структура. В однородной структуре, если поле является массивом структуры, все элементы этого массива имеют одинаковый размер. Например, в массиве входных переменных fisOut.input:

  • Имена всех переменных являются символьными векторами одинаковой длины.

  • Длины массивов членских функций для всех переменных одинаковы.

Для любых векторов символов или массивов структуры, дополненных для увеличения их длины, исходные длины этих элементов сохраняются в структуре.

fisOut структура отличается от структуры, созданной с помощью convertToStruct.

Расширенные возможности

.
Представлен в R2018b