exponenta event banner

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