Strumenti Utente

Strumenti Sito


playground:paom2017_f04p04

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
playground:paom2017_f04p04 [2017/05/23 11:10] 178890playground:paom2017_f04p04 [2017/05/30 18:02] (versione attuale) 189584
Linea 1: Linea 1:
 +====== Listato Maxima ======
 +Ci si propone ora di implementare le nozioni teoriche precedenti in un codice Maxima.\\ 
 +Stabiliamo innanzitutto le condizioni di **caricamento a remoto** (far field). Imponiamo una trazione uniforme, lungo x facendo riferimento al sistema di coordinate cartesiane iniziale (vedi teoria). 
 +{{ :playground:1.png?400 |}}
 +
 +dove ''sxx_ff'',''syy_ff'' e ''sxy_ff'' sono le tensioni normali e tangenziali a remoto in coordinate cartesiane.
 +É possibile estendere la trattazione anche ad altri caricamenti a remoto, come ad esempio:
 +
 +{{ :playground:2.png?400 |}}
 +
 +
 +Avendo imposto le condizioni di far field in coordinate cartesiane, operiamo un cambio di coordinate al fine di esprimere le tensioni in coordinate polari, coerentemente con la teoria.
 +{{ :playground:3.png?400 |}}
 +
 +Le relazioni fra le tensioni nei due sistemi di riferimento sono date dalle relazioni seguenti(pag. 8-9 Barber). 
 +{{ :playground:4.png?600 |}}
 +
 +{{ :playground:5.png?600 |}}
 +
 +{{ :playground:6.png?600 |}}
 +
 +
 +Dove ''srr_ff'', ''stt_ff'' e ''srt_ff'' sono rispettivamente le tensioni radiale, circonferenziale e tangenziale a remoto nel nuovo sistema di riferimento. Nel caso specifico valgono:
 +{{ :playground:7.png?500 |}}
 +
 +Prima di comporre la Airy Stress Function si nota che in tabella di pag. 119 del Barber non compaiono le componenti tensionali in forma $ cos^2(θ) $ e $ sen^2(θ) $ mentre compaiono termini del tipo $ cos(nθ) $ e $ sen(nθ) $. Pensiamo quindi di eseguire uno sviluppo in serie di Fourier (che risulta in forma esatta essendo applicato a funzioni armoniche) in modo da ottenere funzioni trigonometriche in $ nθ $, da cui risalirò al rispettivo termine di Mitchell. Questa operazione viene eseguita mediante la funzione ''trigreduce()'':
 +
 +{{ :playground:8.png?1000 |}}
 +
 +Creiamo ora una lista contenente le appropriate soluzioni di Mitchell (vedi teoria) della Airy Stress Function ed una lista con i coefficienti incogniti della combinazione lineare:
 +
 +{{ :playground:9.png?600 |}}
 +{{ :playground:10.png?600 |}}
 +
 +Definisco la Airy Stress Function (ASF) come combinazione lineare delle soluzioni di Mitchell:
 +{{ :playground:11.png?600 |}}
 +
 +Ora che abbiamo l'espressione della ASF siamo in grado, mediante le relazioni apposite (pag.110 Barber), di ricavare le componenti di tensione:{{ :playground:12.png?600 |}}
 +
 +Imponendo le cinque condizioni al contorno discusse nella parte teorica otteniamo cinque equazioni che inseriamo poi nella lista ''eqns[]''. Risolvendo tale sistema si ricaveranno i coefficienti incogniti della combinazione lineare.
 +  
 +{{ :playground:13.png?800 |}}
 +
 +Dobbiamo ora imporre che tali equazioni siano valide per ogni $ θ $: presa una singola equazione, si nota che ciò accade se si ottiene un'identità, ovvero se le singole somme algebriche che in ogni equazione moltiplicano i termini $ cos(2θ) $ e $ sen(2θ) $ siano nulle e allo stesso sia nulla la somma algebrica dei termini costanti.\\ 
 +Penso quindi, mediante un "trucco", di estrarre dalle equazioni tali somme algebriche tra i coefficienti $ Ai $ mediante l'uso della funzione ''augcoefmatrix()'' (link) specificando come incognite proprio $ cos(2θ) $ e $ sen(2θ) $, in modo da ottenere una matrice i cui termini siano composti da relazioni algebriche tra i coefficienti incogniti della ASF. 
 +{{ :playground:15.png?400 |}}
 +Imponendo che ogni termine della matrice ottenuta debba essere nullo, otteniamo la validità per ogni $ θ $.
 +Inseriamo in una nuova lista ''neweqns[]'' le equazioni ottenute costruendo un ciclo un ciclo iterativo e sfruttando la funzione ''append'' (link):
 +
 +{{ :playground:14.png?800 |}}
 +
 +Risolvendo questo sistema di equazioni si ricavano i singoli coefficienti, per far ciò utilizziamo il comando ''linsolve()''.\\ 
 +Si noti come Maxima elimina automaticamente equazioni linearmente dipendenti da altre.
 +
 +{{ :playground:16.png?400 |}}
 +
 +A questo punto è possibile portare sul grafico i risultati ottenuti, definendo le relazione da "plottare".
 +Il comando usato in Maxima per la realizzazione del grafico è ''wxplot2d ()''.
 +Le relazioni d'interesse sono 4: 
 + 
 +   * //tensione circonferenziale vicino al foro//  
 +   * //tensione circonferenziale di far field//   
 +   * //tensione radiale di far field//           
 +   * //tensione tangenziale di far field//       
 +{{ :playground:17.png?400 |}}
 +
 +All'interno del comando di disegno del grafico è opportuno definire il campo di estensione dell'asse delle ascisse, in particolare di //teta// (t), il quale come si vede è l'intervallo $ [-π ; π] $ che definisce l'intero angolo giro.\\ 
 +Un altro accorgimento può essere l'introduzione di una legenda con l'istruzione ''legend''.
 +Infine viene definito il campo delle ordinate //y// tra i due valori (+-5.....).
 +
 +Il grafico che si ottiene è quello riportato di seguito:
 +
 +{{ :playground:15plot.png?600 |}}
 +
 +===== Considerazioni Finali =====
 +
 +Come si può notare dal grafico si è ottenuto uno stato tensionale simmetrico (coerente, data la simmetria della struttura e del caricamento) che presenta due zone circonferenzialmente trattive e due compressive a bordo foro. Nelle zone trattive il valore tensionale massimo è all'intersezione tra asse y e bordo foro e vale circa 3 MPa in linea con quanto ci si aspettava: il valore del fattore di forma, ovvero il rapporto fra tensione nominale e teorica, in prossimità del bordo libero per un foro infinitesimo (si ricorda che stiamo studiando la struttura equivalente in cui il foro è sì di dimensioni finite, ma in una lastra infinita) è di 3 (vedi A. Strozzi - Costruzione di Macchine, pag. 315).\\ 
 +
 +
 +
 +
 +**NOTA CONCLUSIVA**: Nella definizione delle funzioni si è usato il comando ''define ()'' e non '':='' in quanto la valutazione della funzione doveva essere fatta immediatamente all'atto della definizione e non all'atto dell'introduzione degli argomenti specifici, come si può notare dalla figura sottostante. 
 +{{ :playground:19.png?400 |}}
 +
 +Per ulteriori chiarimenti riguardo le differenze tra i due metodi di definizione delle funzioni, si allega il link che fa riferimento alla questione:  [[https://cdm.ing.unimo.it/dokuwiki/wikipaom2017/020.090.000]]
 +
 +
 +
 +
 +
 +
 +
 + 
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +