Модальные параметры из частотно-ответных функций
[___] = modalfit( оценивает модальные параметры идентифицированной модели sys,f,mnum,Name,Value)sys. Использовать команды оценки, такие как ssest(Панель инструментов идентификации системы) или tfest(Панель инструментов идентификации системы) для создания sys начиная с измеренной частотно-ответной функции или от входных и выходных сигналов временной области. Этот синтаксис позволяет использовать 'DriveIndex', 'FreqRange', и 'PhysFreq' аргументы пары имя-значение. Обычно требуется меньше данных, чем синтаксисы, использующие непараметрические методы. Для использования этого синтаксиса необходимо иметь лицензию на Toolbox™ идентификации системы.
Оцените функцию «частота-отклик» для простой системы с одним входом/одним выходом и сравните ее с определением.
Одномерная дискретно-временная колебательная система состоит из единичной массы m, прикрепленной к стенке пружиной с постоянной упругости 1. Датчик измеряет смещение массы = 1 Гц. Демпфер препятствует движению массы, прикладывая к ней силу, пропорциональную скорости, с демпфирования

Создайте 3000 временных выборок. Определите интервал выборки 1/Fs.
Fs = 1; dt = 1/Fs; N = 3000; t = dt*(0:N-1); b = 0.01;
Система может быть описана с помощью модели state-space
Cx (k) + Du (k),
где ] T - состояния, r и v - соответственно смещение и скорость , u - движущая сила и y = r - измеренный выходной сигнал. Матрицы состояния-пространства:
= [10], D = 0,
- тождество 2 × 2, а матрицы состояния-пространства непрерывного времени -
[01].
Ac = [0 1;-1 -b]; A = expm(Ac*dt); Bc = [0;1]; B = Ac\(A-eye(2))*Bc; C = [1 0]; D = 0;
Масса управляется случайным вводом в течение первых 2000 секунд, а затем остается для возврата в исходное состояние. Постройте график смещения массы как функции времени.
rng default u = randn(1,N)/2; u(2001:end) = 0; y = 0; x = [0;0]; for k = 1:N y(k) = C*x + D*u(k); x = A*x + B*u(k); end plot(t,y)

Оцените функцию модальной частоты-отклика системы. Используйте окно Ханна вдвое дольше измеряемых сигналов. Укажите, что выходные данные представляют собой смещение массы.
wind = hann(N/2); [frf,f] = modalfrf(u',y',Fs,wind,'Sensor','dis');
Частотно-ответная функция дискретно-временной системы может быть выражена как Z-преобразование передаточной функции временной области системы, оцениваемой на единичной окружности. Сравните modalfrf оценка с определением.
[b,a] = ss2tf(A,B,C,D); nfs = 2048; fz = 0:1/nfs:1/2-1/nfs; z = exp(2j*pi*fz); ztf = polyval(b,z)./polyval(a,z); plot(f,20*log10(abs(frf))) hold on plot(fz*Fs,20*log10(abs(ztf))) hold off grid ylim([-60 40])

Оцените собственную частоту и коэффициент демпфирования для режима вибрации.
[fn,dr] = modalfit(frf,f,Fs,1,'FitMethod','PP')
fn = 0.1593
dr = 0.0043
Сравните собственную частоту с , что является теоретическим значением для неразвернутой системы.
theo = 1/(2*pi)
theo = 0.1592
Вычисляют модальные параметры модуля космической станции, начиная с его матрицы частотно-ответной функции (FRF).
Загрузите структуру, содержащую массив FRF с тремя входами и тремя выходами. Дискретизация системы производится на частоте 320 Гц.
load modaldata SpaceStationFRF frf = SpaceStationFRF.FRF; f = SpaceStationFRF.f; fs = SpaceStationFRF.Fs;
Извлеките модальные параметры самых низких 24 режимов методом рациональной функции методом наименьших квадратов.
[fn,dr,ms,ofrf] = modalfit(frf,f,fs,24,'FitMethod','lsrf');
Сравните реконструированную матрицу FRF с измеренной.
for ij = 1:3 for ji = 1:3 subplot(3,3,3*(ij-1)+ji) loglog(f,abs(frf(:,ji,ij))) hold on loglog(f,abs(ofrf(:,ji,ij))) hold off axis tight title(sprintf('In%d -> Out%d',ij,ji)) if ij==3 xlabel('Frequency (Hz)') end end end

Оцените частотно-характеристическую функцию и модальные параметры простой системы с множеством входов/множеством выходов.
Идеальная одномерная колебательная система состоит из двух масс, и , замкнутых между двумя стенками. Единицы измерения таковы, что 1 = λ. Каждая масса крепится к ближайшей стенке пружиной с постоянной упругости k. Идентичная пружина соединяет две массы. Три демпфера препятствуют движению масс, воздействуя на них силами, пропорциональными скорости, с постоянной демпфирования b. Образцы датчиков r1 и r2, смещения масс, Fs = 50 Гц.

Создайте 30000 временных выборок, что эквивалентно 600 секундам. Определите интервал выборки 1/Fs.
Fs = 50; dt = 1/Fs; N = 30000; t = dt*(0:N-1);
Система может быть описана с помощью модели state-space
Cx (k) + Du (k),
где ] T - состояния,
[0000],
- тождество 4 × 4, а матрицы состояния-пространства непрерывного времени -
Установите 4000,1 = 1/10.
k = 400; b = 0.1; m = 1/10; Ac = [0 1 0 0;-2*k -2*b k b;0 0 0 1;k/m b/m -2*k/m -2*b/m]; A = expm(Ac*dt); Bc = [0 0;1 0;0 0;0 1/m]; B = Ac\(A-eye(4))*Bc; C = [1 0 0 0;0 0 1 0]; D = zeros(2);
Массы управляются случайным вводом на протяжении всего измерения. Используйте модель state-space, чтобы вычислить эволюцию времени системы, начиная с начального состояния с нулем.
rng default u = randn(2,N); y = [0;0]; x = [0;0;0;0]; for kk = 1:N y(:,kk) = C*x + D*u(:,kk); x = A*x + B*u(:,kk); end
Используйте входные и выходные данные для оценки передаточной функции системы как функции частоты. Используйте 15000-образное окно Ганна с 9000 образцами перекрытия между соседними сегментами. Укажите, что измеренные выходы являются смещениями.
wind = hann(15000); nove = 9000; [FRF,f] = modalfrf(u',y',Fs,wind,nove,'Sensor','dis');
Вычислите теоретическую передаточную функцию как Z-преобразование передаточной функции временной области, вычисленное на единичной окружности.
nfs = 2048; fz = 0:1/nfs:1/2-1/nfs; z = exp(2j*pi*fz); [b1,a1] = ss2tf(A,B,C,D,1); [b2,a2] = ss2tf(A,B,C,D,2); frf(1,:,1) = polyval(b1(1,:),z)./polyval(a1,z); frf(1,:,2) = polyval(b1(2,:),z)./polyval(a1,z); frf(2,:,1) = polyval(b2(1,:),z)./polyval(a2,z); frf(2,:,2) = polyval(b2(2,:),z)./polyval(a2,z);
Постройте график оценок и наложите теоретические прогнозы.
for jk = 1:2 for kj = 1:2 subplot(2,2,2*(jk-1)+kj) plot(f,20*log10(abs(FRF(:,jk,kj)))) hold on plot(fz*Fs,20*log10(abs(frf(jk,:,kj)))) hold off axis([0 Fs/2 -100 0]) title(sprintf('Input %d, Output %d',jk,kj)) end end

Постройте график оценок с использованием синтаксиса modalfrf без выходных аргументов.
figure modalfrf(u',y',Fs,wind,nove,'Sensor','dis')

Оцените собственные частоты, коэффициенты демпфирования и формы режимов системы. Для расчета используйте метод пикового комплектования.
[fn,dr,ms] = modalfit(FRF,f,Fs,2,'FitMethod','pp'); fn
fn =
fn(:,:,1) =
3.8466 3.8466
3.8495 3.8495
fn(:,:,2) =
3.8492 3.8490
3.8552 14.4684
Сравните собственные частоты с теоретическими прогнозами для неразвернутой системы.
undamped = sqrt(eig([2*k -k;-k/m 2*k/m]))/2/pi
undamped = 2×1
3.8470
14.4259
Вычислите собственные частоты, коэффициенты демпфирования и формы режимов для системы с двумя входами/тремя выходами, возбуждаемой несколькими пакетами случайного шума. Каждый пакет длится 1 секунду, и между концом каждого пакета и началом следующего есть 2 секунды. Данные дискретизируют при частоте 4 кГц.
Загрузите файл данных. Постройте график входных сигналов и выходных сигналов.
load modaldata subplot(2,1,1) plot(Xburst) title('Input Signals') subplot(2,1,2) plot(Yburst) title('Output Signals')

Вычислите функции частотного отклика. Укажите прямоугольное окно длиной, равной периоду пакета, без перекрытия между соседними сегментами.
burstLen = 12000; [frf,f] = modalfrf(Xburst,Yburst,fs,burstLen);
Визуализируйте схему стабилизации и возвращайте стабильные собственные частоты. Укажите максимальный порядок модели, равный 30 режимам.
figure
modalsd(frf,f,fs,'MaxModes',30);
Увеличьте изображение графика. Усредненная функция отклика имеет максимумы при 373 Гц, 852 Гц и 1371 Гц, которые соответствуют физическим частотам системы. Сохраните максимумы в переменной.
phfr = [373 852 1371];
Вычислите модальные параметры с помощью алгоритма наименьших квадратов (LSCE). Укажите порядок модели из 6 режимов и физические частоты для 3 режимов, определенных на диаграмме стабилизации. Функция генерирует один набор собственных частот и коэффициентов демпфирования для каждого входного опорного сигнала.
[fn,dr,ms,ofrf] = modalfit(frf,f,fs,6,'PhysFreq',phfr);Постройте график восстановленных частотно-ответных функций и сравните их с исходными.
for k = 1:2 for m = 1:3 subplot(2,3,m+3*(k-1)) plot(f/1000,10*log10(abs(frf(:,m,k)))) hold on plot(f/1000,10*log10(abs(ofrf(:,m,k)))) hold off text(1,-50,[['Output ';' Input '] num2str([m k]')]) ylim([-100 -40]) end end subplot(2,3,2) title('Frequency-Response Functions')

frf - Функции частотного откликаФункции частотного отклика, заданные как вектор, матрица или 3-D массив. frf имеет размер p-by-m-by-n, где p - количество частотных ячеек, m - количество ответных сигналов, и n - количество сигналов возбуждения, используемых для оценки передаточной функции.
Пример: tfestimate(randn(1,1000),sin(2*pi*(1:1000)/4)+randn(1,1000)/10) аппроксимирует частотную характеристику генератора.
Типы данных: single | double
Поддержка комплексного номера: Да
f - ЧастотыЧастоты, заданные как вектор. Количество элементов f должно равняться количеству строк frf.
Типы данных: single | double
fs - Частота выборки данных измеренийЧастота дискретизации данных измерения, заданная как положительный скаляр, выраженный в герцах.
Типы данных: single | double
mnum - Количество режимовЧисло режимов, указанное как положительное целое число.
Типы данных: single | double
sys - Идентифицированная системаИдентифицированная система, заданная как модель с идентифицированными параметрами. Использовать команды оценки, такие как ssest(Панель инструментов идентификации системы), n4sid(Панель инструментов идентификации системы), или tfest(Панель инструментов идентификации системы) для создания sys начиная с измеренной частотно-ответной функции или от входных и выходных сигналов временной области. Пример см. в разделе Модальный анализ идентифицированных моделей. Для использования этого входного аргумента необходимо иметь лицензию на набор средств идентификации системы.
Пример: idss([0.5418 0.8373;-0.8373 0.5334],[0.4852;0.8373],[1 0],0,[0;0],[0;0],1) формирует идентифицированную модель состояния-пространства, соответствующую единичной массе, прикрепленной к стенке пружиной единичной упругой константы и демпфером с константой 0,01. Смещение массы отбирается при частоте 1 Гц.
Пример: idtf([0 0.4582 0.4566],[1 -1.0752 0.99],1) формирует идентифицированную модель передаточной функции, соответствующую единичной массе, прикрепленной к стенке пружиной единичной упругой константы и демпфером с константой 0,01. Смещение массы отбирается при частоте 1 Гц.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'FitMethod','pp','FreqRange',[0 500] использует метод подбора пиков для выполнения посадки и ограничивает диапазон частот от 0 до 500 Гц.'Feedthrough' - Наличие сквозной передачи в расчетной передаточной функцииfalse (по умолчанию) | trueНаличие прохода в расчетной передаточной функции, определяемой как разделенная запятыми пара, состоящая из 'Feedthrough' и логическое значение. Этот аргумент доступен только в том случае, если 'FitMethod' указывается как 'lsrf'.
Типы данных: logical
'FitMethod' - Алгоритм подгонки'lsce' (по умолчанию) | 'lsrf' | 'pp'Алгоритм подгонки, заданный как разделенная запятыми пара, состоящая из 'FitMethod' и 'lsce', 'lsrf', или 'pp'.
'lsce' - комплексный экспоненциальный метод наименьших квадратов. При указании 'lsce', то fn является вектором с mnum элементы, независимо от размера frf.
'lsrf' - метод оценки рациональной функции методом наименьших квадратов. При указании 'lsrf', то fn является вектором с mnum элементы, независимо от размера frf. Способ описан в [3]. Дополнительные сведения см. в разделе Оценка функции передачи непрерывного времени с использованием данных частотной области непрерывного времени (панель инструментов идентификации системы). Этот алгоритм обычно требует меньше данных, чем непараметрические подходы, и является единственным, который работает для неоднородных f.
'pp' - Метод пикового комплектования. Для frf вычисляется из n сигналов возбуждения и m сигналов отклика, fn является mnum-by-m-by-n массив с одной оценкой fn и одна оценка dr за frf.
'FreqRange' - Частотный диапазонДиапазон частот, определяемый как разделенная запятыми пара, состоящая из 'FreqRange' и двухэлементный вектор увеличения положительных значений, содержащихся в диапазоне, указанном в f.
Типы данных: single | double
'PhysFreq' - Собственные частоты для физических режимовСобственные частоты для физических режимов, включаемых в анализ, определяемые как разделенная запятыми пара, состоящая из 'PhysFreq' и вектор значений частоты в диапазоне, охватываемом f. Функция включает в анализ те режимы с собственными частотами, которые наиболее близки к значениям, указанным в векторе. Если вектор содержит m значений частоты, то fn и dr имеют m строк каждый, и ms имеет m столбцов. Если этот аргумент не указан, функция использует весь диапазон частот в f.
Типы данных: single | double
'DriveIndex' - Индексы функции «частота-отклик точки возбуждения»[1 1] (по умолчанию) | двухэлементный вектор положительных целых чиселИндексы функции тактовой частоты-отклика, определяемой как разделенная запятыми пара, состоящая из: 'DriveIndex' и двухэлементный вектор положительных целых чисел. Первый элемент вектора должен быть меньше или равен количеству системных ответов. Второй элемент вектора должен быть меньше или равен числу возбуждений системы. Формы моды нормализуются к моде единицы на основе ведущей точки.
Пример: 'DriveIndex',[2 3] указывает, что функция частотного отклика управляющей точки frf(:,2,3).
Типы данных: single | double
fn - Собственные частотыСобственные частоты, возвращаемые в виде матрицы или массива 3-D. Размер fn зависит от выбора алгоритма подгонки, указанного в 'FitMethod':
При указании 'lsce' или 'lsrf', то fn является вектором с mnum элементы, независимо от размера frf. Если система имеет более mnum колебательные режимы, затем 'lsrf' метод возвращает первый mnum наименее демпфированные режимы отсортированы в порядке увеличения собственной частоты.
При указании 'pp', то fn является массивом размера mnum-by-m-by-n с одной оценкой fn и одна оценка dr за frf.
dr - Коэффициенты демпфированияКоэффициенты демпфирования для собственных частот в fn, возвращается в виде матрицы или массива 3-D того же размера, что и fn.
ms - Векторы модовой формыВекторы модовой формы, возвращаемые в виде матрицы. ms имеет mnum столбцы, каждый из которых содержит вектор модовой формы длины q, где q является большим из числа каналов возбуждения и числа каналов отклика.
ofrf - Реконструированные функции частотно-откликаВосстановленные частотно-ответные функции, возвращаемые как вектор, матрица или 3-D массив с тем же размером, что и frf.
Комплексный экспоненциальный метод наименьших квадратов вычисляет импульсную характеристику, соответствующую каждой частотно-ответной функции, и подгоняет к отклику множество комплексных затухающих синусоид, используя метод Прони.
Отобранная демпфированная синусоида может быть отлита в форме
j2.dfi/fs) n) ≡ai+xi+n+ai−xi−n,
где:
fs - частота выборки.
fi - частота синусоиды.
bi - коэффициент демпфирования.
Ai - амплитуда и фаза синусоиды.
Аи называются амплитудами, а xi - полюсами. Метод Прони выражает дискретизированную функцию h (n) как суперпозицию N/2 мод (и, таким образом, N амплитуд и полюсов):
=a1x1N−1+a2x2N−1+⋯+aNxNN−1.
Полюса являются корнями многочлена с коэффициентами c0, c1, ... , cN-1:
Коэффициенты находят с использованием авторегрессивной модели из L = 2N выборок h:
c0c1⋮cN−1]=−[h (N) h (N + 1) ⋮h (L − 1)].
Чтобы найти полюса, алгоритм использует roots функция. Как только полюса известны, можно определить частоты и коэффициенты демпфирования, определив мнимую и действительную части логарифмов полюсов. Последний этап - решение для амплитуд и восстановление импульсной характеристики с использованием
a1⋮aN].
Следующая наивная реализация MATLAB ® суммирует процедуру:
N = 4; L = 2*N; h = rand(L,1); c = hankel(h(1:N),h(L-N:L-1))\-h(N+1:L); x = roots([1;c(N:-1:1)]).'; p = log(x); hrec = x.^((0:L-1)')*(x.^((0:L-1)')\h(1:L)); sum(h-hrec)
ans = 3.2613e-15 - 1.9297e-16i
Способ выбора пика предполагает, что каждый значимый пик в функции частотного отклика соответствует ровно одному естественному режиму. Предполагается, что система ведет себя как гармонический генератор с одной степенью свободы:
− 1 (2λ) 2 m = f2H (f),
где H - функция «частота-отклик», fr - несампертная резонансная частота, λ r = b/( 4mk) 1/2 - относительное демпфирование, b - постоянная демпфирования, k - постоянная упругости, m - масса.
Учитывая пик, расположенный в fp, процедура переносит пик и фиксированное число точек в любую сторону, заменяет массовый член фиктивной переменной, d, и вычисляет модальные параметры, решая систему уравнений
(fp − k) ⋮fp2H (fp) ⋮fp+k2H (fp + k)].
[1] Аллеманг, Рэндалл Дж. и Дэвид Л. Браун. «Экспериментальный модальный анализ и синтез динамических компонентов, том III: оценка модальных параметров». Технический отчет AFWAL-TR-87-3069. Аэронавигационные лаборатории ВВС Райт, база ВВС Райт-Паттерсон, ОН, декабрь 1987 года.
[2] Брандт, Андерс. Анализ шума и вибрации: анализ сигналов и экспериментальные процедуры. Чичестер, Великобритания: John Wiley & Sons, 2011.
[3] Оздемир, Ахмет Арда и Суат Гумуссой. «Оценка передаточной функции в панели инструментов идентификации системы с помощью векторного фитинга». Материалы 20-го Всемирного конгресса Международной федерации автоматического управления, Тулуза, Франция, июль 2017 года.
modalfrf | modalsd | tfestimate | n4sid (Панель инструментов идентификации системы) | tfest(Панель инструментов идентификации системы)
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.