exponenta event banner

sdo.requirements.PhasePlaneRegion класс

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

Наложить область на траекторию фазовой плоскости двух сигналов

Описание

Используйте sdo.requirements.PhasePlaneRegion объект для наложения области, связанной с траекторией фазовой плоскости двух сигналов в модели Simulink ®. Траектория фазовой плоскости представляет собой график двух сигналов друг против друга. В объекте можно задать ограниченную область как одну кромку или несколько кусочно-линейных кромок. Задается начальная и конечная координаты x и y граничных кромок, где плоскость X-Y является фазовой плоскостью, определяемой двумя сигналами. Также указывается, должна ли траектория двух сигналов лежать внутри или вне ограниченной области, заданной кромками.

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

Строительство

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

requirement = sdo.requirements.PhasePlaneRegion(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.PhasePlaneRegion('OpenEnd',[1 1]) создает sdo.requirements.PhasePlaneRegion и указывает, что первый и последний край границы простираются до бесконечности.

Свойства

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

X-координаты рёбер, определяющих ограниченную область, заданную как массив n-by-2 с конечными значениями, где n - число рёбер в границе. Каждая строка BoundX задает начальные и конечные значения координат X кромки. Количество строк должно соответствовать количеству строк в BoundY свойство, определяющее координаты y ребер.

Необходимо указать BoundX и BoundY свойства одновременно, либо с использованием Name,Value аргументы во время построения объекта или с использованием set команда после построения объекта.

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

Y - координаты рёбер, определяющих ограниченную область, заданную как массив n-by-2 с конечными значениями, где n - число рёбер в границе. Каждая строка BoundY задает начальные и конечные значения координат y кромки. Количество строк должно соответствовать количеству строк в BoundX , которое задает координаты X ребер.

Необходимо указать BoundX и BoundY свойства одновременно, либо с использованием Name,Value аргументы во время построения объекта или с использованием set команда после построения объекта.

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

Описание требования, указанное как символьный вектор.

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

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

Расширение первого и последнего граничных ребер до бесконечности, определяемое как логический массив 1 на 2.

Если первый элемент OpenEnd является true, начало первого ребра в кусочно-линейной связи простирается до бесконечности. Если второй элемент OpenEnd является true, конец последнего ребра в кусочно-линейной связи простирается до бесконечности.

Пример см. в разделе Создание области фазовой плоскости, ограничиваемой кромкой, простирающейся до бесконечности.

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

Имя требования, указанное как символьный вектор.

Пример: 'Requirement1'

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

Тип границы, указанный как одно из следующих значений:

  • '<=' - Область вне границы всегда находится слева от каждой кромки, где направление вперед является направлением создания кромки.

    Например, рассмотрим границу с одной кромкой между точкой A, расположенной в (-1,1), и точкой B в (3,1). Предположим, что вы указываете координаты точки A перед тем, как указать точку B. То есть вы указываете BoundX как [-1 3] и BoundY как [1 1]. Черная стрелка на левом графике показывает направление создания кромки, а желтая область - это область вне границы, когда Type является '<='. Теперь предположим, что вы вместо этого указываете точку B перед точкой A. То есть вы указываете BoundX является [3 -1] и BoundY является [1 1]. На графике справа показано, что область вне границы теперь находится под кромкой, поскольку направление создания кромки изменилось на противоположное.

  • '>=' - Область вне границы всегда находится справа от каждого края.

    В примере с одним краем предположим, что координаты точки A задаются до указания точки B. На левом графике видно, что желтая область вне границы находится ниже кромки, когда Type является '>='. Это происходит потому, что желтая область находится справа от края, в направлении создания края. Если вместо этого указать точку B перед точкой A, на графике справа будет показано, что область вне границы теперь находится над кромкой.

Пример с несколькими граничными кромками см. в разделах Задание граничной области с несколькими кромками и Оценка требования.

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

Методы

evalRequirementОценить удовлетворенность кусочно-линейной связи на траектории фазовой плоскости двух сигналов

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

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

Примеры

свернуть все

Создайте объект требования к области фазовой плоскости со свойствами по умолчанию. Объект задает кусочно-линейную границу на траектории фазовой плоскости двух сигналов. Фазовая плоскость - это плоскость X-Y, определяемая двумя сигналами.

Requirement = sdo.requirements.PhasePlaneRegion;

Задайте кусочно-линейную границу с двумя кромками. Координатами (x, y) для начала и конца первого ребра являются (1,1) и (2,1). Второй край проходит от (2,1) до (2,0). Необходимо указать BoundX и BoundY одновременно.

set(Requirement,'BoundX',[1 2; 2 2],'BoundY',[1 1; 1 0])

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

Requirement.OpenEnd = [1 0];

Первая кромка теперь простирается от (-Inf,1) до (2,1).

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

Создайте объект требования для задания кусочно-линейной границы на траектории фазовой плоскости двух сигналов. Граница имеет два ребра. Первая кромка простирается от (-4,1) до (2,1). Вторая кромка простирается от (2,1) до (2, -4).

Requirement = sdo.requirements.PhasePlaneRegion('BoundX',[-4 2; 2 2],...
    'BoundY',[1 1; 1 -4]);

Укажите тип привязки как '>='.

Requirement.Type = '>=';

На графике ниже показаны ограничивающие кромки черным цветом. Стрелки указывают направление, в котором были указаны кромки. При указании Type свойство как '>=', область вне границы всегда находится справа от каждой кромки, где направление вперед является направлением создания кромки. В результате выходящая из границы область является желтой затененной областью, а точка траектории, расположенная в (3,3), находится в ограниченной области.

Оцените требование к точке траектории фазовой плоскости, расположенной в (3,3).

Evaluation = evalRequirement(Requirement,[3 3])
Evaluation = -0.6389

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

Теперь создайте требование, изменив порядок задания кромок.

set(Requirement,'BoundX',[2 2; 2 -4],'BoundY',[-4 1;1 1]);

График показывает, что ребра были созданы в противоположном порядке. Таким образом, несмотря на то, что вид потребности по-прежнему '>=', область вне границы, которая всегда находится справа от краев, теперь переворачивается.

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

Evaluation = evalRequirement(Requirement,[3 3])
Evaluation = 0.1087

Положительное Evaluation значение указывает на нарушение требования. Таким образом, для того же типа требований точка траектории в (3,3) выходит за границы, когда кромки определены в обратном порядке.

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