Scuola universitaria professionale della Svizzera italiana Dipartimento Tecnologie Innovative laboratorio Tutorial per l utilizzo del sistema RCP SUPSI, parte II Scopo Compiti Acquisire le basi tecniche propedeutiche ai laboratori della SUPSI basati sul sistema di RCP sviluppato internamente - Utilizzo del tool Matlab-Simulink in simulazione - Compilazione di eseguibili RTAI per il controllo di un sistema meccanico di precisione - Utilizzo della piattaforma Compact-PCI Prerequisiti - Referenze - Durata 4 ore Appendici - Contatto Gianluca Montù
laboratorio, Tutorial per l utilizzo del sistema RCP SUPSI, parte II SUPSI-DTI 1 Introduzione 1.1 Scopo Lo scopo della presente esercitazione consiste nel dotare lo studente delle basi tecniche indispensabili per lo svolgimento dei laboratori di metrologia e meccatronica. Le conoscenze necessarie si possono riassumere come segue: Conoscenze generiche della shell di Linux. Simulazione: a Gestione della linea di comando di Matlab. b Manipolazione dei dati in Matlab. c Utilizzo di Simulink. d Gestione e presentazione dei dati della simulazione. Esecuzione di programmi in tempo reale: a Compilazione a partire da schema Simulink. b Esecuzione dell eseguibile in Linux. c Utilizzo di xrtailab per la modifica dei parametri dell esecuzione e per lo stoccaggio dei dati. Utilizzo della piattaforma CPCI: a Download e upload tramite il protocollo FTP. b Comunicazione tramite il protocollo Telnet. c Manipolazione dei permessi via Shell. d Caricamento moduli necessari al sistema in tempo reale. e Comunicazione con il CPCI tramite Xrtailab. 1.2 Descrizione del Sistema Sono dati: La cinematica parallela presentata nella foto di testa. Un computer equipaggiato con: Sistema operativo Linux. Moduli linuxrtai e programma di monitoraggio Xrtailab. Matlab/Simulink. Il modello Simulink per la simulazione. 2 Gianluca Montù
SUPSI-DTI laboratorio, Tutorial per l utilizzo del sistema RCP SUPSI, parte II PC CPCI FLEX. program actuation measurements sin/cos signal Figura 1.1: Modello schematico del sistema Il modello Simulink per il controllo del sistema reale. Connessione Ethernet. Un computer industriale CPCI equipaggiato con: Scheda driver per motori voice-coil. Scheda Sin/Cos SUPSI. Moduli linuxrtai. Connessione Ethernet. La figura 1.1 presenta lo schema del sistema: il CPCI riceve dal PC i comandi grazie al protocollo telnet e i file di controllo via ftp. Tramite una scheda driver montata sul CPCI si fornisce l attuazione alla meccanica la quale emette un segnale sin/cos che, elaborato dal CPCI, fornisce la posizione al PC. 1.3 Presentazione dell esperienza La prime fase dell esperienza consiste nel simulare il comportamento del sistema controllato sfruttando i file Matlab/Simulink forniti allo studente. La seconda fase dell esperienza riguarda il controllo Real-Time del sistema meccanico sfruttando il controllore utilizzato in fase di simulazione. Al termine sia della fase di simulazione, sia della fase di implementazione saranno proposte delle esercitazioni basate sui dati acquisiti. 2 Avvio di Matlab e caricamento dei file 2.1 Avvio di Matlab in ambiente Linux Per avviare correttamente Matlab e scaricare i file necessari seguire la seguente procedura: 1. Accendere il computer. 2. Accedere come utente stud con password rego. Gianluca Montù 3
laboratorio, Tutorial per l utilizzo del sistema RCP SUPSI, parte II SUPSI-DTI 3. Creare una cartella personale, scaricare l archivio contenete i file dell esperienza Tutorial on the usage the SUPSI measurement and control system, part II all indirizzo www.dti.supsi.ch/ smt/labo metro.hml). 4. All interno della cartella appena creata premere il tasto destro del mouse, nel menu a tendina selezionare ->azioni->apri un terminale qui per aprire un terminale. Denominare questa sessione (doppio click sulla label) PC. 5. Digitare gzip tutorial flex distr.zip all interno della prima sessione del terminale per decomprimere i file (oppure decomprimere per via grafica): demo20u.dat: misure del comportamento del sistema stimolato da un rumore bianco. SISO NparParId.m: funzione Matlab per l identificazione. demo flex.m: file Matlab per la definizione del controllore. ctrl 1axis.mdl: file Simulink del sistema controllato. ctrlrt 1axis.mdl: file Simulink che permette di generare il file eseguibile per il controllo del sistema reale. 6. Premere l unico pulsante della shell per aprire una nuova sessione e denominarla Matlab. All interno della sessione Matlab digitare matlab -nojvm per avviare Matlab. Questa sessione sarà chiamata linea di comando di Matlab o linea di comando. 7. Aprire una terza sessione, denominarla RTlab, digitare loadrtai e premere invio. 8. Aprire una quarta sessione, denominarla ftp. 9. Aprire una quinta sessione, denominarla CPCI. 2.2 Caricamento dei file necessari all esperienza Per eseguire i file Matlab appena decompressi seguire la seguente procedura all interno della linea di comando di Matlab (premere enter al termine di ogni punto): 1. Digitare ls nella linea di comando per visualizzare i file contenuti nella cartella. 2. Per caricare i parametri del sistema digitare e lanciare la definizione controllore digitare demo flex in Matlab (il programma sfrutta i dati in demo20u.dat e la funzione SISO NparParId.m). 3. Per aprire il file Simulink del modello controllato digitare ctrl 1axis nella linea di comando. Si otterrà il diagramma di fig. 1.2. 4. Digitare ctrlrt 1axis.mdl nella linea di comando per aprire il file Simulink che permette di generare l eseguibile. Si otterà il diagramma di fig. 1.3. 4 Gianluca Montù
SUPSI-DTI laboratorio, Tutorial per l utilizzo del sistema RCP SUPSI, parte II 4 Repeating Sequence Interpolated r_cond ref_cond r x Controller U model _of_the_flexure Scope Figura 1.2: Schema Simulink ctrl 1axis necessario alla simulazione sfun_rtai_scope Repeating Sequence Interpolated r_cond ref_cond r x Controller U flexure K Gain Figura 1.3: Schema Simulink ctrlrt 1axis.mdl necessario per operare sul sistema reale. L unica differenza con lo schema della figura 1.2 consiste nel sostituire il modello e scope con interfacce che compilate permettono la comunicazione e l acquisizione Real time 3 Simulazione 3.1 Preparazione ed esecuzione della simulazione Selezionando il menu simulation->configuration parameters nella finestra Simulink del file ctrl 1axis si possono modificare i parametri della simulazione, i cui risultati sono visualizzabili tramite doppio click sullo scope (vedi fig.1.4). Per avviare la simulazione premere il tasto play nel file Simulink ctrl 1axis o utilizzare il menu simulation->start. Gianluca Montù 5
laboratorio, Tutorial per l utilizzo del sistema RCP SUPSI, parte II SUPSI-DTI (a) (b) Figura 1.4: Impostazioni dello Scope: (a) Il tasto evidenziato nel riquadro nero permette di accedere alle impostazioni di salvataggio dati, (b) Impostazioni necessarie 3.2 Gestione dei dati della simulazione 3.2.1 Salvataggio dei dati Il salvataggio e la presentazione dei dati sono gestiti dall oggetto denominato scope nel file ctrl 1axis. Lo scope permette sia di visualizzare i risultati della simulazione sia di salvare questi dati nel workspace di Matlab (la memoria di Matlab accessibile direttamente dalla linea di comando). I segnali sono rappresentati dai vettori entranti nel Mux antecedente allo scope (fig. 1.2). Il tasto evidenziato in fig. 1.4(a) permette di accedere alle impostazioni relative al salvataggio dei dati nel workspace. Dopo la simulazione i dati sono disponibili nel workspace e possono essere richiamati dalla linea di comando tramite la variabile dichiarata nelle impostazioni dello scope (scope data in fig. 1.4). Se sono state usate le impostazioni indicate al paragrafo precedente la variabile scope data ha una struttura matriciale così definita: colonna 1 : tempo. colonna 2 : dati relativi al primo vettore entrante nel mux prima dello scope. colonna 3 : dati relativi al secondo vettore entrante nel mux prima dello scope. colonna 4 : [...] 3.2.2 Manipolazione dei dati della simulazione Per manipolare e rappresentare i dati contenuti nella matrice scope data è necessario conoscere alcune operazioni fondamentali sulle matrici effettuabili tramite Matlab. Di seguito sono riportati alcuni esempi esplicativi (tutti i comandi devono essere digitati nella linea di comando): 6 Gianluca Montù
SUPSI-DTI laboratorio, Tutorial per l utilizzo del sistema RCP SUPSI, parte II Creazione di una matrice 2 2: A=[a 11, a 12 ; a 22, a 23 ] Somma di due matrici/vettori: A+B Prodotto scalare tra due vettori A e B: A*B Prodotto matriciale tra due matrici A e B: A*B Moltiplicazione di due matrici/vettori A e B elemento per elemento: A.*B Elevazione alla n-esima potenza di una matrice quadrata: A^n Assegnazione al vettore c della terza colonna della matrice A: c=a(:,3) Numero di righe della matrice A: size(a,1) Numero di colonne della matrice A: size(a,2) Per estrarre i dati della matrice scope data e creare variabili vettori coerenti con le grandezze del file Simulink (vedi paragrafo 3.1) seguire la seguente procedura: 1. Vettore delle coordinate temporali t: digitare t=scope data(:,1); 2. Vettore delle coordinate spaziali di riferimento r: digitare r=scope data(:,2); 3. Vettore delle delle coordinate spaziali di riferimento condizionate (il condizionamento evita velocità eccessive): digitare rc=scope data(:,3); 4. Vettore del segnale attuazione u: digitare u=scope data(:,4); 5. Vettore della posizione reale y: digitare y=scope data(:,5); 3.3 Modifica dei parametri della simulazione Per modificare i parametri della simulazione è necessario agire sul file Simulink: 1. Modificare i parametri della traiettoria: con un doppio click sul blocco Repeated Sequence Interpolated si accede a impostazioni quali ampiezza e frequenza. 2. Modificare la forma della traiettoria: il menu view->library browser->sources permette di accedere a generatori di varie forme d onda. Scambiare ad esempio Repeated Sequence Interpolated con Sine Wave per ottenere una traiettoria sinusoidale. 3. Aggiungere fattori di moltiplicazione: interrompere un filo dello schema Simulink, introdurre il blocco view->library browser->commonly used blocks->gain e ricollegare il filo. 4. Avviare la simulazione e verificare l avvenuto cambiamento. Gianluca Montù 7
laboratorio, Tutorial per l utilizzo del sistema RCP SUPSI, parte II SUPSI-DTI 4 Semplici esercitazioni in Matlab 4.1 Realizzazione di grafici multipli Si possono riportare sullo stesso grafico la traiettoria della meccanica in funzione del tempo e il riferimento desiderato digitando i seguenti comandi: plot(t,y); % genera il grafico y in funzione di t hold on; % permette di sovrapporre due o piu grafici plot(t,rc); % genera il grafico Ref in funzione di t sovrapponendolo % al precedente 4.1.1 Evoluzione dell errore Per presentare graficamente l evoluzione dell errore digitare nella linea di comando: err=rc-y; plot(t,err); % genera il vettore degli errori 4.2 Calcolo dell errore RMS L errore RMS tra riferimento e posizione simulata è dato dalla formula: e rms = (rci y i ) 2 N (1.1) dove N il numero di dati, rc i e y i sono rispettivamente l i-esimo dato del riferimento e della posizione reale. Ragionando in termini vettoriali: e rms = rc y N (1.2) Dove N è la dimensione del vettore rc. Per calcolare dell errore RMS tra riferimento e posizione simulata seguire dunque la seguente procedura nella linea di comando: rms=norm(rc-y)/sqrt(size(rc,1)) 4.3 Realizzazioni ed esecuzione di script Matlab 1. Nella shell PC digitare emacs, si aprirà un editor. 2. Copiare i comandi delle tre esercitazioni precedenti e salvare il documento con l estensione *.m (per esempio myfile.m). 3. Dalla linea di comando di Matlab lanciare il file appena creato (per esempio inserendo nella linea di comando myfile. 8 Gianluca Montù
SUPSI-DTI laboratorio, Tutorial per l utilizzo del sistema RCP SUPSI, parte II 5 Esecuzione del programma in tempo reale Una volta verificato con la simulazione il corretto comportamento del controllore, si può passare alla creazione del programma che permetterà il controllo della meccanica. 5.1 Compilazione dell eseguibile a partire dal file Simulink Le operazioni descritte permettono di generare l eseguibile (programma Linux indipendente) che permetterà al CPCI di controllare la meccanica: 1. Aprire il modello Simulink ctrlrt 1axis.mdl introducendo ctrlrt 1axis nella linea di comando. 2. Tramite il menu tools->real-time workshop->options selezionare rtai.tlc nel campo target file tramite il pulsante browse come in fig.1.5. Figura 1.5: Opzioni necessarie alla compilazione RealTime 3. Nella stessa finestra selezionare solver dalla scaletta select e verificare l opzione fixed-step nel campo type come in fig. 1.6. 4. Tramite il menu tools->real-time workshop->build Model generare l eseguibile. Una volta finite le operazioni di compilazione sarà presente nella cartelle dell esperienza il file ctrlrt 1axis. 5.2 Utilizzo della piattaforma CPCI Per scaricare l eseguibile appena generato su CPCI via ftp seguire la procedura descritta: Gianluca Montù 9
laboratorio, Tutorial per l utilizzo del sistema RCP SUPSI, parte II SUPSI-DTI Figura 1.6: Opzioni necessarie alla compilazione RealTime Accendere il CPCI e attendere 30 sec. All interno della sessione ftp digitare ftp -p cpcix dove X è il numero del CPCI assegnato. Usare username: root e password: root per collegarsi al CPCI via FTP. Digitare put ctrlrt 1axis. Per lanciare l eseguibile seguire i passi descritti all interno della shell CPCI: Digitare telnet CpciX dove X è il numero del Compact-PCI. Utilizzare username: root e password:root. Digitare loadrtai per caricare i moduli linuxrtai. Digitare chmod +x ctrlrt 1axis per rendere eseguibile il file appena scaricato via ftp. Per avviare digitare il comando./ctrlrt 1axis -w nella sessione CPCI (l opzione -w sospende l esecuzione fino alla richiesta di avvio di xrtailab). 5.3 Utilizzo di xrtailab 5.3.1 Monitoraggio e raccolta dati via xrtailab Xrtailab è il programma che permette il monitoraggio dell applicazione e lo stoccaggio dei dati per l analisi. Eseguire la procedura sottostante: 1. Avvio: digitare xrtailab all interno della sessione RTlab. Si aprirà il programma di monitoraggio RealTime. In fig. 1.7 sono elencati alcuni dei pulsanti necessari. 10 Gianluca Montù
SUPSI-DTI laboratorio, Tutorial per l utilizzo del sistema RCP SUPSI, parte II Figura 1.7: Xrtailab, elenco dei pulsanti evidenziati: 1. Uscita dal programma 2. Play 3. Stop 4. Parameters Manager 5. Scope Manager 2. Selezionare il menu File->connect e inserire l IP del CPCI nel campo dedicato all indirizzo IP per connettersi all eseguibile. L indirizzo IP è 193.5.154.23X dove X è il numero del CPCI (nel caso l indirizzo fosse errato è possibile ricavarlo dalle informazioni fornite dal PC dopo l istruzione telnet cpcix). 3. Premere il pulsate play (vedi fig. 1.7) per avviare il programma (xrtailab si collegherà con la applicativo avviato sul PC stesso). 4. Premere il pulsante Scope Manager che aprirà la finestra corrispondente (vedi fig.1.7). Spuntando Show/hide sarà possibile visualizzare le quantità (premendo su trace1, trace2 [..]) corrispondente al mux entrante nello scope del file ctrlrt 1axis.mdl (vedi fig.1.3). 5. Togliere la spuntatura dal campo Points/time e impostare 60 sec. nel campo Time. 6. Digitare data1.dat nel campo filename. 7. Premere il pulsante save. Dopo 60 sec. sarà generato nella cartella dell esperienza il file data1.dat contenente il set di dati reali. Gianluca Montù 11
laboratorio, Tutorial per l utilizzo del sistema RCP SUPSI, parte II SUPSI-DTI 5.4 Gestione in Matlab dei dati generati da xrtailab Per caricare in Matlab i dati raccolti digitare nella linea di comando di Matlab load data1.dat che genera una variabile data1 la quale ha la stessa struttura della variabile scope data. Per ottenere tutti vettori necessari seguire la seguente procedura: 1. Vettore delle coordinate temporali t: digitare RT t=data1(:,1); 2. Vettore dei valori spaziali di riferimento r: digitare RT r=data1(:,2); 3. Vettore dei valori spaziali di riferimento condizionati rc: digitare RT rc=data1(:,3); 4. Vettore del segnale attuazione u: digitare RT u=data1(:,4); 5. Vettore della posizione reale y: digitare RT y=data1(:,5); 6 Esercitazioni sui dati misurati 1. Tracciare con Matlab il grafico dell errore tra riferimento rc e posizione reale y e calcolare l errore RMS. 2. Considerare intervalli di dati nei quali la meccanica presenta una velocità costante (cioè senza transienti dinamici) e calcolare l errore RMS sfruttando tali dati. 3. Tracciare con Matlab il grafico dell errore tra riferimento rc e posizione reale y e calcolare l errore RMS, sfruttando un tavolo antivibrazione. 12 Gianluca Montù