Vai all'indice generale

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{.}\)

Figura 4.4.1.

La “lettura” delle condizioni di vincolo assegnate fornisce

\begin{gather*} \vec{u}_A = \vec0\,,\\ \vec{u}_B \cdot \vec{n}_B = 0\,, \end{gather*}

dove \(\vec{n}_B = \transp{[0 \; 1]}\text{.}\) Le condizioni sono riscrivibili mediante le seguenti 3 equazioni scalari (\(m=3\)):

\begin{gather*} u_{1A} = 0\,,\\ u_{2A} = 0\,,\\ u_{2B} = 0\,. \end{gather*}

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:

Figura 4.4.2.
Utilizzando l'equazione (4.1.5) le condizioni di vincolo possono essere espresse rispetto alle coordinate lagrangiane scelte

\begin{gather*} u_{1A} = 0\,,\\ u_{2A} = 0\,,\\ u_{2A} + \varphi_{A} l = 0\,. \end{gather*}

Condizioni che, espresse in forma matriciale, forniscono:

\begin{equation*} \underbrace{\left[\begin{array}{ccc} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 1 & l \end{array}\right]}_{\mat{A}} \underbrace{\left[\begin{array}{c} u_{1A} \\ u_{2A} \\ \varphi_{A} \end{array}\right]}_{\vec{q}} = \underbrace{\left[\begin{array}{c} 0 \\ 0 \\ 0 \end{array}\right]}_{\vec{d}}. \end{equation*}

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)
Listato 4.4.3.

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)
Listato 4.4.4.

Si supponga di modificare il problema assegnato nel modo seguente.

Figura 4.4.5.
In tal caso occorre modificare semplicemente la condizione vincolare per il carrello posto nel punto \(B\) ovvero

\begin{equation*} u_{2B} = l/10\,. \end{equation*}

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

\begin{equation*} \underbrace{\left[\begin{array}{ccc} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 1 & l \end{array}\right]}_{\mat{A}} \underbrace{\left[\begin{array}{c} u_{1A} \\ u_{2A} \\ \varphi_{A} \end{array}\right]}_{\vec{q}} = \underbrace{\left[\begin{array}{c} 0 \\ 0 \\ l/10 \end{array}\right]}_{\vec{d}}. \end{equation*}

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)
Listato 4.4.6.

Sottoparagrafo 4.4.2 trave ad L "appoggiata"

Si effettui l'analisi cinematica del seguente sistema.

Figura 4.4.7.

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
Listato 4.4.8.

Sottoparagrafo 4.4.3 arco a tre cerniere

Si effettui l'analisi cinematica del seguente sistema.

Figura 4.4.9.

La “lettura” delle condizioni di vincolo assegnate fornisce

\begin{gather*} \vec{u}_A = \vec{0}\,,\\ \vec{u}_B = \vec{u}_{B'}\,,\\ \vec{u}_C = \vec0\,. \end{gather*}

In termini di singole equazioni scalari si ottiene (\(m=6\)):

\begin{gather*} u_{1A} = 0\,,\\ u_{2A} = 0\,,\\ u_{1B} = u_{1B'}\,,\\ u_{2B} = u_{2B'}\,,\\ u_{1C} = 0\,,\\ u_{2C} = 0\,. \end{gather*}

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:

Figura 4.4.10.
Utilizzando l'equazione (4.1.5) le condizioni di vincolo possono essere espresse rispetto alle coordinate lagrangiane scelte, in particolare:

\begin{gather*} u_{1A} = 0\,,\\ u_{2A} = 0\,,\\ u_{1A} = u_{1B'}\,,\\ u_{2A} + \varphi_{A} 2l = u_{2B'}\,,\\ u_{1B'} + \varphi_{B'} l = 0\,,\\ u_{2B'} + \varphi_{B'} 2l = 0\,. \end{gather*}

In forma matriciale si ottiene

\begin{equation*} \underbrace{\left[\begin{array}{cccccc} 1 & 0 & 0 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 & 0 & 0\\ 1 & 0 & 0 & -1 & 0 & 0\\ 0 & 1 & 2l & 0 & -1 & 0\\ 0 & 0 & 0 & 1 & 0 & l\\ 0 & 0 & 0 & 0 & 1 & 2l \end{array}\right]}_{\mat{A}} \underbrace{\left[\begin{array}{c} u_{1A} \\ u_{2A} \\ \varphi_{A} \\ u_{1B'} \\ u_{2B'} \\ \varphi_{B'} \end{array}\right]}_{\vec{q}} = \underbrace{\left[\begin{array}{c} 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \end{array}\right]}_{\vec{d}}. \end{equation*}

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)
Listato 4.4.11.

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)
Listato 4.4.12.

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:

Figura 4.4.13.
In tal caso la forma matriciale delle condizioni vincolari fornisce

\begin{equation*} \underbrace{\left[\begin{array}{cccccc} 1 & 0 & 0 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 & 0 & 0\\ 1 & 0 & 0 & -1 & 0 & 0\\ 0 & 1 & 2l & 0 & -1 & 0\\ 0 & 0 & 0 & 1 & 0 & l\\ 0 & 0 & 0 & 0 & 1 & 2l \end{array}\right]}_{\mat{A}} \underbrace{\left[\begin{array}{c} u_{1A} \\ u_{2A} \\ \varphi_{A} \\ u_{1B'} \\ u_{2B'} \\ \varphi_{B'} \end{array}\right]}_{\vec{q}} = \underbrace{\left[\begin{array}{c} l/4 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \end{array}\right]}_{\vec{d}}\,. \end{equation*}

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)
Listato 4.4.14.

La rappresentazione grafica del campo di spostamento si ottiene valutando lo spostamento dei punti posti alle estremità dei tratti rettilinei ottenendo quanto segue.

Figura 4.4.15.

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])
Listato 4.4.16.

Sottoparagrafo 4.4.4 esempio di schema labile

Si effettui l'analisi cinematica del seguente sistema.

Figura 4.4.17.

Le condizioni di vincolo assegnate sono esprimibili nel modo seguente

\begin{gather*} \vec{u}_A = \vec{0}\,,\\ \vec{u}_C = \vec{u}_{C'}\,, \end{gather*}

Le equazioni scalari deducibili sono (\(m=5\)):

\begin{gather*} u_{1A} = 0\,,\\ u_{2A} = 0\,,\\ u_{1C} = u_{1C'}\,,\\ u_{2C} = u_{2C'}\,,\\ u_{2E} = 0\,. \end{gather*}

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\)):

Figura 4.4.18.
Utilizzando sempre il modello di moto piano rappresentato dall'equazione (4.1.5) le condizioni di vincolo possono essere espresse rispetto alle coordinate lagrangiane scelte ottenendo quanto segue,

\begin{gather*} u_{1B} + \varphi_{B} 2l = 0\,,\\ u_{2B} = 0\,,\\ u_{1B} = u_{1D}\,,\\ u_{2B} + \varphi_{B} 2l = u_{2D}-\varphi_{D} l\,,\\ u_{2D} = 0\,. \end{gather*}

La scrittura matriciale del sistema di equazioni di vincolo fornisce

\begin{equation*} \underbrace{\left[\begin{array}{cccccc} 1 & 0 & 2l & 0 & 0 & 0\\ 0 & 1 & 0 & 0 & 0 & 0\\ 1 & 0 & 0 & -1 & 0 & 0\\ 0 & 1 & 2l & 0 & -1 & l\\ 0 & 0 & 0 & 0 & 1 & 0 \end{array}\right]}_{\mat{A}} \underbrace{\left[\begin{array}{c} u_{1B} \\ u_{2B} \\ \varphi_{B} \\ u_{1D} \\ u_{2D} \\ \varphi_{D} \end{array}\right]}_{\vec{q}} = \underbrace{\left[\begin{array}{c} 0 \\ 0 \\ 0 \\ 0 \\ 0 \end{array}\right]}_{\vec{d}}. \end{equation*}

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)
Listato 4.4.19.

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

\begin{equation*} \left[\begin{array}{ccccc} 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 \end{array}\right] \left[\begin{array}{c} u_{1B} \\ u_{2B} \\ u_{1D} \\ u_{2D} \\ \varphi_{D} \end{array}\right] = \left[\begin{array}{c} -2l\,\varphi_{B} \\ 0 \\ 0 \\ -2l\,\varphi_{B} \\ 0 \end{array}\right]. \end{equation*}

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)
Listato 4.4.20.

Le infinite soluzioni calcolate sono

\begin{gather*} u_{1B} = -\varphi_{B} 2l \,,\\ u_{2B} = 0\,,\\ u_{1D} = -\varphi_{B} 2l\,,\\ u_{2D} = 0\,,\\ \varphi_{D} = - 2\varphi_{B} \,. \end{gather*}

Una di queste è rappresentabile come segue

Figura 4.4.21.

Sottoparagrafo 4.4.5 esercizi proposti

Si svolgano gli esercizi precedenti modificando opportunamente il codice MATLAB® utilizzato per l'esempio riportato nella Sottoparagrafo 4.4.2.