Paragrafo 4.4 applicazione dell'analisi cinematica ai sistemi di corpi rigidi
Sottoparagrafo 4.4.1 trave appoggiata
Si effettui l'analisi cinematica della seguente trave di lunghezza pari a \(l\text{.}\)
La “lettura” delle condizioni di vincolo assegnate fornisce
dove \(\vec{n}_B = \transp{[0 \; 1]}\text{.}\) Le condizioni sono riscrivibili mediante le seguenti 3 equazioni scalari (\(m=3\)):
Per l'unico corpo rigido in esame si scelga come polo il punto \(A\text{,}\) pertanto i 3 parametri lagrangiani (\(n=3\)) utilizzabili per la descrizione cinematica del sistema sono:
Condizioni che, espresse in forma matriciale, forniscono:
Prima di procedere con la soluzione del sistema è possibile classificare il sistema calcolando il rango della matrice cinematica mediante le seguenti istruzioni MATLAB®. syms l;
A = [1 0 0; 0 1 0; 0 1 l];
rank(A)
Dal momento che il \(\textrm{min}(m,n) = 3 == \textrm{rango}\mat{A}\) e \(n == m\) allora il sistema è cinematicamente determinato. La soluzione del sistema lineare fornisce infine i valori assunti dai parametri lagrangiani \(u_{1A}\text{,}\) \(u_{2A}\) e \(\varphi_{A}\) i quali in questo caso sono identicamente nulli.
syms l;
A = [1 0 0; 0 1 0; 0 1 l];
b = [0; 0; 0];
linsolve(A,b)
Si supponga di modificare il problema assegnato nel modo seguente.
Pertanto sul sistema di equazioni da analizzare l'unico effetto è costituito solo dalla modifica del vettore dei termini noti e non si ha nessun effetto sulla classificazione del sistema che resta sempre cinematicamente determinato (la matrice \(A\) non è cambiata!). Pertanto il sistema di equazioni diventa
La soluzione del sistema lineare fornisce i nuovi valori assunti dai parametri lagrangiani \(u_{1A}\text{,}\) \(u_{2A}\) e \(\varphi_{A}\text{.}\)
Le istruzioni MATLAB® utilizzabili in questo caso sono le seguenti. syms l;
A = [1 0 0; 0 1 0; 0 1 l];
b = [0; 0; l/10];
linsolve(A,b)
Sottoparagrafo 4.4.2 trave ad L "appoggiata"
Si effettui l'analisi cinematica del seguente sistema.
Lo schema proposto non presenta nessuna novità particolare rispetto allo schema precedente, pertanto si presenta una sua soluzione sulla base delle seguenti istruzioni MATLAB®.
% campo di spostamento generico nel piano
rigidDispl = ...
@(u0, phi0, X0, X)...
[u0(1)-phi0*(X(2)-X0(2));...
u0(2)+phi0*(X(1)-X0(1))];
% descrizione geometrica della trave
syms l;
A = [0; 0];
B = [l; 0];
C = [l; l/2];
% campo di spostamento assumendo come polo il punto A
POLO = A;
syms phiA;
phi0 = phiA;
u0 = sym('uA', [2 1]);
uA = rigidDispl(u0, phi0, POLO, A);
uB = rigidDispl(u0, phi0, POLO, B);
uC = rigidDispl(u0, phi0, POLO, C);
% equazioni di vincolo
eqns = [
uA(2) == 0,
uB(2) == 0,
uC(1) == 0
];
% matrice cinematica e vettore degli spostamenti assegnati
[A,d] = equationsToMatrix(eqns, [uA(1), uA(2), phiA]);
% gradi di libertà, n
% gradi di vincolo, m
[m,n] = size(A);
% calcolo del rango di A
r = rank(A);
% se il sistema è cinematicamente determinato si calcola la soluzione
if and(r == min(m,n), m == n)
x = linsolve(A,d);
end
Sottoparagrafo 4.4.3 arco a tre cerniere
Si effettui l'analisi cinematica del seguente sistema.
La “lettura” delle condizioni di vincolo assegnate fornisce
In termini di singole equazioni scalari si ottiene (\(m=6\)):
I corpi rigidi in esame sono due: per il corpo \(AB\) si sceglie come polo il punto \(A\) e per il secondo corpo si sceglie il punto \(B'\text{.}\) Pertanto i 6 parametri lagrangiani (\(n=6\)) utilizzabili per la descrizione cinematica del sistema sono:
In forma matriciale si ottiene
Al fine di classificare il sistema si calcola il rango della matrice cinematica. syms l;
A = [
1 0 0 0 0 0; ...
0 1 0 0 0 0; ...
1 0 0 -1 0 0; ...
0 1 2*l 0 -1 0; ...
0 0 0 1 0 l; ...
0 0 0 0 1 2*l ...
];
rank(A)
Dal momento che il \(\textrm{min}(m,n) = 6 == \textrm{rango}\mat{A}\) e \(n == m\) allora il sistema è cinematicamente determinato. La soluzione del sistema lineare fornisce i valori assunti dai parametri lagrangiani \(u_{1A}\text{,}\) \(u_{2A}\text{,}\) \(\varphi_{A}\text{,}\) \(u_{1B'}\text{,}\) \(u_{2B'}\text{,}\) \(\varphi_{B'}\text{.}\)
syms l;
A = [
1 0 0 0 0 0; ...
0 1 0 0 0 0; ...
1 0 0 -1 0 0; ...
0 1 2*l 0 -1 0; ...
0 0 0 1 0 l; ...
0 0 0 0 1 2*l ...
];
b = [0; 0; 0; 0; 0; 0];
linsolve(A,b)
Anche in questo caso la soluzione di un sistema cinematicamente determinato rispetto ad un vettore dei termini noti identicamente nullo fornisce ancora la soluzione banale.
Si può ottenere un risultato più interessante assumendo una condizione di spostamento assegnato non nullo su uno o più gradi di vincolo. Ad esempio:
La soluzione può essere calcolata utilizzando le seguenti istruzioni MATLAB®. syms l;
A = [
1 0 0 0 0 0; ...
0 1 0 0 0 0; ...
1 0 0 -1 0 0; ...
0 1 2*l 0 -1 0; ...
0 0 0 1 0 l; ...
0 0 0 0 1 2*l ...
];
b = [l/4; 0; 0; 0; 0; 0];
linsolve(A,b)
La rappresentazione grafica del campo di spostamento si ottiene valutando lo spostamento dei punti posti alle estremità dei tratti rettilinei ottenendo quanto segue.
Le seguenti istruzioni MATLAB® consentono di ottenere un plottaggio della cinematica sopra illustrata.
% definizione della geometria
L = 100;
A = [0; 0];
B = [2*L; 0];
C = [2*L; -L];
D = [4*L; -L];
beam1 = [A B];
beam2 = [B C D];
% funzione per il calcolo della posizione di punto
rigidT = @(u0, X0, phi0, X) ...
[X(1)+u0(1)-phi0*(X(2)-X0(2)); ...
X(2)+u0(2)+phi0*(X(1)-X0(1))];
% nuova configurazione della prima trave (polo in A)
u0 = [L/4; 0];
phi0 = 1/4;
X0 = A;
TA = rigidT(u0, X0, phi0, A);
TB = rigidT(u0, X0, phi0, B);
beam1T = [TA TB];
% nuova configurazione della seconda trave (polo in D)
u0 = [0; 0];
phi0 = -1/4;
X0 = D;
TC = rigidT(u0, X0, phi0, C);
TD = rigidT(u0, X0, phi0, D);
beam2T = [TB TC TD];
% plottaggio
clf
x = beam1(1,:);
y = beam1(2,:);
line(x,y,'LineWidth',2,'Color','black')
x = beam2(1,:);
y = beam2(2,:);
line(x,y,'LineWidth',2,'Color','black')
x = beam1T(1,:);
y = beam1T(2,:);
line(x,y,'LineWidth',2,'Color','red')
x = beam2T(1,:);
y = beam2T(2,:);
line(x,y,'LineWidth',2,'Color','red')
xlim([0 4*L])
ylim([-L 0.5*L])
pbaspect([2.667 1 1])
Sottoparagrafo 4.4.4 esempio di schema labile
Si effettui l'analisi cinematica del seguente sistema.
Le condizioni di vincolo assegnate sono esprimibili nel modo seguente
Le equazioni scalari deducibili sono (\(m=5\)):
Per i due corpi rigidi in esame si scelgono come poli i punti B e D riferendo quindi la cinematica ai seguenti 6 parametri lagrangiani (\(n=6\)):
La scrittura matriciale del sistema di equazioni di vincolo fornisce
Si può quindi procedere con il calcolo del rango della matrice nel modo seguente. syms l;
A = [
1 0 2*l 0 0 0; ...
0 1 0 0 0 0; ...
1 0 0 -1 0 0; ...
0 1 2*l 0 -1 l; ...
0 0 0 0 1 0; ...
];
rank(A)
In questo caso il \(\textrm{rango}\mat{A} == \textrm{min}(m,n) = 5\) e \(m < n\) pertanto il sistema è labile e caratterizzato da infinite soluzioni. Per descrivere tutte le soluzioni possibili si scelga come parametro la rotazione \(\varphi_{B}\) che viene eliminata dal gruppo delle incognite da calcolare. In tal modo il sistema può essere riscritto come segue
Le seguenti istruzioni MATLAB® consentono di calcolare la soluzione cercata. syms l k;
A = [
1 0 0 0 0; ...
0 1 0 0 0; ...
1 0 -1 0 0; ...
0 1 0 -1 l; ...
0 0 0 1 0; ...
];
b = [-2*l*k; 0; 0; -2*l*k; 0];
linsolve(A,b)
Le infinite soluzioni calcolate sono
Una di queste è rappresentabile come segue