exponenta event banner

sdo.requirements.FuncureMatching класс

Пакет: 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Оценка удовлетворенности требованиям соответствия функций

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

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

Примеры

свернуть все

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

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

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