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) выходит за пределы, когда ребра заданы в обратном порядке.

Смотрите также

Введенный в R2017b