График импульсной характеристики динамической системы; данные импульсной характеристики
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
становится шаг расчета дискретного приближения к непрерывной системе (см. Алгоритмы). The 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
Первый входной канал. Точно так же размерности 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.
Можно изменить свойства графика, например модули. Для получения информации о способах изменения свойств графиков смотрите Способы настроить графики.
Модели в непрерывном времени сначала преобразуются в пространство состояний. Импульсная характеристика модели пространства состояний с одним входом
эквивалентно следующему невынужденному ответу с начальным b состояния.
Чтобы симулировать этот ответ, система дискретизируется с помощью удержания нулевого порядка на входах. Этот шаг расчета выбирается автоматически на основе динамики системы, кроме случаев, когда временной вектор t = 0:dt:Tf
поставляется (dt
затем используется в качестве шага расчета).