-
.
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:CITAZIONEx(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 routineCODICE'-------------------------------------------------------
' 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:03Attached Image. -
.
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:47Attached Image. -
.
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:16Attached Image. -
.
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. -
.
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. -
.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.. -
.CITAZIONEIn 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:05Attached Image. -
.
Esplosione pale di un generatore eolico ad Aquilonia
. -
.
Curiosa ubiquità. identica scena anche ad Avellino
Ma forse Aquilonia (che non è Aquileia) E' in provincia di Avellino. -
.
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?. -
.
Ciao Tex, gran bel excel.
Senti, è applicabile anche per pale di minor diametro e di velocità superiori?
Grazie!.