sdo.requirements.FunctionMatching class

Пакет: sdo.requirements
Суперклассы:

Наложите ограничение соответствия функции переменной

Описание

Используйте sdo.requirements.FunctionMatching объект, чтобы наложить ограничение соответствия функции на значения переменной в Simulink® модель. Переменная может быть вектором, матрицей или многомерным массивом, который является параметром в вашей модели, таким как данные интерполяционной таблицы в вашей модели. Вы создаете объект требования и задаете линейную или квадратичную функцию, которая должна совпадать с переменной. Для примера для двумерной переменной можно задать, что тестовые данные из зависимой переменной V соответствовать линейной функции независимых переменных X1 и X2:

V=a0+a1X1+a2X2

Где, a0, a1, и a2 являются подобранными коэффициентами и X1 и X2 являются векторами.

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

Можно использовать объект потребности как вход в функцию затрат и использовать evalRequirement команда в функции затрат для анализа потребности. Затем можно использовать функцию затрат и sdo.optimize выполнить оптимизацию отклика при условии удовлетворения заданного требования. Если вы выполняете анализ чувствительности, после генерации выборок параметров, можно использовать функцию затрат и sdo.evaluate для оценки потребности для каждого сгенерированной выборки.

Конструкция

requirement = sdo.requirements.FunctionMatching создает sdo.requirements.FunctionMatching объект требования и присваивает его свойствам значения по умолчанию. Используйте запись через точку для настройки свойств. Используйте evalRequirement команда для оценки того, удовлетворяют ли тестовые данные заданному требованию.

requirement = sdo.requirements.FunctionMatching(Name,Value) создает объект требования с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар. Name является именем свойства и Value - соответствующее значение. Name должны находиться внутри одинарных кавычек (''). Можно задать несколько аргументы пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN.

Входные параметры

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Использование Name,Value аргументы для задания свойств   объекта требования во время создания объекта. Для примера, requirement = sdo.requirements.FunctionMatching('Type','quadratic') создает sdo.requirements.FunctionMatching и задает функцию, которая будет совпадать как квадратичная.

Свойства

расширить все

Значения для вычитания из независимых векторов переменных, которые вы вводите в evalRequirement метод, заданный как вектор длины, равной количеству независимых переменных. Количество независимых переменных равняется размерности тестовых данных. Например, предположим, что вы задаете Centers как [1 2] для двумерной переменной с двумя независимыми переменными. Программное обеспечение вычитает 1 от первого независимого вектора переменной и 2 от второго независимого вектора переменной.

Задайте Centers улучшить численное обусловленность, когда один или несколько независимых векторов переменной имеют среднее значение, которое отличается от 0 несколькими порядками величины. Если вы не задаете независимые векторы переменных, то программное обеспечение не использует Centers.

Значение по умолчанию Centers, [0 0], для двумерной переменной. Для переменных других размерностей измените Scales и Centers свойства вместе с использованием set команда. Для получения примера смотрите Вычисление требования соответствия функции для одномерных Переменных.

Типы данных: double

Описание требования, заданное как вектор символов.

Пример: 'Requirement 1 for myModel.'

Типы данных: char

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

  • 'SSE' - Сумма квадратов ошибок

  • 'SAE' - Сумма абсолютных значений ошибок

  • 'Residuals' - Ошибки

Типы данных: char

Имя требования, заданное как вектор символов.

Пример: 'Requirement1'

Типы данных: char

Масштабирование независимых векторов переменных, которые вы вводите в evalRequirement метод, заданный как вектор длины, равной числу независимых переменных. Количество независимых переменных равняется размерности тестовых данных. Независимые векторы переменной делятся на соответствующие Scales значение после вычитания Centers значения.

Например, предположим, что вы задаете Centers как [5 50] и Scales как [10 100] для двумерной переменной с двумя независимыми переменными. Программное обеспечение вычитает 5 от первого независимого вектора переменной и делит результат на 10. Программное обеспечение вычитает 50 от второго независимого вектора переменной и делит результат на 100.

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

Значение по умолчанию Scales, [1 1], для двумерной переменной. Для переменных других размерностей измените Scales и Centers свойства вместе с использованием set команда. Для получения примера смотрите Вычисление требования соответствия функции для одномерных Переменных.

Типы данных: double

Функция, которая будет совпадать, заданная как одно из следующего:

  • 'linear' - Тестовые данные от зависимой переменной V соответствуют линейной функции. Для примера, для двумерной переменной с независимыми переменными, X1 и X2линейная функция имеет вид:

    V=a0+a1X1+a2X2

    Когда вы используете evalRequirement чтобы оценить потребность в тестовых данных, программное обеспечение вычисляет коэффициенты соответствия a0, a1, и a2 а затем вычисляет ошибку между тестовыми данными и линейной функцией.

  • 'purequadratic' - Тестовые данные подгоняются к квадратичной функции без перекрестных членов. Для двумерной переменной чистая квадратичная функция имеет вид:

    V=a0+a1X1+a2X12+a3X2+a4X22

  • 'quadratic' - Тестовые данные подобраны к квадратичной функции, которая включает в себя перекрестные условия. Для двумерной переменной квадратичная функция имеет вид:

    V=a0+a1X1+a2X12+a3X2+a4X22+a5X1X2

    Если тестовые данные одномерны, перекрестных терминов нет, и поэтому расчеты те же, что и когда Type является 'purequadratic'.

Типы данных: char

Методы

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

Копировать семантику

Указатель. Чтобы узнать, как классы handle влияют на операции копирования, см. раздел «Копирование объектов».

Примеры

свернуть все

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

Requirement = sdo.requirements.FunctionMatching;

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

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

Requirement.Type = 'purequadratic';

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

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

The Centers и Scales свойства заданы как векторы длины, равной количеству независимых переменных. Количество независимых переменных равняется размерности тестовых данных.

Requirement = sdo.requirements.FunctionMatching('Centers',[5 10],...
    'Scales',[50 100]);

Когда вы задаете независимые переменные в качестве входов в evalRequirement команда, программное обеспечение вычитает 5 от первой независимой переменной, а затем делит результат на 10. Программное обеспечение вычитает 50 от второй независимой переменной и затем делит результат на 100.

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

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 при таких малых значениях.

Введенный в R2016b