La strada è definita come area ad uso pubblico adibita al transito di veicoli, pedoni ed animali. Di seguito diamo delle definizioni riguardanti la geometria stradale:
SEDE STRADALE: superficie compresa entro i confini stradali
CARREGGIATA: parte della strada destinata allo scorrimento dei veicoli; essa è composta da uno o più corsie di marcia; è pavimentata ed è delineata da strisce di margine.
CORSIA: parte longitudinale della strada, delimitata da segnaletica orizzontale, di larghezza idonea a permettere il transito di una sola fila di veicoli.
DISPOSITIVO DI RITENUTA: elemento tendente ad evitare la fuoriuscita dei veicoli dalla piattaforma o comunque a ridurne le conseguenze dannose. È contenuto all’interno dello spartitraffico o del margine esterno della piattaforma.
FASCIA DI PERTINENZA: striscia di terreno compresa tra la carreggiata più esterna e il confine stradale. È parte della proprietà stradale e può essere utilizzata solo per la realizzazione dei altre parti della strada.
FASCIA DI RISPETTO: striscia di terreno, esterno al confine stradale, sulla quale quale esistono vincoli alla realizzazione, da parte del proprietario del terreno, di scavi, costruzioni, recinzioni, piantagioni, depositi e simili.
MARCIAPIEDE: parte della strada, esterna alla carreggiata, destinata ai pedoni. MARGINE INTERNO: parte della piattaforma che separa carreggiate percorse in senso opposto.
MARGINE LATERALE: parte della piattaforma che separa carreggiate percorse nello stesso tempo.
MARGINE ESTERNO: parte della sede stradale, esterna alla piattaforma, nella quale trovano sede cigli, cunette, arginelli, marciapiedi o gli elementi di sicurezza o arredo.
PIATTAFORMA: parte della sede stradale che comprende le carreggiate (comprendenti a loro volta le corsie), le banchine, gli eventuali margini interni e laterali, le corsie specializzate. Non fa parte della piattaforma il margine esterno.
L’azione del vento viene calcolata con riferimento al D.M. 17 gennaio 2018 – NORME TECNICHE PER LE COSTRUZIONI Cap. 3 – AZIONI SULLE COSTRUZIONI – Par. 3.3 e 3.4 accompagnato dalle Norme CNR-DT207/2008.
La velocità base di riferimento è funzione della posizione geografica della struttura, la sua definizione è riportata al punto 3.3.1. delle NTC. I parametri vengono definiti in Tab. 3.3.I:
| Zona | Descrizione | $v_{b,0}$ [m/s] | $a_{0}$ [m] | $k_s$ |
|---|---|---|---|---|
| 1 | Valle d’Aosta, Piemonte, Lombardia, Trentino Alto Adige, Veneto, Friuli Venezia Giulia (con l’eccezione della provincia di Trieste) | 25 | 1000 | 0.40 |
| 2 | Emilia Romagna | 25 | 750 | 0.45 |
| 3 | Toscana, Marche, Umbria, Lazio, Abruzzo, Molise, Puglia, Campania, Basilicata, Calabria (esclusa la provincia di Reggio Calabria) | 27 | 500 | 0.37 |
| 4 | Sicilia e provincia di Reggio Calabria | 28 | 500 | 0.36 |
| 5 | Sardegna (zona a oriente della retta congiungente Capo Teulada con l’Isola di Maddalena) | 28 | 750 | 0.4 |
| 6 | Sardegna (zona a occidente della retta congiungente Capo Teulada con l’Isola di Maddalena) | 28 | 500 | 0.36 |
| 7 | Liguria | 28 | 1000 | 0.54 |
| 8 | Provincia di Trieste | 30 | 1500 | 0.5 |
| 9 | Isole (con l’eccezione di Sicilia e Sardegna) e mare aperto | 31 | 500 | 0.2 |
la velocità base di riferimento è data dall’espressione [3.3.1]:
$$v_b = v_{b,0}\cdot c_{a} $$
dove:
– $a_0, k_s$ sono parametri forniti nella Tab. 3.3.I in funzione della zona in cui sorge la costruzione (Fig. 3.3.1);
– $a_{s}$ è l’altitudine sul livello del mare del sito ove sorge la costruzione.
# Velocita base di riferimento
import math
print("Definizione dei dati\n")
print("Zona: \n")
zona = input("1 - Valle d’Aosta, Piemonte, Lombardia, Trentino Alto Adige, Veneto, Friuli Venezia Giulia (con l’eccezione della provincia di Trieste)\n" +
"2 - Emilia Romagna\n" +
"3 - Toscana, Marche, Umbria, Lazio, Abruzzo, Molise, Puglia, Campania, Basilicata, Calabria (esclusa la provincia di Reggio Calabria)\n" +
"4 - Sicilia e provincia di Reggio Calabria\n" +
"5 - Sardegna (zona a oriente della retta congiungente Capo Teulada con l’Isola di Maddalena)\n" +
"6 - Sardegna (zona a occidente della retta congiungente Capo Teulada con l’Isola di Maddalena)\n" +
"7 - Liguria\n" +
"8 - Provincia di Trieste\n" +
"9 - Isole (con l'eccezione di Sicilia e Sardegna) e mare aperto\n")
zona = int(zona)
print(f'zona: {zona}')
a_s = int(input("altitudine slm del sito dove sorge la costruzione: "))
D = int(input("Distanza dalla costa (inserire 0 oppure valori negativi per le costruzioni sul mare: )"))
Tr = int(input("Tempo di ritorno di progetto: "))
z = float(input("z altezza dell'edificio (fino alla linea di gronda: )"))
# Coefficiente di esposizione
print("Definizione dei dati: ")
print("## CLASSE DI RUGOSITA'\n")
classe_rugosita = input('A - Aree urbane in cui almeno il 15% della superficie sia coperto da edifici la cui altezza media superi i 15 m\n'+
'B - Aree urbane (non di classe A), suburbane, industriali e boschive\n'+
'C - Aree con ostacoli diffusi (alberi, case, muri, recinzioni,....); aree con rugosità non riconducibile alle classi A, B, D\n'+
'D - a) Mare e relativa fascia costiera (entro 2 km dalla costa);\n'+
' - b)Lago (con larghezza massima pari ad almeno 1 km) e relativa fascia costiera (entro 1 km dalla costa)\n'+
' - c) Aree prive di ostacoli o con al più rari ostacoli isolati (aperta campagna, aeroporti, aree agricole, pascoli, zone paludose o sabbiose, superfici innevate o ghiacciate, ....)\n')
# Definizione Categoria di esposizione
esp = "Condition not met" # Initialize with a default value
if classe_rugosita == 'A':
if D < 0:
esp = '0'
elif 0 < D < 10:
esp = 'IV'
elif 10 < D < 30: esp = 'IV' elif D > 30:
if a_s < 500:
esp = 'V'
elif 500 < a_s < 750: esp = 'V' elif a_s > 750:
esp = 'V'
elif classe_rugosita == 'B':
if D < 0:
esp = '0'
elif 0 < D < 10:
esp = 'III'
elif 10 < D < 30: esp = 'III' elif D > 30:
if a_s < 500:
esp = 'IV'
elif 500 < a_s < 750: esp = 'IV' elif a_s > 750:
esp = 'IV'
elif classe_rugosita == 'C':
if D < 0:
esp = '0'
elif 0 < D < 10:
esp = 'II' if zona <= 4 else 'III'
elif 10 < D < 30: esp = 'III' elif D > 30:
if a_s < 500:
esp = 'IV'
elif 500 < a_s < 750: esp = 'IV' elif a_s > 750:
esp = 'IV'
elif classe_rugosita == 'D':
if D < 0:
esp = 'I'
elif 0 < D < 10:
esp = 'II'
elif 10 < D < 30: esp = 'II' elif D > 30:
if a_s < 500:
esp = 'II'
elif 500 < a_s < 750: esp = 'III' elif a_s > 750:
if 2 <= zona <= 5: esp = 'III' elif zona == 1: esp = 'IV' else: esp = "nessuna classe disponibile" else: esp = "nessuna classe di rugosita trovata" #------------------------------------------------------------ # Parametri per la definizione del coefficiente di esposizione exposure_categories = { 'I': {'Kr': 0.17, 'z0': 0.01, 'zmin': 2}, 'II': {'Kr': 0.19, 'z0': 0.05, 'zmin': 4}, 'III': {'Kr': 0.20, 'z0': 0.10, 'zmin': 5}, 'IV': {'Kr': 0.22, 'z0': 0.30, 'zmin': 8}, 'V': {'Kr': 0.23, 'z0': 0.70, 'zmin': 12} } def get_exposure_values(esp): if esp in exposure_categories: kr = exposure_categories[esp]['Kr'] z0 = exposure_categories[esp]['z0'] zmin = exposure_categories[esp]['zmin'] return kr, z0, zmin else: return None, None, None kr, z0, zmin = get_exposure_values(esp) # ---------------------------------------------------------- # Valori dei parametri vb0, av0, ks if zona == 1: vb0 = 25 a0 = 1000 ks = 0.4 elif zona == 2: vb0 = 25 a0 = 750 ks = 0.45 elif zona == 3: vb0 = 27 a0 = 500 ks = 0.37 elif zona == 4: vb0 = 28 a0 = 500 ks = 0.36 elif zona == 5: vb0 = 28 a0 = 750 ks = 0.4 elif zona == 6: vb0 = 28 a0 = 500 ks = 0.36 elif zona == 7: vb0 = 28 a0 = 1000 ks = 0.54 elif zona == 8: vb0 = 30 a0 = 1500 ks = 0.50 else: vb0 = 31 a0 = 500 ks = 0.32 # ----------------------------------------------------- # Velocità di riferimento if a_s a0: c_a = float(1+ks*(a_s/a0 -1)) print("## PARAMETRI vb0, a0, ks\n") print(f'vb0 = {vb0}\n'+ f'a0 = {a0}\n'+ f'ks = {ks}\n') print("# VELOCITA BASE DI RIFERIMENTO\n") vb = vb0*c_a print(f'vb = {vb}') print("# CLASSE DI RUGOSITA'") print(f'Classe: {classe_rugosita}+{esp}') print('## VELOCITA DI RIFERIMENTO') c_r = 0.75*((1-0.2*math.log(-math.log(1-1/Tr)))**0.5) vr = vb*c_r print(f'vr = {vr}\n') print("# AZIONI STATICHE DI RIFERIMENTO\n") # Risultati print("## PRESSIONE CINETICA DI RIFERIMENTO") q_r = 0.5*1.25*vr**2 print(f'q_r = {q_r} N/mq') print("## COEFFICIENTE DI ESPOSIZIONE") # Now we print the variables, assuming the function returned valid values if kr is not None and z0 is not None and zmin is not None: print(f"Kr: {kr}") print(f"z0: {z0}") print(f"zmin: {zmin}") else: print("Exposure category not found.") ct = 1 # coefficiente topografico cf = 1 # coefficiente di d'attrito cp = 1 # vedi C3.3.8 COEFFICIENTI AERODINAMICI cd=1 if z >= zmin:
ce = kr**2*ct*math.log(z/z0)*(7+ct*math.log(z/z0))
else:
ce = kr**2*ct*math.log(zmin/z0)*(7+ct*math.log(zmin/z0))
print(f'ce(z) = {ce}')
print("## PRESSIONE DEL VENTO")
p = round(q_r*ce*cp*cd,3)
print(f'p = {p} N/mq')