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

The 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 является либо a mamfistype2 или sugfistype2 объект, затем вы должны задать setType как "type2".

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

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

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

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

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

свернуть все

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

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

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

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

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

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

.
Введенный в R2018b