Sei sulla pagina 1di 5

III Esercitazione di Meccanica Applicata alle

Macchine
Salvatori Marco matr. 0105869

2009/2010

1 Soluzione analitica
1.1 Equazioni del moto

Le equazioni del moto per il sistema sopra illustrato sono:


(
mẍ + ka (x − aϑ) + kb (x + bϑ) = 0
IG ϑ̈ − ka (x − aϑ) a + kb (x + bϑ) b = 0
Per queste equazioni si è assunto che l'asta abbia massa m e momento di inerzia
baricentrale IG . Ipotizzando che non ci siano spostamenti orizzontali la con-
gurazione del sistema viene determinata dalle variabili x e J, rispettivamente
distanza baricentrale dal telaio e rotazione assoluta dell'asta. Inoltre si ipotizza
che la forza peso sia trascurabile e che si abbiano piccole rotazioni.

1
1.2 Diagonalizzazione delle matrici M e K

Per giungere alla soluzione analitica di un sistema a 2 gradi di liberta è necessario


disaccoppiare le equazioni del moto. Per fare ciò è necessario diagonalizzare le
matrici della massa M e delle rigidezze K, le quali risultano essere, riscrivendo
il sistema in forma matriciale, pari a :
     
m 0 ẍ ka + kb −ka a + kb b x
+ ={0}
0 IG ϑ̈ −ka a + kb b ka a2 + kb b2 ϑ
[M ]{p̈} + [K] {p}={0}
Per diagonalizzare le matrici è necessario trovare la matrice X composta dagli
autovettori X1 e X2 che si trovano dal sistema :
(
(ka + kb − ω 2 m)X1 + (−ka a + kb b)X2 = 0
(−ka a + kb b)X1 + (ka a2 + kb b2 − ω 2 IG )X2 = 0
che si ha impostando una soluzione delle equazioni del moto del tipo pj =
Xj sin(ωt − φ) e sfruttando la relazione {p̈} = −ω 2 {p} .
In forma più classica signica risolvere il problema agli autovettori del sistema:
A − Iω 2 {X} = {0};
 

dove [A] = [M ]−1 [K] e ω 2 sono gli autovalori. La radice quadra di questi rappre-
senta le pulsazioni del sistema e ad ognuno di queste è associato un autovettore
che rappresenta i modi di vibrare del sistema.
n o
(1) (1)
ω1 → X (1) = X1 , X2
n o
(2) (2)
ω2 → X (2) = X1 , X2

Trovata la matrice X è possibile diagonalizzare M e K sfruttando la loro sim-


metria e la condizione di ortogonalità degli autovettori da cui ne deriva che:
[X]T [M ] [X] = [Md ]
T
[X] [K] [X] = [Kd ]

1.3 Disaccoppiamento delle equazioni del moto

A questo punto della trattazione è necessario introdurre il vettore {q}tale che


{q} =[X]−1 {p}; {q̈}= [X]−1 {p̈} .
Da cui risulta il sistema trasformato:
[Md ]{q̈} + [Kd ] {q}={0}
Risolvo le equazioni dierenziali impostando delle condizioni iniziali e trovo il
vettore {q} che successivamente ritrasformo in {p} .

2
1.4 Listato del programma

Il procedimento sopra illustrato viene svolto dal programma il cui listato è di


seguito riportato.
ka= 2000; kb=2400; m=9; Ig= 1.6; a= 0.3; b=0.9;
K=[4400 1560; 1560 2124];
M=[9 0;0 1.6];
[X, w]= eig(K, M);
Md= (X')*M*X;
Kd= (X')*K*X;
syms x theta xp thetap xpp thetapp t
q= vpa(inv(X)*[x;theta]);
qp= vpa(inv(X)*[xp;thetap]);
qpp= vpa(inv(X)*[xpp;thetapp]);
S=vpa( Md*qpp+Kd*q);
%...condizioni inizilai...%
q0=subs(q,{x,theta},{0.3,pi/18});
qp0=subs(qp,{xp,thetap},{10,5});
%...risolvo le equazioni dierenziali ed ho che ...%
q0=q0';
w1=sqrt(w(1,1)); w2=sqrt(w(2,2)); A1=sqrt((q0(1).^2)+(qp0(1)/w1).^2);
A2=sqrt((q0(2).^2)+(qp0(2)/w2).^2);
1=atan2(-q0(1),(qp0(1)/w1));
2=atan2(-q0(2),(qp0(2)/w2));
q1= vpa(A1*sin(w1*t-1));
q2= vpa(A2*sin(w2*t-2)); pos= X*[q1;q2];
pos= pos';
x=subs(pos(1),{t},{0:5/1000:5});
theta=subs(pos(2),{t},{0:5/1000:5});

3
2 Soluzione per integrazione numerica
L'integrazione numerica permette di approssimare, più o meno bene, una derivata
alla relativa funzione. Il metodo usato in questa esercitazione è quello di Runge
del secondo ordine, il quale avrà un'approssimazione del secondo ordine. Questo
metodo é stato sviluppato a partire dal metodo di Eulero con il quale si ap-
prossima una curva ad una serie discreta di tratti rettilinei. Poichè questo sis-
tema risulta essere instabile dato che l'errore si accentua continuando l'integrazione
,è preferibile usare il sopracitato metodo di Runge. Per applicarlo è necessario
svolgerlo con un calcolatore , usando Matlab ho creato un m.le in cui ho im-
plementato i passaggi necessari all'integrazione numerica, dopodichè ho creato
la funzione da integrare. Infatti a partire dalle equazioni del moto è necessario
creare un vettore ż imponendo che:
ẋ = ż1 ; ϑ̇ = ż2 ;
       

 x   z1   ẋ   z˙1 
 ϑ       
 
z2 ϑ̇ ż2
    
z= = ; ż = =

 ẋ   z3   ẍ   ż3 
     
 
ϑ̇ z4 ϑ̈ ż4
     

Posto ciò è possibile riscrivere le equazioni del moto in forma matriciale come:
0 0 1 0
 
0 0 0 1 
0  {z}= {0}

{ż} +  ka +kb −ka a+kb b
0

m m

−ka a+kb b ka a2 +kb b2
IG IG 0 0
Successivamente ho richiamato la funzione impostando i valori iniziali e il passo
di integrazione.
Di seguito sono riportati i listati delle implementazioni e i risultati numerici
diagrammati in funzione del tempo. In ne ho usato la libreria specica ODE45
per evidenziare le dierenze nei risultati nali.
function [ t,z ] = metodorunge(zp,ti,tf,zi,p)
for i=2:p
t(1)=ti;
z(1,:)=zi;
deltat=(tf-ti)/p;
t(i)=deltat*(i-1)+ti;
zp0=feval(zp,t(i-1),z(i-1,:));
zph=feval(zp , t(i-1)+deltat/2 , z(i-1,:)+zp0*deltat/2);
z(i,:)=z(i-1,:)+deltat*zph;
end;

4
function zpunto= f(t,z)
m=9; Ig=1.6; ka=2000; kb=2400; a=0.3; b=0.9;
zpunto(1)=z(3);
zpunto(2)=z(4);
zpunto(3)=((-kb-ka)/m)*z(1) +((ka*a-kb*b)/m)*z(2);
zpunto(4)=((ka*a-kb*b)/Ig)*z(1) +((-ka*(a.^2)-kb*(b.^2))/Ig)*z(2);
%...per runge...%
[t,z1]=metodorunge('f',0,5,[0.3,pi/18,10,5],1000);
%....per ode45...%
[t,z2]=ode45('f',[0,5],[0.3,pi/18,10,5]);