Импульсный график ответа динамической системы; импульсные данные об ответе
impulse(sys)
impulse(sys,Tfinal)
impulse(sys,t)
impulse(sys1,sys2,...,sysN)
impulse(sys1,sys2,...,sysN,Tfinal)
impulse(sys1,sys2,...,sysN,t)
[y,t] = impulse(sys)
[y,t] = impulse(sys,Tfinal)
y = impulse(sys,t)
[y,t,x] = impulse(sys)
[y,t,x,ysd] = impulse(sys)
impulse
вычисляет модульный импульсный ответ модели динамической системы. Для непрерывно-разовых динамических систем импульсный ответ является ответом на вход δ Дирака (t). Для систем дискретного времени импульсный ответ является ответом на импульс единичной площади длины Ts
и высота 1/Ts
, где Ts
является шагом расчета системы. (Этот импульс приближается к δ (t) как нуль подходов Ts
.) Для моделей в пространстве состояний impulse
принимает, что значения начального состояния являются нулем.
impulse(sys)
строит импульсный ответ модели sys
динамической системы. Эта модель может быть непрерывной или дискретной, и SISO или MIMO. Импульсный ответ мультивходных систем является набором импульсных ответов для каждого входного канала. Длительность симуляции полна решимости автоматически отобразить переходное поведение ответа.
impulse(sys,Tfinal)
моделирует импульсный ответ от t = 0
до итогового времени t = Tfinal
. Выразите Tfinal
в модулях системного времени, заданных в свойстве TimeUnit
sys
. Для систем дискретного времени с незаданным шагом расчета (Ts = -1
) impulse
интерпретирует Tfinal
как количество выборки периодов, чтобы моделировать.
impulse(sys,t)
использует предоставленный пользователями временной вектор t
для симуляции. Выразите t
в модулях системного времени, заданных в свойстве TimeUnit
sys
. Для моделей дискретного времени t
должен иметь форму Ti:Ts:Tf
, где Ts
является шагом расчета. Для непрерывно-разовых моделей t
должен иметь форму Ti:dt:Tf
, где dt
становится шагом расчета дискретного приближения к непрерывной системе (см. Алгоритмы). Команда impulse
всегда применяет импульс в t=0
, независимо от Ti
.
Чтобы построить импульсные ответы нескольких моделей sys1
..., sysN
на одной фигуре, используйте:
impulse(sys1,sys2,...,sysN)
impulse(sys1,sys2,...,sysN,Tfinal)
impulse(sys1,sys2,...,sysN,t)
Как с bode
или plot
, можно задать конкретный цвет, LineStyle и/или маркер для каждой системы, например,
impulse(sys1,'y:',sys2,'g--')
См. "Графический вывод и Сравнение Нескольких Систем" и записи bode
в этом разделе для получения дополнительной информации.
Когда вызвано с выходными аргументами:
[y,t] = impulse(sys)
[y,t] = impulse(sys,Tfinal)
y = impulse(sys,t)
impulse
возвращает выходной ответ y
и временной вектор t
, используемый для симуляции (если не предоставленный в качестве аргумента, чтобы послать импульсы). Никакой график не построен на экране. Для систем одно входа y
имеет столько же строк сколько выборки времени (длина t
), и столько же столбцов сколько выходные параметры. В мультивходном случае импульсные ответы каждого входного канала сложены по третьему измерению y
. Размерности y
затем
Для моделей в пространстве состояний только:
[y,t,x] = impulse(sys)
(длина t) × (количество выходных параметров) × (количество входных параметров)
и y(:,:,j)
дает ответ на импульсное воздействие, вводящее j
th входной канал. Точно так же размерности x
(длина t) × (количество состояний) × (количество входных параметров)
[y,t,x,ysd] = impulse(sys)
возвращает стандартное отклонение YSD
ответа Y
идентифицированной системы SYS
. YSD
пуст, если SYS
не содержит информацию о ковариации параметра.
Постройте импульсный ответ модели в пространстве состояний второго порядка
a = [-0.5572 -0.7814;0.7814 0]; b = [1 -1;0 2]; c = [1.9691 6.4493]; sys = ss(a,b,c,0); impulse(sys)
Левый график показывает импульсный ответ первого входного канала, и правильный график показывает импульсный ответ второго входного канала.
Можно хранить импульсные данные об ответе в массивах MATLAB®
[y,t] = impulse(sys);
Поскольку эта система имеет два входных параметров, y
является трехмерным массивом с размерностями
size(y)
ans = 1×3
139 1 2
(первая размерность является длиной t
). Импульсным ответом первого входного канала затем получают доступ
ch1 = y(:,:,1); size(ch1)
ans = 1×2
139 1
Выберите импульсный ответ и соответствующую 1 неуверенность станд. в идентифицированной линейной системе.
load(fullfile(matlabroot, 'toolbox', 'ident', 'iddemos', 'data', 'dcmotordata')); z = iddata(y, u, 0.1, 'Name', 'DC-motor'); set(z, 'InputName', 'Voltage', 'InputUnit', 'V'); set(z, 'OutputName', {'Angular position', 'Angular velocity'}); set(z, 'OutputUnit', {'rad', 'rad/s'}); set(z, 'Tstart', 0, 'TimeUnit', 's'); model = tfest(z,2); [y,t,~,ysd] = impulse(model,2); % Plot 3 std uncertainty subplot(211) plot(t,y(:,1), t,y(:,1)+3*ysd(:,1),'k:', t,y(:,1)-3*ysd(:,1),'k:') subplot(212) plot(t,y(:,2), t,y(:,2)+3*ysd(:,2),'k:', t,y(:,2)-3*ysd(:,2),'k:')
Импульсный ответ непрерывной системы с ненулевой матрицей D бесконечен в t = 0. impulse
игнорирует этот разрыв и возвращает более низкое значение непрерывности Cb в t = 0.
Можно изменить свойства графика, например, модули. Для получения информации о способах изменить свойства ваших графиков, смотрите Способы Настроить Графики (Control System Toolbox).
Непрерывно-разовые модели сначала преобразованы в пространство состояний. Импульсный ответ модели в пространстве состояний одно входа
эквивалентно следующему добровольному ответу с начальным состоянием b.
Чтобы моделировать этот ответ, система дискретизируется с помощью нулевого порядка, держатся входные параметры. Шаг расчета выбран автоматически на основе системной динамики, кроме тех случаев, когда временной вектор, t = 0:dt:Tf
предоставляется (dt
затем используется в качестве шага расчета).