CNR-ISSIA u.o.s. di Palermo Istituto di Studi sui Sistemi Intelligenti per l'Automazione Via Dante, 12 - 90141 Palermo (Italy) Tel. +39 091 6113513 Fax +39 091 6113028 Rapporto tecnico n. 413 anno 2011 Risultato di valorizzazione applicativa: implementazione su piattaforma FPGA di un controllore per inverter trifase con tensione del DC-link regolabile per azionamenti elettrici automotive Autori: M. C. Di Piazza, M. Luna, G. Vitale “Esemplare fuori commercio per il deposito legale agli effetti della Legge 15 aprile 2004, n. 106” Gli autori sono i soli responsabili del contenuto di questo rapporto tecnico Data di creazione: 22 giugno 2011 Prima distribuzione al pubblico e deposito legale: 18 luglio 2011 C.F. 80054330586 P.I. 02118311006 Sede legale: Via G. Amendola 122/D-I – 70126 Bari (Italy) Tel. +39 080 5929429 Fax +39 080 5929460 INDICE Introduzione ....................................................................................................................................... 3 1. Il controllo a V/f costante............................................................................................................... 4 1.1 Richiami sul controllo scalare .......................................................................................... 4 1.2 Implementazione nell’inverter SINUS/IFDE-F 400T-5.5kW Elettronica Santerno........ 5 2. Specifiche e componenti del sistema realizzato............................................................................. 7 2.1 Specifiche del sistema ...................................................................................................... 7 2.2 Kit didattico Semikron Semiteach ................................................................................... 8 2.3 Schede Altera Cyclone III FPGA e Nial Stewart GPIB................................................... 9 2.4 Scheda SSD .................................................................................................................... 10 2.5 Altri componenti ............................................................................................................ 10 3. Implementazione del sistema di controllo ................................................................................... 11 4. Procedura di messa in servizio..................................................................................................... 15 4.1 Esecuzione dei collegamenti elettrici............................................................................. 15 4.2 Modifica dei parametri e ricompilazione ....................................................................... 16 4.3 Programmazione............................................................................................................. 17 4.4 Stand-by, avviamento, marcia e arresto; visualizzazione display SSD.......................... 17 4.5 Reset ............................................................................................................................... 17 Conclusioni e sviluppi futuri............................................................................................................ 18 Riferimenti bibliografici .................................................................................................................. 19 Appendice A .................................................................................................................................... 20 Appendice B..................................................................................................................................... 22 All rights reserved. Part of this paper may be reproduced with the authorization of the authors and quoting the source. Tutti i diritti riservati. Parti di questo rapporto possono essere riprodotte previa autorizzazione citando la fonte. Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 2 INTRODUZIONE Oggetto del lavoro è stata l’implementazione su piattaforma FPGA di un inverter completo con tensione del DC-link regolabile esternamente, per il controllo V/f di motori asincroni trifase a bassa tensione di alimentazione, da integrare al banco di prova su filtri automotivi già esistente all’interno del laboratorio Interferenze Elettromagnetiche Condotte e Power Quality in dotazione all’ISSIA-CNR u.o.s. di Palermo. Tale intervento era stato già prospettato nel rapporto tecnico n. 407 [1]. La necessità di tale realizzazione scaturisce dall’esigenza di verificare le prestazioni di filtri attivi EMI per la soppressione di disturbi di modo comune su motori asincroni trifase per uso in ambito automotive, con tensione nominale pari a 42 V, secondo lo schema riportato in fig. 1 [2]. Pur disponendo, infatti, di inverter commerciali di varia marca, non risulta possibile utilizzarli, in quanto essi presentano una tensione minima di uscita non inferiore a 50 V. Si è deciso, pertanto, di replicare le principali funzionalità di un inverter commerciale su un nuovo sistema che non presenti restrizioni sulla tensione minima di uscita in modo che, regolando opportunamente la tensione del DC-link fornita da un alimentatore esterno ed aggiornando conseguentemente uno specifico parametro dell’inverter configurabile dall’utente, sia possibile alimentare sia motori automotive, sia motori per azionamenti industriali. Il sistema è costituito principalmente per la sezione di potenza da un kit didattico Semikron e per l’implementazione dell’algoritmo di controllo da una scheda FPGA della Altera. Quest’ultima costituisce una piattaforma digitale a basso costo ed elevate prestazioni, che consente di implementare una vasta gamma di progetti, dai più semplici a quelli multimediali. Essa è stata opportunamente programmata in linguaggio VHDL utilizzando anche alcuni dei componenti precedentemente creati, validati e inseriti nella libreria ISSIA_package.vhd. Il presente documento descrive i componenti e le funzionalità del sistema realizzato ed è suddiviso nei seguenti capitoli. L’introduzione inquadra la tematica affrontata e descrive brevemente l’obiettivo del progetto. La tecnica di controllo V/f è richiamata nel primo capitolo, dove viene anche discussa la sua implementazione negli inverter commerciali. Nel capitolo successivo sono presentate le specifiche del sistema realizzato e la descrizione dei componenti hardware utilizzati. Il capitolo 3 è dedicato alla descrizione dello schema di implementazione su FPGA, mentre il capitolo successivo illustra la procedura di messa in servizio del sistema. Infine, vengono presentate le conclusioni su quanto realizzato e la possibilità di sviluppi futuri. Fig. 1. Schema di verifica di filtri EMI per la soppressione di disturbi di modo comune su motori a induzione Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 3 1. IL CONTROLLO A V/F COSTANTE 1.1 Richiami sul controllo scalare Il controllo del motore asincrono può essere effettuato in modo semplice variando la frequenza della tensione trifase di alimentazione [3]. In tal modo, infatti, la caratteristica meccanica di tale macchina trasla orizzontalmente sul piano coppia-velocità, per cui è possibile variarne l’intersezione con la caratteristica del carico meccanico resistente, cioè il punto di funzionamento. Inoltre, l’alimentazione a frequenza variabile consente di risolvere anche i problemi che caratterizzano il motore asincrono in fase di avviamento alla frequenza nominale: l’elevata corrente di spunto e l’incapacità di inseguire il campo magnetico rotante in caso di elevata inerzia rotorica. Tuttavia, per un funzionamento regolare del motore occorre che i valori di flusso Ψn, corrente In e tensione Vn nominali non siano superati. In particolare, il flusso del campo magnetico rotante Ψ all’interno di un motore asincrono è proporzionale al rapporto tra la tensione V e la frequenza di alimentazione f. Pertanto, per fare in modo che la variazione di frequenza non influenzi il flusso, occorre variare proporzionalmente anche la tensione di alimentazione, cioè mantenere il rapporto V/f costante e pari al valore corrispondente al rapporto tra tensione nominale Vn e frequenza nominale fn. Il piccolo valore di scorrimento s che caratterizza il funzionamento del motore asincrono dà la possibilità di un controllo accettabile anche ad anello aperto. L' errore di velocità dipende dal carico: indicando con p il numero di coppie polari, la velocità impostata con il riferimento di frequenza f è quella sincrona, ovvero n0 = 60 f p , ma la velocità effettiva sarà n = n0 ⋅ (1 − s ) , con s dipendente dalla coppia resistente del carico. La precisione di regolazione è in questo modo di qualche percento. Se la frequenza supera il valore nominale, però, il flusso non può essere più mantenuto al valore nominale perché si dovrebbe aumentare la tensione oltre il suo valore nominale. Il flusso pertanto deve essere diminuito (deflussaggio). In questo caso si mantiene la tensione costante e pari al suo valore nominale, pur aumentando la frequenza, senza però arrivare a valori troppo elevati. Solitamente non ci si spinge oltre un valore fM pari a 1,5 volte la frequenza nominale. Per quanto detto, il flusso rimane costante nella prima zona del campo di funzionamento e decresce in modo inversamente proporzionale alla velocità nella seconda, come mostrato in fig. 2. Conseguentemente, finché il flusso mantiene il valore nominale è possibile avere la coppia nominale; quando, invece, il flusso diminuisce, anche la coppia continuativa erogabile dal motore necessariamente dovrà diminuire. Fig. 2. Caratteristica del controllo V/f Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 4 Mantenere il rapporto V/f costante è altrettanto inadeguato alle basse frequenze, perché ciò non garantisce la costanza della coppia erogabile legata alla costanza del flusso. Infatti, la proporzionalità del flusso rispetto al rapporto tensione/frequenza è accettabile finché la caduta di tensione resistiva sugli avvolgimenti statorici è trascurabile. Ciò che occorre mantenere costante è, in realtà, il rapporto tra la tensione applicata diminuita della caduta resistiva, e la frequenza. Pertanto, a frequenze molto basse (ad es. inferiori a fs= f n 5 ) è indispensabile aumentare la tensione applicata per contrastare l'indebolimento del flusso dovuto alla caduta ohmica; la tecnica è nota come “low-speed voltage boosting” e il corrispondente valore di tensione Vs è detto tensione di boost. In definitiva la relazione V/f è espressa dalla caratteristica mostrata in fig. 2. Se le accelerazioni richieste all'azionamento non sono particolarmente gravose, come capita per la maggior parte delle applicazioni, è sufficiente il tipo di controllo descritto, detto anche controllo scalare in quanto modifica, oltre alla frequenza, il valore efficace della tensione, ma non interviene attivamente sulla fase delle grandezze elettriche. Non si occupa, cioè, delle relazioni di fase tra tensioni e correnti che si riflettono nella posizione relativa dei campi magnetici di statore e di rotore, e che influenzano sensibilmente la coppia per elevati scorrimenti. Quando, invece, le esigenze dinamiche diventano notevoli, il controllo scalare non è più sufficiente e risulta necessario l’utilizzo del controllo vettoriale, in cui le variazioni della frequenza e del valore efficace della corrente avvengono unitamente ad una variazione della fase, per poter effettuare il controllo del flusso magnetico. Tale tipo di controllo, che consente prestazioni di alto livello a fronte di un’implementazione di maggiore complessità, non risulta necessario per le verifiche su filtri attivi EMI descritte nell’introduzione. 1.2 Implementazione nell’inverter SINUS/IFDE-F 400T-5.5kW Elettronica Santerno Al fine di offrire una maggiore versatilità di funzionamento, negli inverter commerciali la curva V/f viene implementata in modo leggermente diverso da quanto riportato in fig. 2. In particolare nel seguito si farà riferimento all’inverter a controllo digitale SINUS/IFDE-F 400T5.5kW prodotto dalla ditta Elettronica Santerno [4], che è un inverter trifase per motori asincroni fino a 5.5 kW (7.5 CV), con uscita 0÷460V a 0÷800 Hz, 9 kVA, 13 A, ed alimentazione 380÷460 V, 50÷60 Hz, 14.5 A. Esso implementa la curva V/f riportata in fig. 3, che l’utente può adattare alle proprie esigenze applicative modificando i parametri indicati dalle sigle C5÷C10. Fig. 3. Curva V/f implementata nell’inverter Elettronica Santerno Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 5 E’ immediato comprendere che il punto che ha come coordinate la frequenza nominale (parametro C5) e la tensione nominale del motore (C8) rappresenta il confine tra la zona di funzionamento a flusso (e coppia) costante e quella a tensione (e potenza) costante, e che in quest’ultima la frequenza possa essere innalzata fino al valore individuato dal parametro C6. E’ prevista la possibilità di applicare mediante il parametro C9 un boost positivo (per aumentare la coppia di spunto) o anche negativo (per ridurre il consumo energetico a basso numero di giri, nel caso di carico con coppia quadratica). La differenza principale rispetto alla curva in fig. 2 è che tale boost non è limitato ai valori di frequenza inferiori ad 15 della frequenza nominale, ma va diminuendo gradualmente man mano che la frequenza si avvicina al suo valore nominale. Considerando la caratteristica di fig. 3, occorre notare che a frequenza nulla si avrebbe una tensione non nulla (parametro C10), cioè si alimenterebbe la macchina con una tensione continua. Pertanto, è prevista anche la possibilità di impostare una frequenza minima di funzionamento (C7). Un’altra funzionalità offerta dal suddetto inverter è la possibilità di variare la frequenza della portante della modulazione PWM tra un valore minimo (parametro C1) ed un massimo (C2), come indicato in fig. 4; in tal modo è possibile realizzare una modulazione sincrona, in cui la frequenza della portante è proporzionale alla frequenza di uscita, oppure asincrona, se la frequenza della portante è costante. Abbassando la frequenza della portante aumentano le prestazioni del motore a basso numero di giri, a scapito di una maggiore rumorosità. I due valori di frequenza che delimitano il tratto a modulazione sincrona sono dati rispettivamente da: C1 C2 f1 = e f2 = , C3 C3 dove C3 rappresenta il numero costante di impulsi generati in uscita in tale modalità di funzionamento. Nei tratti a modulazione asincrona, invece, il numero di impulsi prodotti è variabile e può essere calcolato mediante la relazione: f n p = CARRIER . f Fig. 4. Variazione della frequenza della portante PWM in funzione della frequenza di uscita Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 6 2. SPECIFICHE E COMPONENTI DEL SISTEMA REALIZZATO 2.1 Specifiche del sistema La struttura del sistema realizzato nei laboratori del CNR-ISSIA prevede che la tensione del DC-link VDC venga fornita da un alimentatore esterno e che il controllo software tenga in considerazione il suo valore mediante un apposito parametro programmabile dall’utente. In tal modo, diversamente dagli inverter commerciali, il sistema non presenta restrizioni sulla tensione minima di uscita per cui, regolando opportunamente la tensione del DC-link, consente di alimentare motori asincroni sia per uso automotive, sia per uso industriale. Pertanto, esso presenta una maggiore versatilità di impiego rispetto alle soluzioni commerciali e si adatta maggiormente all’utilizzo per prove di laboratorio, in condizioni operative non usuali. Il sistema replica le principali funzionalità offerte dall’inverter Elettronica Santerno descritto in precedenza e, in particolare, presenta le seguenti caratteristiche: • completa configurabilità della curva V/f, conformemente alla fig. 3; • variazione della frequenza della portante PWM in funzione della frequenza di uscita (modulazione sincrona o asincrona), secondo la fig. 4; • avvio e arresto mediante rampe di accelerazione e decelerazione con tempi configurabili, che consentono di far variare gradualmente la frequenza anche in seguito ad improvvise modifiche del riferimento; • pulsanti START e STOP con indicazione a LED; • pulsante RESET per la rapida disalimentazione del motore collegato; • ingresso analogico per riferimento di frequenza con range 0÷5 V, che può essere fornito da un potenziometro esterno o da un convertitore digitale-analogico comandato da computer; • visualizzazione su display a 7 segmenti (SSD) delle seguenti informazioni: set-point di frequenza, frequenza di uscita effettiva, tensione di uscita, indice di modulazione, frequenza della portante, indicazione di blocco sovramodulazione, indicazione di overflow. Il prototipo realizzato è stato collaudato positivamente ed ha consentito di alimentare un motore asincrono per uso automotive da 1,1 kW con tensione nominale pari a 42 V per poter realizzare le misure necessarie a verificare le prestazioni di un filtro attivo EMI oggetto di ricerca [2]. Il sistema ha consentito l’avviamento del motore già a partire da un riferimento di frequenza pari a 4 Hz ed un buon controllo della forma d’onda d’uscita. Pertanto, esso è stato integrato al banco di prova su filtri automotivi già esistente all’interno del laboratorio Interferenze Elettromagnetiche Condotte e Power Quality in dotazione all’ISSIA-CNR u.o.s. di Palermo. I componenti del sistema sono riportati in tab. 1 e sono di seguito descritti. Una fotografia del sistema realizzato, connesso al motore automotive a 42 V, è mostrata invece in fig. 5. Quantità 1 1 1 1 1 1 Descrizione Kit didattico Semikron Semiteach (raddrizzatore trifase a diodi + inverter trifase a IGBT + chopper di frenatura) Scheda di sviluppo Altera Cyclone III FPGA, con cavo di alimentazione e cavo USB di programmazione Scheda di espansione Nial Stewart GPIB Scheda con display SSD e relativo cavo flat di collegamento Cavo DB15-RCA a 6 uscite Potenziometro lineare multigiri da 1 kΩ Tab. 1. Componenti del sistema Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 7 Fig. 5. L’inverter V/f realizzato, collegato ad un motore automotive a 42 V 2.2 Kit didattico Semikron Semiteach La sezione di potenza dell’inverter è stata realizzata mediante il kit didattico Semiteach della Semikron, mostrato in fig. 6, il quale è costituito da un gruppo raddrizzatore trifase a diodi e da un inverter trifase a IGBT con chopper di frenatura, racchiusi all’interno di un contenitore trasparente in plexiglass. Esso è dotato di 12 connettori a banana o BNC che consentono di effettuare le connessioni elettriche necessarie: • per il collegamento di terra (connettore 0); • per il collegamento agli ingressi (connettori 1, 2 e 3) e alle uscite (connettori 4) del raddrizzatore trifase; • per la connessione al DC-link (connettori 5); • per la connessione al carico trifase (connettori 6); • per l'invio degli impulsi di commutazione agli IGBT dell’inverter (connettori 7); • per l'invio degli impulsi di commutazione all’IGBT del chopper (connettore 8); • per i segnali di errore provenienti dai driver IGBT (connettori 9); • per l’alimentazione dei driver IGBT (connettori 10, 11 e 12). Il kit presenta i seguenti limiti in tensione e corrente: Irms=30 A e Vac/Vdc max=440/750 V; ulteriori dati caratteristici sono riportati in tab. 2. Il sistema proposto utilizza soltanto il modulo inverter del kit Semiteach, quindi richiede soltanto i collegamenti ai connettori 5÷7 e 10÷12. Tale inverter è equipaggiato con tre moduli di potenza SKM50GB123D, ciascuno comprendente una coppia di IGBT con i rispettivi diodi in antiparallelo, comandati da altrettanti doppi driver SKHI22AR, che includono funzionalità di implementazione del tempo morto, interblocco top-bottom, protezione da corto circuito, protezione undervoltage, segnale di uscita ERROR di tipo latch e isolamento galvanico. In Appendice A sono riportate le tabelle A.1, A.2 e A.3 con le caratteristiche del modulo di potenza SKM50GB123D e la tabella A.4 con i parametri del driver SKHI22AR. Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 8 Fig. 6. Il kit didattico Semiteach della Semikron Tab. 2. Caratteristiche del kit didattico Semiteach 2.3 Schede Altera Cyclone III FPGA e Nial Stewart GPIB Per l’implementazione del sistema di controllo è stata scelta una scheda di sviluppo Altera Cyclone III FPGA [5], mostrata in fig. 7, a sinistra. Essa ospita un FPGA Altera EP3C25F324 pilotato da un oscillatore a 50 MHz e presenta le seguenti caratteristiche principali: • 25K elementi logici; • 66 blocchi di memoria M9K (0.6 Mbits); • quattro PLL; • 214 porte di I/O. La scheda è facilmente programmabile in linguaggio VHDL e rappresenta una piattaforma a basso costo ed alte prestazioni che consente di implementare una vasta gamma di progetti, dai più semplici a quelli multimediali. Le sue caratteristiche più importanti sono il basso consumo di potenza, la disponibilità di memoria SSRAM ed EEPROM e l’espandibilità mediante il connettore HSMC (High Speed Mezzanine Card), che consente la connessione di schede di espansione con diverse funzionalità. Nel caso in esame è stato necessario collegare una scheda di espansione Nial Stewart GPIB [6], dotata di diversi connettori di I/O con i relativi level-shifter per interconnettere logica CMOS a 2.5V con logica CMOS a 3.3V e TTL, e di convertitori A/D e D/A a 10 bit con 8 canali ciascuno. Tale scheda di espansione è mostrata in fig. 7, a destra. Fig. 7. Scheda Altera Cyclone III FPGA con la scheda di espansione Nial Stewart GPIB Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 9 Un ulteriore vantaggio della scheda Altera è costituito dal fatto che ospita a bordo anche il programmatore USB-Blaster che, mediante connessione USB e protocollo JTAG, consente la programmazione dell’FPGA. Per le fasi di scrittura e compilazione del codice, simulazione, debug e programmazione del dispositivo è stato utilizzato il software Quartus II Web Edition, che rappresenta un valido ambiente grafico di sviluppo fornito gratuitamente dalla Altera [7]. 2.4 Scheda SSD Si tratta di una scheda appositamente realizzata, che ospita a bordo un commutatore rotativo a 4 posizioni ed un display a 7 segmenti a 4 cifre (display SSD), come mostrato in fig. 8, nonché tutta la circuiteria necessaria per il pilotaggio in multiplex. Essa consente di visualizzare informazioni provenienti dalla scheda Altera, selezionandole mediante il commutatore, e si collega allo zoccolo DIP24 della scheda Nial Stewart mediante un apposito cavo flat a 26 poli in dotazione. In caso di overflow, il display visualizza “0.0.0.0.”. Il LED di segno è utilizzato come indicatore di blocco sovramodulazione, come descritto nel capitolo 3. Fig. 8. Scheda per la visualizzazione su display SSD 2.5 Altri componenti Il sistema comprende anche i seguenti componenti: • un cavo DB15-RCA a 6 uscite, necessario per connettere la scheda Nial Stewart agli ingressi di pilotaggio degli IGBT dell’inverter Semikron; • un potenziometro lineare multigiri da 1 kΩ, da collegare all’ingresso ADC0 del convertitore A/D a bordo della scheda Nial Stewart, necessario per impostare il riferimento di frequenza. Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 10 3. IMPLEMENTAZIONE DEL SISTEMA DI CONTROLLO Il sistema di controllo dell’inverter proposto è stato realizzato programmando la scheda FPGA Altera in linguaggio VHDL [8] all’interno dell’ambiente di sviluppo Quartus II Web Edition. Come già fatto in altre occasioni, il codice è stato sviluppato con un’architettura modulare per consentire di riutilizzare componenti software già messi a punto e di crearne altri per la specifica applicazione. In questo caso sono stati creati due componenti per l’interfaccia utente (UI_buttons_and_leds.vhd e UI_SSD_display.vhd) che sono stati connessi ad altri componenti VHDL precedentemente validati, quali i modulatori PWM che implementano la tecnica nota come symmetrical regular sampling [9], la look-up-table (LUT) per la generazione di una terna simmetrica diretta di sinusoidi [10] e il componente che implementa le curve delle fig. 3 e 4 [11]. Dal momento che i numeri reali definiti dal linguaggio VHDL non sono sintetizzabili, è stato scelto di lavorare in notazione a virgola fissa a 32 bit con segno, mediante l’applicazione di opportuni fattori di scala che, per maggiore chiarezza, vengono indicati anche nel nome di ciascun segnale. Lo schema a blocchi relativo all’intero progetto è mostrato in fig. 9 e trova corrispondenza nella struttura del file principale (inverter_V_f.vhd). Esso mostra i diversi componenti VHDL utilizzati, le cui estensioni .vhd sono state omesse per sintesi. Il processo inizia con la lettura, mediante il componente VHDL denominato AD7918, del segnale ch_0 presente sul canale 0 dell’omonimo convertitore A/D [12], collegato al potenziometro esterno per l’impostazione del riferimento di frequenza. Tale segnale, insieme al segnale ops_valid che indica il termine del processo di conversione, viene processato dal blocco synch_inputs, che lo sincronizza con la frequenza di lavoro del sistema e lo scala opportunamente per fornire il riferimento di frequenza moltiplicato per dieci (segnale f_x10_ref). Questo viene elaborato dal componente accel_and_decel_ramps della libreria ISSIA_package.vhd, che implementa le rampe di accelerazione e decelerazione secondo la programmazione dell’utente e in base al valore del flag ramp_up_down, opportunamente settato dal blocco UI_buttons_and leds in base allo stato dei pulsanti START e STOP. Il segnale di uscita del blocco accel_and_decel_ramps rappresenta il valore istantaneo della rampa di frequenza moltiplicato per dieci (segnale f_x10_ramp) e viene processato dal componente principale (V_f_control), già presente in libreria, che implementa le curve delle figure 3 e 4, fornendo i seguenti segnali: 1. il valore della frequenza d’uscita effettiva, moltiplicato per dieci (f_x10); 2. la frequenza della portante (f_pwm); 3. il valore della tensione di uscita, moltiplicato per dieci (V_x10); 4. l’indice di modulazione moltiplicato per 1000 (m_a_x1000); 5. il flag di blocco sovramodulazione (block_overmod); 6. il rapporto di divisione (f_x1000_ratio) per la generazione del clock per lo scorrimento dei valori della look-up-table (LUT) della funzione y=sin(x), di frequenza pari a 1000 volte la frequenza da generare, dal momento che tale è il numero di punti della LUT; 7. il rapporto di divisione (f_pwm_x4R_ratio) per la generazione del clock che costituisce la base dei tempi dei modulatori PWM relativi alle tre fasi, di frequenza pari a quella della portante moltiplicata per 4R, dove ±R è l’escursione massima dei segnali in ingresso a ciascun modulatore. Il funzionamento del componente VHDL principale (V_f_control.vhd) e il modo in cui in esso sono implementate le curve delle figure 3-4 sono stati già descritti nel rapporto tecnico n. 412 [11]. Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 11 Si evidenzia soltanto che, per semplicità di implementazione, è stato deciso di impedire al sistema il funzionamento in sovramodulazione; in tal caso, infatti, non sarebbe semplice prevedere il valore della tensione di uscita a partire dalla conoscenza dell’indice di modulazione. Pertanto, determinato il valore della tensione di uscita V_x10, è possibile ricavare l’indice di modulazione mediante la seguente equazione, valida in zona lineare: m _ a _ x1000 = V (V _ x10) ⋅ 1634 (V _ x10) ⋅ 1634 ⋅ 1,634 ⋅ 1000 = = V DC V DC ⋅ 10 M6 in cui il parametro M6 indica la tensione del DC-link moltiplicata per 10. Viene, quindi, verificato se il valore precedentemente calcolato è maggiore di 1000, ovvero se al riferimento di frequenza impostato corrisponde una tensione di usita che comporta un funzionamento al di fuori della zona lineare della modulazione PWM. In caso affermativo, il nuovo riferimento di frequenza non viene impostato e viene portato a 1 il livello del segnale di uscita block_overmod, che sarà utilizzato in seguito per far lampeggiare il corrispondente LED. Tale segnale viene attivato anche in base all’esito di una seconda verifica. Per evitare distorsioni della forma d’onda generata, si valuta se i valori impostati comportano una modulazione PWM con impulsi di durata inferiore al parametro A1, quindi non generabili dai driver IGBT a bordo dell’inverter Semikron; di essi è stata fatta una preventiva caratterizzazione che ha consentito di scegliere il valore di default del parametro A1, cioè 5µs. La suddetta verifica viene effettuata valutando se: m a ≤ (1 − f pwm ⋅ 2 ⋅ t min ) ovvero se: MAIN_CLK_FREQ 2 ⋅ A1 m _ a _ x1000 ≤ 1000 ⋅ 1 − ⋅ 4 R ⋅ f_pwm_x 4 R_ratio 1.000.000 Per quanto concerne i parametri dei modulatori PWM, è stato scelto per R ed S il valore 500, mentre la LUT fornisce in uscita i riferimenti per la generazione delle tre sinusoidi moltiplicati per 1000, cioè nel range [-1000; 1000]. Inoltre, i riferimenti vanno moltiplicati per l’indice di modulazione anch’esso moltiplicato per 1000. Pertanto, il valore ref_sine da applicare all’ingresso del modulatore di ciascuna fase potrà essere ottenuto mediante la seguente equazione: ref_sine = sin X _ x1000 m _ a _ x1000 sin X _ x1000 ⋅ m _ a _ x1000 ⋅ = 2 1000 2000 Le uscite dei tre modulatori PWM sono, quindi, portate all’esterno dell’FPGA e costituiscono i segnali di pilotaggio per gli IGBT dei rispettivi rami dell’inverter Semikron. Parallelamente, il blocco denominato UI_SSD_display riceve in ingresso i segnali 1÷5 generati dal blocco principale V_f_control e il valore del riferimento di frequenza impostato, moltiplicato per dieci (f_x10_ref). Leggendo lo stato del commutatore rotativo ABCD, esso formatta opportunamente il valore della grandezza selezionata (segnale item_sampled) e la posizione del punto decimale (segnale dp_vector) e li trasferisce al blocco SSD_driver per l’effettiva visualizzazione sul display SSD, pilotato in multiplex con frequenza di scansione pari a 250 Hz e frequenza di aggiornamento del valore pari a 2 Hz. Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 12 Per quanto concerne i clock, a bordo della scheda Altera è presente un oscillatore a 50 MHz che, tramite software, è stato collegato al PLL interno per la generazione del clock principale a 120 MHz. Gli altri clock necessari sono ottenuti da quest’ultimo sotto forma di segnali di clock enable mediante opportuni divisori di frequenza con rapporto fisso o variabile e sono i seguenti: • il clock per la gestione dell’interfaccia utente (UI_clk_en); • il clock per la generazione delle rampe di accelerazione e di decelerazione (upd_ramp_clk_en); • il clock per lo scorrimento dei valori della look-up-table (LUT) per la generazione di una terna simmetrica diretta di sinusoidi (clk_f_x1000_en); • il clock che costituisce la base dei tempi dei modulatori PWM relativi alle tre fasi (clk_fpwm_x4R_en). Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 13 Fig. 9. Schema a blocchi dell’implementazione in linguaggio VHDL Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 14 4. PROCEDURA DI MESSA IN SERVIZIO Il flowchart di seguito riportato illustra la procedura di messa in servizio del sistema; le diverse fasi sono di seguito descritte. Fig. 10. Flowchart della procedura di messa in servizio 4.1 Esecuzione dei collegamenti elettrici L’operazione preliminare da effettuare per la messa in servizio dell’inverter è la realizzazione dei collegamenti elettrici. Dopo aver collegato l’insieme costituito dalla scheda FPGA Altera e dalla scheda di espansione Nial Stewart GPIB all’alimentatore fornito in dotazione, occorre collegare il potenziometro lineare multigiri da 1 kΩ all’ingresso analogico ADC0 della scheda GPIB. Successivamente è necessario collegare mediante il cavo flat il modulo display SSD allo zoccolo DIP24 presente sulla scheda GPIB. Quindi si deve connettere la scheda GPIB ai 6 ingressi di pilotaggio dell’inverter Semikron mediante il cavo DB15-RCA in dotazione. Infine, occorre collegare i due ingressi del DC-link dell’inverter ad un alimentatore in continua di potenza opportuna e le tre uscite al motore asincrono da alimentare. Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 15 4.2 Modifica dei parametri e ricompilazione Se la scheda risulta già programmata in precedenza e non si ravvisa la necessità di variare i parametri di configurazione, è possibile saltare direttamente al passo 4.4. In caso contrario, collegare la scheda Altera mediante un cavo USB ad un PC dotato del software Quartus II. Avviare il suddetto programma e caricare il progetto inverter_V_f.qpf nell’ambiente di lavoro. Editare il file inverter_parameters.vhd, modificando i parametri desiderati. La tab. 3 riporta per ciascun parametro la sua descrizione, il range di variazione, il valore di default e l’eventuale fattore di scala. Si evidenzia il fatto che i parametri C1÷C10 sono relativi alle curve caratteristiche riportate nelle figure 3 e 4. Tab. 3. Parametri di configurazione Parametro A01 M06 P05 P06 C01 C02 C03 C05 C06 C07 C08 C09 C10 W01 Descrizione Campo di valori ammessi Valore di default 5 µs Durata minima degli impulsi PWM generabili dai driver IGBT 0-10 µs dell’inverter Valore della tensione del DC-link 0-3·C08 560 V Durata della rampa di accelerazione da 0 a f_max (parametro 0-6500 s 10 s C06) Durata della rampa di decelerazione da f_max (parametro C06) a 0-6500 s 10 s 0 Valore minimo della frequenza di modulazione PWM 0.6-12.8 kHz 10 kHz Valore massimo della frequenza di modulazione PWM 0.6-12.8 kHz 10 kHz Numero di impulsi generati dalla modulazione PWM nel 12-384 secondo 24 passaggio dalla minima alla massima frequenza di modulazione multipli pari di 12 PWM Frequenza nominale del motore relativa alla curva tensione3.5-800 Hz 50 Hz frequenza. Determina il passaggio dal funzionamento a V/f costante al funzionamento a V costante Frequenza massima d’uscita relativa alla curva tensione3.5-800 Hz 50 Hz frequenza. Frequenza in uscita dall’inverter in corrispondenza del massimo valore di riferimento Frequenza minima di uscita relativa alla curva tensione0.5-5 Hz 0.5 Hz frequenza. Minima frequenza generata all’uscita dall’inverter Tensione nominale del motore. Determina la tensione d’uscita 1-460 V 380 V alla frequenza nominale del motore Boost di tensione a bassi giri. Determina l’incremento della 0-100% 0 tensione di uscita a basse frequenze rispetto al rapporto tensionefrequenza costante Pre-boost di tensione a bassi giri. Determina la tensione di uscita 0-5% 2.5% teorica a 0 Hz. Errore in fase di compilazione se non è possibile generare la 0-1 0 tensione nominale del motore (C08) con indice di modulazione m_a≤1 Fattore di scala x10 x10 x10 x10 x10 Dopo aver modificato i parametri desiderati, ricompilare il progetto premendo la combinazione di tasti CTRL-L. Opportune righe di codice VHDL verificheranno automaticamente la coerenza dei parametri immessi. Se la tensione del DC-link risulta maggiore del triplo della tensione nominale del motore, la compilazione sarà interrotta con il seguente messaggio di errore: “DC-link voltage is too high”. Se, invece, il parametro W01 è impostato a 1 e la tensione del DC-link è insufficiente a consentire l’alimentazione del motore alla tensione nominale rimanendo nella zona lineare della modulazione PWM, ovvero con indice di modulazione ma≤1, la compilazione sarà interrotta con il seguente messaggio di errore: “DC-link voltage is too low”. In ogni caso, al termine della compilazione verrà salvato un file denominato inverter.sof nella cartella del progetto. Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 16 4.3 Programmazione Per trasferire il codice compilato sulla EEPROM a bordo della scheda Altera, è necessario dapprima convertire il file inverter.sof in formato .pof mediante i controlli della finestra “Convert Programming Files” richiamabile tramite la relativa voce del menu “File”. I parametri da utilizzare sono i seguenti: • configuration device: CFI_128MB • mode: active parallel • input file: inverter.sof • SOF data properties: address mode=start, start address=0x020000 Ottenuto il file .pof, aprire l’interfaccia del programmatore mediante la voce “Programmer” del menu “Tools”, caricare il suddetto file e trasferirlo sulla EEPROM premendo il pulsante “Start” presente sulla barra posta a sinistra dell’interfaccia o la corrispondente voce del menu “Processing”. L’operazione dura meno di un minuto. 4.4 Stand-by, avviamento, marcia e arresto; visualizzazione display SSD Accendere la scheda Altera mediante l’apposito interruttore. Il sistema si troverà in stato di stand-by: tutti i segnali di pilotaggio saranno nulli e il display SSD si accenderà. Posizionare il selettore ABCD presente sulla scheda SSD sulla posizione A in modo da visualizzare il riferimento di frequenza impostato mediante il potenziometro. E’ possibile agire sul potenziometro e contemporaneamente leggere la corrispondente indicazione sul display SSD. Scelto il valore desiderato per la frequenza di riferimento, premere il pulsante START, corrispondente al pulsante “Button 4” della scheda Altera. Il relativo LED, posizionato immediatamente sopra il pulsante, si accenderà per conferma e il motore si avvierà seguendo la rampa di accelerazione preimpostata. E’ possibile visualizzare sul display SSD le seguenti informazioni, aggiornate in tempo reale: • frequenza di riferimento, impostata mediante il potenziometro; • frequenza effettiva di alimentazione; • tensione concatenata di uscita in valore efficace; • frequenza della portante; • indice di modulazione. E’ da segnalare che è possibile variare il riferimento di frequenza anche a motore già avviato. Come precedentemente specificato, l’inverter lavora solo nella zona lineare della modulazione PWM; pertanto, se il parametro W01 è impostato a zero e si scelgono valori di frequenza che implicano il funzionamento in sovramodulazione, essi non verranno attuati; si avrà comunque un funzionamento con indice di modulazione unitario e il LED di segno del display SSD lampeggerà. Diminuendo il valore del riferimento di frequenza, il LED smetterà di lampeggiare. Volendo arrestare il motore, sarà sufficiente premere il pulsante STOP, corrispondente al pulsante “Button 3” della scheda Altera; il relativo LED si accenderà per conferma e il motore si arresterà seguendo la rampa di decelerazione preimpostata. 4.5 Reset Qualora nel corso delle operazioni si rilevi un allarme o un’anomalia, agendo sul pulsante RESET della scheda Altera sarà possibile togliere immediatamente tensione in uscita all’inverter, per cui il motore si arresterà per inerzia. Il sistema si riporterà nello stato di stand-by; pertanto, per far ripartire il motore sarà sufficiente premere nuovamente il pulsante START. Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 17 CONCLUSIONI E SVILUPPI FUTURI Il sistema realizzato costituisce un inverter completo per il controllo V/f di motori asincroni trifase, con possibilità di fornire esternamente la tensione del DC-link, senza restrizioni sulla tensione minima di uscita. Pertanto, regolando opportunamente la tensione del DC-link ed aggiornando conseguentemente uno specifico parametro dell’inverter configurabile dall’utente, è possibile alimentare sia motori automotive, sia motori per azionamenti industriali. L’algoritmo di controllo è stato codificato in linguaggio VHDL e programmato su una scheda FPGA Altera. Per la sezione di potenza è stato usato un kit Semikron Semiteach. Il sistema implementa le rampe di accelerazione e di decelerazione e le curve V/f e f_carrier/f tipiche degli inverter commerciali e, in particolare, del modello SINUS/IFDE-F 400T-5.5kW della ditta Elettronica Santerno. Le curve sono completamente configurabili mediante una serie di parametri programmabili dall’utente. L’inverter lavora nella zona lineare della modulazione PWM e fornisce un’indicazione visiva qualora il riferimento di velocità impostato richieda il funzionamento in sovramodulazione o comporti la generazione di impulsi PWM di durata inferiore al minimo valore consentito dai driver IGBT impiegati. Il prototipo realizzato è stato collaudato positivamente ed ha consentito di alimentare un motore asincrono per uso automotive da 1,1 kW con tensione nominale pari a 42 V per poter realizzare le misure necessarie a verificare le prestazioni di un filtro attivo EMI oggetto di ricerca. Il sistema ha consentito l’avviamento del motore già a partire da un riferimento di frequenza pari a 4 Hz ed un buon controllo della forma d’onda d’uscita. Pertanto, esso è stato integrato al banco di prova su filtri automotivi già esistente all’interno del laboratorio Interferenze Elettromagnetiche Condotte e Power Quality in dotazione all’ISSIA-CNR u.o.s. di Palermo. Per quanto concerne gli sviluppi futuri, è stata iniziata la fase di progettazione di una scheda dotata di 5 pulsanti e di un display a cristalli liquidi 16x2, da sostituire alla scheda SSD attualmente impiegata. Essa consentirà non soltanto la visualizzazione delle grandezze di interesse, ma anche la riprogrammazione on-line dei parametri dell’inverter, senza la necessità di modificare il file sorgente, né di dover collegare la scheda Altera ad un PC. A tale scopo è in corso di scrittura un ulteriore componente VHDL che implementerà il menu interattivo di configurazione del sistema. Inoltre, sarà implementato un comando di inversione di marcia attraverso tre fasi distinte: rampa di decelerazione fino a velocità nulla; inversione del verso di rotazione; rampa di accelerazione fino alla velocità impostata. Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 18 RIFERIMENTI BIBLIOGRAFICI [1] M. Luna, A. Sauro, S. G. Scordato. Rapporto tecnico RT-ISSIA-PA-N. 407-2011. “Analisi dei laboratori del CNR-ISSIA u.o.s. di Palermo ed individuazione di possibili interventi migliorativi”. Data di creazione: 05/11/2010. Prima distribuzione al pubblico e deposito legale: 18/07/2011 presso Biblioteca Nazionale Centrale di Roma, Biblioteca Nazionale Centrale di Firenze, Biblioteca Centrale della Regione Siciliana. [2] M.C. Di Piazza, M. Luna, A. Ragusa, G. Vitale. “An Improved Common Mode Active Filter for EMI Reduction in Vehicular Motor Drives”. IEEE Vehicle Power and Propulsion Conference, VPPC 2011, 6-9 Sept 2011. Chicago, USA (accepted for presentation). [3] B.K. Bose. “Modern Power Electronics and AC Drives”. 2002. Prentice Hall PTR. [4] Manuale d’uso dell’inverter a controllo digitale SINUS/IFDE-F 400T-5.5 kW. Versione software 2.01. Dicembre 1996. Elettronica Santerno s.p.a. Imola (Italy). [5] Altera. Cyclone III FPGA Starter Board Reference Manual. October 2007. http://www.altera.com/products/devkits/altera/kit-cyc3-starter.html [6] Nial Stewart Developments Ltd. HSMC General Purpose Interface Board (GPIB) User Guide. http://www.nialstewartdevelopments.co.uk/products.htm [7] Altera. Introduction to the Quartus® II Software. Version 9.1. http://www.altera.com/products/software/quartus-ii/web-edition/qts-we-index.html [8] VHDL Standard - IEEE Standard for VHDL Register Transfer Level (RTL) Synthesis (1076.6-1999). [9] M. Luna, M. Pucci, G. Vitale. Rapporto tecnico RT-ISSIA-PA-N. 409-2011. “Libreria VHDL di componenti per il laboratorio Energie Rinnovabili ed Azionamenti Elettrici del CNR-ISSIA u.o.s. di Palermo. Revisione 1.1: implementazione di un modulatore PWM deterministico e random”. Data di creazione: 14/12/2010. Prima distribuzione al pubblico e deposito legale: 18/07/2011 presso Biblioteca Nazionale Centrale di Roma, Biblioteca Nazionale Centrale di Firenze, Biblioteca Centrale della Regione Siciliana. [10] M. Luna. Rapporto tecnico RT-ISSIA-PA-N. 410-2011. “Libreria VHDL di componenti per il laboratorio Energie Rinnovabili ed Azionamenti Elettrici del CNR-ISSIA u.o.s. di Palermo. Revisione 1.2: implementazione delle look-up table (LUT) per il calcolo delle funzioni trigonometriche sin(x) e cos(x)”. Data di creazione: 03/02/2011. Prima distribuzione al pubblico e deposito legale: 18/07/2011 presso Biblioteca Nazionale Centrale di Roma, Biblioteca Nazionale Centrale di Firenze, Biblioteca Centrale della Regione Siciliana. [11] M. C. Di Piazza, M. Luna, G. Vitale. Rapporto tecnico RT-ISSIA-PA-N. 412-2011. “Libreria VHDL di componenti per il laboratorio Energie Rinnovabili ed Azionamenti Elettrici del CNR-ISSIA u.o.s. di Palermo. Revisione 1.4: implementazione dei componenti necessari per il controllo V-f”. Data di creazione: 10/05/2011. Prima distribuzione al pubblico e deposito legale: 18/07/2011 presso Biblioteca Nazionale Centrale di Roma, Biblioteca Nazionale Centrale di Firenze, Biblioteca Centrale della Regione Siciliana. [12] Analog Devices. AD7908/AD7918/AD7928 datasheet. Rev. C. November 2008. Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 19 APPENDICE A Tab. A.1. Caratteristiche del modulo SKM50GB123D (1) Tab. A.2 e A.3. Caratteristiche del modulo SKM50GB123D (2) Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 20 Tab. A.4. Caratteristiche del driver SKHI22AR Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 21 APPENDICE B A mero titolo informativo, la sottostante tabella riporta l’associazione tra il nome di ciascun segnale del codice VHDL e il corrispondente pin del chip FPGA, da impostare mediante l’interfaccia Pin Planner, accessibile richiamando la corrispondente voce del menu Assignments. Si tratta comunque di un’operazione normalmente non richiesta, in quanto tali assegnazioni sono state già specificate nel file del progetto. Tab. B.1. Assegnazioni segnale-pin nel Pin Planner adc_cs_n adc_din adc_dout adc_sclk master_clk rst_n probe_ops_valid probe_sclk ssd_addr[1] ssd_addr[0] ssd_digit[0] ssd_digit[1] ssd_digit[2] ssd_digit[3] ssd_dp ssd_sign output_PWM_T1A output_PWM_T1B output_PWM_T1C output_PWM_T2A output_PWM_T2B output_PWM_T2C sync start_btn_n stop_btn_n selector_ABCD[1] selector_ABCD[0] btn_leds_n[1] btn_leds_n[0] PIN_A1 PIN_E1 PIN_N10 PIN_J13 PIN_V9 PIN_N2 PIN_L4 PIN_L3 PIN_H18 PIN_L17 PIN_M18 PIN_P17 PIN_N13 PIN_L14 PIN_N6 PIN_M13 PIN_K1 PIN_N15 PIN_C1 PIN_H16 PIN_T16 PIN_H1 PIN_L5 PIN_B10 PIN_A10 PIN_T3 PIN_P1 PIN_N9 PIN_N12 Rapporto Tecnico RT – ISSIA – PA – N. 413 – 2011 22