Muro di sostegno con DM 14 gennaio 2008: calcolo del coefficiente di spinta attiva [funzione Excel]


Di seguito è riportato un codice VBA per Excel per il calcolo del coefficiente di spinta attiva in accordo al DM 14 gennaio 2008.

La procedura per usare il codice è la seguente:

  1. Aprire un nuovo foglio Excel, e quindi aprire la pagina progetto di Visual Basic;
  2. inserire un nuovo modulo;
  3. copiare ed incollare il codice qui sotto;
  4. tornare nel foglio Excel;
  5. nella voce inserisci funzione trovate la nuova funzione tra quelle definite dall’utente.

E questo è il codice:

Public Function Ka(fi As Double, alfa As Double, beta As Double, delta As Double, gammaFi As Double) As Variant
‘La funzione calcola il coefficiente di spinta attiva applicando i coefficienti gamma.m del DM2008
‘ parametri in input:
‘ fi= angolo di attrito interno in gradi
‘ alfa: inclinazione del terrapieno rispetto all’orizzontale in gradi
‘ beta= inclinazione del paramento interno del muro rispetto all’orizzontale (se verticale beta=90°)
‘ delta= inclinazione della spinta rispetto alla normale al paramento interno (positivo se verso l’alto)
‘ gammaFi= coefficiente parziale per il parametri del terreno secondo M1 o M2 che si applica a tan(fi)
‘ tutti gli angoli in input sono in gradi sessadecimali

Pi = 4 * Atn(1)
fi = fi * Pi / 180
fi = Atn(Tan(fi) / gammaFi)
alfa = alfa * Pi / 180
beta = beta * Pi / 180
delta = delta * Pi / 180

k1 = (Sin(beta + fi)) ^ 2
k2 = (Sin(beta)) ^ 2 * Sin(beta – delta) * (1 + ((Sin(fi + delta) * Sin(fi – alfa)) / (Sin(beta – delta) * Sin(beta + alfa))) ^ 0.5) ^ 2

Ka = k1 / k2

End Function

Mentre il codice che segue implementa in Excel una funzione personalizzata che consente di determinare il coefficiente di spinta attiva in fase sismica sia nel caso di sisma verticale verso l’alto che verso il basso.

La spinta in fase sismica si calcola, trascurando la coesione ed eventuali sovraccarichi, con la formula:

Ed= 1/2*gamma*(1±Kv)* K *H²

La funzione permette di calcolare il coefficiente di spinta K.

Public Function K(fi As Double, alfa As Double, beta As Double, delta As Double, kh As Double, kv As Double, gammaFi As Double, flag As Integer) As Variant
‘La funzione calcola il coefficiente di spinta attiva per la determinazione della
‘ spinta del terreno in fase sismica applicando i coefficiemti del DM2008
‘ parametri in input:
‘ fi= angolo di attrito interno in gradi
‘ alfa: inclinazione del terrapieno rispetto all’orizzontale in gradi
‘ beta= inclinazione del paramento interno del muro rispetto all’orizzontale (se verticale beta=90°)
‘ delta= inclinazione della spinta rispetto alla normale al paramento interno (positivo se verso l’alto)
‘ kh, kv =coefficienti sismici orizzontale e verticale
‘ gammaFi= coefficiente parziale per il parametri del terreno secondo M1 o M2
‘ flag= indicatore del tipo di sisma verticale che assume i seguenti valori
‘ sisma verticale verso il basso: flag=1
‘ sisma verticale verso l’alto: flag=2
‘ se a flag si attribuisce valore diverso da 1 o due si assume pari ad 1
‘ tutti gli angoli in input sono in gradi sessadecimali

Pi = 4 * Atn(1)
fi = fi * Pi / 180
fi = Atn(Tan(fi) / gammaFi)
alfa = alfa * Pi / 180
beta = beta * Pi / 180
delta = delta * Pi / 180

Select Case flag
Case Is = 1 ‘sisma verticale verso il basso
teta = Atn(kh / (1 + kv))
Case Is = 2 ‘sisma verticale verso l’alto
teta = Atn(kh / (1 – kv))
Case Else
teta = Atn(kh / (1 + kv))
End Select

k1 = (Sin(beta + fi – teta)) ^ 2
k2 = Cos(teta) * (Sin(beta)) ^ 2 * Sin(beta – delta – teta)
k3 = 1
If alfa <= fi – teta Then
k3 = (1 + ((Sin(fi + delta) * Sin(fi – alfa – teta)) / (Sin(beta – delta – teta) * Sin(beta + alfa))) ^ 0.5) ^ 2
End If

K = k1 / (k2 * k3)

End Function

Per il contributo ringraziamo l’ing. Afazio.

5 Responses to Muro di sostegno con DM 14 gennaio 2008: calcolo del coefficiente di spinta attiva [funzione Excel]

  1. Alessandro scrive:

    In excel mi fa errore di sintassi..come mai?

  2. Afazio scrive:

    Puo’ darsi che non hai caricato il pacchetto completo di excel.
    Dove si blocca il codice?
    Quale versione stai utilizzando?

  3. Afazio scrive:

    Hai copincollato il codice in maniera corretta?

  4. Alessandro, segui la procedura indicata, fai attenzione a copiare tutto e dovrebbe funzionarti. A me funzionava.

    Altrimenti può essere un problema di versione di Excel, ma non saprei dire in questo caso…

  5. Davide scrive:

    per chi ha problemi con il codice, riscrivete gli apici e i segni meno.
    Ciao

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: