Il Bar dell'Ingegneria

Gittata pale eoliche

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

    Member

    Group
    Member
    Posts
    766
    Reputation
    +23

    Status
    Offline
    Ho riscritto la routine responsabile del calcolo della gittata con il metodo numerico iterativo della secante che converge più rapidamente e dà risultati più precisi.
    Le equazioni del moto riadattate sono:

    CITAZIONE
    x(t)=(vx0/gamma)+(x0-vx0/gamma)*e(-gamma*t)
    y(t)=-(g/gamma)*t+(1/gamma2)*g+(1/gamma)*vy0+e(-gamma*t)*(y0-(vy0/gamma)-(g/(gamma2)))

    Il nuovo codice della routine
    CODICE
    '-------------------------------------------------------
    ' Distanza di caduta e tempo di volo di un corpo
    ' lanciato in aria, in presenza di attrito viscoso.
    '-------------------------------------------------------

    ' Variabili globali
    Dim V_x As Double, V_y As Double ' componenti velocità
    Dim Gamma As Double ' coefficiente attrito
    Dim Acc_g As Double ' acc. gravità in m/s^2

    ' Costanti
    Const GR_RD As Double = 1.74532925199433E-02 ' gradi -> rad


    Public Sub Calcola_Gittata()
       Dim v_0 As Double ' velocita iniziale
       Dim alpha As Double ' angolo di lancio
       Dim t_star As Double
       
       ' Accelerazione di gravità
       Acc_g = Range("B36")

       ' Coefficiente di attrito
       Gamma = Range("L40")
       If Gamma < 0# Then
           MsgBox "Attrito negativo!", vbExclamation & vbOKOnly, "Errore!"
           Exit Sub
       End If
       If Gamma < 0.000001 Then
           Gamma = 0.000001
           Range("L40") = Gamma
       End If

       ' Modulo velocità
       v_0 = Range("B40")
       If v_0 <= 0# Then
           MsgBox "Il modulo velocità deve essere positivo!", vbExclamation & vbOKOnly, "Errore!"
           Exit Sub
       End If
       
       '-------------------------
       
       'Angolo di lancio
       alpha = Range("B44")
       alpha = alpha * GR_RD ' Gradi -> Radianti
       
       ' Calcolo le componenti velocità
       V_x = v_0 * Cos(alpha)
       V_y = v_0 * Sin(alpha)
       If V_y <= 0# Then
           MsgBox "Lancio verso il basso!", vbExclamation & vbOKOnly, "Errore!"
           Exit Sub
       End If
       
       ' altezza punto di partenza
       Dim H As Double
       H = Range("G44")

       ' trova t*
       t_star = tempo_impatto(H)
       Range("M44") = trova_x(t_star, -Range("E44"))
       Range("L44") = t_star
       
       '-------------------------

       'Angolo di lancio
       alpha = Range("B48")
       alpha = alpha * GR_RD ' Gradi -> Radianti
       
       ' Calcolo le componenti velocità
       V_x = v_0 * Cos(alpha)
       V_y = v_0 * Sin(alpha)
       If V_y <= 0# Then
           MsgBox "Lancio verso il basso!", vbExclamation & vbOKOnly, "Errore!"
           Exit Sub
       End If
       
       ' altezza punto di partenza
       H = Range("G48")
           
       ' trova t*
       t_star = tempo_impatto(H)
       Range("M48") = trova_x(t_star, Range("E48"))
       Range("L48") = t_star
       
    End Sub

    '-------------
    ' tempo_impatto()
    '
    ' tempo di impatto con il metodo della secante
    ' PRECISIONE : Precisione richiesta
    '-------------
    Private Function tempo_impatto(H As Double) As Double

    Const PRECISIONE As Double = 0.00000001
    Const N_MAX_ITERAZIONI As Integer = 1000
    Dim t1 As Double
    Dim t2 As Double
    Dim t3 As Double
    Dim Y_t1 As Double
    Dim Y_t2 As Double
    Dim Y_t3 As Double
    Dim i As Integer
    Dim denom As Double

       ' assegno valori iniziali
       t1 = 0#
       t2 = 100#
       Y_t1 = trova_y(t1, H)
       Y_t2 = trova_y(t2, H)
       
       For i = 1 To N_MAX_ITERAZIONI
           denom = (Y_t2 - Y_t1)
           If denom = 0# Then Exit For
           t3 = (t1 * Y_t2 - t2 * Y_t1) / denom
           Y_t3 = trova_y(t3, H)
           If Abs(Y_t3) < PRECISIONE Then
               tempo_impatto = t3
               Exit Function
           End If
           If Sgn(Y_t3) <> Sgn(Y_t1) Then
               t2 = t3
               Y_t2 = Y_t3
           Else
               t1 = t3
               Y_t1 = Y_t3
           End If
       Next i
       
       ' Precisione troppo alta
       tempo_impatto = 0#

    End Function

    Private Function trova_y(t As Double, H As Double) As Double
       trova_y = -(Acc_g / Gamma) * t + (1# / Gamma ^ 2) * Acc_g + (1# / Gamma) * V_y + exp(-Gamma * t) * (H - (V_y / Gamma) - (Acc_g / (Gamma ^ 2)))
    End Function

    Private Function trova_x(t As Double, X0 As Double) As Double
       trova_x = (V_x / Gamma) + (X0 - V_x / Gamma) * exp(-Gamma * t)
    End Function


    Edited by texitaliano64 - 11/12/2014, 17:03
    Attached Image
    Rottura_pala_2

     
    Top
    .
  2.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    766
    Reputation
    +23

    Status
    Offline
    Ho automatizzato il calcolo degli angoli alfa con la bisezione e modificato il layout.
    CODICE
    '-------------
    Public Sub Trova_angoli()
       Dim alfa As Double
       alfa = angolo_gittata_max("B44", "J44")
       Range("B44") = alfa
       alfa = angolo_gittata_max("B48", "J48")
       Range("B48") = alfa
    End Sub

    '-------------
    ' angolo_gittata_max()
    '
    ' PRECISIONE : Precisione richiesta
    '-------------
    Private Function angolo_gittata_max(S1 As String, S2 As String) As Double

    Const PRECISIONE As Double = 0.0001
    Const N_MAX_ITERAZIONI As Integer = 100
    Dim alfa1 As Double
    Dim alfa2 As Double
    Dim g_alfa1 As Double
    Dim g_alfa2 As Double
    Dim i As Integer

       ' assegno valori iniziali
       alfa1 = 0#
       alfa2 = 90#
       g_alfa1 = trova_g(alfa1, S1, S2)
       g_alfa2 = trova_g(alfa2, S1, S2)

       For i = 1 To N_MAX_ITERAZIONI
           If g_alfa1 > g_alfa2 Then
               alfa2 = alfa2 + (alfa1 - alfa2) / 2
               g_alfa2 = trova_g(alfa2, S1, S2)
           Else
               alfa1 = alfa1 + (alfa2 - alfa1) / 2
               g_alfa1 = trova_g(alfa1, S1, S2)
           End If
       
           If Abs(alfa1 - alfa2) < PRECISIONE Then
               angolo_gittata_max = (alfa1 + alfa2) / 2
               Exit Function
           End If
       Next i
       
       ' Precisione troppo alta
       angolo_gittata_max = 45#

    End Function

    Private Function trova_g(alfa As Double, S1 As String, S2 As String) As Double
       Range(S1) = alfa
       trova_g = Range(S2)
    End Function


    Edited by texitaliano64 - 2/12/2014, 21:47
    Attached Image
    Snap_fg

     
    Top
    .
  3.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    766
    Reputation
    +23

    Status
    Offline
    Piccole rifiniture ed ottimizzazioni codice.

    Edit: File rimosso perchè pubblicato un aggiornamento

    Sotto una foto di aerogeneratore con pala rotta.

    Edited by texitaliano64 - 16/12/2014, 21:16
    Attached Image
    Rottura_pala_3

     
    Top
    .
  4.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    766
    Reputation
    +23

    Status
    Offline
    Il coefficiente di attrito gamma come tanti altri non è un dato noto a priori e ne con gli elementi ipotetici calcolabile.
    Come indicazione posso dire che una pallina di ping-pong del diametro di 40mm e peso di 2.7grammi ha un coefficiente di attrito viscoso con l'aria gamma=0.17.
    Per i casi di frammenti di pale eoliche non saprei oggettivamente quantificare il valore di gamma, ma ritengo comunque sia maggiore di 0.17.
    Da notizie riportate sui giornali relative ad una torre eolica alta 30m leggo che ha sparato frammenti anche alla distanza di 150m.
    Purtroppo i dati statistici e dimensionali dei frammenti catapultati non sono in mio possesso, quà servirebbe una ricerca al fine di stabilire un coefficiente di attrito viscoso congruo al calcolo della gittata reale.





    Edited by texitaliano64 - 10/12/2014, 15:22
     
    Top
    .
  5.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    766
    Reputation
    +23

    Status
    Offline
    Il primo grattacielo al mondo ad integrare turbine eoliche nel proprio design è il Bahrain World Trade Center, negli Emirati Arabi.
    Le torri del BWTC hanno una forma particolare! Come due vele spiegate al vento, fanno in modo che le correnti del Golfo Persico, attraversandole, accelerino, cosi da mettere in moto le pale eoliche, in grado di produrre 225kW l'una.
    Visto l'argomento trattato in questo topic che sia stata una scelta progettuale felice?
    Attached Image
    BWTC

     
    Top
    .
  6.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,163
    Reputation
    +294

    Status
    Offline
    CITAZIONE (texitaliano64 @ 5/12/2014, 11:24) 
    Il coefficiente di attrito gamma come tanti altri non è un dato noto a priori e ne con gli elementi ipotetici calcolabile.
    Come indicazione posso dire che una pallina di ping-pong del diametro di 40mm e peso di 2.7grammi ha un coefficiente di attrito viscoso con l'aria gamma=0.17.
    Per i casi di frammenti di pale eoliche non saprei oggettivamente quantificare il valore di gamma, ma ritengo comunque sia maggiore di 0.17.
    Da notizie riportate sui giornali relative ad una torre eolica alta 30m leggo che ha sparato frammenti anche alla distanza di 150m.
    Purtroppo i dati statistici e dimensionali dei frammenti catapultati non sono in mio possesso, quà servirebbe una ricerca al fine di stabilire un coefficiente di attrito viscoso congruo al calcolo della gittata reale.




    In entrambi i casi nei filmati che hai linkato, la causa della rottura è stato un mancato funzionamento del sistema di controllo dei freni.
    Notare infatti come, nel secondo filmato, la turbina poi collassata inizi a girare molto più velocemente rispetto alle altre turbine dello stesso parco.
    Anche nel primo filmato si può vedere che la velocità di rotazione delle pale è consistente tanto da avvicinarsi alla frequenza di refresh dell'occhio umano. Normalmente la rotazione delle pale può agevolmente essere seguita a vista.

    Altra cosa notevole è il fatto che in entrambi i casi sono rimasti integri il primo tronco di torre e la fondazione.
     
    Top
    .
  7.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    766
    Reputation
    +23

    Status
    Offline
    CITAZIONE
    In entrambi i casi nei filmati che hai linkato, la causa della rottura è stato un mancato funzionamento del sistema di controllo dei freni.

    I guasti nelle torri eoliche, visto che ci sono anche filmati su YT che li documentano non sono poi così rari, quindi bisogna tenerne debito conto in sede di localizzazione del sito più adatto, poi vi sono anche altre problematiche relative all'impatto ambientale, all'inquinamento acustico ed alla nocività per la fauna, sopratutto per i volatili, ma è un altro argomento.

    Ho corretto il foglio, c'erano delle celle di troppo nel caso della gittata con attrito viscoso, il punto di partenza era già contemplato nella formulazione VBA e non serviva fare una ulteriore somma.

    https://app.box.com/s/x02w82u296imjoaxcluh

    Edited by texitaliano64 - 20/12/2014, 16:05
    Attached Image
    Snap_fg

     
    Top
    .
  8.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    766
    Reputation
    +23

    Status
    Offline
    Esplosione pale di un generatore eolico ad Aquilonia
     
    Top
    .
  9.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    885
    Reputation
    +41

    Status
    Offline
    Curiosa ubiquità.

    identica scena anche ad Avellino



    Ma forse Aquilonia (che non è Aquileia) E' in provincia di Avellino :cry:
     
    Top
    .
  10.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    792
    Reputation
    +15

    Status
    Offline
    CITAZIONE (texitaliano64 @ 7/2/2017, 14:13) 
    Esplosione pale di un generatore eolico ad Aquilonia

    Che Botta!

    Dopo il distacco, si vede il fusto che oscilla visibilmente.

    Mi domando: In un caso come questo, quali sono le forze istantanee che si producono nelle strutture di supporto?
     
    Top
    .
  11.     +1   -1
     
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    1
    Reputation
    0

    Status
    Offline
    Ciao Tex, gran bel excel.
    Senti, è applicabile anche per pale di minor diametro e di velocità superiori?

    Grazie!
     
    Top
    .
25 replies since 28/11/2014, 15:14   2316 views
  Share  
.