Você está na página 1de 168

PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE

ESCUELA DE INGENIERIA


APLICACIN DE UN INVERSOR
MULTINIVEL COMO VARIADOR DE
FRECUENCIA DE UN MOTOR DE
INDUCCIN TRIFSICO
CRISTIAN MARCELO ELGUETA DAZ
Tesis para optar al grado de Magster en Ciencias de la Ingeniera
Profesor Supervisor:
JUAN W. DIXON ROJAS
Santiago de Chile, Julio 2005

PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE
ESCUELA DE INGENIERIA
Departamento de Ingeniera Elctrica

APLICACIN DE UN INVERSOR
MULTINIVEL COMO VARIADOR DE
FRECUENCIA DE UN MOTOR DE
INDUCCIN TRIFSICO
CRISTIAN MARCELO ELGUETA DAZ
Tesis presentada a la Comisin integrada por los profesores:

JUAN DIXON R.
HUGH RUDNICK
MATAS RODRIGUEZ
LUIS CONTESSE
Para completar las exigencias del grado de Magster en Ciencias de la
Ingeniera
Santiago de Chile, Julio 2005
ii
















A mis Padres.
iii
AGRADECIMIENTOS
Este trabajo representa el trmino de un proyecto que no hubiese podido
ser finalizado satisfactoriamente si no es por el apoyo y consejos de muchas
personas.
Quiero agradecer especialmente a mi familia y amigos, que nunca
dejaron de apoyarme durante estos largos aos de estudio. Gracias por la paciencia y
cario.
Especial mencin merece el Profesor Juan Dixon que gui el trabajo
realizado y, que gracias a sus consejos y conocimientos este proyecto pudo llegar a
un exitoso final.
A mis compaeros de laboratorio que siempre tuvieron la disponibilidad
de ayudar y aportar ideas en todos los problemas que se presentaron. En especial al
Ingeniero Micah Ortzar, quin aport con su experiencia y conocimientos en
muchos problemas a lo largo del desarrollo de esta tesis.
Finalmente quisiera agradecer la colaboracin de los funcionarios del
Departamento de Ingeniera Elctrica, especialmente a Eduardo Cea, que siempre
estuvo presente cuando se necesit su ayuda.




iv
NDICE GENERAL
AGRADECIMIENTOS .............................................................................................. iii
NDICE GENERAL.................................................................................................... iv
NDICE DE FIGURAS............................................................................................... vi
NDICE DE TABLAS................................................................................................. ix
RESUMEN................................................................................................................... x
ABSTRACT................................................................................................................ xi
I. INTRODUCCIN.............................................................................................. 1
1.1. Objetivos de la Tesis .................................................................................. 3
1.1.1. Origen de la Tesis ............................................................................ 3
1.1.2. Cobertura de la Tesis ....................................................................... 3
1.1.3. Organizacin de la Tesis.................................................................. 4
II. INVERSORES MULTINIVEL .......................................................................... 5
2.1. Caractersticas del Inversor Multinivel con puentes H en cascada. ........... 8
2.1.1. Modulacin de Voltaje................................................................... 10
2.1.2. Distribucin de Potencia. ............................................................... 12
2.1.3. Comparacin con Inversores de dos niveles.................................. 14
III. CONTROL DE MOTORES DE INDUCCIN ............................................... 16
3.1. Control Escalar o Volts Hertz ............................................................... 21
IV. SISTEMA DE CONTROL IMPLEMENTADO.............................................. 27
4.1. Caractersticas del inversor utilizado. ...................................................... 27
4.2. Sistema de Control. .................................................................................. 32
4.3. Software y Algoritmo de control.............................................................. 36
4.3.1. Caractersticas del DSP empleado y de la caja de control. ............ 37
4.3.2. Tabla de control y de funcin. ....................................................... 39
v
4.3.3. Programa de Control. ..................................................................... 45
4.4. Sensores utilizados y circuitos anexos. .................................................... 54
4.4.1. Sensor de Flujo .............................................................................. 54
4.4.2. Sensor de Velocidad ...................................................................... 55
V. RESULTADOS EXPERIMENTALES. ........................................................... 57
5.1. Pruebas sin Perturbaciones....................................................................... 58
5.2. Pruebas con Perturbaciones...................................................................... 59
VI. CONCLUSIONES Y TRABAJO FUTURO. ................................................... 61
BIBLIOGRAFA........................................................................................................ 63
A N E X O S............................................................................................................... 66
ANEXO A: Programa realizado en el DSP y Tablas. ................................................ 67
ANEXO B: Programa DSP externo para el ajuste de la seal del encoder.............. 101
ANEXO C: Clculo del tiempo muerto. .................................................................. 114
ANEXO D: Clculo del nmero de puntos de la sinusoide discretizada. ................ 116
ANEXO E: Hoja de datos del DSP TMS320F241................................................... 120
ANEXO F: Hoja de datos del Regulador TPS75925............................................... 134
ANEXO G: Hoja de datos del Regulador LM338 ................................................... 142
ANEXO H: Hoja de datos MOSFETS IRF540N..................................................... 146
ANEXO I: Hoja de datos MOSFETS IRFP250....................................................... 149
ANEXO J: Hoja de datos Driver IR 2113................................................................ 153


vi
NDICE DE FIGURAS
Figura II.1 Inversor de (a) 2 niveles, (b) 3 niveles, (c) m niveles. ....................................6
Figura II.2 Esquema Inversor Acoplado por Condensador. (a) Tres niveles. (b) Cinco
niveles. ............................................................................................................7
Figura II.3 Esquema de Inversor Acoplado por Diodo. (a) Tres niveles. (b) Cinco
niveles. ............................................................................................................8
Figura II.4 Inversor Multinivel del tipo puente H, con cuatro puentes...........................9
Figura II.5 Voltaje Modulado en amplitud, medio ciclo de la forma de onda. ................10
Figura II.6 Comparacin de las ondas de salida de inversores con 3, 11, 31 y 81
niveles. ..........................................................................................................11
Figura II.7 Frecuencias de Conmutacin de los cuatro puentes H del inversor de 81
niveles. ..........................................................................................................12
Figura II.8 Potencias entregadas por cada fuente DC del inversor. (a) Carga Resistiva.
(b) Carga inductiva (f.p. = 0.11)....................................................................13
Figura II.9 Comparacin de la onda de salida de corriente entre un inversor de 81
niveles y un inversor convencional de dos niveles con modulacin PWM
(carga inductiva)............................................................................................15
Figura III.1 Curvas de operacin de un motor de induccin con control de velocidad
por cambio en el nmero de polos. ...............................................................18
Figura III.2 Curvas de operacin de un motor de induccin cambiando el voltaje de
alimentacin. .................................................................................................19
Figura III.3 Puntos de operacin para un motor de induccin con control de velocidad
por frecuencia variable. El motor puede operar en cualquier punto de la
zona achurada. ...............................................................................................20

vii
Figura III.4 Curva de Operacin Tpica de un motor de induccin. ................................23
Figura III.5 Puntos de Operacin de un motor de induccin con control Escalar............24
Figura III.6 Esquema de un control Escalar en lazo abierto.............................................25
Figura III.7 Esquema de un control Escalar en lazo cerrado por control de frecuencia
de deslizamiento............................................................................................25
Figura IV.1 Distribucin de potencias para distintas frecuencias en un motor de
induccin de 3,7 KW.....................................................................................28
Figura IV.2 Circuito de fuentes DC y resistencias en paralelo. .......................................29
Figura IV.3 Resistencias instaladas para disipar la potencia cuando esta deba ser
absorbida por las fuentes DC. .......................................................................30
Figura IV.4 (a) Circuito Nuevas Fuentes DC. (b) Fuentes instaladas en el Inversor. ......31
Figura IV.5 Configuracin del Inversor Multinivel con un Motor de induccin de
devanados separaros. .....................................................................................32
Figura IV.6 Sistema de Control Implementado en lazo abierto. ......................................33
Figura IV.7 Sistema de Control Implementado en lazo cerrado, con realimentacin de
velocidad. ......................................................................................................34
Figura IV.8 Circuito equivalente del motor utilizado. .....................................................35
Figura IV.9 Velocidad del motor alimentado con un inversor ideal, utilizando el
sistema de control propuesto. ........................................................................36
Figura IV.10 Diagrama de puertos I/O en la tarjeta de control del inversor. ...................38
Figura IV.11 Configuracin de una fase del inversor. .....................................................40
Figura IV.12 Sinusoide Discretizada de la Tabla de Funcin. .........................................45

viii
Figura IV.13 Relacin entre el intervalo de interrupcin T1PR y la frecuencia de
salida de la sinusoide.....................................................................................52
Figura IV.14 (a) Circuito para ajustes del voltaje del sensor de flujo. (b) Placa con los
circuitos de ambos sensores. .........................................................................55
Figura IV.15 (a) Circuito Encoder. (b) Imagen del Encoder instalado. ...........................56
Figura V.1 Diagrama de conexiones del accionamiento. .................................................57
Figura V.2 Respuesta del sistema a un escaln de 450 [RPM]........................................59
Figura V.3 Respuesta del sistema a una perturbacin de carga. ......................................60
Figura VI.1 Diagrama de Flujo del Loop Principal, Interrupcin Externa e
Interrupcin por Timer 1 del cdigo implementado en el DSP externo. ....103
Figura VI.2 Diagrama de Flujo de la Interrupcin por Timer 2, del cdigo
implementado en el DSP externo. ...............................................................104
Figura VI.3 Sinusoide Tabulada para distinta cantidad de puntos N..........................118


ix
NDICE DE TABLAS
Tabla IV.1: Caractersticas de las fuentes utilizadas en los puentes auxiliares................31
Tabla IV.2 Tabla de Control ............................................................................................40
Tabla IV.3 Distribucin de los datos en la Tabla de Funcin..........................................44
Tabla IV.4 Valor de la variable MUX y su relacin con la fase activa............................48
Tabla VI.1 Tabla de Frecuencias para DSP .....................................................................89
Tabla VI.2 Tabla de valores T1PR para DSP...................................................................93
Tabla VI.3 Tabla de Control ............................................................................................97
Tabla VI.4 Tabla de la Funcin Seno...............................................................................98
Tabla VI.5 Tabla para calcular el PWM del DSP externo .............................................112
Tabla VI.6 Tiempo de Apagado de los Mosfets utilizados y del circuito de disparo.....115


x
RESUMEN
Actualmente casi todos los convertidores estticos utilizados en la
industria estn basados en inversores de dos niveles con tcnicas de modulacin de
ancho de pulso (PWM o Pulse Width Modulation). Este tipo de modulacin no
genera una onda de voltaje perfecta y por lo tanto se tienen problemas relacionados
principalmente con las armnicas y la alta frecuencia de operacin de las vlvulas
electrnicas que componen los puentes de estos convertidores.
Los inversores multinivel, en tanto, son convertidores de ltima
tecnologa, los que pueden generar corrientes, e incluso voltajes, ms sinusoidales y
con mucho menor contenido armnico. Estos se pueden modular tanto en ancho de
pulso, como en amplitud (por el gran nmero de escalones o niveles de tensin que
pueden generar), lo que hace que los problemas generados por las armnicas puedan
ser visiblemente atenuados. Adems la frecuencia de conmutacin de los
semiconductores se reduce considerablemente y por lo tanto tambin sus prdidas.
Dentro del contexto de utilizar y probar el desempeo de los inversores
multinivel, se dise e implement un sistema de control de velocidad para un motor
de induccin utilizando un inversor de 81 niveles construido anteriormente en el
laboratorio. Este inversor cuenta con 3 puentes auxiliares y uno principal que
sumados en serie entregan un voltaje total de 63 [V
ac
eff
] y una corriente de 5 [A], por
fase. El sistema de control diseado es un sistema de control escalar con un sensor
para medir el flujo directamente y de esta manera compensar la cada de voltaje en la
resistencia del estator a bajas frecuencias. Se lograron velocidades controlables entre
15 [RPM] y 900 [RPM] y tiempos de respuesta cercanos al segundo.
En este trabajo se describe el sistema de control implementado y las
pruebas realizadas con el inversor para analizar su funcionamiento a distintas
frecuencias de operacin.

xi
ABSTRACT
Today almost every static converter is based on two-level topologies and
PWM (Pulse Width Modulation). This modulation technique does not yield perfect
voltages waveforms, and a series of problems is generated because of the high
harmonic distortion and switching frequency on which the semiconductors must
operate.
Multilevel converters are stateoftheart technology inverters, which
can generate currents and voltages waveforms closer to a sinusoidal shape and hence
with less harmonic distortion. This kind of converters can be modulated with PWM
techniques, but also with amplitude modulation techniques, witch make the problems
generated by the harmonics almost disappear. Also, the switching frequency of the
semiconductors is considerably reduced and, as a result, the switching losses become
also reduced.
In the context of using and testing multilevel converters applications, a
speed control system was designed and developed to control a three phase induction
motor using an 81 level converter previously implemented in the laboratory. This
inverter has three auxiliary bridges and one main bridge, which connected in series,
produce 63 [V
ac
eff
] and 5 [A] per phase. The control system designed is based on a
V/F control, using a sensor to measure the stator flux directly from the motor, and
hence compensating the voltage drop on the stator resistance at low frequencies.
Controllable speeds between 15 [RPM] and 900 [RPM] were accomplished with a
response time closer to the second.
In the present work the design and construction of the control system is
described, along with the tests made to the converter at different frequencies of
operation.

1
I. INTRODUCCIN
Los motores de induccin de jaula de ardilla son hoy en da uno de los
tipos ms usados en el sector industrial. Si bien el control de velocidad, torque o
posicin de estas mquinas, es ms complejo que el de los motores de corriente
continua, la electrnica de potencia ha ayudado a solucionar estos problemas y ha
posicionado a este motor como el de menor precio y mayor robustez, adems de su
casi nulo mantenimiento.
El control de velocidad de los motores de induccin se puede realizar de
diversas maneras. Cambiando el nmero de polos, el voltaje, o la frecuencia de
alimentacin. El mtodo que mayor aceptacin ha tenido es una combinacin de los
dos ltimos, debido al mayor rango de controlabilidad, tanto en torque como en
velocidad.
Para poder variar la frecuencia de alimentacin se requiere de un inversor
trifsico, el cual es un aparato capaz de transformar corriente continua en corriente
alterna.
Actualmente la mayora de los inversores estn basados principalmente
en inversores de dos niveles con modulacin por ancho de pulso, o PWM (Pulse-
Width Modulation), la cual entrega solamente dos niveles de tensin y por lo tanto la
frecuencia con que deben operar las vlvulas del inversor es considerablemente alta.
Daos y fallas en las mquinas han sido evidenciados en la industria debido a estas
altas frecuencias de operacin. Entre los principales problemas estn las fallas en los
rodamientos del motor, y prdidas de la aislacin en las bobinas de las mquinas,
causadas por corrientes circulantes, desgaste dielctrico, sobretensin y descargas
corona [1, 2, 3, 4, 5]. Las corrientes circulantes son generadas por capacidades
parsitas que se generan en las distintas capas de las bobinas del motor. Los bruscos
cambios de voltaje (dV/dt) inducen corrientes y descargas corona en los enrrollados

2
del motor, lo que provoca el desgaste prematuro del aislamiento de las bobinas.
Adems de estos problemas, la alta frecuencia de operacin de los semiconductores,
produce mayores perdidas por conmutacin, rizado en la corriente y gran cantidad de
ruido que puede llegar a contaminar los sistemas de control, sobre todo los sensores
que se encuentran cercanos al motor. Esto ha llevado a muchas investigaciones en el
campo de la modulacin PWM en busca de solucionar, o disminuir, los problemas
antes mencionados utilizando mejores mtodos de modulacin [6, 7, 8, 9].
Los convertidores multinivel en cambio minimizan estos problemas. Su
funcin principal es mejorar el perfil de la onda de voltaje alterna generada,
utilizando tres o ms niveles de voltaje continuo. Su funcionamiento es tal, que al
aumentar el nmero de niveles, el voltaje de salida, que est formado por la suma de
escalones de tensin, tiene mayor resolucin porque aumenta el nmero de escalones,
acercndose a una onda sinusoidal con mayor precisin. A mayor cantidad de
escalones (o niveles) en la onda de salida, menor distorsin armnica.
Estos convertidores pueden trabajar con tcnicas convencionales de
PWM, pero adems pueden ser modulados en amplitud, lo que produce salidas
mucho ms limpias. Este mtodo de operacin permite obtener muy buenas ondas de
voltaje y corriente, eliminando la mayora de las armnicas. Mejor an, cada puente
del convertidor funciona a baja frecuencia de conmutacin, lo cual da la posibilidad
de poder trabajar con semiconductores de menor velocidad, generando menos
prdidas por conmutacin y haciendo ms eficiente el convertidor esttico.


3
1.1. OBJETIVOS DE LA TESIS
El objetivo de la Tesis consiste en analizar el comportamiento de un
inversor multinivel cuando es utilizado en todo su rango de frecuencias como es en el
control de motores.
1.1.1. ORIGEN DE LA TESIS
Esta tesis presenta el trmino de un gran proyecto que naci como
respuesta a la necesidad de realizar trabajos de investigacin con aplicaciones
prcticas, donde se pudieran obtener resultados reales del comportamiento de los
Inversores Multinivel. Es parte de una serie de proyectos, que en conjunto pretendan
construir un sistema rectificador-inversor que, conectado a la red, fuera capaz de
controlar un motor de induccin trifsico.
En este trabajo se implement un sistema simple de control escalar del
motor, considerando una serie de restricciones, dadas principalmente por las
limitaciones de los inversores multinivel utilizados. Estos inversores fueron
construidos en trabajos anteriores [10, 11] y son de baja potencia y bajos voltajes de
operacin. Esto impidi operar el motor en condiciones reales, an con cargas
dbiles. Ms an, una de las limitaciones ms importantes de estos convertidores era
la falta de fuentes reversibles adecuadas para la correcta operacin del motor.
1.1.2. COBERTURA DE LA TESIS
El trabajo abarc diversos temas referentes al diseo e implementacin
de un sistema de control de velocidad en un motor de induccin trifsico utilizando
un inversor de 81 niveles. Entre estos se encuentran las simulaciones del sistema de
control implementado, la programacin del inversor, los sensores utilizados para la
realimentacin de diversas mediciones como flujo y velocidad, y las posteriores

4
pruebas finales para verificar el correcto funcionamiento del control utilizando en el
inversor multinivel.
1.1.3. ORGANIZACIN DE LA TESIS
En el presente captulo se presenta una introduccin del trabajo realizado,
junto con una descripcin de cmo se encuentra estructurada la tesis y que fue lo que
motiv este trabajo.
En un segundo captulo se describen las principales caractersticas de los
inversores multinivel, sus ventajas y desventajas, hacindose una descripcin ms
detallada del inversor multinivel con puentes H en cascada.
En el tercer captulo se resumen las caractersticas de los principales tipos
de control de velocidad que existen para la mquina de induccin, analizndose en
profundidad el control escalar, en el cual se basa el sistema implementado en este
trabajo.
En un cuarto captulo se describen los principales componentes que se
utilizaron para implementar el sistema de control. Se describe el inversor utilizado,
sus limitantes de corriente y voltaje, y la forma en que se solucionaron los problemas
de bidireccionalidad en las fuentes de alimentacin del inversor. Tambin se describe
el algoritmo de control, sus diagramas de flujo asociados, las simulaciones realizadas
y los sensores utilizados.
En el quinto captulo se presentan los resultados finales que se obtuvieron
y el anlisis de stos. Finalmente en el sexto captulo se presentan las conclusiones y
se describen posibles trabajos futuros.

5
II. INVERSORES MULTINIVEL
La funcin principal de los inversores es generar una corriente alterna a
partir de una fuente de corriente continua.
Los inversores multinivel son topologas que se basan en un arreglo de
semiconductores y fuentes DC, para formar ese voltaje alterno [6]. Las
conmutaciones de los semiconductores permiten el escalonamiento de las distintas
fuentes de voltaje continuo, generando una onda de voltaje de varios niveles. Si bien
son ms complejos que los tradicionales inversores de dos niveles, algunas
topologas permiten que los semiconductores trabajen con voltajes ms reducidos y a
una menor frecuencia de conmutacin.
La Figura II.1 muestra algunos diagramas esquemticos de inversores
multinivel con diferente nmero de niveles, en los cuales, la accin del
semiconductor est representada por un interruptor ideal con distintas posiciones. Un
inversor de dos niveles, como el mostrado en la Figura II.1 (a), genera una salida de
voltaje con dos valores distintos, V
C
y cero, con respecto al terminal negativo de la
fuente (0), mientras que un mdulo de tres niveles genera tres voltajes distintos a la
salida (2V
C
, V
C
y Cero), y as sucesivamente. Las distintas posiciones del interruptor
ideal se implementan en la prctica con una cantidad de semiconductores que est en
directa relacin con el nmero de niveles [10].
Generalizando, para este tipo de configuracin, el nmero de niveles m
de la onda de voltaje de salida de un inversor con n fuentes de voltaje queda
determinado por la siguiente frmula:
m = n + 1 (2.1)

6
Mientras mayor es el nmero de niveles de un inversor, mayor ser el
nmero de componentes y ms complicado resulta el control para ste, pero por otro
lado, el voltaje de salida tendr mayor cantidad de pasos, formando una sinusoide
escalonada con menor distorsin armnica.
V
C
(a)
+
V
a
a
0
(b)
+
V
a
a
0
+
(c)
+ V
a
a
0
+
V
C
(m-1)
+
V
C
(m-2)
V
C
(1)
V
C
(1)
V
C
(2)

Figura II.1 Inversor de (a) 2 niveles, (b) 3 niveles, (c) m niveles.
Algunas caractersticas de los Inversores Multinivel son [13]:
a) Pueden generar voltajes de salida con muy poca distorsin y bajo
dv/dt.
b) Las corrientes de entrada son de muy baja distorsin.
c) Generan pequeos voltajes de modo comn, protegiendo los motores.
Ms an, utilizando sofisticados mtodos de modulacin, el voltaje de
modo comn puede ser eliminado.
d) Pueden operar con baja frecuencia de conmutacin, provocando
menores perdidas.

7
Existen distintas soluciones para implementar topologas de inversores
multinivel [10, 11, 14]. Entre algunas de ellas, aplicables a los esquemas de la Figura
II.1, se encuentran el Inversor Acoplado por Condensadores (Capacitor-Clamped
Inverter), Figura II.2 , y el Inversor Acoplado por Diodos (Diode-Clamped Inverter),
Figura II.3. Otra topologa, basada en fuentes de voltaje flotantes aisladas
galvnicamente, utiliza inversores de puentes H en cascada (Cascade H-Bridge
Inverter). Esta ltima topologa se detalla mejor a continuacin.
(a)
2
dc
V
dc
V
2
dc
V

1
C
2
C
n a
0
1
C
'
1
S
'
2
S
1
S
2
S
(b)
4
dc
V
dc
V
2
dc
V

4
C
4
C
n
a
0
3
C
'
1
S
'
2
S
3
S
4
S
2
dc
V
4
dc
V

4
C
4
C
1
C
'
3
S
'
4
S
1
S
2
S
2
C
2
C
3
C
3
C
v
an

Figura II.2 Esquema Inversor Acoplado por Condensador. (a) Tres niveles. (b) Cinco niveles.

8
(a)
2
dc
V
dc
V
2
dc
V

1
C
2
C
n a
0
1
D
'
1
D
'
1
S
'
2
S
1
S
2
S
(b)
4
dc
V
dc
V
2
dc
V

3
C
4
C
n
a
0
3
D
'
3
D
'
1
S
'
2
S
3
S
4
S
2
dc
V
4
dc
V

1
C
2
C
1
D
'
1
D
'
3
S
'
4
S
1
S
2
S
2
D
'
2
D
v
an

Figura II.3 Esquema de Inversor Acoplado por Diodo. (a) Tres niveles. (b) Cinco niveles.
2.1. CARACTERSTICAS DEL INVERSOR MULTINIVEL CON
PUENTES H EN CASCADA.
En esta Tesis se utiliza un inversor trifsico de 4 etapas y 81 niveles, del
tipo puentes H en cascada, el que se muestra en la Figura II.4. Este inversor, como
su denominacin lo indica, consta de cuatro etapas o puentes H conectados en
serie, con una fuente DC independiente para cada etapa. Los valores de cada una de
estas fuentes podran ser iguales, pero si se utilizan valores escalonados en potencia
de tres, como en el inversor implementado, se maximiza la cantidad de niveles de
salida del inversor y se minimizan las fuentes DC necesarias [10]. No obstante, esta
solucin maximizada implica que para generar ciertos niveles de tensin, en la salida
alterna del inversor, se hace necesario que las fuentes DC de algunos puentes
auxiliares estn absorbiendo potencia. Esta absorcin de potencia requiere que las

9
fuentes DC de los puentes auxiliares sean bidireccionales, ya que bajo esta topologa,
de fuentes escalonadas, no existen combinaciones redundantes de semiconductores
para generar el mismo nivel de tensin en la salida del inversor sin que los puentes
auxiliares absorban potencia en algunos momentos. A este tipo de inversores con
fuentes escalonadas se les llamar inversores multinivel asimtricos.
En la Figura II.4 se puede observar la topologa de este inversor. Se
llamar Principal al puente que trabajaba con el voltaje ms alto, mientras que al
resto de los puentes H se les llamar Auxiliares. El Principal, adems, es el que
trabaja con la menor frecuencia de conmutacin, mientras que el Auxiliar superior de
la cadena presenta las caractersticas inversas, es decir, la mayor frecuencia de
conmutacin, pero el menor voltaje, lo que es una ventaja en este tipo de topologas.

Figura II.4 Inversor Multinivel del tipo puente H, con cuatro puentes.

10
2.1.1. MODULACIN DE VOLTAJE
Al escalar las fuentes de tensin del inversor en potencias de 3 se
obtienen 81 niveles de tensin con slo cuatro etapas, generando una forma de onda
sinusoidal de manera muy precisa, como se puede observar en la Figura II.5.

Figura II.5 Voltaje Modulado en amplitud, medio ciclo de la forma de onda.
En la Figura II.5 se pueden observar diferentes niveles de tensin, los
cuales se obtienen controlado los disparos de los semiconductores de potencia. De
este modo, el inversor se comporta como un dispositivo de Modulacin por
Amplitud. Para el caso del 100% se utilizan todos los niveles que posee el inversor,
el resto de los voltajes posee menor nmero de niveles, manteniendo la misma
diferencia de tensin entre niveles. A menor nmero de niveles mayor la
contaminacin armnica, como se puede apreciar en la Figura II.6.

11

Figura II.6 Comparacin de las ondas de salida de inversores con 3, 11, 31 y 81 niveles.
La Figura II.7 muestra las frecuencias de conmutacin resultantes en cada
uno de los cuatro puentes de una fase del inversor, para una salida de tensin
sinusoidal con 81 niveles o escalones y una frecuencia de 50 [Hz] (frecuenta nominal
de alimentacin del motor a controlar). Si las tensiones de la figura se suman, se
obtendr una forma de onda aproximadamente sinusoidal, con 40 escalones
positivos, 40 negativos y un nivel de cero Volts. Se puede observar que la frecuencia
de la etapa Principal es la ms baja, coincidiendo con la frecuencia fundamental del
voltaje de salida del inversor. En este caso, las vlvulas se abren y cierran solo una
vez por ciclo, por lo tanto, la frecuencia de conmutacin del puente Principal es de
50 [Hz]. El Auxiliar ms rpido opera a 54 veces la frecuencia fundamental, es decir,
2700 [Hz].


12

Figura II.7 Frecuencias de Conmutacin de los cuatro puentes H del inversor de
81 niveles.
2.1.2. DISTRIBUCIN DE POTENCIA.
Debido al escalonamiento de las fuentes de tensin, los voltajes de estas
fuentes decrecen rpidamente, y con ello la potencia que estos puentes entregan a la
carga. De hecho, slo el puente principal maneja el 80 % de la potencia transferida
[11]. Los otros puentes no manejan ms all del 20% de la potencia del inversor. Este
fenmeno se explica debido a que los puentes auxiliares modulan la tensin de forma
tal que entregan y reciben potencia activa desde sus fuentes muchas veces en un

13
periodo, por lo que la potencia media que entregan es muy reducida comparada a la
del puente principal, incluso negativa en ciertos puntos de operacin, o bajo ciertos
tipos de carga. Esto se puede apreciar en la Figura II.8, la que muestra la potencia
total que entregan los distintos puentes para una carga puramente resistiva y otra
inductiva (f.p. = 0,11).

Figura II.8 Potencias entregadas por cada fuente DC del inversor. (a) Carga
Resistiva. (b) Carga inductiva (f.p. = 0.11)
Debido a este fenmeno esta topologa de inversor requiere
obligatoriamente de fuentes DC-DC bidireccionales en cada puente auxiliar, y es en
este punto donde radica su principal desventaja al maximizar los niveles y eliminar la
posibilidad de conexiones redundantes. Esto, ya que no existen combinaciones
alternativas para conectar los semiconductores de forma de generar el mismo nivel de
voltaje y en que los puentes auxiliares no estn absorbiendo potencia.

14
Como se puede observar de la Figura II.8 el puente Principal tambin
absorbe potencia reactiva cuando la carga con que trabaja el inversor es inductiva.
Esto implicara instalar fuentes bidireccionales en los puentes principales. Sin
embargo en la prctica esto no fue necesario ya que la potencia que deban absorber
estas fuentes fue disipada en las resistencias instaladas en paralelo con las fuentes de
los puentes auxiliares.
2.1.3. COMPARACIN CON INVERSORES DE DOS NIVELES
El inversor multinivel, posee ciertas ventajas frente al inversor de dos
niveles. Las corrientes generadas por los inversores multinivel son bastante ms
puras que las de los inversores de dos niveles y presentan menores componentes
armnicos. En la Figura II.9 se muestra una simulacin con las corrientes en una
carga inductiva para los dos tipos de inversor, donde se puede apreciar que la
corriente del inversor de dos niveles posee rizado, y la del inversor multinivel es
prcticamente sinusoidal.
Los inversores de dos niveles modulan el voltaje por ancho de pulso, lo
que hace que el voltaje de salida no sea perfectamente sinusoidal y se mueva
bruscamente, generando grandes dV/dt. Esto puede causar problemas en las
aislaciones, y en el caso de los motores, producir daos a los rodamientos. Por el
contrario, como los inversores multinivel generan la tensin modulando la amplitud
del voltaje de salida, ste vara desde cero al valor mximo de la sinusoide de forma
suave y escalonada, por lo que no se presentan los problemas que se mencionaban
para el inversor de dos niveles.

15

Figura II.9 Comparacin de la onda de salida de corriente entre un inversor de 81 niveles y un
inversor convencional de dos niveles con modulacin PWM (carga inductiva).

16
III. CONTROL DE MOTORES DE INDUCCIN
Las mquinas de induccin trifsicas o asincrnicas, y en particular los
motores con rotor tipo jaula de ardilla, son en la actualidad las mquinas elctricas
con mayor aplicacin industrial. La operacin tpica de estas mquinas es como
motor, en cuyo caso el funcionamiento bsico consiste en alimentar el devanado del
estator desde una fuente trifsica para producir un campo magntico rotatorio, el que
induce corrientes en las barras del rotor, producindose as un torque motriz en el eje
de la mquina.
El motor de induccin es esencialmente de velocidad constante, cercana a
la velocidad sncrona, sin embargo en muchas aplicaciones es necesario operar con
diferentes velocidades o poder variar stas continuamente.
Para entender mejor los mtodos de control de velocidad en el motor de
induccin es bueno recordar las ecuaciones que rigen el torque y la velocidad de esta
mquina.
2 2 2
2
) (

3
s eq
r
e
e
s
L
s
R
R
V
s
Rr
T

+ +
= (3.1)
s m
s ) 1 ( = (3.2)
2 / p
red
s

= (3.3)
donde R
r
es la resistencia rotrica, R
e
la resistencia del estator, L
eq
la inductancia
equivalente del rotor y estator vista desde los terminales del estator, s el
deslizamiento, p el nmero de polos,
red
la frecuencia angular de alimentacin,
s
la
velocidad sincrnica y
m
la velocidad mecnica del motor.

17
Para variar la velocidad del motor de induccin pueden utilizarse uno de
los siguientes mtodos:
Cambio del nmero de polos
Variacin del voltaje de alimentacin
Variacin de la frecuencia de alimentacin
Al cambiar el nmero de polos de un motor de induccin se esta
cambiando la velocidad sncrona del campo rotatorio (ecuacin 3.3), por lo cual se
vara la velocidad de operacin de la mquina. Este mtodo no es muy utilizado ya
que slo permite velocidades discretas (el nmero de polos es una cantidad entera),
adems para ms de 3 combinaciones de nmero de polos la cantidad de conexiones
en el estator se vuelve sumamente compleja, por lo que este mtodo entrega 2 o 3
tipos de velocidades solamente. En la Figura III.1 se aprecia como cambia la curva
Torque-velocidad de un motor de induccin para distintos nmeros de pares de
polos.

18

Figura III.1 Curvas de operacin de un motor de induccin con control de velocidad por cambio
en el nmero de polos.
Como se puede ver de la ecuacin (3.1) el torque interno desarrollado por
la mquina es proporcional al cuadrado del voltaje aplicado, y segn este voltaje
variar el punto de operacin del sistema. Controlando la magnitud del voltaje de
alimentacin solo se puede controlar la velocidad de la mquina en un pequeo rango
de velocidades, en torno a la velocidad nominal. Se puede apreciar como cambia la
curva Torque - velocidad utilizando este mtodo de control en la Figura III.2.

19

Figura III.2 Curvas de operacin de un motor de induccin cambiando el voltaje de
alimentacin.
Si se vara la frecuencia de alimentacin de una mquina de induccin,
segn la ecuacin (3.2) y (3.3), se puede variar la velocidad sncrona de la mquina y
a travs de sta, la velocidad mecnica del motor. Este mtodo de control se basa en
aplicar una determinada frecuencia de alimentacin a la mquina, para lograr una
velocidad mecnica cercana a la deseada. Como normalmente los motores de
induccin utilizados son de bajo deslizamiento, existe una buena relacin entre
velocidad y frecuencia aplicada.
Hoy en da este es el mtodo ms utilizado, ya que combinado con un
adecuado control del voltaje, permite un amplio rango de operacin (ver Figura III.3).
En funcin de su efectividad dinmica se destacan tres tipos de control de velocidad
por frecuencia variable: el control escalar o Voltz-Hertz, el control Vectorial o de
Flujo Orientado, y el DTC (Direct Torque Control) o Control Directo del Torque.

20
El control escalar es un mtodo simple, que solo requiere controlar las
magnitudes del voltaje y la frecuencia aplicadas al estator. Se controlan estas dos
variables de manera de mantener el flujo en el entrehierro constante y as un torque
constante en todo el rango de velocidades. Generalmente este mtodo de control es
utilizado en control abierto, siendo as de muy fcil implementacin y de bajo costo.
Adems utilizando este mtodo no se requiere conocer informacin detallada del
motor a controlar. Una desventaja del control escalar es que el torque no es
controlado directamente por lo tanto depende de la carga que se va a mover. Adems
la respuesta dinmica del sistema no es tan buena como en el control vectorial o en el
DTC.

Figura III.3 Puntos de operacin para un motor de induccin con control de velocidad por
frecuencia variable. El motor puede operar en cualquier punto de la zona achurada.
El control por campo orientado, o control vectorial, es en la actualidad
uno de los mtodos que entrega la mejor respuesta dinmica en una mquina de
corriente alterna. Este mtodo requiere medir, o estimar, la magnitud y posicin del

21
flujo magntico, de manera de controlar las variables de voltaje y frecuencia para
posicionar el flujo en cuadratura con la corriente de armadura y mantenerlo en un
valor constante. Esta medicin del flujo se puede realizar, directamente, o utilizando
transformaciones matemticas y midiendo las corrientes del estator. Adems se debe
conocer con precisin la posicin del rotor y los parmetros de la mquina. Estas
mediciones hacen de este mtodo uno mucho ms complejo que el por control
escalar, y por lo tanto no se justifica a menos que se requiera una respuesta dinmica
muy rpida.
En el mtodo de control directo del torque (DTC) [14] se utilizan
comparadores de histresis para controlar directamente el flujo y el torque de la
mquina. Se obtiene de esta manera una rpida respuesta de torque, siempre que se
tomen las muestras del flujo a una muy alta frecuencia para mantenerse dentro de las
bandas de histresis.
En esta tesis, cuyo objetivo era probar la operacin de un inversor
multietapa de 81 niveles, se implement un sistema de control de velocidad del tipo
escalar con algunas variaciones, el que se explica en ms detalle en el capitulo
siguiente.
3.1. CONTROL ESCALAR O VOLTS HERTZ
En una mquina de induccin, alimentada desde una fuente trifsica
sinusoidal se induce un flujo magntico que gira a velocidad sncrona. Este flujo
induce en el estator una tensin que tiene la siguiente expresin:
44 . 4
e s e
N f E = (3.4)
Donde E
e
es el voltaje inducido en el estator, f
s
la frecuencia de las corrientes en el
estator, N
e
el nmero de vueltas de los enrollados y el flujo total en el entrehierro.

22
Si se desprecia la cada de tensin en las bobinas del estator entonces se tiene que el
voltaje inducido debe ser igual al voltaje aplicado, y por lo tanto se desprende que:
s
e
e s
e
f
V
K
N f
V

44 . 4
= = (3.5)
Luego si se desea mantener el flujo constante se debe mantener la
relacin V/f constante.
La ecuacin de torque (3.1) se puede rescribir de la siguiente manera si se
desprecia la resistencia del estator Re y el deslizamiento s es pequeo.
r
s
e
eq s r
r r
s
e
eq s r
e
s
r
K
V
L s R
R V
L s R
V R s
T


=
+

=
+

=
2
2 2 2 2
2
2 2 2
2
) (
) (
3 3 (3.6)
Como se puede observar de la ecuacin (3.6), si se mantiene el flujo
constante (V/f = cte), entonces, para deslizamientos pequeos, el torque es
proporcional a la frecuencia rotrica (
r
), que es generalmente la zona donde se
opera el motor de induccin. Ver Figura III.4.

23

Figura III.4 Curva de Operacin Tpica de un motor de induccin.
Luego controlando
r
se puede controlar la posicin de esta recta, o la
velocidad del motor. La frecuencia de las corrientes en el rotor (
r
) esta relacionada
con
s
a travs del deslizamiento por:
s r
s = (3.7)
Entonces se puede controlar la velocidad del motor controlando la frecuencia
r
,

o

s
,

y manteniendo el deslizamiento en un valor pequeo. Los distintos puntos de
operacin en que puede operar la mquina utilizando este mtodo se pueden apreciar
en la Figura III.5.

24

Figura III.5 Puntos de Operacin de un motor de induccin con control Escalar.
En la Figura III.6 se muestra el esquema bsico de un sistema de
control escalar en lazo abierto. En la prctica este sistema de control generalmente se
implementa utilizando una curva V/f, la cual entrega la relacin necesaria entre el
voltaje y la frecuencia de entrada para mantener el flujo constante. Esta curva posee
una compensacin de voltaje para bajas frecuencias debido a que la cada de tensin,
en la resistencia de los devanados del estator, ya no es despreciable frente a la cada
en la inductancia de estos devanados. A esta compensacin se le denomina
compensacin IR y es necesaria para mantener el flujo constante en bajas
velocidades.
Si se desea un sistema de control de velocidad ms preciso se debe
realimentar la velocidad. En la Figura III.7 se muestra un sistema de control de
velocidad realimentado, y controlado por frecuencia de deslizamiento. Donde la seal

25
de velocidad del motor es restada de una referencia producindose as un error
proporcional a la frecuencia de deslizamiento de la mquina. El controlador PI
procesa este error intentando anularlo, es decir intenta hacer el deslizamiento igual a
cero aumentando la frecuencia de operacin de la mquina. Claro esta que el
deslizamiento de la mquina nunca llega a cero, pero el error entre la referencia y la
velocidad del motor si.

Figura III.6 Esquema de un control Escalar en lazo abierto.

Figura III.7 Esquema de un control Escalar en lazo cerrado por control de frecuencia de
deslizamiento.
El sistema implementado en este trabajo se basa en el sistema de control
escalar hasta aqu descrito, pero en lugar de hacer uso de una curva V/f, se decidi
medir el flujo en el entrehierro directamente, y controlar el voltaje y la frecuencia de
manera de mantener este flujo constante y cercano a su valor nominal.

26
Se decidi implementar este sistema debido a que presentaba un control
ms exacto a bajas velocidades, ya que no era necesaria una compensacin IR, o esta
se realizaba automticamente. El problema de esta variacin al sistema de control
escalar clsico radica en que se debe intervenir la mquina para instalar el sensor de
flujo. En el siguiente captulo se explica este sistema de control en profundidad.

27
IV. SISTEMA DE CONTROL IMPLEMENTADO
En este captulo se describe el sistema de control implementado, as
como las caractersticas de los componentes ms importantes que se utilizaron, como
son el inversor, el motor y los sensores involucrados.
4.1. CARACTERSTICAS DEL INVERSOR UTILIZADO.
El inversor con el cual se realizaron las pruebas es un inversor construido
en el laboratorio [11], el cual presenta la topologa multinivel en cascada de cuatro
puentes H y 81 niveles. Las fuentes DC de estos puentes estn escalonadas en
potencias de 3, siendo la ms pequea de 2.33 [V
dc
], por lo que las otras fuentes
quedan con voltajes de 7 [V
dc
], 21 [V
dc
] y 63 [V
dc
]. As el inversor puede entregar un
voltaje mximo de 93.33 [V].
Como se mencion en el captulo anterior, la potencia en los puentes
auxiliares fluye bidireccionalemente, por lo que se requieren fuentes DC-DC
bidireccionales para alimentar estas etapas del inversor. Adems las fuentes en cada
uno de los cuatro puentes H deben ser flotantes, es decir, sin referencia comn,
pues lo que se esta haciendo con el inversor es sumar o restar voltajes para ir
generando una onda alterna escalonada. Luego se requieren fuentes DC-DC
bidireccionales y aisladas galvnicamente entre si.
En la Figura IV.1 se pueden apreciar las potencias en cada uno de los
puentes para distintas frecuencias de operacin de un motor de induccin. Como se
puede observar, y tal como se hizo ver anteriormente, existen circunstancias en que
las fuentes DC deben ser capaces de absorber potencia en lugar de entregarla. Es por
esto que para un correcto funcionamiento del control del motor y del inversor las
fuentes DC-DC bidireccionales para los puentes auxiliares son un requerimiento
ineludible. Adems, y en caso que el motor opere en el modo de frenado

28
regenerativo, el puente principal tambin requerir de una fuente de alimentacin
bidireccional.
-400
-200
0
200
400
600
800
1000
1200
1400
1600
0 20 40 60 80 100
Frecuencia [Hz]
P
o
t
e
n
c
i
a

[
W
]
Total
Principal
Auxiliar 1
Auxiliar 2
Auxiliar 3

Figura IV.1 Distribucin de potencias para distintas frecuencias en un motor de induccin de
3,7 KW.
Una solucin para evitar la utilizacin de fuentes DC-DC bidireccionales,
es utilizar una combinacin de las tcnicas de modulacin PWM y AM. De esta
forma, si alguno de los puentes auxiliares debe entregar tensin negativa debido a un
valor particular de amplitud, simplemente se inhibe. Al mismo tiempo se aplica
modulacin PWM al puente inmediatamente superior para ajustar el voltaje.
Si se adopta este esquema de modulacin, las fuentes bidireccionales no
son necesarias, y se pueden reemplazar estas por fuentes unidireccionales, las que son
de menor costo, y ms fciles de encontrar. Claramente se requiere de un algoritmo
de control mucho ms elaborado y de sensores de corriente para poder determinar en
que cuadrante de operacin se encuentra operando cada puente del inversor.

29
El inversor utilizado en el laboratorio no contaba con fuentes
bidireccionales al momento de iniciarse esta tesis, siendo trabajo de otra memoria la
construccin e implementacin de las mismas. Por esta razn se decidi implementar
resistencias en paralelo con las fuentes para poder disipar la energa de retorno. En la
Figura IV.2 y Figura IV.3 se pueden observar las resistencias instaladas.

Figura IV.2 Circuito de fuentes DC y resistencias en paralelo.

30

Figura IV.3 Resistencias instaladas para disipar la potencia cuando esta deba ser absorbida por
las fuentes DC.
Este cambio en la construccin del inversor no fue menor, ya que ahora
las fuentes DC estaban constantemente entregando una cantidad de corriente que
consuman las resistencias. Por ejemplo si se deseaba que cada fuente DC fuese
capaz de entregar y absorber un mximo de 2.5 [A], entonces esta fuente debera ser
capaz de entregar 5[A], ya que siempre se estaran disipando 2.5 [A] en las
resistencias. Por esta razn, y ya que las fuentes de los puentes auxiliares de menor
voltaje, que se encontraban instaladas en el inversor, no entregaban ms all de 1.5
[A], se debieron instalar nuevas fuentes DC para estos puentes. Quedando as el
inversor compuesto por etapas con las caractersticas mostradas en la Tabla IV.1, y
limitado a entregar una corriente mxima de 2.5 [A]. Las caractersticas de las

31
fuentes DC se pueden ver en el anexo F y G. En la Figura IV.4 se puede ver el
circuito de las nuevas fuentes DC y el lugar donde se instalaron en el inversor.
Tabla IV.1: Caractersticas de las fuentes utilizadas en los puentes auxiliares.
Etapa Regulador Voltaje [V
dc
] Corriente
Mxima [A]
Resistencia en
paralelo [C]
Auxiliar 3 TPS75925 2.5 5 2.4
Auxiliar 2 LM338 7 5 4.3
Auxiliar 1 LM338 21 5 11.3


(a)

(b)
Figura IV.4 (a) Circuito Nuevas Fuentes DC. (b) Fuentes instaladas en el Inversor.

32
En teora las fuentes DC que alimentan al puente Principal de cada fase
tambin deben ser aisladas entre s, pero para poder realizar esto se requeriran tres
fuentes de 63 [V
dc
] independientes, de las cuales no se dispona. Por esta razn se
aliment el puente Principal de las 3 fases con una fuente comn, y para las pruebas
se utiliz un motor de induccin de devanados separados. De esta manera no haba
problema en usar una fuente DC comn en el puente Principal de las tres fases. Esta
configuracin se muestra en la Figura IV.5

Figura IV.5 Configuracin del Inversor Multinivel con un Motor de induccin de
devanados separaros.
4.2. SISTEMA DE CONTROL.
Como se mencion en el capitulo anterior, el sistema de control que se
implement en este trabajo es un control escalar tpico en el cual, en lugar de hacer
uso de una curva V/f para determinar el flujo en el entrehierro, se utiliza un sensor
para medir ste directamente.

33
En la Figura IV.6 se puede observar el sistema de control implementado
en lazo abierto. Mediante una espira de cobre insertada en las ranuras del estator se
mide una seal proporcional al flujo en el entrehierro. Esta seal de flujo es
comparada con un valor de referencia (valor de flujo nominal u otro) y el error entre
ambas seales es procesado por un controlador PI, para mantener el flujo lo ms
cercano posible a su valor nominal o de referencia.

Figura IV.6 Sistema de Control Implementado en lazo abierto.
Como se observa en la Figura IV.6 la salida del controlador es una seal
de voltaje que se utiliza como referencia para controlar el inversor. Este voltaje esta
limitado a 93 [V
fn
pic
], que es el mximo voltaje que puede entregar el inversor. La
seal de frecuencia para el inversor es obtenida de la referencia de velocidad que
ingresa el usuario. De esta manera no es necesaria una compensacin IR o una curva
V/f, ya que automticamente el controlador PI ajusta el voltaje para mantener, a una
frecuencia dada, el flujo lo ms cercano a su valor nominal u otro valor escogido para
la operacin.

34
Para controlar la velocidad de la mquina se utiliza un tacmetro y un
sistema de control por frecuencia de deslizamiento, como el que se puede apreciar en
la Figura IV.7. Aqu se resta la velocidad de referencia con la velocidad real del
motor, obtenindose as la frecuencia de deslizamiento, luego esta frecuencia es
controlada por un PI, de manera que se mantenga entre los valores de 5 [Hz] y -2
[Hz]. Finalmente la salida del PI es sumada a la velocidad de la maquina para obtener
as la seal de control de frecuencia para el inversor.
Los valores de saturacin del controlador PI se obtuvieron de forma que
la saturacin positiva correspondiera al valor de la frecuencia del deslizamiento que
tiene la mquina cuando est entregando el torque mximo. La saturacin negativa se
configur de forma que el motor no pudiera regenerar ms de 2,5 [A], para proteger
al inversor.

Figura IV.7 Sistema de Control Implementado en lazo cerrado, con realimentacin de velocidad.

35
En el lazo de control de velocidad se limit esta a 30 [Hz] o 900 [RPM],
principalmente debido a que la potencia nominal del motor era mucho mayor que la
potencia mxima del inversor. Esto implicaba que para un flujo de referencia
nominal y una velocidad correspondiente a 50 [Hz], el motor deba estar alimentado
con 220 [V
rms
]. Lo que significaba un voltaje mayor de lo que el inversor poda
entregar, por lo que se redujo la velocidad a un valor para el cual el motor trabaja con
un flujo alto, menor que el nominal, pero suficiente para poder aplicarle una carga
que exija al motor un consumo de 2 [A].
A continuacin se presenta una simulacin de este sistema de control
para un motor de induccin de 3.7 [KW], como el que se utiliz en el laboratorio. Su
circuito equivalente se muestra en la Figura IV.8. Como se puede observar en la
Figura IV.9 el sistema de control funciona correctamente y el motor alcanza la
velocidad de referencia en menos de 0.3 [seg]. Se debe tener en cuenta que el
inversor utilizado en la simulacin es ideal y no posee las limitaciones de voltaje y
corriente que se tienen en la realidad con el inversor construido en el laboratorio.

Figura IV.8 Circuito equivalente del motor utilizado.

36

Figura IV.9 Velocidad del motor alimentado con un inversor ideal, utilizando el sistema de
control propuesto.
Para implementar ste sistema se program un Procesador Digital de
Seales (DSP), el que fue montado en una tarjeta de control construida en trabajos
anteriores para manipular las salidas del inversor [12]. El algoritmo de control se
explica en el siguiente captulo.
4.3. SOFTWARE Y ALGORITMO DE CONTROL.
Para implementar el sistema antes descrito, se utiliz una caja de control
que entrega las seales digitales necesarias para activar las tarjetas de dispar en cada
una de las fases del inversor, de acuerdo al algoritmo grabado en el procesador de la
caja. El procesador consista en un DSP Texas Instrument TMS320F241, cuya hoja
de datos y caractersticas se puede observar en el anexo E. Este DSP presenta
caractersticas adecuadas para el control de motores, aunque si se desea realizar un
control ms sofisticado, se debera utilizar un DSP de mayor capacidad de

37
procesamiento, de forma de alcanzar mayores velocidades con el motor a controlar.
Adems se debera ajustar la caja de control para poder habilitar conversores
anlogos - digitales que no fueron habilitados.
4.3.1. CARACTERSTICAS DEL DSP EMPLEADO Y DE LA CAJA
DE CONTROL.
El procesador funciona a una frecuencia de 20 [MHz], disponiendo de 4
puertos digitales, los que totalizan 26 canales I/O. De estos se utilizarn 16 para el
bus de datos principal que controla el encendido y apagado de los Mosfets, 2 para el
control del demultiplexor de fase, que elije a que fase van los datos del bus principal.
Tres para las seales de iluminacin en el panel de control, 1 para la habilitacin de
las salidas y 2 para la comunicacin serial, los que totalizan 25 canales.
Posee adems 8 canales para la conversin anlogo-digital, de los cuales
se utilizarn 3 de ellos, ya que no se tiene acceso al resto de los canales desde el
exterior de la caja de control. Un canal se utiliza para la referencia de la seal de
frecuencia, otro para la realimentacin de velocidad y otro para la realimentacin de
la seal del flujo.
Los registros de variables son de 16 bits y el acumulador sobre el que se
trabaja es de 32 bits, posee adems una serie de instrucciones ya definidas que son de
gran ayuda al momento de trabajar en Assembler. Se escogi este lenguaje de
programacin ya que no se contaba con compiladores de C en el laboratorio y
adems de esta manera se tena un mejor control sobre lo que estaba sucediendo en
cada paso del programa, optimizndolo para que trabaje lo ms rpido posible.
Posee tambin dos relojes internos independientes, Timer 1 y Timer 2,
los que pueden ser utilizados para generar seales de modulacin por ancho de pulso

38
(PWM), contadores, comparadores o gatillar interrupciones por ciclo del periodo del
timer.
El bus de datos consta de 16 bits, y est formado por los puertos I/O B y
C. El puerto B entrega los 8 bits menos significativos, y el puerto C los 8 bits ms
significativos. Siendo que el bus de datos slo cuenta con 16 bits, y se requieren 48
seales para controlar las 48 vlvulas de los inversores, 16 por fase, es que se
requiere demultiplexar la seal de datos para poder alternarla en las 3 fases, y lograr
as un bus de control de 48 bits. Esta demultiplexin se realiza utilizando dos pines
I/O del puerto A que controlan un multiplexor y unos LATCH que mantienen los
datos en cada fase hasta que deben ser cambiados nuevamente. En la Figura IV.10 se
muestra un diagrama con las conexiones ms relevantes de la tarjeta de control. Para
un mejor entendimiento de sta referirse al trabajo de Carlos Schwartz [12].

Figura IV.10 Diagrama de puertos I/O en la tarjeta de control del inversor.

39
4.3.2. TABLA DE CONTROL Y DE FUNCIN.
La seal que se desea formar utilizando el inversor multinivel es una
sinusoide de amplitud y frecuencia variable, de forma tal que controlando estos
parmetros se logre controlar la velocidad del motor. Para lograr esto se debe
controlar el encendido y apagado de los Mosfets que componen cada uno de los doce
puentes H del inversor, cuatro puentes por cada fase.
En la Figura IV.11 se puede apreciar la configuracion de una fase del
inversor con cada uno de los puentes que posee y cada uno de sus contactos.
Cerrando y abriendo estas valvulas se obtienen los 81 niveles de tensin que entrega
el inversor. La tabla de control representa la forma en la cual se combinarn o
conmutarn estos contactos, de las 4 fuentes de una fase, para obtener un valor de
voltaje determinado. Esta tabla de control se muestra en la Tabla IV.2. Existen
combinaciones de contactos que dejan los puentes en circuito abierto, lo que provoca
que la salida del inversor quede en circuito abierto tambin. De igual manera existen
otras combinaciones de contactos que dejan las fuentes de los distintos puentes en
cortocircuito, pudiendo daarse de esta forma el inversor. Estas dos situaciones no
son deseables y por lo tanto la tabla de control se revisa cada vez que se reinicia el
programa del DSP, antes de activarse las salidas, para que no existan este tipo de
combinaciones.

40

Figura IV.11 Configuracin de una fase del inversor.
Tabla IV.2 Tabla de Control
Principal Auxiliar 1 Auxiliar 2 Auxiliar 3
C4 C3 C2 C1 C4 C3 C2 C1 C4 C3 C2 C1 C4 C3 C2 C1 Voltaje [V]
0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 -93,33
0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 -91
0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 -88,67
0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 -86,33
0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 -84
0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 -81,67
0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 -79,33
0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 1 -77
0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 -74,67

41
Principal Auxiliar 1 Auxiliar 2 Auxiliar 3
C4 C3 C2 C1 C4 C3 C2 C1 C4 C3 C2 C1 C4 C3 C2 C1 Voltaje [V]
0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 -72,33
0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 -70
0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 -67,67
0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 -65,33
0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 -63
0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 -60,67
0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 -58,33
0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 -56
0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 -53,67
0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 -51,33
0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 -49
0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 -46,67
0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 -44,33
0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 -42
0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 -39,67
0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 -37,33
0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 1 -35
0 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 -32,67
0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 -30,33
0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 -28
0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 -25,67
0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 -23,33
0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 -21
0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 -18,67
0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 -16,33
0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 -14
0 1 0 1 0 1 1 0 1 0 0 1 1 0 0 1 -11,67
0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 -9,33
0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 -7
0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 -4,67
0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 -2,33
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 2,33
0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 4,67
0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 7
0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 9,33
0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 11,67
0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 14
0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 16,33

42
Principal Auxiliar 1 Auxiliar 2 Auxiliar 3
C4 C3 C2 C1 C4 C3 C2 C1 C4 C3 C2 C1 C4 C3 C2 C1 Voltaje [V]
0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 18,67
0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 21
0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 23,33
0 1 0 1 1 0 0 1 1 0 0 1 0 1 1 0 25,67
0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 28
0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 30,33
1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 32,67
1 0 0 1 0 1 1 0 0 1 1 0 0 1 0 1 35
1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 37,33
1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 39,67
1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 42
1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 44,33
1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 46,67
1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 49
1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 51,33
1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 53,67
1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 56
1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 58,33
1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 0 60,67
1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 63
1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 65,33
1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 67,67
1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 70
1 0 0 1 0 1 0 1 1 0 0 1 1 0 0 1 72,33
1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 74,67
1 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 77
1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 79,33
1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 81,67
1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 84
1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 86,33
1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 88,67
1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 91
1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 93,33


43
Mientras la tabla de control entrega los valores de encendido y apagado,
de los distintos Mosfets de una fase, para que en la salida del inversor exista un
voltaje fijo, la forma de la onda de salida viene dada por una tabla de funcin.
En el caso de este programa, como se dijo anteriormente, lo que se desea
es obtener en la salida una onda sinusoidal. Para esto se discretiz una sinusoide en
255 puntos y 81 niveles (40 niveles de amplitud), la que se ingres en la memoria del
programa. Se eligieron 255 puntos, para aprovechar la mxima cantidad de datos que
permite un registro del DSP, teniendo en cuenta que el mnimo de datos para tener
una sinusoide que utilize una resolucin de 40 niveles de amplitud es de 252 datos
(ver anexo D). El DSP tiene registros de 16 bits, pero los 8 ms significativos se
utilizan para el control de salida y entrada de los 8 datos menos significativos, por lo
que la mxima cantidad de datos que pueden tenerse en un registro son 2
8
= 256.
Para la tabulacin de la sinusoide bastara considerar los datos necesarios
para la formacin de slo un ciclo, es decir 255 datos, y en base a ellos lograr los
desfases nesesarios para las 3 fases. Esta tabla, basada en un slo periodo, presenta la
dificultad de tener que realizar los clculos para los desfases dentro del programa
principal del DSP, lo que extendera el tiempo de procesamiento. Por otra parte, el
DSP tiene una capacidad de memoria superior a la requerida para el almacenamiento
de las tablas y el propio programa, por lo que la limitante se presenta en la capacidad
de procesamiento, y no en la capacidad de memoria. Por esta razn se implement la
tabla con muchos ms datos que los nesesarios para un ciclo. De esta manera, para
generar el desfase entre las tres fases slo se aumenta el valor del indice de tabla, N,
en un valor equivalente a un desfase de 120. En el caso de esta tabla un desfase de
120 equivale a 85 datos en la tabla de funcin, por lo que slo se debe sumar al
indice de tabla, N, el valor 85 o 170 para obtener un desfase de 120 o 240
respectivamente. Esta suma se realiza por medio de una variable llamada MUX, la

44
que tiene valores de 0, 1 y 2, luego el valor del ndice N queda determinado por la
siguiente formula:
N = N + MUX*85
Como se puede ver de la formula anterior, cuando MUX tiene el valor
cero no se tiene desfase en el ndice N. Cuando MUX es igual a 1, el ndice N es
aumentado en 85 unidades, por lo que se tiene un desfase de 120. Finalmente
cuando MUX tiene el valor 2, N es aumentado en 170 unidades, lo que implica un
desfase de 240.
En la Tabla IV.3 se explican los 554 datos que forman la tabla de funcin
y en la Figura IV.12 se muestra la sinusoide discretizada.
Tabla IV.3 Distribucin de los datos en la Tabla de Funcin
Cantidad de Datos. Aplicacin.
255 Datos de un ciclo.
128 Datos para un desfase de 180.
85 Datos para desfase Fase B.
85 Datos para desfase Fase C.
1 Dato adicional para el fin de la Tabla.
554 Total de Datos Tabla Funcin.


45
Sinusoide Discretizada de la Tabla de Funcin
-150
-100
-50
0
50
100
150
0 100 200 300 400 500 600
Indice de Tabla N
V
o
l
t
a
j
e

Figura IV.12 Sinusoide Discretizada de la Tabla de Funcin.
La sinusoide discretizada es de amplitud constante, en este caso de
93,33[V
pic
]. Luego, para poder obtener una amplitud variable, cada valor ledo de la
tabla de funcin debe ser multiplicado por una variable entre 0 y 1, de manera de
atenuar el valor de la sinusoide discretizada entre 0 y 93,33 [V]. Esta variable de
atenuacin es llamada ATN, y es calculada segn las mediciones de los sensores de
velocidad y flujo en el motor, para mantener el flujo constante e igual a una
referencia. Entonces multiplicando ATN por el valor de la sinusoide discretizada se
obtiene el valor de la sinusoide que debe alimentar el motor.
4.3.3. PROGRAMA DE CONTROL.
El programa implementado en el DSP deber entregar las seales de
conmutacin al inversor para producir a la salida de ste una seal sinusoidal
trifasica. La frecuencia y amplitud de esta seal trifsica deber ser calculada en el
programa para que el motor mantenga una velocidad igual a una refencia externa.

46
El programa cuenta con un loop principal y dos rutinas de interrupciones
por Timer, una por cada timer del DSP. Estas 3 partes del programa se detallan a
continuacin.
Loop Principal: Esta rutina presenta una pequea inicializacin donde
se definen las variables a utilizar y se configuran distintos registros. Adems se revisa
la tabla de control para evitar que se enven datos de conmutacin que puedan causar
cortocircuitos en caso de que la tabla de control se hubiese grabado mal.
Luego de esta inicializacin la rutina entra en un LOOP infinito que solo
puede ser interrumpido por alguna de las rutinas de interrupcin. Dentro de este
LOOP se realizan las operaciones para leer la tabla de funcin y obtener uno de los
255 datos que componen la sinusoide de acuerdo a un ndice de lectura de tabla, N.
Una vez obtenido el valor de la sinusoide segn el indice N, este valor es
multiplicado por la variable ATN, el que atena el valor de la sinusoide para obtener
la amplitud deseada. Luego el valor atenuado de la sinusoide, el que corresponde a un
nivel entre 0 y 93,33 [V], es buscado en la tabla de control, de donde se obtiene la
combinacin de conmutacin para los Mosfets correspondiente al nivel de voltaje
seleccionado.
Finlmente el DSP enva las nuevas seales de conmutacin al inversor
luego de haber esperado el tiempo muerto correspondiente. El clculo del tiempo
muerto y la manera en que se implement se puede ver en el anexo C. Al terminar
este LOOP infinito el DSP queda en un LOOP de espera hasta que es interrumpido
por una de las rutinas de interrupcin.

47
nicio
Revisa Tabla de
Datos de
Conmutacin
Activa
Salidas
Busca el valor del ndice
N en la tabla Funcin.
Atena el valor de la
sinusoide segn el
valor de ATN
Busca la combinacin
correspondiente al voltaje
atenuado en la tabla de
control.
Enva datos de
control al inversor
STOP = 1 ?
No
LOOP PRNCPAL
Si


48
Interrupcin por Timer 1: Esta rutina controla la velocidad con que
cambian los datos de la sinusoide en la salida del inversor. O en trminos de
variables del programa, controla la velocidad con que cambia el ndice N. Mientras
ms veces por segundo se entra a esta rutina, mayor es la frecuencia de la sinusoide.
Ya que sta es una rutina de interrupcin, puede ocurrir en cualquier
parte del programa del Loop Principal. Por lo tanto, al inicio de esta rutina, se
guardan los valores del acumulador y de la posicin de memoria donde se encontraba
el programa antes de ser interrumpido. De este modo, cuando esta rutina termine de
ejecutarse se puede volver al Loop Principal con los valores de acumulador y
memoria con que se encontraban estos registros antes de producirse la interrupcin.
El programa est diseado para que cada vez que se ingresa a esta rutina,
se cambie la fase del inversor a la que se estn enviando los datos de conmutacin.
De esta forma, las seales antes enviadas a los Mosfets de una fase, ahora sern
enviadas a la siguiente fase con el desfase correspondiente.
Pare realizar esto se maneja el valor de la variable MUX entre 0 y 2. El
valor de esta variable es enviado por los pines A4 y A3 al demultiplexor que controla
la fase activa del inversor, correspondiendo cada valor de MUX a una fase activa.
Ver Tabla IV.4.
Tabla IV.4 Valor de la variable MUX y su relacin con la fase activa.
Valor MUX Fase Activada Desfase segn formula N =N+MUX*85
0 A 0
1 B 120
2 C 240
Una vez que el valor del dato N de la tabla de funcin ha sido enviado
por las tres fases, se procede a aumentar el valor de ste ndice para enviar el
siguiente dato de la tabla de funcin.

49
Finalmente cuando se termina esta rutina de interrupcin se reinicia la
variable STOP, del Loop principal de forma de sacarlo de la espera, y se reestablecen
los valores de memoria y del acumulador que tena el programa antes de ser
interrumpido.

50



51
Interrupcin por Timer 2: En esta rutina se llevan a cabo las
conversiones Anlogas/Digitales y todo el algoritmo de control. Esta interrupcin
ocurre en intervalos de tiempo fijo, los que definen el tiempo de muestreo con el cual
se definieron los parmetros de los dos controladores PI que existen en el algoritmo
de control, este tiempo es de Tmuestreo = 0.008 [seg].
Debido a que esta rutina, al igual que la rutina de Interrupcin por Timer
1, puede ocurrir en cualquier momento, lo primero que se realiza es guardar los
parmetros con que estaba trabajando el DSP antes de entrar en la interrupcin.
Despus de guardados los parmetros, se procede a realizar la conversin
Anloga/Digital, la que se lleva a cabo 3 veces. Una para la referencia de velocidad,
otra para el sensor de flujo y otra para el sensor de velocidad. Los resultados de estas
conversiones son transformados por medio de tablas y de clculos matemticos en
valores de frecuencia [Hz], para la referencia de velocidad y sensor de velocidad, y
en Voltaje [V] para el valor del flujo.
Luego de realizar la conversin, se calcula el error de velocidad, el que
ingresa a un controlador PI, cuya salida es sumada a la velocidad del motor y el
resultado de esta operacin es la nueva frecuencia que debe tener la sinusoide a la
salida del inversor. El cambio de frecuencia en la sinusoide se realiza cambiando el
intervalo de tiempo con que se produce la rutina de Interrupcin por Timer 1. Esto se
realiza modificando el valor del registro T1PR de acuerdo a una relacin entre la
frecuencia de la sinusoide y el intervalo de tiempo con que ocurre la rutina de
interrupcin Timer 1. Ver Figura IV.13.

52
T1PR vs Frecuencia
0
5000
10000
15000
20000
25000
30000
35000
0 10 20 30 40 50 60
Hz
T
1
P
R
T1PR = 3268
Frecuencia

Figura IV.13 Relacin entre el intervalo de interrupcin T1PR y la frecuencia de salida de la
sinusoide.
Una vez calculada la nueva frecuencia de salida de la sinusoide, se
calcula el flujo real del motor dividiendo el valor obtenido en el conversor
Anlogo/Digital por la nueva frecuencia de salida. Se procede de esta forma porque
el voltaje obtenido en el sensor de flujo, slo es proporcional al voltaje aplicado al
motor y no a la frecuencia de la sinusoide con que se alimenta el motor.
Luego de obtenerse el flujo real se calcula el error entre ste y el flujo de
referencia. El resultado ingresa a un controlador PI, el que entrega en su salida la
amplitud de voltaje que debe tener la sinusoide que genere el inversor. Este voltaje se
divide por 93,33 [V] y el resultado de esta divisin es el atenuador ATN.
Finalmente se restauran los valores de memoria y del acumulador que
tena el programa antes de ser interrumpido y se retorna al LOOP principal.

53
Conversin
Anloga /Digital
Clculo Error
de Velocidad
P
Velocidad
Ajuste Frecuencia
de Salida del
inversor
Clculo real del flujo
Flujo = Flujo medido/
Frecuencia de salida
Clculo Error
de Flujo
P Flujo
Clculo de
Atenuacin
Restaura valores
de memoria y
acumulador.
RET
Guarda los valores del
acumulador y posicin
de memoria del
programa principal.
NTERRUPCN POR TMER 2




54
4.4. SENSORES UTILIZADOS Y CIRCUITOS ANEXOS.
4.4.1. SENSOR DE FLUJO
Como se mencion anteriormente el sistema de control utiliza una espira
de cobre, insertada en las ranuras del estator, para medir la magnitud del flujo en el
entrehierro. El voltaje generado en una espira conductora de N vueltas viene dado por
la ecuacin (4.1).
N
dt
d
V
espira
=

(4.1)
Si se supone flujo sinusoidal a travs de la espira, lo que es cierto si se
alimenta el motor con una onda sinusoidal, entonces la ecuacin (4.1) queda:
N t V
espira
= ) cos( | | (4.2)
Por otra parte la magnitud del flujo en el entrehierro se rije por la
ecuacin (3.5), la que se repite a continuacin, luego reemplazando en (4.2) queda:
s
e
f
V
K = | | (3.5)
= 2 | |
e espira
V K V (4.3)
De aqu se puede apreciar que el voltaje en la espira es solo proporcional
al voltaje aplicado al estator y no a la frecuencia de la sinusoide con que se alimenta
el motor. Para obtener la magnitud de flujo que cruza la espira se debe aplicar la
ecuacion (4.2) y despejar de aqu la magnitud del flujo.
s
espira espira
f
V
Cte
N
V | | | |
| | =

(4.4)

55
Entonces el voltaje que entrega la espira, que es proporcional al voltaje
aplicado a los bornes del motor, se debe dividir por la frecuencia de la sinusoide para
obtener un voltaje proporcional al flujo. Esta operacin, ya mencionada, se realiza
dentro del DSP, siendo nesesario para esto acotar el voltaje que entrega el sensor de
flujo a valores entre 0 y 5 [V] para que puedan ser ledos y transformados por el
conversor anlogo/digital (CAD). El circuito y la placa utilizados para ajustar los
voltajes del sensor a valores que pudiese interpretar el CAD del DSP se muestra en la
Figura IV.14.

(a)

(b)
Figura IV.14 (a) Circuito para ajustes del voltaje del sensor de flujo. (b) Placa con los circuitos
de ambos sensores.
4.4.2. SENSOR DE VELOCIDAD
Para medir la velocidad del motor se utiliz un encoder simple de 180
ranuras que se encontraba en el laboratorio. Este encoder, por problemas en el sensor,
no entregaba exactamente un tren de pulsos, por lo que se debi ajustar la seal de
salida, procesndola con un comparador para finalmente tener un tren de pulsos entre
0 y 5 [Vdc]. Este circuito funcion correctamente hasta una frecuencia cercana a los

56
6 [KHz], ya que a frecuencias mayores el comparador no detectaba todos los pulsos.
Esta fue otra de las razones por la que se limit la velocidad del motor a una
frecuencia mxima de 30 [Hz].
Por otra parte, por problemas de programacin, y debido a que de todas
formas se deba implementar un circuito que transformara la seal del encoder en una
seal anloga entre 0 y 5 [Vdc] (Esto para poder graficar la respuesta del motor a un
escalon de velocidad), no se utiliz la compuerta de interrupcin externa para medir
la velocidad. Por esta razn se debi utilizar otro microprosesador para ajustar la
seal enviada por el encoder, y transformarla en una seal anloga entre 0 y 5 [V]
que pudiera ser entregada al DSP para su conversin anloga/digital.
Ya que se contaba con varios DSP, y tarjetas de programacin, y adems
el lenguaje de programacin ya estaba bastante dominado, se decidi utilizar un DSP
externo para procesar la seal del encoder y ajustarla a un valor entre 0 y 5 [V]. El
programa realizado y su diagrama de flujo se muestra en el anexo B. En la Figura
IV.15 se muestra el circuito utilizado para ajustar la seal entregada por el encoder y
una imagen del mismo.

(a)

(b)
Figura IV.15 (a) Circuito Encoder. (b) Imagen del Encoder instalado.

57
V. RESULTADOS EXPERIMENTALES.
En este captulo se mostrarn algunos resultados experimentales
obtenidos con el inversor de 81 niveles construido en el laboratorio, y su desempeo
como variador de frecuencia en el control de velocidad de un motor de induccin.
En la siguiente figura se muestra un diagrama del sistema utilizado para
realizar estas pruebas. Como se mencion anteriormente no se contaba con 3 fuentes
DC para alimentar a los puentes principales independientemente, por lo que se utiliz
un conjunto Transformador VariableRectificador, para obtener los 63 [V
dc
]
necesarios para alimentar a los puentes principales del inversor. Por lo mismo se
debi utilizar un motor de devanados separados de 3.7 [KW], que se encontraba en el
laboratorio.

Figura V.1 Diagrama de conexiones del accionamiento.


58
5.1. PRUEBAS SIN PERTURBACIONES.
Para realizar estas pruebas se le aplicaron al motor dos escalones en la
referencia de velocidad, mantenindose constante el flujo de referencia en un valor
para el cual la salida del inversor slo alcanzaba los 93 [V
fn
pic
] cuando el escaln de
velocidad era el mximo (0 a 900 [RPM]). Esto para que la salida del controlador PI
de flujo no se saturara. En la Figura V.2 se puede observar la respuesta del motor a
un escaln positivo de 0 a 450 [RPM] y de otro escaln negativo de 450 a
210[RPM].
Se puede apreciar que el motor demora 1,2 [seg] en llegar a la velocidad
de referencia y luego oscila entorno a sta durante 4 [seg], llegando a un valor
mximo de sobreoscilacin de 570 [RPM] o 26%. Al observar la onda de voltaje del
inversor mientras se realizaron las pruebas se pudo apreciar que el voltaje mximo
entregado por el inversor nunca fue mayor a 40 [V] para un escaln como el que se
ve en la Figura V.2.
Si se compara la curva de la Figura V.2 con la obtenida en las
simulaciones se puede apreciar que el tiempo de respuesta del sistema real es mucho
mayor, debido a que se est alimentando el motor con un voltaje 7 veces menor y con
una limitante de corriente de 2.5 [A] para proteger al inversor.
En cuanto al escaln negativo, se puede observar que el motor demora
0,7 [seg.] en alcanzar la nueva referencia de velocidad y luego oscila entorno a esta 3
[seg.]. Este tiempo se podra disminuir considerablemente si se permitiese al motor
regenerar ms de 2.5 [A]. Esto ser posible una vez terminadas las fuentes DC-DC
bidireccionales, en las cuales se est trabajando en otra investigacin paralela.

59

Figura V.2 Respuesta del sistema a un escaln de 450 [RPM].
5.2. PRUEBAS CON PERTURBACIONES.
Para realizar esta prueba se aplic al motor el mismo escaln positivo de
velocidad que en el caso anterior y una vez alcanzado el estado estacionario de
velocidad se le aplic a la mquina una carga constante, que exigi al motor un
consumo de 2 [A], y que fue removida luego de 5 [seg]. En la Figura V.3 se puede
apreciar la respuesta del sistema a la perturbacin aplicada.
Se observa que el motor demora 2 [seg] en recuperar la velocidad de
referencia una vez aplicada la carga. Cuando la carga es removida, el motor toma el
mismo tiempo en volver a la velocidad de referencia. Nuevamente este tiempo se
podra disminuir si se utilizaran fuentes bidireccionales que permitiesen regenerar
una cantidad de potencia mayor.

60

Figura V.3 Respuesta del sistema a una perturbacin de carga.


61
VI. CONCLUSIONES Y TRABAJO FUTURO.
Se implement satisfactoriamente un variador de frecuencia para un
motor de induccin utilizndose la tecnologa de inversores multinivel. Se logr un
rango de velocidades entre 15 y 900 [RPM], con tiempos de respuesta al escaln de 1
[seg] y una respuesta a perturbaciones de 2 [seg]. Estos tiempos tan lentos se
debieron fundamentalmente a las limitaciones de voltaje del inversor y a la poca
capacidad de corriente de las fuentes bidireccionales utilizadas.
Luego de realizadas las pruebas finales se pudo corroborar el adecuado
funcionamiento del control implementado y la calidad de las tensiones sinusoidales
que esta topologa de inversor entrega. Claramente mucho mejores que las seales de
los inversores de dos niveles.
Si bien el motor no logr alcanzar su mximo torque ni velocidad, se
debi principalmente a que el inversor construido en el laboratorio no superaba los
60 V rms, mientras que el motor utilizado en las pruebas finales tena una tensin
nominal de 380 V rms. Esta situacin se podra mejorar a futuro construyndose un
inversor adecuado o cambiando el motor, pero siempre utilizndose uno de
devanados independientes, dada la menor cantidad de fuentes flotantes que esta
conexin necesita.
Como trabajo futuro se podra mejorar el sistema de control
implementado utilizando un control vectorial o un sistema de control Directo del
Torque (DTC). Ambos sistemas de control son ms sofisticados que el actual y
requieren de un inversor cuyo diseo se ajuste al motor, con sensores de mayor
precisin, de forma de poder calcular la posicin y la magnitud exacta del flujo
rotrico en todo momento. Un requisito indispensable como se pudo corroborar
repetidamente a lo largo de la Tesis es la implementacin de las fuentes
bidireccionales para mejorar la eficiencia y potencia del inversor. Si no se cuenta con

62
ellas, puede utilizarse una estrategia de control con modulacin PWM que evite
potencia en reversa. Las fuentes bidireccionales no obstante, permiten trabajar con
frecuencias de conmutacin muy bajas. Por esta razn ya se esta trabajando en las
fuentes DC-DC bidireccionales, las cuales deberan estar prontamente terminadas.

63
BIBLIOGRAFA
BUSSE, ERDMAN, J. KERKMAN, SCHLEGEL, y SKIBINSKI; (1995)
Bearing Currents and their Relationship to PWM Drives, IEEE
IECON Conference Orlando. [1]
ERDMAN, KERKMAN, SCHLEGEL, y SKIBINSKI; (1996) Effect of
PWM inverters on AC motor bearing currents and shaft voltages,
IEEE Trans. Industry Applications, vol. 32, no. 2, Mar. 1996, pp. 250-
259. [2]
BELL y SUNG; (1997) Will your motor insulation survive a new
adjustable frequency drive?, IEEE Trans. Industry Applications, vol. 33,
no. 5, Sep. 1997, pp. 1307-1311. [3]
BOSE, B.; (1993) Power Electronics and Motion Control-Technology
status and recent trends, IEEE Transactions on Industry Applications,
Vol. 29 N 5, 1993, pp. 902-909. [4]
HOLTZ, J. y BEYER, B.; (1995) Fast Current Trajectory Tracking
Control Based on Synchronous Optimal Pulse Width Modulation,
IEEE Transactions on Industry Applications, Vol. 31, N 5, 1995, pp.
1110-1120. [5]
BRETN, A.; (2003) Diseo y construccin de un inversor trifsico
Multinivel de cuatro etapas para compensacin armnica y de
reactivos, Memoria para optar al Ttulo de Ingeniero Civil de Industrias,
con Mencin en Electricidad, Pontificia Universidad Catlica de Chile.
[6]
ROS, F.; (2003) Diseo y Construccin de un Inversor Trifsico
Multinivel, Memoria para optar al Ttulo de Ingeniero Civil de Industrias,
con Mencin en Electricidad, Pontificia Universidad Catlica de Chile.
[7]

64
SCHWARTZ, C.; (2004) Dise y Construccin de Sistema de control
con DSP para Filtro Activo Multietapa, Memoria para optar al Ttulo
de Ingeniero Civil de Industrias, con Mencin en Electricidad, Pontificia
Universidad Catlica de Chile. [8]
RODRGUEZ, J., LAI J-S. y ZHENG PENG, F.; (2002) Multilevel
Inverters: A Survey of Topologies, Controls, and Applications, IEEE
Transactions on Power Electronics, Vol. 49, No.4, August 2002, pp. 724-
737. [9]
SCHIBLI, N., NGUYEN, T. y RUFER, A.; (1998) A Three-Phase
Multilevel Converter for High-Power Induction Motor, IEEE
Transactions on Power Electronics, Vol. 13, No.5, September 1998, pp
978-986. [10]
CORZINE, K. y FAMILIANT, Y.; (2002) A New Cascaded Multilevel
H-Bridge Drive. IEEE Transactions on Power Electronics, Vol. 17, No.1,
January 2002, pp 125-131. [11]
WALTER, G., y LEDWICH, G.; (1999) Bandwidth Considerations for
Multilevel Converters. IEEE Transactions on Power Electronics, Vol.
14, No. 1, January 1999, pp 74 81. [12]
TOLBERT, L. y HABETLER, T.; (1998) Novel Multilevel Inverter
Carrier-Based PWM Methods. IEEE IAS 1998 Annual Meeting, St.
Louis, Missouri, October 10-15, 1998, pp. 1424-1431. [13]
ABB Technical Guide, Direct Torque Control http://www.abb-
drives.com/StdDrives/RestrictedPages/Marketing/Documentation/files/PR
oducts/DTCTechGuide1.pdf [14]
HABETLER, T., PROFUMO, F., PASTORELLI, M., y TOLBERT, L.;
(1992) Direct Torque Control of Induction Machines using Space
Vector Modulation. IEEE Transactions on Industry Applications, Vol.
28, No. 5, September/October 1992. [15]

65
MUOZ-GARCA, A., LIPO, F., y NOVOTNY, D.; (1998) A New
Induction Motor V/f Control Method Capable of High-Performance
Regulation at Low Speeds, IEEE Transactions on Industry Applications.
Vol. 34, No. 4, July/August 1998, pp 813 821. [16]
DIXON, J., MORN, L., BRETN, A., y ROS, F.; (2002) Multilevel
Inverter, Based on Multi-Stage Connection of Three-Level
Converters, Scaled in Power of Three, IEEE Industrial Electronics
Conference, IECON'02, 5-8 Nov. 2002. [17]
DIXON, J., MORN, L., BRETN, A., y ROS, F.: (2003) High Power
Machine Drive, Based on Three-Stage Connection of H Converters,
and Active Front End Rectifiers, IEEE Industrial Electronics
Conference, IECON'03, 2-6 Nov. 2003. [18]
DIXON, J., ORTUZAR, M., y ROS, F.: (2002) Traction Drive System
for Electric Vehicles, Using Multilevel Converters, Electric Vehicle
Symposium 19, EVS-19, 19-23 Oct. 2002. [19]








66
A N E X O S



67
ANEXO A: PROGRAMA REALIZADO EN EL DSP Y TABLAS.

68
ANEXO A: PROGRAMA REALIZADO EN EL DSP Y TABLAS.
A continuacin se presenta el cdigo del programa implementado en
ASSEMBLER para el DSP TMS320F241, donde se realiz todo el algoritmo de
control. Tambin se presentan las tablas de control, funcin y frecuencia, utilizadas
en el programa.

**********************************************************************
; Programa de Control de velocidad por Frecuencia de Deslizamiento.
; TMS320F241
**********************************************************************

; Este programa entrega una seal sinusoidal cuya frecuencia y amplitud varan de
; manera de controlar la velocidad de un motor de induccin. Este control se realiza
; por medio de medir dos variables del motor. El flujo en el entrehierro del motor
; por la puerta ADC 5, y la velocidad del motor por la puerta ADC 3. Adems la
; referencia de velocidad ingresa por la puerta ADC 6. La interrupcin
; por timer 1 es la que se encarga de ajustar la frecuencia de la sinusoide y
; la interrupcin por timer 2 es la que da el tiempo de muestreo de las seales
; medidas.

; Para indagar mas sobre los detalles de la configuracin de registros consultar
; "Systems and periferals" del TMS320F241.

**********************************************************************

.include "243_dsk.h" ; Incluye la librera que contiene las definiciones
; de los nombres para este DSP. Con esta el compilador
; interpreta cada nombre o instruccin como el nmero
; correspondiente.

; Definicin de variables

; Estas variables se manejaran en la RAM, se ubican en la misma posicin
; correlativa en que se ingresan aqu, comenzando desde la direccin inicial del
; bloque que les corresponde. 020hex en este caso.

.bss DF1B,1 ; Dato previo puerto B de la fase 1 (registro 202).
.bss DF1C,1 ; Dato previo puerto C de la fase 1 (registro 203).
.bss DF2B,1 ; Dato previo puerto B de la fase 2 (registro 204).
.bss DF2C,1 ; Dato previo puerto C de la fase 2 (registro 205).
.bss DF3B,1 ; Dato previo puerto B de la fase 3 (registro 206).
.bss DF3C,1 ; Dato previo puerto C de la fase 3 (registro 207).
.bss DPB,1 ; Dato que se pondr en el puerto B.
.bss DPC,1 ; Dato que se pondr en el puerto C.
.bss ACCBAJO, 1 ; variable para guardar los LSB del acumulador

69
.bss ACCALTO, 1 ; variable para guardar los HSB del acumulador
.bss STOP,1 ; Flag de espera
.bss MUX,1 ; Variable de multiplexin de fase (0,1,2).
.bss MUXAD,1 ; Variable para activar (2) y desactivar (0) la multiplexin.
; Puerto A4 y A3 controlan el multiplexor.
.bss DATON,1 ; variable que guarda valor de la tabla
.bss N,1 ; indice del lugar de la tabla funcin.

.bss TIEMPO,1 ; registro para guardar tiempo de timer
; medida en el ADC
.bss ATN,1 ; registro que guarda el valor de atenuacin para la
; amplitud
.bss FRECREF,1 ; registro que guarda el valor de la frecuencia de
; referencia
.bss VOLTAJE,1 ; voltaje pic que entrega el inversor.
.bss FRECMOTOR,1 ; frecuencia medida en el encoder.
.bss FRECSALIDA,1 ; frecuencia que entrega el pi de velocidad
.bss FRECDES,1 ; frecuencia de deslizamiento
.bss FLUX,1 ; variable que guarda el valor del flujo medido.
.bss FLUXR,1 ; flujo de referencia

; Variables del Control PI de Flujo

.bss KP,1 ; Ganancia Proporcional
.bss KI,1 ; Ganancia Integral
.bss ERRORF,1 ; Error
.bss IANTERIOR,1 ; Parte acumulada de la integral del controlador PI
.bss IANTERIOR2,1 ; Se divide en dos registros ya que alcanza valores muy
; altos y de esta manera no se pierden decimales.

; Variables del Control PI de Frecuencia

.bss KPFREC,1 ; Ganancia Proporcional
.bss KIFREC,1 ; Ganancia Integral
.bss ERRORFREC,1 ; Error
.bss IANTERIORFREC,1 ; Parte acumulada de la integral del controlador
.bss IANTERIOR2FREC,1

.bss DESINF,1 ; mximo deslizamiento negativo
.bss DESMAX,1 ; mximo deslizamiento positivo

.bss ANA0,1 ; registros auxiliares para conversin A/D
.bss ANA1,1 ; ANA0 = Frec ref. ; ANA1 = Vel. motor ; ANA2 = Flujo
.bss ANA2,1

.bss AUX,1 ; Variable auxiliar.
.bss QUO,1 ; resultado de la division
.bss DENOM,1 ; denominador de la division
.bss NUM,1 ; numerador de la divisin
.bss T,1 ; nmero de bits significativos

70
.bss T1,1 ; variable auxiliar para bits significativos
.bss OFFSET,1 ; variable que guarda el valor de la componente
; continua de la sinusoide.

.bss LEDS,1 ; sealizacin de tablero. Puerto A7 LED verde
; Puerto A6 LED amarillo
; Puerto A5 LED rojo

; Definicin de vectores de RESET e interrupciones.

; RSVECT es el vector de reset. Cuando se inicia el funcionamiento del DSP, este
; parte en la posicin que indica este vector. En este caso la posicin 1F00h, la cual
; es la posicin del bootloader. Luego cada vez que se reinicia el DSP se carga esta
; direccin, el bootloader revisa el estado del BIO pin y segn esto pasa al modo
; programacin de la memoria FLASH o pasa al punto inicial del programa
; anteriormente grabado.

; Los vectores INT1...INT6 indican las posiciones de las rutinas de interrupcin.

.sect "vectors"

RSVECT B 1F00h

INT1 B PHANTOM
INT2 B INT_TIMER1
INT3 B INT_TIMER2
INT4 B PHANTOM
INT5 B PHANTOM
INT6 B PHANTOM

.text

;-----------------------------
; Configuraciones generales.
;-----------------------------
LDP #0h ; dirige a pgina de interrupciones
SETC INTM ; Interrupt mode, 0 = todas las mascarables
; deshabilitadas.
LDP #0E0h ; dirige a pgina del Watch Dog Timer
SPLK #068h, WDCR ; Deshabilita el Watch Dog timer.

CLRC CNF ; DARAM config, 1=RAM para datos.
CLRC SXM ; Sign extension, 0=supress extension.
CLRC OVM
CLRC XF
;-----------------------------
; Configuracin Timers
;-----------------------------
LDP #0E8h ; dirige a pgina de TIMER
SPLK #700, T1PR ; Configura periodo de timer en el mximo

71
; en un valor arbitrario.
SPLK #2500, T2PR ; Configura periodo de timer 2,

SPLK #0001001101000000b, T1CON ; Configura de control del
; contador 1 con un preescaler de ; 8.


SPLK #0001011001000000b, T2CON ; Con un preescaler de 64 se
; obtiene con un periodo de T2PR
; = 2500 un tiempo de muestreo de ; 1/125 seg.

;-----------------------------
; Configuracin Puertos I/O
;-----------------------------
LDP #0E1h ; Dirige a pgina de registro de puertos y OCRA,B.
SPLK #00000h, OCRA ; Puerto A y B como I/O.
SPLK #1100000011b,OCRB ; Puerto C y pin D0 como I/O

; Apaga todos los puertos

LACL #1111111100000000b ; Carga en acumulador dato para apagar
; puertos.
SACL PBDATDIR ; Apaga puerto B.
SACL PCDATDIR ; Apaga puerto C.
LACL #1111111100001000b ; Dato para activar Fase 1.
SACL PADATDIR ; Activa Fase 1.
LACL #1111111100010000b ; Dato para activar Fase 2.
SACL PADATDIR ; Activa Fase 2.
LACL #1111111100011000b ; Dato para activar Fase 3.
SACL PADATDIR ; Activa Fase 3.
LACL #1111111100000000b ; Dato para desactivar Fases
SACL PADATDIR ; Desactiva las 3 fases.

LACL #100h ; Dato para apagar puerto D
SACL PDDATDIR ; Apaga puerto D0. Lo que desactiva Latches

*===========================================================
* REV. TABLA
*===========================================================
* Rutina de revisin de la tabla tcontrol que contiene
* las combinaciones de disparo. El fin de tabla est dado
* por el dato EOF: .word#1111111111111111b
*===========================================================

LDP #04h ; Dirige a pgina de variables.
LACL #0h ; Carga 0 al acumulador.
SACL N ; Inicializa en 0 el valor de N.
REV ADD #CONTROL ; Suma el ndice de inicio de la tabla.
ADD N ; Suma valor del ndice N que apunta a un dato de la
; tabla.

72
TBLR DATON ; Lee el dato N de la tabla y lo guarda en DATON.
LACL DATON ; Lleva el dato al acumulador.
XOR #0FFFFh ; Verifica dato EOF.
BCND ERR2,EQ ; Si lleg al EOF sale de la rutina de revisin.
REV1 LACL N ; Carga contador.
ADD #01h ; Incrementa en uno el contador.
SACL N ; Guarda nuevo valor contador N.
LACL DATON ; Carga dato de la tabla.
REV2 BCND REV,EQ ; Si el dato ledo es 0 pasa al dato siguiente.
AND #03h ; Selecciona los 2 bits menos significativos.
SUB #03h ; 3h = 11b que es una combinacin invlida.
BCND ERROR,EQ ; Verifica que no sea una combinacin invlida.
LACL DATON ; Carga dato a revisar.
SFR ; Desplaza a la derecha en 1 bit.
SFR ; Desplaza a la derecha en 1 bit.
SACL DATON ; Guarda el dato de tabla desplazado 2 bits.
B REV2 ; Repite la revisin del dato desplazado.
ERROR LDP #04h ; Dirige a pgina de variables.
LACL N ; Carga en acumulador el ndice de la tabla.
OR #0FF00h ; Prepara el dato para mostrarlo en puerto B.
LDP #0E1h ; Dirige a pgina de puertos.
SACL PBDATDIR ; Coloca ndice dato errneo en puerto B.
LACL #0FF20h ; #1111111100100000b dato para prender led
; ROJO.
SACL PADATDIR ; Activa led ROJO (A5) indicando error en dato de
; conmutacin.
ERR1 B ERR1 ; Detiene el programa en loop cerrado.
ERR2 LACL N ; Carga en acumulador el ndice de la tabla.
SUB #81 ; Resta la cantidad de datos que debe tener la tabla.
BCND ERR3,EQ ; Verifica que sean justo 81 datos, en caso contrario
; error.
LACL #0FF60h ; #1111111101100000b dato para prender leds
; ROJO y AMARILLO.
LDP #0E1h ; Dirige a pgina de puertos.
SACL PADATDIR ; Pone el dato en el puerto A y se prenden los
; LEDS
B ERR1 ; Salta a loop cerrado de detencin del
; programa.
ERR3

*=========== fin rutina de revisin tabla ==============
;----------------------------------------------------------------------
; Sealizacin y configuracin de valores iniciales de las variables.
;----------------------------------------------------------------------
LDP #04h ; Dirige a pgina de variables.
LACL #0FF00h ; #1111111100000000b apaga todos los LEDS.
SACL LEDS ; guarda valor de sealizacin.

LACC #0 ; Carga 0 en acumulador para borrar registros.
SACL N ; Borra ndice de dato.

73

SACL DF1B ; Borra dato previo puerto B fase 1.
SACL DF1C ; Borra dato previo puerto C fase 1.
SACL DF2B ; Borra dato previo puerto B fase 2.
SACL DF2C ; Borra dato previo puerto C fase 2.
SACL DF3B ; Borra dato previo puerto B fase 3.
SACL DF3C ; Borra dato previo puerto C fase 3.

SACL MUX ; Borra variable multiplexin.
SACL DATON ; Borra variable de dato de tabla
SACL QUO ; Borra resultado divisin
SACL OFFSET ; Borra offset de la tabla seno


SACL ATN ; Borra atenuacin
SACL FRECREF ; Borra frecuencia de referencia
SACL VOLTAJE ; Borra voltaje pic de salida del inversor.
SACL FLUX ; Borra flujo inicial
SACL FRECSALIDA ; Borra salida del PI de frecuencia
SACL FRECMOTOR ; Borra salida del encoder

SACL ERRORF ; Borra error de flujo
SACL ERRORFREC ; Borra error de frecuencia
SACL IANTERIOR ; Borra valor integral de los PI
SACL IANTERIOR2
SACL IANTERIORFREC
SACL IANTERIOR2FREC

; Configura parmetros control PI de flujo

SPLK #5000, KI
SPLK #3, KP

SPLK #500, KIFREC
SPLK #30000, KPFREC

SPLK #20, DESINF ; Configura el deslizamiento minimo en -2 Hz
SPLK #50, DESMAX ; Configura el deslizamiento mximo en 5 Hz

SPLK #2,MUXAD ; Carga 2 a MUXAD con lo que quedan habilitada la
; multiplexin.
SPLK #65, FLUXR ; Flujo mximo para que en caso de exigir a la
; mquina un escaln de velocidad mayor a
; 30 Hz no se sature el control de Flujo.



; Seal de activacin de LATCHes del DSP por puerto D0

LDP #0E1h ; Dirige a pgina de puertos.

74
LACL #101h ; Pone en 1 el puerto D0.
SACL PDDATDIR ; Saca dato por puerto D.

;-----------------------------
; Configuracin de interrupciones
;-----------------------------
LDP #0h
LACC IFR ; Borra Flags de interrupciones
SACL IFR ; Borra todas las interrupciones pendientes
SPLK #000110b, IMR ; Desenmascaro INT2 e INT3
LDP #0E8h
SPLK #080h, EVIMRA ; habilita interrupcin de periodo1.
SPLK #01h, EVIMRB ; habilita interrupcin de periodo2.
CLRC INTM ; habilita interrupciones

**********************************************************************
*==========================================================*
* PROGRAMA PRINCIPAL
*==========================================================*
***********************************************************************
;--------------------------------
; LOOP principal del programa
;--------------------------------

LOOP
SETC INTM ; Desactiva interrupciones, para que no se produzcan
; cambios en los valores de salida mientras se sacan los
; datos por los puertos B y C.

LDP #04h ; Dirige a pgina de variables.
SPLK #1,STOP ; Cambia a 1 variable de detencin para dejar al
; programa en espera.
LACL #0
LT MUX ; Prepara fase a multiplexar (0, 1, 2).
MPY #85 ; Multiplica por 85 para producir el desfase de FASE
; (1, 2, 3).
PAC ; Carga en acumulador el producto (0, 85, 170).
ADD N ; Suma el ndice del dato.
ADD #SENO ; Suma la direccin del registro inicio tabla 'tseno.txt'.
TBLR DATON ; Carga en DATON el dato de la sinusoide respectiva.
LT ATN ; Prepara para multiplicar por la atenuacin ATN,
; obtenida en interrupcin de TIMER.
MPY DATON ; Multiplica DATON por ATN.
PAC ; Carga en acumulador el producto.
SACL NUM ; Guarda el resultado del producto

; Las siguientes operaciones se rigen por la siguiente ecuacin
; VOLTAJE = ((seno + 41)*ATN/40) - 41*ATN/40 + 40
; = (DATON*ATN/40) - 41*ATN/40 + 40


75
LACL #40
SACL DENOM
CALL DIVISION
SACL QUO ; resultado de la divisin

LACL #0 ; prepara para restar el offset correspondiente a la
; atenuacin
LT ATN
MPY #41
PAC
SACL NUM

LACL #40
SACL DENOM
CALL DIVISION
SACL OFFSET

LACL QUO
SUB OFFSET
ADD #40

ADD #CONTROL ; Suma la direccin donde comienza tabla
; conmutacin 'tcontrol'.
TBLR DATON ; Carga en DATON el dato de conmutacin


LT MUX ; Prepara para multiplicar MUX por 2.
MPY #2 ; Multiplica por 2.
PAC ; Carga el producto en el acumulador (0,2,4).
ADD #0202h ; Carga la direccin donde se inicia almacenamiento
; de datos (202,204,206).
SACL AUX ; Guarda en registro auxiliar AUX.
MAR *,AR1 ; Selecciona AR1 para direccionamiento indirecto.
LAR AR1,AUX ; Prepara registro AR1 para direccionamiento indirecto.
; Con dato AUX = (202; 204 o 206) segn MUX.
; Registros para los datos previos
; Fase 1: puertoB=202; puertoC=203.
; Fase 2: puertoB=204; puertoC=205.
; Fase 3: puertoB=206; puertoC=207.
LACL DATON ; Carga en acumulador dato conmutacin DATON
SACL DPB ; Guarda en DPB (slo los 8 lsb de DATON).
LACL DATON ; Carga en acumulador dato conmutacin DATON
RPT #7 ; Desplaza a la derecha 8 lugares.
SFR ; Deja los 8 hsb.
SACL DPC ; Guarda en DPC (slo los 8 hsb de DATON).

LACL * ; Llamado indirecto AR1 (202; 204 o 206) que contiene
; el dato previo del puerto B.
AND DPB ; AND con DPB produce en dato de conmutacin que
; slo apaga los bits que cambiarn de 1 a 0.

76
SACL *+ ; Guarda indirecto AR1 (202; 204 o 206) que contiene
; el nuevo dato de conmutacin del puerto B,
; y queda apuntando a la direccin siguiente (203;205 o
; 207).
OR #0FF00h ; Prepara el dato para ponerlo en el puerto.
LDP #0E1h ; Dirige a la pgina de los puertos.
SACL PBDATDIR ; Saca el dato por el puerto B.

LDP #04h ; Dirige a pgina de variables.
LACL * ; Llamado indirecto AR1 (203; 205 o 207) que contiene
; el dato previo del puerto C.
AND DPC ; AND con DPB produce en dato de conmutacin que
; slo apaga los bits que cambiarn de 1 a 0.
SACL * ; guarda indirecto AR1 (203; 205 o 207) que contiene
; el nuevo dato de conmutacin del puerto C.
OR #0FF00h ; Prepara el dato para ponerlo en el puerto
LDP #0E1h ; Dirige a la pgina de los puertos
SACL PCDATDIR ; Saca el dato por el puerto C

LACL PADATDIR
AND #000C0h
OR #0FF00h
LDP #04h ; Dirige a pgina de variables
SACL LEDS
LACL MUX ; Carga al acumulador la variable de multiplexin (0; 1; 2)
ADD #1 ; Agrega 1 para sealar las fases (1; 2; 3)
RPT MUXAD ; Si MUXAD es 0 no se producir desplazamiento en el
; dato y el nmero de la fase a multiplexar saldr por
; los A0 y A1 los que no estn conectados con el
; control del multiplexor si MUXAD es 2, entonces el
; dato se desplazar 3 lugares y el nmero de la fase a
; multiplexar saldr por los puertos A3 y A4 que son
; los que controlan al multiplexor.
SFL
AND #0FF3Fh
OR LEDS ; Incluye sealizacin
LDP #0E1h ; Dirige a pgina de puertos
SACL PADATDIR ; Pone el dato para la multiplexin con la
; sealizacin.

;----------------------------
; El dato de conmutacin es presentado en 2 etapas, primero se presenta el dato en el
; se han apagado los bits que pasan de 1 a 0, y luego se presenta el dato final en el se
; han encendido los bits que pasan de 0 a 1.Este procedimiento permite un tiempo
; muerto entre las vlvulas que se apagan y las que se encienden, para evitar que se
; crucen en un punto de conduccin intermedio de ambas.El tiempo muerto estar
; dado por la serie de instrucciones que existen entre la presentacin de las 2 etapas
; del dato.

;++++++++++++++++++++++++++++

77
; Inicio del tiempo muerto
;++++++++++++++++++++++++++++

LDP #04h ; Dirige a pgina de variables.
OR LEDS ; Incluye sealizacin.

LDP #0E1h ; Dirige a pgina de puertos.
SACL PADATDIR ; Deshabilita latches. Recin aqu los datos
; anteriormente puestos en los puertos B y C salen
; por los contactos de control del Inversor

LDP #04h ; Dirige a pgina de variables.
LAR AR1,AUX ; Carga en AR1 la direccin contenida en AUX.
LACL * ; Carga en acumulador valor indirecto contenido en AR1.
OR DPB ; OR con DPB prender los bits que cambian de 0 a 1.
SACL *+ ; Guarda indirecto en el mismo registro y
; queda apuntando al registro siguiente (203, 205 ,207).
OR #0FF00h ; Prepara el dato para ponerlo en la salida.
LDP #0E1h ; Dirige a pgina de puertos.
SACL PBDATDIR ; Pone el dato en puerto B.
LDP #04h ; Dirige a pgina de variables.
LACL * ; Carga en acumulador valor indirecto del registro
; (203, 205 ,207).
OR DPC ; OR con DPC prender los bits que cambian de 0 a 1.
SACL * ; Guarda indirecto en el mismo registro.
OR #0FF00h ; Prepara el dato para ponerlo en la salida.
LDP #0E1h ; Dirige a pgina de puertos.
SACL PCDATDIR ; Pone el dato en puerto C.
LDP #04h ; Dirige a pgina de variables.
LACL MUX ; Carga en acumulador el valor de MUX.
ADD #1 ; Incrementa en 1.
RPT MUXAD ; Desplaza hacia la izquierda segn valor de
; MUXAD.
SFL ; Para sacar por A0 y A1 o A3 y A4 segn MUXAD.

OR LEDS ; Incluye sealizacin

; Son 28 instrucciones que ocupan aproximadamente 37 ciclos.
; El clock del DSP funciona a 20 MHz, lo que da un tiempo de:
; 50 nseg para cada ciclo, luego los 37 ciclos darn un total
; de 1,85 microseg o equivalentemente 1850 nseg de tiempo muerto.
;----------------------------

LDP #0E1h ; Dirige a pgina de puertos.
SACL PADATDIR ; Pone el dato en puerto A.

LDP #04h ; Dirige a pgina de variables.
LACL LEDS ; Incluye sealizacin

LDP #0E1h ; Dirige a pgina de puertos.

78
SACL PADATDIR ; Saca el dato por puerto A deshabilitando la
; multiplexin.
CLRC INTM ; Activa interrupciones.
WAIT
LDP #04h ; Dirige a pgina de variables.
LACL STOP ; Carga la variable de detencin.
BCND WAIT,NEQ ; El programa se detiene en ciclo cerrado si STOP=1
B LOOP ; o salta a LOOP para mostrar el dato si STOP=0.

*************************************FIN******************************


**********************************************************************
*==========================================================*
* INTERRUPCIONES
*==========================================================*
**********************************************************************
; Al atender cualquier rutina de interrupcin,
; primero se guardan los valores de los registro de estado
; y del acumulador, de forma que antes de retornar
; se vuelvan a cargar los estados y el valor del acumulador

;==========================
;INTERRUPCION DE TIMER 1
;==========================

INT_TIMER1
SETC INTM ; desactiva interrupciones

MAR *,AR0 ; selecciona el registro AR0 para direccionamiento
; indirecto
LAR AR0,#0200h ; carga en AR0 el valor de la direccin reservado
; en el Linker para guardar los estados.
; En este caso las direcciones son 200 y 201.
SST #1,*+ ; Guarda Status Register 1 en la direccin 200
; y queda direccionando a la direccin 201
SST #0,* ; Guarda Status Register 0 en la direccin 201
LDP #04h ; dirige a pgina de variables
SACL ACCBAJO ; guarda en variable ACCBAJO los 16 LSB del
; acumulador
SACH ACCALTO ; guarda en variable ACCALTO los 16 HSB del
; acumulador
;-----------------------------------
; Inicio cdigo de la interrupcin
;-----------------------------------
; En esta rutina se cambia la fase del inversor por la cual estan saliendo los
; datos de conmutacin. Adems cada tres interrupciones se aumenta el indice de
; tabla N para pasar al siguiente dato de la sinusoide. Esta interrupcin ocurre con un
; periodo de tiempo variable, el que esta dado por la interrupcin de timer 2. Esto
; para controlar la frecuencia de la sinusoide de salida del inversor.

79

LDP #04h ; Dirige a pgina de variables.

LACL MUX ; Carga en acumulador valor de MUX.
ADD #1 ; Incrementa en 1.
SACL MUX ; MUX=MUX+1.
SUB #3 ; Resta 3.
BCND LBL2,NEQ ; Si MUX es 3 entonces lo resetea
SPLK #0,MUX ; MUX=0.

; incrementa contador de tabla N llegando a 256 como tope de la tabla.

LDP #04h ; Dirige a pgina de variables.
LACL N ; Carga en acumulador el ndice de la tabla.
ADD #1 ; Incrementa en 1.
SACL N ; N=N+1.
SUB #256 ; Valor mximo para no salirse de la tabla de datos,
BCND LBL2,LEQ ; Si se sobrepasa de 256 entonces resetea el contador N
; y comienza otra vez
SPLK #0,N
LBL2
LDP #04h ; Dirige a pgina de variables.
SPLK #0,STOP ; Borra la variable de detencin STOP.

*------------------------------------------------------------------------------------
; Una vez terminadas las instrucciones propias de la
; interrupcin, se agregan las lneas siguientes
; para recuperar los estados antes del retorno de la interrupcin.

LDP #0E8h ; dirige a pgina de interrupciones
LACL EVIFRA ; carga EVIFRA al acumulador para borrar flags
SACL EVIFRA ; borra los flags
LDP #04h ; dirige a pgina de variables
LACL ACCBAJO ; carga al acumuladorlos 16 LSB
LACC ACCALTO,16 ; carga al acumuladorlos 16 HSB desplazados
; 16 bits a la izquierda (el acumulador es de 32 bits)
MAR *,AR0 ; selecciona AR0 para direccionamiento indirecto
LAR AR0,#0201h ; carga direccin 201 para direccionamiento
; indirecto
LST #0,*- ; Load Status Register 0 de la direccin 201
; y queda apuntando a la direccin 200
LST #1,* ; Load Status Register 1 de la direccin 200
CLRC INTM ; habilita las interrupciones
RET ; retorno de la rutina de interrupcin
; habiendo recuperado previamente el estado
; y el dato del acumulador
;-----------------------------------------------------------------------------------------

;==========================
;INTERRUPCION DE TIMER 2

80
;==========================
INT_TIMER2

SETC INTM ; desactiva interrupciones
MAR *,AR0 ; selecciona el registro AR0 para direccionamiento
; indirecto
LAR AR0,#0200h ; carga en AR0 el valor de la direccin reservada en
; el Linker para guardar los estados.
; En este caso las direcciones son 200 y 201.
SST #1,*+ ; Guarda Status Register 1 en la direccin 200
; y queda direccionando a la direccin 201
SST #0,* ; Guarda Status Register 0 en la direccin 201
LDP #04h ; dirige a pgina de variables
SACL ACCBAJO ; Guarda en variable ACCBAJO los 16 LSB del
; acumulador
SACH ACCALTO ; Guarda en variable ACCALTO los 16 HSB del
; acumulador

;-----------------------------------
; Inicio cdigo de la interrupcin
;-----------------------------------
; En esta interrupcin se llevan a cabo las conversiones analogas - digitales,
; y los calculos para cambiar la frecuencia y voltaje de la sinusoide de salida
; de acuerdo a lo medido en las conversiones del ADC. Esta interrupcion ocurre
; cada 1/125 seg, el cual corresponde al tiempo de muestreo.


; Conversin anloga - digital

LDP #0E0h ; direcciona a la pagina del conversor
LACL ADCFIFO1 ; borra FIFO1 segundo dato
LACL ADCFIFO1 ; borra FIFO1 primer dato
LACL ADCFIFO2 ; borra FIFO2 segundo dato
LACL ADCFIFO2 ; borra FIFO2 primer dato
SPLK #0000000000000000b, ADCTRL2 ; configura conversor
SPLK #0011100101011100b, ADCTRL1 ; configura conversor puertos
; ADC5 y ADC6.
; ADC6 conversion 1 y ADC5 conversion 2
ESPERA1 BIT ADCTRL1, 7
BCND ESPERA1, NTC ; espera fin de la conversion

LACC ADCFIFO1, 10 ; guarda valor de conversion 1
LDP #04h ; en ANA0, pero antes desplaza el valor de la
; conversin en 10 lugares a la derecha
SACH ANA0 ; afecta a los valores mas significativos
; del registro, es decir, para un registro
; de 16 bits el conversor cambia y guarda
; el valor de la conversin
; entre los bits 16 al 6.


81
LDP #0E0h ; guarda el valor de la conversin 2
LACC ADCFIFO2, 10 ; en ANA1
LDP #04h
SACH ANA1

LDP #0E0h ; direcciona a la pagina del conversor
LACL ADCFIFO1 ; borra FIFO1 segundo dato
LACL ADCFIFO1 ; borra FIFO1 primer dato
SPLK #0000000000000000b, ADCTRL2 ; configura conversor
SPLK #0010100101010110b, ADCTRL1 ; configura conversor para el
; puerto ADC3

ESPERA2 BIT ADCTRL1, 7
BCND ESPERA2, NTC ; espera fin de la conversin

LACC ADCFIFO1, 10 ; guarda valor de conversin 1
LDP #04h ; en ANA2, pero antes desplaza el valor de la
; conversin en 10 lugares a la derecha
SACH ANA2

; fin conversin anloga - digital

;CALCULO DE VELOCIDAD MEDIDA EN POTECIOMETRO
;-------------------------------------------
LACL ANA0
SFR ; se queda solo con los 9 bits mas significativos, 511 niveles de
; frecuencias.
ADD #FRECUENCIA ; Busca el valor de voltaje de la referencia en una
; tabla y asi obtiene un valor de frecuencia.
TBLR FRECREF ; guarda el valor de la frecuencia de referencia


; CALCULO DE VELOCIDAD MEDIDA EN ADC3
;-------------------------------------
LACL ANA2 ; Busca el valor de voltaje ledo en el ADC en la tabla
; de frecuencia y obtiene asi la frecuencia del motor.
SFR
ADD #FRECUENCIA
TBLR FRECMOTOR

ZAC
LACL FRECREF
SUB FRECMOTOR ; Resta la referencia de velocidad con la velocidad
; del motor obteniendo as el error en la velocidad
SACL ERRORFREC ; Guarda el error en el registro ERRORFREC

; Control por frecuencia de deslizamiento

CALL PI_FREC ; Llama a la rutina de control PI
ZAC

82
LACL FRECDES ; Suma la salida del controlador PI con la velocidad
; del motor y guarda el resultado en FRECSALIDA
ADD FRECMOTOR
SACL FRECSALIDA
ROL
; Verifica si el valor de FRECSALIDA esta dentro de los rangos
; que permite el inversor 31 Hz y 0 Hz.

BCND SAT_CERO,C ; Si la frecuencia de salida esta por sobre los
; valores de saturacin los satura en estos.
LACL FRECSALIDA
SUB #310
ROL
BCND NO_SATUR,C
SPLK #310,FRECSALIDA
B NO_SATUR

SAT_CERO SPLK #0,FRECSALIDA
NO_SATUR

; Arregla salida del T1PR para adecuarlo a la frecuencia.

LACL FRECSALIDA ; Carga en el DENOM el valor de FRECSALIDA
SACL DENOM
BCND SALTO, EQ ; Si FRECSALIDA es 0 entonces configura
; T1PR como el mximo periodo de manera que la
; salida de la sinusoide sea de una frecuencia
; mnima. Adems de esto se hace la salida de
; voltaje 0, de forma que no se produzcan voltajes
; continuos en la salida del inversor.

LACL #32680 ; Si FRECSALIDA no es 0 entonces utilizando la
; divisin se obtiene el nuevo valor de T1PR
SACL NUM
CALL DIVISION
B SALTO2

SALTO LACL #32680
SALTO2 SACL TIEMPO
LACL TIEMPO
LDP #0E8h ; dirige a pgina de TIMER
SACL T1PR ; cambia el valor del timer
LDP #04h

;-------------------------------------
;Si la frecuencia de salida es 0, entonces el flujo seria infinito,
;en cuyo caso se hace FLUX = 1000 (numero mucho mas grande que
; cualquier flujo de referencia), por lo tanto el VOLTAJE queda en 0.

LACL FRECSALIDA

83
BCND VOLTAJE_0, EQ

;-------------------------------------
LACL ANA1 ; carga en el acomulador valor de flujo medido
SFR ; se queda solo con los 9 bits mas significativos
; 111111111 b = 511 d
SACL FLUX ; guarda el flujo medido en FLUX

;-----------
; Ajuste de valores de voltaje y frecuencia para calcular el flujo como V/f
; debido a que V se encuentra escalado por 100 y que f se encuentra
; escalado por 10 se debe dividir el voltaje (flux) por (10*FREC)
;------------

ZAC ; Limpia acumulador.
LT FLUX ; Prepara para multiplicar por 100 el voltaje leido
MPY #100 ; Multiplica por 100 el voltaje leido
PAC ; Carga en acumulador el producto
SACL NUM ; Guarda el valor del producto en NUM
LACL FRECSALIDA
SACL DENOM ; Guarda el valor de FRECSALIDA en DENOM
CALL DIVISION ; Divide FLUX por FRECSALIDA obteniendose asi el
; valor real del flujo en el entrehierro.
SACL FLUX
LACL FLUXR ; Compara el flujo medido con el flujo de referencia
SUB FLUX
SACL ERRORF ; Guarda el valor del error en ERRORF
CALL PI_FLUX ; Llama al PI de flujo

; Calcula atenuacin ATN

LACL VOLTAJE ; Guarda en VOLTAJE el valor de salida del PI.

SACL NUM ; prepara los registros para proceder a la divisin por
; 2.33 ya que es la forma de saber cuanto debe valer
; ATN.
LACL #233
SACL DENOM
CALL DIVISION
B NO_CERO

VOLTAJE_0 ZAC
NO_CERO SACL ATN ; guarda en ATN el valor de la atenuacin de la
; sinusoide o el numero de niveles positivos que debe tener la sinusoide. Revisa si
; ATN es mayor que 40 ya que el inversor solo tiene 40 niveles positivos.

ZAC ; borra el acumulador
LACL ATN

SUB #40 ; si ATN es mayor que 40 queda fijo en este valor, si es

84
; menor ATN queda sin cambio alguno.
BCND LBL1, LEQ
SPLK #40,ATN

LBL1

*------------------------------------------------------------------------------------
; Una vez terminadas las instrucciones propias de la
; interrupcin, se agregan las lneas siguientes
; para recuperar los estados antes del retorno de la interrupcin.

LDP #0E8h ; dirige a pgina de interrupciones
LACL EVIFRB ; carga EVIFRA al acumulador para borrar flags
SACL EVIFRB ; borra los flags
LDP #04h ; dirige a pgina de variables
LACL ACCBAJO ; carga al acumuladorlos 16 LSB
LACC ACCALTO,16 ; carga al acumuladorlos 16 HSB desplazados
; 16 bits a la izquierda (el acumulador es de 32 bits)
MAR *,AR0 ; selecciona AR0 para direccionamiento indirecto
LAR AR0,#0201h ; carga direccin 201 para direccionamiento
; indirecto
LST #0,*- ; Load Status Register 0 de la direccin 201
; y queda apuntando a la direccin 200
LST #1,* ; Load Status Register 1 de la direccin 200
CLRC INTM ; habilita las interrupciones
RET ; retorno de la rutina de interrupcin
; habiendo recuperado previamente el estado
; y el dato del acumulador
;-----------------------------------------------------------------------------------------

*===========================
* Otras interrupciones
*===========================
PHANTOM RET

****** FIN INTERRUPCIONES *****************************************
;------------------------------------------------
; RUTINA DE DIVISION
; Primero verifica si el denominador no es 0, en caso de serlo
; hace 0 el resultado de la divisin.
; Luego cuenta el numero de bits significativos
; del numerador considerando que siempre el primer 0 no significativo
; si es significativo. Esta rutina divide el numero entregado en la variable
; NUM por el numero entregado en la variable DENOM

; Para entender mejor esta rutina de divisin ver la instruccin SUBC en
; "CPU and Instruction set" del DSP TMS320F241.


DIVISION LACL DENOM ; revisa si el denominador es distinto de 0

85
BCND CERO,EQ

LACL NUM
SUB DENOM ; primero se revisa si el denominador es > que el
; numerador, en cuyo caso se pasa a una rutina que
; hace el cuociente = 0.
BCND CERO,
LACC #0 ; borra acumulador
SPLK #0,T ; borra contador de bits T.

DIV LT T
BITT NUM ; Busca el bit T en el registro NUM y lo guarda en el
; acumulador
BCND UNO,TC ; Si el bit T de NUM no es 1 entonces vuelve a DIV
; para mirar el prximo bit.
LACL T
ADD #1 ; T = T+1
SACL T
B DIV

UNO LACL #16
SUB T ; guarda en T el num. de bits significativos. Si hay 10 bits
SACL T1 ; significativos significa que el BIT 9 del registro es el uno
; mas significativo, esto porque los bits se comienzan a medir
; desde 0.
LACL #14 ; Guarda en T1 el numero de bits que se debe ejecutar la
; instruccin
SUB T1 ; SUBC. Se compara con 14, por que la instruccin RPT
; provoca que cualquier instruccin que este bajo esta se
; repita una vez mas de la mencionada en RPT.
SACL T
BCND MENOR, LT
LACL NUM
RPT T
SFL
SACL NUM

MENOR LACC #0 ; Si T1 vale 14 o 15 entonces se debe repetir la
; instruccin SUBC T1 veces y no T por lo que se hace
; este ajuste al programa comparando el valor de T1
; con 0.
LACL NUM
RPT T1
SUBC DENOM
RET ; retorna a donde fue llamada la rutina de divisin con
; el valor del resultado en el acumulador.

CERO LACC #0
RET


86
;-------------------------------------------------------------------------------
PI_FREC ; CONTROL PI DE FRECUENCIA

ZAC ; Borra acumulador
LT ERRORFREC ; Prepara para multiplicar el error por KIFREC
MPY KIFREC
PAC ; Guarda el resultado de la multiplicacin en el
; acumulador
ADD IANTERIORFREC ; Suma al resultado el valor de
; Ianteriorfrec con los bits menos significativos y luego
; los ms significativos del valor acumulado de la
; integral en el registro de 32 bits
; IANTERIOR(32 bits) = IANTERIOR2(16) IANTERIOR(16)
ADD IANTERIOR2FREC, 16
SACL IANTERIORFREC ; Guarda en Ianteriorfrec los bits
; menos significativos de la parte integral del
; controlador y en Ianterior2frec los mas
; significativos
SACH IANTERIOR2FREC
ADD DESINF,16 ; Revisa si los valores ms significativos del registro
; IANTERIOR, en este caso IANTERIOR2FREC, es
; mayor que el deslizamiento mximo permitido
ROL ; en caso que lo sea lo satura en 5 HZ o en -2 Hz,
; dependiendo si es saturacin negativa o positiva.
BCND SAT_NEG,C
ZAC
LACC IANTERIOR2FREC,16
SUB DESMAX,16
ROL
BCND NO_SAT, C
SPLK #50, IANTERIOR2FREC
SPLK #0h, IANTERIORFREC
B NO_SAT

SAT_NEG ZAC
SUB DESINF
SACL IANTERIOR2FREC

NO_SAT MPY KPFREC ; Multiplica el valor en LT, osea el error
; por la parte proporcional del control y
; guarda los 16 bits mas significativos en FRECDES
PAC
SACH FRECDES
LACC FRECDES,16
ADD IANTERIOR2FREC,16 ; Suma a FRECDES el resultado de la
; parte integral mas significativa y lo
; vuelve a guardar en FRECDES
SACH FRECDES
ADD DESINF,16 ; Revisa nuevamente si el valor de salida del
; PI esta saturado en valores mayores o

87
; menores a 5 y -2 Hz.
ROL
BCND TODO_NEG, C
ZAC
LACC FRECDES,16
SUB DESMAX,16
ROL
BCND MODO_00, C
SPLK #50, FRECDES
B MODO_00

TODO_NEG ZAC
SUB DESINF
SACL FRECDES

MODO_00 RET




;-----------------------------------------------------------------------
PI_FLUX ;CONTROL PI DE FLUJO
;-----------------------------------------------------------------------
; Esta rutina es igual a la rutina de PI de frecuencia pero con los valores de saturacin cambiados a la
saturacin del voltaje, es decir entre 0 y 93 V. O para trabajar con ellos en el DSP entre 0 y 9300 V.

ZAC
LT ERRORF
MPY KI
PAC
ADD IANTERIOR
ADD IANTERIOR2, 16
SACL IANTERIOR
SACH IANTERIOR2
ROL
BCND SATURNEG,C
LACL IANTERIOR2
SUB #9300
ROL
BCND NOSATURADO, C
SPLK #9300, IANTERIOR2
SPLK #0h, IANTERIOR
B NOSATURADO

SATURNEG SPLK #0, IANTERIOR
SPLK #0, IANTERIOR2

NOSATURADO MPY KP
PAC
SACL VOLTAJE

88
ADD IANTERIOR2
ROL
BCND TODOCERO, C
ROR
SACL VOLTAJE
SUB #9300
ROL
BCND MODO_0, C
SPLK #9300, VOLTAJE
B MODO_0

TODOCERO SPLK #0, VOLTAJE

MODO_0 RET

**********************************************************************
*==========================================================*
* TABLAS
*==========================================================*
**********************************************************************
.sect "sentri"
SENO
.include "tseno.txt"
CONTROL
.include "tcontrol.txt"
TIME
.include "t1pr.txt"
FRECUENCIA
.include "frecuencia.txt"


89
Tabla VI.1 Tabla de Frecuencias para DSP
Tabla de Frecuencias.
.word 0 .word 161
.word 0 .word 162
.word 1 .word 163
.word 2 .word 164
.word 3 .word 165
.word 4 .word 166
.word 5 .word 167
.word 6 .word 168
.word 7 .word 169
.word 8 .word 170
.word 9 .word 171
.word 10 .word 172
.word 11 .word 173
.word 12 .word 174
.word 13 .word 175
.word 14 .word 176
.word 15 .word 177
.word 16 .word 178
.word 17 .word 179
.word 18 .word 180
.word 19 .word 181
.word 20 .word 182
.word 21 .word 183
.word 22 .word 184
.word 23 .word 185
.word 24 .word 186
.word 25 .word 187
.word 26 .word 188
.word 27 .word 189
.word 28 .word 190
.word 29 .word 191
.word 30 .word 192
.word 31 .word 193
.word 32 .word 194
.word 33 .word 195
.word 34 .word 196
.word 35 .word 197
.word 36 .word 198
.word 37 .word 199
.word 38 .word 200
.word 39 .word 201
.word 40 .word 202
.word 41 .word 203
.word 42 .word 204

90
.word 43 .word 205
.word 44 .word 206
.word 45 .word 207
.word 46 .word 208
.word 47 .word 209
.word 48 .word 210
.word 49 .word 211
.word 50 .word 212
.word 51 .word 213
.word 52 .word 214
.word 53 .word 215
.word 54 .word 216
.word 55 .word 217
.word 56 .word 218
.word 57 .word 219
.word 58 .word 220
.word 59 .word 221
.word 60 .word 222
.word 61 .word 223
.word 62 .word 224
.word 63 .word 225
.word 64 .word 226
.word 65 .word 227
.word 66 .word 228
.word 67 .word 229
.word 68 .word 230
.word 69 .word 231
.word 70 .word 232
.word 71 .word 233
.word 72 .word 234
.word 73 .word 235
.word 74 .word 236
.word 75 .word 237
.word 76 .word 238
.word 77 .word 239
.word 78 .word 240
.word 79 .word 241
.word 80 .word 242
.word 81 .word 243
.word 82 .word 244
.word 83 .word 245
.word 84 .word 246
.word 85 .word 247
.word 86 .word 248
.word 87 .word 249
.word 88 .word 250
.word 89 .word 251

91
.word 90 .word 252
.word 91 .word 253
.word 92 .word 254
.word 93 .word 255
.word 94 .word 256
.word 95 .word 257
.word 96 .word 258
.word 97 .word 259
.word 98 .word 260
.word 99 .word 261
.word 100 .word 262
.word 101 .word 263
.word 102 .word 264
.word 103 .word 265
.word 104 .word 266
.word 105 .word 267
.word 106 .word 268
.word 107 .word 269
.word 108 .word 270
.word 109 .word 271
.word 110 .word 272
.word 111 .word 273
.word 112 .word 274
.word 113 .word 275
.word 114 .word 276
.word 115 .word 277
.word 116 .word 278
.word 117 .word 279
.word 118 .word 280
.word 119 .word 281
.word 120 .word 282
.word 121 .word 283
.word 122 .word 284
.word 123 .word 285
.word 124 .word 286
.word 125 .word 287
.word 126 .word 288
.word 127 .word 289
.word 128 .word 290
.word 129 .word 291
.word 130 .word 292
.word 131 .word 293
.word 132 .word 294
.word 133 .word 295
.word 134 .word 296
.word 135 .word 297
.word 136 .word 298

92
.word 137 .word 299
.word 138 .word 300
.word 139 .word 301
.word 140 .word 302
.word 141 .word 303
.word 142 .word 304
.word 143 .word 305
.word 144 .word 306
.word 145 .word 307
.word 146 .word 308
.word 147 .word 309
.word 148 .word 310
.word 149 .word 310
.word 150 .word 310
.word 151 .word 310
.word 152 .word 310
.word 153 .word 310
.word 154 .word 310
.word 155 .word 310
.word 156 .word 310
.word 157 .word 310
.word 158 .word 310
.word 159 .word 310
.word 160 .word 310



93
Tabla VI.2 Tabla de valores T1PR para DSP
Tabla de Valores de T1PR.
.word 32680 .word 202
.word 32680 .word 200
.word 16340 .word 199
.word 10893 .word 198
.word 8170 .word 197
.word 6536 .word 196
.word 5447 .word 195
.word 4669 .word 193
.word 4085 .word 192
.word 3631 .word 191
.word 3268 .word 190
.word 2971 .word 189
.word 2723 .word 188
.word 2514 .word 187
.word 2334 .word 186
.word 2179 .word 185
.word 2042 .word 184
.word 1922 .word 183
.word 1816 .word 182
.word 1720 .word 181
.word 1634 .word 180
.word 1556 .word 179
.word 1485 .word 178
.word 1421 .word 177
.word 1362 .word 176
.word 1307 .word 175
.word 1257 .word 174
.word 1210 .word 173
.word 1167 .word 172
.word 1127 .word 171
.word 1089 .word 170
.word 1054 .word 169
.word 1021 .word 168
.word 990 .word 168
.word 961 .word 167
.word 934 .word 166
.word 908 .word 165
.word 883 .word 164
.word 860 .word 163
.word 838 .word 163
.word 817 .word 162
.word 797 .word 161
.word 778 .word 160
.word 760 .word 159

94
.word 743 .word 159
.word 726 .word 158
.word 710 .word 157
.word 695 .word 156
.word 681 .word 156
.word 667 .word 155
.word 654 .word 154
.word 641 .word 153
.word 628 .word 153
.word 617 .word 152
.word 605 .word 151
.word 594 .word 151
.word 584 .word 150
.word 573 .word 149
.word 563 .word 149
.word 554 .word 148
.word 545 .word 147
.word 536 .word 147
.word 527 .word 146
.word 519 .word 145
.word 511 .word 145
.word 503 .word 144
.word 495 .word 143
.word 488 .word 143
.word 481 .word 142
.word 474 .word 141
.word 467 .word 141
.word 460 .word 140
.word 454 .word 140
.word 448 .word 139
.word 442 .word 138
.word 436 .word 138
.word 430 .word 137
.word 424 .word 137
.word 419 .word 136
.word 414 .word 136
.word 408 .word 135
.word 403 .word 134
.word 399 .word 134
.word 394 .word 133
.word 389 .word 133
.word 384 .word 132
.word 380 .word 132
.word 376 .word 131
.word 371 .word 131
.word 367 .word 130
.word 363 .word 130

95
.word 359 .word 129
.word 355 .word 129
.word 351 .word 128
.word 348 .word 128
.word 344 .word 127
.word 340 .word 127
.word 337 .word 126
.word 333 .word 126
.word 330 .word 125
.word 327 .word 125
.word 324 .word 124
.word 320 .word 124
.word 317 .word 123
.word 314 .word 123
.word 311 .word 122
.word 308 .word 122
.word 305 .word 121
.word 303 .word 121
.word 300 .word 121
.word 297 .word 120
.word 294 .word 120
.word 292 .word 119
.word 289 .word 119
.word 287 .word 118
.word 284 .word 118
.word 282 .word 118
.word 279 .word 117
.word 277 .word 117
.word 275 .word 116
.word 272 .word 116
.word 270 .word 115
.word 268 .word 115
.word 266 .word 115
.word 264 .word 114
.word 261 .word 114
.word 259 .word 113
.word 257 .word 113
.word 255 .word 113
.word 253 .word 112
.word 251 .word 112
.word 249 .word 112
.word 248 .word 111
.word 246 .word 111
.word 244 .word 110
.word 242 .word 110
.word 240 .word 110
.word 239 .word 109

96
.word 237 .word 109
.word 235 .word 109
.word 233 .word 108
.word 232 .word 108
.word 230 .word 107
.word 229 .word 107
.word 227 .word 107
.word 225 .word 106
.word 224 .word 106
.word 222 .word 106
.word 221 .word 105
.word 219 .word 105
.word 218 .word 105
.word 216 .word 105
.word 215 .word 105
.word 214 .word 105
.word 212 .word 105
.word 211 .word 105
.word 209 .word 105
.word 208 .word 105
.word 207 .word 105
.word 206 .word 105
.word 204 .word 105
.word 203 .word 105


97
Tabla VI.3 Tabla de Control
Tabla de Control
.word 26214 .word 21849
.word 26213 .word 21910
.word 26217 .word 21909
.word 26198 .word 21913
.word 26197 .word 22886
.word 26201 .word 22885
.word 26262 .word 22889
.word 26261 .word 22870
.word 26265 .word 22869
.word 25958 .word 22873
.word 25957 .word 22934
.word 25961 .word 22933
.word 25942 .word 22937
.word 25941 .word 38502
.word 25945 .word 38501
.word 26006 .word 38505
.word 26005 .word 38486
.word 26009 .word 38485
.word 26982 .word 38489
.word 26981 .word 38550
.word 26985 .word 38549
.word 26966 .word 38553
.word 26965 .word 38246
.word 26969 .word 38245
.word 27030 .word 38249
.word 27029 .word 38230
.word 27033 .word 38229
.word 22118 .word 38233
.word 22117 .word 38294
.word 22121 .word 38293
.word 22102 .word 38297
.word 22101 .word 39270
.word 22105 .word 39269
.word 22166 .word 39273
.word 22165 .word 39254
.word 22169 .word 39253
.word 21862 .word 39257
.word 21861 .word 39318
.word 21865 .word 39317
.word 21846 .word 39321
.word 21845 .word #1111111111111111b


98
Tabla VI.4 Tabla de la Funcin Seno
Tabla de Funcin
.word 42 .word 40 .word 43 .word 39
.word 43 .word 39 .word 44 .word 38
.word 44 .word 38 .word 45 .word 37
.word 45 .word 37 .word 46 .word 36
.word 46 .word 36 .word 47 .word 35
.word 47 .word 35 .word 48 .word 34
.word 48 .word 34 .word 49 .word 33
.word 49 .word 33 .word 50 .word 32
.word 50 .word 32 .word 51 .word 31
.word 51 .word 31 .word 52 .word 30
.word 52 .word 30 .word 53 .word 29
.word 53 .word 29 .word 54 .word 28
.word 54 .word 28 .word 55 .word 27
.word 55 .word 27 .word 56 .word 26
.word 56 .word 26 .word 57 .word 25
.word 57 .word 25 .word 57 .word 24
.word 57 .word 24 .word 58 .word 23
.word 58 .word 23 .word 59 .word 22
.word 59 .word 22 .word 60 .word 21
.word 60 .word 21 .word 61 .word 21
.word 61 .word 21 .word 62 .word 20
.word 62 .word 20 .word 63 .word 19
.word 63 .word 19 .word 64 .word 18
.word 64 .word 18 .word 64 .word 17
.word 64 .word 17 .word 65 .word 16
.word 65 .word 16 .word 66 .word 16
.word 66 .word 16 .word 67 .word 15
.word 67 .word 15 .word 68 .word 14
.word 68 .word 14 .word 68 .word 13
.word 68 .word 13 .word 69 .word 13
.word 69 .word 13 .word 70 .word 12
.word 70 .word 12 .word 70 .word 11
.word 70 .word 11 .word 71 .word 11
.word 71 .word 11 .word 72 .word 10
.word 72 .word 10 .word 72 .word 9
.word 72 .word 9 .word 73 .word 9
.word 73 .word 9 .word 74 .word 8
.word 74 .word 8 .word 74 .word 8
.word 74 .word 8 .word 75 .word 7
.word 75 .word 7 .word 75 .word 6
.word 75 .word 6 .word 76 .word 6
.word 76 .word 6 .word 76 .word 5
.word 76 .word 5 .word 77 .word 5
.word 77 .word 5 .word 77 .word 5

99
.word 77 .word 5 .word 78 .word 4
.word 78 .word 4 .word 78 .word 4
.word 78 .word 4 .word 78 .word 3
.word 78 .word 3 .word 79 .word 3
.word 79 .word 3 .word 79 .word 3
.word 79 .word 3 .word 80 .word 2
.word 80 .word 2 .word 80 .word 2
.word 80 .word 2 .word 80 .word 2
.word 80 .word 2 .word 80 .word 2
.word 80 .word 2 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 81 .word 1
.word 81 .word 1 .word 80 .word 2
.word 80 .word 2 .word 80 .word 2
.word 80 .word 2 .word 80 .word 2
.word 80 .word 2 .word 80 .word 2
.word 80 .word 2 .word 79 .word 3
.word 79 .word 3 .word 79 .word 3
.word 79 .word 3 .word 79 .word 4
.word 79 .word 4 .word 78 .word 4
.word 78 .word 4 .word 78 .word 4
.word 78 .word 4 .word 77 .word 5
.word 77 .word 5 .word 77 .word 5
.word 77 .word 5 .word 77 .word 6
.word 77 .word 6 .word 76 .word 6
.word 76 .word 6 .word 76 .word 7
.word 76 .word 7 .word 75 .word 7
.word 75 .word 7 .word 74 .word 8
.word 74 .word 8 .word 74 .word 8
.word 74 .word 8 .word 73 .word 9
.word 73 .word 9 .word 73 .word 10
.word 73 .word 10 .word 72 .word 10

100
.word 72 .word 10 .word 71 .word 11
.word 71 .word 11 .word 71 .word 12
.word 71 .word 12 .word 70 .word 12
.word 70 .word 12 .word 69 .word 13
.word 69 .word 13 .word 69 .word 14
.word 69 .word 14 .word 68 .word 14
.word 68 .word 14 .word 67 .word 15
.word 67 .word 15 .word 66 .word 16
.word 66 .word 16 .word 66 .word 17
.word 66 .word 17 .word 65 .word 18
.word 65 .word 18 .word 64 .word 18
.word 64 .word 18 .word 63 .word 19
.word 63 .word 19 .word 62 .word 20
.word 62 .word 20 .word 61 .word 21
.word 61 .word 21 .word 61 .word 22
.word 61 .word 22 .word 60 .word 23
.word 60 .word 23 .word 59 .word 24
.word 59 .word 24 .word 58 .word 25
.word 58 .word 25 .word 57 .word 25
.word 57 .word 25 .word 56 .word 26
.word 56 .word 26 .word 55 .word 27
.word 55 .word 27 .word 54 .word 28
.word 54 .word 28 .word 53 .word 29
.word 53 .word 29 .word 52 .word 30
.word 52 .word 30 .word 51 .word 31
.word 51 .word 31 .word 50 .word 32
.word 50 .word 32 .word 49 .word 33
.word 49 .word 33 .word 48 .word 34
.word 48 .word 34 .word 47 .word 35
.word 47 .word 35 .word 46 .word 36
.word 46 .word 36 .word 45 .word 37
.word 45 .word 37 .word 44 .word 38
.word 44 .word 38 .word 43 .word 39
.word 43 .word 39 .word 42 .word 40
.word 42 .word 40 .word 41 .word 41
.word 41 .word 41 .word 41
.word 41 .word 42 .word 40



101
ANEXO B: PROGRAMA DSP EXTERNO PARA EL AJUSTE DE LA SEAL
DEL ENCODER.

102
ANEXO B: PROGRAMA DSP EXTERNO PARA EL AJUSTE DE LA SEAL
DEL ENCODER.
El Circuito del encoder enva un tren de pulsos, cuyos flancos de subida
son contados por la interrupcin externa del DSP externo. Dado que el disco del
encoder posee 180 ranuras, si se cuenta el nmero de interrupciones cada 1/18 [seg]
se tendr una resolucin de 0.1 [Hz] en la velocidad del motor.
El algoritmo de control utilizado para transformar la seal binaria
entregada por el Encoder a una seal analgica entre 0 y 5 [V], cuenta el nmero de
interrupciones externas cada un dieciochoavo de segundo y luego segn este nmero
se cambia el valor del ciclo de trabajo (Duty cicle) de una PWM. A mayor nmero de
interrupciones, mayor el ciclo de trabajo de la seal PWM. Finalmente la seal PWM
es rectificada obtenindose as una seal anloga proporcional a la velocidad del
motor. A continuacin se pueden observar los diagramas de flujo del programa.

103

Figura VI.1 Diagrama de Flujo del Loop Principal, Interrupcin Externa e Interrupcin por
Timer 1 del cdigo implementado en el DSP externo.

104

Figura VI.2 Diagrama de Flujo de la Interrupcin por Timer 2, del cdigo implementado en el
DSP externo.


105
**********************************************************************
* Programa DSP Externo.
*===========================================================
* Programa que convierte un tren de pulsos de periodo variable en una seal
* anloga entre 0 y 5 V, proporcional al periodo del tren de pulsos.
*===========================================================
**********************************************************************
.include "243_dsk.h"

; definicin de variables


.bss ACCBAJO, 1 ; variable para guardar los LSB del acumulador
.bss ACCALTO, 1 ; variable para guardar los HSB del acumulador

.bss DATON,1 ; variable que guarda valor de la tabla
.bss LEDS,1 ; sealizacin de luces.
.bss VEL,1 ; velocidad del motor
.bss COUNTER,1

; Definicin de interrupciones

.sect "vectors"

RSVECT B 1F00h

INT1 B PHANTOM
INT2 B INT_TIMER
INT3 B INT_TIMER2
INT4 B PHANTOM
INT5 B PHANTOM
INT6 B INT_EXT

.text

;-----------------------------
; Configuraciones generales.
;-----------------------------
LDP #0h ; dirige a pgina de interrupciones
SETC INTM ; Desabilita interrupciones
LDP #0E0h ; dirige a pgina del Watch Dog
SPLK #068h, WDCR ; Deshabilita el Watch Dog timer.
CLRC CNF ; DARAM config, 1=RAM para datos.
CLRC SXM ; Sign extension, 0=supress extension.
CLRC OVM
CLRC XF

;-----------------------------
; Configuracin Timer
;-----------------------------

106
; Configuracin PWM
LDP #0E8h
SPLK #00000h, T1CNT
SPLK #00000h, T2CNT
SPLK #0, T1CMPR
SPLK #0, T2CMPR
SPLK #2500, T1PR
SPLK #8680, T2PR ; el timer 2 cuenta cuantas tics de encoder
; han habido en 1/18 de segundo y con eso
; modifica el duty del PWM entregado
; por el timer 1
; El perdiodo del PWM dado por el timer 1
; es de 1/1000 segundos
; (multiplo de la frecuencia de muestreo del
; DSP que controla el motor)

; se configura con un preescaler de 128
SPLK #0001011101000110b, T1CON
; se configura con un preescaler de 128
SPLK #0001011101000100b, T2CON
SPLK #1000101b, GPTCON
;-----------------------------
; Configuracin Puertos I/O
;-----------------------------
LDP #0E1h ; Dirige a pgina de registro de
; puertos y OCRA,B.
SPLK #001100000000000b, OCRA ; Puerto A como I/O, puerto B0 como
; PWM, y pines 4 y 5 como T1CMP y T2CMP
SPLK #1100000011b,OCRB ; Puerto C y pin D0 como I/O, pin D1
; como XINT2.

;----------------------------------------------------------------------
; Sealizacin y configuracin de valores iniciales de las variables.
;----------------------------------------------------------------------
LDP #04h ; Dirige a pgina de variables.
LACL #1111111100000000b ; #1111111101000000b valor
; para sealizacin.
SACL LEDS ; guarda valor de sealizacin.
LACC #0 ; Carga 0 en acumulador para borrar registros.
SACL DATON ; Borra variable de bits de control


;-----------------------------
; Seteo de interrupciones
;-----------------------------
LDP #0h
LACC IFR ; Load ACC with Interrupt flags
SACL IFR ; Clear all pending interrupt flags
SPLK #100110b, IMR ; Desenmascaro INT2.INT3 e INT6
LDP #0E8h

107
SPLK #080h, EVIMRA ; habilita interrupcin de periodo1.
SPLK #01h, EVIMRB ; habilita interrupcion de periodo2.
LDP #0E0h ; Dirige a pgina de interrupcin externa.
SPLK #111b,XINT2CR ; Configuracin de interrupcin externa.
CLRC INTM ; habilita interrupciones


**********************************************************************
*==========================================================*
* PROGRAMA PRINCIPAL
*==========================================================*
**********************************************************************
;--------------------------------
; LOOP principal del programa
;--------------------------------

LOOP
LDP #04h
B LOOP

**********************************************************************
*==========================================================*
* INTERRUPCIONES
*==========================================================*
**********************************************************************
; Al atender cualquier rutina de interrupcin,
; primero se guardan los valores de los registro de estado
; y del acumulador, de forma que antes de retornar
; se vuelvan a cargar los estados y el valor del acumulador

;==========================
;INTERRUPCION DE TIMER
;==========================

INT_TIMER

SETC INTM ; desactiva interrupciones
MAR *,AR0 ; selecciona el registro AR0 para
; direccionamiento indirecto
LAR AR0,#0200h ; carga en AR0 el valor de la direccin reservada
; en el Linker para guardar los estados.
; En este caso las direcciones son 200 y 201.
SST #1,*+ ; Store Status Register 1 en la direccin 200
; y queda direccionando a la direccin 201
SST #0,* ; Store Status Register 0 en la direccin 201
LDP #04h ; dirige a pgina de variables
SACL ACCBAJO ; guarda en variable ACCBAJO los 16 LSB del
; acumulador
SACH ACCALTO ; guarda en variable ACCALTO los 16 HSB del
; acumulador

108

*---------------------------------------------------------------------------------
; Una vez terminadas las instrucciones propias de la
; interrupcin, se agregan las lneas siguientes
; para recuperar los estados antes del retorno de la interrupcin.

LDP #0E8h ; dirige a pgina de interrupciones
LACL EVIFRA ; carga EVIFRA al acumulador para borrar flags
SACL EVIFRA ; borra los flags
LDP #04h ; dirige a pgina de variables
LACL ACCBAJO ; carga al acumuladorlos 16 LSB
LACC ACCALTO,16 ; carga al acumuladorlos 16 HSB desplazados
; 16 bits a la izquierda (el acumulador es de 32 bits)
MAR *,AR0 ; selecciona AR0 para direccionamiento indirecto
LAR AR0,#0201h ; carga direccin 201 para direccionamiento
; indirecto
LST #0,*- ; Load Status Register 0 de la direccin 201
; y queda apuntando a la direccin 200
LST #1,* ; Load Status Register 1 de la direccin 200
CLRC INTM ; habilita las interrupciones
RET ; retorno de la rutina de interrupcin
; habiendo recuperado previamente el estado
; y el dato del acumulador
;--------------------------------------------------------------------------

;==========================
;INTERRUPCION DE TIMER 2
;==========================

INT_TIMER2

SETC INTM ; desactiva interrupciones
MAR *,AR0 ; selecciona el registro AR0 para
; direccionamiento indirecto
LAR AR0,#0200h ; carga en AR0 el valor de la direccin reservada
; en el Linker para guardar los estados.
; En este caso las direcciones son 200 y 201.
SST #1,*+ ; Store Status Register 1 en la direccin 200
; y queda direccionando a la direccin 201
SST #0,* ; Store Status Register 0 en la direccin 201
LDP #04h ; dirige a pgina de variables
SACL ACCBAJO ; guarda en variable ACCBAJO los 16 LSB del
; acumulador
SACH ACCALTO ; guarda en variable ACCALTO los 16 HSB del
; acumulador
;-----------------------------------
; Inicio cdigo de la interrupcin
;-----------------------------------
LACC #0 ; borra acumulador


109
ZAC
LACL COUNTER
ADD #VELOCIDAD ; Busca segn el valor de counter la
; velocidad asociada a este valor
; en la tabla VELOCIDAD.
TBLR DATON
LACL DATON

LDP #0E8h ; Segn la nueva velocidad ajusta el valor
; del DUTY de la PWM.
SACL T1CMPR
LDP #04h

LACC #0 ; Borra contador.
SACL COUNTER


*------------------------------------------------------------------------------------
; Una vez terminadas las instrucciones propias de la
; interrupcin, se agregan las lneas siguientes
; para recuperar los estados antes del retorno de la interrupcin.

LDP #0E8h ; dirige a pgina de interrupciones
LACL EVIFRB ; carga EVIFRA al acumulador para borrar flags
SACL EVIFRB ; borra los flags
LDP #04h ; dirige a pgina de variables
LACL ACCBAJO ; carga al acumuladorlos 16 LSB
LACC ACCALTO,16 ; carga al acumuladorlos 16 HSB desplazados
; 16 bits a la izquierda (el acumulador es de 32 bits)
MAR *,AR0 ; selecciona AR0 para direccionamiento indirecto
LAR AR0,#0201h ; carga direccin 201 para direccionamiento
; indirecto
LST #0,*- ; Load Status Register 0 de la direccin 201
; y queda apuntando a la direccin 200
LST #1,* ; Load Status Register 1 de la direccin 200
CLRC INTM ; habilita las interrupciones
RET ; retorno de la rutina de interrupcin
; habiendo recuperado previamente el estado
; y el dato del acumulador
;==========================
;INTERRUPCION EXTERNA
;==========================

INT_EXT

SETC INTM ; desactiva interrupciones
MAR *,AR0 ; selecciona el registro AR0 para
; direccionamiento indirecto
LAR AR0,#0200h ; carga en AR0 el valor de la direccin reservada
; en el Linker para guardar los estados.

110
; En este caso las direcciones son 200 y 201.
SST #1,*+ ; Store Status Register 1 en la direccin 200
; y queda direccionando a la direccin 201
SST #0,* ; Store Status Register 0 en la direccin 201
LDP #04h ; dirige a pgina de variables
SACL ACCBAJO ; guarda en variable ACCBAJO los 16 LSB del
; acumulador
SACH ACCALTO ; guarda en variable ACCALTO los 16 HSB del
; acumulador

;-----------------------------------
; Inicio cdigo de la interrupcin
;-----------------------------------
; Esta conversin se realiza cada 200 interrupciones, numero arbitrario y que
; ayuda a involucrar la constante de tiempo del motor en la medicion del sensor.
; Se debe tener en cuenta que para baja frecuencia se muestrea menos veces por ciclo
; que para alta frecuencia con este algoritmo de programa.
;-----------------------------------
ZAC
LACL COUNTER
ADD #1
SACL COUNTER
*--------------------------------------------------------------------------------
; Una vez terminadas las instrucciones propias de la
; interrupcin, se agregan las lneas siguientes
; para recuperar los estados antes del retorno de la interrupcin.

LDP #0E0h ; Dirige a pgina de interrupcin externa.
LACL XINT2CR ; Cargar en acumulador los flags del registro.
SACL XINT2CR ; Borra flags del registro de interrupcin externa.
LDP #04h ; dirige a pgina de variables
LACL ACCBAJO ; carga al acumuladorlos 16 LSB
LACC ACCALTO,16 ; carga al acumuladorlos 16 HSB desplazados
; 16 bits a la izquierda (el acumulador es de 32 bits)
MAR *,AR0 ; selecciona AR0 para direccionamiento indirecto
LAR AR0,#0201h ; carga direccin 201 para direccionamiento
; indirecto
LST #0,*- ; Load Status Register 0 de la direccin 201
; y queda apuntando a la direccin 200
LST #1,* ; Load Status Register 1 de la direccin 200
CLRC INTM ; habilita las interrupciones
; retorno de la rutina de interrupcin
; habiendo recuperado previamente el estado
; y el dato del acumulador
RET
*===========================
* Otras interrupciones
*===========================
PHANTOM RET


111
***************** FIN INTERRUPCIONES *********************

**********************************************************************
*==========================================================*
* TABLAS
*==========================================================*
**********************************************************************

.sect "sentri"

VELOCIDAD
.include "velocidad.txt"


112
Tabla VI.5 Tabla para calcular el PWM del DSP externo
Tabla Velocidad
.word 0 .word 1333
.word 17 .word 1350
.word 33 .word 1367
.word 50 .word 1383
.word 67 .word 1400
.word 83 .word 1417
.word 100 .word 1433
.word 117 .word 1450
.word 133 .word 1467
.word 150 .word 1483
.word 167 .word 1500
.word 183 .word 1517
.word 200 .word 1533
.word 217 .word 1550
.word 233 .word 1567
.word 250 .word 1583
.word 267 .word 1600
.word 283 .word 1617
.word 300 .word 1633
.word 317 .word 1650
.word 333 .word 1667
.word 350 .word 1683
.word 367 .word 1700
.word 383 .word 1717
.word 400 .word 1733
.word 417 .word 1750
.word 433 .word 1767
.word 450 .word 1783
.word 467 .word 1800
.word 483 .word 1817
.word 500 .word 1833
.word 517 .word 1850
.word 533 .word 1867
.word 550 .word 1883
.word 567 .word 1900
.word 583 .word 1917
.word 600 .word 1933
.word 617 .word 1950
.word 633 .word 1967
.word 650 .word 1983
.word 667 .word 2000
.word 683 .word 2017
.word 700 .word 2033
.word 717 .word 2050

113
.word 733 .word 2067
.word 750 .word 2083
.word 767 .word 2100
.word 783 .word 2117
.word 800 .word 2133
.word 817 .word 2150
.word 833 .word 2167
.word 850 .word 2183
.word 867 .word 2200
.word 883 .word 2217
.word 900 .word 2233
.word 917 .word 2250
.word 933 .word 2267
.word 950 .word 2283
.word 967 .word 2300
.word 983 .word 2317
.word 1000 .word 2333
.word 1017 .word 2350
.word 1033 .word 2367
.word 1050 .word 2383
.word 1067 .word 2400
.word 1083 .word 2417
.word 1100 .word 2433
.word 1117 .word 2450
.word 1133 .word 2467
.word 1150 .word 2483
.word 1167 .word 2500
.word 1183 .word 2500
.word 1200 .word 2500
.word 1217 .word 2500
.word 1233 .word 2500
.word 1250 .word 2500
.word 1267 .word 2500
.word 1283 .word 2500
.word 1300 .word 2500
.word 1317 .word 2500


114
ANEXO C: CLCULO DEL TIEMPO MUERTO.

115
ANEXO C: CLCULO DEL TIEMPO MUERTO.
El tiempo muerto se define como el tiempo que se debe esperar entre el
apagado y encendido de dos vlvulas de la misma rama de un puente H para que no
se produzcan cortocircuitos en la fuente DC que alimenta al puente. Este tiempo se
calcula como el mximo tiempo que demora una vlvula en apagarse completamente.
Los tiempos de encendido y apagado de los Mosfets que componen los distintos
puentes H del inversor se pueden apreciar en la siguiente tabla.
Tabla VI.6 Tiempo de Apagado de los Mosfets utilizados y del circuito de disparo.
Componente Tiempo Apagado mx. [ns] Aplicacin
IRFP250 220 Puentes Auxiliares
IRFP540 145 Puente Principal
IRF2113 120 Circuito de Disparo
El algoritmo utilizado para generar este tiempo muerto se basa en el
programa realizado por Carlos Schwartz [12]. Donde el nuevo dato de conmutacin
se presenta en dos etapas en el bus de datos. Primero el nuevo dato se compara con el
valor antiguo de conmutacin y se determina de esta manera que vlvulas deben
apagarse. Mantenindose de esta manera sin encender las vlvulas que no cambian de
estado. Luego de esperar el tiempo muerto correspondiente, se enva el dato de
conmutacin completo, activndose as las vlvulas que deben encenderse. Este
procedimiento se realiza utilizando funciones lgicas entre el dato existente en el bus
y el dato que lo reemplazar.
El cdigo de este algoritmo utiliza 28 instrucciones en el DSP que
demoran 37 ciclos de reloj. Considerando que el DSP utiliza un reloj de 20 [MHz],
entonces cada ciclo del DSP demora 50[ns]. Luego 37 ciclos demoran 1850 [ns], lo
que es casi 9 veces mas de lo que demora la vlvula mas lenta en apagarse.

116
ANEXO D: CLCULO DEL NMERO DE PUNTOS DE LA SINUSOIDE
DISCRETIZADA.

117
ANEXO D: CLCULO DEL NMERO DE PUNTOS DE LA SINUSOIDE
DISCRETIZADA.
La seal que se desea tabular es una sinusoide de amplitud fija de 81
escalones de tensin, 40 niveles positivos, 40 negativos y 0. La frecuencia de esta
sinusoide viene dada por la velocidad con que se lee la tabla de funcin, la que
depende de los intervalos de tiempos con que ocurre la interrupcin por Timer 1 en el
programa del DSP.
Del teorema de Muestreo de Nyquist se sabe que para recuperar una seal
a partir de sus muestras, la frecuencia a la que se debe muestrear la seal debe ser por
lo menos el doble de la componente de frecuencia mxima de la seal muestreada.
Aplicando este teorema a una sinusoide, se tiene que sta puede ser recuperada a
partir de sus muestras si se toman a lo menos dos muestras por ciclo de la seal.
En el caso de la sinusoide que se desea tabular, este teorema entrega
solamente la cantidad mnima de muestras que son necesarias para obtener una
sinusoide a partir de una serie de puntos. Pero si se utiliza una cantidad tan pequea
de puntos la resolucin de la seal es demasiado baja, y no hace uso de todos los
niveles de tensin que se tienen para representar la sinusoide.
Como se observa en la Figura VI.3, la cantidad de puntos N que se
deben elegir para tabular la sinusoide est en directa relacin con la resolucin final
de la seal generada. Por esta razn se deben elegir una cantidad de puntos tal, que
todos los niveles de tensin estn representados, por lo menos una vez, en la tabla de
funcin.

118

Figura VI.3 Sinusoide Tabulada para distinta cantidad de puntos N
Luego, para determinar la cantidad de puntos N, en los cuales estn
representados los 81 niveles de tensin, se debe tener en cuenta que la funcin seno
tiene la variacin de pendiente ms alta en los puntos cercanos al cero, y como se
puede observar de la Figura VI.3 es en este sector de la funcin donde ms niveles
son omitidos al bajar la cantidad de puntos para representar la sinusoide. Se puede
representar la funcin discretizada con la siguiente ecuacin:
) 2 ( 40 ) (
N
x
sen x f = (D.1)
, donde x es un nmero discreto entre 0 y N, y donde N es la mxima
cantidad de puntos en que se ha discretizado la sinusoide.

119
Luego para determinar el valor de N, se puede reemplazar en la ecuacin
D.1, el valor que se desea para f(1), de manera de obligar a la funcin a que en el
sector de mayor pendiente de la sinusoide slo aumente en un nivel de tensin entre
un punto x y el prximo. En este caso, entre f(0) = 0 y f(1) = 1. Reemplazando en
D.1 se tiene:
)
1
2 ( 40 1 ) 1 (
N
sen f = = N = 251,33 = 252 (D.2)
Entonces la mnima cantidad de puntos necesarios para discretizar la
sinusoide utilizando los 81 niveles de tensin disponibles es de 252 datos.
Debido a que la mxima cantidad de datos que permite un registro del
DSP es de 255, se eligieron 255 datos para tabular la sinusoide.


120
ANEXO E: HOJA DE DATOS DEL DSP TMS320F241

121
ANEXO E: HOJA DE DATOS DEL DSP TMS320F241


122



123



124


125



126



127



128



129



130



131



132



133

134
ANEXO F: HOJA DE DATOS DEL REGULADOR TPS75925

135
ANEXO F: HOJA DE DATOS DEL REGULADOR TPS75925


136


137



138



139


140


141


142
ANEXO G: HOJA DE DATOS DEL REGULADOR LM338

143
ANEXO G: HOJA DE DATOS DEL REGULADOR LM338


144



145

146
ANEXO H: HOJA DE DATOS MOSFETS IRF540N

147
ANEXO H: HOJA DE DATOS MOSFETS IRF540N


148


149
ANEXO I: HOJA DE DATOS MOSFETS IRFP250

150
ANEXO I: HOJA DE DATOS MOSFETS IRFP250



151



152

153
ANEXO J: HOJA DE DATOS DRIVER IR 2113

154
ANEXO J: HOJA DE DATOS DRIVER IR 2113


155


156

Você também pode gostar