exponenta event banner

Модальный анализ идентифицированных моделей

Определение пространственно-государственных моделей систем. Используйте модели для вычисления частотно-ответных функций и модальных параметров. В этом примере требуется лицензия на Toolbox™ идентификации системы.

Возбуждение молота

Загрузите файл, содержащий данные возбуждения молотка с тремя входами/тремя выходами, дискретизированные на частоте 4 кГц. Используйте первые 104 выборки для оценки и выборки от 2 × 104 до 5 × 104 для проверки качества модели. Укажите время выборки как обратное частоте выборки. Сохранить данные как@iddata объекты.

load modaldata XhammerMISO1 YhammerMISO1 fs

rest = 1:1e4;
rval = 2e4:5e4;
Ts = 1/fs;

Estimation = iddata(YhammerMISO1(rest,:),XhammerMISO1(rest,:),Ts);
Validation = iddata(YhammerMISO1(rval,:),XhammerMISO1(rval,:),Ts,'Tstart',rval(1)*Ts);

Постройте график данных оценки и данных проверки.

plot(Estimation,Validation)
legend(gca,'show')

Figure contains 6 axes. Axes 1 with title y1 contains 2 objects of type line. These objects represent Estimation, Validation. Axes 2 with title y2 contains 2 objects of type line. These objects represent Estimation, Validation. Axes 3 with title y3 contains 2 objects of type line. These objects represent Estimation, Validation. Axes 4 with title u1 contains 2 objects of type line. These objects represent Estimation, Validation. Axes 5 with title u2 contains 2 objects of type line. These objects represent Estimation, Validation. Axes 6 with title u3 contains 2 objects of type line. These objects represent Estimation, Validation.

Используйте ssest функция оценки модели пространства состояния 7-го порядка системы, которая минимизирует ошибку моделирования между измеренными выходами и выходами модели. Укажите, что модель пространства состояния имеет сквозное соединение.

Orders = 7;
opt = ssestOptions('Focus','simulation');

sys = ssest(Estimation,Orders,'Feedthrough',true,'Ts',Ts,opt);

(Чтобы найти порядок модели, который дает наилучший компромисс между точностью и сложностью, установите Orders кому 1:15 в предыдущем коде. ssest выводит логарифмический график сингулярных значений, который позволяет указать порядок в интерактивном режиме. Функция также рекомендует порядок модели 7.)

Проверьте качество модели в наборе данных проверки. Постройте график нормированного показателя среднеквадратичной ошибки (NRMSE) соответствия. Модель точно описывает выходные сигналы проверочных данных.

compare(Validation,sys)

Figure contains 3 axes. Axes 1 contains 2 objects of type line. These objects represent Validation (y1), sys: 99.72%. Axes 2 contains 2 objects of type line. These objects represent Validation (y2), sys: 99.92%. Axes 3 contains 2 objects of type line. These objects represent Validation (y3), sys: 99.99%.

Оценка частотно-ответных функций модели. Просмотр функций с помощью modalfrf без выходных аргументов.

[frf,f] = modalfrf(sys);
modalfrf(sys)

Figure contains 18 axes. Axes 1 with title FRF11 contains an object of type line. Axes 2 contains an object of type line. Axes 3 with title FRF12 contains an object of type line. Axes 4 contains an object of type line. Axes 5 with title FRF13 contains an object of type line. Axes 6 contains an object of type line. Axes 7 with title FRF21 contains an object of type line. Axes 8 contains an object of type line. Axes 9 with title FRF22 contains an object of type line. Axes 10 contains an object of type line. Axes 11 with title FRF23 contains an object of type line. Axes 12 contains an object of type line. Axes 13 with title FRF31 contains an object of type line. Axes 14 contains an object of type line. Axes 15 with title FRF32 contains an object of type line. Axes 16 contains an object of type line. Axes 17 with title FRF33 contains an object of type line. Axes 18 contains an object of type line.

Предположим, что система хорошо описана с использованием трех режимов. Вычислите собственные частоты, коэффициенты демпфирования и векторы моды трех мод.

Modes = 3;
[fn,dr,ms] = modalfit(sys,f,Modes)
fn = 3×1
103 ×

    0.3727
    0.8525
    1.3706

dr = 3×1

    0.0008
    0.0018
    0.0029

ms = 3×3 complex

   0.0036 - 0.0019i   0.0039 - 0.0005i   0.0021 + 0.0006i
   0.0043 - 0.0023i   0.0010 - 0.0001i  -0.0033 - 0.0010i
   0.0040 - 0.0021i  -0.0031 + 0.0004i   0.0011 + 0.0003i

Вычислите и отобразите восстановленные функции частотного отклика. Выражайте величины в децибелах.

[~,~,~,ofrf] = modalfit(sys,f,Modes);

clf
for ij = 1:3
    for ji = 1:3
        subplot(3,3,3*(ij-1)+ji)
        plot(f/1000,20*log10(abs(ofrf(:,ji,ij))))
        axis tight
        title(sprintf('In%d -> Out%d',ij,ji))
        if ij==3
            xlabel('Frequency (kHz)')
        end
    end
end

Figure contains 9 axes. Axes 1 with title In1 -> Out1 contains an object of type line. Axes 2 with title In1 -> Out2 contains an object of type line. Axes 3 with title In1 -> Out3 contains an object of type line. Axes 4 with title In2 -> Out1 contains an object of type line. Axes 5 with title In2 -> Out2 contains an object of type line. Axes 6 with title In2 -> Out3 contains an object of type line. Axes 7 with title In3 -> Out1 contains an object of type line. Axes 8 with title In3 -> Out2 contains an object of type line. Axes 9 with title In3 -> Out3 contains an object of type line.

Контролируемый нестабильный процесс

Загрузите файл, содержащий измерение частотной характеристики с высокой модальной плотностью. Данные соответствуют нестабильному процессу, поддерживаемому при равновесии с помощью управления с обратной связью. Хранить данные как idfrd объект для идентификации. Постройте график Боде.

load HighModalDensData FRF f

G = idfrd(permute(FRF,[2 3 1]),f,0,'FrequencyUnit','Hz');
figure
bodemag(G)
xlim([0.01,2e3])

Figure contains an axes. The axes contains an object of type line. This object represents G.

Определите передаточную функцию с 32 полюсами и 32 нулями.

sys = tfest(G,32,32);

Сравните частотную характеристику модели с измеренной характеристикой.

bodemag(G,sys)
xlim([0.01,2e3])
legend(gca,'show')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent G, sys.

Извлеките собственные частоты и коэффициенты демпфирования первых 10 наименее демпфированных колебательных мод. Сохраните результаты в таблице.

[fn,dr] = modalfit(sys,[],10);
T = table((1:10)',fn,dr,'VariableNames',{'Mode','Frequency','Damping'})
T=10×3 table
    Mode    Frequency     Damping 
    ____    _________    _________

      1      82.764       0.011304
      2      85.013       0.015632
      3      124.04       0.025252
      4      142.04       0.017687
      5      251.46      0.0062182
      6      332.79      0.0058266
      7      401.21      0.0043645
      8      625.14      0.0039247
      9      770.49       0.002795
     10      943.64      0.0019943

См. также

| | (панель инструментов идентификации системы)