• Non ci sono risultati.

(a) IL CONTROLLO DIGITALE

N/A
N/A
Protected

Academic year: 2021

Condividi "(a) IL CONTROLLO DIGITALE"

Copied!
12
0
0

Testo completo

(1)

(a)

IL CONTROLLO DIGITALE

Struttura del controllo La struttura del controllore è a ciclo chiuso, ed è costituita da un classico “doppio anello” di velocità e corrente quando il motore è regolato in velocità. Per il controllo di posizione è aggiunto un ulteriore anello di regolazione esterno. I valori istantanei di velocità e corrente sono messi a disposizione del controllore attraverso un encoder incrementale Leine&Linde (500 impulsi a giro) ed un trasduttore di corrente ad effetto Hall TelCon HT100-2K (100A di portata e rapporto 2000:1). Questi valori sono processati dal microcontrollore, un Microchip PIC16F877 che lavora a 20MHz di frequenza sulla cui memoria sono caricate le routine di controllo. Il PIC modifica il valore dei tensione media sul motore pilotando opportunamente i tasti di potenza. Il controllore prevede anche la possibilità di funzionare a ciclo aperto e monitorare la velocità del motore attraverso un display.

(2)

Anello di posizione Il controllo di posizione prevede la possibilità di tenere bloccato il rotore su una posizione arbitraria, e tramite i pulsanti impostare il numero di giri da effettuare verso destra o sinistra. Il motore eseguirà il numero di giri richiesto tramite una traiettoria di velocità trapezoidale, calcolata prima che il motore cominci a muoversi. Una volta che il motore è in movimento la routine di posizione acquisisce la variazione rispetto allo zero arbitrario grazie agli impulsi che riceve dall’encoder (500 ogni giro) ed invia all’anello di velocità il riferimento adeguato ad ogni istante.

Anello di velocità Nonostante il motore abbia già montata su di esso una dinamo tachimetrica, si preferisce usare l’encoder per acquisire il valore di velocità istantanea per due motivi principali. Il primo è che l’uscita della dinamo tachimetrica ha una precisione scarsa, in quanto il suo collettore è dotato di sole cinque lamelle, le spazzole creano, durante le commutazioni tra una lamella e l’altra, dei picchi di tensione che, una volta digitalizzati fornirebbero valori

(3)

completamente erronei al controllore. Si potrebbe ovviare filtrando l’uscita della dinamo tachimetrica con un condensatore, ma vista la portata dei picchi di tensione da filtrare, questo dovrebbe avere una capacità tale rallentare la risposta del segnale di tensione in caso di variazioni di velocità. Il secondo motivo è che, come poco fa accennato, il valore della tensione di uscita deve essere opportunamente digitalizzato tramite un convertitore AC/DC esterno al microcontrollore, aumentando i costi.

L’uscita dell’encoder è cablata su un pin del PIC dotato di interrupt. In questo modo ogni volta che l’encoder manda un impulso al PIC un routine dedicata viene richiamata per effettuare la stima della velocità. La velocità può essere stimata in due modi:

• Utilizzare un timer (a bordo del PIC) che ad ogni ciclo incrementa unitariamente il suo valore e che all’impulso successivo viene letto per dare una stima della velocità e quindi azzerato per renderlo disponibile per la lettura successiva.

(4)

• Conteggiare il numero di impulsi e accedere a questo valore, periodicamente con un intervallo predefinito, sfruttandolo per una stima della velocità media sull’intervallo e quindi azzerandolo.

La prima soluzione ha il vantaggio di poter ottenere una stima della velocità del motore ogni 500-esimo di giro, che a 3000 giri al minuto, velocità nominale del motore, vuol dire ogni 666ns circa. Bisogna verificare però con quale accuratezza venga effettuata questa stima. Il PIC, a 20MHz di frequenza operativa, ha un ciclo interno di 5Mhz, che equivale ad un periodo di 200ns per istruzione. Ciò vuol dire che anche il contatore del timer viene aggiornato ogni 200ns. Quindi, supponendo una velocità del motore di 3000g/min ed i 500ppr dell’encoder, tra due impulsi successivi il periodo è di 666ns, e quindi il contatore sarà aumentato di sole tre unità, che corrispondono a 600ns, che danno una stima della velocità pari a 3333g/min. L’incremento successivo del contatore avviene ad 800ns dall’impulso precedente, che significano una stima di

(5)

2500g/min. E’ evidente che una stima di velocità così effettuata ha una accuratezza completamente inadeguata allo scopo alle alte velocità. Inversamente alle basse velocità l’accuratezza aumenta insieme al numero degli impulsi contati. A 100g/m il contatore raggiungerebbe il valore di 100 unità, con un errore quindi dell’1%.

Il primo metodo è da scartare in quanto un’accuratezza così mediocre alle alte velocità, oltre a limitare l’uso applicativo dell’azionamento porterebbe velocemente il controllo all’instabilità. La seconda scelta è la migliore, in quanto, come viene dimostrato di seguito, ha una buona precisione su tutto l’arco della velocità operativa.

Il secondo metodo da una stima di velocità

media su un periodo più ampio, ma ciò non

costituisce un problema visto che l’anello di velocità deve essere necessariamente sensibilmente più lento dell’anello di corrente. Infatti l’anello di velocità fornisce il riferimento all’anello di corrente, e questo deve avere il tempo sufficiente di adattarsi a questo riferimento. Questo perché i parametri dei

(6)

controllori di ogni anello sono dimensionati considerando l’ipotesi che gli anelli interni non presentino alcun ritardo. La frequenza operativa dell’anello di corrente deve essere la più alta possibile per poter limitare al massimo i picchi di corrente che sollecitano la struttura di potenza ed il motore. Il componente più lento dell’anello di corrente è sicuramente il convertitore AC/DC a bordo del PIC, che ha un tempo di conversione di circa 20us. Ciò significa che l’anello di velocità può funzionare con un ciclo operativo della durata maggiore di 50us, che consente di stimare la velocità media del motore su un intervallo abbastanza ampio da consentire una buona accuratezza. Se il contatore venisse aggiornato ogni 9ms, a 3000g/min il contatore

raggiungerebbe 225 unità [(3000rpm*500ppr/60s)*9e-3s], con un errore

dello 0,4%. Visto che la frequenza dell’anello di velocità di 100Hz, la stima del valore medio della velocità ogni 9 millisecondi ha una accuratezza sufficiente. Stimare la velocità media su un tempo di 9ms consente anche di poter contenere la misura del contatore su un unico registro da 8bit, che come è noto

(7)

raggiunge il valore massimo di 255, che corrisponderebbe ad una velocità di 3400rpm. Quindi anche in caso di overshoot del controllore di velocità viene evitato che il contatore della stima di velocità media vada in overflow.

L’errore di misura però aumenta al diminuire della velocità. Infatti a 500g/min, il contatore dopo 9ms è avanzato di 37 unità (mentre il valore effettivo dovrebbe essere 37,5), con un errore dell’1,3% circa. A 100g/m l’errore diventa del 6,7%.

La routine di controllo dell’anello di velocità approssima un controllo analogico di tipo PI, proporzionale integrativo. L’approssimazione maggiore sta nell’integratore. L’integrazione analogica viene approssimata digitalmente tramite una sommatoria dei valori medi di velocità successivi.

Anello di corrente L’anello di corrente riceve il riferimento dall’anello di velocità e lo compara con la misura della corrente del circuito di armatura del motore effettuata tramite il trasduttore di corrente ad effetto Hall. Il Telcon HT100-2K ha una portata di 100A ed un rapporto di

(8)

2000:1, ma tali valori sono troppo elevati per il nostro azionamento. Quindi il cavo di alimentazione del motore è avvolto due volte attraverso il trasduttore, facendolo equivalere ad un trasduttore con portata di 50A e rapporto di 1000:1. Quindi a 50A di assorbimento del motore equivalgono 50mA corrente di uscita. Tale corrente viene fatta passare su una resistenza di 56,2Ohm con l’1% di accuratezza, che fornisce quindi una tensione, filtrata dai disturbi, tramite un condensatore ceramico da 1nF in parallelo, proporzionale alla corrente assorbita dal motore. Questa tensione viene portata all’ingresso di un pin analogico del PIC che è in grado di effettuare la conversione AC/DC. Il segnale di tensione viene quindi acquisito e convertito in formato digitale e messo a disposizione della routine di controllo dell’anello di corrente. Il convertitore a 10 bit a bordo del PIC ha un tempo di campionamento di circa 25us. Quindi l’anello di corrente ha una frequenza di lavoro che è limitata superiormente dalla velocità di della corrente effettiva da parte del modulo ADC a bordo del PIC. Inizialmente si è pensato di implementare un anello di corrente simile a quello di

(9)

velocità, cioè caratterizzato da una routine che approssima un integratore di tipo PI. Questa routine elabora il dato che rappresenta l’errore tra la corrente di riferimento e quella misurata e fornisce in uscita il valore del duty-cycle del ponte ad IGBT. A seconda del duty-cycle viene applicata una strategia di pilotaggio differente ai tasti del ponte. Per un dutycycle compreso tra 0 e 0,33 si adotta una strategia di pilotaggio unipolare, fino a 0,5 una strategia di pilotaggio unipolare a durata di “stato alto” fissa, da 0,5 fino ad 1 una strategia unipolare a durata di “stato basso” fissa.

Tale ipotesi di anello di corrente è stata però abbandonata a causa delle limitate capacità di calcolo del PIC16F877. Una routine che approssimi il comportamento di un regolatore PI è costituita da un numero rilevante di istruzioni, che per poter essere eseguite hanno bisogno di un tempo “rilevante” (25us), incompatibile però con la frequenza operativa l’anello di velocità, che ha una frequenza operativa di 110Hz, ha la possibilità di essere implementato con un regolatore PI senza problematiche relative alla tempistica.

(10)

Tenendo quindi conto dei limiti dei tempi di calcolo si è deciso di implementare un anello di corrente con isteresi a 3 livelli, positivo, nullo e negativo. Nel caso in cui l’errore di corrente, definito come la differenza tra la corrente di riferimento, determinata dall’anello di velocità, e la corrente effettiva, misurata tramite il trasduttore di corrente, è inferiore a 10bit, qualunque sia il segno, la tensione di uscita del abilitando contemporaneamente i tasti bassi (od alti) del ponte. Nel nostro caso si otterrà la tensione nulla abilitando i tasti bassi del ponte in ogni caso, questo per favorire la carica dei condensatori di bootstrap (vedi sezione Hardware). Se invece l’errore di corrente è maggiore di 10 bit il PIC abiliterà i tasti del ponte in modo da ottenere una tensione positiva o negativa al motore a seconda del segno dell’errore.

Un regolatore ad isteresi analogico si comporta in modo da mantenere la corrente effettiva in un range, definito appunto tramite l’isteresi del regolatore, rispetto alla corrente di riferimento impostata dal regolatore di velocità. Nel nostro caso abbiamo invece implementato il regolatore ad isteresi in modo digitale che, a

(11)

differenza di un regolatore analogico che lavora in modo continuo, si aggiorna con una frequenza determinata dai tempi di calcolo del PIC e dai tempi di campionamento della corrente da parte dell’ADC a bordo del PIC. La frequenza massima di aggiornamento a cui può operare il regolatore digitale è di circa 40kHz. E’ quindi possibile che, all’interno di un periodo di aggiornamento del regolatore digitale il valore della corrente effettiva oltrepassi il range definito dall’isteresi di corrente senza che il regolatore abbia possibilità di intervenire. Tali effetti sono stati studiati abbondantemente in simulazione, e si è deciso di applicare una banda di isteresi di 10 bit, che corrispondono a 873mA, ed una frequenza di aggiornamento del regolatore ad isteresi di circa 20kHz. In questo modo si ottiene una dinamica piuttosto precisa del motore senza sovraccaricare termicamente in modo eccessivo, con commutazioni troppo rapide, i tasti di potenza. E’ infatti noto che la quantità maggiore delle perdite negli switch è dovuta alle commutazioni, in quanto si verifica che, anche se per un tempo limitato a qualche centinaio di nanosecondi, il tasto sia soggetto a

(12)

corrente e tensione rilevanti. In conduzione, se la tensione di gate è sufficiente a garantire il funzionamento in saturazione, l’IGBT presenta ai suoi capi (collettore-emettitore) una bassa caduta di tensione (attorno ad 1Volt) anche con correnti elevate, quindi una potenza dissipata contenuta. Durante l’interdizione del tasto invece, nonostante la tensione differenziale tra collettore ed emettitore dello switch sia elevata, l’entità esigua della corrente di drain garantisce un basso valore di potenza persa.

Riferimenti

Documenti correlati

Si determinino le eventuali posizioni di equilibrio

Si determinino le eventuali posizioni di equilibrio

Universit` a degli Studi di Roma “Tor Vergata”.. CdL in Matematica ALGEBRA

Dimostrare che esistono in A ideali primi minimali, tali cio` e che non esistano ideali primi strettamente contenuti in essi.. (Idea: usare il Lemma

[r]

Si dia un esempio di un polinomio su un anello non dominio d’integrita’ che in tale anello ha piu’ radici del suo grado.. IV

Una particella materiale di massa m è vincolata a muoversi su una guida circolare di raggio R, in presenza di un attrito descritto da un coefficiente

Una guida circolare di raggio R ruota attorno ad uno dei suoi diametri, posto in direzio- ne verticale, con una velocità angolare costante ω.. Sulla guida è vincolata una piccola