evalRequirement

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

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

Синтаксис

evaluation = evalRequirement(requirement,signal1,signal2)
evaluation = evalRequirement(requirement,signals)

Описание

evaluation = evalRequirement(requirement,signal1,signal2) оценивает, является ли траектория плоскости фазы двух сигналов signal1 и signal2 удовлетворяет кусочно-линейной привязке, указанной в requirement объект. Траектория фазы плоскости является графиком из двух сигналов друг против друга. Положительное evaluation значение указывает, что требование было нарушено.

evaluation = evalRequirement(requirement,signals) задает два сигнала как массив n -by-2. Первый столбец соответствует первому сигналу, а второй столбец соответствует второму сигналу. n - количество временных точек в сигналах.

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

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

Фаза для плоской области, заданное как sdo.requirements.PhasePlaneRegion объект. В объекте задаются кусочно-линейные ограничивающие ребра.

Сигналы, которые будут оценены, заданные как timeseries объекты.

signal1 соответствует x- значение траектории плоскости фазы и signal2 соответствует y- значение траектории плоскости фазы.

Сигналы, которые будут оценены, заданные как массив n -by-2. Первый столбец соответствует первому сигналу, x- значение траектории плоскости фазы. Второй столбец соответствует второму сигналу, y- значение траектории плоскости фазы. n - количество временных точек в сигналах.

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

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

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

Примеры

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

Создайте объект требования по умолчанию.

Requirement = sdo.requirements.PhasePlaneRegion;

Объект требования задает ограниченную область как одно ребро, простирающуюся от (-1,0) до (-1,1) в плоскости фазы, заданной двумя сигналами. Requirement.Type имеет значение по умолчанию '<='. Это значение подразумевает, что область слева от ребра находится вне границ, где прямое направление является направлением создания ребра.

Задайте данные тестового сигнала следующим timeseries объекты.

signal1 = timeseries(1-exp(-(0:10)'));
signal2 = timeseries(sin((0:10)'));

Оцените требование.

Evaluation = evalRequirement(Requirement,signal1,signal2)
Evaluation = -0.2632

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

Создайте объект требования, чтобы задать кусочно-линейную границу на траектории плоскости фазы двух сигналов. Граница имеет два ребра. Первое ребро простирается от (-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