Il Bar dell'Ingegneria

VerSezSLU

« Older   Newer »
 
  Share  
.
  1.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,162
    Reputation
    +294

    Status
    Offline
    Ricordando le mie funzioni dedicate alla determinazione del dominio di rottura relativo a sezioni regolari sottoposte a presso-tensoflessione retta e ricordando che è pubblicata altrove (forse sul sito di LExatus) ho pensato di pubblicarla anche qui unitamente a qualche commento sul codice.
    Attached Image
    VersezSLU

     
    Top
    .
  2.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,162
    Reputation
    +294

    Status
    Offline
    Il file verSezSLU.xls è un foglio di calcolo in cui sono implementate diverse funzioni utente UDF finalizzate al calcolo del momento di rottura di una sezione avente una delle forme seguenti:

    - sezione rettangolare
    - sezione circolare
    - sezione trapezia
    - sezione a T

    e sottoposte a presso o tenso flessione retta.

    Il file contiene diversi fogli che costituiscono una interfaccia illustrativa dei vari parametri/dati/risultati coinvolti nella chiamata della UDF.

    Le funzioni personalizzate definite sono sostanzialmente due per ogni tipo di sezione aventi la seguente forma:

    VsezRettSLU01(B,H,c,AfInF, AfSup, AfParete, fcd, fyd,Ned, flag)
    DominioRotturaRett(B,H,c,AfInF, AfSup, AfParete, fcd, fyd, x , flag)

    per la sezione rettangolare

    in cui il nome delle funzioni cambia in

    VsezTrapSLU01(Binf, bsup ,H,c,AfInF, AfSup, AfParete, fcd, fyd,Ned, flag)
    Punto_del_dominio_trap(Binf, Bsup, H, c, AfIn, AfSup, AfParete, fcd , fyd, x, flag)

    per la sezione trapezia

    VsezCircSLU01(D,c,nF, dF, Af_conc_tot, y_conc, fcd, fyd,Ned, flag)
    Punto_del_dominio_circ(D, c, nF, dF, Af_conc_tot, y_conc, fcd , fyd, x, flag)

    per la sezione circolare

    VsezTSLU01(Binf, Hinf, Bsup ,Hsup ,c ,AfInF, AfSup, Afmed,fcd, fyd,Ned, flag)
    Punto_del_dominio_T(Binf, Hinf, Bsup, Hsup, c, AfIn, AfSup, Afmed,fcd , fyd, x, flag)

    per al sezione a T
     
    Top
    .
  3.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,162
    Reputation
    +294

    Status
    Offline
    La differenza tra le due funzioni consiste nel fatto che la prima conduce il calcolo della sezione per fissato valore di Ned, mentre la seconda conduce il calcolo di Mrd o di Nrd per fissata posizione dell'asse neutro.

    Utilizzando la seconda funzione e facendo variare il parametro x che individua la posizione dell'asse neutro nell'intero range di variabilità (da 0 a 10) con opportuno passo di discretizzazione anche differenziato in funzione del campo in cui ci si trova, è possibile tracciare il dominio di rottura.

    Il parametro x che individua la posizione dell'asse neutro è collegato al "numero del campo di rottura". Cosi il campo di rottura n° 1 è caratterizzato da 0<= x <=1 il campo 3 è caratterizzato da 2<= x <=3.
    Per poter disegnare l'intero dominio di rottura quindi anche la parte relativa ai momenti negativi, la numerazione dei campi prosegue oltre il quinto arrivando a 10 secondo lo schema che segue:
    Attached Image
    campi

     
    Top
    .
  4.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,162
    Reputation
    +294

    Status
    Offline
    La pubblicazione del file:

    col link che segue pubblico l'ultima versione del file:

    VerSezSLU ver 7.03.02

    Ribadisco che i fogli che sono contenuti nel file sono soltanto una interfaccia esplicativa all'uso delle varie funzioni contenute ma che in effetti la "roba preziosa" sono proprio le funzioni.
    Queste possono essere esportate in qualsiasi vostro foglio di calcolo ed avere quindi a disposizione tutte le funzioni.
    Potete comunque usare l'interfaccia proposta e comporre le vostre relazionid i calcolo attraverso la macchinetta fotografica con la quale catturerete solo quelle parti di schermo che vi interessa riportare in relazione.

    Unica limitazione che pongo è quella di non ri-pubblicare il file mediante link diverso da quello che qui riporto. In sostanza il download del file deve avvenire sempre dal mio box.com

    Nel caso in cui invece aggiungete/correggete/modificate il codice, è obbligatorio riportare sempre i riferimenti ai vari autori che hanno contribuito. Nello specifico vi ricordo che il codice non è interamente mio, vi sono un paio di funzioni che io ho prelevato da un codice il cui autore è l'ing. Cattivelli (docHollywood) ed il cui riferimento è riportato all'interno del codice stesso.
    Naturalmente sarebbe gradita una comunicazione di modifica/miglioramento e la comunicazione del nuovo link di pubblicazione, ma non è obbligatoria.
     
    Top
    .
  5.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,162
    Reputation
    +294

    Status
    Offline
    La funzione che determina la deformazione di una generica fibra

    Si puo' dire che è il nocciolo della questione. La funzione determina la deformazione della fibra per fissata posizione dell'asse neutro attraverso il parametro x

    CODICE
    Function CalcEpsilon_rottura(H As Double, dmin As Double, _
                                       di As Double, delta As Double, _
                                       Optional epsSmax As Double = 0.0675, _
                                       Optional epsCmax As Double = 0.0035, _
                                       Optional epsCrif As Double = 0.002) As Double

    '   Restituisce la deformazione limite per il calcolo del dominio MN funzione dei parametri immessi
    '   Attenzione nell'uso: valori positivi di epsilon per il cls non hanno alcun senso! Controllare la funzione SigmaC
    '   Parametri:
    '   H=altezza sezione (mm)
    '   dmin = copriferro superiore o inferiore (mm)
    '   di = distanza della fibra di cui si calcola epsilon dall'estremità superiore della sezione (mm)
    '   delta = coefficiente di campo (da 0 a 5 per i momenti positivi che tendono le fibre inferiori,
    '   da 5 a 10 per i momenti negativi che tendono le fibre superiori)
    '   epsSmax = deformazione limite dell'acciaio
    '   epsCmax = deformazione limite del cls
    '   epsCrif = deformazione limite del cls per compressione semplice

    Dim x0 As Double ' variabile di appoggio

    Select Case delta
       Case 0 To 1
               CalcEpsilon_rottura = epsSmax - (H - dmin - di) / (H - dmin) * (epsSmax * delta)
       Case 1 To 2
               CalcEpsilon_rottura = epsSmax - (H - dmin - di) / (H - dmin) * (epsSmax + epsCmax * (delta - 1))
       Case 2 To 3
               CalcEpsilon_rottura = -epsCmax + di / (H - dmin) * (epsCmax + epsSmax * (3 - delta))
       Case 3 To 4
              CalcEpsilon_rottura = epsCmax * (-1 + di * (4 - delta) / (H - dmin) + di * (delta - 3) / H)
       Case 4 To 5
           x0 = (epsCmax - epsCrif) * H / epsCmax
           CalcEpsilon_rottura = -epsCrif + epsCrif * (5 - delta) * (di - x0) / (H - x0)
       Case 5 To 6
           CalcEpsilon_rottura = -(6 - delta) * epsCrif - (delta - 5) * epsCmax * di / H
       Case 6 To 7
             CalcEpsilon_rottura = -epsCmax * ((7 - delta) * dmin * (H - di) / (H * (H - dmin)) + (di - dmin) / (H - dmin))
       Case 7 To 8
             CalcEpsilon_rottura = -epsCmax * (di - dmin) / (H - dmin) + (delta - 7) * epsSmax * (H - di) / (H - dmin)
       Case 8 To 9
             CalcEpsilon_rottura = (epsSmax + (9 - delta) * epsCmax) * (H - di) / (H - dmin) - (9 - delta) * epsCmax
       Case 9 To 10
             CalcEpsilon_rottura = (10 - delta) * epsSmax * (H - di) / (H - dmin) + (delta - 9) * epsSmax
       Case Else
           CalcEpsilon_rottura = 0
    End Select

    End Function


    Le formule contenute all'interno dei vari case, le ho determinate io con geometrica pazienza, fissando all'interno di ciascun campo una generica posizione dell'asse neutro. La posizione l'ho definita come aliquota di (x-campo) o (campo-x) a secondo i casi, di una deformazione nota e caratterizzante i limiti di campo.
    Per esempio nel primo campo, ho fissato la posizione dell'asse neutro secondo lo schema postato a seguire e ricavandomi la deformazione della fibra posta a quota di attraverso semplici (ma non sempre è stato semplice) considerazioni geometriche.
    Attached Image
    Campo01

     
    Top
    .
  6.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,162
    Reputation
    +294

    Status
    Offline
    Conoscendo la deformazione in corrispondenza di una fibra, è possibile determinare la tensione corrispondente dalla legge costitutiva del materiale.
    La funzione che segue determina la tensione nel cls assumendo diverse leggi costitutive definite dal parametro "forma".


    CODICE
    Public Function SigmaC(eps As Double, sigmaC_max As Double, forma As Integer, _
                                   Optional Emodulus As Double = 0#, _
                                   Optional epsCmax As Double = 0.0035, _
                                   Optional epsCrif As Double = 0.002) As Double

    'Restituisce la tensione del calcestruzzo corrispondente alla deformazione epsilon data
    'Parametri:
    '   eps = deformazione epsilon di cui calcolare la tensione sigma
    '   sigma_max = tensione massima (MPa)
    '   forma = parametro di forma del diagramma:
    '           forma = 1 => parabola-rettangolo EC2
    '           forma = 2 => perfettamente elastico lineare per compressione (il modulo di elasticità è definito da epsCmax)
    '           forma = 3 => elasto-plastico (il modulo di elasticità se non definito è calcolato da epsCrif)
    '   Emodulus = modulo di elasticità (necessario per forma pari a ?) (MPa)
    '   epsSmax = deformazione limite dell'acciaio
    '   epsCmax = deformazione limite del cls
    '   epsCrif = deformazione limite del cls per compressione semplice

    If forma = 1 Then
       Select Case eps
           Case -epsCmax To -epsCrif
               SigmaC = -sigmaC_max
           Case -epsCrif To 0
               SigmaC = -sigmaC_max * (1 - (1 - Abs(eps) / epsCrif) ^ 2) 'secondo EC2
           Case Else
               SigmaC = 0#
       End Select
       Exit Function
    End If

    If forma = 2 Then
       If eps < 0 Then
           SigmaC = eps * (sigmaC_max / epsCmax)
       Else
           SigmaC = 0#
       End If
       Exit Function
    End If

    If forma = 3 Then
       If (Emodulus = 0 And epsCrif <> 0) Then Emodulus = sigmaC_max / epsCrif
       Select Case eps
           Case -epsCmax To -epsCrif
               SigmaC = -sigmaC_max
           Case -epsCrif To 0
               SigmaC = eps * Emodulus
           Case Else
               SigmaC = 0#
       End Select
       Exit Function
    End If

    SigmaC = 0#

    End Function
     
    Top
    .
  7.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,162
    Reputation
    +294

    Status
    Offline
    Nota la deformazione in corrispondenza di un tondino di armatura, la funzione che determina la tensione nel tondino è la seguente:

    CODICE
    Public Function SigmaS(eps As Double, sigmaS_max As Double, forma As Integer, _
                                   Optional Emodulus As Double = 210000#, _
                                   Optional epsSmax As Double = 0.0675) As Double
                                   
    'Restituisce la tensione del'acciaio corrispondente alla deformazione epsilon data
    'Parametri:
    '   eps = deformazione epsilon di cui calcolare la tensione sigma
    '   sigmaS_max = tensione massima (MPa)
    '   forma = parametro di forma del diagramma:
    '           forma = 1 => elasto-plastico
    '           forma = 2 => perfettamente elastico lineare (il modulo di elasticità è definito da epsSmax)
    '           forma = 3 => elasto-plastico incrudente (da sviluppare!)
    '   Emodulus = modulo di elasticità (necessario per forma pari a 1) (MPa)
    '   epsSmax = deformazione limite dell'acciaio
    '   epsCmax = deformazione limite del cls
    '   epsCrif = deformazione limite del cls per compressione semplice

    Dim epsSrif As Double

    If Emodulus <> 0 Then
       epsSrif = sigmaS_max / Emodulus
    Else
       epsSrif = 0#
    End If

    If forma = 1 Then
       Select Case eps
           Case -epsSmax To -epsSrif
               SigmaS = -sigmaS_max
           Case -epsSrif To epsSrif
               SigmaS = eps * Emodulus
           Case epsSrif To epsSmax
               SigmaS = sigmaS_max
           Case Else
               SigmaS = 0#
       End Select
       Exit Function
    End If

    If forma = 2 Then
       SigmaS = eps * (sigmaS_max / epsSmax)
       Exit Function
    End If

    SigmaS = 0#

    End Function


    Le tre funzioni fin qui esposte sono praticamente dell'ing. Cattivelli (noto nel newGroup di discussione di ingegneriacivile col nik DocHollywood). Io ho semplicemente rivisto, ricalcolando per conto mio le relazioni geometriche della prima funzione, ed ampliato i campi da 5 a 10 per avere l'intero dominio.
     
    Top
    .
  8.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,162
    Reputation
    +294

    Status
    Offline
    Ecco adesso la funzione che per fissato valore del parametro x (posizione dell'asse neutro), determina il Mrd ed Nrd (ciè il punto sul dominio di rottura.

    CODICE
    Public Function DominioRotturaRett(B As Double, H As Double, c As Double, _
                                     AfInF As Double, AfSup As Double, AfParete As Double, _
                                     fCd As Double, fyd As Double, _
                                     x As Double, flag As Integer)
                                     
    ' Punto_del_dominio si appoggia alle funzioni
    ' CalcEpsilon_rottura, SigmaC, SigmaS
    ' messe a disposizione da "ing. D.Cattivelli (docholly@infinito.it)" nel suo file CNM.xls
                                   
    ' la funzione calcola lo sforzo normale e il momento flettente
    ' caratterizzanti un punto del dominio di rottura. Il punto e' definito
    ' attraverso il parametro x, variabile tra 0 e 5 (per flessione che tende le fibre inferiori)
    ' e da 5 a 10 (per flessione che tende le fibre superiori), che rappresenta
    ' la posizione all'interno del campo di rottura
    '
    ' input:
    ' dimensioni in [mm], aree di ferro in [mm²], resistenze in [MPa]
    ' La funzione restituisce valori diversi in base al parametro flag
    ' flag = 1, restituisce Nrd in [N]
    ' flag = 2, restituisce Mrd in [N*mm]


    Dim diVisioni As Integer ' numero di strisce in cui si suddivide la sezione
    Dim count As Integer


    Dim yg As Double 'distanza del baricentro dal bordo superiore
    Dim y As Double ' distanza del punto generico rispetto al bordo superiore
    Dim z As Double ' variabile di appoggio per le deformazioni
    Dim w As Double ' variabile di appoggio per le tensioni

    Dim N_dominio As Double
    Dim M_dominio As Double
    yg = H / 2
    diVisioni = 100 ' variare questa variabile per aumentare o diminuire la precisione di calcolo

    ' parte relativa al calcestruzzo
    For count = 1 To diVisioni
     y = (count - 1 / 2) * H / diVisioni
     z = CalcEpsilon_rottura(H, c, y, x)
     w = SigmaC(z, fCd, 1)
     N_dominio = N_dominio + w * B * H / diVisioni
     M_dominio = M_dominio + w * B * H / diVisioni * (y - yg)
    Next

    ' acciaio superiore
     y = c
     z = CalcEpsilon_rottura(H, c, y, x)
     w = SigmaS(z, fyd, 1)
     N_dominio = N_dominio + w * AfSup
     M_dominio = M_dominio + w * AfSup * (y - yg)
     
    ' acciaio inferiore
     y = H - c
     z = CalcEpsilon_rottura(H, c, y, x)
     w = SigmaS(z, fyd, 1)
     N_dominio = N_dominio + w * AfInF
     M_dominio = M_dominio + w * AfInF * (y - yg)

    ' ferro di parete
     y = H / 2
     z = CalcEpsilon_rottura(H, c, y, x)
     w = SigmaS(z, fyd, 1)
     N_dominio = N_dominio + w * AfParete
     M_dominio = M_dominio + w * AfParete * (y - yg)

    Select Case flag
       Case 1
           DominioRotturaRett = N_dominio
       Case 2
           DominioRotturaRett = M_dominio
    End Select

    End Function


    La funzione è abbastanza commentata ed è di semplice lettura.

    L'insieme delle quattro funzioni fin qui presentate è sufficiente allo scopo del tracciamento del dominio di rottura.
    Basta creare una tabella in cui nella prima colonna si fa variare la x a passo opportuno da 0 a 10, una seconda colonna in cui si richiama la funzione testè scritta calcolata per il valore x della prima colonna e per flag = 1, ed una terza colonna con la stessa funzione ma per flag=2. Naturalmente la funzione dovrà essere completata coi restanti dati di sezione, armatura e resistenza dei materiali.

    Diagrammando le due colonne che rappresentano Nrd ed Mrd si ottiene l'intero dominio di rottura.

    Notare il richiamo alla funzione che calcola la deformazione.

    Per esempio nella parte relativa al cls:

    - la sezione viene divisa in un numero fissato di strisce uguali
    - per ciascuna striscia viene determinata l’area
    - per ciascuna striscia viene determinata la sua posizione rispetto al bordo compresso
    - per ciascuna striscia ed in funzione della sua posizione viene determinata la deformazione
    - nota la deformazione viene determinato il valore della tenzione
    - nota la tensione si determina il contributo della striscia allo sforzo normale totale ed al momento flettente totale

    Stessa cosa avviene per la parte relativa alle armature.

    Pertanto chi volesse estendere questa funzione a forme di sezioni diverse da quella rettangolare, non deve far altro che agire proprio in queste due parti di codici.
    E' proprio in questa funzione che, volendo, si può introdurre un maggior numero di livelli intermedi di armatura , ma tenere presente che poi necessita modificare l'intestazione della funzione in modo da poter passare alla stessa i dati relativi ai nuovi livelli di armatura.
     
    Top
    .
  9.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,162
    Reputation
    +294

    Status
    Offline
    Non penso di illustrare le altre funzioni, chi volesse puo' leggerle all'interno del codice e nel caso chiedere delucidazioni.

    Ritengo invece più utile illustrare la maniera di utilizzo della funzioni all'interno di propri fogli. Cosa che farò coi prossimi post.
     
    Top
    .
  10.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    3,345
    Reputation
    +212

    Status
    Offline
    volevo proporre una mia idea per implementare nel foglio excel la possibilità di considerare più strati di armatura passando attraverso la definizione di un'area di ferro equivalente. preciso che la simbologia da me usata non coincide con quella del foglio excel, per cui i miei simboli hanno significato solo all'interno del mio post.

    png


    dalla figura sopra si hanno le seguenti relazioni:

    (d1 - x)*tg(a) = e1
    (d - x)*tg(a) = e2

    dividendo membro a membro:

    e1/e2 = (d1 - x)/(d - x)
    e1 = e2*(d1 - x)/(d - x)

    sarà anche:

    sigma1 = E*e1
    sigma2 = E*e2

    quindi, agli effetti del momento:

    M = As1*sigma1*(d1 - x) + As2*sigma2*(d - x) = E*[As1*((d1 - x)/(d - x))^2 + As2]*(d - x)*e2

    pertanto, agli effetti del momento, nel caso di più strati di barre disposti a diverse altezze entro la sezione possiamo assumere un'area equivalente (tutta posta all'altezza di calcolo d riferita ad As2) pari a:

    Aeq(M) = As1*[(d1 - x)/(d - x)]^2 + As2

    ciò equivale a dire che, ai fini del momento, per trasportare alla quota di calcolo d un'area di ferro As1 posta ad altezza d1 occorre moltiplicarla per il fattore riduttivo [(d1 - x)/(d - x)]^2 sommandola poi all'area di ferro As2 già ivi presente.

    ripetendo il tutto per lo sforzo normale:

    N = As1*sigma1 + As2*sigma2 = E*[As1*(d1 - x)/(d - x) + As2]*e2

    si trova un'area equivalente agli effetti dello sforzo normale pari a:

    Aeq(N) = As1*(d1 - x)/(d - x) + As2

    ciò equivale a dire che, ai fini dello sforzo normale, per trasportare alla quota di calcolo d un'area di ferro As1 posta ad altezza d1 occorre moltiplicarla per il fattore riduttivo (d1 - x)/(d - x) sommandola poi all'area di ferro As2 già ivi presente.

    in definitiva, per non modificare troppo le funzioni già implementate nel foglio, si può pensare di aggiungere a monte una nuova funzione che abbia lo scopo di calcolare le aree equivalenti (ai fini del momento e dello sforzo normale) di una serie di barre poste a quote differenti, passando alle funzioni già implementate i valori ottenuti Aeq(M) ed Aeq(N).

    nota: l'esempio proposto vale per una particolare configurazione deformata della sezione. bisognerà verificare (ma non credo, pur non avendolo fatto) che anche in altri campi di rottura le equivalenze delle aree di ferro seguano le formule da me postate sopra.
     
    Top
    .
  11.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,162
    Reputation
    +294

    Status
    Offline
    Come utilizzare le funzioni in un proprio foglio.

    - aprire il nuovo foglio excel
    - aprire il file verSezSLU
    - entrare in ambiente progettazione (ALT F11 )
    - individuare il modulo "Rottura" all'interno del progetto VersezSLU
    - selezionare e trascinare il modulo "Rottura" all'interno del progetto relativo al nuovo foglio

    zb4w

    Alla fine del trascinamento dovremmo avere copiato il codice contenuto nel modulo "rottura" dal progetto VerSezSLU al progetto del nuovo foglio.

    rq70

    A questo punto ritorniamo in ambiente excel e possiamo chiudere il file VerSezSLU. Nel nuovo file abbiamo a disposizione le funzioni per il tracciamento del dominio di rottura e per il calcolo agli SLU delle sezioni considerate.
     
    Top
    .
  12.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,162
    Reputation
    +294

    Status
    Offline
    Come usare direttamente le funzioni

    Illustro come usare le funzioni direttamente in una cella del nuovo foglio che abbiamo creato ed in cui abbiamo trascinato il modulo di codice "rottura". Lo faccio con alcuni esempi.


    Esempio n° 1
    Intendiamo determinare il momento resistente che tende le fibre inferiori di una sezione rettangolare di dimensioni 30x60 cm
    avente armatura inferiore costituita da 3Ф16, armatura superiore costituita da 3Ф12, copriferro 3.5 cm (inteso come distanza del baricentro del tondino dal bordo sezione).
    Il cls sia un C20/25 e l'acciaio il solito B450C

    Ricordando che la funzione richiede come unita di misura:
    - dimensioni il mm
    - aree ferri il mm²
    - resistenze il MPa

    abbiamo i seguenti dati di input:

    B= 300 mm
    H=600 mm
    c=35 mm
    Afinf = 3*201=603 mm²
    Afsup = 3*113 = 339 mm²

    fyd= 450/1.15 = 391.3 MPa
    fcd = 0.85*20/1.5 = 11.33 MPa

    Scegliamo la cella dove vogliamo sia collocato il risultato fornito dalla funzione, scegliamo "Inserisci funzione", selezioniamo dal dialogo che appare le funzioni definite dall'utente e quindi cerchiamo la funzione VsezRettSLU01. Selezioniamo la relativa voce e diamo l'ok.

    Appare il tipico dialogo che ci propone l'input dei vari parametri richiesti dalla funzione stessa.

    pctd

    Riempiamo i diversi campi coi valori che abbiamo in testa... come nelle seguenti immagini

    vxoi

    l509

    Resta da inserire l'ultimo parametro. Il parametro flag è proprio quel parametro che ci indica cosa vogliamo che la funzione ci restituisca.
    Nel caso in esame volevamo il momento resistente per flessione semplice (Ned=0) che tende le fibre inferiori. Il flag in questo caso è il numero 30.
    Digitiamo 30 nell'ultimo campo di input e diamo l'ok.

    Nella cella adesso comparirà il valore 126909921.84126 che è proprio il momento resistente che abbiamo richiesto ma espresso in [N*mm].
    dividendo il tutto per 1000 lo trasformiamo in [N*m] e dividendolo ancora per 1000 lo avremo in [kN*m] ottenendo il valore:

    Mrd = 126.91 kN*m

    Capite che è fondamentale avere sempre presente la tabella di corrispondenza tra flag e valore restituito.

    se per esempio avessimo inserito il flag 37 avremmo ottenuto in risposta la curvatura φu a rottura.
     
    Top
    .
  13.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,162
    Reputation
    +294

    Status
    Offline
    CITAZIONE (reversi @ 21/1/2014, 14:53) 
    volevo proporre una mia idea per implementare nel foglio excel la possibilità di considerare più strati di armatura passando attraverso la definizione di un'area di ferro equivalente. preciso che la simbologia da me usata non coincide con quella del foglio excel, per cui i miei simboli hanno significato solo all'interno del mio post.

    png


    dalla figura sopra si hanno le seguenti relazioni:

    (d1 - x)*tg(a) = e1
    (d - x)*tg(a) = e2

    dividendo membro a membro:

    e1/e2 = (d1 - x)/(d - x)
    e1 = e2*(d1 - x)/(d - x)

    sarà anche:

    sigma1 = E*e1
    sigma2 = E*e2


    ...

    Non credo sia sempre cosi. La legge costituiva non è lineare e puo' capitare che e1 si trovi nel tratto lineare ed e2 nel tratto plastico.
     
    Top
    .
  14.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    3,345
    Reputation
    +212

    Status
    Offline
    CITAZIONE (afazio @ 21/1/2014, 17:14) 
    CITAZIONE (reversi @ 21/1/2014, 14:53) 
    dividendo membro a membro:

    e1/e2 = (d1 - x)/(d - x)
    e1 = e2*(d1 - x)/(d - x)

    sarà anche:

    sigma1 = E*e1
    sigma2 = E*e2


    ...

    Non credo sia sempre cosi. La legge costituiva non è lineare e puo' capitare che e1 si trovi nel tratto lineare ed e2 nel tratto plastico.

    non ci sono dubbi, infatti ho scritto:

    CITAZIONE (reversi @ 21/1/2014, 14:53)
    nota: l'esempio proposto vale per una particolare configurazione deformata della sezione. bisognerà verificare (ma non credo, pur non avendolo fatto) che anche in altri campi di rottura le equivalenze delle aree di ferro seguano le formule da me postate sopra.

    questo però non impedisce di scrivere, con la stessa filosofia, altre equivalenze valide negli altri campi di rottura.

    credo che il metodo sia applicabile, in quanto il grosso problema della determinazione dell'asse neutro viene da te risolto al contrario: parti cioè dall'asse neutro e su di quello basi tutta la costruzione.

    di conseguenza, poiché per ogni campo di rottura è nota la x (perché viene assunta tale), si potrà scrivere la formula di equivalenza per quel campo. nei campi in cui As2 è snervata l'equivalenza prevederà di portare As1 alla quota d con una sigma pari a fyd.
     
    Top
    .
  15.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,162
    Reputation
    +294

    Status
    Offline
    CITAZIONE (reversi @ 21/1/2014, 17:33) 
    CITAZIONE (afazio @ 21/1/2014, 17:14) 
    CITAZIONE (reversi @ 21/1/2014, 14:53) 
    dividendo membro a membro:

    e1/e2 = (d1 - x)/(d - x)
    e1 = e2*(d1 - x)/(d - x)

    sarà anche:

    sigma1 = E*e1
    sigma2 = E*e2


    ...

    Non credo sia sempre cosi. La legge costituiva non è lineare e puo' capitare che e1 si trovi nel tratto lineare ed e2 nel tratto plastico.

    non ci sono dubbi, infatti ho scritto:

    CITAZIONE (reversi @ 21/1/2014, 14:53)
    nota: l'esempio proposto vale per una particolare configurazione deformata della sezione. bisognerà verificare (ma non credo, pur non avendolo fatto) che anche in altri campi di rottura le equivalenze delle aree di ferro seguano le formule da me postate sopra.

    questo però non impedisce di scrivere, con la stessa filosofia, altre equivalenze valide negli altri campi di rottura.

    credo che il metodo sia applicabile, in quanto il grosso problema della determinazione dell'asse neutro viene da te risolto al contrario: parti cioè dall'asse neutro e su di quello basi tutta la costruzione.

    di conseguenza, poiché per ogni campo di rottura è nota la x (perché viene assunta tale), si potrà scrivere la formula di equivalenza per quel campo. nei campi in cui As2 è snervata l'equivalenza prevederà di portare As1 alla quota d con una sigma pari a fyd.

    Non capisco come intenderesti procedere nel caso di presenza di un terzo livello di armatura posto ad una generica altezza.
    Non puoi usare la mia funzione direttamente e per questo vorresti dargli in pasto una specie di area equivalente (che ti determnineresti a mano tu), ma per determinare quest'area avresti bisogno dell'asse neutro calcolato dalla mia funzione?

    Aggiungo:
    tieni conto che proprio nel caso di terzo livello a quota genericia sarebbe facilissimo apportare le modifiche scrivendo per esempio altra funzione tipo VsezRettSLU02(B,H,c,AfInF, AfSup, Afgen,Ygen, fcd, fyd,Ned, flag)

    Aggiungo inoltre che l'asse neutro dipenderebbe anche dal valore di Ned che dai in input. La funzione non determina il momento resistente per flessione semplice ma per presso-tensoflessione.
     
    Top
    .
111 replies since 18/1/2014, 19:57   10012 views
  Share  
.