stepinfo

Время нарастания, время урегулирования и другие характеристики переходного процесса

Описание

stepinfo позволяет вам вычислить характеристики переходного процесса для модели динамической системы или для массива данных переходного процесса. Для переходного процесса y (t), stepinfo вычисляет характеристики относительно yinit и yfinal, где yinit является начальным смещением, то есть, значение, прежде чем шаг будет применен, и yfinal является установившимся значением ответа. Эти значения зависят от синтаксиса, который вы используете.

  • Для модели sys динамической системы, stepinfo использование yinit = 0 и yfinal = установившееся значение.

  • Для массива данных переходного процесса [y,t], stepinfo использование yinit = 0 и yfinal = длится демонстрационное значение y, если вы явным образом не задаете эти значения.

Для получения дополнительной информации о как stepinfo вычисляет характеристики переходного процесса, см. Алгоритмы.

Следующая фигура иллюстрирует некоторые характеристики stepinfo вычисляет для переходного процесса. Для этого ответа примите что y (t) = 0 для t <0, таким образом, yinit = 0.

Step response characteristics. The figure shows peak response, peak time, rise time, settling time, and transient time of the response.

пример

S = stepinfo(sys) вычисляет характеристики переходного процесса для модели sys динамической системы. Этот синтаксис использует yinit = 0 и yfinal = установившееся значение для вычисления характеристик, которые зависят от этих значений.

Используя этот синтаксис требует лицензии Control System Toolbox™.

S = stepinfo(y,t) вычисляет характеристики переходного процесса из массива данных переходного процесса y и соответствующий временной вектор t. Для откликов системы SISO, y вектор с тем же количеством записей как t. Для данных об ответе MIMO, y массив, содержащий ответы каждого канала ввода-вывода. Этот синтаксис использует yinit = 0 и последнее значение в y (или последнее значение в соответствующих данных об ответе каждого канала) как yfinal.

пример

S = stepinfo(y,t,yfinal) вычисляет характеристики переходного процесса относительно установившегося значения yfinal. Этот синтаксис полезен, когда вы знаете, что ожидаемый установившийся отклик системы отличается от последнего значения в y по причинам, таким как шум измерения. Этот синтаксис использует yinit = 0.

Для ответов SISO, t и y векторы с той же длиной NS. Для систем с NU входные параметры и NY выходные параметры, можно задать y как NS- NY- NU массив (см. step) и yfinal как NY- NU массив. stepinfo затем возвращает NY- NU массивы структур из характеристик ответа, соответствующих каждой паре ввода-вывода.

пример

S = stepinfo(y,t,yfinal,yinit) вычисляет характеристики переходного процесса относительно начального значения ответа yinit. Этот синтаксис полезен когда ваш y данные имеют начальное смещение; то есть, y является ненулевым, прежде чем шаг произойдет.

Для ответов SISO, t и y векторы с той же длиной NS. Для систем с NU входные параметры и NY выходные параметры, можно задать y как NS- NY- NU массив и yinit как NY- NU массив. stepinfo затем возвращает NY- NU массивы структур из характеристик ответа, соответствующих каждой паре ввода-вывода.

пример

S = stepinfo(___,'SettlingTimeThreshold',ST) позволяет вам задать порог ST используемый в определении урегулирования и переходные времена. Значением по умолчанию является ST = 0.02 (2%). Можно использовать этот синтаксис с любой из предыдущих комбинаций входных аргументов.

пример

S = stepinfo(___,'RiseTimeLimits',RT) позволяет вам задать более низкие и верхние пороги, используемые в определении времени нарастания. По умолчанию время нарастания является временем, которое ответ занимает, чтобы повыситься с 10% до 90% пути от начального значения до установившегося значения (RT = [0.1 0.9]). Верхний порог RT(2) также используется, чтобы вычислить SettlingMin и SettlingMax. Эти значения являются минимальными и максимальными значениями ответа, происходящего после того, как ответ достигнет верхнего порога. Можно использовать этот синтаксис с любой из предыдущих комбинаций входных аргументов.

Примеры

свернуть все

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

sys=s2+5s+5s4+1.65s3+5s2+6.5s+2

Создайте передаточную функцию и исследуйте ее переходной процесс.

sys = tf([1 5 5],[1 1.65 5 6.5 2]);
step(sys)

Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

График показывает, что повышения ответа за несколько секунд, и затем звонят вниз к установившемуся значению приблизительно 2,5. Вычислите характеристики этого ответа с помощью stepinfo.

S = stepinfo(sys)
S = struct with fields:
         RiseTime: 3.8456
    TransientTime: 27.9762
     SettlingTime: 27.9762
      SettlingMin: 2.0689
      SettlingMax: 2.6873
        Overshoot: 7.4915
       Undershoot: 0
             Peak: 2.6873
         PeakTime: 8.0530

Здесь, функциональное использование yinit= 0, чтобы вычислить характеристики для модели sys динамической системы.

По умолчанию время урегулирования является временем, которое требуется для ошибки остаться ниже 2% |yinit-yfinal|. Результат S.SettlingTime показывает это для sys, это условие происходит приблизительно после 28 секунд. Определением по умолчанию времени нарастания является время, которое требуется для ответа, чтобы пойти от 10% до 90% пути от yinit= 0 к yfinal. S.RiseTime показывает это для sys, это повышение происходит меньше чем за 4 секунды. Максимальное перерегулирование возвращено в S.Overshoot. Для этой системы, пиковое значение S.Peak, который происходит в то время S.PeakTime, перерегулирования приблизительно 7,5% установившегося значения.

Для системы MIMO, stepinfo возвращает массив структур, в котором каждая запись содержит характеристики ответа соответствующего канала ввода-вывода системы. В данном примере используйте 2D выход, 2D входную систему дискретного времени. Вычислите характеристики переходного процесса.

A = [0.68 -0.34; 0.34 0.68];
B = [0.18 -0.05; 0.04 0.11];
C = [0 -1.53; -1.12 -1.10];
D = [0 0; 0.06 -0.37];
sys = ss(A,B,C,D,0.2);

S = stepinfo(sys)
S=2×2 struct array with fields:
    RiseTime
    TransientTime
    SettlingTime
    SettlingMin
    SettlingMax
    Overshoot
    Undershoot
    Peak
    PeakTime

Доступ к характеристикам ответа для конкретного I/0 образовывает канал путем индексации в S. Например, исследуйте характеристики ответа на ответ от первого входа до второго выхода sys, соответствие S(2,1).

S(2,1)
ans = struct with fields:
         RiseTime: 0.4000
    TransientTime: 2.8000
     SettlingTime: 3
      SettlingMin: -0.6724
      SettlingMax: -0.5188
        Overshoot: 24.6476
       Undershoot: 11.1224
             Peak: 0.6724
         PeakTime: 1

Чтобы получить доступ к особому значению, используйте запись через точку. Например, извлеките время нарастания эти (2,1) канал.

rt21 = S(2,1).RiseTime
rt21 = 0.4000

Можно использовать SettlingTimeThreshold и RiseTimeThreshold изменить процент по умолчанию для урегулирования и времен нарастания, соответственно, как описано в разделе Algorithms. В данном примере используйте систему, данную:

sys=s2+5s+5s4+1.65s3+6.5s+2

Создайте передаточную функцию.

sys = tf([1 5 5],[1 1.65 5 6.5 2]);

Вычислите время, которое требуется для ошибки в ответе sys остаться ниже 0,5% разрыва |yfinal-yinit|. Для этого установите SettlingTimeThreshold к 0,5%, или 0.005.

S1 = stepinfo(sys,'SettlingTimeThreshold',0.005);
st1 = S1.SettlingTime
st1 = 46.1325

Вычислите время, оно берет ответ sys повыситься с 5% до 95% пути от yinit к yfinal. Для этого установите RiseTimeThreshold к вектору, содержащему те границы.

S2 = stepinfo(sys,'RiseTimeThreshold',[0.05 0.95]);
rt2 = S2.RiseTime
rt2 = 4.1690

Можно задать проценты и для времени урегулирования и для времени нарастания в том же расчете.

S3 = stepinfo(sys,'SettlingTimeThreshold',0.005,'RiseTimeThreshold',[0.05 0.95])
S3 = struct with fields:
         RiseTime: 4.1690
    TransientTime: 46.1325
     SettlingTime: 46.1325
      SettlingMin: 2.0689
      SettlingMax: 2.6873
        Overshoot: 7.4915
       Undershoot: 0
             Peak: 2.6873
         PeakTime: 8.0530

Можно извлечь характеристики переходного процесса из данных переходного процесса, даже если у вас нет модели вашей системы. Например, предположите, что вы измерили ответ своей системы к входу шага и сохранили получившиеся данные об ответе в векторном y из значений отклика во времена, сохраненные в другом векторном t. Загрузите данные об ответе и исследуйте их.

load StepInfoData t y
plot(t,y)

Figure contains an axes object. The axes object contains an object of type line.

Вычислите характеристики переходного процесса из этих данных об ответе с помощью stepinfo. Если вы не задаете установившееся значение отклика yfinal, затем stepinfo принимает что последнее значение в векторе отклика y установившийся response.Поскольку данные имеют некоторый шум, последнее значение в y вероятно не истинное установившееся значение отклика. Когда вы знаете, каково установившееся значение должно быть, можно предоставить его stepinfo. В данном примере предположите, что установившийся ответ 2.4.

S1 = stepinfo(y,t,2.4)
S1 = struct with fields:
         RiseTime: 1.2897
    TransientTime: 19.6478
     SettlingTime: 19.6439
      SettlingMin: 2.0219
      SettlingMax: 3.3302
        Overshoot: 38.7575
       Undershoot: 0
             Peak: 3.3302
         PeakTime: 3.4000

Из-за шума в данных определение по умолчанию времени урегулирования является слишком строгим, приводя к произвольному значению почти 20 секунд. Чтобы допускать шум, увеличьте порог времени урегулирования со значения по умолчанию 2% к 5%.

S2 = stepinfo(y,t,2.4,'SettlingTimeThreshold',0.05)
S2 = struct with fields:
         RiseTime: 1.2897
    TransientTime: 10.4201
     SettlingTime: 10.4149
      SettlingMin: 2.0219
      SettlingMax: 3.3302
        Overshoot: 38.7575
       Undershoot: 0
             Peak: 3.3302
         PeakTime: 3.4000

Время урегулирования и переходное время равно когда пиковая ошибка emax равно разрыву |yfinal-yinit| (см. Алгоритмы (Control System Toolbox)), который имеет место для моделей без отклонения от номинала или сквозного соединения и меньше чем с 100%-м перерегулированием. Они имеют тенденцию не соглашаться для моделей со сквозным соединением, нулями в начале координат, нестабильные нули (отклонение от номинала) или большое перерегулирование.

Рассмотрите следующие модели.

s = tf('s');
sys1 = 1+tf(1,[1 1]);                        % feedthrough
sys2 = tf([1 0],[1 1]);                      % zero at the origin
sys3 = tf([-3 1],[1 2 1]);                   % non-minimum phase with undershoot
sys4 = (s/0.5 + 1)/(s^2 + 0.2*s + 1);        % large overshoot

step(sys1,sys2,sys3,sys4)
grid on
legend('Feedthrough','Zero at origin','Non-minimum phase with undershoot','Large overshoot')

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent Feedthrough, Zero at origin, Non-minimum phase with undershoot, Large overshoot.

Вычислите характеристики переходного процесса.

S1 = stepinfo(sys1)
S1 = struct with fields:
         RiseTime: 1.6095
    TransientTime: 3.9121
     SettlingTime: 3.2190
      SettlingMin: 1.8005
      SettlingMax: 2.0000
        Overshoot: 0
       Undershoot: 0
             Peak: 2.0000
         PeakTime: 10.5458

S2 = stepinfo(sys2)
S2 = struct with fields:
         RiseTime: 0
    TransientTime: 3.9121
     SettlingTime: NaN
      SettlingMin: 2.6303e-05
      SettlingMax: 1
        Overshoot: Inf
       Undershoot: 0
             Peak: 1
         PeakTime: 0

S3 = stepinfo(sys3)
S3 = struct with fields:
         RiseTime: 2.9198
    TransientTime: 6.5839
     SettlingTime: 7.3229
      SettlingMin: 0.9004
      SettlingMax: 0.9991
        Overshoot: 0
       Undershoot: 88.9466
             Peak: 0.9991
         PeakTime: 10.7900

S4 = stepinfo(sys4)
S4 = struct with fields:
         RiseTime: 0.3896
    TransientTime: 40.3317
     SettlingTime: 46.5052
      SettlingMin: -0.2796
      SettlingMax: 2.7571
        Overshoot: 175.7137
       Undershoot: 27.9629
             Peak: 2.7571
         PeakTime: 1.8850

Исследуйте графики и характеристики. Для этих моделей отличается время урегулирования и переходное время, потому что пиковая ошибка превышает разрыв между начальной буквой и окончательным значением. Для моделей, таких как sys2, время урегулирования возвращено как NaN потому что установившееся значение является нулем.

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

Загрузите данные переходного процесса и исследуйте график.

load stepDataOffset.mat
plot(stepOffset.Time,stepOffset.Data)

Figure contains an axes object. The axes object contains an object of type line.

Если вы не задаете yfinal и yinit, затем stepinfo принимает тот yfinal последнее значение в векторе отклика y и yinit zero. Когда вы знаете, каковы установившиеся и начальные значения, можно предоставить их stepinfo. Здесь, устойчивое состояние ответа yfinal 0.9, и начальная буква возместила yinit 0.2.

Вычислите характеристики переходного процесса из этих данных об ответе.

S = stepinfo(stepOffset.Data,stepOffset.Time,0.9,0.2)
S = struct with fields:
         RiseTime: 0.0084
    TransientTime: 1.0662
     SettlingTime: 1.0662
      SettlingMin: 0.8461
      SettlingMax: 1.0878
        Overshoot: 26.8259
       Undershoot: 0.0429
             Peak: 0.8878
         PeakTime: 1.0225

Здесь, пиковое значение этого ответа 0.8878 потому что stepinfo измеряет максимальное отклонение от yinit.

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

свернуть все

Динамическая система в виде SISO или модели динамической системы MIMO. Динамические системы, которые можно использовать, включают:

  • Непрерывное время или дискретное время числовые модели LTI, такой как tf (Control System Toolbox), zpk (Control System Toolbox), или ss Модели (Control System Toolbox).

  • Обобщенные или неопределенные модели LTI такой как genss (Control System Toolbox) или uss Модели (Robust Control Toolbox). (Используя неопределенные модели требует программного обеспечения Robust Control Toolbox™.) Для обобщенных моделей, stepinfo вычисляет характеристики переходного процесса с помощью текущего значения настраиваемых блоков и номинальной стоимости неопределенных блоков.

  • Идентифицированные модели LTI, такой как idtf, idss, или idproc модели.

Данные переходного процесса в виде одного из следующего:

  • Для данных об ответе SISO, вектора из длины Ns, где Ns количество отсчетов в данных об ответе

  • Для данных об ответе MIMO, Ns- Ny- Nu массив, где Ny количество системы выходные параметры и Nu количество системных входных параметров

Временной вектор, соответствующий данным об ответе в yВ виде вектора из длины Ns.

Установившееся значение в виде скаляра или массива.

  • Для данных об ответе SISO задайте скалярное значение.

  • Для данных об ответе MIMO задайте Ny- Nu массив, где каждая запись обеспечивает установившееся значение отклика для соответствующего системного канала.

Если вы не обеспечиваете yfinalто stepinfo использует последнее значение в соответствующем канале y как установившееся значение отклика.

Этот аргумент только поддерживается, когда вы обеспечиваете данные переходного процесса как вход. Для модели sys динамической системы как вход, stepinfo yfinal использования = установившееся значение, чтобы вычислить характеристики, которые зависят от этого значения.

Значение y прежде чем шаг происходит в виде скаляра или массива.

  • Для данных об ответе SISO задайте скалярное значение.

  • Для данных об ответе MIMO задайте Ny- Nu массив, где каждая запись вводит начальное значение ответа для соответствующего системного канала.

Если вы не обеспечиваете yinitто stepinfo использование обнуляет как начальное значение ответа.

Ответ y (0) в t = 0 равен yinit для систем без сквозного соединения. Однако эти два количества отличаются в присутствии сквозного соединения из-за разрыва в t = 0.

Например, следующий рисунок показывает переходной процесс системы с проходным sys = tf([-1 0.2 1],[1 0.7 1]).

Step response of a system with feedthrough equal to negative1

Здесь, yinit является нулем, и проходное значение –1.

Этот аргумент только поддерживается, когда вы обеспечиваете данные переходного процесса как вход. Для модели sys динамической системы как вход, stepinfo yinit использования = 0, чтобы вычислить характеристики, которые зависят от этого значения.

Порог для определения урегулирования и переходные времена в виде скалярного значения между 0 и 1. Чтобы изменить урегулирование значения по умолчанию и переходные определения времени (см. Алгоритмы), установите ST к различному значению. Например, чтобы измериться, когда ошибка падения ниже 5%, устанавливает ST к 0,05.

Порог для определения времени нарастания в виде вектора-строки с 2 элементами из неубывающих значений между 0 и 1. Чтобы изменить определение времени нарастания по умолчанию (см. Алгоритмы), установите RT к различному значению. Например, чтобы задать время нарастания как время это берет для ответа, чтобы повыситься с 5% до 95% от начального значения до установившегося значения, установить RT к [0.05 0.95].

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

свернуть все

Характеристики переходного процесса, возвращенные как структура, содержащая поля:

  • RiseTime

  • TransientTime

  • SettlingTime

  • SettlingMin

  • SettlingMax

  • Overshoot

  • Undershoot

  • Peak

  • PeakTime

Для получения дополнительной информации о как stepinfo задает эти характеристики, см. Алгоритмы.

Для моделей MIMO или данных об ответах, S массив структур, в котором каждая запись содержит характеристики переходного процесса соответствующего канала ввода-вывода. Например, если вы предоставляете модель с 3 выходами, с 3 входами или массив данных об ответе, затем S(2,3) содержит характеристики ответа от третьего входа до второго выхода. Для примера смотрите Характеристики Переходного процесса Системы MIMO.

Если sys нестабильно, затем всеми характеристиками переходного процесса является NaN, за исключением Peak и PeakTime, которые являются Inf.

Алгоритмы

Для переходного процесса y (t), stepinfo вычисляет характеристики относительно yinit и yfinal. Для модели sys динамической системы, stepinfo использование yinit = 0 и yfinal = установившееся значение.

Эта таблица показывает как stepinfo вычисляет каждую характеристику.

Характеристика переходного процессаОписание
RiseTimeВремя это берет для ответа, чтобы повыситься с 10% до 90% пути от yinit до yfinal
TransientTime

В первый раз T, таким образом, что ошибка |y (t) – yfinal | ≤ SettlingTimeThreshold × emax для tT, где emax, является максимальной погрешностью |y (t) – yfinal | для t ≥ 0.

По умолчанию, SettlingTimeThreshold = 0.02 (2% пиковой ошибки). Переходное время измеряется, как быстро переходные движущие силы вымирают.

SettlingTime

В первый раз T, таким образом, что ошибка |y (t) – yfinal | ≤ SettlingTimeThreshold × |yfinalyinit | для tT.

По умолчанию, SettlingTime измеряет время, которое требуется для ошибки остаться ниже 2% |yfinalyinit |.

SettlingMinМинимальное значение y (t) однажды ответ повысилось
SettlingMaxМаксимальное значение y (t) однажды ответ повысилось
OvershootПеререгулирование процента. Относительно нормированного ответа ynorm (t) = (y (t) – yinit) / (yfinalyinit), перерегулирование является большим из нуля и 100 × макс. (ynorm (t) – 1).
UndershootОтклонение от номинала процента. Относительно нормированного ответа ynorm (t) отклонение от номинала является меньшим из нуля и –100 × макс. (ynorm (t) – 1).
PeakПиковое значение |y (t) – yinit |
PeakTimeВремя, в которое происходит пиковое значение

Вопросы совместимости

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

Поведение изменяется в R2021b

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

|

Введен в R2006a
Для просмотра документации необходимо авторизоваться на сайте