импульс

Импульсный график ответа динамической системы; импульсные данные об ответе

Синтаксис

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 не содержит информацию о ковариации параметра.

Примеры

Импульсный график ответа модели в пространстве состояний второго порядка

Постройте импульсный ответ модели в пространстве состояний второго порядка

[x˙1x˙2]=[0.55720.78140.78140][x1x2]+[1102][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);
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).

Алгоритмы

Непрерывно-разовые модели сначала преобразованы в пространство состояний. Импульсный ответ модели в пространстве состояний одно входа

x˙=Ax+buy=Cx

эквивалентно следующему добровольному ответу с начальным состоянием b.

x˙=Ax,x(0)=by=Cx

Чтобы моделировать этот ответ, система дискретизируется с помощью нулевого порядка, держатся входные параметры. Шаг расчета выбран автоматически на основе системной динамики, кроме тех случаев, когда временной вектор, t = 0:dt:Tf предоставляется (dt затем используется в качестве шага расчета).

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

| | |

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