Simulazione del moto armonico

Oscillazione di una molla


Dopo aver colto il concetto essenziale del calcolo ricorrente, è facile scrivere una simulazione per le oscillazioni di un pesetto, attaccato ad una molla, soggetto alla forza peso ed alla forza elastica di richiamo della molla.

Questa semplice simulazione ha il pregio fra l'altro di riconnettersi facilmente alle esperienze di fisica in laboratorio che sono una premessa importante del lavoro con l'elaboratore.

Indichiamo con le variabili k, la costante elastica, con yi, la "quota" della molla senza pesetto attaccato, con y, la quota corrente della molla.
Ecco il cuore della simulazione:

     y:=0.65;  {  posiz. iniziale }
     vy:=0;          { vel.     "      }
     t:=0;
     pennasu;   mostraTarta(12);
     asPos(0,y*100);     {assegna la posizione iniziale alla tartaruga  }
     repeat
           ay:=(k*(yi-y))/m-9.81;  { (F_elast+F_peso)/m }
           vy:=vy+ay*dt;             { definizione di acceleraz. media }
           y:=y+vy*dt;                {     "       "  velocità     "   }
           AsPos(0,y*100);          { porta la tarta nella nuova posiz.}
          t:=t+dt;   { incrementa il tempo}
      until (t>=15);

In sostanza l'automa tartaruga oscillerà come se fosse un pesetto attaccato ad una molla.
Prendendo l'asse y verticale e diretto verso l'alto, la forza elastica sarà poitiva mentre la forza peso sarà negativa (diretta verso il basso)

Si può aprire una ulteriore finestra in un altro "form2" del Delphi per visualizzare il grafico della quota al variare del tempo. Per i particolari relativi all'inserimento di un altro "form" vedi: più finestre

Dopo aver impostato form2.finestra(...) con gli stessi valori del form1.finestra,  ed eventualmente form2.assi, si può inserire nel ciclo repeat ...  until precedente una riga di questo tipo:

form2.disegnaPunto(t,y*100, clred);

La moltiplicazione per 100 si interpreta dicendo che il grafico è in centimetri.

E' utile a questo punto arricchire la simulazione inserendo un ulteriore grafico delle quattro forme di energia che intervengono: energia potenziale gravitazionale, cinetica, elastica e totale.

Per ciascuna di esse deve essere dichiarata una variabile e le relative formule saranno inserite dentro il ciclo repeat  ... until. Per il calcolo della energia potenziale gravitazionale basta moltiplicare m*g*y dato che y è la quota; per l'energia elastica basta considerare (yi-y) l'allungamento e in fine per l'energia cinetica  vy è la velocità.

Il grafico delle energie conviene eseguirlo in una ulteriore form3 da tenere visibile nello schermo mentre la tartaruga oscilla. Ciascuna energia avrà un colore diverso. Dovendo utilizzare gli stessi valori dentro la procedura finestra in ciascuno dei tre forms, il valore delle varie energie andrà moltiplicato per 100 cioè l'unità di misura sarà il centesimo di Joule.

Nella nuova versione di grafica di nome grafica2, è data la possibilità di richiamare una procedura finestra2 cui si possono assegnare nuovi parametri eventualmente diversi da quelli di finestra. In questo modo adattando i valori assegnati a finestra2 nel form3 non sarà necessario utilizare i centesimi di Joule.
 


Si può confrontare il periodo teorico dato da:

periodo:=2*Pi*sqrt(m/k);

disegnando una linea che corrisponda a questo valore.


E' possibile in fine aggiungere lo smorzamento dato dall'attrito che si oppone alla velocità. Per tener conto dell'attrito nella formula dell'accelerazione:

ay:=(k*(yi-y))/m-9.81-ca*vy/m;

dove ca è un coefficiente di attrito.

In questo modo le oscillazioni appariranno di ampiezza sempre più smorzata all'aumentare di ca.

Non varia invece il periodo delle prime oscillazioni.