Obiettivi formativi
Apprendere gli elementi di base del software MATLAB con il fine ultimo di utilizzarlo come strumento di supporto alla progettazione e sperimentazione elettronica. Saper applicare le conoscenze acquisite a semplici problemi di analisi ed elaborazione dati risolvendoli tramite MATLAB. Saper implementare e verificare algoritmi in ambiente MATLAB. Saper comunicare e documentare le scelte fatte attraverso la scrittura del codice. Saper utilizzare il software MATLAB per la progettazione e la simulazione di sistemi elettronici attraverso esempi applicativi presi dalle conoscenze pregresse dello studente acquisite nei corsi di base precedenti. In particolare, imparare a 1. operare in ambiente MATLAB conoscendo i tipi di dato disponibili e come operare su di essi, 2. Importare, analizzare ed elaborare i dati per lo studio preliminare di algoritmi e sistemi anche utilizzando toolbox specifici. 3. risolvere equazioni con MATLAB/SIMULINK. 4. progettare e simulare un sistema tramite MATLAB/Simulink, 5. creare il modello di un diagramma di flusso o una macchina a stati finiti con Stateflow. 6. Generare automaticamente codice per diverse piattaforme Hardware (Microcontrollore e FPGA).
Prerequisiti
Nozioni base di Elettrotecnica, Elettronica, Teoria dei segnali ed elementi di programmazione.
Contenuti dell'insegnamento
Il corso è dedicato all’uso del software MATLAB come supporto alla progettazione elettronica, sia per quanto riguarda l’analisi dei dati propedeutica alla progettazione sia per quanto riguarda la progettazione, modellizzazione e simulazione di sistemi e la generazione automatica di codice per sistemi embedded.
Gli argomenti includono:
1. L’ambiente MATLAB con esempi applicativi dedicati
2. L’ambiente SIMULINK con esempi applicativi dedicati
3. Connessione ad hardware e generazione automatica del codice
Programma esteso
1. L’AMBIENTE MATLAB - GENERALITA’ (16 ore)
1.1. Ambiente di lavoro (ca. 1 ore)
1.1.1. Workspace
1.1.2. Comandi
1.1.3. Documentazione
1.2. Variabili (ca. 3 ore)
1.2.1. Il tipo di dato double
1.2.2. Vettori e matrici
1.2.3. Operatori aritmetici
1.2.4. Operatori matriciali
1.2.5. Operatori logici
1.2.6. Concatenazione
1.2.7. Indicizzazione
1.3. Altri tipi di dati (ca. 4 ore)
1.3.1. Char
1.3.2. Cell arrays
1.3.3. Tables
1.3.4. Structures
1.3.5. Datetime, duration
1.3.6. Logical
1.3.7. Categories
1.3.8. Conversioni di tipo
1.3.9. Tipi di dato e memoria
1.4. Editor, Script e Funzioni (ca. 3 ore)
1.4.1. Script
1.4.2. Funzioni
1.4.3. Debug
1.4.4. Reports e performance del codice
1.4.5. Matlab come linguaggio di programmazione
1.5. Operazioni di Input/Output dei dati (ca. 3 ore)
1.6. Visualizzazione dei dati (ca. 2 ore)
2. L’AMBIENTE SIMULINK - GENERALITA’ (2 ore)
2.1. Creazione del modello
2.2. Simulazione del modello
2.3. Analisi dei risultati della simulazione
2.4. Connessione con MATLAB
2.4.1. Importare dati da MATLAB
2.4.2. Notazione fixed point vs floating point
2.5. Creazione di sottosistemi e maschere
3. SIMULAZIONE CIRCUITI E SISTEMI CON SIMULINK (ca. 3 ore)
3.1. Circuiti digitali elementari
3.2. Sistemi digitali complessi (sommatori/moltiplicatori)
4. STATEFLOW (3 ore)
4.1. Diagrammi di flusso
4.2. Macchine a stati finiti
5. RISOLUZIONE DI EQUAZIONI (6 ore)
5.1. Risoluzione di equazioni -MATLAB (ca 5 ore)
5.1.1. Sistemi lineari di equazioni
5.1.2. Equazioni non lineari
5.1.3. Equazioni differenziali
5.1.4. Equazioni simboliche
5.2. Risoluzione di equazioni – SIMULINK (ca. 1 ora)
6. APPROSSIMAZIONE DI FUNZIONI ED INTERPOLAZIONE (1 ora)
6.1. Polinomi
6.2. Interpolazione polinomiale
6.3. Polinomio di Taylor
7. ANALISI DI SISTEMI LTI CONTINUI (4 ore)
7.1. Analisi di sistemi LTI Continui – MATLAB (ca. 3 ore)
7.1.1. Trasformata di Laplace e Funzione di trasferimento
7.1.2. Risposta al gradino, risposta all’impulso, risposta ad un segnale generico
7.1.3. Risposta in frequenza: diagrammi di Bode, analisi poli/zeri
7.1.4. Analisi parametrica
7.2. Analisi di sistemi LTI continui – SIMULINK (ca. 1 ora)
8. ANALISI DI SISTEMI LTI DISCRETI (2 ore)
8.1. Analisi di sistemi LTI Discreti – MATLAB (ca. 1 ore)
8.1.1. Trasformata Z e Funzione di trasferimento
8.1.2. Risposta all’Impulso e risposta ad un segnale generico
8.1.3. Risposta in Frequenza e analisi poli/zeri
8.2. Analisi di sistemi LTI discreti– SIMULINK (ca. 1 ora)
9. PROGETTAZIONE DI FILTRI IIR/FIR (3 ore)
10. FFT (1 ore)
11. GENERAZIONE AUTOMATICA DI CODICE (6 ore)
11.1. C Coder
11.2. HDL CODER
12. CONNESSIONE AD HARDWARE (1 ora)
Bibliografia
Stephen J. Chapman, Essentials of MATLAB Programming 3 ed., Cengage Learning, 2018, ISBN-13: 978-1305970656.
Brian H. Hahn, Daniel T. Valentine, Essential MATLAB for Engineers and Scientists, Academic Press, 2017, ISBN: 9780081008775
Metodi didattici
24 Lezioni da 2 ore ciascuna. Gli elementi trattati verranno illustrati attraverso slide e esercizi al calcolatore.
Le slide utilizzate, i testi e le soluzioni degli esercizi saranno pubblicati sulla piattaforma Elly.
Modalità verifica apprendimento
Prova pratica al calcolatore. L’esercizio potrà riguardare:
- l’elaborazione di alcuni dati che saranno forniti dal docente: i dati andranno importati con una delle tecniche presentate a lezione, e quindi analizzati ed elaborati secondo un particolare algoritmo fornito nel testo dell’esame ed infine visualizzati.
- l’impostazione, l’analisi e la simulazione di un sistema tramite MATLAB/SIMULINK tipo quelli visti a lezione.
La prova scritta è valutata con scala 0-32. La lode viene assegnata nel caso del raggiungimento di un punteggio superiore a 30.
Altre informazioni
- - -
Obiettivi agenda 2030 per lo sviluppo sostenibile
- - -