Ponti in zona sismica — §7.9¶
Progettazione e verifica di ponti in zona sismica secondo NTC18 §7.9.
Riferimento normativo¶
NTC18 §7.9, Formule [7.9.1]–[7.9.22]
API¶
pyntc.checks.seismic_bridges
¶
Verifiche ponti in zona sismica — NTC18 §7.9.
Fattore di comportamento, analisi statica lineare, progettazione in capacita' per pile e impalcato, armature di confinamento e dettagli costruttivi per ponti stradali e ferroviari.
Unita': - Forze: [kN] - Momenti: [kNm] - Accelerazioni: [m/s^2] - Periodi: [s] - Spostamenti: [m] - Masse: [kN/g] = [t * g / g] -- G_i in [kN], g in [m/s^2] - Aree: [mm^2] per armature; [m^2] per sezioni strutturali - Tensioni: [MPa] - Coefficienti: [-]
bridge_behavior_factor_vk(q_i, v_k)
¶
Fattore di comportamento ridotto per compressione normalizzata elevata [-].
NTC18 §7.9.2.1, Formula [7.9.1]. Applicabile per 0,3 < v_k <= 0,6; per v_k <= 0,3 restituisce q_i invariato.
q_i(v_k) = q_i - [v_k/0,3 - 1] * (q_i - 1)
Parameters¶
q_i : float Fattore di comportamento applicabile per v_k <= 0,3 [-]. v_k : float Sollecitazione di compressione normalizzata N_fd / A_k [-]. Non puo' superare 0,6 (NTC18 §7.9.2.1).
Returns¶
float Fattore di comportamento ridotto q_i(v_k) [-].
Raises¶
ValueError Se q_i < 1, v_k < 0 oppure v_k > 0,6.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_confinement_check_circular(omega_wd_c, omega_w_req, ductility_class='B')
¶
Verifica percentuale meccanica confinamento — staffe circolari.
NTC18 §7.9.6.1.2, Formula [7.9.17]: omega_wd,c >= max(1,4 * omega_w,req; omega_w,min)
omega_w,min = 0,18 per CD"A"; 0,12 per CD"B".
Parameters¶
omega_wd_c : float Percentuale meccanica di armatura circolare effettiva (da Formula [7.9.19]) [-]. omega_w_req : float Percentuale meccanica richiesta (da Formula [7.9.16]) [-]. ductility_class : str Classe di duttilita': "A" o "B" (default "B").
Returns¶
tuple[bool, float] - satisfied: True se la verifica e' soddisfatta. - omega_min_demand: valore minimo richiesto max(1,4*omega_w_req, omega_w_min) [-].
Raises¶
ValueError Se ductility_class non e' "A" o "B".
Source code in src/pyntc/checks/seismic_bridges.py
bridge_confinement_check_rectangular(omega_wd_t, omega_w_req, ductility_class='B')
¶
Verifica percentuale meccanica confinamento — staffe rettangolari.
NTC18 §7.9.6.1.2, Formula [7.9.15]: omega_wd,t >= max(omega_w,req; 0,67 * omega_w,min)
omega_w,min = 0,18 per CD"A"; 0,12 per CD"B".
Parameters¶
omega_wd_t : float Percentuale meccanica di armatura trasversale effettivamente prevista (da Formula [7.9.18]) [-]. omega_w_req : float Percentuale meccanica richiesta (da Formula [7.9.16]) [-]. ductility_class : str Classe di duttilita': "A" o "B" (default "B").
Returns¶
tuple[bool, float] - satisfied: True se la verifica e' soddisfatta. - omega_min_demand: valore minimo richiesto max(omega_w_req, 0,67*omega_w,min) [-].
Raises¶
ValueError Se ductility_class non e' "A" o "B".
Source code in src/pyntc/checks/seismic_bridges.py
bridge_confinement_omega_circular(A_ep, D_sp, s, f_yd, f_el)
¶
Percentuale meccanica di confinamento per staffe circolari omega_wd,c [-].
NTC18 §7.9.6.1.2, Formula [7.9.19]: omega_wd,c = 4 * A_ep * f_yd / (D_sp * s * f_el)
Parameters¶
A_ep : float Area della sezione delle barre circonferenziali [mm^2]. D_sp : float Diametro della circonferenza delle staffe [mm]. s : float Interasse verticale delle armature di confinamento S_L [mm]. f_yd : float Tensione di snervamento di progetto delle staffe [MPa]. f_el : float Resistenza di progetto a compressione del calcestruzzo [MPa].
Returns¶
float Percentuale meccanica omega_wd,c [-].
Raises¶
ValueError Se D_sp <= 0, s <= 0 o f_el <= 0.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_confinement_omega_rectangular(A_wc, s, b, f_sd, f_od)
¶
Percentuale meccanica di confinamento per staffe rettangolari omega_wd,t [-].
NTC18 §7.9.6.1.2, Formula [7.9.18]: omega_wd,t = (A_wc / (s * b)) * (f_sd / f_od)
Parameters¶
A_wc : float Area complessiva dei bracci delle staffe chiuse e dei tiranti in una direzione [mm^2]. s : float Interasse verticale delle armature di confinamento S_t [mm]. b : float Dimensione del nucleo confinato di calcestruzzo nel piano orizzontale in direzione ortogonale a quella dei bracci delle staffe [mm]. f_sd : float Tensione di snervamento di progetto dell'acciaio delle staffe [MPa]. f_od : float Resistenza di progetto a compressione del calcestruzzo [MPa].
Returns¶
float Percentuale meccanica omega_wd,t [-].
Raises¶
ValueError Se s <= 0, b <= 0 o f_od <= 0.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_confinement_omega_req(A_wc, A_ec, v_k, lambda_cd, f_sd, f_od, rho_L1)
¶
Percentuale meccanica richiesta di armatura di confinamento omega_w,req [-].
NTC18 §7.9.6.1.2, Formula [7.9.16]: omega_w,req = (A_wc/A_ec)lambdav_k + 0,13(f_sd/f_od)(rho_L1 - 0,01)
Parameters¶
A_wc : float Area totale di calcestruzzo della sezione [m^2]. A_ec : float Area del nucleo confinato della sezione [m^2]. v_k : float Sollecitazione di compressione normalizzata [-]. lambda_cd : float Coefficiente lambda: 0,37 per CD"A", 0,28 per CD"B". f_sd : float Tensione di snervamento di progetto dell'acciaio delle staffe [MPa]. f_od : float Resistenza di progetto a compressione del calcestruzzo [MPa]. rho_L1 : float Percentuale geometrica di armatura longitudinale [-].
Returns¶
float Percentuale meccanica richiesta omega_w,req [-].
Raises¶
ValueError Se A_ec <= 0, f_od <= 0 o lambda_cd non e' 0.28 o 0.37.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_confinement_spacing_transverse(b_star)
¶
Passo massimo armature di confinamento in direzione trasversale [mm].
NTC18 §7.9.6.1.2, Formula [7.9.21]: S_L <= min(b*/3; 200 mm)
Parameters¶
b_star : float Dimensione minore del nucleo confinato di calcestruzzo [mm].
Returns¶
float Passo massimo trasversale S_L [mm].
Raises¶
ValueError Se b_star <= 0.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_confinement_spacing_vertical(d_SL, b_star)
¶
Passo massimo armature di confinamento in direzione verticale [mm].
NTC18 §7.9.6.1.2, Formula [7.9.20]: S_L <= min(6 * d_SL; 1,5 * b*)
Parameters¶
d_SL : float Diametro delle armature longitudinali [mm]. b_star : float Dimensione minore del nucleo confinato di calcestruzzo [mm].
Returns¶
float Passo massimo S_L [mm].
Raises¶
ValueError Se d_SL <= 0 o b_star <= 0.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_deck_capacity_shear(V_E_i, gamma_bd, M_lprc_i, M_Rd_base, q)
¶
Taglio di progetto per l'impalcato in direzione trasversale [kN].
NTC18 §7.9.5.2.1, Formula [7.9.12]: V_Ed = V_E,i * (gamma_bd * M_lprc,i / M_lprc,i) <= V_E,i * q
Nota: nella formula normativa il termine M_lprc,i al numeratore e denominatore e' il momento flettente analisi vs momento resistente — nella pratica si usa gamma_bd come amplificatore diretto moltiplicato per V_E,i, con il limite superiore V_E,i * q.
Parameters¶
V_E_i : float Taglio in sommita' pila i dall'analisi [kN]. gamma_bd : float Fattore di amplificazione da Formula 7.9.11 (adimensionale). M_lprc_i : float Momento resistente effettivo alla base della pila i [kNm]. M_Rd_base : float Momento resistente di riferimento (denominatore) alla base [kNm]. In generale coincide con M_lprc_i; puo' differire se si usa il momento di prima plasticizzazione. q : float Fattore di comportamento (adimensionale).
Returns¶
tuple[float, float] (V_Ed, V_Ed_max): taglio di progetto e limite superiore [kN].
Raises¶
ValueError Se V_E_i < 0, M_Rd_base <= 0 o q < 1.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_end_stop_force(S, a_0, Q, g=_G)
¶
Forza di dimensionamento dei dispositivi di fine corsa [kN].
NTC18 §7.9.5.3.3: alpha = 1,5 * S * a_0 / g F_fc = alpha * Q
In mancanza di verifica analitica dinamica, i dispositivi di fine corsa vengono dimensionati per una forza F_fc = alpha * Q, dove alpha e' l'accelerazione normalizzata di progetto valutata allo SLC.
Parameters¶
S : float Coefficiente di amplificazione del sito (S = S_s * S_t) [-]. a_0 : float Accelerazione orizzontale massima su sito rigido allo SLC [m/s^2]. Q : float Peso della parte di impalcato collegata al dispositivo [kN]. Nel caso di due parti di impalcato collegate tra loro, si usa il minore dei due pesi. g : float Accelerazione di gravita' [m/s^2], default 9,81.
Returns¶
float Forza di dimensionamento F_fc [kN].
Raises¶
ValueError Se Q < 0, a_0 < 0 o g <= 0.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_overlap_length(d_rel)
¶
Lunghezza minima della zona di sovrapposizione (appoggio) [m].
NTC18 §7.9.5.3.4: l_ov = d_rel + 0,400 m
La lunghezza minima e' ottenuta aggiungendo allo spostamento relativo tra le parti lo spazio minimo di 400 mm per l'apparecchio di appoggio.
Parameters¶
d_rel : float Spostamento relativo tra le parti (valutato secondo §7.2.2) [m].
Returns¶
float Lunghezza minima di sovrapposizione l_ov [m].
Raises¶
ValueError Se d_rel < 0.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_overstrength_factor(q, v_k=0.0)
¶
Fattore di sovraresistenza gamma_id per progettazione in capacita' [-].
NTC18 §7.9.5, Formula [7.9.7]: gamma_id = 0,7 + 0,2*q >= 1
Per sezioni in c.a. con v_k > 0,1, il fattore e' moltiplicato per [1 + 2*(v_k - 0,1)^2].
Parameters¶
q : float Fattore di comportamento utilizzato nel calcolo [-]. v_k : float Sollecitazione di compressione normalizzata N_fd / A_k [-], default 0. Se v_k > 0,1 per sezioni in c.a. si applica il moltiplicatore.
Returns¶
float Fattore di sovraresistenza gamma_id [-].
Raises¶
ValueError Se q < 1.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_period_multispan(weights, displacements, g=_G)
¶
Periodo fondamentale del ponte in direzione trasversale — formula approssimata [s].
NTC18 §7.9.4.1, Formula [7.9.6]. Applicabile per la direzione trasversale (caso c):
T_1 = 2*pi * sqrt( sum(G_i * d_i^2) / (g * sum(G_i * d_i)) )
Parameters¶
weights : np.ndarray Pesi delle masse concentrate G_i [kN]. displacements : np.ndarray Spostamenti dei gradi di liberta' d_i [m] sotto sistema di forze statiche trasversali f_i = G_i (analisi di forze statiche unitarie). g : float Accelerazione di gravita' [m/s^2], default 9,81.
Returns¶
float Periodo fondamentale T_1 [s].
Raises¶
ValueError Se weights e displacements hanno dimensioni diverse, o se la somma dei contributi e' nulla.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_period_single_mass(M, K)
¶
Periodo fondamentale del ponte — modello a massa singola [s].
NTC18 §7.9.4.1, Formula [7.9.4]. Applicabile per: - direzione longitudinale/trasversale, ponti a travata semplicemente appoggiata (caso a); - direzione longitudinale, ponti a travata continua (caso b).
T_1 = 2*pi * sqrt(M / K)
Parameters¶
M : float Massa concentrata in corrispondenza dell'impalcato [kN*s^2/m]. Tipicamente M = G / g dove G e' il peso [kN] e g = 9,81 m/s^2. K : float Rigidezza laterale del modello [kN/m]: - pila singola nel caso (a); - rigidezza complessiva delle pile nel caso (b).
Returns¶
float Periodo fondamentale T_1 [s].
Raises¶
ValueError Se M <= 0 oppure K <= 0.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_pier_capacity_shear(M_lpec, M_lprc, l_p)
¶
Taglio di equilibrio con le capacita' flessionali di estremita' pila [kN].
NTC18 §7.9.5.1.1, Formula [7.9.10b]: V_prc = (M_lpec + M_lprc) / l_p
Parameters¶
M_lpec : float Momento resistente della sezione di estremita' superiore (testa) [kNm]. M_lprc : float Momento resistente della sezione di estremita' inferiore (base) [kNm]. l_p : float Lunghezza della pila tra le due sezioni di estremita' [m]. Per pila incastrata solo alla base, e' la distanza tra la sezione di incastro e la sezione di momento nullo.
Returns¶
float Taglio V_prc [kN].
Raises¶
ValueError Se l_p <= 0.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_pier_design_shear(gamma_bd, V_prc)
¶
Domanda di taglio amplificata per progettazione in capacita' della pila [kN].
NTC18 §7.9.5.1.1, Formula [7.9.10a]: V_Ed = gamma_bd * V_prc
Parameters¶
gamma_bd : float Fattore di amplificazione (da bridge_pier_shear_overstrength) [-]. V_prc : float Taglio di equilibrio con le capacita' flessionali (da bridge_pier_capacity_shear) [kN].
Returns¶
float Domanda di taglio V_Ed [kN].
Raises¶
ValueError Se gamma_bd < 1 o V_prc <= 0.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_pier_shear_overstrength(q, V_E, V_prc)
¶
Fattore di amplificazione gamma_bd per taglio pila in progettazione capacita' [-].
NTC18 §7.9.5.1.1, Formula [7.9.11]: 1,00 <= gamma_bd = 2,25 - q*(V_E/V_prc) <= 1,25
Parameters¶
q : float Fattore di comportamento utilizzato nel calcolo [-]. V_E : float Taglio derivante dall'analisi globale [kN]. V_prc : float Taglio di equilibrio con le capacita' flessionali di estremita' (= (M_lpec + M_lprc) / I_p) [kN].
Returns¶
float Fattore di amplificazione gamma_bd [-], clampato in [1,00; 1,25].
Raises¶
ValueError Se q < 1 o V_prc <= 0.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_regularity_factor(r_max, r_min)
¶
Fattore di regolarita' K_R e verifica di regolarita' del ponte.
NTC18 §7.9.2.1, Formula [7.9.2]. Il ponte e' regolare se r_bar = r_max / r_min < 2; altrimenti si riduce q tramite K_R = 2 / r_bar, con q = q_i * K_R >= 1.
Parameters¶
r_max : float Massimo rapporto r_i = q_i * M_fd,i / M_Rd,i tra le pile [-]. r_min : float Minimo rapporto r_i tra le pile [-].
Returns¶
tuple[float, float] - r_bar: rapporto r_max / r_min [-] - K_R: fattore di regolarita' (1.0 se regolare, 2/r_bar altrimenti) [-]
Raises¶
ValueError Se r_min <= 0 oppure r_max < r_min.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_seismic_forces_multispan(S_d_T1, T_1, weights, displacements, g=_G)
¶
Forze sismiche equivalenti su ponti a travata continua — direzione trasversale [kN].
NTC18 §7.9.4.1, Formula [7.9.5]. Applicabile per il caso (c) — analisi statica lineare in direzione trasversale:
F_i = 4*pi^2 * S_d(T_i) / (T_i^2 * g^2) * d_i * G_i
Parameters¶
S_d_T1 : float Ordinata dello spettro di progetto al periodo T_1 [m/s^2]. T_1 : float Periodo fondamentale del ponte in direzione trasversale [s]. weights : np.ndarray Pesi G_i delle masse concentrate [kN]. displacements : np.ndarray Spostamenti d_i [m] sotto sistema di forze statiche f_i = G_i. g : float Accelerazione di gravita' [m/s^2], default 9,81.
Returns¶
np.ndarray Forze sismiche F_i [kN].
Raises¶
ValueError Se weights e displacements hanno dimensioni diverse o T_1 <= 0.
Source code in src/pyntc/checks/seismic_bridges.py
bridge_tie_spacing_longitudinal(d_BL)
¶
Passo massimo barre longitudinali per contrastare instabilita' [mm].
NTC18 §7.9.6.1.2, Formula [7.9.22]: S_L <= 6 * d_BL
Parameters¶
d_BL : float Diametro delle barre longitudinali compresse [mm].
Returns¶
float Passo massimo S_L [mm].
Raises¶
ValueError Se d_BL <= 0.