Ho fatto un grafico che varia la X in funzione del tempo (è la risposta di un oscillatore semplice), ci sono due grafici, il primo mostra lo spostamento, il secondo grafica lo spostamento in funzione del tempo. Ho un problema, quando faccio partire la sub fino ad un certo tempo il grafico va avanti a step, poi dopo un po il grafico si blocca. Quando si sblocca mostra il grafico completo.
Spero di essere stato chiaro!
Il codice è il seguente...
Private Sub CommandButton1_Click()
Dim X(), T() As Variant
k = Range("E3")
m = Range("F3")
w = k / m
i = 0
Step = -5
Do Until Step = 180
OraAttuale = Timer
Step = Step + 1
Tempo = Step * m / k
Call OSCILLAZIONIlibereNONsmorzate(Range("B3"), Range("C3"), Tempo, Range("D3"), Range("E3"), Range("F3"), Xt)
With ChartObjects(1).Chart.SeriesCollection(1)
.Name = "X(t)"
.XValues = Xt
.Values = 0
End With
With ChartObjects(2).Chart.SeriesCollection(1)
i = i + 1
ReDim Preserve X(i), T(i)
X(i) = Xt
T(i) = Tempo
.Name = "X(t)"
.XValues = T
.Values = X
End With
waitTime = TimeSerial(newHour, newMinute, 0.5)
Application.Wait Now + waitTime
Loop
End Sub
Sub OSCILLAZIONIlibereNONsmorzate(Xo, Vo, Tempo, Coeffsmorzamento, Rigidezza, Massa, Xt)
w = (Rigidezza / Massa) ^ 0.5
tao = w * Tempo
Xt = Xo * Sin(tao) + Vo * Cos(tao)
End Sub