RIEE&C, REVISTA DE INGENIERA ELCTRICA, ELECTRNICA Y
COMPUTACIN, Vol. 6No. 1, JUNIO 2009 ISSN 1870 - 9532
16Implementacin de la Tcnica de Modulacin de Vectores Espaciales
utilizando un Controlador Digital de Seal dsPIC30F3010 Iribe Q.
Vctor, Prez R. Javier, Beristin J. Jos A. y Aganza T.
AlejandroResumenEnesteartculoseplanteaelanlisisdela
tcnicademodulacinporvectoresespaciales(SVM)para
generarlasealizacindecontroldeuninversortrifsicode
dosniveleshaciendopruebascomoaccionadorparaunmotor de induccin
trifsico. La contribucin prctica se refleja en la
explicacindelaimplementacindelatcnicaSVMenun
controladordigitaldesealdsPIC30F3010deMicrochip
desarrolladaenlenguajeC.Elprocedimientoexpuestose puede extender a
otro tipo de aplicaciones como: filtros activos,
conexinalaredyamodulacindeinversoresmultinivel.Se
presentanresultadosdelaimplementacindelatcnicade modulacin para
carga resistiva y motor de induccin trifsico. Palabras clave
dsPIC30F, inversor trifsico, SVM. I.INTRODUCCIN
Unadelasprincipalesaplicacionesdelastcnicasde modulacin en la
electrnica de potencia, es la de generar la sealizacin requerida
para el control de convertidores cd/ca.
Enlaactualidadexistendiferentestiposde
procedimientosdemodulacinparaelcontrolde
convertidorescd/ca[1],comoson:ModulacinporAncho
dePulsoSenoidal(SinusoidalPulseWidthModulation,
SPWM),ModulacinporAnchodePulsoAleatorio
(RandomPWM),ModulacinporAnchodePulsocon
EliminacinSelectivadeArmnicos(SelectedHarmonic
EliminationSHEPWM),ModulacinporVectores
Espaciales(SpaceVectorModulation,SVM),entreotras.
Cabemencionarquealgunassonvariantesdemtodosya existentes. 1
Manuscritorecibidoel21deNoviembrede2008.Estetrabajofue respaldado
por el departamento de Ing. Elctrica y Electrnica del Instituto
Tecnolgico de Sonora.
IribeQ.VctoregresadodelacarreradeIngenieraenElectrnicadel
InstitutoTecnolgicodeSonora;Tel.Cel:(644)4301811;e-mail:
[email protected]. Prez R. Javier hasta la fecha se ha de
desempeado como Profesor de tiempo completo del Instituto
Tecnolgico de Sonora en el Departamento de
IngenieraElctricayElectrnica;Ave.AntonioCasoS/NCol.Villa
ITSON;CiudadObregn,Sonora,Mxico;C.P.85138;C.P.85130;Tel: (644)
4109000, ext. 101; Fax: (644) 4109001; e-mail: [email protected].
BeristinJ.JosA.hastalafechasehadesempeadocomoProfesor de tiempo
completo del Instituto Tecnolgico de Sonora en el Departamento
deIngenieraElctricayElectrnica;Ave.AntonioCasoS/NCol.Villa
ITSON;CiudadObregn,Sonora,Mxico;C.P.85138;C.P.85130;Tel: (644)
4109000, ext. 101; Fax: (644) 4109001; e-mail: [email protected].
Aganza T. Alejandro hasta la fecha se ha desempeado como profesor
auxiliardelInstitutoTecnolgicodeSonora;Tel.Cel.(644)9986168;e-mail:
[email protected].
Dichastcnicasseaplicanalcontroldeconvertidores cd/ca monofsicos,
trifsicos y que pueden ser de dos niveles o multinivel.
Coneldesarrollodenuevos dispositivos digitalescomo
sonelMicrocontrolador(MCU),elControladorDigitalde
Seal(DSC),elProcesadorDigitaldeSeal(DSP),etc.Es
posibleimplementardichastcnicasdeformasencilla,ya
quecuentanconunagrancapacidaddeprocesamientoque
permitenrealizaroperacionescomplejasentiempos
sumamentereducidos,todoestoconunsimplecircuitoo
mdulodedesarrollo,ahorrndoseastiempo,costoy circuitera.
Enesteartculoseexponeelanlisismatemticodela
tcnicaSVMysedescribeelmtodoaseguirparasu
implementacinutilizandounDSCmodelodsPIC30F3010
deMicrochip.Elprogramadescritoenelprocedimientose desarroll en
lenguaje C, por ser un lenguaje de nivel medio que permite realizar
operaciones complejas de forma simple.
Debidoalaversatilidadconlaquecuentanlosdispositivos de Microchip es
posible reproducir el programa en cualquier
modeloquepertenezcaalafamiliadsPIC30Fcuya aplicacin sea la de
control de motores. II.MODULACIN POR VECTORES ESPACIALES
Latcnicademodulacinporanchodepulsode vectores espaciales trabaja al
inversor como una unidad y se
basaenelhechodequeunsolovectorescapazde
representarlastresfasesdeunsistematrifsico,estevector
secreaapartirdelostiemposdetrabajodelosestadosde conmutacin del
inversor. Estatcnicahasidopresentadaendiversostrabajosde
investigacincondiferentesaplicaciones[2]-[4].Eneste artculo se
presenta la implementacin de la tcnica haciendo
usodedispositivosdigitalesdebajocostocomolosonlos DSC. A.
Representacin vectorial de magnitudes elctricas trifsicas.
Unsistemacompuestocontresfuncionesarbitrarias muy similar al de los
voltajes de fase de un sistema trifsico, que cumplan con la ecuacin
(1), es posible representarlas en un espacio bidimensional, es
decir, hacer una proyeccin de
unplanodetresdimensionesa-b-caunodedos
dimensionesx-y,comoseveenlafigura1.Estoesposible
siempreycuandosecumplancondoscondiciones:la
primeraesqueunodelosejesdelespaciodetres RIEE&C, REVISTA DE
INGENIERA ELCTRICA, ELECTRNICA Y COMPUTACIN, Vol. 6No. 1, JUNIO
2009 ISSN 1870 - 9532 17 cbxya) (tau) (tbu ) (tcu Fig. 1. Sistema
compuesto por tres funciones arbitrarias.
dimensionesseproyectesobreunodelosejesdelplanode
dosdimensiones,ylasegundaesqueexistaunaseparacin
de120entrecadaejeyaproyectadoenelplanodedos dimensiones, como se
observa en la figura 2. 0 = + + ) t (cu ) t (bu ) t (au (1) El
valor del vector( ) t u es el resultado de la suma de los
tresvectoresdesfasadosentres,stequedaexpresadoen notacin compleja
como: ( )( ) ( )((
+ + =t t 3 2 3 232/ jecu/ jebuau t u (2) Donde 2/3 un factor de
escala. Desarrollando la ecuacin (2)
seencuentransuscomponentesrealeseimaginariosenel dominio x-y, estos
se pueden representar tal que: ( )yu jxu t u + = (3)
Delasecuaciones(2)y(3)sepuedeobtenersu
representacinmatricialdecoordenadasdelosejesa-b-ca los ejes x-y,
como: |||.|
\|||||.|
\| =||.|
\|cubuauyuxu232302121132(4) Para la transformacin de los ejes
x-y a los ejes| o -es necesario girar con una velocidad angular .
Esto se obtiene girandot elos ejes x-y como se ve en la figura 3 de
acuerdo a la ecuacin (5). ( )( )( ) ( )( ) ( )||.|
\|||.|
\| =||.|
\|||.|
\|||||.|
\||.|
\|+|.|
\|+=||.|
\|yuxut cos t sent sen t cosbuauyuxut sen t sent cos t cosbuaue
ee eeteete22 (5) Siseconsideranlosvoltajestrifsicos cubuau y, con
valor pico Vm, se escriben las ecuaciones (6), (7) y (8). ( ) t
senmVau e = (6) ( ) 3 2t e = t senmVbu (7) ( ) 3 2t e + = t senmVcu
(8) Sustituyendo las ecuaciones (6), (7) y (8) en la ecuacin (2),
se obtiene la representacin del vector( ) t u como: ( )t jemV t
ue=(9) ElcualesunvectordemagnitudVmquegiraconrapidez constante , en
radianes por segundo. Estoquieredecirqueconunvectoresposible
representar los voltajes de fase de un inversor trifsico. B. Tcnica
de modulacin de vectores espaciales, SVM [5]. En el inversor
trifsico de la figura 4 se tienen 8 posibles estados de conmutacin,
cada transistor S1, S2, S3, S4, S5 y S6
sepuedeconsiderarcomouninterruptorquecuandoest
abiertocausaunestadolgicode0,Sn=0,ycuandoest
cerradoun1,Sn=1,donden=1,2,,6.Tomandoen
cuentacomointerruptoresprincipalesaS1,S3yS5se encuentran ocho
estados de conmutacin, donde cada una de
lascombinacionessepuederepresentarenformavectorial como( )5S3S1SxV
=,dondex=0,1,2,,7.Existendos vectoresdenominadosvectoresnulos 0Vy
7Vdondelos transistoresS1,S3yS5seencuentrantodosabiertos
xy120120120) (32tau) (32tbu) (32tcu) (t u Fig. 2. Sistema de tres
funciones proyectado en un sistema de dos dimensiones x-y. o|) (t
ut e) (32tau) (32tbu) (32tcu Fig. 3. Aplicacin de la transformada|
o -a un sistema x-y. RIEE&C, REVISTA DE INGENIERA ELCTRICA,
ELECTRNICA Y COMPUTACIN, Vol. 6No. 1, JUNIO 2009 ISSN 1870 - 9532
18 0000 = V1001= V1102= V0103= V0114 = V0015= V1016 = V1117 =
Vabc101010abcabcabc10abc101010abcabcabc10 Fig. 5. Estados de
conmutacin de un inversor trifsico representados en forma de
vectores.
1001= V 1102 = V 0103 = V 0015 = V 1016 = V 000 0 = V 111 7 = V
| om0114 = V S T T 2 te S T T 1 ) (tV * Fig. 6. Diagrama vectorial
de los ocho vectores obtenidos a partir de los estados de
conmutacin del inversor trifsico. VCDS1S3S5S2S4S6+-abc Fig. 4.
Inversor trifsico de dos niveles alimentado en tensin.( ) 0000 =
Votodoscerrados( ) 1117 = V,elrestodelos
vectoressedenominanvectoresactivos.Enlafigura5se
muestranlosochoestadosdeconmutacindelinversor trifsico,
representados en forma vectorial.
Apartirdelosochosvectoresdisponiblessetrazael
diagramavectorialdelafigura6,dondeexisteuna separacin de 60 entre
cada vector para cubrir un espacio de 360 en partes iguales.El
vector de salida( ) t V es la suma del total de vectores tal que: (
)771100VSTT ...VSTTVSTTt V + + + = (10)
Dondelostiemposdeencendidodelosvectores 7, . . . ,1,0V V V , son
T0, T1, , T7 0 y ==70 xsTXTy TS es el periodo de conmutacin.
Comoseveenlaecuacin(10),elvector( ) t Vtiene
infinitonmeroderepresentacionesusandolosvectores 7, . . . ,1,0V V V
,conelfindereducirelnmerode conmutaciones y de obtener el voltaje
mximo de lnea en la carga, se usa la tcnica de representar el
vector) t ( V usando
losdosvectoresactivosadyacentesmscercanosylosdos vectores nulos 0V
y 7V en cualquier sector. Por ejemplo si el vector( ) t V se
encuentra en el sector 1,
enunintervalodeconmutacin,elvectorpuedeser expresado como: (
)00772211VSTTVSTTVSTTVSTTt V + + + = (11) Donde( ) 0 22 1 0 7> =
= T TST T T . De la figura 6 se obtiene la figura 7, donde
aplicando la Ley de Senos se calculan los tiempos T1 y T2 tal que:
*1 12 1T TmT sen sen T senS S o 0= = (12) Calculando los valores de
los ngulos0 o y como: 323t tt o = =(13) ttt 0 = =3 32(14) 2V1 V t e
STT2STT1o 0 m 3t) (t V* Fig. 7. Sector 1 del diagrama vectorial.
RIEE&C, REVISTA DE INGENIERA ELCTRICA, ELECTRNICA Y COMPUTACIN,
Vol. 6No. 1, JUNIO 2009 ISSN 1870 - 9532
19Sustituyendolasecuaciones(13)y(14)enlaecuacin (12) se obtiene la
ecuacin (15). ( ) ( )*1 12 12 3 3T TmT sen sen T senS S t t = =
(15) De la ecuacin (15) se despeja T1 y T2 tal que: * *m sen m
cos13 6 3 32 2T T t T tS St te e = = +| | | | ||\ . \ .
(16)( )* *3m sen m cos26 3 32 2T T t T tS Ste e = = +| | |\
.
(17) Por lo tanto: 22 1 7 0/ ) T TST ( T T = = (18) Donde 2f t
e= 2f + /3, m*=3/4 m [5] es el ndice de modulacin del vector V(t),
m es el ndice de modulacin para la regin lineal representada por el
crculo inscrito en el hexgonomostradoenlafigura 6,definidode0a1y
TSel perodo de conmutacin. Para la obtencin de los tiempos en el
resto de los sectores se sigue el mismo procedimiento, las frmulas
de los tiempos ya calculados se ven en la Tabla I. Siguiendo con el
ejemplo del sector 1, una vez obtenidos
lostiemposdeencendidoT1,T2,T0yT7delosvectores 1117y0000, 1102,
1001= = = = V V V V ,conbaseenlos
interruptoressuperioresS1,S3yS5,lasecuenciade conmutacin se muestra
en la figura 8. En la figura 9 se ven la secuencia de conmutacin de
los vectores 7, . . . ,1,0V V V paracadaunodelosseissectores, con
base en los interruptores superiores S1, S3 y S5.
LaformadeondademodulacindelinterruptorS1, caracterstica de la SVM
se presenta en la figura 10. Para la implementacin digital de la
tcnica sirve tomar encuentaquesisecalculanlostiemposdeconmutacinde
cada sector se obtiene los mismos resultados, es decir, en el
sector 1 T1, T2, T0 y T7 tendrn los mismos valores que T2, T3,
T0yT7delsector2enelordenquesemencionanyas
sucesivamenteparaelrestodelossectores.Enbaseaesto,
sloesnecesarioprogramarlasfrmulasdeunsector
cualquiera(siempreycuandoseevaleenelintervalode
tiempoquelecorresponda)ysepodrimplementarla tcnica SVM. El cdigo
desarrollado en este artculo se basa TABLAI.ECUACIONES DE LOS
TIEMPOS DE ENCENDIDO DE LOS VECTORES PARA CADA SECTOR Sector 1 (0 t
/3) Sector 2 (/3 t 2/3) T1 = 3/2mTScos(t + /6) T2 = 3/2mTScos(t + 3
/2) T0 = T7 = (TS T1 T2)/2 T2 = 3/2mTScos(t + 11 /6) T3 =
3/2mTScos(t + 7 /6) T0 = T7 = (TS T2 T3)/2 Sector 3 (2/3 t ) Sector
4 ( t 4/3) T3 = 3/2mTScos(t + 3 /2) T4 = 3/2mTScos(t + 5 /6) T0 =
T7 = (TS T3 T4)/2 T4 = 3/2mTScos(t + 7 /6) T5 = 3/2mTScos(t + /2)
T0 = T7 = (TS T4 T5)/2 Sector 5 (4/3 t 5/3) Sector 6 (5/3 t 2) T5 =
3/2mTScos(t + 5/6) T6 = 3/2mTScos(t + /6) T0 = T7 = (TS T5 T6)/2 T6
= 3/2mTScos(t + /2) T1 = 3/2mTScos(t + 11/6) T0 = T7 = (TS T6 T1)/2
0003V2V0V2V0V7V7V3V3V4V0V0V7V7V4V3V5V4V0V0V7V7V5V4V5V6V0V0V7V7V5V6V1V6V0V0V7V7V1V6V1V2V0V2V0V7V7V1V000001011111111111001000000010011111111111010000000010110111111110010000000001101111111101001000000100101111111101100000000100110111111110100Sector
1 Sector 2Sector 4 Sector 5Sector 3Sector 6S1S3S5S1S3S5 Fig. 9.
Secuencia de conmutacin de los vectores para los seis sectores.S110
t e0 90 180 270 360 Fig. 10. Forma de onda caracterstica de
modulacin del interruptor S1. TS10 0 0 0 0 00 0 0 00 0 1 1 1 1 11 1
1 11 1ttt 000111Portadora1V2V0V2V0V7V7V1VT1T1T0T2T7T7T2T0S1S3S5
Fig. 8. Secuencia de conmutacin para el Sector 1. RIEE&C,
REVISTA DE INGENIERA ELCTRICA, ELECTRNICA Y COMPUTACIN, Vol. 6No.
1, JUNIO 2009 ISSN 1870 - 9532 20en este hecho para su
implementacin, haciendo uso slo de las frmulas del sector 1. C.
Implementacin Paralaimplementacinsetomancomogualos siguientes
pasos: -Eleccin del dispositivo a utilizar. -Eleccin del programa y
el compilador. -Eleccindellenguajeenelcualsehaceel programa.
-Desarrollo y explicacin del programa. -Implementacin del circuito.
El dispositivo que se utiliza es un controlador digital de seal
(DSC) modelo dsPIC30F3010 de 16 bits de Microchip
[7]y[8].Entresuscaractersticasprincipalesseobservan
unavelocidaddeoperacinhasta30MIPS(Millions
InstructionperSecond),unmduloPWMquegenera6 salidas,cadaunacon un
registroindependientedeciclo til
yconposibilidaddegenerartiempomuertoentreparesde
salidascuandosetrabajanlas6salidasenmodo
complementarioyunmduloADCde6canalesde conversin con resolucin de 10
bits.La edicin del programa fuente se realiza en lenguaje C,
utilizandoelentornodedesarrolloMPLABv7.40yel compilador C30 v1.20
[9], ambos de Microchip. Elprogramageneralasealizacindecontroldel
inversortrifsico(figura4)utilizandolatcnicaSVM.Las seales son
generadas por las seis salidas del mdulo PWM,
conlaposibilidaddevariarelndicedemodulacindesde
0.5a1yfrecuenciadesalidade30a60Hz
simultneamente,utilizandounpotencimetroconectadoal canal AN0 del
mdulo ADC. Eldiagramadeflujodelalgoritmoempleadoparala
generacindelassealesSVMsemuestraenlafigura11, cuya descripcin se
expone a continuacin. La configuracin se especifica para que la
frecuencia de trabajodelprograma,FOSC,sea96MHz;esdeciruna
frecuenciadeinstruccin,FCY=24MHz,yunperiodode instruccin, TCY =
41.66 ns, utilizando un cristal de 12 MHz
enmodoHS/2conPLLde16x.Realizadalaconfiguracin se procede a la
declaracin de funciones y variables globales utilizadas en el
transcurso de la aplicacin.
Pasoseguidoserealizalaconfiguracindelmdulo
convertidoranalgico-digital(ADC),lacualconsisteen establecer el
canal AN0 como entrada anloga, el resto como
entradasosalidasdelmismopuertocomodepropsito general, el voltaje de
referencia positivo es igual a AVDD y el
negativoigualaAVSS,eldatodesalidatieneunformato entero de 10 bits y
los bits del reloj de conversin estn en 9, el tiempo de adquisicin
establecido, TAD, fue de 200
ns.DeformasimilarseconfiguraelmduloPWMpara
generarunasealconunafrecuencia,FPWM,de10kHz,se
habilitanlas6salidasdelmduloalineadasalcentroyen
modocomplementarioconuntiempomuertode2sentre cadapar desalidasPWM.
Lassalidasestncontroladas por
lacomparacindelregistroPTMRconelPTPERyla
actualizacindelosciclostilessehaceinmediatamente despus de cargado
el valor y de manera simultnea a travs del programa. La resolucin
para los registros de ciclo til es
de11.228bits,esdecirsetieneunavariacinde0a2398
valoresparaincrementosdelciclotil,paralasfrecuencias de trabajo del
controlador y de PWM establecidas.
LafrecuenciadelPWMsecontrolamediantela
comparacinentreelregistrocontadorPTMRyelregistro
PTPER.ElvaloracargarenelregistroPTPER,elcual
determinalafrecuenciadesalidadelasealPWM,se determina por la
ecuacin (20): 12 ) ( =r del PTMR PrescaladoPWMFCYFPTPER (20) Para
el tiempo muerto se tiene el registro DT, el valor a cargar en el
registro se determina por la ecuacin (21):( )CYT r prescalado Valor
del rto Tiempo mueDT
=(21) Los registros de ciclo til son PDC1, PDC2 y PDC3 y la
resolucin a utilizar en estos registros se calcula mediante la
ecuacin(22).ElregistroPDC1controlalassalidas PWM1L/1H, el PDC2 las
salidas PWM2L/2H y el PDC3 las salidas PWM3L/3H.
ConfiguracindsPIC30F3010Declaracin de funciones y variables
globalesInicializacinADCPWMLee dato del ADC y calcula frecuencia e
ndice de modulacinFrecuenciaigual a datodel ADC ?SiNoVector
recorrilos 6 sectores ?SiNoVector enel sector X ?NoSiCalcula
tiemposBandera de interrupcinde PWM = 1?Actualiza ciclos tilesSe
desbordNo sedesbordNo Fig. 11. Diagrama de flujo del programa de
implementacinde la tcnica SVM. RIEE&C, REVISTA DE INGENIERA
ELCTRICA, ELECTRNICA Y COMPUTACIN, Vol. 6No. 1, JUNIO 2009 ISSN
1870 - 9532 21( )12 2||.|
\|=logCYTPWMTlogResolucin(22)
Unavezrealizadaslasconfiguracionespertinentesse
procedearealizarelalgoritmodemodulacin,cuyoprimer
pasoconsisteenrealizarlalecturayconversindelcanal
analgicoAN0delconvertidorADC,obtenidoelvalorse ajusta para que el
mismo quede en un rango de 30 a 60, dado
quelafrecuenciafundamentaldesalidasedefinieneste
rango.Elvalorobtenidosecomparaconelanterior,sino son iguales se
recalculan los valores de frecuencia de salida,
ndicedemodulacinenamplitud,tiempodeduracinde cada sector y los
ciclos tiles para cada par de salidas. De ser
igualesseprocedeaverificarsiserealizelrecorrido completo de los
sectores para verificar si se ha finalizado el
recorrido,deseraselprocesovuelveainiciarse,delo
contrariocontinuahastasutotalidadparadespusvolvera
iniciar.Esimportantemencionarqueelprocedimientode clculos y
actualizacin de ciclos tiles debe realizarse en un
tiempomenoraldeunperiododeconmutacindelaseal
PWM,esdecir,slosedisponede100spararealizar
ambasoperaciones.Enlafigura12,semuestraelcdigo fuente que realiza
la rutina principal del algoritmo SVM.
Deldiagramadeflujo(figura11)sepuedeobservar,
comosemencionanteriormente,queencasodequese
realiceuncambioenelvalordelafrecuenciadesalida
deseadaoquesehayanterminadoderecorrertodoslos
sectores;esnecesariorealizarelclculodelostiemposde
encendidoyapagadodecadatransistor,frecuenciadegiro
delvectordereferencia,ascomodesutiempoencada
sector.Elclculodelosciclostilescorrespondeala
implementacinenprogramadelasecuaciones(16),(17)y (18) del sector 1,
ya que los sectores restantes se obtienen a
partirdeeste,enfuncindelsectorenqueseencuentreel vector de
referencia, sin necesidad de realizar los clculos de
maneraindividualparacadasector.Enlafigura13se muestra el cdigo que
realiza el clculo de los ciclos tiles y la actualizacin de los
mismos.Cabe mencionar que el clculo de la funcin Coseno, no se
realiza a travs de la operacin definida matemticamente
enelcompiladordelenguajeC;sinoquehaceusodeuna tabla de valores
previamente calculados, los cuales se eligen
deacuerdoalvalorasignadoaunavariable,estopara
disminuireltiempodeprocesamientodelclculodelos void SVM(void) {
while (1) { F = ADC_Dato; m = (F*1)/60.0; wtp = 2*3.141592654*F; tf
= (1.0/F)*.16666666; T3p2 = 1199; while(F == ADC_Dato) { Calcula();
ADC_Lectura(); } } Fig.12 .Rutina principal de la tcnica SVM
nombrada void SVM(void). void Calcula(void) { S = 1; while(S