10 Temmuz 2017 Pazartesi

Titreşim Hareketi Yapan Zeminde Salınım Problemi


B noktasından, A hareket eden parçaya, serbestçe dönebilecek şekilde bağlanmış BC çubuğu salınım hareketi yapması amacıyla serbest bırakılıyor. Ayrıca O etrafında sabit açısal hız yapan disk ile A parçası titreşim hareketi yapmaktadır. Bu mekanizma ile BC çubuğunun hareketi incelenmek isteniyor.
Disk için herhangi bir moment sıkıntısı olmadığı varsayılıp B noktasının hareketi şu şekilde kabul edilsin:
BC çubuğunun serbest cisim diyagramı:
Denklemleri elde edilir. Θ ve türevleri tek bir değişken olarak sayılırsa N_x, N_y, ag_x, ag_y ve theta olmak üzere toplam 5 bilinmeyen ve 3 denklem vardır. 2 denklemi ivme analizi ile çıkartalım.
İvme Analizi:
B noktasının hareketi zamana bağlı olarak verildiğinden, ivmesi türetilerek bulunabilir.
III numaralı denklemi, ivme analizi sonucu bulduğumuz vektörel eşitlikte yerine yazarsak:
Ve böylece:
5. denklemi de elde ettik. Birbirine lineer bağlı olmayan, 5 bilinmeyenli lineer denklem sisteminin çözümü vardır ve tektir. [III] numaralı denklemdeki N_x ve N_y bilinmeyenlerini [I] ve [II] yi kullanarak yok edersek:
Ve şimdi de [IV] ve [V] denklemlerini kullanarak a_g bilinmeyenlerini yok edersek:
Theta’nın diferansiyel denklemini elde ederiz. Sarı ile işaretli kısımlar ters işlem konumunda olup birbirini yok edecektir.
Elde edilir. Dikkat edilirse, B noktasının ivmesi 0 olduğunda paydaki cos fonksiyonunun katsayısı 0 olacaktı ve o haliyle normal salınım denklemi olacaktı.
Yazılırsa:
En sade haliyle elde edilir.
Şeklinde olan denklemi, başlangıç koşulu, t=0 için, theta=0, omega=0 olacak şekilde düzeltilmiş euler metoduyla sayısal olarak çözelim.
Seçtiğim başlangıç koşulu dikkat edilirse çubuğun durağan halde bırakılmasıdır. A parçasının titreşimi ile salınması beklenen bir durumdur.
Sayısal olarak çözeceğim için l, A, w değerlerini belirlemeliyim.
L = 0.4 , A = 0.05 seçilip w’ye bağlılığı incelensin. Normal salınım için:
Dir. Bu değerin başına bir k sabiti koyarak referansı sağlayalım. Diferansiyel denklemin çözümü için kullanacağım dedd() fonksiyonum:
function [ x, y ] = dedd(fun,h,n,x0,y0,dy0)
x = zeros([1 n]); x(1) = x0;
y = zeros([1 n]); y(1) = y0;
u = zeros([1 n]); u(1) = dy0;
for i = 1:n-1;
    x1 = x(i)+h;
    du0 = fun(u(i), y(i), x(i));
    u1p = u(i)+h*du0;
    y1c = y(i)+h*(u(i)+u1p)/2;
    u1c = u(i)+h*(du0+fun(u1p, y1c, x1))/2;
   
    x(i+1) = x1;
    y(i+1) = y1c;
    u(i+1) = u1c;
end
clear x1 y1p du0 u1p y1c u1c i;
end
Şimdi de denklemi çözelim:
clear all;
%% Düzeltilmiş Euler için
h = 0.01;   %sonlu parçaların uzunluğu
x0 = 0;     %başlangıç zamanı
xN = 8;     %t_son
n = round((xN - x0)/h); %parça sayısı
%%

%% Değişen k değerlerine karşılık durum için:
k = [ 0.5 1 2 ];
step = length(k);
%%

%% Her bir k için sonuç hesaplanacak
for aa=1:step;
    %Dif denklemin çözümü
    g = 9.81; l=0.4;
    w = sqrt(3*g/(2*l));
        %dif denklem:
    F = @(u,y,x)-3/2*(g*sin(y)-0.05*w^2*sin(k(aa)*w*x).*cos(y))/l;
    [x, y] = dedd(F, h, n, x0, 0, 0);
   
    % Çözümün çizdirilmesi
    subplot(step,1,aa);
    plot(x, y); xlabel('Zaman'); ylabel('Theta');
    title(['W = ' num2str(k(aa)) 'w']);
    % Sınırların aynı olmasını istiyorum:
    ylim([-2 2]);
end
%%

Sonuç:
Şimdi ise üç k değeri için değil, birçok k değeri için azami genliğin ne olduğunu bulalım ve grafik haline getirelim. Bu genlik, açının genliği olacak. K ise, A parçasının yaptığı titreşim hareketinin frekansıdır.
clear all;
%% Düzeltilmiş Euler için
h = 0.01;   %sonlu parçaların uzunluğu
x0 = 0;     %başlangıç zamanı
xN = 8;     %t_son
n = round((xN - x0)/h); %parça sayısı
%%

%% Değişen k değerlerine karşılık durum için:
k = linspace(0.01, 10);
step = length(k);
genlik = zeros([1 step]);
%%

%% Her bir k için sonuç hesaplanacak
for aa=1:step;
    %Dif denklemin çözümü
    g = 9.81; l=0.4;
    w = sqrt(3*g/(2*l));
        %dif denklem:
    F = @(u,y,x)-3/2*(g*sin(y)-0.05*w^2*sin(k(aa)*w*x).*cos(y))/l;
    [x, y] = dedd(F, h, n, x0, 0, 0);
    genlik(aa) = max(y);
end
%%
plot(k, genlik)
title('Titreşim ile Azami Genlik İlişkisi');
xlabel('k [x w_0]');
ylabel('Azami genlik [rad]');

Böylece elde edeceğim grafik:
Bulunmuş olur. 

Hiç yorum yok:

Yorum Gönder