Programmi MATLAB per l'analisi in tempo reale del comportamento dinamico di un motore a collettore alimentato serie

Giovanni Golino - Domenico Matacchioni
Università degli Studi di Roma “La Sapienza”
Dipartimento di Informatica e Sistemistica


  • Riassunto
    Scopo del seguente lavoro è quello di fornire un sofisticato ambiente per l'analisi del comportamento di un motore universale (a collettore alimentato serie). Tale motore viene correntemente utilizzato per l'azionamento del cestello in alcuni modelli di lavabiancherie. La prima parte del lavoro è consistita nel lavoro di modellizzazione matematica del motore elettrico. La seconda parte del lavoro è consistita nel lavoro di sviluppo del software di interfacciamento tra la scheda di acquisizione dati e il MATLAB, in modo da acquisire i valori di tensione letti dalla scheda direttamente nell’ambiente di lavoro. La terza parte del lavoro è consistita nell'opera di interfacciamento tra la scheda di acquisizione dati e le grandezze di interesse (tensione e corrente sul motore e uscita della dinamo tachimetrica), adoperando a tal scopo dei convertitori a isolamento galvanico, in modo da effettuare una misura più accurata. Infine, la quarta parte del lavoro è consistita nell'effettuazione delle misure e delle valutazioni delle stesse.

    Parole chiave: Motori elettrici, acquisizione e analisi dei segnali, modelli non lineari, MEX-file.


  • Introduzione
    Il motore a collettore, alimentato da triac, è utilizzato in moltissimi elettrodomestici: in questo lavoro ci occuperemo in particolare di un motore correntemente impiegato in un modello di lavabiancheria.
    Per modificare la velocità del motore si agisce sull'angolo di innesco del triac. Durante l'usuale impiego dell'elettrodomestico si possono verificare di frequente condizioni di carico in corrispondenza delle quali il comportamento del motore può risultare poco soddisfacente, o addirittura inaffidabile, a causa delle non linearità nel circuito elettromagnetico del motore e delle distorsioni provocate dal triac sull'andamento della tensione e della corrente.

    Il comportamento fortemente non lineare del circuito elettromagnetico del motore rende praticamente impossibile il calcolo degli andamenti della corrente, della tensione e della coppia a partire dal modello nominale del motore e dal valore dei suoi parametri, ottenuti dalle prove convenzionali al banco. Per progettare una modalità di controllo del motore a collettore alimentato da triac, che consenta di ovviare agli inconvenienti precedentemente accennati, è necessario rendere operativo un modello affidabile del motore ed elaborare i valori della tensione e della corrente, in modo da ottenere grandezze significative per la progettazione di una efficace strategia di controllo dell'insieme motore-alimentatore a triac. Per poter effettuare la progettazione di un dispositivo di controllo secondo criteri sistematici, è stato necessario innanzitutto mettere a punto un dispositivo che consenta di prelevare i valori campionati della tensione e della corrente direttamente dal motore installato nell'elettrodomestico e di elaborarli in linea applicando le funzioni del MATLAB.
    A tal scopo sono perciò state create delle funzioni MEX-DLL, scritte in linguaggio C.

    Il lavoro descrive dapprima l'architettura del dispositivo di acquisizione dati, successivamente, le procedure software per ottenere il collegamento con il SIMULINK e la elaborazione in linea dei valori campionati, in corrispondenza di particolari cicli di lavoro dell'elettrodomestico. Saranno quindi mostrati gli andamenti rilevati in linea del valore efficace della armonica fondamentale, della potenza attiva, della potenza di picco e di quella reattiva. I valori ottenibili con i convenzionali strumenti elettrodinamici non fornirebbero valori attendibili. Altrettanto inaffidabili sarebbero i valori ottenuti dalle convenzionali procedure basate sulla FFT.


  • Modello del motore
    Sulla base dei dati tecnici forniti dal costruttore, nella prima parte del lavoro, si è disegnato lo schema a blocchi di tale motore (Fig. 1), lo stesso poi utilizzato all’interno di SIMULINK.

    [FIGURA]

    Fig. 1: Modello del motore

    Lo schema a blocchi deriva molto semplicemente dalle equazioni di equilibrio elettriche e meccaniche.
    Per quanto riguarda l’equazione elettrica del motore, si ha:

    [FIGURA]

    dove v ed i sono la tensione e la corrente di alimentazione, R la resistenza complessiva (armatura+circuito di eccitazione), L l’induttanza complessiva, e la f.e.m. indotta sull’armatura. Per quanto riguarda la f.e.m. essa è legata al flusso induttore, legato a sua volta alla corrente, e ad w velocità angolare del motore, per cui si ha:

    [FIGURA]

    La coppia T fornita dal motore è legata al quadrato della corrente, per via dell’alimentazione serie del motore, dalla seguente relazione:

    [FIGURA]

    I coefficienti M(w) e K(w) sono stati individuati attraverso prove al banco a freno variabile del motore con tensioni di alimentazione da 50V a 220V

    [FIGURA][FIGURA]

    Per quanto riguarda l’equazione meccanica, si ha:

    [FIGURA]

    I parametri specifici che compaiono, cioè il momento di inerzia J e l’attrito viscoso F, sono stati stimati, come si vedrà più avanti, attraverso un algoritmo di identificazione.


  • Descrizione dell’apparato sperimentale
    I segnali che in seguito saranno esaminati sono la tensione e la corrente ai capi del motore e la tensione di uscita di una dinamo tachimetrica posta sull’asse del motore.

    [FIGURA]

    Fig. 2: Schema a blocchi dell'apparato sperimentale

    In Fig. 2 si può vedere come questi segnali vengono prelevati ed elaborati in modo da ottenere i valori istantanei ed efficaci della tensione e della corrente, i valori della potenza attiva e reattiva ed il valore della velocità del cestello.

    La scheda di acquisizione dati è la PC200068C.1B della Burr-Brown, è una scheda che può lavorare con 16 canali di ingresso analogici in modalità single ended, oppure con 8 canali di ingresso in modalità differenziale,
    il range di tensione supportato varia da ± 5V a ± 10V. Questa scheda è stata montata all'interno di un PC con processore Intel 486 Dx 33 MHz. Nella scheda sono presenti un contatore e un generatore di impulsi che possono essere utilizzati per generare il clock di campionamento dei segnali analogici, successivamente i dati campionati possono essere trasferiti all'interno della memoria del PC, con una frequenza di campionamento fino a 47 kHz (usando un solo canale) e fino ad un limite di circa 8000 campioni (complessivamente per tutti i canali). In alternativa si può leggere un dato alla volta, qualora non occorra agganciarsi ad una frequenza di clock. Il software fornito dal costruttore consiste in un insieme di procedure per il pilotaggio della scheda. Queste procedure sono state scritte in linguaggio C. L’obiettivo di questa fase del lavoro era quello di poter utilizzare la scheda di acquisizione dati senza uscire dall'ambiente di lavoro MATLAB. Il MATLAB è un linguaggio di programmazione dedicato al calcolo, uno tra i software più potenti in commercio. La sue caratteristiche più importanti sono:

    • esso adopera la matrice come elemento di calcolo di base, molte operazioni perciò vengono notevolmente semplificate, ad esempio l’inversione di una matrice viene effettuata con una sola istruzione,
    • dispone ormai di moltissime librerie di calcolo avanzato (le toolbox) scritte in linguaggio di programmazione e quindi non compilate, esse sono perciò completamente trasparenti al programmatore che così ne può conoscere e verificare il funzionamento, nonché modificarle per adattarle ai propri scopi,
    • dà comunque la possibilità di utilizzare librerie di calcolo personali già compilate, scritte indifferentemente in linguaggio C o in Fortran, per cui chi già dispone di proprie routine scritte in uno di questi due linguaggi non è costretto a riscrivere tutto daccapo.
    Grazie a quest’ultima possibilità, le procedure per il pilotaggio della scheda sono state modificate e compilate mediante il compilatore Borland C++ versione 3.1. Si sono così create le funzioni di acquisizione mat_dma e mat_ai. Con queste due funzioni, i dati relativi ai segnali di misura vengono caricati direttamente in variabili di lavoro nell'ambiente di calcolo, così da rendere oltremodo veloci le operazioni di acquisizione ed elaborazione.


  • Interfacciamento della scheda
    La terza fase del lavoro è consistita nel creare le interfacce adatte per poter usare i canali della scheda in modo da acquisire i segnali più importanti per il funzionamento del motore della lavabiancheria. A quest’ultima sono state apportate le modifiche necessarie per l’acquisizione dei segnali.

    [FIGURA]

    Fig. 3: Sistema di riciclo dell'acqua

    Per il funzionamento sperimentale della lavabiancheria si è deciso di fare un sistema di riciclo dell’acqua.
    Come mostrato in Fig. 3, si tratta di un serbatoio che contiene 50 litri d’acqua sufficienti al funzionamento, una pompa collegata al serbatoio invia l’acqua al tubo di carico della lavabiancheria, mentre l’acqua di scarico della macchina finisce di nuovo nel serbatoio.Il comando per l’azionamento della pompa di carico viene pilotato dallo stesso segnale che aziona l’elettrovalvola di carico della lavabiancheria.

    Come sensori di tensione e di corrente sono stati usati i dispositivi LEM. Il LEM LA 25-NP è stato usato come sensore di corrente configurandolo per una corrente nominale al primario di IN = 25 Ampere e un fattore di scala di 1/1000 tra primario e secondario di misura. Il segnale di uscita in corrente al secondario di misura viene inviato su un resistore da 160 Ohm. La tensione ai capi di questo resistore è quindi proporzionale alla corrente che scorre nel primario. Tale tensione può essere quindi campionata e rilevata dal canale 1 della scheda di acquisizione.

    Come sensore di tensione è stato usato il LEM LV 25-P. Per l’acquisizione della tensione di comando del motore si è posto in serie al primario un resistore da 44 kW mentre il segnale di corrente di uscita al secondario di misura viene inviato su un resistore da 160 ohm. La tensione ai capi di tale resistore viene rilevata dal canale 2. Per l’acquisizione della tensione ai capi della dinamo tachimetrica si è posto in serie al primario un resistore da 6800 ohm, mentre il segnale di corrente di uscita al secondario di misura viene inviato su un resistore da 220 ohm. La tensione ai capi di tale resistore viene rilevata dal canale 3. L’informazione di velocità del motore viene ricavata a partire dalla frequenza della sinusoide generata dalla tachimetrica.


  • Acquisizione dei segnali
    Per quanto riguarda l’acquisizione dei segnali di tensione e di corrente istantanea si è scelto di operare ad una frequenza di campionamento di 10 kHz. In questo modo acquisire i valori di tensione e di corrente relativi a due periodi (40 msec) comporta la memorizzazione di due vettori da 400 elementi l’uno, ben al di sotto dei limiti di funzionamento della scheda e con sufficiente accuratezza per le successive elaborazioni.

    A partire dai valori di tensione e di corrente istantanea è possibile ricavarsi i valori di potenza attiva e reattiva, tuttavia ciò richiede alcune precisazioni:

    • la tensione e la corrente ai capi del motore non sono in genere sinusoidali, è possibile comunque effettuare una scomposizione armonica di questi due segnali,
    • poiché i segnali di tensione e di corrente sono periodici ed a frequenza nota e che per valutare il bilancio energetico conviene conoscere il contenuto delle armoniche con la migliore precisione possibile, conviene applicare dei metodi di calcolo basati sul calcolo discreto dei coefficienti di Fourier, piuttosto che i metodi basati sulla FFT,
    • una volta effettuata tale scomposizione, la potenza attiva totale si ricava facilmente facendo la somma dei contributi dovuti alle singole componenti armoniche di tensione e di corrente; la potenza reattiva si ricava in modo del tutto analogo.
    Quest’ultima conclusione deriva dal teorema di Parceval. Per quanto riguarda la tensione la corrente efficace e la velocità del cestello, è possibile acquisirle da ambiente MATLAB per mezzo della funzione vieff_vel.
    È tuttavia preferibile ricorrere al seguente schema SIMULINK:

    [FIGURA]

    Da ambiente MATLAB, digitando il comando “lavatrice” si entra in ambiente SIMULINK, ottenendo la schermata su mostrata. Dando il comando “Start” dal menu “Simulation”, si otterranno in tempo reale gli andamenti della tensione e della corrente efficace e della velocità del cestello in giri al minuto.

    Attraverso gli andamenti della velocità e della coppia è possibile stimare i parametri J e F che compaiono nell’equazione del carico meccanico a vuoto nel modello del motore (mod_mot). Poiché l’informazione sulla coppia non è disponibile direttamente, essa viene ricavata a partire dalla Eq. 3 Simile al comando precedente, il comando “identify” permette di entrare in ambiente SIMULINK, ottenendo la schermata seguente:

    [FIGURA]

    Dando il comando “Start “dal menu “Simulation”, si otterranno in tempo reale gli andamenti della tensione e della corrente efficace e della velocità del cestello in giri al minuto. Nello stesso tempo, verranno create nell’ambiente di lavoro MATLAB le variabili r, y e ydot, corrispondenti alla coppia del motore e alla velocità e l’accelerazione angolare del cestello, con le quali è possibile stimare i parametri J e F Una volta acquisite le variabili r, y e ydot, la stima viene eseguita digitando da MATLAB il comando stima_jf.


  • Analisi dei segnali
    Vengono qui di seguito riportati alcuni gruppi di segnali relativi a diverse fasi di funzionamento, senza alcun carico, della lavabiancheria. I grafici seguenti sono stati ottenuti utilizzando la funzione leggi_va con una frequenza di campionamento di 10 kHz e un numero di campioni pari a 400. La Fig. 4 mostra la forma d’onda del segnale di comando del motore e la Fig. 5 mostra la relativa forma d’onda della corrente. La sinusoide risulta parzializzata in modo da ottenere un regime di rotazione del motore pari a 1300 giri/min.
    A causa del comportamento induttivo e soprattutto per la presenza del triac, si nota il notevole sfasamento tra il segnale di tensione e quello di corrente specialmente per bassi regimi di rotazione. Sono visibili inoltre picchi di corrente, dovuti alla mancanza nella circuiteria di comando di appositi dispositivi di soppressione (Snubber).

    La Fig. 6 e la Fig. 7 mostrano invece il segnale parzializzato in modo da ottenere un numero di giri del motore pari a 6500 giri/min. Lo sfasamento tra il segnale di corrente e quello di tensione risulta diminuito mentre si notano oscillazioni in corrispondenza dello spegnimento del triac. Per quanto riguarda le potenze assorbite, risulta significativo dai due grafici seguenti come il contributo della potenza reattiva, soprattutto a causa della 3ª armonica, sia rilevante.

    I due grafici in sono stati ottenuti con l’impiego della funzione motdemo. Il comando motdemo costruisce una finestra grafica interattiva (vedi Fig. 8) sulla quale si possono inserire i parametri della frequenza di campionamento e del numero di campioni, in modo da visualizzare a scelta l’andamento della tensione e della corrente, oppure delle potenze attive e reattive. Il suo funzionamento è molto semplice, basta inserire nelle caselle apposite i valori della frequenza di campionamento e del numero di campioni, selezionare con il mouse se si vuole fare un’analisi in potenza, oppure come tensione e corrente e quindi premere il pulsante acquisisci. Il pulsante info dà delle informazioni circa il funzionamento di questa interfaccia grafica.

    Infine la Fig. 9 e la Fig. 10 mostrano il segnale di pilotaggio del motore senza parzializzazione. Lo sfasamento è ulteriormente diminuito, si osserva ancora meglio che nei casi precedenti come la forma d’onda della corrente sia distorta, ciò è dovuto molto probabilmente a fenomeni di isteresi magnetica.


  • Simulazione del motore controllato dal triac
    Nella Fig. 11 è mostrata la schermata relativa al funzionamento del modello SIMULINK del motore controllato dal triac. I grafici ottenuti dimostrano il buon funzionamento del modello (le scale dei grafici sono di 1500 giri/min per la velocità, 300 V per la tensione e 4 A per la corrente); i risultati possono essere confrontati con quelli di Fig. 6 e Fig. 7. Il riferimento in figura è proporzionale all'angolo di innesco (normalizzato ad 1).

    Sviluppare tale modello non ha presentato grosse difficoltà, malgrado la presenza di blocchi (ad esempio il triac) che non fanno parte delle librerie standard del SIMULINK. Per aumentare la velocità di simulazione si è utilizzato il toolbox “Simulink Accelerator”, il miglioramento riscontrato è stato soddisfacente.


  • Sviluppi futuri
    Nell’ambito dello stesso lavoro si stanno prendendo in considerazione alcuni ampliamenti, quali:
    • controllo del motore in continua a corrente impressa, per aumentare l’efficienza (scarsa per alimentazioni in tensione fortemente parzializzata),
    • modello non lineare del carico meccanico, per situazioni realistiche di presenza di panni nel cestello,
    • sviluppo di programmi MATLAB per l’analisi di motori trifase.

  • Conclusioni
    Lo studio del modello del motore a collettore alimentato serie è stato un buon campo di prova per le capacità di elaborazione e di flessibilità del software MATLAB-SIMULINK.In particolare, la possibilità di acquisire ed elaborare segnali in tempo reale ha permesso una notevole riduzione dei tempi di lavoro ed una maggiore semplicità di calcolo. Tale lavoro ha permesso di mettere in luce alcuni aspetti del modo in cui il motore viene attualmente alimentato, in particolare la scarsa efficienza della alimentazione a triac. Ciò è imputabile alla semplificazione circuitale esasperata, che comporta una elevata potenza reattiva in gioco dovuta allo sfasamento notevole tra tensione e corrente. Questo lavoro è stato realizzato grazie al contributo della MERLONI Elettrodomestici S.P.A.


  •