• Non ci sono risultati.

6. Progetto dei controventi BRBs

6.4. Procedure implementate

6.4.2. Procedura “CalcolaFyEq”

Si riporta di seguito il codice della procedura “CalcolaFyEq” finalizzata al calcolo della fy,eq da assegnare ai controventi dei casi di studio analiz- zati (cfr. cap. Capitolo 3). Tale procedura è stata implementata in modo tale da soddisfare entrambi i requisiti illustrati per il progetto delle ten- sioni di snervamento dei BRBs, ovvero il requisito sulle resistenze late- rali e quello sulle duttilità.

Sub CalcolaFyEq()

Dim VBRBs As Double, ABRBs As Double, CosAlfa As Double

Dim FyEq As Double, FyMax As Double, FyMin As Double, Fyeq_miu As Double Dim Es As Double, Miumax As Double, L_BRB As Double

Dim RappArea As Double Dim Riga As String Dim nPiani As Integer Dim Delta_design As Double

Dim DeltaD_SL As Double Dim DeltaD_COL As Double Dim Delta_Max As Double Dim FyeqPrec As Double

Definito il nome della routine, sono effettuati i dimensionamenti delle variabili utilizzate nella procedura quali (in ordine):

- il taglio richiesto e l’area equivalente dei BRBs, il coseno dell’angolo di inclinazione rispetto all’orizzontale del controvento;

- la tensione equivalente da progettare, la massima tensione equiva- lente attribuibile, la tensione minima con cui è realizzabile il nucleo dei BRBs, la tensione equivalente derivante dal calcolo per duttilità; - il rapporto tra l’area del nucleo e l’area equivalente;

- una variabile ausiliare utile a scrivere correttamente nelle celle del foglio di calcolo;

- il numero di piani del telaio;

- la lunghezza dell’intero controvento, il modulo elastico dell’acciaio, la tensione di snervamento equivalente del BRBs; la massima tensione attribuibile al nucleo;

- i drift di progetto;

- il parametro progettuale costituito dal rapporto fra drift di progetto e drift disponibili per lo Stato Limite considerato;

- la componente dei drift dovuta all’allungamento assiale dei pilastri; - l’aliquota di drift limite dovuta esclusivamente all’allungamento dei

controventi;

- la tensione di snervamento equivalente fy,eq presente al passo prece- dente del progetto.

CosAlfa = Worksheets("Dati").Range("D11") FyMax = Worksheets("Dati").Range("H13") FyMin = Worksheets("Dati").Range("H14") RappArea = Worksheets("Dati").Range("D37") nPiani = Range("Dati!D15") Es = Worksheets("Dati").Range("H15") Miumax = Worksheets("Dati").Range("H31") L_BRB = Worksheets("Dati").Range("D29")

For I = 1 To nPiani Riga = Trim(Str(16 - I))

VBRBs = Worksheets("Progetto").Range("O" + Riga) ABRBs = Worksheets("Progetto").Range("Q" + Riga)

Delta_design =Min(Worksheets("Progetto").Range("F"+Riga), Worksheets("Progetto").Range ("G" + Riga)) FyeqPrec = Worksheets("Progetto").Range("P" + Riga)

Si passa all’interno di un ciclo gestito dall’indice I, che va da 1 al numero di piani, viene impostato correttamente il valore della variabile ausiliaria “Riga” cosi da operare coerentemente nelle celle del foglio di calcolo, infine per ogni piano sono memorizzati:

- il taglio richiesto ai BRBs; - l’area equivalente presente;

- i drift di progetto, presi come il minimo tra la domanda e la capacità di spostamento;

- la tensione equivalente assegnata al passo precedente. Riga = Trim(Str(29 - I))

DeltaD_SL = Worksheets("Progetto").Range("I" + Riga) DeltaD_COL = Worksheets("Progetto").Range("L" + Riga) Delta_Max = (Delta_design - DeltaD_COL) / DeltaD_SL Fyeq_miu = (Delta_Max * Es) / (L_BRB * Miumax * 1000)

Reimpostata la riga su cui leggere altre grandezze, sono memorizza- ti il rapporto fra drift di progetto e drift limite e la parte di drift deri- vanti dall’allungamento assiale dei pilastri. Successivamente sono calco- lati i drift massimi sopportati dai BRBs e la tensione equivalente otte- nuta per duttilità.

Riga = Trim(Str(16 - I)) If ABRBs > 0 Then If VBRBs > 0 Then

FyEq = 1 / 1.1184 * (VBRBs / (2 * ABRBs * CosAlfa) * 10 - 0.0316 * Es * * Delta_Max* CosAlfa / L_BRB / 1000)

Reimpostata nuovamente la riga delle celle su cui operare si passa attraverso due condizioni: se sono presenti BRBs al piano i-esimo e vi è

richiesta di taglio resistente, allora viene calcolata la tensione equiva- lente per resistenza attraverso l’equazione 2.60, cui kh = 0.0316.

If FyEq > FyMax Or Worksheets("Progetto").Range("S" + Riga) = "Resistenza" Then FyEq = FyMax

Worksheets("Progetto").Range("P" + Riga).Value = FyMax

ABRBs = VBRBs / (2 * CosAlfa) * 1 / (1.1181 * FyMax + 0.00316 * Es * * Delta_Max * CosAlfa / L_BRB / 1000) * 10

Worksheets("Progetto").Range("Q" + Riga).Value = ABRBs Worksheets("Progetto").Range("S" + Riga).Value = "Resistenza"

Se si verifica una delle seguenti condizioni:

- la tensione derivante dal calcolo precedente è maggiore della massi- ma;

- la tensione e l’area equivalente eventualmente già presenti sono sta- te inserite per soddisfare criteri di resistenza piuttosto che rigidezza; allora alla tensione equivalente è assegnato il valore massimo, con il conseguente ricalcolo e scrittura dell’area equivalente. Al termine di questi passaggi è indicato che l’area è stata inserita secondo un calcolo per resistenza. La seconda condizione per cui si deve imporre fy,eq = fy,eq,max è necessariaaffinché, passando da un iterazione per resi- stenza ad un'altra, nel caso in cui fosse stata assegnata la tensione mas- sima (e la relativa area), questa venga mantenuta anche se non stret- tamente indispensabile. Ciò è utile poiché la procedura “CalcolaABRBs” evita di modificare l’area presente solo nel caso in cui la tensione equi- valente è quella massima; da qui deriva l’esigenza di mantenerla tale. Nel caso di una riduzione non controllata dell’area, le due routine alter- nerebbero infatti ognuna la “propria” area, impedendo di fatto la con- vergenza del progetto.

ElseIf FyEq < FyMin * RappArea Then FyEq = FyMin * RappArea

End If

Diversamente, se la tensione equivalente è minore del prodotto fy,min ∙Ac/Aeq (accade spesso assegnando valori di q elevati), la tensione viene posta pari a tale prodotto.

Worksheets("Progetto").Range("P" + Riga).Value = MAX(FyEq, Fyeq_miu)

Alla fine la tensione equivalente viene presa come la massima tra i valori calcolati per resistenza e duttilità.

Else

Worksheets("Progetto").Range("P" + Riga).Value = MAX(FyMin * RappArea, Fyeq_miu)

End If

Se sono presenti BRBs, ma il taglio richiesto ai controventi è nullo, situazione che si verifica nel caso di progetti realizzati per duttilità con valori elevati di q, il valore di tensione equivalente da assegnare è il massimo tra la tensione minima e la tensione calcolata per duttilità. Else

If VBRBs > 0 Then

Worksheets("Progetto").Range("P" + Riga).Value = FyMax

ABRBs = VBRBs / (2 * CosAlfa) * 1 / (1.1181 * FyMax + 0.00316 * Es * * Delta_Max* CosAlfa / L_BRB / 1000) * 10

Worksheets("Progetto").Range("Q" + Riga).Value = ABRBs Worksheets("Progetto").Range("S" + Riga).Value = "Resistenza"

Diversamente, se se non vi è area di BRBs ma è necessario fornire resistenza a taglio per adeguare il telaio, vengono inseriti controventi con tensione equivalente massima ed area, tali da soddisfare la richie- sta. Else Worksheets("Progetto").Range("P" + Riga).Value = 0 End If End If Next I End Sub

Infine, nel caso in cui non vi siano BRBs inseriti e il taglio richiesto sia nullo, non viene inserita nessuna tensione.

Terminato il ciclo, è possibile passare all’iterazione successiva o al progetto per rigidezza.

Documenti correlati