Модальные параметры от функции частотной характеристики
[___] = modalfit(
оценивает модальные параметры идентифицированной модели sys
,f
,mnum
,Name,Value
)sys
. Используйте команды оценки как ssest
(System Identification Toolbox) или tfest
(System Identification Toolbox), чтобы создать sys
запуск с измеренной функции частотной характеристики или с сигналов ввода и вывода временного интервала. Этот синтаксис позволяет использование 'DriveIndex'
, 'FreqRange'
, и 'PhysFreq'
аргументы в виде пар имя-значение. Обычно требуется меньше данных, чем синтаксисы, которые используют непараметрические методы. У вас должна быть лицензия System Identification Toolbox™, чтобы использовать этот синтаксис.
Оцените функцию частотной характеристики для простой single-input/single-output системы и сравните ее с определением.
Одномерное дискретное время колеблющаяся система состоит из модульной массы, , присоединенный к стенке к пружине с эластичной константой . Датчик производит смещение массы в Гц. Демпфер препятствует движению массы путем порождения на него силы, пропорциональной, чтобы ускориться с затуханием постоянного .
Сгенерируйте в 3000 раз выборки. Задайте интервал выборки .
Fs = 1; dt = 1/Fs; N = 3000; t = dt*(0:N-1); b = 0.01;
Система может быть описана моделью в пространстве состояний
где вектор состояния, и соответственно смещение и скорость массы, движущая сила, и измеренный выход. Матрицы пространства состояний
идентичность и матрицы пространства состояний непрерывного времени
Ac = [0 1;-1 -b]; A = expm(Ac*dt); Bc = [0;1]; B = Ac\(A-eye(2))*Bc; C = [1 0]; D = 0;
Масса управляется случайным входом в течение первых 2 000 секунд и затем оставляется возвратиться к отдыху. Используйте модель в пространстве состояний, чтобы вычислить эволюцию времени системы, начинающей со все-нулевого начального состояния. Постройте смещение массы в зависимости от времени.
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)
Оцените модальную функцию частотной характеристики системы. Используйте окно Hann, вдвое менее длинное, чем измеренные сигналы. Укажите, что выход является смещением массы.
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).
Загрузите структуру, содержащую three-input/three-output 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
Оцените функцию частотной характеристики и модальные параметры простой системы мультивхода/мультивыхода.
Идеальная одномерная колеблющаяся система состоит из двух масс, и , ограниченный между двумя стенками. Модули таковы что и . Каждая масса присоединена к самой близкой стенке к пружине с эластичной константой . Идентичная пружина соединяет эти две массы. Три демпфера препятствуют движению масс путем проявления на них, обеспечивает пропорциональный, чтобы ускориться, с затуханием постоянного . Выборка датчиков и , смещения масс, в Гц.
Сгенерируйте в 30,000 раз выборки, эквивалентные 600 секундам. Задайте интервал выборки .
Fs = 50; dt = 1/Fs; N = 30000; t = dt*(0:N-1);
Система может быть описана моделью в пространстве состояний
где вектор состояния, и соответственно местоположение и скорость масса th, вектор из входных движущих сил, и выходной вектор. Матрицы пространства состояний
идентичность и матрицы пространства состояний непрерывного времени
Набор , , и .
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);
Массы управляются случайным входом в течение измерения. Используйте модель в пространстве состояний, чтобы вычислить эволюцию времени системы, начинающей со все-нулевого начального состояния.
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
Используйте входные и выходные данные, чтобы оценить передаточную функцию системы в зависимости от частоты. Используйте окно Hann с 15000 выборками с 9 000 выборок перекрытия между смежными сегментами. Укажите, что измеренные выходные параметры являются смещениями.
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
Вычислите собственные частоты, коэффициенты затухания и формы режима для two-input/three-output системы, взволнованной несколькими пакетами случайного шума. Каждый пакет служит в течение 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 Гц и 1 371 Гц, который соответствует физическим частотам системы. Сохраните максимумы в переменную.
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
— Функция частотной характеристикиФункция частотной характеристики в виде вектора, матрицы или трехмерного массива. 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
(System Identification Toolbox), n4sid
(System Identification Toolbox), или tfest
(System Identification Toolbox), чтобы создать sys
запуск с измеренной функции частотной характеристики или с сигналов ввода и вывода временного интервала. Смотрите Модальный Анализ Идентифицированных Моделей для примера. У вас должна быть лицензия System Identification Toolbox, чтобы использовать этот входной параметр.
Пример: 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'
.
Типы данных: логический
'FitMethod'
— Алгоритм подбора'lsce'
(значение по умолчанию) | 'lsrf'
| 'pp'
Алгоритм подбора в виде разделенной запятой пары, состоящей из 'FitMethod'
и 'lsce'
, 'lsrf'
, или 'pp'
.
'lsce'
— Метод Комплексной экпоненты наименьших квадратов. Если вы задаете 'lsce'
, затем fn
вектор с mnum
элементы, независимые от размера frf
.
'lsrf'
— Метод оценки рациональной функции наименьших квадратов. Если вы задаете 'lsrf'
, затем fn
вектор с mnum
элементы, независимые от размера frf
. Метод описан в [3]. Смотрите, что Оценка Передаточной функции Непрерывного времени Использует Данные Частотного диапазона Непрерывного времени (System Identification Toolbox) для получения дополнительной информации. Этот алгоритм обычно требует меньшего количества данных, чем непараметрические подходы и является единственным, который работает на неоднородный f
.
'pp'
— Выбирающий пик метод. Для frf
вычисленный из сигналов возбуждения n и сигналов ответа m, fn
mnum
- m n массивом с одной оценкой fn
и одна оценка dr
на frf
.
'FreqRange'
— Частотный диапазонЧастотный диапазон в виде разделенной запятой пары, состоящей из 'FreqRange'
и двухэлементный вектор из увеличения положительных значений, содержавших в области значений, задан в f
.
Типы данных: single
| double
'PhysFreq'
— Собственные частоты для физических режимовСобственные частоты для физических режимов, чтобы включать в анализ в виде разделенной запятой пары, состоящей из 'PhysFreq'
и вектор из значений частоты в области значений заполнен f
. Функция включает в анализ те режимы с собственными частотами, самыми близкими к значениям, заданным в векторе. Если вектор содержит значения частоты m, то fn
и dr
имейте строки m каждый и ms
имеет столбцы m. Если вы не задаете этот аргумент, то функция использует целый частотный диапазон в f
.
Типы данных: single
| double
'DriveIndex'
— Индексы функции частотной характеристики ведущей точки
(значение по умолчанию) | двухэлементный вектор из положительных целых чиселИндексы функции частотной характеристики ведущей точки в виде разделенной запятой пары, состоящей из 'DriveIndex'
и двухэлементный вектор из положительных целых чисел. Первый элемент вектора должен быть меньше чем или равен количеству откликов системы. Второй элемент вектора должен быть меньше чем или равен количеству системных возбуждений. Формы режима нормированы к единице, модальной на основе ведущей точки.
Пример: 'DriveIndex',[2 3]
указывает, что функцией частотной характеристики ведущей точки является frf(:,2,3)
.
Типы данных: single
| double
fn
— Собственные частотыСобственные частоты, возвращенные как матрица или трехмерный массив. Размер fn
зависит от выбора алгоритма подбора, заданного с '
FitMethod
'
:
Если вы задаете 'lsce'
или 'lsrf'
, затем fn
вектор с mnum
элементы, независимые от размера frf
. Если система имеет больше, чем mnum
колебательные режимы, затем 'lsrf'
метод возвращает первый mnum
наименее ослабленные режимы отсортированы в порядке увеличения собственной частоты.
Если вы задаете 'pp'
, затем fn
массив размера mnum
- m n с одной оценкой fn
и одна оценка dr
на frf
.
dr
— Коэффициенты затуханияКоэффициенты затухания для собственных частот в fn
, возвращенный как матрица или трехмерный массив одного размера с fn
.
ms
— Векторы формы режимаВекторы формы режима, возвращенные как матрица. ms
имеет mnum
столбцы, каждый содержащий вектор формы режима из длины q, где q является большим из количества каналов возбуждения и количества каналов ответа.
ofrf
— Восстановленная функция частотной характеристикиВосстановленная функция частотной характеристики, возвращенная как вектор, матрица или трехмерный массив с тем же размером как frf
.
Метод комплексной экпоненты наименьших квадратов вычисляет импульсную характеристику, соответствующую каждой функции частотной характеристики и подгонкам к ответу, набор комплекса ослабил синусоиды с помощью метода Прони.
Произведенная ослабленная синусоида может быть брошена в форме
где:
f s является частотой дискретизации.
fi является частотой синусоиды.
bi является коэффициентом демпфирования.
Ai и ϕi являются амплитудой и фазой синусоиды.
ai называется амплитудами, и xi называются полюсами. Метод Прони описывает произведенный функциональный h (n) как суперпозиция N/2 режимы (и таким образом амплитуды N и полюса):
Полюса являются корнями полинома с коэффициентами c 0, c 1, …, c N –1:
Коэффициенты найдены с помощью авторегрессивной модели L = 2N выборки h:
Чтобы найти полюса, алгоритм использует roots
функция. Если полюса известны, возможно определить частоты и коэффициенты затухания путем идентификации мнимых и действительных частей логарифмов полюса. Последний шаг решает для амплитуд и восстанавливает использование импульсной характеристики
Следующая наивная реализация 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
Выбирающий пик метод принимает, что каждый значительный пик в функции частотной характеристики соответствует точно одному естественному режиму. Близко к пику система принята, чтобы вести себя как ослабленный гармонический генератор одной степени свободы:
где H является функцией частотной характеристики, f r является незатухающей резонансной частотой, ζ r = , b / (4mk) 1/2 является относительным затуханием, b является постоянным затуханием, k является эластичной константой, и m является массой.
Учитывая пик, расположенный в fp, процедура берет пик и постоянное число точек любой стороне, заменяет массовый термин на фиктивную переменную, d, и вычисляет модальные параметры путем решения системы уравнений
[1] Allemang, Рэндалл Дж. и Дэвид Л. Браун. “Экспериментальный Модальный Анализ и Динамический Синтез Компонента, Издание III: Модальная Оценка Параметра”. Технический отчет AFWAL TR-87-3069. Авиационные лаборатории Мастера Военно-воздушных сил, Авиационная база ВВС Мастера-Patterson, OH, декабрь 1987.
[2] Брандт, Андерс. Шум и анализ вибрации: анализ сигнала и экспериментальные процедуры. Чичестер, Великобритания: John Wiley & Sons, 2011.
[3] Ozdemir, Ахмет Арда и Суэт Гумассой. "Оценка Передаточной функции System Identification Toolbox через Подбор кривой Вектора". Продолжения 20-го Мирового Конгресса Международной федерации Автоматического управления, Тулузы, Франция, июль 2017.
modalfrf
| modalsd
| tfestimate
| n4sid
(System Identification Toolbox) | tfest
(System Identification Toolbox)
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.