Ho terminato il corso “Simulink Foundamentals”  tenuto sulla piattaforma online Matlab Training.

certificate

Il corso mi ha permesso di affinare alcune abilità nell’utilizzo e nell’ottimizzazione dell’ambiente di simulazione sviluppato da MathWorks.

Simulink è un ambiente di simulazione che, tramite diagrammi a blocchi, permette di progettare sistemi con modelli multidominio, effettuare simulazioni e procedere poi alla distribuzione senza scrivere codice. È un’estensione grafica di Matlab e permette di interagire tramite dei blocchi capaci di rappresentare elementi del sistema, ingressi, uscite o sottosistemi.

Uno dei grandi vantaggi di di Simulink è la sua abilità nel risolvere equazioni non lineari e trattare sistemi complessi integrandosi con le potenzialità di Matlab.

Simulink blocco block

Fornisce una libreria di blocchi predefiniti e la possibilità, crearne di nuovi e di importarli tramite add-ons. Una volta importati diversi blocchi nel foglio di lavoro è possibile disegnarle linee che li uniscono e creare un sistema virtuale con la dinamica dei sistemi reali.

Ad esempio è facilmente rappresentabile il più classico esempio del pendolo. Rappresentato dall’equazione dinamica:

\ddot{\theta}+{g\over L}\sin \theta =0

Può essere modellato e risolto. Si vede come, in condizioni ideali senza attrito il pendolo oscilla tra +/- 30°.

pendulum
simulink pendulum

Controllore per stampanti 3D

All’interno del corso si procede alla progettazione di un controllore per la stampa tramite stampanti 3D. La maggior parte delle stampanti seguono lo stesso principio: dividono l’oggetto in un insieme di strati e depositano il materiale strato dopo strato. Il materiale è fuso ad alta temperatura e poi solidifica dopo essere stato depositato.

3D printer simulink controller

Ogni layer deve essere completato prima della deposizione del successivo e questo permette di vedere la stampa 3D come una sequenza di strati 2D. Il sistema complessivo prevede il controllo di:

  • Dinamica del motore DC
  • Dinamica dell’ugello di stampa
  • Sistema di controllo della posizione dell’ugello
  • Lettura di input da sorgenti esterne
  • Visualizzazione dei movimenti della stampante e degli strati stampati

Modellazione

Il modello, per quanto semplice, prevede l’interazione di diversi sistemi che posso essere rappresentati ognuno da un blocco diverso. Si define quindi una gerarchia del modello che permette di relazione differenti sotto-sistemi.

Quindi è possibile definire porte e interfacce di comunicazioni con il mondo esterno e tra i differenti sistemi. Vengono creati differenti blocchi per la logica che controlla l’ugello, la stampante e il controllore.

Ottimizzazione

Nella modellazione si deve anche fare i conti con la difficoltà di bilanciare l’accuratezza e il tempo di calcolo. Simulink fornisce diversi solutori ODE .

optimization
ODE solver

Chiaramente andando a simulare un problema discreto non ci saranno approssimazioni mentre simulando un sistema continuo si dovrà ricorrere all’integrazione numerica. Questo introduce delle approssimazioni e la necessità di valutare quanto il sistema simulato è effettivamente rappresentativo della realtà.