CTT: un toolbox MATLAB

per l’insegnamento e l’auto-addestramento

nella teoria dei controlli automatici

 

Eugenio Sarti, Fabrizio Beltrandi, Giulio Bertini

 

DEIS, Dipartimento di Elettronica Informatica e Sistemistica

Università di Bologna

Viale Risorgimento 2, 40136 Bologna

 

 

CTT, Control Teaching Toolbox, è un ausilio didattico per produrre esempi in aula, esercitazioni guidate in laboratorio ed esercizi a casa nei corsi di base di controlli automatici. Esso è concepito come un toolbox MATLAB da usare in ambiente Simulink, ed è composto da circa 400 file .m. Può essere usato con qualunque versione di MATLAB 4 e Simulink 1, incluse le edizioni Student e Classroom. L’impiego con MATLAB 5 richiede modesti adattamenti, ma le profonde innovazioni introdotte da MATLAB 5 suggeriscono una revisione generale anche di CTT: essa è in corso. Il suo uso richiede la libreria di base di MATLAB ed i toolbox Control System (Sigsys per la Student Edition) e Simulink. I requisiti hardware e software sono i medesimi della versione in uso di MATLAB. L'installazione richiede 2,3 MB di disco rigido.

Il suo contenuto riguarda praticamente tutta la teoria elementare dei sistemi e del controllo, sia a tempo continuo sia a tempo discreto: rappresentazioni dei sistemi lineari, stabilità, controllabilità e osservabilità, risposte nel dominio dei tempi e delle frequenze, controllori e metodi di progetto classici e moderni: reti correttrici e regolatori standard, progetto analitico, stima dello stato e assegnamento dei poli. Una sezione dedicata all’analisi non lineare comprende la generazione dei più comuni blocchi non lineari scalari, il metodo della funzione descrittiva e il metodo di Popov. La trattazione, come è norma nei corsi di base di controlli automatici, è limitata ai sistemi a un solo ingresso; più uscite possono essere prese in considerazione quando è necessario per esempio per l’assegnamento dei poli.

CTT non è destinato all’insegnamento del linguaggio MATLAB: perciò è organizzato in modo che il suo uso normale non richieda la conoscenza dei comandi MATLAB, ancorché essa sia auspicabile per allargare il campo d’impiego ad applicazioni avanzate, e per analizzare e correggere situazioni anomale generate da comandi errati o errori del programma. Naturalmente, come qualunque altra applicazione MATLAB CTT pub essere anche un efficace strumento per imparare a usare MATLAB. Viceversa è necessario che chi lo usa sappia padroneggiare bene la grafica Simulink.

La versione attuale di CTT è ancora provvisoria, soggetta a revisione e probabilmente non priva di errori. Essa è fornita gratuitamente agli studenti e a chiunque la richieda agli autori, che saranno grati a quanti segnaleranno errori o suggeriranno miglioramenti; CTT è anche disponibile su server Web (http://www-lar.deis.unibo.it/~sarti). L’installazione avviene con le consuete regole di Windows. Una volta installato, CTT pub essere lanciato battendo ctt sulla riga di comando di MATLAB; è anche possibile installare un’icona (CTT dispone di sue icone) dalla quale lanciare simultaneamente MATLAB e CTT.

Il lancio apre la schermata di figura (che è in inglese, ma l’intero pacchetto è bilingue, italiano e inglese, con possibilità di commutazione durante la seduta di lavoro); essa è composta da quattro finestre: una finestra Simulink (già corredata da quattro blocchi di collegamento di uso più comune) che costituisce lo spazio di lavoro nel quale comporre l’oggetto dell’esercitazione; una tastiera principale dalla quale scegliere il tipo di operazione che s’intende eseguire; la consueta libreria Simulink, arricchita di un gruppo di blocchi di particolare interesse didattico (in particolare essa contiene tutti i blocchi non lineari ai quali si accennava più sopra); ed infine una tastiera ausiliaria (la tastiera Commands alla base della figura) delle cui funzioni non mette conto parlare in questa sede.

I pulsanti della tastiera principale aprono tastiere secondarie e finestre operative dalle quali generare i sistemi in prova, scegliere le operazioni, introdurre i parametri, comandare il tracciamento dei grafici ed eseguire le misure richieste dall’esercitazione. Tutte queste operazioni sono eseguite col mouse; nel normale svolgimento delle esercitazioni la tastiera dell’elaboratore serve soltanto per introdurre i valori numerici dei parametri. La figura mostra, in particolare, un sistema a retroazione già composto nello spazio di lavoro (e formato da una funzione di trasferimento generata automaticamente e da un regolatore standard idoneo alla sua compensazione dinamica secondo specifiche prefissate) sul quale, col pulsante Linear Analysis della tastiera principale, è possibile tracciare i diagrammi della risposta armonica e delle risposte a impulso, gradino e rampa, rilevare le pulsazioni e i tempi caratteristici, e così via.

 

Di proposito il pacchetto CTT non include procedimenti automatici di sintesi: normalmente essi non fanno parte dei programmi dei corsi di base di controlli automatici, e la loro presenza potrebbe costituire, per gli studenti, una tentazione di scorciatoia per evitare i noiosi ma istruttivi procedimenti per tentativi. Dei sistemi a tempo discreto sono trattate soltanto le proprietà elementari, e la sintesi è limitata alla traduzione nel dominio discreto dei metodi propri dei sistemi a tempo continuo. Alcune caratteristiche del pacchetto CTT rivestono un particolare interesse didattico:

* Generazione automatica di modelli e di specifiche: modelli di sistemi lineari, sia nello spazio degli stati sia in forma di funzione di trasferimento o zeri-poli, possono essere generati automaticamente, utilizzando il generatore di numeri a caso di MATLAB, con diversi livelli di definizione delle caratteristiche fino alla completa arbitrarietà; del pari, una volta generato il modello possono essere generate arbitrariamente, con diversi gradi di difficoltà, le specifiche per la sintesi dei rispettivi controllori. Questo mette a disposizione dell’esercitando una gamma praticamente inesauribile di modelli e di problemi; e rende la generazione dei problemi indipendente dalla inconsapevole polarizzazione che viene, allo studente come al docente, dal conoscere meglio, e quindi prediligere, certe parti della materia piuttosto che altre. Un comando a parte combina fra loro la generazione di modelli e di specifiche, in modo da produrre un numero illimitato di esercizi di sintesi e temi d’esame diversi fra loro; naturalmente al docente che li voglia utilizzare come strumento di verifica resta l’onere di correggerli uno per uno, e confrontare fra loro elaborati molto diversi.

* Calcolo diretto delle risposte sul modello Simulink: alcune funzioni del toolbox Control di fondamentale importanza nell’analisi dei sistemi come step, impulse, bode, nyquist, che normalmente richiedono di trasferire il modello Simulink nello spazio di lavoro MATLAB (per esempio col comando linmod) sono rese accessibili direttamente nella finestra Simulink. L’ingresso del modello è collegato a un blocco Inport, una o più delle sue uscite a blocchi Outport; quindi due finestre operative consentono l’analisi nel dominio dei tempi e delle frequenze, incluso il tracciamento dei diagrammi con messa in scala automatica. Le stesse finestre permettono il calcolo dei parametri caratteristici delle risposte: tempi, pulsazioni, sovraelongazioni, margini di stabilità e indici di comportamento. In modo analogo si può tracciare il luogo delle radici e calcolare la tabella di Routh-Hurwitz.

* Formulario: un pulsante della tastiera principale dà accesso ad una collezione di formule e nomogrammi (in parte generati con MATLAB) assai più ampia di quanto si trovi normalmente sui manuali a stampa.

* Guida alle esercitazioni: un altro pulsante, infine, apre una guida alle esercitazioni consultabile in linea. Questa guida può essere redatta da ciascun docente secondo le proprie esigenze didattiche. Particolarmente interessante è la possibilità di produrla in forma di ipertesto.

 

CTT è stato sviluppato a partire da un precedente pacchetto, CTR, funzionante in ambiente MATLAB e lungamente sperimentato. Sia CTT sia il suo predecessore sono stati ideati per far fronte a talune difficoltà che gli studenti incontrano a causa dello svolgimento intensivo (ossia concentrato in 10-12 settimane) dei corsi: in particolare per rendere più rapida la familiarizzazione con la materia, e per facilitare il recupero delle lezioni perdute per assenza. Poi essi si sono mostrati utili per rendere meno astratta e libresca la preparazione degli studenti non frequentanti.

In parte non trascurabile CTT è il risultato di tesi di laurea: due dei suoi redattori sono coautori di questa comunicazione. In questo senso, il suo sviluppo si presenta in se stesso come un efficace strumento didattico. Durante gli anni accademici 1995-96 e 1996-97 esso è stato usato da più di trecento studenti dei corsi di laurea in ingegneria dell’informazione, che hanno validamente contribuito al miglioramento delle sue funzionalità ed alla correzione degli errori. Un’indagine statistica, svolta in collaborazione col Dipartimento di Scienze dell’Educazione dell’Università di Bologna, ha messo in evidenza il gradimento degli studenti e la loro miglior preparazione, specialmente per quanto riguarda l’impostazione e risoluzione dei problemi di progetto.