exponenta event banner

evalRequirement

Класс: sdo.requirements.FuncureMatching
Пакет: sdo.requirements

Оценка удовлетворенности требованиям соответствия функций

Синтаксис

evaluation = evalRequirement(requirement,dependentVar)
evaluation = evalRequirement(requirement,dependentVar,indepVar1,...,indepVarN)

Описание

evaluation = evalRequirement(requirement,dependentVar) оценивает, являются ли тестовые данные dependentVar соответствует функции, указанной в Type имущества requirement объект. Программа вычисляет указанную функцию с помощью векторов независимых переменных по умолчанию со значением [0 1 2 ...]. Существует независимый вектор переменной, соответствующий каждой размерности dependentVarи длина каждого независимого вектора переменной равна размеру dependentVar в соответствующем измерении.

Например, рассмотрим двумерный dependentVar размера 3 на 2. Для вычисления линейной функции вида a0 + a1X1 + a2X2 программное обеспечение использует независимые векторы переменныхX1 = [0 1 2] и X2 = [0 1]. Программа вычисляет коэффициенты соответствия a0, a1, и a2 и затем вычисляет ошибку между проверочными данными и линейной функцией.

evaluation = evalRequirement(requirement,dependentVar,indepVar1,...,indepVarN) задает независимые векторы переменных, используемые для вычисления функции.

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

развернуть все

Требование соответствия функций, указанное как sdo.requirements.FunctionMatching объект. Вы указываете функцию, которая должна быть сопоставлена в requirement.Type.

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

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

  • Количество независимых переменных N должно равняться количеству измерений тестовых данных.

    Например, используйте две независимые переменные, когда тестовые данные dependentVar является матрицей и использует три независимые переменные, когда тестовые данные являются трехмерным массивом.

  • Первый вектор независимой переменной определяет координаты, идущие вниз по строкам тестовых данных, а второй вектор независимой переменной определяет координаты, идущие по столбцам тестовых данных. N-й вектор независимой переменной задает координаты вдоль N-го размера dependentVar.

  • Количество элементов в каждом векторе независимой переменной должно соответствовать размеру тестовых данных в соответствующем измерении.

  • Независимые переменные векторы должны быть монотонно увеличивающимися или уменьшающимися.

В объекте требования можно задать центрирование и масштабирование независимых переменных с помощью Centers и Scales свойства. Векторы независимых переменных, указанные пользователем, делятся на Scales значения после вычитания Centers значения. Дополнительные сведения см. в описании свойств на sdo.requirements.FunctionMatching справочная страница.

Можно также задать независимые векторы переменных с помощью массива ячеек. Количество элементов в массиве ячеек должно соответствовать количеству измерений в тестовых данных, dependentVar. Например, предположим, что dependentVar является двумерным, можно использовать любой из следующих синтаксисов:

evaluation = evalRequirement(requirement,dependentVar,independentVar1,independentVar2);
evaluation = evalRequirement(requirement,dependentVar,{independentVar1,independentVar2});

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

развернуть все

Оценка требования соответствия функций, возвращаемого как скаляр, вектор, матрица или массив, в зависимости от значения requirement.Method.

evalRequirement вычисляет сигнал ошибки, который является разницей между тестовыми данными и указанной функцией независимых переменных. Сигнал ошибки затем обрабатывается далее для вычисления evaluation. Значение evaluation зависит от метода обработки ошибок, указанного в requirement.Method.

requirement.Methodevaluation
'SSE'

evaluation возвращается как скалярное значение, равное сумме квадратов ошибок.

Положительное значение указывает, что требование нарушено, и 0 значение указывает, что требование удовлетворено. Ближе evaluation является для 0, чем лучше соответствие между функцией и тестовыми данными.

'SAE'

evaluation возвращается как скалярное значение, равное сумме абсолютных значений ошибок.

Положительное значение указывает, что требование нарушено, и 0 значение указывает, что требование удовлетворено. Ближе evaluation является для 0, чем лучше соответствие между функцией и тестовыми данными.

'Residuals'evaluation возвращается в виде вектора, матрицы или массива того же размера, что и тестовые данные dependentVar. evaluation содержит разницу между данными теста и указанной функцией независимых переменных.

Примеры

развернуть все

Создайте объект требования для сопоставления одномерных переменных с линейной функцией.

Requirement = sdo.requirements.FunctionMatching;

Укажите Centers и Scales для одномерной переменной с помощью set команда. Эти свойства задаются, поскольку их значения по умолчанию относятся к двумерной переменной.

set(Requirement,'Centers',0,'Scales',1);

Укажите тестовые данные для одномерной переменной.

dependentVariable = 0.5+5.*(1:5);

Проанализируйте требование.

evaluation = evalRequirement(Requirement,dependentVariable)
evaluation = 5.6798e-30

Программа вычисляет линейную функцию с использованием вектора независимой переменной по умолчанию [0 1 2 3 4] поскольку не указаны какие-либо независимые векторы переменных. Существует одна независимая переменная, поскольку количество независимых переменных должно равняться количеству измерений тестовых данных. Размер вектора независимой переменной равен размеру тестовых данных.

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

Создайте объект требования и укажите функцию для сопоставления.

Requirement = sdo.requirements.FunctionMatching('Type','purequadratic');

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

Создайте двухмерные тестовые данные для переменной.

[X1,X2] = ndgrid((-1:1),(-4:2:4));
dependentVar = X1.^2 + X2.^2;

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

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

indepVar1 = (-2:0);
indepVar2 = (-6:2:2);

Оцените, удовлетворяют ли тестовые данные требованиям.

evaluation = evalRequirement(Requirement,dependentVar,indepVar1,indepVar2)
evaluation = 2.0681e-29

evalRequirement команда вычисляет сигнал ошибки, который представляет собой разность между тестовыми данными и функцией независимых векторов переменных. Сигнал ошибки дополнительно обрабатывается для вычисления evaluation, на основе метода обработки ошибок, указанного в Requirement.Method.

В этом примере метод обработки имеет значение по умолчанию 'SSE', так evaluation возвращается как скалярное значение, равное сумме квадратов ошибок. evaluation очень близко к нулю, указывая, что dependentVariable тестовые данные почти соответствуют чистой квадратичной функции.

Создание тестовых данных с использованием перекрестных терминов.

dependentVariable2 = X1.^2 + X2.^2 + X1.*X2;

Проанализируйте потребность в новых тестовых данных.

evaluation2 = evalRequirement(Requirement,dependentVariable2,indepVar1,indepVar2)
evaluation2 = 5.3333

Продукция evaluation2 больше, чем evaluation и существенно отличается от 0, указывая, что dependentVariable2 не подходит для чисто квадратичной функции, а также dependentVariable подходит под функцию.

Представлен в R2016b