analiza projekt

background image

AKADEMIA

GÓRNICZO-HUTNICZA

Identyfikacja i Analiza Sygnałów

PROJEKT






Kulawik Bartosz

GR. 23, IMiR

background image

1. Schemat układu:

Parametry układu:
Masy: m

1

=4.5, m

2

=3, m

3

=4.5, m

4

=8, m

5

=4, m

6

=4.5

Współczynniki tłumienia: c

1

=5, c

2

=4, c

3

=1, c

4

=18, c

5

=10, c

6

=12, c

7

=4, c

8

=16,

c

9

=3

Współczynniki sprężystości: k

1

=19000, k

2

=21000, k

3

=18000, k

4

=11000,

k

5

=15000, k

6

=14000, k

7

=15000, k

8

=17000, k

9

=19000

background image

2. Równania dynamiki w postaci równań czasowych

̈

+ ̇

+

+

(

̇

̇ ) +

(

) = 0

̈

+

(

̇

̇ ) +

(

) +

(

̇

̇ ) +

(

) = 0

̈

+ ̇

+

+

(

̇

̇ ) +

(

) =

̈

+

(

̇

̇ ) +

(

) +

(

̇

̇ ) +

(

) +

(

̇

̇ )

+

(

) +

(

̇

̇ ) +

(

) = 0

̈

+ ̇

+

+

(

̇

̇ ) +

(

) = 0

̈

+ ̇

+

+

(

̇

̇ ) +

(

) = 0

3. Równania w postaci macierzowej:

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

̈
̈
̈
̈
̈
̈ ⎦

+

+

0

0

0

0

+

0

0

0

0

0

+

0

0

0

+

+

+

0

0

0

+

0

0

0

0

0

+

̇

̇
̇
̇
̇
̇ ⎦

+

+

0

0

0

0

+

0

0

0

0

0

+

0

0

0

+

+

+

0

0

0

+

0

0

0

0

0

+

=

0
0

0
0
0 ⎦








background image

4. Przedstawić analityczne rozwiązanie układu

Parametry układu wyznaczam rozwiązując układ równań macierzowych z
punktu 3.
Program służący do rozwiązania zagadnienia własnego w mat labie:

% Liczba stopni swobody

n=6;

% Masy w układzie

m1=4.5; m2=3; m3=4.5; m4=8;

m5=4; m6=4.5;

% Współczynniki tłumienia

c1=5; c2=4; c3=1; c4=18;

c5=10; c6=12; c7=4; c8=16; c9=3;

% Współczynniki sztywności

k1=19000; k2=21000; k3=18000; k4=11000;

k5=15000; k6=14000; k7=15000; k8=17000; k9=19000;

%macierz mas

M = [m1 0 0 0 0 0

0 m2 0 0 0 0

0 0 m3 0 0 0

0 0 0 m4 0 0

0 0 0 0 m5 0

0 0 0 0 0 m6];

%macierz współczynników tłumienia

C = [c1+c2, -c2, 0, 0, 0, 0

-c2, c2+c4, 0, -c4, 0, 0

0, 0, c3+c5, -c5, 0, 0

0, -c4, -c5, c4+c5+c6+c7, -c6, -c7

0, 0, 0, -c6, c8+c6, 0

0, 0, 0, -c7, 0, c9+c7];

%macierz współczynników sztywności

K = [k1+k2, -k2, 0, 0, 0, 0

-k2, k2+k4, 0, -k4, 0, 0

0, 0, k3+k5, -k5, 0, 0

0, -k4, -k5, k4+k5+k6+k7, -k6, -k7

0, 0, 0, -k6, k8+k6, 0

0, 0, 0, -k7, 0, k9+k7];

%budowanie macierzy

ZER = zeros(size(M));

A = [ZER,M;M,C];

B = [-M,ZER;ZER,K];

%rozwiązanie zgadnienia własnego

[PHI,LAMBDA]=eig(-B,A);

%czestotliwosci drgan wlasnych tlumionych

WD=imag(diag(LAMBDA))/2/pi;

%czestotliwosci drgan wlasnych

WW=sqrt(imag(diag(LAMBDA)).^2+real(diag(LAMBDA)).^2)/2/pi;

%tlumienie modalne

KSI=-real(diag(LAMBDA))./sqrt(imag(diag(LAMBDA)).^2+real(diag(LAMBDA)).^2);

disp(

'Czest. drgań Tłumienia '

)

disp(

'własnych: modalne:'

)

[WW KSI]

background image

Rezultat działania skryptu:

Czest. drgań Tłumienia

własnych: modalne:

ans =

20.1077 0.0305

20.1077 0.0305

16.9611 0.0296

16.9611 0.0296

7.3003 0.0085

7.3003 0.0085

10.7026 0.0278

10.7026 0.0278

13.9259 0.0292

13.9259 0.0292

13.7330 0.0128

13.7330 0.0128

5. Za pomocą dowolnej metody przeprowadzić symulacje układu

Układ symuluje korzystając z równań stanu. Wymuszenie na masie 3,
rejestruje przemieszczenie masy 6. Skrypt:

%współczynniki sprężystości

k1=19000; k2=21000; k3=18000; k4=11000;

k5=15000; k6=14000; k7=15000; k8=17000; k9=19000;

%współczynniki tłumienia

c1=5; c2=4; c3=1; c4=18;

c5=10; c6=12; c7=4; c8=16; c9=3;

%masy

m1=4.5; m2=3; m3=4.5; m4=8;

m5=4; m6=4.5;

%równania stanu

A=[0 1 0 0 0 0 0 0 0 0 0 0;

-(k1+k2)/m1 -(c1+c2)/m1 k2/m1 c2/m1 0 0 0 0 0 0 0 0;

0 0 0 1 0 0 0 0 0 0 0 0;

k2/m2 c2/m2 -(k2+k4)/m2 -(c2+c4)/m2 0 0 k4/m2 c4/m2 0 0 0 0;

0 0 0 0 0 1 0 0 0 0 0 0;

0 0 0 0 -(k3+k5)/m3 -(c3+c5)/m3 k5/m3 c5/m3 0 0 0 0;

0 0 0 0 0 0 0 1 0 0 0 0;

0 0 k4/m4 c4/m4 k5/m4 c5/m4 -(k4+k5+k6+k7)/m4 -(c4+c5+c6+c7)/m4 k6/m4

c6/m4 k7/m4 c7/m4;

0 0 0 0 0 0 0 0 0 1 0 0;

0 0 0 0 0 0 k6/m5 c6/m5 -(k6+k8)/m5 -(c6+c8)/m5 0 0;

0 0 0 0 0 0 0 0 0 0 0 1;

background image

0 0 0 0 0 0 k7/m6 c7/m6 0 0 -(k7+k9)/m6 -(c7+c9)/m6];

B=[0; 0; 0; 0; 0; 1/m3; 0; 0; 0; 0; 0; 0];

C=[1 0 0 0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 0 0 0 0

0 0 0 0 1 0 0 0 0 0 0 0

0 0 0 0 0 0 1 0 0 0 0 0

0 0 0 0 0 0 0 0 1 0 0 0

0 0 0 0 0 0 0 0 0 0 1 0];

D=[0; 0; 0; 0; 0; 0];

sys=ss(A, B, C, D);

t=0:0.001:10;

u=10*rand(1, length(t));

Y_out=lsim(sys, u, t);

plot(t, Y_out(:,6),

'r'

,

'LineWidth'

,2)

title(

'Wymuszenie szumem'

);

xlabel(

'Czas [s]'

)

grid

on

figure

Y_out=impulse(sys,t);

plot(t, Y_out(:,6),

'r'

,

'LineWidth'

,2)

title(

'Wymuszenie impulsem'

);

xlabel(

'Czas [s]'

)

grid

on

Efekt działania skryptu:
Wymuszenie układu impulsem – odpowiedź masy 6


background image

Wymuszenie układu szumem – odpowiedź masy 6

6. Identyfikacja parametryczna układu

Identyfikacje parametryczną przeprowadzam z wykorzystaniem modeli
ARMAX i ARX.
Skrypt w Matlabie:

sys=ss(A, B, C, D);

%wyznaczenie wsp. tlumienia i czest. drgan

[Wn,Z] = damp(sys);

t = 0:0.01:50;

u = 0.5*rand(1,length(t));

Y_out = lsim(sys,u,t);

%zbudowanie modelu ARMAX

model_armax = armax([Y_out(:,6) u'],[24 24 24 0]);

model_z = zpk(model_armax);

%wyznaczenie czest. drgan własnych i wsp. tlum.

%na podstawie modelu

disp(

'Model ARMAX'

)

[Wn_es, Z_es] = damp(model_z);

disp(

'Czestotliwosci drgan wlasnych'

)

disp(

'wyznaczone: wyestymowane:'

)

[Wn(:)/2/pi Wn_es(2:13)/2/pi*100]

disp(

'Wspolczynniki tłumienia'

)

disp(

'wyznaczone: wyestymowane:'

)

[Z(:) Z_es(2:13)]

%zbudowanie modelu ARX

model_arx=arx([Y_out(:,6) u'],[24 24 0]);

background image

model_z=zpk(model_arx);

[Wn_es, Z_es] = damp(model_z);

disp(

'Model ARX'

)

[Wn_es, Z_es] = damp(model_z);

disp(

'Czestotliwosci drgan wlasnych'

)

disp(

'wyznaczone: wyestymowane:'

)

[Wn(:)/2/pi Wn_es(2:13)/2/pi*100]

disp(

'Wspolczynniki tłumienia'

)

disp(

'wyznaczone: wyestymowane:'

)

[Z(:) Z_es(2:13)]




Zestawienie wyników:

Parametry wyznaczone

Parametry estymowane

modelem ARX

Parametry estymowane

modelem ARMAX

Częstotliwość

drgań własnych

Tłumienia

modalne

Częstotliwość

drgań

własnych

Tłumienia

modalne

Częstotliwość

drgań

własnych

Tłumienia

modalne

7.3003

0.0085

7.3003

0.0085

7.3003

0.0085

7.3003

0.0085

7.3003

0.0085

7.3003

0.0085

10.7026

0.0278

10.7027

0.0278

10.7030

0.0278

10.7026

0.0278

10.7027

0.0278

10.7030

0.0278

13.7330

0.0128

13.7334

0.0128

13.7316

0.0130

13.7330

0.0128

13.7334

0.0128

13.7316

0.0130

13.9259

0.0292

13.9250

0.0294

13.9236

0.0281

13.9259

0.0292

13.9250

0.0294

13.9236

0.0281

16.9611

0.0296

16.9611

0.0296

16.9613

0.0296

16.9611

0.0296

16.9611

0.0296

16.9613

0.0296

20.1077

0.0305

20.1171

0.0304

20.1077

0.0309

20.1077

0.0305

20.1171

0.0304

20.1077

0.0309








background image

7. Identyfikacja nieparametryczna

Skrypt:

sys=ss(A, B, C, D);

Fs=1000;

t = 0:1/Fs:10;

u = 1*rand(1,length(t));

Y_out1 = lsim(sys,u,t);

xn1=Y_out1(:,6);

Y_out=impulse(sys,t);

xn=Y_out(:,6);

figure

%periodogram

ilosc=8192;

Pxx=(abs(fft(xn, ilosc)).^2)/ilosc;

plot((0:(ilosc-1))/ilosc*Fs,10*log10(Pxx),

'black'

)

xlabel(

'Czestotliwosc [Hz]'

)

ylabel(

'Widmo mocy [dB]'

)

title(

'Periodogram'

)

xlim([0 30])

grid

on

figure

w1 = flattopwin(length(xn));

y = fft(xn.*w1);

f = (0:length(y)-1)'*Fs/length(y);

ind=find(f<=Fs/2);

f2=f(ind); am2 = 20*log10(abs(y(ind)/norm(w1)));

plot(f2,am2)

xlim([0 30])

grid

on

figure

%funkcja przejścia

nfft=ilosc;

window=hanning(nfft+1);

tfestimate(u,xn1,window,2048,nfft,Fs);

xlim([0 0.025])

figure

%funkcja koherencji

window=hanning(4096);

mscohere(xn1,u,window,3000,4096, Fs);

xlim([0 0.025])

figure

%gętość widmowa mocy

pwelch(xn, window, 2048, 4096, Fs)

xlim([0 0.05])

background image

Wykresy:
Periodogram


Periodogram uzyskany przy Fs=100, czasie symulacji t=0:1/Fs:400 i ilości próbek
32768

background image

Periodogram zmodyfikowany oknem flattopwin


Funkcja przejścia


background image


Funkcja koherencji


Funkcja gęstości widmowej mocy


background image

8. Identyfikacja układu przy pomocy transformaty falkowej

sys=ss(A, B, C, D);

Fs=200;

t = 0:1/Fs:20;

u = 10*rand(1,length(t));

%Y_out = lsim(sys,u,t);

Y_out=impulse(sys,t);

xn=Y_out(:,5)';

falka=

'cmor40-4'

;

s1=0;

F_max=Fs/2;

F_max_zadana=30;

F_min_zadana=5;

%tworzenie wektora skali

while

s1<=F_max_zadana

s1=scal2frq(F_max,falka,1/Fs);

F_max=F_max-1;

end

s1=F_min_zadana+1;

F_min=1;

while

s1>=F_min_zadana

s1=scal2frq(F_min,falka,1/Fs);

F_min=F_min+1;

end

wektor_skali=F_max:1:F_min;

figure

funkcja = cwt(xn ,wektor_skali, falka,

'plot'

) ;

figure

surf(abs(funkcja)) ;

shading

interp

view([0 90])

ylabel(

'Parametry skali'

,

'FontSize'

,12)

xlabel(

'Próbki skali'

,

'FontSize'

,12)

title(

'Skalogram zlozonego sygnalu'

)

figure

rozmiar_f=size(funkcja);

time = repmat(t,rozmiar_f(1,1),1) ;

fr = scal2frq(wektor_skali,falka,1/Fs);

freq = repmat(fr,rozmiar_f(1,2),1);

surf(time, freq', abs(funkcja)) ;

shading

interp

;

view([90 0]) ;

grid

on

title(

'Skalogram zlozonego sygnalu po przeskalowaniu'

)

ylabel(

'Czestotliwosc [Hz]'

,

'FontSize'

,12)

xlabel(

'Czas'

,

'FontSize'

,12)

figure

l=log(abs(funkcja(86,:)));

background image

plot(t,l)

title(

'wykres logarytmu obwiedni dla 7Hz'

)

p1 = polyfit(t(1,[700:3500]),l(1,[700:3500]),1);

v=p1(1)*t+p1(2);

hold

on

plot(t, v,

'--r'

)

grid

on

p1(1)/(2*pi*7)


Na skalogramie widać częstotliwości drgań własnych układu. Najbardziej widoczne
są częstotliwość 10.7 Hz, 13.73 Hz i 13.92 Hz. Dominują również na wykresie
gęstości widmowej mocy. Grzbiety częstotliwości 10.7 Hz i 16.96 Hz są już mniej
widoczne podobnie jak na wykresie gęstości widmowej mocy. Częstotliwość 20.1
Hz na skalogramie jest niewidoczna.






background image

Skalogram nieprzeskalowany


Wykres logarytmu obwiedni dla częstotliwości 7.3 Hz


background image

Na podstawie współczynnika nachylenia prostej można wyznaczyć współczynnik
tłumienia.
ans =

-0.0088

Wyznaczony współczynnik nie różni się od rzeczywistego.

9. Podsumowanie

Najlepsze wyniki dała analiza parametryczna, są one najbardziej zbliżone do
wyznaczonych analitycznie. Analiza parametryczna nie daje jednak informacji na
temat mocy każdej częstotliwości. Taką informacje daje analiza nieparametryczna
– wykres gęstości widmowej mocy. Analiza nieparametryczna nie pozwala na
wyznaczenie tłumień modalnych. Najwięcej informacji na temat układu daje
transformata falkowa. Na skalogramie widać częstotliwości drgań własnych
układu, można także ocenić ich moc na podstawie wysokości grzbietu. Ponadto
można zobaczyć również przebieg częstotliwości w czasie.




Wyszukiwarka

Podobne podstrony:
Metody organizacji i zarządzania, BCG, Analiza i projektowanie portfela produkcji za pomocą macierzy
lab, MetNum2 lab, Laboratorium: ANALIZA I PROJEKTOWANIE KOMPUTEROWE UKŁADÓW ELEKTRONICZNYCH
Analiza i projektowanie strukturalne Wydanie II anstr2
Analiza i projektowanie struktur organizacyjnych, logistyka, Zarządzanie, prezentacje zarządzanie
analiza projektu spalania biomasy
Analiza, projekt i częściowa implementacja systemu wspomagającego firmę agroturystyczną
Analiza projektu inwestycyjnego, WSB Dąbr.Górnicza
Analiza i projektowanie systemow informatycznych S Wrycza 4CT
IOpr, wykład 3, analiza i projekt(1)
Analiza i projektowanie struktur organizacyjnych 2
APK 5 - Modelowanie i analiza generatora samowzbudnego Generator Clappa, Laboratorium z Analizy i Pr
NIE OK Przykłady analiza i projektowanie

więcej podobnych podstron