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

Идентифицируйте модели систем в пространстве состояний. Используйте модели для вычисления функций частотной характеристики и модальных параметров. Этот пример требует лицензии System Identification 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 объект для идентификации. Постройте график Bode-схемы.

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

См. также

| | (System Identification Toolbox)