Un modello è la rappresentazione di un oggetto fisico o di un intero sistema. La simulazione è il processo che consente di vedere come funzionerebbe un sistema basato sul modello sotto determinate condizioni. La modellazione è una metodologia di progettazione che si basa sulla produzione di un modello che implementa un sistema e ne rappresenta compiutamente le sue funzionalità in modo tale da consentire al progettista di prevedere il comportamento di un sistema e gli effetti delle variazioni o modifiche che vengono effettuate su questo. Anche se il modello è una rappresentazione semplificata del sistema, esso comunque deve essere sufficientemente vicino alla natura funzionale del sistema reale, senza però diventare troppo complesso, quindi difficile da maneggiare. La simulazione è uno strumento fondamentale per la modellazione in quanto, senza necessariamente ricorrere alla prototipazione fisica, lo sviluppatore può verificare la funzionalità del sistema modellato con le specifiche di progetto. Grazie alla simulazione, senza dover ricorrere alla prototipazione fisica, è possibile verificare la funzionalità d sistema target rispetto alle specifiche funzionali. La simulazione è il processo che mette in funzione il modello e che consente di valutarne il comportamento sotto determinate condizioni. La simulazione è per la modellazione l'equivalente della prototipazione per la progettazione tradizionale. Oltre a consentire la valutazione di comportamenti del sistema modellato difficili da ottenere nei sistemi reali, grazie alla riconfigurabilità, la simulazione consente di studiare il sistema in un ampio spettro di condizioni allo scopo di capire quanto il modello è rappresentativo del sistema cui si riferisce. La modellazione è un processo che porta alla realizzazione di un modello, cioè di una rappresentazione congruente del modo di funzionare di un sistema esistente o da realizzare. Il modello deve consentire la predizione degli effetti che il sistema subisce in conseguenza del suo funzionamento e a causa degli stimoli che riceve dal mondo esterno. Il modello deve essere quindi una buona approssimazione del sistema reale senza raggiungere la stessa complessità del sistema modellato. La modellazione fa largo uso di modelli matematici e probabilistici in condizioni statiche (indipendenti dal tempo) o dinamiche (dipendenti dal tempo) per eseguire operazioni di simulazione che consentono di osservare e misurare il comportamento del sistema in condizioni molto prossime e realistiche a quelle del sistema reale da realizzare o che è stato realizzato, ma risulta troppo complesso o costoso da validare in campo.
Cosa è la simulazione
La simulazione di un sistema è un processo consente di ottenere la stessa funzionalità del sistema senza disporre della sua realizzazione fisica. La prototipazione è stata per lungo tempo la modalità di validazione della funzionalità dei sistemi, prima della loro ingegnerizzazione e successiva messa in produzione. Essendo la prototipazione onerosa sia in termini di tempo che economici, è stata sempre più spesso sostituita, quando possibile, dalla simulazione. La simulazione, a differenza della prototipazione non utilizza gli stessi dispositivi fisici del sistema finale, ma sfrutta la potenza computazionale dei computer di ultima generazione per mettere in esecuzione la funzionalità del sistema target. La modellazione è una fase preliminare fondamentale per la simulazione in quanto consente tramite metodologie matematiche, logiche, statistiche, linguistiche, ecc. di mettere a disposizione del sistema di simulazione i necessari meccanismi funzionali che emulano il comportamento del sistema oggetto di progettazione. La flessibilità in termini di modificabilità e riconfigurabilità del modello consente al simulatore di far funzionare il sistema modellato in tutte le condizioni possibili per studiarne il comportamento e per validarlo ai fini della produzione.
Ambienti di modellazione e simulazione
La modellazione e la simulazione sono processi abbastanza complessi e conseguentemente richiedono di essere assistiti da calcolatore. Di conseguenza negli ultimi anni i sistemi di progettazione sono evoluti in modo da integrare strumenti di modellazione e simulazione sempre più avanzati e integrati.
Un caso emblematico è l'ambiente di modellazione e simulazione Matlab/Simulink. Questo ambiente di modellazione e simulazione consente di sviluppare sistemi molto complessi e di natura embedded in numerosissime aree applicative come l'automazione, l'industriale, il biomedicale, il consumer, ecc. Matlab è un ambiente di modellazione basato su un linguaggio di programmazione a script che consente di realizzare un modello di sistema in termini di programma eseguibile dal computer host oppure da un target embedded esterno verso cui viene esportato in maniera coerente con il funzionamento del modello, il codice eseguibile dal target. Il funzionamento del sistema modellato viene validato tramite simulazione in ambiente Matlab e verificato in tempo reale sul target esterno. Simulink è un ambiente grafico di modellazione e simulazione di sistemi più o meno complessi di natura embedded, dotato di un editor grafico e di librerie di blocchi funzionali. È un ambiente integrato con Matlab e quindi consente, ove necessario, di sfruttare la flessibilità della programmazione tramite script per fruire di quelle funzionalità non presenti nelle librerie grafiche ed, esportando i dati, anche di utilizzare Matlab per l'analisi e la rappresentazione grafica. Particolarmente potente è Simulink 3D Animation, un'interfaccia che consente di collegare i modelli Simulink e gli algoritmi Matlab alla grafica ad oggetti 3D. Con tale strumento è possibile visualizzare e verificare il comportamento dei sistemi dinamici in un contesto di realtà virtuale. Viene utilizzato il linguaggio Vrml (Virtual Reality Modeling Language) che consente di controllare l'animazione degli oggetti tramite parametri come la posizione, la rotazione, la scala, ecc. Tramite un sistema di visualizzazione è possibile eseguire il rendering per ottenere animazioni di elevata qualità. L'interazione con i modelli animati è possibile anche con controlli esterni. LabView di National Instruments è un altro esempio emblematico di approccio modellistico allo sviluppo di sistemi embedded. LabView è un sistema di modellazione e simulazione basato sul concetto di programmazione grafica e di strumenti virtuali, a cui è anche affiancato il supporto di moduli hardware per l'interfacciamento verso il mondo reale. Lo strumento virtuale è sinonimo di codice. Ciò significa che l'intero modello realizzato in termini di strumenti interconnessi tra loro in accordo con la natura del sistema che deve essere simulato può essere esplicitato in termini di codice eseguibile per qualsiasi tipo di processore. Il LabView C Generator permette di trasferire l'algoritmo progettato nell'ambiente di programmazione di LabView su ogni tipo processore in quanto codice sorgente C. È possibile creare codice Ansi C dai virtual instrument per poter integrare tale software con quello preesistente sul sistema target. In tal modo, il modello simulato e validato può essere coerentemente trasferito sull'hardware del sistema finale senza che ci sia disallineamento dovuto alla transcodifica manuale dal sistema di modellazione e simulazione al target finale.
Modellazione e prototipazione rapida
Il connubio modellazione-prototipazione rapida è, per numerose applicazioni, una delle opzioni di sviluppo alternative alla simulazione. Anche se la simulazione è più economica e rapida della prototipazione, l'ampia disponibilità di schede per la prototipazione rapida hanno reso conveniente questo tipo di approccio alla progettazione dei sistemi embedded, considerando che il prototipo ha il vantaggio di consentire anche di valutare la fattibilità e l'affidabilità del sistema finale in quanto realizzato con gli stessi componenti fisici che invece nel simulatore sono virtuali. Alcuni produttori di sistemi di modellazione e simulazione, come per esempio National Instruments, rende disponibile un'ampia gamma di hardware per la prototipazione rapida che può essere direttamente utilizzato dal simulatore per emulare la funzionalità hardware del sistema finale. L'hardware compatibile con il simulatore a sua volta può diventare anche l'hardware del sistema finale, consentendo così un passaggio rapido e immediato alla fase di ingegnerizzazione e di produzione del sistema embedded.
Un altro approccio alla simulazione basato sulla prototipazione rapida è quello dell'ambiente Matlab/Simulink di MathWorks che prevede una serie di toolbox che rendono compatibili una serie di target hardware ampiamente utilizzati per l'implementazione di applicazioni embedded, come i Dsp, la logica programmabile Fpga, microcontrollori 8/16/32 bit, ecc. che possono essere direttamente collegati all'ambiente di modellazione e simulazione in modo da poter eseguire le prove in real-time sul target hardware programmato con il codice generato automaticamente dal modello (Matlab o Simulink) ed eseguire le modifiche al sistema facendo riferimento al modello.