Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 1
RESUMEN
En el documento se muestra una guía didáctica de las prácticas de control vectorial de la
máquina síncrona de imanes permanentes, la cual puede ser aplicada a cualquier asignatura
dentro de la docencia de una ingeniería. Ésta guía debe ser tratada como material de apoyo y
estudio para cualquier estudiante que pretenda adquirir unos conocimientos mínimos en el
ámbito del control vectorial de la máquina síncrona de imanes permanentes. Además, la guía
proporciona todas las herramientas necesarias para el perfecto seguimiento de las prácticas.
En particular se exponen las transparencias y el libro de prácticas.
Este libro es el camino para los lectores que deseen ampliar el campo de conocimiento de los
capítulos tratados durante el desarrollo del proyecto. La estructura del libro es la misma que
las transparencias del profesorado, incluidas en este mismo anexo del proyecto, para facilitar
la lectura, comprensión y búsqueda de la información. Se tratarán los mismos capítulos de las
transparencias del profesorado, extendiendo la información de estas debajo de la copia de las
mismas.
En términos generales, los capítulos son esencialmente: la descripción de la plataforma, la
descripción del motor brushless AC y el diseño de las prácticas. El último capítulo es el más
interesante pues es la parte que exige un nivel de entendimiento mayor a la hora de poner en
práctica todos los conocimientos previamente adquiridos.
Finalmente, aclarar que dicho libro tiene como objetivo poner al alcance de la docencia y de
los estudiantes una guía didáctica del control vectorial con un procesador digital de señal
(DSP) para un motor síncrono de imanes permanentes. Por lo tanto, se pretende desarrollar
una primera metodología que ayudará a entender esta teoría y poner en práctica el control
vectorial. Esta metodología se aplicará en la docencia de la carrera universitaria del Ingeniero
y será ideal para poder ir enriqueciendo la guía con mejoras sucesivas en un campo tan amplio
y reciente como es el del control vectorial.
Inmediatamente después de la entrega del proyecto, este anexo será aplicado en la asignatura
Control de Máquinas Eléctricas como libro de prácticas para el alumnado de la Escuela
Técnica Superior de Ingeniería Industrial de Barcelona (ETSEIB).
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 3
SUMARIO
RESUMEN........................................................................................................................... 1
SUMARIO ........................................................................................................................... 3
A. ANEXO A..................................................................................................................... 5
A.1. Transparencias del personal docente...................................................................... 5
A.1.1. Introducción previa del motor síncrono de imanes permanentes ...................... 5
A.1.2. Modelado y obtención de las ecuaciones......................................................... 7
A.1.3. CDM2480: La plataforma de trabajo............................................................. 19
A.1.4. La coma fija y el formato Q(x)...................................................................... 22
A.1.5. Code Composer Studio: el entorno de programación..................................... 26
A.1.6. Programación básica..................................................................................... 29
A.1.7. Control V/f en lazo abierto............................................................................ 35
A.1.8. Lazo de par................................................................................................... 51
A.1.9. Medida de la posición y la velocidad ............................................................ 54
A.1.10. Lazo de velocidad......................................................................................... 58
A.2. Libro de prácticas ................................................................................................ 60
A.2.1. Introducción ................................................................................................. 60
A.2.2. Introducción previa del motor síncrono de imanes permanentes .................... 61
A.2.3. Modelado y obtención de las ecuaciones....................................................... 64
A.2.4. CDM2480: la plataforma de trabajo .............................................................. 86
A.2.5. La coma fija y el formato Q(x)...................................................................... 94
Anexo A
Pág. 4
A.2.6. Code Composer Studio: el entorno de programación................................... 100
A.2.7. Programación básica ................................................................................... 106
A.2.8. Control V/f en lazo abierto.......................................................................... 114
A.2.9. Lazo de par ................................................................................................. 138
A.2.10. Medida de la posición y la velocidad: ......................................................... 144
A.2.11. Lazo de velocidad ....................................................................................... 151
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 5
A. ANEXO A
A.1. Transparencias del personal docente
A.1.1. Introducción previa del motor síncrono de imanes permanentes
Clasificación de los motores de imanes permanentes
Máquinas imanes permanentes
Máquinas PMDC Máquinas PMAC
Trapezoidales(BLDCM)
Sinusoidales(PMSM )
De polos lisos(SPMSM )
De polos salientes(IPMSM)
ea, ia
eb, ib
ec, ic
ib t
t
t
ia
ic
ea
eb
ec
t0 t1 t 2 t3 t4 t5
Clasificación de los motores PMSM
qr
dr
N
N
N
N
N
N
N
N
SS
S
S S S
S
S
Estator
Rotor
Imanes permanentes
Ranuras para los devanados
qr
drN
N
N
N
S
S
S
S
Estator
Rotor
Imanes permanentes
Ranuras para los devanados
Motor de polos lisos Motor de polos salientes
Anexo A
Pág. 6
Prestaciones de los motores PMSM
•Alta densidad de potencia•Alta eficiencia•Alta relación par/inercia•Facilidad de control•Alta fiabilidad•Su control necesita sincronizar las tensiones del estator con la posición del rotor para producir el par adecuado
PMSM vs Máquina inducción
• No requiere de corriente magnetizante• Menor peso y volumen• Rotor más pequeño. Alta relación par/inercia• Requiere el conocimiento de la posición del rotor
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 7
A.1.2. Modelado y obtención de las ecuaciones
Modelado y obtención de las ecuaciones
• Al ser una máquina síncrona necesita en todo momento que las tensiones del estator estén sincronizadas con el imán del rotor• Esto asegura el par adecuado•El control V/f también necesita conocer la velocidad del rotor
Propiedades del motor• Tres devanados con
distribución sinusoidal• Los tres devanados
están separados 120º• El flujo del imán
induce en el estator tres tensiones sinusoidales desfasadas 120º
bs
as
cs
qr
dr
S
N
a
a’
b’
b
c’
c
ImánRotor
Devanado de la fase a. Distribución sinusoidal
Anexo A
Pág. 8
Ecuaciones del motor
abcs s abcs abcs
dV R I
dtλ= ⋅ +
0 0; 0 0 ; ;
0 0
as s as as
abcs bs s s abcs bs abcs bs
cs s cs cs
v r iV v R r I i
v r i
λλ λ
λ
= = = =
Ecuaciones del motor
( ) ( )abcs abcs s abcs rλ λ λ= +
( )
aas abs acs
abcs s bas bbs bcs abcs
cas cbs ccs
L L LL L L IL L L
λ = ⋅
( )
sin( )2sin( )32sin( )3
r
abcs r m r
r
θπλ λ θ
πθ
= − +
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 9
Ecuaciones del motor
( )( )
cos 2
2cos 2 32cos 2 3
aas ls A B r
bbs ls A B r
ccs ls A B r
L L L L
L L L L
L L L L
θ
πθ
πθ
= + −
= + − +
= + − −
( )( )
1 2cos 2 321 2cos 2 321
cos 22
abs bas A B r
acs cas A B r
bcs cbs A B r
L L L L
L L L L
L L L L
πθ
πθ
θ
= = − − −
= = − − +
= = − −
Ecuaciones del motor
2
0 1
2
0 2
1 2min max min max
2
12 2
1 1 1 1 1 1; 2 2
sA
sB
NL rl
NL rl
g g g g
πµ ε
πµ ε
ε ε
=
=
= + = −
qr
drN
N
N
N
S
S
S
S
Estator
Rotor
Imanes permanentes
Ranuras para los devanados
Motor de polos salientes
Anexo A
Pág. 10
Ecuaciones del motor
( )( )( )
sin0 020 0 sin - 3
0 0 2sin 3
ras s as aas abs acs as
bs s bs bas bbs bcs bs m r
cs s cs cas cbs ccs csr
v r i L L L id
v r i L L L idt
v r i L L L i
θ
πλ θ
πθ
= ⋅ + ⋅ + +
abcs s abcs abcsd
V R Idt
λ= ⋅ +
Ecuaciones del motor
• Sistema de ecuaciones diferenciales no lineales• Términos que dependen del ángulo• Difícil calcular el par• No apto para el análisis
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 11
Se quiere un par constante
• El flujo del imán gira con el rotor• Para dar par constante, el flujo creado por el
estator también tiene que girarbs
as
cs
Fs
S
N
a
a’
b’
b
c’
c
dr
qr
Fi
Corrientes sinusoidales
•El flujo que hay que crear en el estator es giratorio• Hay que crear tres corrientes sinusoidales
bs
as
cs
i s
r
S
N
a
a’
b’
b
c’
c
iasibs
ics
dr
qr
Anexo A
Pág. 12
Transformaciones matriciales
• is es un vector en el plano->sólo se necesitan dos coordenadas (iα y iβ)
• Esta es la transformación de Clarke
0 0
23
a
b a
i
i i
i ii
α
β
=
=
⋅ +=
0 0
2 1 13 2 2
2 3 33 2 2
a b c
a b c
b c
i i i i
i i i i
i i i
α
β
= + + =
= − ⋅ − ⋅
= ⋅ − ⋅
Transformación de Clarke
•Pasa de un sistema trifásico a 120º en un plano a un sistema trifásico ortogonal• No modifica el módulo del vector (no modifica el valor las tensiones y corrientes transformadas)•Las corrientes transformadas todavía dependen del ángulo
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 13
Transformaciones matriciales
• iα y iβ todavía dependen del ángulo eléctrico del rotor θr
• Para eliminar esta dependencia, los ejes α y β tienen que girar con el rotor
• Los ejes α y β que giran con el rotor los llamamos dr y qr ( )
1 0 00 cos sin
0 sin cosr r r
r r
ρ θ θ θ
θ θ
= −
Transformaciones matriciales
Clarke
Giro
Anexo A
Pág. 14
Transformada de Park
• La combinación de la transformada de Clarke y el giro es la transformada de Park:
• Pasa de un sistema trifásico estacionario a un sistema trifásico ortogonal que gira en sincronismo
• Se puede aplicar a cualquier variable (v y i)
( ) ( )( ) ( )
0 1 2 1 2 1 22
cos cos 2 3 cos 2 33
sin sin 2 3 sin 2 3
as
d r r r bs
q r r r cs
i ii ii i
θ θ π θ πθ θ π θ π
= − + ⋅ − − − − +
( ) 10dq r abcsi P iθ −= ⋅
Aplicación de la transformación de Park a las ecuaciones del motor
( ) ( )( ) ( )
( ) ( )
( ) ( )( ) ( ) ( ) ( )
( ) ( ) ( )( )( )
( )
1 1
1
1( )
1 1 1
1 1
1
abcs s abcs abcs
s abcs abcs abcs abcs r
r abcs r s abcs
r abcs abcs
r abcs r
r abcs r s r r abcs
r abcs r r abcs
r ab
dV R I
dtd d
R I L Idt dt
P V P R I
dP L I
dtd
Pdt
P V P R P P I
dP L P P I
dt
P
λ
λ
θ θ
θ
θ λ
θ θ θ θ
θ θ θ
θ λ
− −
−
−
− − −
− −
−
= ⋅ +
= ⋅ + ⋅ +
⋅ = ⋅ ⋅
+ ⋅ ⋅
+ ⋅
⋅ = ⋅ ⋅ ⋅
+ ⋅ ⋅ ⋅
+ ⋅ &( )cs r
( ) ( )
( ) ( )( )
( ) ( )
( ) ( ) ( )
( ) ( )( )
( ) ( ) ( )
10 0
10
0 ( )
10 0
10
10
10
0 ( )
r rdqs r s r dqs
rr abcs r dqs
rdqs r
r rdqs r s r dqs
rr abcs r dqs
rr abcs r dqs
rr abcs r dqs
rdqs r
V P R P I
dP L P Idt
V P R P I
dP L P I
dtd
P L P Idt
dP L P I
dt
θ θ
θ θ
λ
θ θ
θ θ
θ θ
θ θ
λ
−
−
−
−
−
−
= ⋅ ⋅ ⋅
+ ⋅ ⋅ ⋅
+
= ⋅ ⋅ ⋅
+ ⋅ ⋅ ⋅
+ ⋅ ⋅ ⋅
+ ⋅ ⋅ ⋅
+
&
&
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 15
Aplicación de la transformación de Park a las ecuaciones del motor
( ) ( ) ( ) ( ) ( )
( ) ( )( )
( ) ( )
1 1
1
1
0 0 0 0 00 0 ; 0 0 30 0 0 3 0
0 0 0
3 30 02 2
3 30 02 2
0 03 3
02
s
r s r s s r abcs r r B
s r B
A Br abcs r r ls
A Bls
ls
A Br abcs r
rd
P R P R r P L P Ldt
r L
L LdP L P Ldt
L L L
LL L
P L P
θ θ θ θ ωω
θ θ ω
θ θ
− −
−
−
⋅ ⋅ = = ⋅ ⋅ =
⋅ ⋅ = ⋅ − + + − +
⋅ ⋅ = + 0 ( )
00 ; 0
23 30 0
2 2
rls dqs r
r mA B
ls
L
L L L
λω λ
+ =
− +
&
Aplicación de la transformación de Park a las ecuaciones del motor
( )
0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0
3 ;
2
s ls
d s d d d r q d
q s q q q r d q r m
d ls A B q
v r i L i iv r i L i L iv r i L i L i
L L L L L L
ωω ω λ
= ⋅ + ⋅ + − ⋅ +
= + + =
&&&
( )32ls A BL L+ −
• Desaparecen los términos que dependen del ángulo• Tensiones y corrientes pasan a ser valores constantes• Sistema de ecuaciones manipulable y analizable• Se puede calcular el par de forma sencilla
Anexo A
Pág. 16
Ecuaciones y circuito equivalente
0 0 0r r rs s s ls s
r r r rds s ds d ds r q qs
r r r rqs s qs q qs r d ds r m
dv r i L i
dtd
v r i L i L idtd
v r i L i L idt
ω
ω ω λ
= +
= + −
= + + +
Ldrs+
-
+-
ΠrLqirqsvr
ds
Lqrs+
-
+ -
ΠrLdirdsvrqs
+
-
ΠrΠm
Obtención de la expresión del par
( )
( ) ( )( ) ( ) ( ) ( )( )( )2 2
2 2
pérdidas en los conductores para conversión variación de la energía almacenada
32
3 3 32 2 2 2 2
r r r re ds ds qs qs
r rds qsr r r r r
e s ds s qs d q r m qs d q ds qs
p v i v i
i id dp r i r i L L i L L i i
dt dtω λ
= +
= + + + + + − 144424443
1444442444443
( )( )( )( )( )
de energía
3;
2 232 2
r r rem rm e r m qs d q ds qs r rm
r r re m qs d q ds qs
np T i L L i i
nT i L L i i
ω ω λ ω ω
λ
= = + − =
= + −
1444442444443
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 17
Expresión del par
• El par sólo depende de los parámetros y de las corrientes de la máquina
• El par es proporcional a las corrientes id y iq
• Hay par creado por el imán y par reluctante
( )( )32 2e m q d q d q
nT i L L i iλ= + −
Particularidades del motor SPMSM
( ) ( )
2
0 1
2
0 2
1 2min max min max
2
12 2
1 1 1 1 1 1; 0
2 2
3 3 ;
2 2
sA
sB
d ls A B q ls A B
NL rl
NL rl
g g g g
L L L L L L L L
πµ ε
πµ ε
ε ε
=
=
= + = − =
= + + = + −
qr
dr
N
N
N
N
N
N
N
N
SS
S
S S S
S
S
Estator
Rotor
Imanes permanentes
Ranuras para los devanados
Motor de polos lisos
Anexo A
Pág. 18
Particularidades del motor SPMSM
• En un motor SPMSM Ld=Lq.
• La estrategia de control es controlar iq, para controlar el par, y controlar id=0
• No hay par reluctante• Si id>0 se debilita el campo del imán y se puede
aumentar la velocidad de giro por encima de la nominal
( )32 2e m q
nT iλ=
El control vectorial del motor PMSM
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 19
A.1.3. CDM2480: La plataforma de trabajo
CDM2480: la plataforma de trabajo
Necesidades para el control
• Puente trifásico, con su respectivo driver• Medida de las tres corrientes de fase• Medida de la velocidad y posición con encoder
incremental con señal de índice
Con
desn
ador
es b
us D
C
Medida de corriente Motor Encoder
Driver
Driver
Driver
Driver
Driver
Driver
Anexo A
Pág. 20
Medida de la corriente
•La medida del corriente de fase se hace con shunt• Shunt: resistencia de muy bajo valor óhmico (0.05 ohm)•La caída de tensión en bornes del shunt es proporcional a la corriente
DSP TMS320F2812
•Procesador digital de señal (DSP) de 32 bits coma fija•Opera a 150 MHz•Capaz de multiplicar y acumular en un único ciclo• Incorpora periféricos específicos para el control de motores (PWM, QEP, ADC) y para comunicaciones (SPI, SCI, CAN)
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 21
Arquitectura TMS320F2812
Memory Bus
128Kw Flash+ 2Kw OTP
4Kw Boot ROM
18Kw RAM
Code security
XINTF
32-bitRegister
FileReal-Time
JTAG
32-bitTimers (3)
C28xTM 32-bit DSP
32x32-bitMultiplier
R M WAtomic
ALU
Interrupt Management
Event Mgr A
Event Mgr B
12-Bit ADC
Watchdog
GPIO
McBSP
CAN 2.0B
SCI-UART A
SCI-UART B
SPI
Perip
heral B
us
CDM2480: la plataforma de trabajo
Anexo A
Pág. 22
A.1.4. La coma fija y el formato Q(x)
La coma fija y el formato Q(x)•Los DSPs usan representación en coma fija por varios motivos:- Menor complejidad del procesador- Rapidez en los cálculos- Bajo coste
•Presenta algunos problemas a tener en cuenta:-Overflow- Errores de cuantificación- Tiene un rango limitado. No es posible representar números grandes y pequeños con la misma representación
Representación binaria coma fija
• Complemento a uno
Rango: [0,16]• Complemento a dos. Números con signo
Rango: [-8,7]
91008212020211001 0123 =+++=⋅+⋅+⋅+⋅⇒
71008212020211001 0123 −=+++−=⋅+⋅+⋅+⋅−⇒
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 23
Complemento a dos
• Normalmente se usa la representación en complemento a dos• Proporciona la capacidad de operar los números con signo• La ALU del DSP puede operar con números en complemento a dos
Formato Q(x)•Permite la representación de números pequeños, incluso decimales• Se basa en desplazar la coma binaria hacia la izquierda• Es un simple reescalado de los números para entenderlos mejor• Permite trabajar en p.u.
Anexo A
Pág. 24
Rango en Q(x)
• Siempre se tienen el mismo número de bits pero en rango distinto
• No se aumenta la precisión de los números
]875.0,1[)3(]75.1,2[)2(
]5.3,4[)1(]7,8[)0(
bits 4
−⇒−⇒−⇒−⇒
QQQQ
Representación en Q(x)
• La misma secuencia representa varios números en función de la posición de la coma binaria
875.0100,1
75.110,01
5.31,001
7,1001
)3(
)2(
)1(
)0(
−⇒
−⇒
−⇒
−⇒
Q
Q
Q
Q
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 25
Operaciones en formato Q(x)
• Al hacer las operaciones (suma, producto,…) hay que tener en cuenta donde tenemos la coma binaria• Suma: la coma binaria tiene que estar en la misma posición en los dos operandos
(2)
(1)
1 0, 0 11.75 1 0, 0 1
0 0, 1 0 1.250.5 0 0 0, 1 1 0, 1 1
Q
Q
− ⇒⇒ + ⇒ −
⇒
Operaciones en formato Q(x)• Multiplicación: el formato Q es la suma de las
dos x• Para representar el número en su totalidad
hacen falta el doble de bits
(2)
(1)
1 0, 0 11.75 1 0, 0 1
0 0 0, 1 0.8750.5 0 0 0, 1 1, 0 0 1
Q
Q
− ⇒⇒ × ⇒ −
⇒
Anexo A
Pág. 26
A.1.5. Code Composer Studio: el entorno de programación
Code Composer Studio: entorno de programación
• El Code Composer Studio es un entorno integrado de trabajo que permite:- Editar, compilar y grabar el código (en C y en ensamblador)- Permite analizar y depurar el código mediante puntos de detención (breakpoints)- Permite la visualización y modificación de variables internas en tiempo real y sin detener la CPU. Hace mucho más sencillo la sintonización de los controladores
Ventana principal CCS
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 27
Acceso a los registros• Existe un conjunto de archivos que permite el acceso fácil a los registros: DSP281x Header File Package• NombrePeriférico.NombreRegistro.all
// Acceso a todo el registro (16 o 32 bits)•NombrePeriférico.NombreRegistro.bit.NombreBit
// Acceso a un bit del registro•Ejemplo:
AdcRegs.ADCTRL2.bit.RST_SEQ2 = 1;AdcRegs.ADCTRL2.all = 0x9000;
Librerías
• Texas Instruments proporciona numerosas librerías que implementan ya los módulos necesarios para multitud de aplicaciones• Librerías de cálculo matemático, para el control de motores, para análisis de la señal (FFT),...• Permiten programar una aplicación en forma de bloques modulares• El uso de estas librerías simplifica enormemente el tiempo de desarrollo
Anexo A
Pág. 28
Estructura de los módulos
• Cada módulo está concebido como un objeto• Los módulos definen una estructura, que contiene las variables de entrada, las variables de salida, los parámetros del módulo, la llamada a la función de inicialización, y la llamada a la función de ejecución del módulo• Los parámetros están ya inicializados, pero pueden ser modificados• Esta estructura de programación orientada a objetos permite instanciar varias veces un mismo módulo y usarlos en tareas distintas (p.e. tres controladores PI en el control vectorial)
IQMath Library
• Librería proporcionada por Texas Instrumentscon numerosas funciones matemáticas• Proporciona un entorno de trabajo casi como si estuviéramos trabajando en coma flotante• Funciones: sin, cos, atan, conversiones de tipo (de float a int), división, función inversa...
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 29
DMC library
• Librerías proporcionadas por Texas Instrumentscon funciones específicas para el control de motores• Algunos módulos son sólo cálculos (SVPWM, PID, Park, Park inversa, Clarke, Cálculo de la velocidad), pero otros configuran y gestionan los periféricos del DSP (QEP, PWM Driver, medidas analógicas)
A.1.6. Programación básica
Programación básica
• Encender y apagar un LED en función del valor de una variable• Estructura del programa
Inicializar el sistemaConfigurar entradas/salidasConfigurar interrupcionesEjecutar bucle infinito
Modificar el estado del LED en función de una variable (activa)
• La variable la modificaremos con el CodeComposer Studio
Anexo A
Pág. 30
Práctica LED variable
• El código a poner en el bucle infinito es:if(activa)
GpioDataRegs.GPFSET.bit.GPIOF14 = 1;else
GpioDataRegs.GPFCLEAR.bit.GPIOF14 = 1;
• Declaración y inicialización de variables:Dec_Ini_Vars.c
• Declaración global de las variables y lasestructuras:
CITCEA.h
Procedimiento de la práctica
1. Enchufar sólo la fuente de 5 V2. Arrancar el Code Composer Studio con el icono3. Abrir el workspace GPIO.wks: des de la barra de
menús ir a File->Workspace->LoadWorkspace-> GPIO.wks
4. Compilar y cargar el programa con el botón Rebuild All5. Ejecutar el programa con el botón Run6. Cambiar el valor de la variable activa de 0 a 1 para
apagar y encender el LED
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 31
Concepto de interrupción• Rutina que interrumpe la
ejecución del bucle principal• Un evento (Timer, fin de
conversión, externo,…) provoca el salto a la rutina de la interrupción
• El bucle principal se interrumpe, pero no se perturba los resultados del código implementado
• Las interrupciones pueden ser síncronas o asíncronas
Inicializaciones
Bucle principal Interrupción
Evento
Retorno al punto del bucle principal donde se produjo
la interrupción
Aplicaciones de las interrupciones
• Permite reaccionar de forma rápida a eventos internos y externos• Permite la ejecución de una rutina de forma periódica (Timer) y sincronizada• Posibilita la implementación de rutinas de control en tiempo real
Anexo A
Pág. 32
Práctica LED variable con interrupciones
• Encender y apagar un LED a una frecuencia fija• Estructura del programa
Inicializar el sistemaConfigurar entradas/salidasConfigurar interrupcionesConfigurar temporizadores del sistema (Timer0)Ejecutar bucle infinito
Modificar el estado del LED en función del valor de un contador
Rutina de interrupciónIncrementar el contador
Especificaciones, rutinas y variables
• El LED tiene que estar 500 ms encendido y 500 ms apagado• La rutina de interrupción interrupcio_Timer0 se ejecuta a 1 kHz. Se usa esta interrupción como base de tiempo•Un contador (cont_T0) se incrementa dentro de la rutina
1 _ 0 1000s cont T⇒ =
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 33
Evolución del Timer0 y del LED
1000 = Periode
0
cont_T0
500 = Ton
LED on LED off
Código a implementar en el bucle principal
if (cont_T0 < Ton){
GpioDataRegs.GPFSET.bit.GPIOF14 = 1;}else{
GpioDataRegs.GPFCLEAR.bit.GPIOF14 = 1;if (cont_T0 >= Periode){
cont_T0 = 0;}
}
Anexo A
Pág. 34
Código a implementar en la interrupción
Sólo hace falta incrementar el contador cont_T0
cont_T0++;
Procedimiento de la práctica
1. Enchufar sólo la fuente de 5 V2. Arrancar el Code Composer Studio con el icono3. Abrir el workspace LEDInt.wks: des de la barra de
menús ir a File->Workspace->LoadWorkspace-> LEDInt.wks
4. Compilar y cargar el programa con el botón RebuildAll
5. Ejecutar el programa con el botón Run6. Cambiar el valor de las variables Periode, y Ton
para variar la frecuencia y el tiempo de encendido del LED
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 35
A.1.7. Control V/f en lazo abierto
Control V/f en lazo abierto
Módulo Park inversa• Transforma las variables de la referencia en
sincronismo a la referencia estacionaria
cos sin
sin cosd r q r
d r q r
f f f
f f fα
β
θ θ
θ θ
= ⋅ − ⋅
= ⋅ + ⋅
Anexo A
Pág. 36
Módulo Park inversa
Entradas• de: componente del
eje d• qe: componente del
eje q• ang: ángulo de fase
entre la referencia estacionaria y la que gira en sincronismo
Salidas• ds: componente del
eje α• qs: componente del
eje β
Módulo SVPWM
• SVPWM: Método de modulación basado en los 8 estados posibles de los seis interruptores del puente• Genera menos harmónicos y usa de forma más eficiente la tensión del bus DC• Las entradas son las tensiones vα y vβ, y las salidas los ciclos de trabajo de las tres fases
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 37
El convertidor y sus posibles estados
• Los pares de interruptores son complementarios: si el de arriba está cerrado, el de abajo está abierto
• Cada una de las ramas tiene dos estados posibles• El convertidor tiene un total de 23=8 estados posibles
a
a’
b c
b’ c’
AB
C
vavbvcn
VDC/2
VDC/2
Estados y tensiones del convertidor
00000V7111
0-VDCVDCV6101
VDC-VDC0V5100
VDC0-VDC0V4110
0VDC-VDCV3010
-VDCVDC0V2011
-VDC0VDC0V1001
00000V0000
vcavbcvabvcnvbnvanvβvαVectorcba
2DCV− 2
DCV− 2DCV−
0 0
2 1 13 2 2
2 3 33 2 2
a b c
a b c
b c
v v v v
v v v v
v v v
α
β
= + + =
= − ⋅ − ⋅
= ⋅ − ⋅
2DCV
2DCV− 2
DCV−23 DCV
2DCV
2DCV
2DCV−3
DCV3
DCV
2DCV− 2
DCV2
DCV−3DCV− 3
DCV
2DCV− 2
DCV2
DCV23 DCV−
2DCV− 2
DCV− 2DCV
3DCV− 3
DCV−
2DCV
2DCV− 2
DCV3
DCV3
DCV−
2DCV
2DCV
2DCV
a
a’
b c
b’ c’
AB
C
vavbvcn
VDC/2
VDC/2
Anexo A
Pág. 38
Hexágono de tensiones
Crear la tensión deseada• El SVPWM consiste en sintetizar el vector tensión que se desea aplicar al motor usando únicamente los ocho estados del convertidor• Para ello se usan los dos vectores adyacentes y los dos vectores nulos
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 39
Crear la tensión deseada
T/2 T/2
0 0,V t 1 1,V t 2 2,V t 7 7,V t 7 7,V t 2 2,V t 1 1,V t 0 0,V t
a
b
c
Módulo SVPWMEntradas• Ualfa: componente
del eje α• Ubeta: componente
del eje β
Salidas• Ta: ciclo de trabajo
de la fase a• Tb: ciclo de trabajo
de la fase b• Tc: ciclo de trabajo
de la fase c
Anexo A
Pág. 40
Pulse Width Modulation• PWM es una forma de representar una señal como una secuencia de pulsos- Frecuencia portadora fija- Amplitud de pulso fijo- Anchura de pulso proporcional a la
amplitud de la señal que se quiere representar
- Energía del PWM ≈ Energía del señal
Pulse Width Modulation
Tt
RepresentaciRepresentacióónn PWMPWM
tSeSeññalal originaloriginal
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 41
Comparadores PWM• Este módulo calcula los valores a poner en los comparadores a partir de los ciclos de trabajo calculados anteriormente• Hace de interfaz entre la parte software y la parte hardware. Genera las señales que van a parar a los drivers
Comparadores PWMEntradas• Mfunc_1: ciclo de trabajo
de las salidas PWM 1 y 2 (fase a)
• Mfunc_2: ciclo de trabajo de las salidas PWM 3 y 4 (fase b)
• Mfunc_3: ciclo de trabajo de las salidas PWM 5 y 6 (fase c)
Salidas• PWM1/PWM2: señales de
excitación de los transistores de la fase a
• PWM3/PWM4: señales de excitación de los transistores de la fase b
• PWM5/PWM6: señales de excitación de los transistores de la fase c
Anexo A
Pág. 42
Medida de corrientes y tensión de bus
• Este módulo realiza la conversión analógica-digital de dos corrientes de fase y la tensión del bus de continua• Se pueden programar las ganancias y el offset de cada una de las medidas
Medida de corrientes• Los pines del ADC aceptan tensiones de 0V a
3V• Hay que ajustar externamente la señal
analógica a este rango
0+
-
0 V
1.5 V
3 V
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 43
Medida de corrientes• El conversor de 12 bits devuelve un número
justificado a la izquierda (0000h-FFF0h)• Este valor es convertido a un número en Q15
0.0 V
FFF0h
0000h 8000h
0000h
7FF0h3.0 V
8000hXOR #8000h
Medida de tensión de bus• La tensión de bus sólo es de signo positivo. No
hace falta sumar un offset analógico a la señal• La tensión del bus también es un número en
Q15
0.0 V
FFF0h3.0 V
8000h
SFR(SXM=0)
0000h
7FF8h
4000h
0000h
Anexo A
Pág. 44
Medida de corriente y tensión de bus
Entradas• ia: corriente de la fase a• ib: corriente de la fase b• Vdc: tensión del bus de
continua
Salidas• Imeas_a: valor medido
de la corriente de la fase a
• Imeas_b: valor medido de la corriente de la fase b
• Vdc_meas: valor medido de la tensión del bus de continua
Módulo Clarke• Transforma las tres corrientes
de fase estacionarias a un sistema trifásico ortogonal también estacionario
0
00
23
a b c
a
b a
i i iii i
i ii
α
β
+ + ===
⋅ +=
Clarke
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 45
Módulo ClarkeEntradas• as: medida de fase a• bs: medida de fase b
Salidas• ds: componente del
eje α• qs: componente del
eje β
Módulo Park• Aplica un giro de ángulo θr al sistema trifásico ortogonal
entorno al eje 0.• Transforma las variables de la referencia estacionaria a
la referencia en sincronismo con el rotor
cos sin
sin cosd r r
q r r
f f f
f f fα β
α β
θ θ
θ θ
= ⋅ + ⋅
= − ⋅ + ⋅
Anexo A
Pág. 46
Módulo ParkEntradas• ds: componente del
eje α• qs: componente del
eje β• ang: ángulo de fase
entre la referencia estacionaria y la que gira en sincronismo
Salidas• de: componente del
eje d• qe: componente del
eje q
Control y generación del ángulo
• Genera una rampa que simula el ángulo del rotor (de 0º a 360º, 0000h a FFFFh)• De esta rampa se puede variar su frecuencia, o sea, la velocidad del motor• La consigna de velocidad se modifica en forma de rampa, y no bruscamente
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 47
Plataforma para el control de motores
Puerto paralelo
Encoder
PC
Fuente alimentación 24V
(PSU)
CDM2480+ DSK
Fuente alimentación 5V
Procedimiento práctica 11. Mantener la PSU apagada2. Enchufar sólo la fuente de 5 V3. Arrancar el Code Composer Studio con
el icono4. Abrir el workspace pmsm.wks: des de la
barra de menús ir a File->Workspace->Load Workspace-> pmsm.wks
Anexo A
Pág. 48
Procedimiento práctica 15. Compilar y cargar el programa con el botón
Rebuild All6. Activar el Real Time Monitor: Debug > Real-
time Mode. Pulse Sí cuando aparezca la ventana:
Procedimiento práctica 17. Ejecutar el programa con el botón Run8. Seleccionar la pestaña BUILD2 en la
ventana Watch Window. Y con el botón derecho del mouse habilitar el Continous Refresh
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 49
Procedimiento práctica 1
9. Activar el Continous Refresh también para las tres ventanas gráficas
10. Encender la fuente de alimentación PSU11. Poner la variable enable_flag a 1. Y el
motor empieza a girar
Código implementado
rc1.target_value = _ IQ(speed_ref); // target_value is in IQrc1.calc(&rc1);
rg1.rmp_freq = rc1.setpt_value;rg1.calc(&rg1);
ilg2_vdc_vcon1.read(&ilg2_vdc_vcon1);ilg2_vdc_vcon1.Imeas_a = ilg2_vdc_vcon1.Imeas_a - ilg2_vdc_vcon1.Imeas_a_offset;ilg2_vdc_vcon1.Imeas_b = ilg2_vdc_vcon1.Imeas_b - ilg2_vdc_vcon1.Imeas_b_offset;
clarke1.as = _IQ15toIQ((long)ilg2_vdc_vcon1.Imeas_a);clarke1.bs = _IQ15toIQ((long)ilg2_vdc_vcon1.Imeas_b);clarke1.calc(&clarke1);
park1.ds = clarke1.ds;park1.qs = clarke1.qs;park1.ang = rg1.rmp_out;park1.calc(&park1);
Anexo A
Pág. 50
Código implementado
ipark1.de = _IQ(Vd_testing);ipark1.qe = _IQ(Vq_testing);ipark1.ang = rg1.rmp_out;ipark1.calc(&ipark1);
svgen_dq1.Ualfa = ipark1.ds;svgen_dq1.Ubeta = ipark1.qs;svgen_dq1.calc(&svgen_dq1);
pwm1.Mfunc_c1 = (int)_IQtoIQ15(svgen_dq1.Ta); // Mfunc_c1 is in Q15pwm1.Mfunc_c2 = (int)_IQtoIQ15(svgen_dq1.Tb); // Mfunc_c2 is in Q15 pwm1.Mfunc_c3 = (int)_IQtoIQ15(svgen_dq1.Tc); // Mfunc_c3 is in Q15pwm1.update(&pwm1);
Variables importantes
• La variable speed_ref modifica la velocidad de giro del motor (Rango: -0.4 a 0.4)
• La variable rc1.rmp_dly_max modifica la rampa de aceleración y desaceleración (Rango: 0 a 100)
• Las variables Vd_testing y Vq_testing son las tensiones en ejes d y q que se impone
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 51
Procedimiento práctica 1
Procedimiento de parada del sistema de forma adecuada
12. Parar la fuente de alimentación PSU13. Parar el DSP con el botón 14. Parar el Real Time Monitor: Debug >
Real-time Mode15. Hacer un reset de la CPU: Debug >
Reset CPU
A.1.8. Lazo de par
Lazo de par
Anexo A
Pág. 52
Módulo PID
• Este módulo implementa un controlador PID con una precisión de 32 bits• Se puede usar como PI, PD o PID con sólo hacer cero la constante adecuada• Además incorpora anti-windup para evitar la saturación del integrador
Módulo PID
+
-
Ref
Fdb
eKp
1
iTdt∫
Tdddt
+
+
Kc
+
+
++
usat
-+
u
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 53
Módulo PIDEntradas• pid_ref_reg3: valor de
referencia• pid_fdb_reg3: valor de
realimentación
Salidas• pid_out_reg3: salida del
controlador PIDParámetros• Kp_reg3: constante
proporcional• Ki_reg3: constante integral• Kd_reg3: constante derivativa• Kc_reg3: constante de
corrección del integrador (anti-windup)
Procedimiento práctica 2
• Incluir el código necesario para cerrar el lazo de par
• El procedimiento de arranque es el mismo que el caso anterior
• Seleccionar la pestaña BUILD3 en la ventana Watch Window. Y con el botón derecho del mouse habilitar el Continous Refresh
• Seguir el mismo procedimiento también para parar la plataforma
Anexo A
Pág. 54
A.1.9. Medida de la posición y la velocidad
Módulo QEP y medida del ángulo
• Este módulo procesa las señales del encoder y devuelve la posición y el sentido de giro del rotor• Es la interfaz entre la parte hardware del capturador y el programa
Funcionamiento del encoder
QEP_AQEP_B
Una vuelta(360º mecánicos)
QEP_index
QEP_CLK
QEP_DIR
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 55
Determinación del sentido de giro
Ch. A
Ch. B
(00)
(10)
(11)
(01)
00
10
11
01
Decodificador de sentido de giro
Incrementa el contador
Decrementa el contador
Módulo QEPEntradas• QEP_A: señal del
canal A del encoder• QEP_B: señal del
canal B del encoder• QEP_index: señal de
índice del encoder
Salidas• theta_elec: ángulo
eléctrico del rotor• dir_QEP: sentido de
giro del rotor
Anexo A
Pág. 56
Cálculo de la velocidad
• La medida de la velocidad se realiza a partir de la información del ángulo y del sentido de rotación proporcionada por el encoder• El cálculo de la velocidad se realiza derivando el ángulo • Después se aplica un filtro pasa bajos para eliminar el ruido introducido en el cálculo de la derivada
r rddt
ω θ=
Módulo de Cálculo de la velocidad
Entradas• theta_elec: ángulo
eléctrico del rotor• dir_QEP: sendito de
rotación del rotor
Salidas• speed_frq:
velocidad de rotación del rotor
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 57
Ajuste del ángulo inicial• Como sólo se cierra el lazo de velocidad, hay que decirle al control en qué posición del rotor se da el ángulo cero• Para eso hay que ajustar la variable cal_angleen la ventana Watch Window hasta que el ángulo medido con el encoder esté retrasado 90ºrespecto al ángulo creado internamente• Después abrir el archivo f28xqep.h y modificar el valor por defecto del parámetro cal_angle
Ajuste del ángulo inicial• El ángulo varia entre 0 y
1 en Q15 (0-360º)• 90º es 0.25• Ajustar la variable cal_angle hasta que el ángulo medido esté 90ºgrados retrasado respecto el ángulo creado internamente
Anexo A
Pág. 58
Ajuste del ángulo inicial• Incluir el código necesario para medir la
posición y calcular la velocidad de giro• El procedimiento de arranque es el mismo que
el caso anterior• Seleccionar la pestaña BUILD4 en la ventana
Watch Window. Y con el botón derecho del mouse habilitar el Continous Refresh
• Seguir el mismo procedimiento también para parar la plataforma
A.1.10. Lazo de velocidad
Lazo de velocidad
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 59
Cerrar el lazo de velocidad• Incluir el código necesario para cerrar el lazo
de velocidad• El procedimiento de arranque es el mismo que
el caso anterior• Seleccionar la pestaña BUILD5 en la ventana
Watch Window. Y con el botón derecho del mouse habilitar el Continous Refresh
• Seguir el mismo procedimiento también para parar la plataforma
Ajuste PI velocidad
• Hacer Ki_s=0• Ver el error en régimen permanente. Observar que si se aumenta Kp_s, este error disminuye• Con un valor razonable de Kp_s, aumentar poco a poco Ki_s y observar, al provocar un escalón de consigna, el sobrepico, las oscilaciones, y el error estacionario
Anexo A
Pág. 60
A.2. Libro de prácticas
A.2.1. Introducción
Objetivo
El objetivo de esta guía es desarrollar un manual de prácticas para facilitar el seguimiento del
enseñamiento del control vectorial de la maquina síncrona de imanes permanentes. Para el
desarrollo del manual se utilizarán conceptos teóricos del control vectorial y para el desarrollo
de la parte práctica se utilizará una plataforma de control de motores con DSP. La plataforma
de control de motores con DSP en las prácticas de la asignatura de Control de Maquinas
Eléctricas para controlar un motor Brushless AC.
La presente guía irá mostrando progresivamente el análisis del control de par y velocidad, así
como todo lo necesario para entenderlo desde el punto de vista teórico y practico, y así poder
se aplicado a la docencia de la asignatura de Control de Máquinas Eléctricas.
Alcance
Este proyecto contempla la resolución de los siguientes aspectos:
- Clasificación y descripción del motor síncrono de imanes permanentes.
- Modelado, tratamiento y análisis de las ecuaciones del motor.
- Descripción de la plataforma de trabajo así como del DSP.
- Descripción del entorno de programación y de conceptos teóricos previos.
- Descripción e implementación del control V/f en lazo abierto.
- Introducción del control de par.
- Medida de la posición y la velocidad.
- Introducción del último control, el control de velocidad.
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 61
A.2.2. Introducción previa del motor síncrono de imanes permanentes
A continuación se muestran las transparencias incluidas en este capítulo, seguidas de sus
explicaciones, comentarios y ayudas convenientes. Se recuerda que el orden de las
transparencias es el mismo que el seguido en clase por el profesorado.
Se muestra en la transparencia anterior la clasificación de los motores de imanes permanentes
para poder situar el tipo de motor que se usará dentro de la gama de los motores de imanes
permanentes. La primera clasificación como es evidente se encuentra en si el motor es de
corriente continua o corriente alterna.
Se puede apreciar que existen dos tipos de motores con nomenclaturas diferentes, los PMDC
y los PMAC. Las siglas PM significan “permanent magnet” que como bien se supondrá
significa imanes permanentes, y las ultimas siglas DC y AC indican el tipo de corriente
utilizada. La clasificación se centra en los PMAC, ya que son los que interesan en el tipo de
control que se aplicará, pues aparece otra subdivisión llamada BLDCM y PMSM.
Clasificación de los motores de imanes permanentes
Máquinas imanes permanentes
Máquinas PMDC Máquinas PMAC
Trapezoidales(BLDCM)
Sinusoidales(PMSM )
De polos lisos(SPMSM)
De polos salientes(IPMSM)
ea, ia
eb, ib
ec, ic
ib t
t
t
ia
ic
ea
eb
ec
t0 t1 t2 t3 t4 t5
Anexo A
Pág. 62
Los motores BLDCM son los llamados Brusless DC Motors, motivo de sus siglas, o como se
diría en nuestro idioma, motor sin escobillas. También se les suele clasificar por la forma
trapezoidal de la fuerza contraelectromotriz que se genera en los devanados del estator cuando
el rotor gira, tan solo se ha de observar la figura izquierda de la transparencia para entender lo
mencionado.
Los motores PMSM o Permanent Magnet Synchronous Motor, son los que interesan para el
control vectorial que se aplicará. También se les conoce como motores sinusoidales, ya que la
forma de onda de la fuerza contraelectromotriz que se genera en los devanados del estator
cuando el rotor gira, es sinusoidal. Observar la figura de la derecha para completar la
comprensión de la forma sinusoidal de las tensiones.
Los PMSM se subdividen en los SPMSM y los IPMSM. El SPMSM o Surface Permanent
Magnet Synchronous Motor es conocido como motor de polos lisos y el IPMSM o Interior
Permanent Magnet Synchronous Motor es conocido como motor de polos salientes. El motor
que se modelará con ecuaciones es de polos salientes ya que el motor de polos lisos es un caso
particular de éste. El control vectorial se puede aplicar tanto al motor de polos lisos como al
motor de polos salientes, tan solo se ha de adaptar el control a las particularidades de cada
motor. El motor al que se le aplicará el control vectorial es de tipo SPMSM.
Clasificación de los motores PMSM
qr
dr
N
N
N
N
N
N
N
N
SS
S
S S S
S
S
Estator
Rotor
Imanes permanentes
Ranuras para los devanados
qr
drN
N
N
N
S
S
S
S
Estator
Rotor
Imanes permanentes
Ranuras para los devanados
Motor de polos lisos Motor de polos salientes
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 63
En la anterior transparencia se pueden apreciar las diferencias constructivas entre el motor de
polos lisos y el motor de polos salientes. El motor de polos lisos tiene los imanes permanentes
montados en la superficie del rotor mientras que el motor de polos salientes tiene los imanes
montados en el interior del rotor, de aquí proviene el nombre de polos salientes.
La elección del motor PMSM, al que se le aplicará el control vectorial, y no otro tipo de
motor es justificado por las prestaciones que ofrecen los motores PMSM, resumidas en la
transparencia anterior. La alta densidad de potencia viene inducida gracias a que los motores
PMSM tienen una relación tamaño potencia muy buena, es decir son motores muy pequeños
para la potencia desarrollada. También es gratificante e ideal la relación par/inercia que
proporcionan, la cual es muy elevada en comparación con otros motores de mayor tamaño.
Todo esto se consigue gracias al diseño de este motor, diseño que ha cuidado todos los
detalles necesarios para obtener una alta eficiencia en un motor tan pequeño y tan difícil de
conseguir que tenga una alta eficiencia.
Los PMSM son motores ideales para el control, ya que presentan una facilidad de control en
todos los aspectos que otros no presentan, además de la gran fiabilidad. Un detalle a tener en
cuenta es que el control vectorial usado, hace que el motor sea síncrono debido a que
Prestaciones de los motores PMSM
•Alta densidad de potencia•Alta eficiencia•Alta relación par/inercia•Facilidad de control•Alta fiabilidad•Su control necesita sincronizar las tensiones del estator con la posición del rotor para producir el par adecuado
Anexo A
Pág. 64
sincroniza las tensiones del estator con la posición del rotor consiguiendo de esta forma el par
deseado en todo momento.
Si se comparan los motores PMSM frente a la Máquina de inducción, se encuentran
prestaciones a favor de los PMSM y alguna que no los favorece tanto. Los motores PMSM no
requieren corriente magnetizante gracias a que tienen imanes permanentes, por lo tanto
presentan un peso menor y un volumen mas reducido. Aún siendo el rotor más pequeño que
en otras máquinas, como la de inducción, se consigue una relación alta par/inercia, y esta es
una de las prestaciones más importantes a tener en cuenta.
El único inconveniente es que el control vectorial aplicado sobre los motores PMSM requiere
el conocimiento de la posición del rotor en todo momento. Se verá mas adelante que este
hecho tan solo complica la implementación del control, pero como todo control, es algo que
ya tiene solución y tan solo se ha de saber resolver, tarea abordada en esta guía didáctica.
A.2.3. Modelado y obtención de las ecuaciones
En el siguiente apartado se abordan todas las ecuaciones necesarias para modelar el motor y
poder analizarlas, para así obtener el sistema, el cual será susceptible para aplicarse el control
vectorial que más adelante se detallará. Se recuerda que se seguirá la misma metodología
PMSM vs Máquina inducción
• No requiere de corriente magnetizante• Menor peso y volumen• Rotor más pequeño. Alta relación par/inercia• Requiere el conocimiento de la posición del rotor
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 65
empleada hasta el momento, la cual era exponer la transparencia expuesta en clase junto con
las explicaciones, comentarios y aclaraciones pertinentes.
En esta transparencia se intenta explicar muy resumidamente donde recae la complejidad del
control y el posterior desarrollo de las ecuaciones. Ya que se trabaja con una máquina
síncrona se necesita en todo momento que las tensiones del estator estén sincronizadas con el
imán del rotor. Este proceso es denominado control V/f (tensión- fase), el cual también
necesita la velocidad del rotor para poder realizar el control adecuado que asegure el par
adecuado en cada momento. Justamente todo esto es lo que se pretende demostrar y explicar
con el desarrollo de ecuaciones mostrado a continuación.
Modelado y obtención de las ecuaciones
• Al ser una máquina síncrona necesita en todo momento que las tensiones del estator estén sincronizadas con el imán del rotor• Esto asegura el par adecuado•El control V/f también necesita conocer la velocidad del rotor
Anexo A
Pág. 66
Con este simple esquema del rotor y del estator del motor se empiezan a deducir propiedades
del motor. En el estator el motor, tiene tres devanados con distribución sinusoidal, esta
distribución significa que están separados 120º eléctricamente. La distribución de los
devanados permite que el flujo del imán induzca en el estator tres tensiones sinusoidales
desfasadas 120º entre si. En el grafico esta esquematizado el devanado de la fase a (o el
sentido del campo magnético) con su distribución sinusoidal con respecto a los otros
devanados y además as, bs y cs corresponden a los ejes magnéticos del estator de sus
respectivas fases. Los ejes dr y qr corresponden a los ejes magnéticos del rotor.
A continuación se muestran todas las transparencias que contienen las ecuaciones del motor y
a posteriori se harán los comentarios pertinentes y necesarios para hacer más amena la
interpretación de dichas ecuaciones.
Propiedades del motor• Tres devanados con
distribución sinusoidal• Los tres devanados
están separados 120º• El flujo del imán
induce en el estator tres tensiones sinusoidales desfasadas 120º
bs
as
cs
qr
dr
S
N
a
a’
b’
b
c’
c
ImánRotor
Devanado de la fase a. Distribución sinusoidal
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 67
Ecuaciones del motor
abcs s abcs abcs
dV R I
dtλ= ⋅ +
0 0; 0 0 ; ;
0 0
as s as as
abcs bs s s abcs bs abcs bs
cs s cs cs
v r iV v R r I i
v r i
λλ λ
λ
= = = =
Ecuaciones del motor
( ) ( )abcs abcs s abcs rλ λ λ= +
( )
aas abs acs
abcs s bas bbs bcs abcs
cas cbs ccs
L L LL L L IL L L
λ = ⋅
( )
sin( )2sin( )32sin( )3
r
abcs r m r
r
θπλ λ θ
πθ
= − +
Anexo A
Pág. 68
Ecuaciones del motor
( )( )
cos 2
2cos 2 32cos 2 3
aas ls A B r
bbs ls A B r
ccs ls A B r
L L L L
L L L L
L L L L
θ
πθ
πθ
= + −
= + − +
= + − −
( )( )
1 2cos 2 321 2cos 2 321
cos 22
abs bas A B r
acs cas A B r
bcs cbs A B r
L L L L
L L L L
L L L L
πθ
πθ
θ
= = − − −
= = − − +
= = − −
Ecuaciones del motor
2
0 1
2
0 2
1 2min max min max
2
12 2
1 1 1 1 1 1;
2 2
sA
sB
NL rl
NL rl
g g g g
πµ ε
πµ ε
ε ε
=
=
= + = −
qr
drN
N
N
N
S
S
S
S
Estator
Rotor
Imanes permanentes
Ranuras para los devanados
Motor de polos salientes
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 69
En las cuatro transparencias anteriores se ha mostrado el desarrollo seguido para calcular las
ecuaciones del motor. Las ecuaciones del motor se deducen bajo las siguientes suposiciones:
- La distribución espacial de los devanados por fase del estator se asume que es
sinusoidal, por lo tanto la fuerza magnetomotriz producida por el estator se considera
sinusoidal
- No existe ningún efecto térmico sobre las resistencias del estator ni sobre el flujo
magnético permanente.
- El material magnético se supone lineal y que no existe efecto de saturación.
- No existen perdidas en el hierro de la máquina.
La primera transparencia de las cuatro últimas transparencias, muestra la ecuación general de
los voltajes del estator, la cual tiene el subíndice s porque se refiere al estator. Es evidente que
la matriz Rs hace referencia a las resistencias de cada una de las bobinas del estator.
La segunda transparencia muestra el vector del flujo estatorico, pues el flujo del estator en
parte es creado por el mismo flujo del estator y en parte por el flujo de los imanes
permanentes del rotor. Por este motivo existen dos subíndices diferentes, el r (rotor) y el s
(estator). El flujo creado por el estator se obtiene de la matriz de inductancias de las bobinas
del estator, y el flujo creado por el rotor se obtiene de un vector que contempla el ángulo
eléctrico del rotor (θr) y la amplitud del flujo vista desde el estator que es creada por los
imanes del rotor (λm).
La tercera transparencia expresa los valores de las inductancias de la matriz λ del estator.
Estos valores dependen de tres términos bien diferentes. El primer termino Lls es la
inductancia de dispersión (las líneas de flujo que se cierran sin pasar por otra bobina, perdidas
desde el punto de vista del flujo) igual para cada una de las tres fases del estator, el segundo
término LA y LB son las inductancias de las bobinas, y el tercer termino corresponde a θr que
es el ángulo eléctrico del rotor o el mecánico siempre y cuando el número de polos sea el
mismo.
La cuarta transparencia indica como se han cálculado la inductancias de las bobinas, las
cuales contemplan parámetros para su calculo como el número de vueltas en las bobinas (Ns),
Anexo A
Pág. 70
el radio desde el centro hasta la circunferencia interior del estator (r), la longitud axial del
entrehierro (l), µ0 corresponde a la permeabilidad del aire, y las e son definidas con el grosor
máximo y mínimo del entrehierro.
Finalmente lo que se obtiene, viene mostrado a continuación en la transparencia. Es de notar
una fuerte presencia del ángulo del rotor θr en las ecuaciones, pues esta presencia hará
plantear un cambio en la forma de analizar las ecuaciones que a posteriori se explicará.
Ecuaciones del motor
( )( )( )
sin0 020 0 sin - 3
0 0 2sin 3
ras s as aas abs acs as
bs s bs bas bbs bcs bs m r
cs s cs cas cbs ccs csr
v r i L L L id
v r i L L L idt
v r i L L L i
θ
πλ θ
πθ
= ⋅ + ⋅ + +
abcs s abcs abcs
dV R I
dtλ= ⋅ +
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 71
Las conclusiones obtenidas en el análisis de las ecuaciones del motor son las mostradas en la
transparencia anterior. A partir de estas se ha de obtener una vía alternativa para solventar las
complicaciones, como por ejemplo la dependencia de las ecuaciones del ángulo θr que impide
un análisis y un control fácil. También el par presenta una dificultad de cálculo que será
solventada con el procedimiento explicado a continuación.
Resumiendo, existen dos complicaciones que se han de solventar antes de proseguir con el
desarrollo práctico del control. Las dos complicaciones son resumidas en: cálculo de la
expresión del par y dependencia de las ecuaciones del ángulo θr. A continuación es explicada
la solución al problema de la obtención de la ecuación del par.
Ecuaciones del motor
• Sistema de ecuaciones diferenciales no lineales• Términos que dependen del ángulo• Difícil calcular el par• No apto para el análisis
Anexo A
Pág. 72
El problema reside en el par, el cual no es constante si se utilizan las ecuaciones expuestas
anteriormente. Debido a que el flujo del imán gira con el rotor, es necesario que el flujo del
estator también gire con la misma velocidad que el flujo del imán y así conseguir el par
constante en el motor. A continuación se explica como se puede crear un flujo giratorio en el
estator.
Se quiere un par constante
• El flujo del imán gira con el rotor• Para dar par constante, el flujo creado por el
estator también tiene que girarbs
as
cs
Fs
S
N
a
a’
b’
b
c’
c
dr
qr
Fi
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 73
Para poder crear un flujo en el estator que sea giratorio se han de inyectar en el estator tres
corrientes sinusoidales desfasadas 120º entre ellas. A partir del análisis de las ecuaciones
básicas el motor se ha podido determinar la forma que han de tener las corrientes en el estator.
Inyectando tres corrientes sinusoidales, el flujo del estator pasa a ser giratorio y finalmente el
par que se obtiene es constante según lo anteriormente analizado.
Como bien se sabrá la complicación estará en crear tres corrientes sinusoidales, cosa que no
es fácil en cualquier tipo de control. En el control vectorial que será aplicado, la clave está en
crear estas tres corrientes sinusoidales en el tiempo exacto y con la amplitud justa, pues como
ya se verá mas adelante estas tres corrientes serán obtenidas mediante el método PWM (Pulse
Width Modulation) el cual utiliza seis transistores encargados de proporcionar el voltaje
necesario en el tiempo de ciclo preciso para cada uno de los vectores Ia, Ib y Ic que forman Is
ó bien como se ha llamado anteriormente Iabcs.
Corrientes sinusoidales
•El flujo que hay que crear en el estator es giratorio• Hay que crear tres corrientes sinusoidales
bs
as
cs
i s
0r
S
N
a
a’
b’
b
c’
c
iasibs
ics
dr
qr
Anexo A
Pág. 74
El vector Is de corrientes obtenido en la transparencia anterior, es un vector formado por tres
componentes sinusoidales, las cuales están englobadas dentro de un plano, por lo tanto se
puede apreciar que los ejes a, b y c no son ortogonales. Con objetivo de simplificar las
ecuaciones del motor, se realiza una transformación, llamada Clarke, que transforma un
sistema no ortogonal a un sistema ortogonal. En el caso tratado se transforma el vector Iabcs
de tres componentes en un vector que tan solo tiene dos componentes, α y β, ya que la
tercera componentes es cero.
Como conclusión se ha transformado el vector is en un vector iαβ que solo necesita dos
coordenadas y que pertenece a un sistema ortogonal. En la transparencia superior se
encuentran las ecuaciones y un pequeño gráfico que ayudan a entender el proceso explicado
Transformaciones matriciales
• is es un vector en el plano->sólo se necesitan dos coordenadas (iα y iβ)
• Esta es la transformación de Clarke
0 0
23
a
b a
i
i i
i ii
α
β
=
=
⋅ +=
0 0
2 1 13 2 2
2 3 33 2 2
a b c
a b c
b c
i i i i
i i i i
i i i
α
β
= + + =
= − ⋅ − ⋅
= ⋅ − ⋅
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 75
A continuación se explican algunas características de la transformación de Clarke, la cual es
capaz de convertir un sistema trifásico a 120º a un sistema trifásico ortogonal. Otra propiedad
importante es que no modifica el valor de las tensiones y las corrientes transformadas ya que
no varia el modulo del vector. Pero no hay que dejar de lado que esta transformación no ha
evitado el problema de que las corrientes transformadas aún dependen del ángulo que se
comentaba anteriormente (θr). Por lo tanto es obvio que aún queda pendiente otra
transformación que se verá a continuación.
Transformación de Clarke
•Pasa de un sistema trifásico a 120º en un plano a un sistema trifásico ortogonal• No modifica el módulo del vector (no modifica el valor las tensiones y corrientes transformadas)•Las corrientes transformadas todavía dependen del ángulo
Anexo A
Pág. 76
Como bien se ha comentado anteriormente aún queda un último paso, para obtener unas
ecuaciones del motor que cumplan los dos objetivos a conseguir, el cual es eliminar la
dependencia del ángulo θr. Se elimina la dependencia haciendo girar todo el sistema de
referencia de las corrientes y tensiones con el ángulo θr. Para realizar esto tan solo se ha de
conseguir que los ejes de referencia α y β giren con este valor de ángulo θr, y es tan fácil
como aplicar la matriz de un giro, pues a partir de ahora se trabajará con los eje dr y qr que son
los ejes siempre representados en los dibujos de las primeras transparencias ya que son los
ejes que tienen interés a la hora de analizar las ecuaciones del motor y la distribución de las
corrientes, y además se recuerda que representan a los ejes magnéticos del rotor.
Se recuerda que el ángulo θr corresponde al ángulo eléctrico del rotor, el cual coincide con el
ángulo mecánico del rotor siempre y cuando el motor tan solo tenga un par de polos. Préstese
atención a este comentario ya que induce a error en muchas ocasiones.
Transformaciones matriciales
• iα y iβ todavía dependen del ángulo eléctrico del rotor θr
• Para eliminar esta dependencia, los ejes α y β tienen que girar con el rotor
• Los ejes α y β que giran con el rotor los llamamos dr y qr ( )
1 0 00 cos sin
0 sin cosr r r
r r
ρ θ θ θ
θ θ
= −
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 77
Resumidamente y para que quede claro lo mejor es mostrar un gráfico donde quede
esquematizado el proceso realizado. Se puede observar con la transformación de Clarke se
pasa de un sistema trifásico de ondas sinusoidales a un sistema en el plano de ondas
sinusoidales y finalmente con el giro se consigue que estas ondas se conviertan en rectas y
valores constantes, pues ahora resulta mucho más fácil el trabajar y poder analizar los valores
obtenidos. Siempre que se trabaja con valores constantes ya que es mucho más fácil realizar
un control digital que con valores que varían en el tiempo.
Transformaciones matriciales
Clarke
Giro
Anexo A
Pág. 78
En resumen de todo lo expuesto anteriormente, se obtiene una transformada de Park que es la
combinación de la transformada de Clarke y el giro. Esta transformada convierte un sistema
trifásico estacionario en un sistema trifásico ortogonal que gira en sincronismo con la θr del
rotor. Además esta transformación se aplica en forma de matriz, tal y como se indica en la
transparencia anterior, a cualquier variable v y i. Obsérvese el cambio de nomenclatura de las
tensiones y las corrientes, pues tan solo viene a ser un cambio de ejes y un giro, sencillas
operaciones algebraicas y geométricas pero con un claro significado físico.
A continuación se aplica la transformada de Park a las ecuaciones del motor originales y se
muestra todo el desarrollo matricial seguido y obtenido. Es conveniente perder unos minutos
en hacer el seguimiento de las transformaciones que se realizarán a continuación y sobretodo
entender todo lo realizado anteriormente ya que es la base mínima para un perfecto
seguimiento de las prácticas que se realizarán como última instancia.
Transformada de Park
• La combinación de la transformada de Clarke y el giro es la transformada de Park:
• Pasa de un sistema trifásico estacionario a un sistema trifásico ortogonal que gira en sincronismo
• Se puede aplicar a cualquier variable (v y i)
( ) ( )( ) ( )
0 1 2 1 2 1 22
cos cos 2 3 cos 2 33
sin sin 2 3 sin 2 3
as
d r r r bs
q r r r cs
i i
i ii i
θ θ π θ πθ θ π θ π
= − + ⋅ − − − − +
( ) 10dq r abcsi P iθ
−= ⋅
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 79
Aplicación de la transformación de Park a las ecuaciones del motor
( ) ( )( ) ( )
( ) ( )
( ) ( )( ) ( ) ( ) ( )
( ) ( ) ( )( )( )
( )
1 1
1
1( )
1 1 1
1 1
1
abcs s abcs abcs
s abcs abcs abcs abcs r
r abcs r s abcs
r abcs abcs
r abcs r
r abcs r s r r abcs
r abcs r r abcs
r ab
dV R I
dtd d
R I L Idt dt
P V P R I
dP L I
dtd
Pdt
P V P R P P I
dP L P P I
dt
P
λ
λ
θ θ
θ
θ λ
θ θ θ θ
θ θ θ
θ λ
− −
−
−
− − −
− −
−
= ⋅ +
= ⋅ + ⋅ +
⋅ = ⋅ ⋅
+ ⋅ ⋅
+ ⋅
⋅ = ⋅ ⋅ ⋅
+ ⋅ ⋅ ⋅
+ ⋅ &( )cs r
( ) ( )
( ) ( )( )
( ) ( )
( ) ( ) ( )
( ) ( )( )
( ) ( ) ( )
10 0
10
0 ( )
10 0
10
10
10
0 ( )
r rdqs r s r dqs
rr abcs r dqs
rdqs r
r rdqs r s r dqs
rr abcs r dqs
rr abcs r dqs
rr abcs r dqs
rdqs r
V P R P I
dP L P I
dt
V P R P I
dP L P I
dtd
P L P Idt
dP L P I
dt
θ θ
θ θ
λ
θ θ
θ θ
θ θ
θ θ
λ
−
−
−
−
−
−
= ⋅ ⋅ ⋅
+ ⋅ ⋅ ⋅
+
= ⋅ ⋅ ⋅
+ ⋅ ⋅ ⋅
+ ⋅ ⋅ ⋅
+ ⋅ ⋅ ⋅
+
&
&
Aplicación de la transformación de Park a las ecuaciones del motor
( ) ( ) ( ) ( ) ( )
( ) ( )( )
( ) ( )
1 1
1
1
0 0 0 0 00 0 ; 0 0 30 0 0 3 0
0 0 0
3 30 0
2 23 3
0 02 2
0 03 3
02
s
r s r s s r abcs r r B
s r B
A Br abcs r r ls
A Bls
ls
A Br abcs r
rd
P R P R r P L P Ldt
r L
L LdP L P L
dtL L
L
LL L
P L P
θ θ θ θ ωω
θ θ ω
θ θ
− −
−
−
⋅ ⋅ = = ⋅ ⋅ =
⋅ ⋅ = ⋅ − + + − +
⋅ ⋅ = + 0 ( )
00 ; 0
23 3
0 02 2
rls dqs r
r mA B
ls
L
L LL
λω λ
+ =
− +
&
Anexo A
Pág. 80
Finalmente se obtiene un sistema de ecuaciones con las propiedades deseadas, las cuales eran:
hacer desparecer los términos que dependen del ángulo θr (que es variable en el tiempo), los
valores de las tensiones y las corrientes son constantes y no variables, el sistema de
ecuaciones pasa a ser lineal por lo tanto más manipulable. En definitiva se cumplen los dos
objetivos principales que eran encontrar un sistema de ecuaciones lineal y sobretodo obtener
una ecuación del par con forma sencilla, ya que el problema del par constante ya se analizó y
quedó resuelto. Obsérvese que el único término que no había aparecido hasta el momento es
? r, éste término tan solo es la derivada de θr.
A partir de ahora se trabajará con todas las variables referidas a los nuevos ejes 0, d y q que
son los ejes que permiten la simplificación de todo el análisis, pero toda transformación
necesita de una antitransformada para obtener los valores reales de las variables, más adelante
se verá de que se trata esta antitransformada.
Aplicación de la transformación de Park a las ecuaciones del motor
( )
0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0
3 ;
2
s ls
d s d d d r q d
q s q q q r d q r m
d ls A B q
v r i L i iv r i L i L iv r i L i L i
L L L L L L
ωω ω λ
= ⋅ + ⋅ + − ⋅ +
= + + =
&&&
( )32ls A BL L+ −
• Desaparecen los términos que dependen del ángulo• Tensiones y corrientes pasan a ser valores constantes• Sistema de ecuaciones manipulable y analizable• Se puede calcular el par de forma sencilla
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 81
Con el sistema de ecuaciones tan sencillo que queda se pueden obtener tres ecuaciones bien
sencillas de analizar, por lo tanto ya no hemos de trabajar con matrices, que como ya se ha
comentado anteriormente facilita las tareas en diferentes ámbitos. Además estas ecuaciones
representan un circuito equivalente muy sencillo de analizar. Los subíndices s indican que las
Ecuaciones y circuito equivalente
0 0 0r r rs s s ls s
r r r rds s ds d ds r q qs
r r r rqs s qs q qs r d ds r m
dv r i L i
dtd
v r i L i L idtd
v r i L i L idt
ω
ω ω λ
= +
= + −
= + + +
Ldrs+
-
+-
ηrLqirqsvr
ds
Lqrs+
-
+ -
ηrLdirdsvrqs
+
-
ηrηm
Obtención de la expresión del par
( )
( ) ( )( ) ( ) ( ) ( )( )( )2 2
2 2
pérdidas en los conductores para conversión variación de la energía almacenada
32
3 3 32 2 2 2 2
r r r re ds ds qs qs
r rds qsr r r r r
e s ds s qs d q r m qs d q ds qs
p v i v i
i id dp r i r i L L i L L i i
dt dtω λ
= +
= + + + + + − 144424443
1444442444443
( )( )( )( )( )
de energía
3;
2 232 2
r r rem rm e r m qs d q ds qs r rm
r r re m qs d q ds qs
np T i L L i i
nT i L L i i
ω ω λ ω ω
λ
= = + − =
= + −
1444442444443
Anexo A
Pág. 82
tensiones y corrientes son del estator, y los superíndices r quieren decir que todo está
referenciado al rotor (θr) o con la transformación de Park aplicada.
En la transparencia anterior se ha mostrado el desarrollo de la expresión del par. Como bien se
sabe el par se obtiene a partir de la potencia, por lo tanto el primer término obtenido es la
potencia desarrollada la cual se calcula multiplicando cada corriente y cada tensión de cada
fase; la corriente en el eje 0 vale cero por este motivo no aparece en la expresión.
Después de analizar a que corresponde cada término se llega a la conclusión de que el término
que no contempla la potencia debida a las resistencias, pues son perdidas, y el que no
contempla la variación temporal de las intensidades con el tiempo, pues es la variación de la
energía magnética almacenada, resulta ser el término de la conversión de la energía eléctrica
en energía mecánica.
Finalmente tan solo se ha de escoger la última parte de la expresión de la potencia y dividirla
por la velocidad angular mecánica del motor y de esta forma se obtiene la expresión del par
Te. Se recuerda la ? rm es la velocidad mecánica del rotor, la ? r es la omega eléctrica del
rotor o estator, ya que es un motor sincrono, y la n es el número de polos (no el de pares de
polos) que relaciona estas dos ? . El valor de 3/2 se obtiene por los cálculos numéricos
realizados en la transformación de Park la cual no es ortonormal, por lo tanto no se conserva
Expresión del par
• El par sólo depende de los parámetros y de las corrientes de la máquina
• El par es proporcional a las corrientes id y iq• Hay par creado por el imán y par reluctante
( )( )32 2e m q d q d q
nT i L L i iλ= + −
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 83
la potencia pero si que se conserva el módulo de los vectores tensión y corriente ya que la
matriz de la transformación es ortogonal.
Analizando la expresión del par se puede apreciar que el par tan solo depende de parámetros
físicos del motor y de las corrientes del mismo, además de ser proporcional a éstas. Pues se
tiene par creado por el imán y par creado por la reluctancia, denominado reluctante. La parte
correspondiente a λm es la parte del par creado por el imán, y la demás es la parte del par
reluctante.
Todo el análisis de las ecuaciones se ha realizado para el motor de polos salientes, que es un
caso general. Se particularizará el análisis al motor de polos lisos, caso particular del motor de
polos salientes, y además es el motor que se utilizará en el control vectorial durante las
sesiones de prácticas. El motor de polos salientes resulta que físicamente tiene unas
características constructivas muy concretas que desvelaran las claves del control. Pues en este
tipo de motor resulta ser que e2 es cero, por lo tanto Ld = Lq.
Particularidades del motor SPMSM
( ) ( )
2
0 1
2
0 2
1 2min max min max
2
12 2
1 1 1 1 1 1; 02 2
3 3 ;
2 2
sA
sB
d ls A B q ls A B
NL rl
NL rl
g g g g
L L L L L L L L
πµ ε
πµ ε
ε ε
=
=
= + = − =
= + + = + −
qr
dr
N
N
N
N
N
N
N
N
SS
S
S S S
S
S
Estator
Rotor
Imanes permanentes
Ranuras para los devanados
Motor de polos lisos
Anexo A
Pág. 84
En un motor de polos lisos ya se ha explicado que se cumple que Ld=Lq, por lo tanto según la
nueva expresión del par los parámetros a controlar serán iq y id. Tan solo se tiene que
controlar que id sea cero y que el valor de iq sea el adecuado para obtener el valor deseado del
par. El valor de id tan solo interesa que sea mayor que cero en casos donde interese que la
velocidad de giro del motor esté por encima de la nominal, pero para realizar esto también es
necesario debilitar el campo del imán. Obsérvese que en la nueva ecuación de par no hay par
reluctante, justamente es la parte que diferencia esta ecuación con la ecuación de par obtenida
en el caso genérico.
Después de todo el desarrollo de las ecuaciones se ha logrado definir una estrategia de control
o al menos se sabe que variables se han de controlar en el control de este motor. A
continuación esquematizaremos el control a aplicado sobre este motor que se desarrollará en
las prácticas.
Particularidades del motor SPMSM
• En un motor SPMSM Ld=Lq.
• La estrategia de control es controlar iq, para controlar el par, y controlar id=0
• No hay par reluctante• Si id>0 se debilita el campo del imán y se puede
aumentar la velocidad de giro por encima de la nominal
( )32 2e m q
nT iλ=
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 85
En esta transparencia se puede observar el control implementado en forma de esquema de
bloques. Los niveles indican el progreso del control, ya que se irán implementando diferentes
controles, empezando desde el sistema en lazo abierto (nivel 1) y acabando con un control
total de velocidad y posición (nivel 5).
El modulo SVPWM es el encargado de calcular y proporcionar los tiempos de obertura de los
transistores para crear las tensiones que se le han de aplicar al motor en cada una de las fases
(a, b, c). Se puede observar que del valor de estar tensiones se pueden obtener los valores de
las corrientes y tratarlas mediante las ecuaciones y las transformaciones de park y clarke para
obtener las corrientes que se han de controlar mediante módulos PID. Mediante este proceso
se puede controlar el par proporcionado, el cual se ha de adecuar al ángulo θr impuesto. Como
último paso del control, se añade al motor un encoder que medirá el valor exacto de θr y de la
velocidad, pues con esta medida se podrá realizar un control de la velocidad al igual que del
par mucho más preciso ya que se trabaja con el ángulo real medido.
Es recomendable que llegados a este nivel se reflexione y se vuelva a leer todo lo anterior,
pensando aquellos puntos que no hayan quedado claros, pues proseguir sin tener claro todo
podría crear aún más confusión. Aquella persona que comprenda el desarrollo realizado
deberá entender perfectamente el esquema del control mostrado en est
El control vectorial del motor PMSM
Anexo A
Pág. 86
A.2.4. CDM2480: la plataforma de trabajo
En el siguiente apartado se presenta la plataforma de trabajo con la que se realiza el control
vectorial. A continuación tan solo se presenta la fotografía de una parte del testbed, pues en si
se trata de la plataforma con que se trabajará. Es la parte más importante de todo el testbed, y
esta compuesta por la placa CDM2480 (Control De Motores 24 V 80 W) y la placa DSK
TMS320F2812 (starter kit).
La fotografía muestra la parte más importante y tangible de la plataforma, que va a realizar el
control del motor que se encuentra situado en la parte inferior derecha de la fotografía. El
motor de la casa Maxon es del tipo brushless. Al lado derecho del este según la fotografía se
situa el enconder incremental mencionado anteriormente.
También se pude distinguir en la fotografía dos partes muy diferenciadas del testbed: el
circuito impreso inferior que es la parte de potencia (CDM2480) y el circuito impreso
inmediatamente superior a éste que es la parte del control (DSK TMS320F2812). Claramente
se puede apreciar que el circuito inferior es la interfaz de potencia entre el DSP y el motor.
Dispone de la circuiteria necesaria para completar la plataforma integral del control de
motores. La placa CDM2480 está dividida básicamente en dos partes: la primera es la
encargada de suministrar la tensión y corriente necesaria al motor para que este gire de forma
CDM2480: la plataforma de trabajo
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 87
adecuada, y la segunda es la encargada de medir tensiones y corrientes en los bornes del
motor y suministrar estos datos de forma correcta para que el DSP los pueda entender bien.
La primera parte, la de potencia, tiene tres elementos básicos: el bus de continua, los drivers y
el puente trifásico de transistores. El bus de continua está formado básicamente por una
batería de condensadores electrolíticos, capaces de suministrar los picos de corriente que el
puente trifásico demande y que la fuente de alimentación no pueda aportar. Además, dispone
de algunos elementos de autoprotección para hacer más robusto el sistema. El puente trifásico
está formado por seis transistores MOSFET a forma de puente trifásico normal y corriente.
Los drivers son los encargados de adaptar las señales de conmutación provenientes del DSP,
con niveles lógicos, a niveles entendibles por los transistores.
Por lo que respecta a las medidas, hay que decir que se miden gran cantidad de variables, para
poder implementar los algoritmos más dispares. Se mide tensión y corriente del bus de
continua, y tensión y corriente de cada fase del motor. Además, la medida de la corriente del
bus de continua tiene una función de protección. Cuando la corriente del bus de continua
supera un límite, automáticamente los drivers abren todos los transistores, y se informa al
DSP de lo ocurrido. Esto previene de cortocircuitos en las fases, que podrían destruir los
condensadores del bus y los transistores.
Para la medida de tensiones se han escogido simples divisores resistivos, que es un método
muy simple de medir la tensión, así como barato. Para las corrientes, tanto de fase como de
bus, se han escogido shunts, resistencias de pequeño valor óhmico en serie con la corriente
que se quiere medir.
El circuito superior (DSK TMS320F2812) es donde se ubica el procesador, es decir el DSP,
por lo tanto se pude observar que el zócalo que es donde se ubica dicho DSP es la parte que
ocupa más superficie de la placa. Además, se ha de prestar atención al puerto paralelo que
será el que proporcione el camino para la comunicación entre el ordenador y el DSP, y así
poder introducir el código deseado.
La placa incorpora todos los elementos auxiliares que necesita el dispositivo DSP para
funcionar, como por ejemplo el oscilador y las fuentes de alimentación, con la estabilización y
secuenciación necesaria en el arranque. Además, incluye la electrónica necesaria para el
depurado en tiempo real del programa. Esta electrónica incluye memoria RAM para la carga
Anexo A
Pág. 88
rápida del código y una CPLD (Complex Programable Logic Device) que implementa las
funciones lógicas necesarias para la comunicación entre el DSP y el PC, que servirá como
estación de trabajo para las tareas de programación y depuración.
Otros componentes del testbed no incluidos en la fotografía, pero que juegan un papel
secundario e imprescindible para el control son los siguientes: el PC, las fuentes de
alimentación y el software.
El PC es un ordenador personal con las prestaciones de cualquier ordenador actual que
disponga de un puerto paralelo mediante el cual se transmitirá el código programado al DSP y
se visualizará la información recibida de la plataforma.
En la plataforma se utilizarán dos alimentaciones bien diferenciadas. La primera corresponde
a la alimentación de la parte del control, tiene un valor constante de 5 voltios. La segunda es
la alimentación de la parte de potencia, que se efectúa con una fuente de tensión variable de 0
a 24 voltios, la cual dispone también de un limitador de corriente necesario durante la
realización de cualquier práctica sobre la plataforma.
El software utilizado es el Code Composer que será el entorno de programación utilizado por
nuestro DSP para poder programar, depurar y visualizar en tiempo real las variables del
control vectorial implementado.
En esta transparencia se han introducido muchos elementos, conceptos y palabras que
sobresalen de toda la teoría expuesta hasta el momento, por ello se intentarán aclarar lo
máximo posible todos aquellos términos nuevos Es evidente que el objetivo del libro de
prácticas es aclarar en todo lo posible los conceptos mínimos para no ir sin ningún
conocimiento al laboratorio, pues de esta forma el rendimiento es mayor en el limitado
número de horas disponibles.
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 89
Necesidades para el control
• Puente trifásico, con su respectivo driver• Medida de las tres corrientes de fase• Medida de la velocidad y posición con encoder
incremental con señal de índice
Con
desn
ador
es b
us D
C
Medida de corriente Motor Encoder
Driver
Driver
Driver
Driver
Driver
Driver
Medida de la corriente
•La medida del corriente de fase se hace con shunt• Shunt: resistencia de muy bajo valor óhmico (0.05 ohm)•La caída de tensión en bornes del shunt es proporcional a la corriente
Anexo A
Pág. 90
En las dos transparencias anteriores se puede encontrar resumida la función de la placa
inferior de la fotografía de la plataforma de trabajo. Básicamente la placa inferior es la que
realiza la parte más directa del control. El control se realiza con un puente trifásico que
aplicará las tensiones necesarias a cada fase. Cada conjunto transistor MOSFET y diodo del
puente trifásico dispone de un driver que se encarga de aplicar en el MOSFET una tensión
entre 0 y 15 voltios entre la puerta y el surtidor de cada transistor. Ésta es la complicada tarea
del driver ya que el DSP tan solo proporciona una tensión de salida entre 0 y 3,3 voltios,
tensión que se ha de convertir al rango del motor.
Para que el control vectorial sea satisfactorio, ya se sabe que no tan solo se han de aplicar las
tensiones adecuadas al motor, sino que hay que realizar otros pasos para completar el control.
Como por ejemplo las medidas de las corrientes de las tres fases y la medida de la posición y
la velocidad del rotor. Llegado a este punto ya es debería de saber y entender el porque es
necesario estas medidas, sino es así, se recomienda volver a leer todo el desarrollo de las
ecuaciones del motor.
La medida de las tres corrientes se realiza con un shunt, que es una resistencia de un valor
óhmico muy bajo. La caída de tensión en bornes del shunt es proporcional a la corriente. La
medida de la posición del rotor y la velocidad se realiza con un enconder incremental con
señal de índice, que más adelante se verá como funciona.
A continuación se explicará uno de los elementos más importantes en el control, se trata del
DSP o Procesador Digital de señal. Este elemento, como bien se puede deducir, viene a ser el
cerebro de todas las operaciones. Si se compara con un ordenador sería como la CPU, pero en
este caso es una CPU especifica y diseñada para múltiples aplicaciones, dentro de las cuales
esta el control vectorial de los motores. El DSP se encuentra situado, si se observa la
fotografía de la plataforma de trabajo, dentro del zócalo o habitáculo que está en la placa
superior de la plataforma. Éste habitáculo es de color negro y ocupa un gran volumen pero
permite, gracias al zócalo que incorpora, extraer el DSP siempre que se desee. En definitiva el
DSP que se utilizará es un chip no integrado en la placa, sino un chip extraíble.
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 91
DSP TMS320F2812
•Procesador digital de señal (DSP) de 32 bits coma fija•Opera a 150 MHz•Capaz de multiplicar y acumular en un único ciclo• Incorpora periféricos específicos para el control de motores (PWM, QEP, ADC) y para comunicaciones (SPI, SCI, CAN)
Arquitectura TMS320F2812
Memory Bus
128Kw Flash+ 2Kw OTP
4Kw Boot ROM
18Kw RAM
Code security
XINTF
32-bitRegister
FileReal-Time
JTAG
32-bitTimers (3)
C28xTM 32-bit DSP
32x32-bitMultiplier
R M WAtomic
ALU
Interrupt Management
Event Mgr A
Event Mgr B
12-Bit ADC
Watchdog
GPIO
McBSP
CAN 2.0B
SCI-UART A
SCI-UART B
SPI
Peripheral B
us
Anexo A
Pág. 92
En las dos transparencias anteriores se explican todas las características importantes del DSP.
El DSP TMS320F2812 es el dispositivo más potente de la familia C2000 de Texas
Instruments de DSP orientados al control de procesos. Incorpora un núcleo de arquitectura
Harvard de 32 bits a 150 MHz, capaz de ejecutar funciones MAC (Multiply and Acumúlate)
en un solo ciclo de trabajo. Además, incorpora todos los periféricos necesarios para el control
de motores: generadores de señales PWM (Pulse Width Modulation) con tiempo muerto,
conversores A/D (Analogic to Digital converter) y capturadotes para encoder, además de
algunas funciones de protección para el convertidor.
Incorpora memoria Flash para el código y memoria RAM (Random Acces Memory) para las
variables. También incorpora una pequeña memoria ROM (Read Only Memory) donde se
albergan los modos de arranque y unas tablas para el cálculo matemático de algunas funciones
mediante interpolación numérica.
Como periféricos de comunicación incorpora controladores para distintos estándares de
comunicación, como puede ser UART (Universal Asynchronous Receive and Transmit),
CAN ( Controller Area Network) y McBSP (Multichannel Buffered Serial Port). En este
dispositivo concreto, además, el bus de direcciones y de datos es accesible, con lo que se
pueden ampliar sus recursos de forma casi infinita.
Pero los periféricos que interesan más en este caso, como ya se ha dicho antes, son tres: los
generadores de señales PWM, los conversores A/D y los capturadores para encoder. Los
generadores de señales PWM y los capturadores para encoder están englobados en lo que se
llaman Event Manager. El TMS320F2812 dispone de dos Event Manager, el A y el B. Cada
uno de ellos funciona como una unidad independiente, capaz de generar sus interrupciones, y
gestionar todos sus recursos. Tanto el A como el B funcionan de la misma manera, con lo que
con un solo DSP es posible controlar dos motores a la vez. Los Event Managers disponen de
dos Timers de 16 bits, con los que se generan las bases de tiempo, tanto para los registros de
comparación como para el capturador del encoder.
Tres registros de entrada (CMPR1, CMPR2 y CMPR3) generan las seis señales
complementarias 2 a 2 y se añade un tiempo muerto totalmente programable, desde 0 µs hasta
12 µs. Además, dispone de una señal de entrada de fallo del convertidor que
automáticamente, y sin uso de la CPU, pone en alta impedancia las seis salidas PWM y
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 93
genera una interrupción software, que permite gestionar el fallo de forma rápida y segura para
el entorno.
El capturador para el encoder funciona de forma muy sencilla. Se limita a medir el tiempo
entre dos pulsos consecutivos provenientes del encoder. Dispone de una lógica interna para
descodificar el sentido de giro.
El conversor A/D es de 12 bits y dispone de dos S/H (Simple and Hold). La entrada analógica
tiene un margen dinámico de 0.0 V a 3.0 V, y es capaz de operar a 12.5 MSPS
(MegaSamplesPerSecond, millones de muestras por segundo) , velocidad suficiente para esta
y muchas aplicaciones de control de procesos industriales. Tiene varios modos de
funcionamiento y de sincronización con otros periféricos, en especial los Event Managers,
con lo cual se pueden muestrear las señales en el instante adecuado sin necesidad de usar la
CPU para nada.
Anexo A
Pág. 94
A.2.5. La coma fija y el formato Q(x)
El objetivo de este apartado es aprender los conocimientos básicos del modo de trabajo
interno del procesador DSP. Se explicarán las herramientas básicas con las que agilizar la
comprensión del funcionamiento de la plataforma y en particular del DSP y sus perifericos.
Los DSPs utilizan la coma fija por razones tan concretas como: menor complejidad de la
arquitectura del procesador, cálculos más rápidos y un bajo coste en la fabricación de los
DSP. Pero los DSPs tienen problemas a tener en cuenta como son: el overflow (exceso del
rango de bits disponibles al realizar una operación matemática), errores de cuantificación
(imposibilidad de tener un rango de valores con la precisión deseada debido al limite del
número de bits), tiene un rango limitado pues no es posible representar números grandes y
pequeños con la misma representación (al operar un número grande con otro pequeño, el
pequeño siempre se considera despreciable).
Éste último problema planteado es resuelto con el formato Q(x). En las próximas
transparencias será descrito el proceso que resuelve el problema que plantea la utilización de
DSP como procesador de cálculo.
La coma fija y el formato Q(x)•Los DSPs usan representación en coma fija por varios motivos:- Menor complejidad del procesador- Rapidez en los cálculos- Bajo coste
•Presenta algunos problemas a tener en cuenta:-Overflow- Errores de cuantificación- Tiene un rango limitado. No es posible representar números grandes y pequeños con la misma representación
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 95
Representación binaria coma fija
• Complemento a uno
Rango: [0,16]• Complemento a dos. Números con signo
Rango: [-8,7]
91008212020211001 0123 =+++=⋅+⋅+⋅+⋅⇒
71008212020211001 0123 −=+++−=⋅+⋅+⋅+⋅−⇒
Complemento a dos
• Normalmente se usa la representación en complemento a dos• Proporciona la capacidad de operar los números con signo• La ALU del DSP puede operar con números en complemento a dos
Anexo A
Pág. 96
En la primera transparencia de la página anterior se presentan dos ejemplos de la
representación binaria en coma fija. La diferencia entre los dos recae en el rango de datos
obtenido. Si se utiliza complemento a uno el rango tan solo engloba números positivos y si se
utiliza complemento a dos se obtiene un rango con números positivos y negativos. La longitud
del rango tan solo depende del número de bits, en el caso de los ejemplos el número de bits es
de 4, y la longitud del rango consta de 16 números naturales en complemento a uno.
En la segunda transparencia, se indica la elección de una de las dos representaciones, la cual
es complemento a dos. Esta representación permite operar los números con signo y la ALU
del DSP es capaz de operar números en complemento a dos.
Formato Q(x)•Permite la representación de números pequeños, incluso decimales• Se basa en desplazar la coma binaria hacia la izquierda• Es un simple reescalado de los números para entenderlos mejor• Permite trabajar en p.u.
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 97
El formato Q(x) es una herramienta que solventa el problema planteado, al inicio de este
apartado, utilizando la técnica de desplazar la coma binaria hacia la izquierda. Normalmente
se dispone de un número de bits concreto y limitado, por ejemplo el DSP utiliza 32 bits. La
limitación del número de bits puede ser compensada con esta herramienta ya que permite la
creación de diferentes rangos de números en función de donde se introduzca la coma binaria.
Con el formato Q(x) se pueden representar números pequeños, incluso decimales, ya que lo
único que realiza es un reescalado dentro del rango de bits disponible. La técnica Q(x)
permite trabajar en p.u. ya que ahora se pueden representar valores pequeños sin sufrir los
problemas presentados anteriormente.
Con un ejemplo se entenderá mejor el procedimiento del formato Q(x). Si se dispone de 4
bits, se pueden obtener 4 rangos distintos en función de la posición de la coma binaria. Por lo
tanto el valor de la x tan solo indica la posición de la coma binaria. Se recuerda que siempre
se trabaja en complemento a dos.
De esta forma se ha conseguido tener diferentes rangos pero con el mismo número de bits,
permitiendo elegir en que rango se incluirá un número decimal para que su precisión sea la
mejor. El formato Q(x) no aumenta la precisión de los números de cada rango, sino que
obtiene diferentes rangos que permite ser más preciso al elegir un rango que represente un
número decimal con el menor error posible.
Rango en Q(x)
• Siempre se tienen el mismo número de bits pero en rango distinto
• No se aumenta la precisión de los números
]875.0,1[)3(]75.1,2[)2(
]5.3,4[)1(]7,8[)0(
bits 4
−⇒−⇒−⇒−⇒
QQQQ
Anexo A
Pág. 98
Como bien se mencionaba anteriormente, la x tan solo indica la posición de la coma binaria.
Se observa en la transparencia que la misma secuencia de bits representa diferentes números
en función del formato Q(x) elegido.
Representación en Q(x)
• La misma secuencia representa varios números en función de la posición de la coma binaria
875.0100,1
75.110,01
5.31,001
7,1001
)3(
)2(
)1(
)0(
−⇒
−⇒
−⇒
−⇒
Q
Q
Q
Q
Operaciones en formato Q(x)
• Al hacer las operaciones (suma, producto,…) hay que tener en cuenta donde tenemos la coma binaria• Suma: la coma binaria tiene que estar en la misma posición en los dos operandos
(2)
(1)
1 0, 0 11.75 1 0, 0 1
0 0, 1 0 1.250.5 0 0 0, 1 1 0, 1 1
Q
Q
− ⇒⇒ + ⇒ −
⇒
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 99
Las operaciones en formato Q(x) tan solo necesitan un requisito el cual es tener en cuenta
donde esta la coma binaria de cada número, antes de operar con otro número. Tan solo se
pueden operar (sumar, restar, multiplicar,…) los números que tengan el mismo formato Q(x).
En la suma se tiene que transformar el número que esté en el formato Q(x), de inferior valor x
que el resto, al formato Q(x) de valor más alto, consiguiendo que la coma binaria este en la
misma posición en todos los operandos.
En la multiplicación no se ha de realizar la misma transformación que en la suma, pero el
resultado de la operación tendrá el formato Q(x), suma de las dos x de los operandos. La
multiplicación necesita el doble de bits para representar el resultado de la operación entre dos
operandos, tal que la suma de sus x sea mayor que el número de bits disponibles.
El formato Q(x) utiliza la misma filosofía a la hora de operar que cuando se hace con números
decimales, la única diferencia es el concepto utilizado en la representación de la coma y de los
números. Por lo tanto la comprensión del modo de operar no presenta ninguna dificultad
adicional una vez se ha conocido.
Operaciones en formato Q(x)• Multiplicación: el formato Q es la suma de las
dos x• Para representar el número en su totalidad
hacen falta el doble de bits
(2)
(1)
1 0, 0 11.75 1 0, 0 1
0 0 0, 1 0.8750.5 0 0 0, 1 1, 0 0 1
Q
Q
− ⇒⇒ × ⇒ −
⇒
Anexo A
Pág. 100
A.2.6. Code Composer Studio: el entorno de programación
El software que proporciona el fabricante para interaccionar con el DSP es el Code Composer
Studio. El mismo programa sirve para todas las familias de DSPs de Texas Instruments. El
Code Composer Studio forma lo que se llama un sistema integrado de desarrollo (IDE), ya
que desde él se puede escribir, compilar y cargar el código al DSP en C y en ensamblador.
Además, es una potente herramienta para el análisis y el depurado del código en tiempo real
mediante puntos de detención (breakpoints o interrupciones). Permite visualizar y modificar
variables internas en tiempo real sin detener la CPU.
Las funciones permitidas por el entorno tienen como objetivo facilitar la sintonización de los
valores influyentes en el control y el ajuste de los valores de los PID en tiempo real de la
forma más eficaz.
A continuación se muestra una imagen de la ventana del programa Code Composer, la cual a
su vez está dividida en diferentes ventanas que muestran la información necesaria para un
perfecto seguimiento del control. Se ruega prestar rigurosa atención a la ventana del programa
y a la explicación de la funcionalidad de cada una de ellas ya que será con el elemento que
más se interactúe durante la realización de las prácticas.
Code Composer Studio: entorno de programación
• El Code Composer Studio es un entorno integrado de trabajo que permite:- Editar, compilar y grabar el código (en C y en ensamblador)- Permite analizar y depurar el código mediante puntos de detención (breakpoints)- Permite la visualización y modificación de variables internas en tiempo real y sin detener la CPU. Hace mucho más sencillo la sintonización de los controladores
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 101
En la transparencia se puede ver el aspecto de la pantalla del CCS. Como se puede ver en la
parte de más a la izquierda de la transparencia, el CCS trabaja en entorno proyecto, con lo que
se puede dividir el código necesario en distintos archivos para una mayor claridad.
En la parte central hay tres ventanas que proporcionan tres tipos de información distinta. La
de más arriba es un archivo con el código que ha escrito el usuario, en este caso el programa
principal. La ventana del medio permite visualizar y modificar el valor de cualquier variable o
registro del DSP. De esta manera se pueden cambiar valores de referencia o sintonizar
controladores sin tener que compilar y grabar el código cada vez que se cambia el valor de la
constante. La ventana de más abajo muestra el código en lenguaje ensamblador y máquina, así
como la dirección en la memoria del programa donde está guardado el código. Esta ventana es
útil de cara a depurar un poco más el programa o para entender como trabaja el compilador de
C.
A la derecha hay tres ventanas con el fondo de color amarillo. En estas ventanas podemos ver
seis variables internas del DSP a tiempo real, con una frecuencia de muestreo de 20 kHz. En
la ventana central se puede ver el ángulo eléctrico de las tensiones del estator y el ciclo de
trabajo que se aplica a los transistores de la fase a. En la ventana de más abajo se pueden ver
las corrientes de las fases a y b. Además de estas funcionalidades básicas, el CCS presenta
Ventana principal CCS
Anexo A
Pág. 102
muchas más características que hacen de él uno de los entornos de desarrollo DSP más
completos del mercado.Todos estos elementos conforman la parte inteligente de la
plataforma. El estudiante debe conocer como funciona el propio DSP y también el entorno de
trabajo.
El programa Code Composer proporciona unas funciones concretas para poder acceder al
valor de cada uno de los registros. Como se indica en la transparencia, se ha de escribir dentro
del programa la secuencia en un orden, para acceder a los valores y leerlos o modificarlos. Se
pueden obtener los 32 o 16 valores de bits de todo el registro o un bit en concreto.
Acceso a los registros• Existe un conjunto de archivos que permite el acceso fácil a los registros: DSP281x Header File Package• NombrePeriférico.NombreRegistro.all
// Acceso a todo el registro (16 o 32 bits)•NombrePeriférico.NombreRegistro.bit.NombreBit
// Acceso a un bit del registro•Ejemplo:
AdcRegs.ADCTRL2.bit.RST_SEQ2 = 1;AdcRegs.ADCTRL2.all = 0x9000;
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 103
Librerías
• Texas Instruments proporciona numerosas librerías que implementan ya los módulos necesarios para multitud de aplicaciones• Librerías de cálculo matemático, para el control de motores, para análisis de la señal (FFT),...• Permiten programar una aplicación en forma de bloques modulares• El uso de estas librerías simplifica enormemente el tiempo de desarrollo
Estructura de los módulos
• Cada módulo está concebido como un objeto• Los módulos definen una estructura, que contiene las variables de entrada, las variables de salida, los parámetros del módulo, la llamada a la función de inicialización, y la llamada a la función de ejecución del módulo• Los parámetros están ya inicializados, pero pueden ser modificados• Esta estructura de programación orientada a objetos permite instanciar varias veces un mismo módulo y usarlos en tareas distintas (p.e. tres controladores PI en el control vectorial)
Anexo A
Pág. 104
Todas estas librerías están implementadas en lenguaje ensamblador o en C optimizado para el
compilador de forma que ocupe el mínimo espacio posible, y minimice el tiempo de
ejecución. El uso de estas librerías es muy sencillo, y aligera la carga de trabajo del estudiante
programador. Sólo hay que tener en cuenta que se trabaja en coma fija, y que hay que tener
cuidado con el escalado del número que se pasa a las funciones.
El contenido de las librerías son módulos o funciones, concebidos por el programa como
objetos que disponen de variables de entrada, de salida, los parámetros del módulo y la
función inicialización de este, así como la función ejecución. Cada módulo tiene los
parámetros ya inicializados pero se pueden modificar. La programación bajo estructuras como
las descritas permite utilizar un módulo repetidas veces en un mismo programa.
La librería llamada IQMath realiza cálculos matemáticos complejos, como atan, sin, cos, sqrt,
y conversiones de tipos de datos (por ejemplo: de float a int). Básicamente la librería esta
compuesta por funciones matemáticas que proporcionan un entorno de trabajo casi como si se
estuviera trabajando en coma flotante, esto muestra el grado de optimización de las funciones
proporcionadas por Texas Instruments.
IQMath Library
• Librería proporcionada por Texas Instrumentscon numerosas funciones matemáticas• Proporciona un entorno de trabajo casi como si estuviéramos trabajando en coma flotante• Funciones: sin, cos, atan, conversiones de tipo (de float a int), división, función inversa...
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 105
La librería llamada DMC, aporta las funciones básicas para el control de motores. Dentro de
estas funciones cabe destacar la transformada de Park, la inversa de Park y Clarke, los
controladores PI con anti wind-up, los generadores SVPWM, la medición de la velocidad a
partir de la señal proporcionada por el encoder, y otras, como por ejemplo generadores de
rampas, para ayudar al desarrollo de la aplicación final, sin olvidar las funciones que
gestionan los periféricos del DSP. El fabricante proporciona otras librerías con funciones
adicionales, pero que en este caso no interesan para la aplicación desarrollada.
DMC library
• Librerías proporcionadas por Texas Instrumentscon funciones específicas para el control de motores• Algunos módulos son sólo cálculos (SVPWM, PID, Park, Park inversa, Clarke, Cálculo de la velocidad), pero otros configuran y gestionan los periféricos del DSP (QEP, PWM Driver, medidas analógicas)
Anexo A
Pág. 106
A.2.7. Programación básica
Se realizará una práctica muy sencilla en la que se realizará una programación básica. El
objetivo de la práctica es ayudar a consolidar todos los conceptos adquiridos en el apartado
anterior.
La programación básica consiste en programar el encendido y apagado de un LED en función
del valor de una variable. El valor de la variable se modificará con el programa Code
Composer Studio en tiempo real para comprobar que la estructura del programa realiza
correctamente su funcionamiento.
La estructura del programa es la expuesta en la transparencia anterior. El único elemento
diferente a cualquier otra estructura de programación, es la configuración de interrupciones, la
cual se analizará durante la exposición de este apartado ya que es una de las partes más
importantes de cualquier programa que trabaje en tiempo real.
Programación básica
• Encender y apagar un LED en función del valor de una variable• Estructura del programa
Inicializar el sistemaConfigurar entradas/salidasConfigurar interrupcionesEjecutar bucle infinito
Modificar el estado del LED en función de una variable (activa)
• La variable la modificaremos con el CodeComposer Studio
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 107
El código del bucle tan solo modifica el valor del bit que controla el LED según el valor de la
variable activa. Si activa vale 1 el bit set se pondrá a valor 1 y el LED se encenderá, pero si
activa es cero el bit clear se activará y el LED se apagará.
Práctica LED variable
• El código a poner en el bucle infinito es:if(activa)
GpioDataRegs.GPFSET.bit.GPIOF14 = 1;else
GpioDataRegs.GPFCLEAR.bit.GPIOF14 = 1;
• Declaración y inicialización de variables:Dec_Ini_Vars.c
• Declaración global de las variables y lasestructuras:
CITCEA.h
Procedimiento de la práctica
1. Enchufar sólo la fuente de 5 V2. Arrancar el Code Composer Studio con el icono3. Abrir el workspace GPIO.wks: des de la barra de
menús ir a File->Workspace->LoadWorkspace-> GPIO.wks
4. Compilar y cargar el programa con el botón Rebuild All5. Ejecutar el programa con el botón Run6. Cambiar el valor de la variable activa de 0 a 1 para
apagar y encender el LED
Anexo A
Pág. 108
Para realizar la práctica del LED Variable se han de seguir los pasos especificados en la
transparencia anterior. Los dibujos de los iconos ayudan a localizar dentro del programa el
botón apropiado para realizar cada acción. Finalmente se ha de ir cambiando el valor de la
variable de 0 a 1 para apagar y encender el LED.
Una interrupción es una rutina que interrumpe la ejecución del bucle principal (acciones no
prioritarias y sin frecuencia fija) para realizar otra acción que se considera prioritaria. Una vez
la interrupción ha acabado su tarea, se vuelve al programa principal para continuar
aplicándolo desde el punto donde se había dejado. Las interrupciones son provocadas por
eventos, que normalmente son timers, es decir, cada cierto tiempo se programa el
lanzamiento de la interrupción. En el caso del control vectorial que se realizará en la
plataforma, la interrupción que lanza todos los pasos del control se realiza cada 50 µs (a una
frecuencia de 20 kHz). Las interrupciones pueden ser programadas síncronas o asíncronas.
Para entender mejor el proceso de la interrupción basta con observar el diagrama de bloques
representado en la transparencia e imaginarse el control que se realizará sobre la plataforma,
el cual está dentro del bloque de interrupción. Dentro del bloque bucle principal no habrá
nada, ya que tan solo se está programando el control, aunque si se deseara se podrían
programar tareas concretas a realizar por el motor.
Concepto de interrupción• Rutina que interrumpe la
ejecución del bucle principal• Un evento (Timer, fin de
conversión, externo,…) provoca el salto a la rutina de la interrupción
• El bucle principal se interrumpe, pero no se perturba los resultados del código implementado
• Las interrupciones pueden ser síncronas o asíncronas
Inicializaciones
Bucle principal Interrupción
Evento
Retorno al punto del bucle principal donde se produjo
la interrupción
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 109
La aplicación de la interrupción permite reaccionar rápidamente sobre posibles alteraciones
sobre el sistema, ya sea por causa de eventos internos, como externos. La interrupción se
puede programar de forma periódica y sincronizada para realizar las tareas del control
consideradas importantes. Además posibilita la implementación de rutinas de control en
tiempo real.
A continuación se describirá como aplicar el concepto de interrupción a la práctica del LED
realizada anteriormente. Con la modificación introducida se facilitará la comprensión de lo
explicado, por lo tanto se ruega prestar atención a este apartado, así como volver a repasar el
concepto de interrupción, ya que el control explicado en las prácticas se basa principalmente
en las interrupciones, pues son las que se encargan de aplicar el control. Si existe algún
problema en el control, se deberá revisar la interrupción.
Aplicaciones de las interrupciones
• Permite reaccionar de forma rápida a eventos internos y externos• Permite la ejecución de una rutina de forma periódica (Timer) y sincronizada• Posibilita la implementación de rutinas de control en tiempo real
Anexo A
Pág. 110
El objetivo de la nueva configuración de la práctica del LED, es hacer que el LED se apague y
se encienda a una frecuencia fija. Se consigue realizar este proceso con una interrupción que
incrementará el valor de un contador, a partir del cual se decida el estado del LED.
Se pretende que el LED esté encendido 500 ms y 500 ms apagado. Para realizar esta acción se
Práctica LED variable con interrupciones
• Encender y apagar un LED a una frecuencia fija• Estructura del programa
Inicializar el sistemaConfigurar entradas/salidasConfigurar interrupcionesConfigurar temporizadores del sistema (Timer0)Ejecutar bucle infinito
Modificar el estado del LED en función del valor de un contador
Rutina de interrupciónIncrementar el contador
Especificaciones, rutinas y variables
• El LED tiene que estar 500 ms encendido y 500 ms apagado• La rutina de interrupción interrupcio_Timer0 se ejecuta a 1 kHz. Se usa esta interrupción como base de tiempo•Un contador (cont_T0) se incrementa dentro de la rutina
1 _ 0 1000s cont T⇒ =
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 111
dispone de un contador que será incrementado cada vez que la interrupción se ejecute. La
interrupción se ejecuta a 1 kHz, por lo tanto cada 1 ms el contador se incrementará en 1 ms
hasta llegar a 1 segundo, que es cuando se volverá a poner a cero el contador. La interrupción
se usa como base de tiempo, es decir como timer.
En los gráficos mostrados en la transparencia se observa la evolución del LED en función de
la evolución del contador. Mientras Cont_T0 (contador) sea inferior a un valor de 500 ms, el
LED permanecerá encendido, y a partir de 500 ms el LED, permanecerá apagado. Al llegar a
1000 ms, es decir al segundo, el proceso volverá a comenzar de nuevo. De esta forma se crea
la intermitencia del LED.
Se observan los nombres de tres variables usadas en el cuerpo de la programación: Ton que es
una constante de valor 500 ms, Periode que es una constante de valor 1000 ms y cont_T0 que
es el contador que varía entre el valor de 0 ms y 1000 ms.
Evolución del Timer0 y del LED
1000 = Periode
0
cont_T0
500 = Ton
LED on LED off
Anexo A
Pág. 112
Código a implementar en el bucle principal
if (cont_T0 < Ton){
GpioDataRegs.GPFSET.bit.GPIOF14 = 1;}else{
GpioDataRegs.GPFCLEAR.bit.GPIOF14 = 1;if (cont_T0 >= Periode){
cont_T0 = 0;}
}
Código a implementar en la interrupción
Sólo hace falta incrementar el contador cont_T0
cont_T0++;
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 113
Como se muestra en las transparencias, el cuerpo del programa es muy sencillo y similar al
inicial, la única diferencia es que en este caso la interrupción controla la variable que hará
encender el LED. Cada 1kHz se ejecutará el código de la interrupción que incrementará la
variable contador (cont_T0) en 1 ms. En el bucle principal del programa es donde se realiza la
acción de poner en activo el bit que controla el LED. Mientras cont_T0 sea menor que 500 ms
la función set continuará con valor 1 y en el momento que se supere el valor de 500 ms se
ejecutará la función clear que pondrá el valor del bit a cero, apagando el LED. Además en el
cuerpo principal se realiza la puesta a cero del contador al llegar al valor 1000 ms. Con este
ejercicio tan sencillo se ha creado un LED intermitente utilizando el concepto de interrupción.
Finalmente, tan solo queda aplicar el programa explicado para comprobar que realmente
funciona. Los pasos a seguir son los mismos que en la práctica anterior del LED, pero se
recuerdan en la transparencia. La única variación es el nombre del archivo donde está
almacenado el programa. Es aconsejable realizar las modificaciones propuestas en el punto 6
para entender mejor el funcionamiento de la interrupción.
Procedimiento de la práctica
1. Enchufar sólo la fuente de 5 V2. Arrancar el Code Composer Studio con el icono3. Abrir el workspace LEDInt.wks: des de la barra de
menús ir a File->Workspace->LoadWorkspace-> LEDInt.wks
4. Compilar y cargar el programa con el botón RebuildAll
5. Ejecutar el programa con el botón Run6. Cambiar el valor de las variables Periode, y Ton
para variar la frecuencia y el tiempo de encendido del LED
Anexo A
Pág. 114
A.2.8. Control V/f en lazo abierto
Llegados a este punto ya se puede empezar a programar el control vectorial. Se empezará por
hacer girar el motor en lazo abierto y por experimentar los efectos de las tensiones
transformadas sobre el motor.
Comparando el esquema de bloques de este apartado, con el esquema de bloques presentado
en el apartado de las ecuaciones del motor, se observa que el lazo de control aún no está
cerrado. Con ésta práctica se pretende explicar y entender cual es la función de cada uno de
los módulos que representa el esquema, para finalmente poder cerrar el lazo.
En este punto hay que hacer notar que el motor brushless es autopilotado y que, por tanto, a
medida que aumenta la velocidad se pierde el sincronismo y el motor deja de girar. Este hecho
hace necesario medir la posición del rotor para no perder el sincronismo y que el rotor pueda
girar a cualquier velocidad.
A continuación se analizará cada uno de los módulos, tanto de la parte software como de la
parte hardware, y se explicará lo necesario para entender el control vectorial aplicado sobre el
motor, así como los parámetros con los que se puede interactuar en el control utilizando el
Control V/f en lazo abierto
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 115
programa Code Composer Studio. No se dejarán de lado las explicaciones de puesta en
marcha y parada de la plataforma de trabajo.
Módulo Park inversa• Transforma las variables de la referencia en
sincronismo a la referencia estacionaria
cos sin
sin cosd r q r
d r q r
f f f
f f fα
β
θ θ
θ θ
= ⋅ − ⋅
= ⋅ + ⋅
Módulo Park inversa
Entradas• de: componente del
eje d• qe: componente del
eje q• ang: ángulo de fase
entre la referencia estacionaria y la que gira en sincronismo
Salidas• ds: componente del
eje α• qs: componente del
eje β
Anexo A
Pág. 116
El módulo Park inversa es el primer módulo que se encuentra en el esquema de bloques del
control mirando la primera línea en sentido de izquierda a derecha. Este módulo es una
función que realiza en parte el paso inverso a la transformada de Park, ya que tan solo se
invierte el giro realizado con la transformada de Park (si no se recuerda el funcionamiento de
la transformada de Park se aconseja consultar el apartado de Ecuaciones del Motor).
Dentro del código implementado con el software, la función se llama ipark. Ésta transforma
las variables (las tensiones Vd i Vq según el esquema del control) de la referencia en
sincronismo con el rotor a la referencia estacionaria (ejes α y β).
El módulo Park inversa además de la función ipark dispone de las variables de entrada y
salida necesarias. Las de entrada son: las componentes de la variable en ejes d y q junto con el
ángulo entre la referencia estacionaria y la que gira en sincronismo (recordar que era θr). Las
de salida son: las componentes de la variables en los ejes de la referencia estacionaria α y β.
Se recuerda que las tensiones Vα y Vβ, que serán la salida de éste módulo, corresponden a
dos ondas de tensión sinusoidales que se han de transformar en un nuevo sistema trifásico de
tensiones que se adapte a la nuevas condiciones calculadas por el control para hacer girar el
motor de la forma adecuada.
Módulo SVPWM
• SVPWM: Método de modulación basado en los 8 estados posibles de los seis interruptores del puente• Genera menos harmónicos y usa de forma más eficiente la tensión del bus DC• Las entradas son las tensiones vα y vβ, y las salidas los ciclos de trabajo de las tres fases
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 117
El siguiente módulo es el denominado Space Vector Pulse Width Modulation (SVPWM).
Calcula los ciclos de trabajo de los interruptores de cada fase (Ta, Tb, Tc), que se utilizarán en
el siguiente módulo para poder calcular la onda sinusoidal, que se ha de aplicar en cada una
de las fases del motor. Es un método de modulación basado en los 8 estados de los seis
interruptores del puente. La innovación que presenta frente otras técnicas es que genera
menos harmónicos y usa de forma más eficiente la tensión de bus DC.
A continuación se explica en detalle el funcionamiento interno del módulo. Se recuerda que
las variables de entrada son las de salida del módulo anterior (Park Inversa), es decir, las
tensiones Vα y Vβ. Y las variables de salida los ciclos de trabajo de los interruptores.
En la transparencia anterior se esquematiza el convertidor con los interruptores. Cada rama de
cada tensión dispone de dos interruptores complementarios entre sí, por lo tanto, tiene dos
estados posibles. En global se deduce que el convertidor tiene 8 estados posibles.
Obsérvese la situación de las diferentes tensiones Va, Vb, Vc y la tensión VDC así como el
punto neutro y la nomenclatura de los interruptores. Se recuerda que el módulo SVPWM tan
solo calcula el tiempo de obertura y cierre (ciclos de trabajo) de cada uno de los interruptores
del siguiente módulo.
El convertidor y sus posibles estados
• Los pares de interruptores son complementarios: si el de arriba está cerrado, el de abajo está abierto
• Cada una de las ramas tiene dos estados posibles• El convertidor tiene un total de 23=8 estados posibles
a
a’
b c
b’ c’
AB
C
vavbvcn
VDC/2
VDC/2
Anexo A
Pág. 118
Estados y tensiones del convertidor
00000V7111
0-VDCVDCV6101
VDC-VDC0V5100
VDC0-VDC0V4110
0VDC-VDCV3010
-VDCVDC0V2011
-VDC0VDC0V1001
00000V0000
vcavbcvabvcnvbnvanvβvαVectorcba
2DCV− 2
DCV− 2DCV−
0 0
2 1 13 2 2
2 3 33 2 2
a b c
a b c
b c
v v v v
v v v v
v v v
α
β
= + + =
= − ⋅ − ⋅
= ⋅ − ⋅
2DCV
2DCV− 2
DCV−23 DCV
2DCV
2DCV
2DCV−3
DCV3
DCV
2DCV− 2
DCV2
DCV−3DCV−
3DCV
2DCV− 2
DCV2
DCV23 DCV−
2DCV− 2
DCV− 2DCV
3DCV− 3
DCV−
2DCV
2DCV− 2
DCV3
DCV3
DCV−
2DCV
2DCV
2DCV
a
a’
b c
b’ c’
AB
C
vavbvcn
VDC/2
VDC/2
Hexágono de tensiones
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 119
Las dos transparencias anteriores exponen el concepto con el que trabaja el módulo SVPWM.
La primera transparencia muestra una tabla divida en diferentes grupos de datos. El primer
grupo de datos muestra el estado lógico de cada interruptor a, b, c y evidentemente de su
complementario. El siguiente grupo tan solo da nomenclatura a cada fila de la tabla para
relacionar cada estado del convertidor con un vector en concreto. El grupo de valores Vα y
Vβ se obtiene a través de las fórmulas de la transformada de Clarke ya conocidas y expuestas
en el lateral de la transparencia.
El resto de la tabla es el cálculo del conjunto de tensiones Van, Vbn, Vcn y el conjunto Vab,
Vbc, Vca. Este cálculo se obtiene mirando el estado del convertidor y la tensión de bus que
recibe cada fase respecto el neutro o fase-fase.
La segunda transparencia es una representación gráfica de los diferentes vectores V0 a V7 en
el plano. Para poder dibujar el hexágono de tensiones tan solo hay que representar los valores
Vα y Vβ en los ejes α y β y en el plano. En el gráfico se ha añadido al lado de cada vector el
valor lógico del estado de cada par de interruptores.
Con el análisis realizado en la tabla se ha conseguido relacionar las tensiones Vα y Vβ con las
tensiones Va, Vb y Vc, en los 8 estados del convertidor. El módulo SVPWM a partir de
cualquier valor de las tensiones Vα y Vβ puede obtener una combinación de interruptores que
creen las tensiones Va, Vb y Vc correctas. El objetivo del módulo es calcular el tiempo de
apertura y cierre de cada uno de los interruptores para poder crear Va, Vb y Vc conociendo
Vα y Vβ y utilizando tan solo los vectores del V0 al V7 que son los únicos que se pueden
obtener con un valor exacto.
La forma de calcular el tiempo de apertura y cierre es ponderando el valor de las tensiones V0
a V7 con el tiempo de apertura y el total del ciclo de tal forma que el vector Va, Vb y Vc
obtenido al transformarlo en el vector Vα y Vβ sea igual que el vector obtenido en el módulo
Park Inversa.
Anexo A
Pág. 120
Crear la tensión deseada• El SVPWM consiste en sintetizar el vector tensión que se desea aplicar al motor usando únicamente los ocho estados del convertidor• Para ello se usan los dos vectores adyacentes y los dos vectores nulos
Crear la tensión deseada
T/2 T/2
0 0,V t 1 1,V t 2 2,V t 7 7,V t 7 7,V t 2 2,V t 1 1,V t 0 0,V t
a
b
c
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 121
En definitiva el vector tensión que se desea aplicar al motor se ha de obtener a partir de los
ocho estados del convertidor.. Para crear un vector V con componentes Vα y Vβ se utilizarán
los dos vectores adyacentes y los dos vectores nulos. Los vectores adyacentes serán aquellos
vectores que rodeen al vector V en el dibujo del hexágono de tensiones, por lo tanto, serán de
V1 a V6. Y los vectores nulos serán V0 y V7.
En la última transparencia expuesta, se representa un vector V que tiene V1 y V2 como
vectores adyacentes, por lo tanto se utilizarán junto con los vectores nulos para obtener V. El
trabajo del módulo SVPWM es calcular los tiempos t0, t1, t2 y t7 tal que la media ponderada
de las tensiones V0, V1, V2 y V7, con sus respectivos tiempos, y el tiempo de ciclo T, den
como resultado la tensión V. Si se analiza gráficamente la última transparencia se observa que
una vez calculados los tiempos t0, t1, t2 y t7, si se dividen estos tiempos entre el periodo y se
multiplican por los vectores correspondientes V0, V1, V2 y V7, se obtienen unos vectores que
sumados gráficamente dan como resultado el vector V.
El gráfico que muestra el estado de los interruptores y el tiempo de cada estado está divido en
la mitad del periodo, pues así se consigue reducir los harmónicos y gastar menos energía, ya
que tan solo cambia de estado un interruptor en cada cambio de t.
Módulo SVPWMEntradas• Ualfa: componente
del eje α• Ubeta: componente
del eje β
Salidas• Ta: ciclo de trabajo
de la fase a• Tb: ciclo de trabajo
de la fase b• Tc: ciclo de trabajo
de la fase c
Anexo A
Pág. 122
El módulo SVPWM tiene como entradas los componentes de los ejes α y β del vector V y
como salidas los ciclos Ta, Tb y Tc de trabajo de cada una de las fases. Ta, Tb y Tc
corresponden al tiempo total que están abiertos los interruptores de cada fase respecto al
tiempo de ciclo T, por lo tanto Ta, Tb y Tc se obtienen de la suma de los diferentes ti.
Pulse Width Modulation• PWM es una forma de representar una señal como una secuencia de pulsos- Frecuencia portadora fija- Amplitud de pulso fijo- Anchura de pulso proporcional a la
amplitud de la señal que se quiere representar
- Energía del PWM ≈ Energía del señal
Pulse Width Modulation
Tt
RepresentaciRepresentacióónn PWMPWM
tSeSeññalal originaloriginal
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 123
El siguiente módulo es el denominado Pulse Width Modulation (PWM) y se encarga de crear
las tensiones sinusoidales Va, Vb y Vc que se aplicarán al motor. PWM significa representar
una señal como una secuencia de pulsos que tienen las siguientes características: frecuencia
portadora del pulso fija (cada periodo T se aplica un pulso), amplitud del pulso fija, anchura
del pulso proporcional a la amplitud que se quiere representar y la energía del PWM es
aproximadamente igual a la energía de la señal.
En la última transparencia presentada se muestra un esquema del proceso que realiza el
módulo PWM. El objetivo es obtener una señal sinusoidal a partir de una secuencia de pulsos
con las características mencionadas anteriormente. Para hacer la modulación por amplitud de
pulso (PWM) de una señal, se compara esta señal con un señal triangular de frecuencia fija, la
portadora. El resultado de esta comparación es la señal PWM.
En realidad, el módulo PWM está basado en comparadores, ya que calcula los valores a poner
en los comparadores a partir de los ciclos de trabajo ya calculados. Éste módulo hace de
interfaz entre la parte software y hardware, ya que genera las señales que van a parar a los
drivers, los cuales adaptan la tensión a aplicar en cada transistor MOSFET.
Comparadores PWM• Este módulo calcula los valores a poner en los comparadores a partir de los ciclos de trabajo calculados anteriormente• Hace de interfaz entre la parte software y la parte hardware. Genera las señales que van a parar a los drivers
Anexo A
Pág. 124
El módulo comparadores PWM tiene como entradas los ciclos de trabajo de cada transistor
obtenidos en el módulo SVPWM y como salidas proporciona las señales de excitación de
cada uno de los seis transistores MOSFET que aplicarán las tensiones Va, Vb y Vc al motor.
Comparadores PWMEntradas• Mfunc_1: ciclo de trabajo
de las salidas PWM 1 y 2 (fase a)
• Mfunc_2: ciclo de trabajo de las salidas PWM 3 y 4 (fase b)
• Mfunc_3: ciclo de trabajo de las salidas PWM 5 y 6 (fase c)
Salidas• PWM1/PWM2: señales de
excitación de los transistores de la fase a
• PWM3/PWM4: señales de excitación de los transistores de la fase b
• PWM5/PWM6: señales de excitación de los transistores de la fase c
Medida de corrientes y tensión de bus
• Este módulo realiza la conversión analógica-digital de dos corrientes de fase y la tensión del bus de continua• Se pueden programar las ganancias y el offset de cada una de las medidas
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 125
El módulo de medidas de corriente y tensión de bus permite obtener el valor en digital de las
corrientes ia e ib, además del valor de la tensión de bus, gracias a que realiza la conversión
analógica-digital. Físicamente es el módulo ADC. Además se pueden programar las ganancias
(permite reescalar pero en este caso no se utiliza) y el offset (valor que devuelve el ADC
cuando sabe que pasan 0 A, normalmente se ha de corregir este valor) de cada una de las
medidas.
Para realizar la medida de corriente es necesario ajustar externamente la señal analógica de la
tensión medida por el shunt al rango de 0 a 3 V, ya que los pines del ADC tan solo aceptan
este rango positivo de trabajo. La tensión en bornes del shunt es muy pequeña y además puede
ser positiva y negativa, por este motivo se ha de ajustar. El conversor de 12 bits que dispone
el ADC devuelve un número justificado a la izquierda. Al devolverlo justificado a la izquierda
se obtiene un valor de 16 bits que tan solo hay que convertirlo a formato Q(15) con la función
XOR para tener la misma escala (mitad negativos y mitad positivos) que todos los números
con los que se trabaja en el control implementado. El registro donde el ADC guarda el valor
de corriente convertido es de 16 bits pero luego el programa lo convierte a 32 bits para poder
ser tratado en el DSP.
Medida de corrientes• Los pines del ADC aceptan tensiones de 0V a
3V• Hay que ajustar externamente la señal
analógica a este rango
0+
-
0 V
1.5 V
3 V
Anexo A
Pág. 126
Medida de corrientes• El conversor de 12 bits devuelve un número
justificado a la izquierda (0000h-FFF0h)• Este valor es convertido a un número en Q15
0.0 V
FFF0h
0000h 8000h
0000h
7FF0h3.0 V
8000hXOR #8000h
Medida de tensión de bus• La tensión de bus sólo es de signo positivo. No
hace falta sumar un offset analógico a la señal• La tensión del bus también es un número en
Q15
0.0 V
FFF0h3.0 V
8000h
SFR(SXM=0)
0000h
7FF8h
4000 h
0000 h
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 127
A diferencia de la medida de la corriente, en la medida de la tensión de bus no hace falta
sumar a la señal analógica ningún offset ya que la tensión de bus siempre es positiva, y por lo
tanto, está adaptada al rango positivo de tensiones de los pines del ADC. Como la tensión de
bus también es un número en formato Q(15) es necesario transformarlo al igual que la
corriente.
El módulo medida de corriente y tensión de bus como entradas tiene las señales analógicas de
corriente de cada fase y tensión de bus, y como salidas proporciona el valor medido en
formato digital de cada una de las señales anteriores.
Medida de corriente y tensión de bus
Entradas• ia: corriente de la fase a• ib: corriente de la fase b• Vdc: tensión del bus de
continua
Salidas• Imeas_a: valor medido
de la corriente de la fase a
• Imeas_b: valor medido de la corriente de la fase b
• Vdc_meas: valor medido de la tensión del bus de continua
Anexo A
Pág. 128
El módulo Clarke aplica la transformada de Clarke a las corrientes medidas con el módulo
anterior. La tarea del módulo es transformar las tres corrientes de fases estacionarias a un
sistema trifásico ortogonal también estacionario.
Módulo ClarkeEntradas• as: medida de fase a• bs: medida de fase b
Salidas• ds: componente del
eje α• qs: componente del
eje β
Módulo Clarke• Transforma las tres corrientes
de fase estacionarias a un sistema trifásico ortogonal también estacionario
0
00
23
a b c
a
b a
i i ii
i ii i
i
α
β
+ + ===
⋅ +=
Clarke
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 129
Las entradas del módulo son las corrientes medidas de la fase a y b, ya que la fase c se puede
obtener a partir de la fase a y b según la teoría, y las salidas que proporciona son dos
corrientes sinusoidales con componentes en los ejes α y β para cada una de ellas.
Módulo Park• Aplica un giro de ángulo θr al sistema trifásico ortogonal
entorno al eje 0.• Transforma las variables de la referencia estacionaria a
la referencia en sincronismo con el rotor
cos sin
sin cosd r r
q r r
f f f
f f fα β
α β
θ θ
θ θ
= ⋅ + ⋅
= − ⋅ + ⋅
Módulo ParkEntradas• ds: componente del
eje α• qs: componente del
eje β• ang: ángulo de fase
entre la referencia estacionaria y la que gira en sincronismo
Salidas• de: componente del
eje d• qe: componente del
eje q
Anexo A
Pág. 130
El módulo Park es el encargado en aplicar el giro con ángulo θr entorno al eje 0 (eje
perpendicular al papel) al sistema de vectores resultante del módulo Clarke. Con el giro
transforma las variables de la referencia estacionaria a la referencia en sincronismo con el
rotor. Las entradas son los componentes del eje α y β de la variable y el ángulo de fase entre
la referencia estacionaria y la que gira en sincronismo. Las salidas son las componentes d y q
de la variable.
El módulo Ángulo es el que se encarga del control y generación del ángulo θr. Al estar en
lazo abierto se ha de proporcionar un ángulo manualmente, ya que es necesario para que el
sistema y el control funcionen. Cuando el lazo se cierre, este ángulo será el ángulo real leído
del rotor.
Mediante una rampa se simula el ángulo del rotor que va de cero a 360 grados. Si se varía la
frecuencia de la rampa de la consigna velocidad se variará la velocidad del motor. La
consigna velocidad también tiene forma de rampa para que no varíe bruscamente.
Control y generación del ángulo
• Genera una rampa que simula el ángulo del rotor (de 0º a 360º, 0000h a FFFFh)• De esta rampa se puede variar su frecuencia, o sea, la velocidad del motor• La consigna de velocidad se modifica en forma de rampa, y no bruscamente
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 131
Con este esquema se recuerdan los elementos del testbed con los que se tratará a
continuación, ya que a partir de este momento se describen los pasos para poner en
funcionamiento la plataforma de trabajo y empezar a utilizar el control en lazo abierto.
Plataforma para el control de motores
Puerto paralelo
Encoder
PC
Fuente alimentación 24V
(PSU)
CDM2480+ DSK
Fuente alimentación 5V
Procedimiento práctica 11. Mantener la PSU apagada2. Enchufar sólo la fuente de 5 V3. Arrancar el Code Composer Studio con
el icono4. Abrir el workspace pmsm.wks: des de la
barra de menús ir a File->Workspace->Load Workspace-> pmsm.wks
Anexo A
Pág. 132
Procedimiento práctica 15. Compilar y cargar el programa con el botón
Rebuild All6. Activar el Real Time Monitor: Debug > Real-
time Mode. Pulse Sí cuando aparezca la ventana:
Procedimiento práctica 17. Ejecutar el programa con el botón Run8. Seleccionar la pestaña BUILD2 en la
ventana Watch Window. Y con el botón derecho del mouse habilitar el Continous Refresh
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 133
El procedimiento descrito se ha de realizar de la misma forma en cada práctica en la que se
trabaje con la plataforma y no es recomendable alterar el orden de los pasos. A continuación
se detallan otros aspectos del uso del programa que pueden ser útiles:
No olvidar de conectar el cable de puerto paralelo.
En el paso número 4 se ha de prestar antención al código que aparece en este archivo,
ya que es el código de control, expuesto en las dos transparencias siguientes, que mas
adelante se tendrá que modificar.
Para compilar todo el programa se puede hacer desde el menú siguiendo: Menu >
Project > Rebuild All, o se puede compilar tan solo la parte que ha sido cambiada
desde la ultima compilación siguiendo: Menu > Project > Build o con el icono
Incremental Build.
Para activar el funcionamiento del DSP (ejecutar el programa) seguir los siguientes
pasos desde el menú: Menu > Debug > Run o pulsar la tecla F5.
Procedimiento práctica 1
9. Activar el Continous Refresh también para las tres ventanas gráficas
10. Encender la fuente de alimentación PSU11. Poner la variable enable_flag a 1. Y el
motor empieza a girar
Anexo A
Pág. 134
La Power Supply Unit (PSU) es la fuente de alimentació regulable de 0 a 30 V y
con limitación de corriente. El valor de uso en el CDM2480 es de 24 Voltios y ha de
estar limitada a 1 A para proteger el motor y la plataforma.
Código implementado
rc1.target_value = _IQ(speed_ref); // target_value is in IQrc1.calc(&rc1);
rg1.rmp_freq = rc1.setpt_value;rg1.calc(&rg1);
ilg2_vdc_vcon1.read(&ilg2_vdc_vcon1);ilg2_vdc_vcon1.Imeas_a = ilg2_vdc_vcon1.Imeas_a - ilg2_vdc_vcon1.Imeas_a_offset;ilg2_vdc_vcon1.Imeas_b = ilg2_vdc_vcon1.Imeas_b - ilg2_vdc_vcon1.Imeas_b_offset;
clarke1.as = _IQ15toIQ((long)ilg2_vdc_vcon1.Imeas_a);clarke1.bs = _IQ15toIQ((long)ilg2_vdc_vcon1.Imeas_b);clarke1.calc(&clarke1);
park1.ds = clarke1.ds;park1.qs = clarke1.qs;park1.ang = rg1.rmp_out;park1.calc(&park1);
Código implementado
ipark1.de = _IQ(Vd_testing);ipark1.qe = _IQ(Vq_testing);ipark1.ang = rg1.rmp_out;ipark1.calc(&ipark1);
svgen_dq1.Ualfa = ipark1.ds;svgen_dq1.Ubeta = ipark1.qs;svgen_dq1.calc(&svgen_dq1);
pwm1.Mfunc_c1 = (int)_IQtoIQ15(svgen_dq1.Ta); // Mfunc_c1 is in Q15pwm1.Mfunc_c2 = (int)_IQtoIQ15(svgen_dq1.Tb); // Mfunc_c2 is in Q15 pwm1.Mfunc_c3 = (int)_IQtoIQ15(svgen_dq1.Tc); // Mfunc_c3 is in Q15pwm1.update(&pwm1);
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 135
En las transparencias anteriores se ha expuesto el código del control. Se han de observar las
diferentes variables de entrada y salida, así como las llamadas a las funciones de los diferentes
módulos explicados durante la descripción de este apartado.
El código implementado ha sido incluido para habituar al lector al entorno de programación
utilizado en el control y para situar las variables importantes que se modificarán y se
estudiarán su comportamiento durante la realización de la práctica.
Las variables importantes son las que se deberán modificar, a fin de comprobar la tarea que
realizan y el efecto que crean sobre el motor. Las observaciones a realizar en la ventana
Watch Window cuando se modifiquen las variables importantes son las siguientes:
La variable speed_ref modifica la velocidad de giro del motor, por lo tanto se debe modificar
dentro del rango suministrado cada vez que se quiera cambiar la velocidad del motor.
La variable rc1.rmp_dly_max modifica el pendiente de la rampa de aceleración y
desaceleración. Su rango de valores va desde 0 a 100, siendo el 0 el valor que provoca el
cambio de velocidad más rápido, por el contrario el 100 es el más lento. El efecto de
modificar esta variable se aprecia al modificar la variable speed_ref, porque se observará
como la velocidad varia más rápidamente o lentamente.
Variables importantes
• La variable speed_ref modifica la velocidad de giro del motor (Rango: -0.4 a 0.4)
• La variable rc1.rmp_dly_max modifica la rampa de aceleración y desaceleración (Rango: 0 a 100)
• Las variables Vd_testing y Vq_testing son las tensiones en ejes d y q que se impone
Anexo A
Pág. 136
Las variables Vd_testing y Vq_testing indican el valor de la tensión de los ejes d y q. Éstos
son valores que se imponen y por defecto Vd vale cero, ya que con el valor de la tensión
directa no se consigue par, y por lo tanto, si se quiere conseguir el par máximo el valor Vd ha
de ser nulo. Por otro lado se puede comprobar que si se aumenta el valor de Vq, el par
efectuado por el motor aumenta y por lo tanto parar el eje del motor con la mano cuesta más.
Es tarea del alumno, una vez conoce todas las variables, observar como el motor pierde
sincronismo, por lo tanto se vuelve inestable, al variar la velocidad angular, es decir la
speed_ref. Claro esta que esto sucede de esta forma y se cumple, siempre y cuando se realice
el cambio de speed_ref para una misma tensión y una misma carga. Lo interesante es poder
conseguir variar la velocidad y que el motor se inestabilice.
Una vez finalizada toda la sesión de prácticas es necesario desconectar el sistema siguiendo
los puntos especificados anteriormente. Se ruega seguir el procedimiento descrito para no
perjudicar ningún elemento de la plataforma. También se puede seguir este camino en el paso
de parar el DSP: Menú > Debug >Halt o pulsar MAYUS + F5.
Como conclusión, se recuerda que el objetivo de esta práctica era observar que el motor
brushless es autopilotado y que, por tanto, a medida que aumenta la velocidad, se pierde el
Procedimiento práctica 1
Procedimiento de parada del sistema de forma adecuada
12. Parar la fuente de alimentación PSU13. Parar el DSP con el botón 14. Parar el Real Time Monitor: Debug >
Real-time Mode15. Hacer un reset de la CPU: Debug >
Reset CPU
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 137
sincronismo y el motor deja de girar, debido a que es inestable. Este hecho hace necesario
medir la posición del rotor para no perder el sincronismo y que el rotor pueda girar a cualquier
velocidad.
Anexo A
Pág. 138
A.2.9. Lazo de par
Una vez hecho ya el primer contacto con el motor, en la sesión cuarta ya se debe poder cerrar
el lazo de par del control del motor, finalizando la primera etapa del control vectorial. El
ajuste de los controladores para ambas corrientes transformadas es el centro de esta sesión
práctica.
El siguiente paso del control es cerrar el lazo de par o de corriente, para ello se ha introducido
el módulo PID, que se encargará de comparar las corrientes medidas en la placa con el valor
de corriente de referencia.
Una vez hechas las pruebas necesarias para ver la diferencia entre el lazo abierto y el lazo
cerrado, se realizará el ajuste de los módulos PID siguiendo los pasos y consejos indicados en
el desarrollo de la práctica.
Lazo de par
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 139
Módulo PID
• Este módulo implementa un controlador PID con una precisión de 32 bits• Se puede usar como PI, PD o PID con sólo hacer cero la constante adecuada• Además incorpora anti-windup para evitar la saturación del integrador
Módulo PID
+
-
Ref
Fdb
eKp
1
iTdt∫
Tdddt
+
+
Kc
+
+
++
usat
-+
u
Anexo A
Pág. 140
El módulo PID implementa un controlador PID con precisión de 32 bits. Además permite
utilizarlo como PI, PD o PID, con tan solo hacer cero las constantes apropiadas. Incorpora un
elemento llamado anti-windup para evitar la saturación del integrador compensando más
rápidamente el error que va cometiendo y acumulando el integrador, de esta forma se
consigue un transitorio más rápido. Éste elemento se puede observar en la parte derecha del
diagrama de bloques del módulo PID.
Las variables de entrada del PID son el valor de referencia y el valor de realimentación, los
cuales se compararán para realizar el control. De salida proporciona la señal corregida a partir
de la comparación y los parámetros Kp, Ki y Kd junto con el Kc que corresponde al anti-
windup.
Módulo PIDEntradas• pid_ref_reg3: valor de
referencia• pid_fdb_reg3: valor de
realimentación
Salidas• pid_out_reg3: salida del
controlador PIDParámetros• Kp_reg3: constante
proporcional• Ki_reg3: constante integral• Kd_reg3: constante derivativa• Kc_reg3: constante de
corrección del integrador (anti-windup)
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 141
Para realizar esta práctica se ha de tener previamente el código necesario para cerrar el lazo de
par. Es tarea del alumno pensar el código necesario a partir del código utilizado en el lazo
abierto. Después tan solo se tiene que introducir el código mediante el programa Code
Composer.
El procedimiento de arranque a seguir es el mismo que la práctica anterior pero en el punto
donde se ha de seleccionar la pestaña Build2 en este caso ha de ser la pestaña build3. Una vez
puesto en funcionamiento todo el sistema, las pruebas que se pueden realizar son las
siguientes:
En este build también se puede cambiar el valor de las variables speed_ref y
Rc1.rmp_dly_max, al igual que en la práctica anterior. Siguen significando lo
mismo. Es interesante volver a cambiarlos para recordar su funcionamiento y ver
las diferencias, así como comprobar si aún hay pérdida de sincronismo. Nótese que
aún se sigue simulando el ángulo θr.
El valor de la corriente se podrá variar utilizando las variables Id_ref y Iq_ref, los
cuales se pueden variar desde 0 hasta 0,3. En este caso el valor de la corriente es
proporcional al par que suministra el motor, por lo tanto Id_ref será cero al igual que
en la práctica anterior lo era la Vd_testing ya que la componente directa no
Procedimiento práctica 2
• Incluir el código necesario para cerrar el lazo de par
• El procedimiento de arranque es el mismo que el caso anterior
• Seleccionar la pestaña BUILD3 en la ventana Watch Window. Y con el botón derecho del mouse habilitar el Continous Refresh
• Seguir el mismo procedimiento también para parar la plataforma
Anexo A
Pág. 142
proporciona par. Por el contrario si se aumenta el valor Iq_ref, se observa que el par
proporcionado por el motor aumenta, y por lo tanto cuesta más parar el eje del
motor. Se ha de jugar con los valores de Iref para comprobar los efectos explicados.
Ahora queda analizar los valores del módulo PID. Antes de empezar a ajustar los
valores del PID, se tienen que recordar algunos conceptos que vendrán bien a la hora
de decidir el camino para ajustar. La constante proporcional hace que el error del
sistema tienda a cero, se ha de intentar poner el valor más grande posible para hacer
rápida la respuesta, pero con precaución, ya que esto inestabiliza el sistema. La
constante integradora da idea de la evolución del error, es decir, cuánto se ha alejado
de la referencia. Sirve para eliminar el error en estado estacionario, pero puede
inestabilizar el sistema si acumula mucho error. La constante derivativa indica la
tendencia del sistema, pero si existe ruido de alta frecuencia puede inducir a errores.
En ámbitos industriales con aplicaciones de alta frecuencia, como el control vectorial,
hay que evitar ese ruido.
Por último, se recuerda que en este apartado se está modificando el PID para ver como
cambia la respuesta frente a una alteración externa o interna del par, así que se
recomienda ir modificando iq_ref o bloqueando el par, para ver si la respuesta del
sistema mejora con los nuevos valores del PID.
Finalmente, queda realizar el sintonizado de los PID o lo que habitualmente se conoce como
PID tuning. Actualmente existen varias técnicas para realizar el sintonizado, pero
desafortunadamente en la actualidad aún hay una técnica que predomina por encima de las
otras. Esa técnica es la denominada prueba y error, que como se supone consiste en ir
probando diferentes valores e ir descartándolos o mejorándolos según los resultados obtenidos
por pantalla con el programa de análisis, como puede ser el Code Composer. Ésta técnica es
poco científica y requiere mucho tiempo, pero es la que más se usa debido a la poca
documentación y enseñanza que existe sobre el PID tuning. Además de ser una técnica lenta,
requiere de una alta experiencia en el tratamiento con diferentes sistemas, ya que la única
herramienta en este caso es el conocimiento adquirido con la práctica.
Las demás técnicas son más científicas o lo intentan, ya que no siempre dan resultado. Hay
dos grupos principales que dividen las técnicas científicas: Open loop methods y Closed loop
methods. De los dos grupos, el primero es el más utilizado ya que es el más sencillo. Dentro
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 143
de este grupo se encuentran métodos como el Haalman o el Cohen-Coon, y dentro del
segundo grupo se encuentran métodos como el Ziegler-Nichols. Ninguno de los métodos
expresados aseguran que el resultado obtenido sea el óptimo o el correcto, por ello existen
programas o técnicas que se basan en utilizar más de 20 métodos a la vez para evaluar cual es
el mejor. Uno de estas técnicas es la denominada TOPAS que utiliza métodos como: Astrom,
Cohen-Coon, Chien-Hrones-Reswick, IMC, ITAE, etc.
Para concluir, tan solo decir que como se puede observar en la actualidad, no existe ningún
proceso concreto para el sintonizado del PID, así que se aconseja utilizar todos los caminos
presentados anteriormente. Se recomienda documentarse sobre el procedimiento seguido por
los métodos mencionados y utilizar la prueba y error de un modo más científico, buscando la
vía que reduzca el tiempo invertido en el PID tuning. En definitiva, se habla del PID tuning
como un arte y una ciencia, donde solo se puede usar como herramienta de batalla el
conocimiento y la experiencia si se tiene.
Anexo A
Pág. 144
A.2.10. Medida de la posición y la velocidad:
Módulo QEP y medida del ángulo
• Este módulo procesa las señales del encoder y devuelve la posición y el sentido de giro del rotor• Es la interfaz entre la parte hardware del capturador y el programa
Funcionamiento del encoder
QEP_AQEP_B
Una vuelta(360º mecánicos)
QEP_index
QEP_CLK
QEP_DIR
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 145
Para cerrar el lazo de velocidad es necesario utilizar un encoder y un módulo más para poder
medir el ángulo de giro y así calcular la velocidad. El módulo QEP (Quadrature Encoder
Pulse) del DSP se encarga de procesar las señales provenientes del encoder y proporcionar la
posición mecánica del rotor o ángulo de giro θ, junto con el sentido de giro. El módulo es el
nexo entre la parte hardware del capturador y el programa, ya que convierte las señales en
datos útiles para ser tratados digitalmente.
El encoder incremental (de impulsos) dispone de dos canales que permiten determinar la
posición del rotor de una forma más precisa, además de facilitar la determinación del sentido
de giro, ya que con un solo canal no se podría saber el sentido de giro. También proporciona
otros datos, como una señal índice que indica cuando se ha dado una vuelta entera. Se
recuerda que la posición eléctrica del rotor está relacionada con la mecánica a través del
número de polos.
La determinación del giro se realizará mediante un contador que se incrementará o no según
el grafo mostrado. Si el motor gira en un sentido la secuencia del grafo es diferente a si el
motor gira en el sentido contrario. La posición del canal B respecto del Canal A indica el
sentido de giro y hace variar la distribución de los estados indicados.
Determinación del sentido de giro
Ch. A
Ch. B
(00)
(10)
(11)
(01)
00
10
11
01
Decodificador de sentido de giro
Incrementa el contador
Decrementa el contador
Anexo A
Pág. 146
El módulo QEP tiene como entradas los dos canales de información (A y B) que suministra el
encoder, así como la señal de índice del encoder. Como salidas proporciona el ángulo
eléctrico del rotor y el sentido de giro del rotor en formato digital.
Módulo QEPEntradas• QEP_A: señal del
canal A del encoder• QEP_B: señal del
canal B del encoder• QEP_index: señal de
índice del encoder
Salidas• theta_elec: ángulo
eléctrico del rotor• dir_QEP: sentido de
giro del rotor
Cálculo de la velocidad
• La medida de la velocidad se realiza a partir de la información del ángulo y del sentido de rotación proporcionada por el encoder• El cálculo de la velocidad se realiza derivando el ángulo • Después se aplica un filtro pasa bajos para eliminar el ruido introducido en el cálculo de la derivada
r r
ddt
ω θ=
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 147
La velocidad se mide mediante la información del ángulo de giro que proporciona el encoder
junto con el módulo QEP y el sentido de giro. Derivando la posición del rotor se obtiene la
velocidad, y al final se aplica un filtro pasa bajos, para eliminar el ruido introducido por el
cálculo de la derivada.
El módulo de cálculo de velocidad necesita como entrada el ángulo del rotor, obtenido a partir
del módulo QEP, y además el sentido de rotación. Como salida proporciona la velocidad de
rotación del rotor.
Módulo de Cálculo de la velocidad
Entradas• theta_elec: ángulo
eléctrico del rotor• dir_QEP: sendito de
rotación del rotor
Salidas• speed_frq:
velocidad de rotación del rotor
Anexo A
Pág. 148
Ajuste del ángulo inicial• Como sólo se cierra el lazo de velocidad, hay que decirle al control en qué posición del rotor se da el ángulo cero• Para eso hay que ajustar la variable cal_angleen la ventana Watch Window hasta que el ángulo medido con el encoder esté retrasado 90ºrespecto al ángulo creado internamente• Después abrir el archivo f28xqep.h y modificar el valor por defecto del parámetro cal_angle
Ajuste del ángulo inicial• El ángulo varia entre 0 y
1 en Q15 (0-360º)• 90º es 0.25• Ajustar la variable cal_angle hasta que el ángulo medido esté 90ºgrados retrasado respecto el ángulo creado internamente
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 149
Si solo se cierra el lazo de velocidad, se tiene un problema ya que el control no sabe en que
posición del rotor se da el ángulo cero, pero si se cerrara el lazo de posición también, no
existiría este problema. Para solventarlo hay que ajustar la variable cal_angle hasta que el
ángulo medido con el encoder esté retrasado 90º respecto al ángulo creado internamente (el
ángulo magnético del rotor) , de esta forma se estará en la condición de par máximo. Una vez
se tiene el valor de la variable cal_angle, se debe modificar el archivo indicado en la
transparencia. En la ventana del Code Composer la gráfica mostrada ha de ser igual a la
representada en la transparencia para llegar a determinar el valor de cal_angle.
La explicación de este ajuste es la siguiente: hasta ahora, el campo magnético del motor se ha
generado sin tener en cuenta la posición real del eje de este, ya que se conseguía al arrancar
que el rotor se sincronizara con el campo magnético sin problemas. Pero si no se desea perder
sincronismo se debe medir la posición del rotor. Si ahora lo que se quiere es cerrar el lazo de
velocidad, se necesitará saber en todo momento la posición real del eje del motor. Esta
posición se leerá con el encoder, pero hará falta alinear la posición inicial medida en el
encoder con la posición real del eje magnético del imán del rotor. De esta forma se conseguirá
aplicar la iq con el ángulo correcto para que esté sobre el eje q.
Para sincronizar el ángulo medido con la posición real, será necesario desfasar 90º el ángulo
del rotor y del campo magnético del estator. En una de las ventanas se muestra la evolución
en el tiempo de las variables rmp_out (que es el ángulo que se impone para crear el campo
magnético en el estator) en el buff1 y la variable theta_elec (ángulo medido por el encoder del
eje del motor) en el buff2. Entonces, cambiando el valor de la variable cal_angle en la ventana
Watch Window, se podrá ir modificando el desfase entre los dos ángulos, hasta conseguir que
el ángulo medido en el encoder esté a 90º (0,25 en pu) avanzado respecto el ángulo del campo
magnético del estator. Una vez encontrado este valor de la variable cal_angle, solo se tendrá
que modificar su valor en el archivo include f28xqep.h, línea 64 parámetro 8:
#define QEP_DEFAULTS { 0x0, 0x0,0x0,0x0,0x0,0x00020C4A,4,1584,0x0,
Anexo A
Pág. 150
Antes de cerrar el lazo de velocidad, como ya se ha comentado se ha de realizar el ajuste del
ángulo inicial. Los pasos a seguir son los descritos en la transparencia anterior. Se recuerda
que la fuente de alimentación PSU se ha de poner a 24 V y con el limitador de corriente a un
amperio.
Éste era el paso previo a realizar antes de cerrar el lazo de velocidad. Claro está que este paso
se ha realizado con el mismo esquema que la última práctica, solo que se ha introducido la
parte del código necesaria para medir la posición y calcular el ángulo. Por lo tanto, en todo
momento el lazo de velocidad ha estado abierto, mientras que el de par cerrado. Ahora ya se
puede pasar a cerrar el lazo de velocidad.
Ajuste del ángulo inicial• Incluir el código necesario para medir la
posición y calcular la velocidad de giro• El procedimiento de arranque es el mismo que
el caso anterior• Seleccionar la pestaña BUILD4 en la ventana
Watch Window. Y con el botón derecho del mouse habilitar el Continous Refresh
• Seguir el mismo procedimiento también para parar la plataforma
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 151
A.2.11. Lazo de velocidad
Lazo de velocidad
Cerrar el lazo de velocidad• Incluir el código necesario para cerrar el lazo
de velocidad• El procedimiento de arranque es el mismo que
el caso anterior• Seleccionar la pestaña BUILD5 en la ventana
Watch Window. Y con el botón derecho del mouse habilitar el Continous Refresh
• Seguir el mismo procedimiento también para parar la plataforma
Anexo A
Pág. 152
Una vez entendido el funcionamiento del encoder y realizado el ajuste del ángulo inicial, se
puede pasar a cerrar el lazo de velocidad. El procedimiento a seguir es el mismo que en las
prácticas anteriores.
Este build level permite cambiar, igual que en los anteriores, la velocidad y aceleración el
motor a partir de los cambios de las variables Speed_ref y Rc1.rmp_dly_max desde la ventana
Watch Window.
Si el controlador de velocidad está ajustado correctamente, se aprecia como ahora el motor
tiene un comportamiento mucho más bueno y es más difícil pararlo, ya que se esta aplicando
un controlador de velocidad que intentará mantener la velocidad del motor igual que la
velocidad de referencia. Para conseguirlo, la fuente dará corriente hasta conseguir igualar las
velocidades consigna y real o hasta que se llegue al limite de corriente impuesto por la fuente.
No hace falta añadir un segundo controlar para obtener el valor de Id_ref ya que se considera
cero durante todo el control para conseguir un par máximo.
Otro de los objetivos de esta práctica es realizar un calibrado del controlador PID de
velocidad. El controlador comparará la velocidad de referencia que se desee obtener con la
velocidad real del eje obtenida con el encoder. El controlador obtendrá el valor de Iq que se
Ajuste PI velocidad
• Hacer Ki_s=0• Ver el error en régimen permanente. Observar que si se aumenta Kp_s, este error disminuye• Con un valor razonable de Kp_s, aumentar poco a poco Ki_s y observar, al provocar un escalón de consigna, el sobrepico, las oscilaciones, y el error estacionario
Metodología para la docencia del control vectorial de la máquina síncrona de imanes permanentes
Pág. 153
hade aplicar para obtener la velocidad deseada. Para realizar el calibrado se tienen que seguir
los pasos indicados en la transparencia anterior. Para modificar las constantes se tienen que
añadir al Watch Window.