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 влияют на операции копии, смотрите Копирование Объектов (MATLAB).

Примеры

свернуть все

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

Requirement = sdo.requirements.FunctionMatching;

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

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

Requirement.Type = 'purequadratic';

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

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

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

Введенный в R2017b