Estratto del documento

Appunti di

Laboratorio Numerico delle Strutture

Antonio Malasomma

Appunti disponibili sulla mia pagina di skuola.net, ti riporto di seguito qualche link:

https://www.skuola.net/universita/appunti/fondamenti-di-tecnica-delle-costruzioni

https://www.skuola.net/universita/appunti/elementi-di-progettazione-geotecnica

https://www.skuola.net/universita/appunti/meccanica-delle-terre-1

https://www.skuola.net/universita/appunti/dinamica-delle-strutture-2

https://www.skuola.net/universita/appunti/cemento-armato-precompresso

https://www.skuola.net/universita/appunti/travi-di-fondazione-e-plinti

https://www.skuola.net/universita/appunti/acciaio-da-carpenteria

https://www.skuola.net/universita/esercitazioni/progetto-di-un-capannone-industriale-

con-carroponte

https://www.skuola.net/universita/appunti/appunti-di-complementi-di-idraulica

https://www.skuola.net/universita/esercitazioni/esercizi-complementi-di-idraulica

https://www.skuola.net/universita/appunti/le-piastre

e tanto altro. Buono studio ;-)

Lezione 17/03/2020

Travatura Reticolare in Matlab

Si faccia riferimento al seguente listato, si parte dalle istruzioni “1” e “2”, ovvero dove sono stati

dati i comandi “clear” che cancella tutte le operazioni presenti in memoria, e “clc” che invece

c’è il vettore contenente le coordinate

cancella lo schermo. Successivamente, all’istruzione “3”

dei nodi della travatura reticolare, che è fatta in questo modo:

Tali coordinate vanno poi moltiplicate per la lunghezza “l” del tratto indicato nella precedente

sta indicato il modulo di elasticità normale del materiale, alla “5” il

figura. All’istruzione “4”

vettore contenente le dimensioni delle sezioni.

Successivamente, con le istruzioni da “7 / 11”, sono stati sistemati i vettori che contengono tutte

ntruss nnodes

), tutti i nodi ( ), la matrice K, la matrice di rotazione W, e la matrice K

le travi ( G

x-y

scritta nel sistema di riferimento globale ( ) poiché è stata ruotata. Successivamente c’è un ciclo

:

che percorre tutte le travi “for”

size(elems)

Con il comando : , è possibile conoscere le dimensioni della matrice denominata

elems

” che è costituita da 3 righe e 4 colonne, come di seguito mostrato:

“ Command Window elems

Digitando nella il comando “ ” si può vedere suddetta matrice.

Questa particolare matrice è stata costruita per poter inserire i dati degli elementi, infatti, per

4 numeri (separati dal punto e virgola e compresi tra parentesi

ogni trave: ne sono tre, ci sono

quadre) che rappresentano rispettivamente: il primo nodo della trave, il secondo nodo della

terzo quale sezione forma la sezione della trave ed il quarto quale materiale forma il

trave, il

materiale della trave:

In questo particolare caso il materiale è uno solo:

Le sezioni sono invece due:

Poiché sono stati utilizzati due profilati metallici differenti per il corrente inferiore e per le due

aste di parete. A questo punto è possibile subito individuare il numero di travi, senza conoscere

esattamente quante ne sono, con il comando: elems

Ovvero si prende come n. travi la dimensione di “ ” ovvero quante sono le righe di questa

nodes

matrice, e come numero di nodi, la prima dimensione della matrice dei nodi “ ”:

nodes

” ha due colonne per ogni riga, ovvero è una 3x2, cioè due componenti

Infatti, la matrice “

per ciascuno dei tre nodi. Riassumendo, si calcolano il numero di travi e di nodi a partire dai

vettori che sono stati inseriti in input. Le successive matrici sono di dimensioni fisse:

In particolare, sono delle 4x4 per ciascuna delle n. travi presenti, ovvero, di ogni matrice ce n’è

n. travi presenti.

una diversa per ciascuna delle

Relativamente alla variazione di riferimento, bisogna introdurre un vettore di rotazione del

sistema (mediante apposite formule), ed una matrice di trasformazione del sistema “A” formata

(sin (cos

) ):

dai termini in e

Questa operazione si effettua quando si vuole passare da una 2x2 ad una 4x4, che si ottiene

perché la matrice degli spostamenti dei nodi della trave “pendolo” in regime estensionale,

presenta come g.d.l. i soli due spostamenti che hanno la stessa direzione dell’asse della trave:

Mentre nel sistema di riferimento assoluto bisogna prendere 4 spostamenti, perché per ogni

nodo ci sono due componenti di spostamento:

Ossia su ogni nodo si possono sempre avere i due spostamenti con le due freccette orizzontali

e verticali.

Facendo l’inversa della precedente relazione, e quindi passando dal sistema di riferimento

globale al sistema di riferimento locale si ottiene la trasformazione di coordinate:

Quindi, si ottiene la matrice di rigidezza della trave in regime estensionale mediante il prodotto

matriciale della matrice per la matrice K, e si ottiene la prima detta matrice di rigidezza

globale. In altre parole, per ogni trave si costruisce una matrice K ed una matrice W nel

KG nel riferimento globale:

riferimento locale, quindi, una matrice

Da qui inizia poi un “ciclo di for” che spazza tutte le travi:

i=1:ntruss

- Per ogni trave:

Costruisci: mats

- Un modulo elastico: da assegnare pari al valore che assume l’elemento del vettore “ ”

terzo numero elems i-esima :

del vettore “ ” per la generica trave “ ”

che corrisponde al

EY=mats(elems(i,3));

= 1

in particolare, quando prende questo valore:

= 2

Quando prende questo valore:

= 3

Quando prende questo valore: sects

- Un’area: da assegnare pari al valore che assume l’elemento del vettore “ ” che

quarto numero elems i-esima :

corrisponde al del vettore “ ” per la generica trave “ ”

Ar=sects(elems(i,4));

= 1 primo valore:

in particolare, quando prende il di

= 2 primo

Quando prende il valore: di

= 3 secondo

Quando prende il valore: di nodi

- Poi si prendono le ordinate dei nodi: ovvero del vettore “ ” si prende quello che in

= 1, = 2 = 3.

elems

“ ” il n.ro 1 per e In altre parole, si effettua una cosiddetta

indirizzamento concatenato.

procedura di

Per comprendere meglio quanto è stato appena fatto, potrebbe essere congeniale

cambiare leggermente il ciclo nel modo seguente:

numero del materiale nmat elems

Ovvero, il “ ”, è il terzo elemento del vettore “ ” (la terza

= 1, … 3. numero della sezione nsez

componente di tale vettore), per E che il “ ” è il

elems

quarto elemento del vettore “ ” (la quarta componente di tale vettore), come prima,

= 1, … 3.

per Poi è possibile scrivere anche:

n1= elems(i,1); n2=

Quindi, il primo nodo “n1” è : invece, il secondo nodo è similmente :

elems(i,2); di conseguenza cambia la scrittura delle coordinate dei nodi evidenziata nella

x1= nodes(n1,1);

figura precedente. La scrittura: suggerisce di prendere la prima

e via dicendo in modo analogo per le restanti coordinate.

coordinata del nodo “n1” sono inserite le coordinate x ed y dei vari nodi della

Ricordando che nel vettore “nodes”

struttura: x y x y x y

- Seguono la lunghezza, ossia la radice quadrata della somma dei quadrati, i seni e coseni

degli angoli, che sono pari alla differenza di coordinate fratto la lunghezza del tratto.

i-esima

- La matrice di rigidezza (estensionale) dell’ asta:

Ossia la matrice 4x4:

� − �

0 0

⎡ ⎤

0 0

⎢ ⎥

0 0

= ⎢ ⎥

0 0

− � �

⎢ ⎥

0 0

⎣ ⎦

0 0

Ci sono due righe nulle poiché corrispondono agli spostamenti perpendicolari all’asse

della trave che sono pari a zero, dato che ci si trova in regime estensionale allora i g.d.l. si

trovano solamente nella direzione della lunghezza della trave.

- La matrice delle rotazioni:

Ossia la matrice 4x4: cos − sin 0 0

sin cos 0 0

= � �

0 0 cos − sin

0 0 sin cos

- La matrice delle rigidezze nel riferimento globale:

= : :

Si conclude così la costruzione della matrice di rigidezza nel riferimento globale di tutte le travi

for .

(riportate di seguito), quindi, il ciclo di

1 2 3

aste diagonali e corrente inferiore, asta

Le matrici dei coseni direttori “W” delle varie aste sono:

1 2 3

aste diagonali e corrente inferiore, asta

La matrice dei coseni direttori dell’asta 3 è diagonale poiché il riferimento locale di detta asta

coincide con il riferimento globale della struttura. Infine, le matrici KG:

1 2 3

aste diagonali e corrente inferiore, asta

Le matrici delle due aste diagonali si riempiono, poiché lo sforzo agente in esse presenta sia

componente orizzontale che verticale (cambiano solo dei segni dovuti essenzialmente

all’orientamento delle aste); l’asta 3 invece, presenta solamente le componenti orizzontali dello

sforzo, essendo ad inclinazione nulla. A questo punto va scritta l’equazione di equilibrio globale,

ossia di sommare i termini relativi alle matrici che si stanno studiando. In particolare, è stata

ottenuta una matrice di rigidezza locale per ogni generica trave, ovvero per ogni trave si ha una

matrice 4x4 che rappresenta la sua matrice di rigidezza che restituisce la forza nodale che nasce

i i j

sul nodo della trave, nella componente e , e che diventa una forza che arriva sulla matrice

globale che invece associa tutte le forze risultanti sui nodi, e tutti gli spostamenti congruenti dei

spostamento

nodi. Perché si hanno nodi congruenti e su ciascuno di essi arrivano più travi, e lo

nodo locale nodo globale

diventa lo spostamento di ogni .

di ogni SEZIONE 1

A questo punto, avendo definito “” il vettore dei g.d.l. locali ed “” quello degli spostamenti

di ciascun nodo, per trovarne la reciproca corrispondenza, ossia quali “a” corrispondono a quali

default

“u”, e dato che per le “u” sono 4, e vanno da 1 a 4 per ogni trave, basta scrivere in un

quali sono le “a ”, cioè nella numerazione esterna, i g.d.l. che

vettore che qui è chiamato “gdl” i

competono agli estremi della data trave. Ma poiché in questa situazione particolare si ha

default

un’impostazione di , perché ogni nodo ha 2 g.d.l, ed essendo stati i nodi ordinati

precedentemente (n1, n2 e n3), considerando ad esempio il nodo “n1” ad esso corrispondono

sempre i g.d.l. che sono 2 volte n1-1 e 2 volte n1, questo perché al primo nodo competono i

g.d.l. 1 e 2, al secondo nodo i g.d.l. 3 e 4, ed al terzo nodo i g.d.l. 5 e 6, di conseguenza la

numerazione resta sempre la stessa. Pertanto, si costruisce la matrice:

gdl=[2*n1-1, 2*n1, 2*n2-1, 2*n2];

Essa contiene tutti i g.d.l. della trave che si sta guardando, ad esempio, se si trattasse della trave

n1, allora il nodo n1=1 ed il nodo n2=2, per cui gli:

gdl=[a1, a2, a3, a4];

Per la trave n2, il nodo n1=2 ed il nodo n2=3, per cui:

gdl=[a3, a4, a5, a6];

Per la trave n3, il nodo n1=1 ed il nodo n2=3, per cui:

gdl=[a1, a2, a5, a6];

Pertanto, si conoscono esattamente i nodi che competono a quella specifica trave.

A questo punto è possibile fare un semplice ciclo di 4 elementi, in particolare, un ciclo che passa

per i 4 g.d.l. locali della trave (u , … , u ), quindi, un ciclo che va da u ad u ; la matrice di rigidezza

1 4 1 4

= 4 = 4,

globale “S” avrà i g.d.l. che sono gli elementi che corrispondono ad e a ovvero

.

g.d.l. di e g.d.l. di In particolare, la seguente scrittura:

S(gdl(j),gdl(k))

Si vuole far riferimento al termine della matrice “S” col g.d.l. che dipende da quanto valgono i

ed u , ovvero spazza tutti gli u ... u termini e li fa diventare a … a ; pertanto si ottiene

g.d.l da u

1 4 1 4 1 4

a j-esimo

” che corrisponde al elemento della matrice della specifica trave, di

il numero di “

conseguenza la si pone pari ad:

S(gdl(j),gdl(k))=KG(j,k)+S(gdl(j),gdl(k)); ,

Scrivendo in questo modo, in pratica si prendono gli elementi di KG in posizione e che

vanno da 1 a 4 entrambe, e si riportano nella matrice S nella posizione che compete loro con i

g.d.l. che vengono fuori dal numero del nodo; in questo modo si sta dicendo al programma di

mettere nella matrice generale “S” gli elementi della matrice “KG” al posto giusto (indicato dalla

“gdl” ), sommandoli a quelli che già ci sono, ovvero che sono già stati aggiunti, ma poiché

quest’operazione è una sommatoria, è importantissimo che la matrice S, all’inizio, contenga

zeri

. Per fare questo, bisogna stabilire che:

solamente degli ngdl=2*nnodes;

ovvero, il numero dei gradi di libertà strutturali è pari al doppio del numero di nodi, dopodiché

si scriverà altresì che : S=zeros(ngdl,ngdl);

Quindi, è stata scritta come una matrice quadrata di zeri, nella dimensione dei gradi di libertà

strutturali che sono, come detto, pari a due volte il numero di nodi. Si poteva anche scrivere

solamente: S=zeros(ngdl);

Ed il programma avrebbe generato una matrice quadrata, ma è preferibile mettere due volte

“ngdl” perché in questo modo è più semplice da ricordare che le due dimensioni della matrice

di zeri che si sta creando potrebbero in altri casi essere diverse l’una dall’altra. Una volta azzerata

zeri

, perché la procedura

la matrice “S” si è certi che essa contiene tutti

S(gdl(j),gdl(k))è i

una procedura di sommatoria, e in una sommatoria se il termine “

iniziale non è zero il programma restituisce un errore sulla sommatoria. Si parte allora da una

(ngdl,ngdl)

matrice con tutti zero, gli si assegna la dimensione ( ), poi ad ogni temine, che

è zero, al preesistente zero gli si somma il termine della matrice di rigidezza di tutte le aste che

arrivano in quel nodo, in questo modo si sommano sempre termini nuovi man mano che si va

i-esimo della matrice S la sommatoria di tutte

avanti, in modo che alla fine si ottiene nel termine

le matrici di rigidezza che concorrono per lo stesso grado di libertà. Aggiornando il listato con

gli ultimi passaggi detti e chiudendo infine i vari cicli, si ottiene la matrice di rigidezza globale

corrispondente a tutte le travi :

Osservando la matrice S è possibile notare che ci sono degli elementi di valore: 4.0005e+07 ed

altri elementi di valore: 8.0005e+07 (a meno dei segni), ossia questi ultimi figurano sulla

diagonale, e presentano un valore raddoppiato, cosa che si spiega facilmente, perché in

corrispondenza di tali posizioni c’è una somma di contributi (come mostrato nel diagramma a

f generate dallo stesso

colori sul quaderno), ovvero, laddove ci sono delle forze i-esime i

a

spostamento nodale derivante da più travi, queste vanno sommate.

i

Sui termini in diagonale arrivano due travi, invece, sui termini fuori diagonale ne arriva una

soltanto, questo vuol dire che quando si va ad assemblare la matrice di rigidezza, i termini sulla

diagonale sommano due contributi, ed i termini fuori diagonale non sommano contributi.

rank(S)

Eseguendo adesso il comando: si ottiene il rango della matrice S, che in questo caso

dovrebbe essere pari a “3” perché i g.d.l. di questa struttura, che è una travatura reticolare, sono

3 esterni assoluti perché la maglia è chiusa, ma risulta di rango “2”, ovvero è singolare, ha

determinante pari a zero, per cui non è possibile fare alcun calcolo, e la spiegazione a questo

riscontro risiede semplicemente nel fatto che ancora non sono state espresse le condizioni di

vincolo numericamente, condizioni che la faranno diventare regolare con rango pari a “3”.

eig(S)per

Nota: quando la matrice di rigidezza presenta autovalori nulli: comando calcolare

gli autovalori della matrice data, vuol dire che la struttura è labile, in particolare, il fatto di avere

autovalori nulli sta a significare che ci sono dei moti rigidi, o meglio, c’è un moto rigido per ogni

autovalore nullo. Ogni autovalore nullo corrisponde ad un autovettore di uno dei gradi di libertà

da moto rigido.

A questo punto è opportuno inserire i vincoli, che sono delle quantità che devono essere date

come input, non inserisce in automatico il programma. Ogni punto della struttura deve essere

in qualche modo vincolato, ovvero, è necessario dire se il generico punto può avere tutti gli

spostamenti liberi, oppure soltanto alcuni spostamenti liberi; pertanto è possibile costruire un

2 colonne m righe

ed quanti sono i nodi, quindi, della stessa dimensione

vettore che possiede

del vettore “nodes” ma invece che contenere le coordinate del nodo deve contenere un

In che modo? Si può impostare il valore “1” se il punto è libero di muoversi, e “0” se

“codice”.

il punto è impedito di spostarsi. Poiché è stato considerato il caso di travatura reticolare, in cui

è stata posta, ad esempio, nel nodo n.1 la cerniera, quindi, si vuole che il nodo n.1 sia bloccato

in tutte e due le direzioni, è possibile inserire “0 0” come codici di vincolo di tale nodo.

constr=[0 0 0 0; 1 1 0 0; 1 0 0 0]

Per il primo nodo, così come per gli altri si

Anteprima
Vedrai una selezione di 10 pagine su 302
Laboratorio Numerico delle Strutture Pag. 1 Laboratorio Numerico delle Strutture Pag. 2
Anteprima di 10 pagg. su 302.
Scarica il documento per vederlo tutto.
Laboratorio Numerico delle Strutture Pag. 6
Anteprima di 10 pagg. su 302.
Scarica il documento per vederlo tutto.
Laboratorio Numerico delle Strutture Pag. 11
Anteprima di 10 pagg. su 302.
Scarica il documento per vederlo tutto.
Laboratorio Numerico delle Strutture Pag. 16
Anteprima di 10 pagg. su 302.
Scarica il documento per vederlo tutto.
Laboratorio Numerico delle Strutture Pag. 21
Anteprima di 10 pagg. su 302.
Scarica il documento per vederlo tutto.
Laboratorio Numerico delle Strutture Pag. 26
Anteprima di 10 pagg. su 302.
Scarica il documento per vederlo tutto.
Laboratorio Numerico delle Strutture Pag. 31
Anteprima di 10 pagg. su 302.
Scarica il documento per vederlo tutto.
Laboratorio Numerico delle Strutture Pag. 36
Anteprima di 10 pagg. su 302.
Scarica il documento per vederlo tutto.
Laboratorio Numerico delle Strutture Pag. 41
1 su 302
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria civile e Architettura ICAR/08 Scienza delle costruzioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Antonio121992 di informazioni apprese con la frequenza delle lezioni di Laboratorio Numerico delle Strutture e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi della Campania "Luigi Vanvitelli" o del prof Minutolo Vincenzo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community