Author Topic: VBA- Lezione 2 - Come far interagire foglio-codice  (Read 39618 times)

0 Members and 1 Guest are viewing this topic.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #45 on: 21 May , 2012, 15:03:08 PM »
Ho pensato di risolvere la questione del taglio alla testa del palo dovuto alla torsione attraverso una funzione che accettando in input i seguenti dati:
- momento torcente Mz
- coordinate xi, yi del palo iesimo
- coordinate xg, yg del baricentro della palificata
- parametro somma.i[ri²] per la distribuzione della torsione
mi restituisca o la componente Tx o la Ty sul palo i-esimo dovuti alla torsione
Affinche la funzione possa restituirci a nostro piacimento l'una o l'altra componente occorre, al solito, fare ricorso al "mio" flag (che sarà dato anch'sso in input alla funzione) che varrà 1 se vogliamo che ci restituisca Tx o 2 se vogliamo che ci restituiscs Ty

Per poter procedere alla scrittura della funzione abbiamo quasi tutto, ci manca soltanto il valore somma.i[ri²].

sappiamo che ri²= (xg-xi)² + (yg-yi)²
ma i quadrati delle differenze (xg-xi) e  (yg-yi) le abbiamo gia calcolate e presenti nel foglio nella sezione relativa all'input delle coordinate dei pali.
Torniamo pertanto su quel foglio, inseriamo altra colonna a seguire la tabella delle coordinate dei pali, inseriamo nelle celle la somma delle due precedenti ed in coda inseriamo la formula della somma.
Chiamiamo quindi quest'ultima cella (quella contenente la somma dei quadrati di ri) col nome RiQuadro.



Uploaded with ImageShack.us

Gia che ci siamo, in accoglimento della opportuna segnalazione di zax, inseriamo nella tabella dei gamma.F presente nel foglio carichi una ulteriore colonna destinata a contenere la descrizione del tipo di combo:



Uploaded with ImageShack.us

Basta selezionare la colonna contenente i gammaF, fare click col destro e scegliere il comando inserisci. Accadra che anche le celle contenenti i dati del numero massimo delle combo e del numero dei carichi si sposteranno verso destra. Per ripristinarne la originaria posizione sarà sufficiente selezionarle e spostarle di un posto a sinistra oppure si lasciano dove stanno.

« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #46 on: 21 May , 2012, 15:16:47 PM »
La struttura della nostra funzione dedicata alla determinazione delle componenti del taglio dovuto alla torsione sarà del tipo:


Public Function TAgliDaTorsione(xi as double, yi as double, xg as double, yg as double, RiQ as double, Mz as double, flag as integer) as double

in cui il significato dei parametri è stato precedentemente illustrato.

Troniamo quindi in ambiante VBA, e nello stesso modulo dove abbiamo già scritto il codice per il calcolo della risultante, iniziamo a scrivere proprio l'intestazione della funzione. Premendo invio, VBA scrive in automatico la fine della funzione. Otteniamo una cosa simile a:



Uploaded with ImageShack.us

Se vi infastidisce la riga troppo lunga che non vi permette di visualizzarne il contenuto in unica schermata, potrete spezzettarla ricorrendo al solito all'underscore



Uploaded with ImageShack.us
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #47 on: 21 May , 2012, 15:26:45 PM »
Per poter ricavare Tx e Ty ci serve determinare
- alfa (angolo formato dalla retta su cui giace T e l'asse x)
- r (distanza tra baricentro palificata e centro del palo)

Ma alfa è dato dalla somma tra
- alfa0 (angolo formato dal segmento che congiunge il baricentro della palificata ed il centro del palo sempre con l'asse x)
- pigreco/2 (questo poiche abbiamo visto che la reazione del palo è sempre ortogonale alla congiungente sopra descritta)

Infine dovendo ragionare coi radianti, ci serve anche il valore di pigreco.

Dobbiamo quindi definire le seguenti variabili di appoggio:
- Pigreco (che poi è costante)
- Tx
- Ty
- r
- alfa0
- alfa
sono tutti dei Double

Procediamo pertanto con il loro dimensionamento.
« Last Edit: 21 May , 2012, 15:31:57 PM by afazio »
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #48 on: 21 May , 2012, 20:37:36 PM »
Code: [Select]
Dim Pi As Double
Dim Tx As Double
Dim ty As Double
Dim r As Double
Dim alfa0 As Double
Dim alfa As Double

iniziamo a calcolare pi ed r

Code: [Select]
Pi = 4 * Atn(1)
r = sqrt((xi - xg) ^ 2 + (yi - yg) ^ 2)

e adesso determiniamoci alfa0 prevedendo tutti i possibili casi (anche quello in cui le coordinate del palo coincidono con quelle del baricentro della palificata)

Code: [Select]
If xi = xg Then
    If yi = yg Then
    ' il centro del palo coincide col baricentro della palificata
    ' il palo non è sollecitato da taglio dovuto alla torsione
        Tx = 0
        ty = 0
    ' a questo punto dovremmo saltare alla parte finale per farci restituire i risultati
    ' siccome in ogni caso avremmo valore nullo, conviene fissare il valore della funzione a zero
    ' ed uscire
        TAgliDaTorsione = 0
        Exit Function
    End If

    If yi > yg Then alfa0 = Pi / 2
    If yi < yg Then alfa0 = -Pi / 2
Else
    alfa0 = Atn((yi - yg) / (xi - xg))
    If (xi - xg) < 0 Then alfa0 = alfa0 + Pi
End If

da questa parte di codice usciamo col valore di alfa0, cioè con l'angolo formato dalla congiungente tra batricentro palificata a centro del palo.
Sommandovi 90° otteniamo l'angolo alfa, cioe quello della retta su cui giace Tp.

Code: [Select]
alfa = alfa0 + Pi / 2

quindi possiamo calcolarci sia Tx che TY

Code: [Select]
Tx = Mz * r * Cos(alfa) / RiQ
Ty = Mz * r * Sin(alfa) / RiQ

adesso non ci resta che scrivere il blocco del select case

Code: [Select]
Select Case flag

    Case 1
        TAgliDaTorsione = Tx
    Case 2
        TAgliDaTorsione = Ty
    Case Else
        TAgliDaTorsione = 0
End Select


finita. Salviamo e torniamo sul foglio di lavoro. Se non vi sono errori questa funzione dovrebbe apparire nella lista delle funzioni definite dall'utente.

P.S.: Corretta la riga     If (xi - xg) < 0 Then alfa0 = alfa0 + Pi /2 in     If (xi - xg) < 0 Then alfa0 = alfa0 + Pi
« Last Edit: 22 May , 2012, 09:59:05 AM by afazio »
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #49 on: 21 May , 2012, 20:40:17 PM »
Voglio far notare che nella parte di codice:

    If yi = yg Then
    ' il centro del palo coincide col baricentro della palificata
    ' il palo non è sollecitato da taglio dovuto alla torsione
        Tx = 0
        ty = 0
    ' a questo punto dovremmo saltare alla parte finale per farci restituire i risultati
    ' siccome in ogni caso avremmo valore nullo, conviene fissare il valore della funzione a zero
    ' ed uscire
        TAgliDaTorsione = 0
        Exit Function
    End If

sono praticamente inutili le istruzioni che calcolano Tx e Ty.
avremmo potuto risolvere la questione con sole 4 righe:

    If yi = yg Then
        TAgliDaTorsione = 0
        Exit Function
    End If


anche la parte di codice che segue:
    If yi > yg Then alfa0 = Pi / 2
    If yi < yg Then alfa0 = -Pi / 2
avremmo potuto risolverla diversamente con unica istruzione:

alfa0= abs(yi-yg)*(pi/2)/(yi-yg)
« Last Edit: 21 May , 2012, 21:08:20 PM by afazio »
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #50 on: 21 May , 2012, 21:44:57 PM »
Errata
Code: [Select]
r = sqrt((xi - xg) ^ 2 + (yi - yg) ^ 2)

Corrige
Code: [Select]
r = sqr((xi - xg) ^ 2 + (yi - yg) ^ 2)
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #51 on: 22 May , 2012, 10:51:13 AM »
Finalmente siamo nelle condizioni di procedere alla distribuzione degli sforzi sui pali. Si tratta di popolare di formule le tre colonne indicate con Np, Tp ed Mp della tabella che abbiamo predisposto nel foglio "distrib".
Ci accorgeremo, però, che quando dovremo inserire la formula relativa a Tp essa sarà troppo lunga, quindi poco gestibile e probabile fonte di errore. Ci conviene pertanto calcolare separatamente le due componenti Tpx e Tpy ed a seguire calcolare Tp. Aggiungiamo pertanto due colonne che chiamiamo Tpx e Tpy.



Uploaded with ImageShack.us

Adesso conviene dare dei nomi specifici alle celle i cui valori intervengono nelle formule per evitare di scrivere formule troppo lunghe dato che i valori si trovano in altri fogli.
Per esempio, lo sforzo normale sull'i-esimo palo lo determiniamo scrivendo la formula:

Npi = Apo*[ Fz/Atot + Mx *(yi-YG)/Jxx - My*(xi-XG)/Jyy ]

diamo quindi i nomi:
- Apo alla cella che contiene l'area del singolo palo
- Atot alla cella che contiene l'area dell'intera palificata
- Jxx e Jyy alla due celle che contengono le inerzie della palificata rispetto agli assi baricentrici.

Fatto questo, posizioniamoci nella prima cella della tabella che conterrà gli sforzi sui pali (nel mio esempio la cella C11) e digitiamo la formula:

=Apo*($E$6/Atot +$F$6*(Foglio1!F35-YG)/Jxx-$G$6*(Foglio1!E35-XG)/Jyy)



Uploaded with ImageShack.us

Qui vi faccio notare che le tre sollecitazioni che intervengono nella formula ( Fz, Mx ed My) sono richiamate con riferimento assoluto mentre i valori di xi e yi vengono richiamati con riferimento relativo. In questo modo durante la copia della formula nelle celle sottostanti, il riferimento alle sollecitazioni rimane invariato mentre le coordinate xi e yi varieranno spostandosi nella giusta posizione.
Vi ricordo che un riferimento assoluto si scrive antecedendo la riga o la colonna o entrambi col simbolo $
$E$6 - significa che nel corso di una copia il riferimento non cambia
$E6 - significa che nel corso di una copia il riferimento cambia ma senza cambiare la colonna, vale a dire che se copiamo la cella con la formula che contiene quel riferimento assoluto du due colonne a destra e due righe in basso, nella copia apparirà il nuovo riferimento $E8
E$6 - uguale alla precedente ma in questo caso viene mantenuta fissa la riga
E6- il riferimento si aggiorna con la copia

Per passare dalla notazione "relativa" (E6) a quella "assoluta" ($E$6), basta premere il tasto F4 col cursore posizionato accanto al riferimento nella formula. Ulteriori pressioni del tasto F4 faranno passare la notazione da $E$6 a $E6 a E$6 per poi tornare a E6.

Digitata la formula copiamola con trascinamento nelle celle in basso ottenendo una cosa del genere:



Uploaded with ImageShack.us

Ci accorgiamo di avere dei termini non desiderati cioè lo sforzo normale anche nel rigo dove non c'è palo

risolviamo la cosa con un Se() come abbiamo gia fatto in precedenza.
Torniamo nella cella iniziale e correggiamo la formula ivi digitata racciudendola all'interno di una istruzione SE

=se(B11>0;Apo*($E$6/Atot +$F$6*(Foglio1!F35-YG)/Jxx-$G$6*(Foglio1!E35-XG)/Jyy);0)

Ricopiando questa nuova formula nelle celle sottostanti, otteniamo finalmente quanto desiderato



Uploaded with ImageShack.us
« Last Edit: 22 May , 2012, 11:22:13 AM by afazio »
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #52 on: 22 May , 2012, 11:46:40 AM »
Passiamo adesso a riempire la colonna dei Tpx

sappiamo che è data dalla somma di due termini: quello dovuto alla azione orizzontale Fx (= Fx/NP) e quello dovuto alla torsione. Per calcolare quest'ultimo abbiamo scritto la funzione apposita TAgliDaTorsione().

Posizioniamoci nella prima cella della colonna Tpx e iniziamo a digitare
=$C$6/NP +     [in cui la cella $C$6, riportata come riferimento assoluto dato che non vogliamo che poi cambi nella copia, si riferisce al valore di Fx)

a questo punto premiamo l'iconetta che sta accanto al rigo di inserimento formula  ed apparirà il dialogo di scelta della funzione. Scorriamo fino a far visualizzare quelle definite dall'utente,



Uploaded with ImageShack.us


selezioniamo la nostra funzione e premiamo OK. Apparirà il dialogo di richiesta di inserimento dei parametri della nostra funzione in maniera praticamente identita a qualsiasi altra funzione incorporata:



Uploaded with ImageShack.us

Premendo sull'iconetta che ho evidenziato nell'immagine, sarà possibile navigare tra i vari fogli alla ricerca della cella che contiene il parametro richiesto.

Completiamo il dialogo  coi restanti dati, inserendo alla fine il valore 1 al parametro flag, mentre quando inseriremo il parametro Mz avremo cura di premere anche il tasto F4 per trasformare in  il riferimento da relaivo ad assoluto.



Uploaded with ImageShack.us

Alla pressione del tasto Ok vedremo apparire il risultato nella cella. Adesso copiamo trascinadola la cella in quelle sottostanti. Anche qui ci accorgiamo di avere dei terminiindesiderati ed anche qui risolveremo la questione con un mirabolante SE().

Adesso siamo nelle condizioni di poter controllare se i risultati ottenuti sono quelli corretti o in altre parole se la funzione funziona correttamente.


« Last Edit: 22 May , 2012, 11:50:23 AM by afazio »
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #53 on: 22 May , 2012, 11:56:35 AM »
Primo intoppo: la funzione non funziona o qualcosa non funziona.

Infatti, proviamo a fare la somma di tutti i termini Tpx ottenuti ed otteniamo il valore -1077.24 kN contro un valore di -1012.42 di Fx.

Non abbiamo rispettato la condizione di equilibrio alla traslazione secondo l'asse x.

Adesso sono dolori per andare a scovare dove abbiamo commesso l'errore. Il mio primo pensiero va verso la funzione ed in questa va verso la determinazione dell'angolo alfa0.
Per poter scovare l'errore dobbiamo separare (anche se solo temporaneamente)  i diversi contributi in modo da poter circonscrivere la zona d'errore.


P.S.: Allarme rientrato. Stanotte lo avevo già individuato ed avevo apportato stamattina la correzione in un Post Scriptum qui nel 3d, ma avevo dimenticato ad apportare la stessa correzione nel mio codice.
Trattavasi della correzione:

da "    If (xi - xg) < 0 Then alfa0 = alfa0 + Pi/2"
  a "    If (xi - xg) < 0 Then alfa0 = alfa0 + Pi"
 
« Last Edit: 22 May , 2012, 12:05:38 PM by afazio »
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #54 on: 22 May , 2012, 12:28:52 PM »
Procediamo analogalmente con la colonna di Tpy avendo cura ad inserire i giusti parametri ed il valore 2 al parametro flag. Anche qui metteremo la formula all'interno di una funzione SE.

Passiamo quindi alla determinazione di Tp inserendo la semplice formula:
=RADQ(D11^2+E11^2)



Uploaded with ImageShack.us

Per popolare, infine, la colonna di Mp, diamo prrima il nome "lambda" alla cella contenente questo valore e quindi iseriamo la formula:

=F11*lambda/2



Uploaded with ImageShack.us

Copiamo trascinando ed avremmo finito anche la parte relativa alla distribuzione degli sforzi sui pali.

Adesso ci possiamo divertire a cambiare la celletta con sfondo verdino cambiando quindi il numero della combo da distribuire e vedremo i risultati in un battibaleno.

Come sempre, prima di dichiarare completata una parte di calcolo occorre condurre le verifiche a mano o con altri strumenti che tutto è a posto e correttamente calcolato.
« Last Edit: 22 May , 2012, 12:31:37 PM by afazio »
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #55 on: 22 May , 2012, 19:03:44 PM »
Ok.

Controlliamo se i risultati sono corretti. Per far questo penso di verificare che sono rispettate le equazioni cardinali della statica ;
equazione di equilibrio alla traslazione verticale
equazione di equilibrio alla traslazione lungo x
equazione di equilibrio alla traslazione lungo y
equazione di equilibrio alla rotazione attorno all'asse xx baricentrico
equazione di equilibrio alla rotazione attorno all'asse yy baricentrico
equazione di equilibrio alla rotazione attorno all'asse zz baricentrico

Penso che se risultano verificate tutte e sei le equazioni di equilibrio si possa affermare che il calcolo è corretto.

Per fare questo sfruttiamo sempre il foglio di calcolo.
Scriviamo la somma di valori della colonna degli NP e controlliamo se il risultato è uguale alla componente Fz. Nella immagine che segue è riportata la verifica con le indicazioni in rosso.



Uploaded with ImageShack.us

Stessa cosa facciamo per gli Tpx: facciamo la somma dei valori della colonna dei Tpx e controlliamo se il risultato è uguale alla componente Fx della risultante. Idem per Tpy.
Nella immagone che segue sono riportate le due verifiche



Uploaded with ImageShack.us

Fino ad adesso tutto ok. Vi anticipo che le prossime verifiche saranno negative (lo sapevo già fin dall'inizio poiche mi ci sono duramente scontrato in una occasione precedente) e poi parleremo dei motivi apportandone le correzioni
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline bertolana

  • Novizio del forum
  • *
  • Posts: 9
  • Karma: 1
  • Laureato
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #56 on: 22 May , 2012, 19:05:02 PM »

Nell'ipotesi di palo impedito di ruotare alla testa sottoposto ad azione orizzontale ivi applicata, l'andamento del momento flettente è una funzione (che potete trovare in qualsiasi pubblicazione) il cui valore massimo risulta pari a:

Mpmax = Tp*lambda/2

in cui il parametro lambda risulta essere pari a:

lambda= radq{radq[ 4*E*J/(kh*Dp) ] }
in cui sono:
E = modulo elastico longitudinale del palo
J = momento di inerzia del palo
Kh = modulo laterale di Winkler
Dp = diametro del palo.



scusami afazio ma ripercorrendo la trattazione mi sono accorto che forse c'è qcs che non va nella
definizione di Mp e di lambda:
per me lambda dalla teoria della trave su suolo elastico è 2*pigreco/alfa
con alfa= [(Kh*Dp)/(4*E*J)]^0.25
e Mp= Tp/(2*alfa)

...ho provato a rigirare la tua formula ma non mi torna! sbaglio qualcosa?

grazie e complimenti per la trattazione veramente esaustiva, didattica e stimolante 

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #57 on: 22 May , 2012, 19:45:25 PM »
Per il controllo dell'equilibrio alla rotazione attorno all'asse x baricentrico ed attorno all'asse y baricentrico, dedichiamo due colonne accanto a quelle esistenti atte a contenere i prodotti:

Npi*(yi-yg)   =contributo di momento attorno all'asse xx dello sforzo normale sul palo i-esimo
-Npi*(xi-xg)   =contributo di momento attorno all'asse xx dello sforzo normale sul palo i-esimo

nelle celle sottostanti ne scriviamo le relative formule e nella cella in coda ne facciamo la somma. Otteniamo quanto segue:



Uploaded with ImageShack.us

Dove sta l'errore?
Dopo essermici sbattuto per parecchio tempo, sono riuscito a capire dove sta l'errore, se di errore si può parlare.

L'errore sta nella formula

Npi = Apo*[ Fz/atot + Mx* (yi*yg)/Jxx - My*(xi*xg)/Jxx ]

in pratica la quantità entro parentesi quadra rappresenta la tensione normale in corrispondenza del baricentro del palo. Questa viene moltiplicata per l'area del palo, come se fosse costante in tutti i punti del palo, ottenendo cosi il valore corretto dello sforzo sul palo ma un valore errato del momento come abbiamo avuto modo di verificare attraverso le verifiche delle condizioni di equilibrio alla rotazione attorno agli assi.

In effetti la tensione normale è linearmente variabile punto per punto all'interno della sezione di ciascun palo. L'integrale delle tensioni normali esteso all'area del palo fornisce sempre il corretto valore di Npi ma l'integrale del prodotto della tensione  per la distanza del punto generico dal centro del palo, non fornisce momento nullo. Per comprenderlo è sufficiente riferirsi per esempio al diagramma triangolare delle spinte sul paramento di un muro. La spinta può essere calcolata moltiplicando il valore del diagramma nel punto medio del muro per l'altezza del muro, ma la risultante non è ubicata nel punto medio. stessa cosa vale nel caso in esame: Npi può essere determinato moltiplicando l'area del palo per la tensione assunta nel suo punto medio, ma la risultante Npi non risulta essere applicata nel centro del palo bensi in un punto da determinare.

Come possiamo correggerlo?
E' ovvio che se vogliamo il valore corretto dobbiamo decidere di imbarcarci su un battello che ci porterebbe in un mare in burrasca. Infatti se volessimo iniziare a calcolare il punto di applicazione di ciascun Npi all'interno dell'area del palo (cosa che potremmo anche decidere di fare se ne valesse davvero la pena) dovremmo poi modificare anche il momento flesstente agente lungo il fusto del palo dovendo aggiungere alla testa del palo oltre alla azione T anche il momento di trasporto di Np. A questo punto varierebbe anche lo schema di calcolo per la determinazione dell'andamento del momento flettente lungo il fusto del palo configurandosi adesso un palo impedito di ruotare alla testa e caricato nella sua sezione sommitale da una azione orizzontale e da un momento. Le cose si complicherebbero alquanto e diverrebbero quasi irrisolvibili con excel. Ma vogliomo tutto questo?

Io non ci penso nemmeno e preferisco tornare alle origini, laddove ho ipotizato di voler schematizzare la palificata come un sistema discreto di aree concentrate nei punti baricentrici di ciascun palo. Allora in coerenza con questa ipotesi, che è accettabile ed accettata universalmente, non devo mettere in conto, nel calcolo delle inerzie totali della palificata, le inerzie proprie dei pali.
Infatti fu proprio quando in una occasione decisi di "apportare un maggior rigore" al calcolo delle inerzie considerando anche le inerzie proprie dei pali rispetto ai propri assi baricentrici, che commisi l'errore che mi fu anche difficile da scovare.
Una volta trovato dove stava l'inghippo mi sono chiesto che cosa comportava tornare alle origini in termini di sicurezza. Trascurando le inerzie proprie dei pali si opera a favore della sicurezza anche se come è possibile constatare le differenze dei momenti complessivi agenti rispetto a quelle reagenti sono davvero irrisorie.

Accetto commenti in merito a questa ultima questione.

saluti
« Last Edit: 22 May , 2012, 20:03:18 PM by afazio »
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #58 on: 22 May , 2012, 19:51:13 PM »
scusami afazio ma ripercorrendo la trattazione mi sono accorto che forse c'è qcs che non va nella
definizione di Mp e di lambda:
per me lambda dalla teoria della trave su suolo elastico è 2*pigreco/alfa
con alfa= [(Kh*Dp)/(4*E*J)]^0.25
e Mp= Tp/(2*alfa)

...ho provato a rigirare la tua formula ma non mi torna! sbaglio qualcosa?

grazie e complimenti per la trattazione veramente esaustiva, didattica e stimolante 

Praticamente il tuo alfa è l'inverso di quello che io ho indicato con lambda:
infatti tu riporti:

alfa= [(Kh*Dp)/(4*E*J)]^0.25

mentre io avevo definito

lambda= [(4*E*J)/(Kh*Dp)]^0.25

ciao e grazie
« Last Edit: 22 May , 2012, 19:54:09 PM by afazio »
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #59 on: 22 May , 2012, 20:08:57 PM »
Ed allora, torniamo sul foglio principale ed apportiamo le correzioni togliendo da Jtx e Jty il contributo dovuto all'inerzia propria del palo. Nella immagine che segue è riportata la correzione a Jtx



Uploaded with ImageShack.us

Tornando sul foglio dove stavamo conducendo le verifiche dell'equilibrio vedremo tornare tutto a posto.

Ci resta adesso la verifica alla rotazione attorno all'asse zz baricentrico.


Eccola:



Uploaded with ImageShack.us

ed è positiva.
A questo punto possiamo ritenerci momentaneamente soddisfatti e tentare di andare avanti.

saluti
« Last Edit: 22 May , 2012, 20:18:39 PM by afazio »
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24