Patrycja Grabowska Weronika Hasslinger Andrzej Jugowicz Sławomir Kantor Rafał Duda |
Laboratorium nr 9 Sprawozdanie |
Prowadzący: Łukasz Ambroziński |
---|---|---|
IMIR, Mechatronika, Projektowanie Mechatroniczne, Gr. 2 „Czarne Orły” |
Temat: Wykorzystanie analizy modalnej do korekty częstotliwości drgań własnych układu | Data zajęć: 21.05.2015r. |
Cel doświadczenia:
Celem ćwiczenia było wykorzystanie analizy modalnej do korekty częstotliwości drgań własnych układu.
Opis doświadczenia:
W ramach doświadczenia postanowiono porównać wartości FRF otrzymane dla 4 czujników w 5 przypadkach:
- bez dodatkowego obciążenia,
- z masą m1 umieszczoną w punkcie p1
- z masą m2=2m1 umieszczoną w punkcie p1
- z masą m1 umieszczoną w punkcie p2
- z masą m2=2m1 umieszczoną w punkcie p2
Stanowisko pomiarowe:
Obiekt pomiar zawieszamy w koniguracji free-free (bez kontaktu z otoczeniem), podłączamy do niego wzbudnik elektrodynamiczny wraz ze wzmacniaczem poprzez głowę impedancyjną oraz akcelerometry. Wzmacniacz oraz czujniki podłączamy do analizatora sygnałów. Analizator sygnałów będzie odpowiadał za generowanie sygnału wymuszającego (w naszym przypadku biały szum) oraz wysyłanie go na wzmacniacz, a także za akwizycję przebiegów czasowych z głowy impedancyjnej oraz akcelerometrów. Sygnały w postaci cyfrowej zostaną przesłane z analizatora sygnałów do komputera gdzie zostaną poddane dalszej obróbce.
Schemat umieszczenia czujników i dodatkowych mas:
Skrypt w Matlabie
clear all
close all
clc
%% wczytanie danych
load wym_run1.unv
wym_run1=reshape(wym_run1',1,(683*6));
load wym_p1m1.unv
wym_p1m1=reshape(wym_p1m1',(683*6),1);
load wym_p1m2.unv
wym_p1m2=reshape(wym_p1m2',(683*6),1);
load wym_p2m1.unv
wym_p2m1=reshape(wym_p2m1',(683*6),1);
load wym_p2m2.unv
wym_p2m2=reshape(wym_p2m2',(683*6),1);
load odp_run1_cz1.unv
odp_run1_cz1=reshape(odp_run1_cz1',(683*6),1);
load odp_run1_cz2.unv
odp_run1_cz2=reshape(odp_run1_cz2',(683*6),1);
load odp_run1_cz3.unv
odp_run1_cz3=reshape(odp_run1_cz3',(683*6),1);
load odp_run1_cz4.unv
odp_run1_cz4=reshape(odp_run1_cz4',(683*6),1);
load odp_p1m1_cz1.unv
odp_p1m1_cz1=reshape(odp_p1m1_cz1',(683*6),1);
load odp_p1m1_cz2.unv
odp_p1m1_cz2=reshape(odp_p1m1_cz2',(683*6),1);
load odp_p1m1_cz3.unv
odp_p1m1_cz3=reshape(odp_p1m1_cz3',(683*6),1);
load odp_p1m1_cz4.unv
odp_p1m1_cz4=reshape(odp_p1m1_cz4',(683*6),1);
load odp_p1m2_cz1.unv
odp_p1m2_cz1=reshape(odp_p1m2_cz1',(683*6),1);
load odp_p1m2_cz2.unv
odp_p1m2_cz2=reshape(odp_p1m2_cz2',(683*6),1);
load odp_p1m2_cz3.unv
odp_p1m2_cz3=reshape(odp_p1m2_cz3',(683*6),1);
load odp_p1m2_cz4.unv
odp_p1m2_cz4=reshape(odp_p1m2_cz4',(683*6),1);
load odp_p2m1_cz1.unv
odp_p2m1_cz1=reshape(odp_p2m1_cz1',(683*6),1);
load odp_p2m1_cz2.unv
odp_p2m1_cz2=reshape(odp_p2m1_cz2',(683*6),1);
load odp_p2m1_cz3.unv
odp_p2m1_cz3=reshape(odp_p2m1_cz3',(683*6),1);
load odp_p2m1_cz4.unv
odp_p2m1_cz4=reshape(odp_p2m1_cz4',(683*6),1);
load odp_p2m2_cz1.unv
odp_p2m2_cz1=reshape(odp_p2m2_cz1',(683*6),1);
load odp_p2m2_cz2.unv
odp_p2m2_cz2=reshape(odp_p2m2_cz2',(683*6),1);
load odp_p2m2_cz3.unv
odp_p2m2_cz3=reshape(odp_p2m2_cz3',(683*6),1);
load odp_p2m2_cz4.unv
odp_p2m2_cz4=reshape(odp_p2m2_cz4',(683*6),1);
%%
fs= 1024;
%% estymacja FRF bezpośrednio z przebiegów czasowych
% FRF bez masy
[Tf_run1_cz1,f_run1_cz1]=tfestimate(wym_run1,odp_run1_cz1,1024,[],[],fs);
[Tf_run1_cz2,f_run1_cz2]=tfestimate(wym_run1,odp_run1_cz2,1024,[],[],fs);
[Tf_run1_cz3,f_run1_cz3]=tfestimate(wym_run1,odp_run1_cz3,1024,[],[],fs);
[Tf_run1_cz4,f_run1_cz4]=tfestimate(wym_run1,odp_run1_cz4,1024,[],[],fs);
% FRF z 1 masą w punkcie 1
[Tf_p1m1_cz1,f_p1m1_cz1]=tfestimate(wym_p1m1,odp_p1m1_cz1,1024,[],[],fs);
[Tf_p1m1_cz2,f_p1m1_cz2]=tfestimate(wym_p1m1,odp_p1m1_cz2,1024,[],[],fs);
[Tf_p1m1_cz3,f_p1m1_cz3]=tfestimate(wym_p1m1,odp_p1m1_cz3,1024,[],[],fs);
[Tf_p1m1_cz4,f_p1m1_cz4]=tfestimate(wym_p1m1,odp_p1m1_cz4,1024,[],[],fs);
% FRF z 2 masami w punkcie 1
[Tf_p1m2_cz1,f_p1m2_cz1]=tfestimate(wym_p1m2,odp_p1m2_cz1,1024,[],[],fs);
[Tf_p1m2_cz2,f_p1m2_cz2]=tfestimate(wym_p1m2,odp_p1m2_cz2,1024,[],[],fs);
[Tf_p1m2_cz3,f_p1m2_cz3]=tfestimate(wym_p1m2,odp_p1m2_cz3,1024,[],[],fs);
[Tf_p1m2_cz4,f_p1m2_cz4]=tfestimate(wym_p1m2,odp_p1m2_cz4,1024,[],[],fs);
% FRF z 1 masą w punkcie 2
[Tf_p2m1_cz1,f_p2m1_cz1]=tfestimate(wym_p2m1,odp_p2m1_cz1,1024,[],[],fs);
[Tf_p2m1_cz2,f_p2m1_cz2]=tfestimate(wym_p2m1,odp_p2m1_cz2,1024,[],[],fs);
[Tf_p2m1_cz3,f_p2m1_cz3]=tfestimate(wym_p2m1,odp_p2m1_cz3,1024,[],[],fs);
[Tf_p2m1_cz4,f_p2m1_cz4]=tfestimate(wym_p2m1,odp_p2m1_cz4,1024,[],[],fs);
% FRF z 2 masami w punkcie 2
[Tf_p2m2_cz1,f_p2m2_cz1]=tfestimate(wym_p2m2,odp_p2m2_cz1,1024,[],[],fs);
[Tf_p2m2_cz2,f_p2m2_cz2]=tfestimate(wym_p2m2,odp_p2m2_cz2,1024,[],[],fs);
[Tf_p2m2_cz3,f_p2m2_cz3]=tfestimate(wym_p2m2,odp_p2m2_cz3,1024,[],[],fs);
[Tf_p2m2_cz4,f_p2m2_cz4]=tfestimate(wym_p2m2,odp_p2m2_cz4,1024,[],[],fs);
%% wykresy FRF 1
% wykreślenie wykresów FRF 1
figure()
subplot(211)
plot(f_run1_cz1, 20*log(abs(Tf_run1_cz1)), f_p1m1_cz1, 20*log(abs(Tf_p1m1_cz1)), f_p1m2_cz1, 20*log(abs(Tf_p1m2_cz1)), f_p2m1_cz1, 20*log(abs(Tf_p2m1_cz1)), f_p2m2_cz1, 20*log(abs(Tf_p2m2_cz1)));
legend('FRF bez mas','FRF 1 masa w P1','FRF 2 masy w P1','FRF 1 masa w P2','FRF 2 masy w P2');
ylabel('Amplituda [dB]');
xlabel('Częstotliwość [Hz]');
title('Wykresy Bodego - dane z 1 czujnika');
subplot(212)
plot(f_run1_cz1, angle(Tf_run1_cz1), f_p1m1_cz1, angle(Tf_p1m1_cz1), f_p1m2_cz1, angle(Tf_p1m2_cz1), f_p2m1_cz1, angle(Tf_p2m1_cz1), f_p2m2_cz1, angle(Tf_p2m2_cz1));
legend('FRF bez mas','FRF 1 masa w P1','FRF 2 masy w P1','FRF 1 masa w P2','FRF 2 masy w P2');
ylabel('Faza [rad]');
xlabel('Częstotliwość [Hz]');
% wykreślenie wykresów FRF 2
figure()
subplot(211)
plot(f_run1_cz2, 20*log(abs(Tf_run1_cz2)), f_p1m1_cz2, 20*log(abs(Tf_p1m1_cz2)), f_p1m2_cz2, 20*log(abs(Tf_p1m2_cz2)), f_p2m1_cz2, 20*log(abs(Tf_p2m1_cz2)), f_p2m2_cz2, 20*log(abs(Tf_p2m2_cz2)));
legend('FRF bez mas','FRF 1 masa w P1','FRF 2 masy w P1','FRF 1 masa w P2','FRF 2 masy w P2');
ylabel('Amplituda [dB]');
xlabel('Częstotliwość [Hz]');
title('Wykresy Bodego - dane z 2 czujnika');
subplot(212)
plot(f_run1_cz2, angle(Tf_run1_cz2), f_p1m1_cz2, angle(Tf_p1m1_cz2), f_p1m2_cz2, angle(Tf_p1m2_cz2), f_p2m1_cz2, angle(Tf_p2m1_cz2), f_p2m2_cz2, angle(Tf_p2m2_cz2));
legend('FRF bez mas','FRF 1 masa w P1','FRF 2 masy w P1','FRF 1 masa w P2','FRF 2 masy w P2');
ylabel('Faza [rad]');
xlabel('Częstotliwość [Hz]');
% wykreślenie wykresów FRF 3
figure()
subplot(211)
plot(f_run1_cz3, 20*log(abs(Tf_run1_cz3)), f_p1m1_cz3, 20*log(abs(Tf_p1m1_cz3)), f_p1m2_cz3, 20*log(abs(Tf_p1m2_cz3)), f_p2m1_cz3, 20*log(abs(Tf_p2m1_cz3)), f_p2m2_cz3, 20*log(abs(Tf_p2m2_cz3)));
legend('FRF bez mas','FRF 1 masa w P1','FRF 2 masy w P1','FRF 1 masa w P2','FRF 2 masy w P2');
ylabel('Amplituda [dB]');
xlabel('Częstotliwość [Hz]');
title('Wykresy Bodego - dane z 3 czujnika');
subplot(212)
plot(f_run1_cz3, angle(Tf_run1_cz3), f_p1m1_cz3, angle(Tf_p1m1_cz3), f_p1m2_cz3, angle(Tf_p1m2_cz3), f_p2m1_cz3, angle(Tf_p2m1_cz3), f_p2m2_cz3, angle(Tf_p2m2_cz3));
legend('FRF bez mas','FRF 1 masa w P1','FRF 2 masy w P1','FRF 1 masa w P2','FRF 2 masy w P2');
ylabel('Faza [rad]');
xlabel('Częstotliwość [Hz]');
% wykreślenie wykresów FRF 4
figure()
subplot(211)
plot(f_run1_cz4, 20*log(abs(Tf_run1_cz4)), f_p1m1_cz4, 20*log(abs(Tf_p1m1_cz4)), f_p1m2_cz4, 20*log(abs(Tf_p1m2_cz4)), f_p2m1_cz4, 20*log(abs(Tf_p2m1_cz4)), f_p2m2_cz4, 20*log(abs(Tf_p2m2_cz4)));
legend('FRF bez mas','FRF 1 masa w P1','FRF 2 masy w P1','FRF 1 masa w P2','FRF 2 masy w P2');
ylabel('Amplituda [dB]');
xlabel('Częstotliwość [Hz]');
title('Wykresy Bodego - dane z 4 czujnika');
subplot(212)
plot(f_run1_cz4, angle(Tf_run1_cz4), f_p1m1_cz4, angle(Tf_p1m1_cz4), f_p1m2_cz4, angle(Tf_p1m2_cz4), f_p2m1_cz4, angle(Tf_p2m1_cz4), f_p2m2_cz4, angle(Tf_p2m2_cz4));
legend('FRF bez mas','FRF 1 masa w P1','FRF 2 masy w P1','FRF 1 masa w P2','FRF 2 masy w P2');
ylabel('Faza [rad]');
xlabel('Częstotliwość [Hz]');
Otrzymane wykresy funkcji FRF.
dla I czujnika
pojawienie dodatkowych mas spowodowało przesunięcie wykresów w lewo,
wykresy dla ciężarków w punkcie P1 są bardziej przesunięte niż ciężarki w punkcie P2, w niektórych punktach pomiary z ciężarkami w punkcie P2 pokrywają się z wykresem bez obciążeń,
w danym punkcie przyłożenia masy wykres dla podwójnej masy jest bardziej przesunięty niż dla pojedynczej,
najbardziej widoczne są przesunięcia w zakresie 300-400Hz .
dla czujnika II
wykresy dla ciężarków w punkcie P1 są odchylone w lewo, wykresy dla ciężarków w punkcie P2 w większości pokrywają się z wykresem bez ciężarków,
dla podwójnej masy przesunięcie jest większe niż dla pojedynczej,
przesunięcia są najbardziej widoczne w zakresie 200-400Hz.
dla czujnika III
wykresy dla ciężarków w punkcie P1 są odchylone w lewo, wykresy dla ciężarków w punkcie P2 w większości pokrywają się z wykresem bez ciężarków,
dla podwójnej masy przesunięcie jest większe niż dla pojedynczej,
przesunięcia są najbardziej widoczne w zakresie 250-400Hz.
dla czujnika IV
wykresy dla ciężarków w punkcie P1 są odchylone w lewo, wykresy dla ciężarków w punkcie P2 w większości pokrywają się z wykresem bez ciężarków,
dla podwójnej masy przesunięcie jest większe niż dla pojedynczej,
przesunięcia są najbardziej widoczne w zakresie 200-400Hz.
Wnioski
Wzrost masy modelu powoduje spadek częstotliwości drgań własnych. Im większa masa tym bardziej wykres w dziedzinie częstotliwości jest przesunięty w lewo, co jest zgodna z zależnością:
Dla każdego z czterech czujników wykresy dla mas umieszczonych w punkcie P2 były znacznie mniej odchylone niż w punkcie P1. Pokazuje to, że na przesunięcie wykresu ma wpływ położenie masy korekcyjnej względem krawędzi obiektu, a nie ich położenie względem czujników.