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

Идентифицируйте модели в пространстве состояний систем. Используйте модели, чтобы вычислить функцию частотной характеристики и модальные параметры. Этот пример требует лицензии System Identification Toolbox™.

Куйте возбуждение

Загрузите файл, содержащий three-input/three-output данные о возбуждении молотка, произведенные на уровне 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

Смотрите также

| | (System Identification Toolbox)