step

Переходный процесс динамической системы; данные о переходном процессе

Описание

Переходные процессы

пример

step(sys) строит ответ модели динамической системы к входу шага модульной амплитуды. Модель sys может быть непрерывным - или дискретное время, и SISO или MIMO. Для систем MIMO график отображает переходные процессы для каждого канала ввода-вывода. step автоматически определяет временные шаги и длительность симуляции на основе системной динамики.

пример

step(sys,tFinal) симулирует переходной процесс от t = 0 к итоговому времени t = tFinal. Функция использует системную динамику, чтобы определить прошедшие временные шаги.

пример

step(sys,t) строит переходной процесс во времена, которые вы задаете в векторном t.

пример

step(sys1,sys2,...,sysN,___) строит переходной процесс нескольких динамических систем на том же графике. Все системы должны иметь то же количество вводов и выводов. Можно использовать несколько динамических систем с любой из предыдущих комбинаций входных аргументов.

пример

step(sys1,LineSpec1,...,sysN,LineSpecN,___) задает цвет, стиль линии и маркер для каждой системы в графике. Можно использовать LineSpec с любой из предыдущих комбинаций входных аргументов. Когда вам будут нужны дополнительные опции настройки графика, использовать stepplot вместо этого.

пример

step(___,opts) задает дополнительные опции для вычисления переходного процесса, такие как амплитуда шага или входное смещение. Использование stepDataOptions чтобы создать опцию устанавливает opts. Можно использовать opts с любым предыдущим входным параметром и комбинациями выходного аргумента.

Данные о переходном процессе

пример

y = step(sys,t) возвращает переходной процесс модели sys динамической системы во времена, заданные в векторном t. Этот синтаксис не строит график.

[y,tOut] = step(sys) также возвращает вектор времен tOut соответствие ответам в y. Если вы не предоставляете входному вектору t из времен, step выбирает длину и временной шаг tOut на основе системной динамики.

[y,tOut] = step(sys,tFinal) вычисляет переходной процесс до времени окончания tFinal. step выбирает временной шаг tOut на основе системной динамики.

[y,t,x] = step(sys) также возвращает траектории состояния x, когда sys модель в пространстве состояний, такая как ss или idss модель.

пример

[y,t,x,ysd] = step(sys) также вычисляет стандартное отклонение ysd из переходного процесса y, когда sys идентифицированная модель, такая как idss, idtf, или idnlarx модель.

пример

[___] = step(___,opts) задает дополнительные опции для вычисления переходного процесса, такие как амплитуда шага или входное смещение. Использование stepDataOptions чтобы создать опцию устанавливает opts. Можно использовать opts с любым предыдущим входным параметром и комбинациями выходного аргумента.

Примеры

свернуть все

Постройте переходной процесс системы непрерывного времени, представленной следующей передаточной функцией.

sys(s)=4s2+2s+10.

В данном примере создайте tf модель, которая представляет передаточную функцию. Можно так же построить переходной процесс других типов модели динамической системы, таких как нулевое полюсное усиление (zpk) или пространство состояний (ss) модели.

sys = tf(4,[1 2 10]);

Постройте переходной процесс.

step(sys)

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

Постройте переходной процесс системы дискретного времени. Система имеет шаг расчета 0,2 с и представлена следующими матрицами пространства состояний.

A = [1.6 -0.7;
      1  0];
B = [0.5; 0];
C = [0.1 0.1];
D = 0;

Создайте модель в пространстве состояний и постройте ее переходной процесс.

sys = ss(A,B,C,D,0.2);
step(sys)

Переходной процесс отражает дискретизацию модели, показывая ответ, вычисляемый каждые 0.2 секунды.

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

sys = zpk(-1,[-0.2+3j,-0.2-3j],1) * tf([1 1],[1 0.05]) 
sys =
 
            (s+1)^2
  ----------------------------
  (s+0.05) (s^2 + 0.4s + 9.04)
 
Continuous-time zero/pole/gain model.
step(sys)

По умолчанию, step выбирает время окончания, которое показывает устойчивое состояние, что ответ отклоняется к. Эта система имеет быстрые переходные процессы, однако, которые затенены на этом масштабе времени. Чтобы получить более внимательное рассмотрение в переходном процессе, ограничьте график шага t = 15 с.

step(sys,15)

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

t = 20:0.2:120;
step(sys,t)

Даже при том, что этот график начинается в t = 20, step всегда применяет вход шага в t = 0.

Рассмотрите следующую модель в пространстве состояний второго порядка:

[x˙1x˙2]=[-0.5572-0.78140.78140][x1x2]+[1-102][u1u2]y=[1.96916.4493][x1x2]

A = [-0.5572,-0.7814;0.7814,0];
B = [1,-1;0,2];
C = [1.9691,6.4493];
sys = ss(A,B,C,0);

Эта модель имеет два входных параметров и один выход, таким образом, это имеет два канала: от первого входа до выхода, и от второго входа до выхода. Каждый канал имеет свой собственный переходной процесс.

Когда вы используете step, это вычисляет ответы всех каналов.

step(sys)

Левый график показывает переходной процесс первого входного канала, и правильный график показывает переходной процесс второго входного канала. Каждый раз, когда вы используете step чтобы построить ответы модели MIMO, это генерирует массив графиков, представляющих все каналы ввода-вывода модели. Например, создайте случайную модель в пространстве состояний с пятью состояниями, тремя входными параметрами и двумя выходными параметрами, и постройте ее переходной процесс.

sys = rss(5,2,3);
step(sys)

В графическом окне MATLAB можно ограничить график подмножеством каналов путем щелчка правой кнопкой по графику и выбора I/O Selector.

step позволяет вам строить ответы нескольких динамических систем на той же оси. Например, сравните ответ с обратной связью системы с ПИ-контроллером и ПИД-регулятором. Создайте передаточную функцию системы и настройте контроллеры.

H = tf(4,[1 2 10]);
C1 = pidtune(H,'PI');
C2 = pidtune(H,'PID');

Сформируйте системы с обратной связью и постройте их переходные процессы.

sys1 = feedback(H*C1,1);
sys2 = feedback(H*C2,1);
step(sys1,sys2)
legend('PI','PID','Location','SouthEast')

По умолчанию, step выбирает разные цвета для каждой системы, которую вы строите. Можно задать цвета и стили линии с помощью LineSpec входной параметр.

 step(sys1,'r--',sys2,'b')
 legend('PI','PID','Location','SouthEast')

Первый LineSpec 'r--' задает пунктирную красную линию для ответа с ПИ-контроллером. Второй LineSpec 'b' задает чисто синюю линию для ответа с ПИД-регулятором. Легенда отражает заданные цвета и LineStyle. Для большего количества опций настройки графика используйте stepplot.

Пример Выдерживает сравнение, Ответы Нескольких Систем показывает, как построить ответы нескольких отдельных систем на одной оси. То, когда у вас есть несколько динамических систем, расположило в массиве моделей, step графики все их ответы целиком.

Создайте массив моделей. В данном примере используйте одномерный массив передаточных функций второго порядка, имеющих различные собственные частоты. Во-первых, предварительно выделите память для массива моделей. Следующая команда создает строку 1 на 5 нулевого усиления передаточные функции SISO. Первые две размерности представляют выходные параметры модели и входные параметры. Остальные измерения являются измерениями массива.

 sys = tf(zeros(1,1,1,5));

Заполните массив.

w0 = 1.5:1:5.5;    % natural frequencies
zeta = 0.5;        % damping constant
for i = 1:length(w0)
   sys(:,:,1,i) = tf(w0(i)^2,[1 2*zeta*w0(i) w0(i)^2]);
end

(Для получения дополнительной информации о массивах моделей и как создать их, смотрите Массивы моделей.) Строят переходные процессы всех моделей в массиве.

step(sys)

step использует тот же LineStyle для ответов всех записей в массиве. Один способ различать записи состоит в том, чтобы использовать SamplingGrid свойство моделей динамической системы сопоставить каждую запись в массиве с соответствующим w0 значение.

sys.SamplingGrid = struct('frequency',w0);

Теперь, когда вы строите ответы в графическом окне MATLAB, можно кликнуть по трассировке, чтобы видеть, какому значению частоты это соответствует.

Когда вы даете ему выходной аргумент, step возвращает массив данных об ответе. Для системы SISO данные об ответе возвращены как вектор-столбец длины, равной количеству моментов времени, в которых производится ответ. Можно обеспечить вектор t моментов времени или позволить step выбрать моменты времени для вас на основе системной динамики. Например, извлеките переходной процесс системы SISO в 101 моменте времени между t = 0 и t = 5 с.

sys = tf(4,[1 2 10]);
t = 0:0.05:5;
y = step(sys,t);
size(y)
ans = 1×2

   101     1

Для системы MIMO данные об ответе возвращены в массиве размерностей N ny ню, где Ny и Ню являются количеством выходных параметров и входными параметрами динамической системы. Например, рассмотрите следующую модель в пространстве состояний, представляя 2D вход, систему с одним выходом.

A = [-0.5572,-0.7814;0.7814,0];
B = [1,-1;0,2];
C = [1.9691,6.4493];
sys = ss(A,B,C,0);

Извлеките переходной процесс этой системы в 200 моментах времени между t = 0 и t = 20 с.

t = linspace(0,20,200);
y = step(sys,t);
size(y)
ans = 1×3

   200     1     2

y(:,i,j) вектор-столбец, содержащий переходной процесс от входа jth до ith выход во времена t. Например, извлеките переходной процесс от второго входа до выхода.

y12 = y(:,1,2);
plot(t,y12)

Создайте обратную связь с задержкой и постройте ее переходной процесс.

s = tf('s');
G = exp(-s) * (0.8*s^2+s+2)/(s^2+s);
sys = feedback(ss(G),1);
step(sys)

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

По умолчанию, step применяет входной сигнал, который изменяется с 0 до 1 в t = 0. Чтобы настроить амплитуду и возместить, используйте stepDataOptions. Например, вычислите ответ модели в пространстве состояний SISO к сигналу, который изменяется с 1 до –1 к в t = 0.

A = [1.6 -0.7;
      1  0];
B = [0.5; 0];
C = [0.1 0.1];
D = 0;
sys = ss(A,B,C,D,0.2);

opt = stepDataOptions;
opt.InputOffset = 1;
opt.StepAmplitude = -2;

step(sys,opt)

Для ответов на произвольные входные сигналы используйте lsim.

Сравните переходной процесс параметрической идентифицированной модели к непараметрической (эмпирической) модели. Также просмотрите их 3 σ области доверия.

Загрузите данные.

load iddata1 z1

Оцените параметрическую модель.

sys1 = ssest(z1,4);

Оцените непараметрическую модель.

sys2 = impulseest(z1);

Постройте переходные процессы для сравнения.

t = (0:0.1:10)';
[y1, ~, ~, ysd1] = step(sys1,t);
[y2, ~, ~, ysd2] = step(sys2,t);
plot(t, y1, 'b', t, y1+3*ysd1, 'b:', t, y1-3*ysd1, 'b:')
hold on
plot(t, y2, 'g', t, y2+3*ysd2, 'g:', t, y2-3*ysd2, 'g:')

Вычислите переходной процесс идентифицированной модели timeseries.

Модель timeseries, также названная моделью сигнала, один без измеренных входных сигналов. График шага этой модели использует свой (неизмеренный) шумовой канал в качестве входного канала, к которому применяется сигнал шага.

Загрузите данные.

load iddata9;

Оцените модель timeseries.

sys = ar(z9, 4);

ys модель формы A y(t) = e(t) , где e(t) представляет шумовой канал. Для расчета переходного процесса, e(t) обработан как входной канал и назван e@y1.

Постройте переходной процесс.

step(sys)

Подтвердите линеаризацию нелинейной модели ARX путем сравнения маленьких амплитудных переходных процессов линейных и нелинейных моделей.

Загрузите данные.

load iddata2 z2;

Оцените нелинейную модель ARX.

nlsys = nlarx(z2,[4 3 10],'tree','custom',{'sin(y1(t-2)*u1(t))+y1(t-2)*u1(t)+u1(t).*u1(t-13)','y1(t-5)*y1(t-5)*y1(t-1)'},'nlr',[1:5, 7 9]);

Определите рабочую точку равновесия для nlsys соответствие установившемуся входному значению 1.

u0 = 1;
[X,~,r] = findop(nlsys, 'steady', 1);
y0 = r.SignalLevels.Output;

Получите линейную аппроксимацию nlsys в этой рабочей точке.

sys = linearize(nlsys,u0,X);

Подтвердите полноценность sys путем сравнения его маленько-амплитудного переходного процесса с тем из nlsys.

Нелинейная система nlsys действует на уровне равновесия, продиктованном (u0, y0). Введите возмущение шага размера 0.1 об этом установившемся и вычислите соответствующий ответ.

opt = stepDataOptions;
opt.InputOffset = u0;
opt.StepAmplitude = 0.1;
t = (0:0.1:10)';
ynl = step(nlsys, t, opt);

Линейная система sys описывает отношение между возмущениями во входе к соответствующему возмущению в выходе. Это не знает о значениях равновесия нелинейной системы.

Постройте переходной процесс линейной системы.

opt = stepDataOptions;
opt.StepAmplitude = 0.1;
yl = step(sys, t, opt);

Добавьте установившееся смещение, y0 , к ответу линейной системы и графика ответы.

plot(t, ynl, t, yl+y0)
legend('Nonlinear', 'Linear with offset')

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

свернуть все

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

  • Непрерывное время или дискретное время числовые модели LTI, такие как tf, zpk, или ss модели.

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

    • Для настраиваемых блоков системы управления функция оценивает модель в своем текущем значении и для строящих и для возвращающихся данных об ответе.

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

  • Разреженные модели в пространстве состояний, такие как sparss и mechss модели.

  • Идентифицированные модели LTI, такие как idtf, idss, или idproc модели. Для таких моделей функция может также построить доверительные интервалы и возвратить стандартные отклонения частотной характеристики. Смотрите Переходные процессы Идентифицированных Моделей с областями Доверия. (Используя идентифицированные модели требует программного обеспечения System Identification Toolbox™.)

step не поддерживает модели данных частотной характеристики такой как frd, genfrd, или idfrd модели.

Если sys массив моделей, графики функций ответы всех моделей в массиве на тех же осях. Смотрите Переходной процесс Систем в Массиве моделей.

Время окончания для переходного процесса в виде значения положительной скалярной величины. step симулирует переходной процесс от t = 0 к t = tFinal.

  • Для систем непрерывного времени функция определяет размер шага и число точек автоматически от системной динамики. Специальный tFinal в модулях системного времени, заданных в TimeUnit свойство sys.

  • Для систем дискретного времени функция использует шаг расчета sys как размер шага. Специальный tFinal в модулях системного времени, заданных в TimeUnit свойство sys.

  • Для систем дискретного времени с незаданным шагом расчета (Ts = -1шаг интерпретирует tFinal как количество выборки периодов, чтобы симулировать.

Временной вектор, в котором можно вычислить переходной процесс в виде вектора из значений положительной скалярной величины. Специальный t в модулях системного времени, заданных в TimeUnit свойство sys.

  • Для моделей непрерывного времени задайте t в форме Ti:dt:Tf. Чтобы получить ответ на каждом временном шаге, функция использует dt как шаг расчета дискретного приближения к непрерывной системе (см. Алгоритмы).

  • Для моделей дискретного времени задайте t в форме Ti:Ts:Tf, где Ts шаг расчета sys.

step всегда применяет вход шага в t = 0, независимо от Ti.

Стиль линии, маркер и цвет в виде строки или вектора из один, два, или три символа. Символы могут появиться в любом порядке. Вы не должны задавать все три характеристики (стиль линии, маркер и цвет). Например, если вы не используете стиль линии и задаете маркер, затем график показывает только маркер и никакую линию. Для получения дополнительной информации о конфигурировании этого аргумента, смотрите LineSpec входной параметр plot функция.

Пример: 'r--' задает красную пунктирную линию

Пример: '*b' задает синие маркеры звездочки

Пример: 'y' задает желтую линию

Введите смещение и амплитуду прикладного сигнала шага в виде a stepDataOptions опция установлена. По умолчанию, step применяет вход, который идет от 0 до 1 во время t = 0. Используйте этот входной параметр, чтобы изменить начальные и окончательные значения входа шага. Смотрите Ответ на Пользовательский Вход Шага для примера.

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

свернуть все

Данные о переходном процессе, возвращенные как массив.

  • Для систем SISO, y вектор-столбец той же длины как t (если обеспечено) или tOut (если вы не обеспечиваете t).

  • Для одно входа, мультивыходных систем, y матрица со столькими же строк, сколько существуют выборки времени и столько же столбцов, сколько существуют выходные параметры. Таким образом, j th столбец y, или y(:,j), содержит переходной процесс от входа до j th выход.

  • Для систем MIMO переходные процессы каждого входного канала сложены по третьему измерению y. Размерности y затем N-by-Ny-by-Nu, где:

    • N является количеством выборок времени.

    • Ny является количеством системы выходные параметры.

    • Nu является количеством системных входных параметров.

    Таким образом, y(:,i,j) вектор-столбец, содержащий переходной процесс от входа jth до ith выход во времена, заданные в t или tOut.

Времена, в которые вычисляется переходной процесс, возвратились как вектор. Когда вы не обеспечиваете определенный векторный t из времен, step выбирает этот временной вектор на основе системной динамики. Времена описываются в единицах измерения времени sys.

Траектории состояния, возвращенные как массив. Когда sys модель в пространстве состояний, x содержит эволюцию состояний sys каждый раз в t или tOut. Размерности x N-by-Nx-by-Nu, где:

  • N является количеством выборок времени.

  • Nx является количеством состояний.

  • Nu является количеством системных входных параметров.

Таким образом эволюция состояний в ответ на шаг, введенный в k th вход, дана массивом x(:,:,k). Вектор-строка x(i,:,k) содержит значения состояния в i th временной шаг.

Стандартное отклонение переходного процесса идентифицированной модели, возвращенной как массив тех же размерностей как y. Если sys не содержит информацию о ковариации параметра, затем ysd isempty.

Советы

  • Когда вам будут нужны дополнительные опции настройки графика, использовать stepplot вместо этого.

  • Чтобы симулировать отклики системы к произвольным входным сигналам, использовать lsim.

Алгоритмы

Получить выборки моделей непрерывного времени без внутренних задержек, step преобразует такие модели в модели в пространстве состояний и дискретизирует их использующий нулевой порядок, держатся входные параметры. step выбирает время выборки для этой дискретизации автоматически на основе системной динамики, кроме тех случаев, когда вы предоставляете входной временной вектор t в форме t = 0:dt:Tf. В этом случае, step использование dt как время выборки. Получившееся время симуляции продвигается tOut equisampled с разрядкой dt.

Для систем с внутренними задержками программное обеспечение Control System Toolbox™ использует переменные решатели шага. В результате временные шаги tOut не equisampled.

Ссылки

[1] Л.Ф. Шемпин и П. Гэхинет, "Уравнения Делэ-дифферентиэл-алджебрэйка в теории управления", Прикладная Числовая Математика, Издание 56, Выпуски 3-4, стр 574–588.

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

Функции

Приложения

Представлено до R2006a