UNIVERSIDAD NACIONAL DE ASUNCI´ON Facultad de Ingenierıa

Anuncio
UNIVERSIDAD NACIONAL DE ASUNCIÓN
Facultad de Ingenierı́a
Ingenierı́a Electrónica
DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DIGITAL BASADO
EN FPGA DE LA TÉCNICA HARDWARE IN THE LOOP APLICADO A
UN MOTOR ASÍNCRONO TRIFÁSICO
Guido José Valenzano Tocaimasa
Asesores:
Prof. Dr. Raúl Gregor
M.Sc. Ing. José Rodrı́guez
Prof. Ing. Miguel Benı́tez
San Lorenzo, Paraguay
Noviembre de 2013
RESUMEN EJECUTIVO
1
Diseño e implementación de un sistema digital basado en FPGA de la
técnica Hardware in the Loop aplicado a un motor ası́ncrono trifásico
Guido Valenzano, Estudiante.
Raúl Gregor, José Piñeiro, Miguel Benı́tez, Orientadores.
Ingenierı́a Electrónica.
Departamento de Sistemas de Potencia y Control.
Facultad de Ingenierı́a, Universidad Nacional de Asunción.
Resumen—El presente Trabajo Final de Grado (TFG) presenta
el diseño de una plataforma Hardware in the Loop que verifica el
comportamiento de un motor ası́ncrono trifásico y se implementa
en un dispositivo Field-Programmable Gate Array (FPGA). El
diseño de esta plataforma incluye el modelado matemático del
motor ası́ncrono trifásico, diseño de la unidad de procesamiento,
elección de la arquitectura de computador, diseño del juego de
instrucciones, consideraciones de temporización y diseño de los
módulos de entrada/salida. La plataforma se valida, implementando el diseño en una placa de evaluación y comparando los
resultados obtenidos con simulaciones por computadora.
Palabras claves—FPGA, Hardware in the Loop, motor,
máquina ası́ncrona trifásica.
Abstract—This Final Grade Work presents the development
of a Hardware in the Loop platform which emulates the dynamic behaviour of a three-phase asynchronous machine and
is implemented on a Field-Programmable Gate Array (FPGA).
The design of the platform includes the mathematical model of
the three-phase asynchronous machine, design of the processing
unit, selection of computer architecture, design of the instruction
set, timing constraints and design of input/output modules.
The platform is validated with the implementation over an
evaluation board and comparing the results obtained with the
ones performed in computer simulations.
Index Terms— FPGA, Hardware in the Loop, motor, threephase asynchronous machine.
I. I NTRODUCCI ÓN
En los últimos años, el diseño de controladores se ha
visto favorecido por la aparición y uso de herramientas
computacionales para realizar simulaciones de prototipos. El
empleo de este tipo de prácticas permite disminuir los tiempos
de prototipado; sin embargo, el proceso de diseño exige
la implementación real del controlador y su prueba para
detectar posibles errores relacionados con consideraciones o
simplificaciones, imperfecciones en el proceso de fabricación,
o cuestiones relacionadas con la seguridad. Estos inconveG. Valenzano es investigador en el Departamento de Sistemas de Potencia y
Control de la Facultad de Ingenierı́a de la Universidad Nacional de Asunción.
R. Gregor es Docente Investigador de Tiempo Completo y Dedicación
Exclusiva (DITCoDE) y Jefe del Departamento de Sistemas de Potencia
y Control, desempeñando ambos roles en la Facultad de Ingenierı́a de la
Universidad Nacional de Asunción.
J. Rodrı́guez es investigador en el Departamento de Electrónica e Sistemas
de la Universidade de A Coruña.
M. Benı́tez es Jefe de las Cátedras de Sistemas Digitales I y II impartidos
en la Facultad de Ingenierı́a de la Universidad Nacional de Asunción.
nientes difı́cilmente pueden ser observados o previstos en las
simulaciones.
Dentro de la infinidad de procesos sujetos a control, existen
algunos que no pueden mantenerse inactivos por mucho tiempo, que podrı́an resultar riesgosos para realizar procedimientos
experimentales, o que resultan inviables para pruebas de
laboratorio. Por ejemplo: la generación de energı́a eléctrica,
el latir del corazón humano, sistemas de control en vehı́culos,
entre otros. En estos casos es donde resulta valiosa la técnica
Hardware in the Loop, que consiste en realizar simulaciones
con componentes reales en conexión con componentes simulados en tiempo real. Usualmente, el software y hardware
del sistema de control corresponden al sistema real; mientras
que el proceso controlado, consistente en actuadores, procesos
fı́sicos y sensores pueden ser simulados total o parcialmente
[1]. La representación esquemática de esta técnica puede
observarse en la Figura 1.
La técnica Hardware in the Loop ha encontrado aceptación
y crecimiento sostenido en diferentes ramas de la ingenierı́a
y en investigaciones multidisciplinarias. Prueba de ello, son
publicaciones sobre diseño de vehı́culos terrestre y aéreos [2]–
[10], máquinas eléctricas y sistemas de potencia [11]–[15],
aplicaciones médicas [16]–[19], y áreas diversas [20]–[24].
Asumiendo que la precisión lograda en las simulaciones con
la técnica Hardware in the Loop depende de la complejidad
del modelo matemático implementado en la banca de prueba;
resulta evidente la necesidad de recurrir a sistemas digitales
capaces de: otorgar la flexibilidad suficiente para modelar el
proceso y procesar a una velocidad elevada (tiempo real),
de modo a utilizar modelos de cierta complejidad. Tradicionalmente, se han utilizado computadoras convencionales,
microcontroladores de última generación, dispositivos de procesamiento digital de señales (DSP, por sus siglas en inglés),
y dispositivos FPGA (Field Programmable Gate Array). En
la actualidad, la mayorı́a de las investigaciones relacionadas
con la técnica Hardware in the Loop han utilizado dispositivos
FPGA como soporte de hardware [25]–[27].
Por los motivos mencionados anteriormente, y a modo de
Figura 1.
Diagrama de bloques de la técnica Hardware in the Loop.
RESUMEN EJECUTIVO
evaluar experimentalmente la técnica denominada Hardware in
the Loop, en el marco de este trabajo, se pretende implementar
un sistema digital basado en FPGA capaz de reproducir el
comportamiento dinámico de un motor ası́ncrono trifásico, resolviendo las ecuaciones que componen el modelo matemático
del mismo.
El presente documento se organiza de la siguiente manera:
en la sección II se introduce el modelado matemático de la
máquina ası́ncrona trifásica. En la sección III se presentan
las herramientas de hardware y software utilizadas en el
diseño. Posteriormente, se presentan las consideraciones de
diseño e implementación de las distintas unidades funcionales:
unidad de procesamiento (sección IV), unidad de memoria
y contador de programa (sección V), juego de instrucciones
(sección VI), módulo de reloj (sección VII), módulo de salida
(sección VIII), módulo de entrada (sección IX) y unidad de
control (sección X). Luego, en la sección XI se resume la etapa
de diseño y se presenta una perspectiva global del sistema
digital. Posteriormente, en la sección XII se describen las
simulaciones realizadas y presentan los resultados. Finalmente,
en la sección XIII se sintetizan las conclusiones más relevantes
y futuras lı́neas de investigación a partir de este trabajo.
II. M ODELADO MATEM ÁTICO
El modelo matemático del motor ası́ncrono trifásico se encuentra desarrollado en los apartados siguientes. En el apartado
II-A, se presentan las definiciones y supuestos que son tenidos
en cuenta, mientras que en el apartado II-B se detallan las
ecuaciones matemáticas que modelan el sistema. La deducción
de las ecuaciones que se presentan en el apartado II-B pueden
encontrarse en los trabajos de diferentes autores [28]–[30] con
distintos grados de profundidad. En este resumen, sólo las
ecuaciones y relaciones más importantes se tienen en cuenta.
2
Figura 2.
Representación gráfica de un motor ası́crono trifásico.
La sección transversal de una máquina ası́ncrona trifásica
que cumple con éstas condiciones puede verse en la Figura 2.
En general, el subı́ndice s denota variables referidas al estátor,
mientras que las variables referidas al rotor se simbolizan con
el subı́ndice r. Asimismo, las inductancias, corrientes, tensiones y flujo magnético se individualizan en función al eje —a, b
o c— en cuestión. Además de las variables electromagnéticas,
aparecen también en la Figura 2 la posición relativa del rotor
respecto al estátor θr y la velocidad del rotor ωr .
B. Ecuaciones en tiempo continuo y discreto
Las ecuaciones que modelan el comportamiento dinámico
de la máquina ası́ncrona trifásica a nivel electromagnético
pueden escribirse utilizando la representación en espacio de
estados como:
ẋ(t) = A(t)x(t) + Bu(t) .
A. Definiciones y notación
Ciertas definiciones, asunciones y simplificaciones son
necesarias para describir el comportamiento de un motor
ası́ncrono. Éstas, son homogéneas a lo largo de la literatura
[31]–[33] y pueden ser resumidas en los siguientes puntos:
El estátor tiene n inductores idénticos, repartidos uniformemente de manera a formar un sistema n-fásico
balanceado, en estrella y con el neutro aislado. En el
presente trabajo se asume n = 3.
El rotor cuenta con un número idéntico de fases y polos
que el estátor. Si el rotor es de jaula de ardilla, en vez
de bobinas se tienen barras de cobre o aluminio que se
encuentran cortocircuitadas.
La distribución espacial de las fuerzas magnetomotrices
y del flujo en el entrehierro son sinusoidales. Es decir,
se considera únicamente la frecuencia fundamental de la
onda de inducción del entrehierro.
El estátor y el rotor están compuestos por un material
magnético de permeabilidad infinita, por lo que el flujo
magnético se concentra en el entrehierro.
Se desprecia el efecto de las ranuras, considerándose
constante y de espesor despreciable el entrehierro.
Se desprecian los fenómenos de histéresis y saturación,
y en consecuencia las pérdidas magnéticas.
Se ignora el efecto de la temperatura en los materiales.
(1)
T
donde el vector de estado x(t) = [iαs , iβs , iαr , iβr ] , el
vector de entrada u(t) = [uαs , uβs , 0, 0] y las matrices A(t)
y B se definen como:


−c2 Rs
c 3 ωr L M
c 3 Rr
c 3 ωr Lr
−c3 ωr LM
−c2 Rs
−c3 ωr Lr
c 3 Rr 
 ,
A(t) = 
 c 3 Rs
−c4 ωr LM
−c4 Rr
−c4 ωr Lr 
c 4 ωr L M
c 3 Rs
c 4 ωr L r
−c4 Rr
(2)


c2
0
−c3
0
 0

c
0
−c
2
3
B=
.
(3)
−c3
0
c4
0 
0
−c3
0
c4
Asimismo, Rs y Rr son las resistencias de estátor y rotor,
ωr es la velocidad angular del rotor, Ls = Lls + LM , Lr =
Llr + LM son las inductancias del estátor y rotor, y LM es
la inductancia de magnetización. Además, las constantes ci
(i = 1, 2, 3, 4) son definidas como:
LM
Ls
Lr
, c3 =
, c4 =
.
(4)
c1
c1
c1
El modelo de (1) puede llevarse al espacio discreto utilizando el método de Euler. Luego, la predicción de la siguiente
muestra x̂(k + 1) puede expresarse como:
c1 = Ls Lr − L2M , c2 =
x̂(k + 1) = [I + Tm A(k)]x(k) + Tm Bu(k) ,
(5)
RESUMEN EJECUTIVO
3
Figura 3. Representación en forma de sistema del modelo matemático del
motor ası́ncrono trifásico.
donde k representa a valores correspondiente la muestra actual,
Tm el perı́odo de muestreo, e I es la matriz identidad.
Para una máquina con P polos, la dinámica mecánica está
dada por las siguientes ecuaciones:
P
(ψβr iαr − ψαr iβr ) ,
(6)
2
P
d
(7)
Ji ωr + Bi ωr = (Te − TL ) ,
dt
2
donde TL denota el par de carga, Ji el coeficiente de inercia,
ψαβr el flujo del rotor y Bi el coeficiente de fricción viscosa.
Mediante un procedimiento análogo al empleado para hallar
la ecuación (5), se pueden llevar al espacio discreto las
ecuaciones (6) y (7). Definiendo las variables:
Figura 4. Placa de evaluación SP605 de Xilinx. Se resalta con un recuadro
rojo el dispositivo FPGA.
Te = 3
Bi
,
Aω = −
Ji
P
Bω =
,
2Ji
uω = T e − T L ,
3P
[x2 (k)x3 (k) + x1 (k)x4 (k)] ,
4
ω̂r (k + 1) = [1 + Tm Aω (k)] ωr (k) + Tm Bω uω (k) .
Diagrama de la unidad de procesamiento mı́nimo propuesto.
(8)
y haciendo uso de las variables de estado xi (i = 1, 2, 3, 4), las
ecuaciones mecánicas en tiempo discreto se expresan como:
Te (k) =
Figura 5.
subsistemas fueron descritos en el lenguaje VHDL utilizado el
entorno de desarrollo ISE [38] de Xilinx, y simulados mediante
el simulador integrado ISim [39].
(9)
IV. D ISE ÑO DE LA UNIDAD DE PROCESAMIENTO
(10)
La Figura 3 muestra un sistema que modela las ecuaciones
(5), (9) y (10). Las variables de entrada son las tensiones sobre
los bobinados del estátor va , vb , vc , y el par de la carga TL .
La salida del sistema puede ser cualquier parámetro obtenido
a través de operaciones matemáticas sobre las entradas o
variables de estado, siendo las más utilizadas en aplicaciones
de control: el par eléctrico Te , la velocidad del rotor ωr ,
las corrientes del estátor iαs , iβs y las corrientes del rotor
iαr , iβr .
III. R ESTRICCIONES DE HARDWARE Y SOFTWARE
En el marco del presente trabajo, se ha utilizado una placa
de evaluación SP605 del fabricante Xilinx, propiedad del
Departamento de Sistemas de Potencia y Control de la Facultad de Ingenierı́a de la Universidad Nacional de Asunción.
La misma incorpora un FPGA Spartan-6 XC6SLX45T, que
corresponde a una familia entry-level de última generación
[34]; el dispositivo FPGA puede verse señalado en la Figura 4.
La placa SP605 cuenta con una serie de caracterı́sticas y
periféricos [35] que la hacen ✭✭ideal para diseños de bajo
costo y comunicaciones✮✮ [36, p. 5]. Asimismo, se cuenta con
la placa adicional FPGA Mezzanine Card XM105 [37] que
amplı́a el número de pines de entrada/salida y periféricos de
la SP605. Algunas consideraciones de diseño realizadas en
las secciones siguientes, se realizaron a partir del hardware
mencionado. En cuanto al software, los bloques funcionales y
Para el diseño de la unidad de procesamiento, se realizan
algunas consideraciones que derivan en el modelo propuesto.
En el apartado IV-A se analizan las operaciones aritméticas
necesarias para los cálculos del modelo matemático, en el
apartado IV-B se presentan las alternativas de representación
de números reales, ası́ como ventajas y desventajas de cada
una de ellas, y en el apartado IV-C se detalla la unidad de
procesamiento implementada en este trabajo.
A. Análisis de operaciones
Teniendo en cuenta la posterior implementación del diseño
digital sobre un dispositivo FPGA, conviene realizar algunas
simplificaciones en las operaciones matemáticas. En efecto,
una inspección minuciosa de las ecuaciones (5), (9) y (10),
permiten concluir que si:
1. Cada división a realizarse, puede obtenerse multiplicando un número por la inversa del otro,
2. El signo de cada operando puede cambiarse arbitrariamente,
entonces, las operaciones necesarias para los cálculos se reducen a sumas y productos de números reales. Como resultado,
se propone una unidad de procesamiento mı́nimo similar a la
Figura 5, donde a y b son los operandos de entrada, neg(a)
y neg(b) son señales que permiten alterar el signo de a y
b respectivamente, op es el selector de operación, e y es el
resultado.
RESUMEN EJECUTIVO
4
B. Representación de números reales
Al momento de implementar la unidad de procesamiento
mı́nimo de la Figura 5 en un dispositivo FPGA, resulta
imperativo definir el método de representación y aritmética de
números reales. Existen dos alternativas: la primera de ellas
es la representación en punto flotante, con
x ≈ (−1)s × m × be ,
(11)
donde el número real x se aproxima mediante un bit de
signo s, un significando m, una base de exponenciación b
y un exponente e; por otro lado, la segunda alternativa es la
representación en punto fijo, con
x ≈ (−1)s × (p + q) ,
(12)
donde el número real x se aproxima mediante un bit de signo
s, una parte entera p y una parte fraccionaria q. Cada uno
de éstos métodos de representación cuentan con ventajas y
desventajas, relacionadas con aspectos de rango numérico,
velocidad de ejecución de operaciones, consumo de recursos,
estandarización, y soporte por parte de fabricantes.
C. Unidad de procesamiento propuesta
Teniendo en cuenta las consideraciones planteadas en las
secciones anteriores, se propone en este trabajo una unidad de
procesamiento, similar a la Figura 5, donde se representan los
datos utilizando números de punto flotante de precisión simple.
Los bloques que implementan la suma y multiplicación de
números reales, son propiedad intelectual del fabricante Xilinx,
y se encuentran documentados en [40].
Estas elecciones se fundamentan en el amplio rango
dinámico que ofrece la representación de punto flotante, ası́
como la facilidad que otorga para contrastar resultados experimentales con simulaciones hechas por computadora. De igual
manera, se utilizaron los bloques de propiedad intelectual de
Xilinx, debido al alto grado de optimización que presentan, a
la flexibilidad de los mismos, y la integración con el entorno
de desarrollo del fabricante.
V. D ISE ÑO E IMPLEMENTACI ÓN DE LA UNIDAD DE
MEMORIA
Para la elección de la arquitectura propuesta en el apartado
V-B, se han analizado diferentes aspectos que hacen a la
organización de la memoria. Estos aspectos, se encuentran
detallados en el apartado V-A. Además, por su relación con
la unidad de memoria, en la sección V-C se presenta la
implementación del contador de programa.
Figura 6.
Representación gráfica de una unidad de memoria genérica.
1. Arquitectura Princeton o Von Neumann, donde las instrucciones de programa y los datos comparten la misma
unidad de memoria y buses.
2. Arquitectura Harvard, donde las instrucciones y los
datos son almacenados en memorias diferentes, y se
gestionan mediante buses independientes.
Debe notarse que, si se adopta la arquitectura Harvard, deben
elegirse los valores md , wd , mp y wp , donde el subı́ndice d
denota memoria de datos, y el subı́ndice p denota memoria de
programa.
Un último aspecto a tenerse en cuenta, consiste en la
implementación en hardware de los bloques de memoria. En
efecto, los dispositivos FPGA pueden implementar unidades
de memoria mediante bloques RAM dedicados, o utilizando esquemas distribuidos (basados en registros y tablas de
búsqueda). El primer esquema es útil para memorias grandes,
mientras el segundo permite reducir los retardos de propagación en memorias pequeñas.
B. Implementación de la unidad de memoria
En el presente trabajo se utiliza una arquitectura Harvard,
contando con una memoria de programa de wp = 512 palabras
de mp = 36 bits cada una. Asimismo, se tiene una memoria
de datos de wd = 512 palabras de md = 32 bits cada
una. Ambas memorias se implementan utilizando bloques de
memoria RAM dedicados, haciendo uso del Block Memory
Generator de Xilinx [41] e interconectándose mediante interfaz
nativa. Por un lado, la memoria de datos se modela como
una True Dual Port RAM con modo de operación Read-first
para ambos puertos, mientras que la memoria de programa
se modela como una Single Port ROM. Ambas memorias son
inicializadas mediante archivos COE.
La elección de esta arquitectura radica en la flexibilidad que
otorga tener palabras de instrucción mayores a las palabras de
datos, a la hora de diseñar el juego de instrucciones. Asimismo,
A. Consideraciones de la unidad de memoria
Las unidades de memoria se modelan generalmente como
un arreglo de w palabras, capaces de almacenar m bits cada
una. Esta descripción puede verse en forma esquemática en la
Figura 6.
Al momento de diseñar el sistema digital, es importante
elegir cuidadosamente los valores de w y m, de modo a
contar con suficiente memoria para almacenar las constantes,
resultados intermedios y variables de estado.
Otro aspecto importante en el diseño de la unidad de
memoria consiste en la elección de arquitectura, siendo las
alternativas:
Figura 7.
Esquema de una arquitectura de computadoras Princeton.
Figura 8.
Esquema de una arquitectura de computadoras Harvard.
RESUMEN EJECUTIVO
5
(a) SUM, MUL
una arquitectura Harvard permite un mayor throughput pues
los accesos a memoria se producen en forma independiente
para datos e instrucciones. La selección de bloques de memoria RAM dedicados, radica en el tamaño relativamente grande
de ambas memorias; no obstante, esto provee un margen para
aplicaciones más complejas.
(b) MOV
(c) JMP
C. Implementación del contador de programas
El contador de programa es el bloque funcional encargado
de controlar la memoria de programa, y de esta manera,
permitir la ejecución secuencial de instrucciones del código
de programa. En el presente trabajo, el contador de programa
fue implementado utilizando un contador ascendente sı́ncrono
de nueve bits, capaz de direccionar las 512 palabras de la
memoria de programa. Asimismo, cuenta con señales de incremento, y funcionalidad de sobrecarga. Esto último permite
implementar saltos incondicionales en el flujo de ejecución de
un programa.
VI. D ISE ÑO E IMPLEMENTACI ÓN DEL JUEGO DE
INSTRUCCIONES
El diseño del juego de instrucciones ha sido realizado
mediante un análisis previo del código de programa que resuelve el modelo matemático; las caracterı́sticas del mismo, ası́
como el algoritmo que implementa se detallan en el apartado
VI-A. Como resultado, en el apartado VI-B se presentan las
instrucciones implementadas en el diseño digital.
A. Código de programa y requerimientos mı́nimos
El sistema digital que implemente la técnica Hardware in
the Loop, debe resolver las ecuaciones (5), (9) y (10) en forma
iterativa. Para ello, el programa debe ser capaz de:
1. Almacenar los valores constantes,
2. Actualizar los valores de las entradas,
3. Calcular el valor de las variables de estado para el
siguiente instante,
4. Actualizar el valor de las salidas.
En efecto, estos pasos pueden esquematizarse de manera más
precisa y puntual, en el Algoritmo 1, que constituye el código
de programa que se utilizó en el diseño.
Algoritmo 1 Código de ejecución que resuelve el modelo
matemático.
Almacenar las constantes en memoria.
loop
Almacenar las entradas de tensión Va (k), Vb (k), Vc (k).
Calcular las entradas del sistema u1 (k), u2 (k), u5 (k).
Calcular el par eléctrico Te (k) haciendo uso de la ecuación (9).
Calcular las variables de estado en el instante k + 1,
haciendo uso de la ecuaciones (5) y (10).
Actualizar las variables de estado para la siguiente iteración x(k) ←− x(k + 1).
Esperar hasta cumplir la condición de muestreo.
end loop
Recordando el Análisis de operaciones realizado en la
página 3, para el procesamiento de los datos son necesarias
las instrucciones de suma (SUM) y multiplicación (MUL) de
(d) WATCH, FREEZE
Mnemónico
Código binario
Descripción a nivel de registros
SUM
MUL
JMP
WATCH
MOV
FREEZE
0001
0010
0100
0101
0110
0111
M[r3] ←− M[r1] + M[r2]
M[r3] ←− M[r1] * M[r2]
PC ←− r1
FIFO ←− resultado siguiente
M[r2] ←− INREG[r1]
INREG ←− INPUT
Figura 9. Juego de instrucción del sistema digital propuesto. En el formato
de instrucción, los campos que no son utilizados se señalan con color gris.
números reales. Por otro lado, verificando el pseudocódigo,
resulta evidente la necesidad de una instrucción para cargar
los valores en memoria. Para ello, podrı́a implementarse
una instrucción MOV que permita obtener los valores de
las entradas almacenados en registros. De igual manera, la
posibilidad de iterar a través de las instrucciones, implica el
uso de instrucciones de salto. Dado que la iteración se realiza
indefectiblemente, es posible utilizar un salto incondicional,
sin necesidad de implementar control de flujo. Ası́, podrı́a
utilizarse una instrucción JMP.
B. Implementación del juego de instrucciones
Además de las instrucciones planteadas en el apartado
anterior, en la unidad de control del presente trabajo se
han implementado dos instrucciones adicionales: WATCH que
permite almacenar temporalmente el resultado siguiente, para
su posterior envı́o por el módulo de comunicación; y FREEZE
que permite almacenar instantáneamente los valores de los
pines de entrada en unos registros. En la Figura 9 se observan
cada una de las instrucciones del juego de instrucción. Asimismo, se detalla los cuatro formatos de instrucción utilizados
y el número de bits correspondientes a cada campo. De igual
manera, se especifican los códigos binarios de operación para
cada instrucción, ası́ como la descripción de funcionamiento
en lenguaje de transferencia de registros (RTL).
VII. D ISE ÑO E IMPLEMENTACI ÓN DEL M ÓDULO DE RELOJ
Los aspectos que hacen a la temporización del sistema se
presentan a continuación. En particular, en el apartado VII-A
se analizan las condiciones de muestreo que debe cumplir el
sistema, en el apartado VII-B se introduce el modelo utilizado
para calcular el perı́odo que tarda en ejecutarse una instrucción, y en el apartado VII-C se presenta la implementación
del módulo de reloj para el sistema digital propuesto.
RESUMEN EJECUTIVO
6
0.08
0.07
0.06
Probabilidad
A. Restricciones de muestreo
Para el correcto funcionamiento de la técnica Hardware
in the Loop, el sistema digital debe ser capaz de actualizar
las señales de salida y las variables de estado, ante cualquier
variación en las entradas.
En efecto, durante un ciclo de cálculo, se ejecutan λ
instrucciones en perı́odos de Tins cada una. Al final de este
ciclo, se actualizan todas las señales de salida y variables de
estado. Si el perı́odo de muestreo de las señales de entrada es
Ts , para actualizar las señales de salida y variables de estado
antes de la siguiente muestra, debe cumplirse que:
0.05
0.04
0.03
0.02
0.01
0
Ts > λTins ,
(13)
que para una frecuencia de muestreo de 100 kHz, y suponiendo
que se ejecutan 100 instrucciones en cada ciclo de cálculo
resulta en:
Tins < 100 ns .
(14)
B. Perı́odo de instrucciones
En la ecuación (13) de la sección anterior, se ha considerado
que el tiempo Tins era homogéneo para cada instrucción.
Aunque esta suposición es útil para fines educativos, en
implementaciones reales es imposible de lograr. El motivo de
esta variación radica en los diferentes procesos involucrados en
ejecutar una instrucción. Dependiendo del tipo, una instrucción
puede constar de lectura de memoria, procesamiento de datos,
y/o escritura en memoria; donde el perı́odo de tiempo que
requiere cada uno de estos procesos varı́a en función a distintos
parámetros. En consecuencia el perı́odo Tins se modela como
Tins ≡ Tread + Twrite + Tprocessing + Tδ + Tguard ,
(15)
donde Tread , Twrite , Tprocessing representan respectivamente
los tiempos máximo de lectura, escritura en memoria y procesamiento de datos, y se estiman en forma estadı́stica a partir
de simulaciones. Asimismo, se considera el tiempo Tδ como
la suma de todos los retardos de propagación de datos; y se
agrega un tiempo Tguard de guarda para compensar cualquier
error estocástico y para dar mayor robustez al sistema.
C. Tmplementación del módulo de reloj
Con el fin de conocer los lı́mites del sistema propuesto,
en lo que respecta al valor de Tins , se realizaron pruebas de
software exhaustivas al modelo de la unidad de procesamiento
de la Figura 5.
Para ello, se han simulado más de 60.000 operaciones de
punto flotante y se ha medido el tiempo de ejecución de cada
una de ellas. El resultado de estas mediciones aparecen en
forma de histograma en la Figura 10, de la que se puede
concluir que Tprocessing es menor a 25 ns para todos los casos.
Mediante verificaciones similares, también se llegó a la
conclusión que Tread y Twrite son menores a 15 ns, y los
retardos de propagación Tδ se encuentran entre 2 y 10 ns.
A la vista de estos resultados, en este trabajo se ha optado
por un perı́odo de reloj principal Tclk de 20 ns, donde la lectura
y escritura en memoria se ejecutan en un perı́odo de reloj,
mientras que las instrucciones de procesamiento se ejecutan
en dos perı́odos. De esta manera, el perı́odo de instrucción es
Tins es de 80 ns, que cumple con las restricción impuesta en
la expresión (14).
5
10
15
20
Tiempo [ns]
25
30
Figura 10. Probabilidad de la ejecución de una operación de punto flotante,
en una determinada cantidad de tiempo.
Desde un punto de vista de más bajo nivel, el módulo
de reloj fue implementado haciendo uso del Clock Wizard
de Xilinx [42]. A partir de la señal generada por el reloj
diferencial de 200 MHz incorporado en la placa de evaluación,
el módulo de reloj produce la señal de reloj principal de
50 MHz (equivalente a un perı́odo de 20 ns). Asimismo, se
generan otras dos señales auxiliares de 125 MHz (8 ns) y
100 MHz (10 ns), que son utilizadas por el módulo de salida
y el módulo de entrada, respectivamente.
VIII. D ISE ÑO DEL M ÓDULO DE SALIDA
En las consideraciones de temporización se ha supuesto un
muestreo de 100 kHz. Si se considera además que el sistema
debe entregar las tres entradas y seis variables de salida de la
Figura 3, y cada una de ellas son números de punto flotante
de 32 bits; entonces, la tasa de bits asciende a:
Rraw = 100 × 103 × 9 × 32 bits = 28, 8 Mbps ,
(16)
para una transmisión de datos brutos. Esta velocidad se
elevarı́a aún más si el protocolo de transmisión contase con
campos de cabecera y cola.
Tradicionalmente, la comunicación entre un dispositivo
basado en FPGA y una computadora personal se realiza
mediante protocolos serial, paralelo, o I2 C, entre otros. Sin
embargo, ninguno de éstos es capaz de lograr en forma fiable,
tasas de transmisión tan elevadas como la necesaria para este
diseño. Por consiguiente, aparecen como alternativas viables
protocolos más complejos pero veloces como Fast Ethernet o
Gigabit Ethernet, SDI, SATA o PCI-express.
En el marco del presente trabajo, se optó por diseñar un
módulo de comunicación que implemente el protocolo Gigabit
Ethernet, haciendo uso de un bloque de propiedad intelectual
de Xilinx [43]. Esta elección de basa en el amplio uso del
protocolo Ethernet en telecomunicaciones, como también, su
presencia en casi todas las computadoras personales.
IX. D ISE ÑO DEL M ÓDULO DE ENTRADA
En las secciones anteriores han sido desarrollados varios
aspectos fundamentales para el cómputo de las ecuaciones (5),
(9) y (10), sin mencionarse en detalle cómo se adquieren las
tensiones trifásicas de entrada que aparecen en la Figura 3.
A la vista de esto, en el apartado IX-A se introducen las
caracterı́sticas generales de las señales de entradas, mientras
RESUMEN EJECUTIVO
Figura 11.
7
Figura 12.
Diagrama de bloques de la unidad de control.
Figura 13.
Diagrama de estados de la unidad de control.
Diagrama de bloques del módulo de entrada.
que en el apartado IX-B se presenta la implementación del
módulo de entrada propuesto.
A. Caracterización de la señal de entrada
Idealmente, las entradas del sistema representado en la
Figura 3 son tensiones sinusoidales puras. No obstante, en
la mayorı́a de las aplicaciones reales, las entradas están constituidas por tensiones moduladas en ancho de pulso (PWM).
Este tipo de señales presenta un inconveniente que consiste
en la existencia de tres valores estables Vmax , 0 y −Vmax ;
mientras que los sistemas digitales manejan únicamente dos
valores estables. Como consecuencia, es necesario diseñar un
mecanismo que permita representar la señal generada en el
dominio digital, para luego convertir el valor en un número de
punto flotante, capaz de operar en la unidad de procesamiento.
En el marco del presente trabajo se propone la representación
de señales PWM mediante una descomposición en signo y
magnitud, como:
VPWM = (−1)s × M × Vmáx
(17)
donde s representa el signo de la tensión, M representa el valor
en magnitud, y Vmáx es el valor pico de la tensión PWM.
B. Implementación del módulo de entrada
El funcionamiento del módulo de entrada implementado en
el marco del presente trabajo, puede verse esquematizado en la
Figura 11 donde las señales pwm representan las magnitudes
M de la señal PWM trifásica, mientras que la señales sign
representan los correspondientes signos s. Asimismo, el valor
pico Vmax es proporcionado al módulo mediante la señal
ivalue. La instrucción FREEZE almacena los valores de pwm
y sign en unos registros de entrada, activando la señal fetch;
esto permite que el muestreo sea determinı́stico para las tres
tensiones de entrada. Por otro lado, la señal addr permite
elegir la entrada PWM que aparece disponible a la salida dout
del módulo de comunicación; esto sucede cuando se recibe una
instrucción MOV.
X. D ISE ÑO E IMPLEMENTACI ÓN DE LA UNIDAD DE
CONTROL
La unidad de control tiene a su cargo comandar a los demás
bloques funcionales. Para ello, se encarga de la decodificación
de instrucciones obtenidas de la memoria de programa, como
también la generación de señales apropiadas para comandar
la unidad de procesamiento, memoria de datos, contador de
programa, módulo de entrada y módulo de salida. Entre las
funciones que realiza se encuentran:
1. Generar las señales para el incremento o sobrecarga del
contador de programa.
2. Generar las direcciones para lectura de memoria de
datos; y en el caso de escritura, generar las direcciones
y señales de escritura apropiadas.
3. Generar las señales de negación y selección de operación
en la unidad de procesamiento.
4. Proveer del valor pico de tensión al módulo de entrada
(en formato de punto flotante de precisión simple).
5. Generar las señales para almacenar y adquirir datos del
módulo de entrada.
6. Indicar al módulo de comunicación que un resultado
debe ser almacenado temporalmente para su envı́o.
La unidad de control implementada en el presente trabajo
puede ser observada en la Figura 12, mediante una representación en diagrama de bloques. El funcionamiento está divido
en dos bloques principales, el decoder que se encarga de
decodificar las instrucciones conforme aparecen en el bus ins;
y la máquina de estados finitas FSM que se encarga de generar
las señales de control en los instantes de tiempo apropiados.
Entre estos bloques se encuentra un conjunto de registros, que
permite almacenar temporalmente las señales decodificadas,
hasta que son utilizadas por la máquina de estados FSM.
Asimismo, se cuenta con un pequeño bloque WFSM que
implementa una máquina de estados secundaria, que sirve para
generar las señales de control cuando se tiene una instrucción
de tipo WATCH.
La máquina de estados FSM implementa un flujo de estados
como el que se observa en la Figura 13. Básicamente, se consta
de cuatro fases: las primeras tres corresponden a los estados
x1, x2 y x3, respectivamente. La cuarta fase, corresponde
indistintamente a los estados x4 y x5. Las instrucciones SUM,
MUL y MOV, que escriben valores en la memoria de datos,
hacen uso del estado x4. En contrapartida, las instrucciones
JMP, JMP y FREEZE, que no requieren escribir en la memoria
de datos, utilizan el estado x5.
XI. S ISTEMA DIGITAL COMPLETO
Como resultado de cada una de las consideraciones de
diseño expuestas anteriormente, el sistema digital completo
puede verse esquematizado en la Figura 14. En el diagrama de
bloques, se especifican las unidades funcionales del sistema, es
decir, la unidad de procesamiento, las memorias de programa
RESUMEN EJECUTIVO
8
Tabla I
PAR ÁMETROS F ÍSICOS DEL MOTOR AS ÍNCRONO TRIF ÁSICO EMPLEADO EN
LAS SIMULACIONES .
Sı́mbolo
Valor
Resistencia de estátor
Resistencia de rotor
Inductancia de dispersión de estátor
Inductancia de dispersión de rotor
Inductancia de magnetización de estátor
Coeficiente de inercia
Coeficiente de fricción viscosa
Par de polos
Frecuencia nominal
Rs (Ω)
Rr (Ω)
Lls (H)
Llr (H)
Lms (H)
Ji (kg m2 )
Bi (kg m2 /s)
P
fa (Hz)
10.0
6.3
0.43
0.43
0.4212
0.02
0.0022
1.0
50.0
Diagrama de estados de la unidad de control.
XII. S IMULACI ÓN Y PRUEBAS EXPERIMENTALES
Con el propósito de validar el diseño e implementación
del sistema Hardware in the Loop propuesto en las secciones
anteriores, fue diseñado el entorno de simulación genérico que
puede observarse en le Figura 15.
En el entorno de simulación genérico, el bloque Generación
trifásica se encarga de generar las tensiones de entrada Va , Vb
y Vc que excitan al motor. Asimismo, el bloque Modelo del
motor ası́ncrono trifásico implementa el modelo matemático
de la máquina de inducción, ejecutando el Algoritmo 1. Los
valores correspondientes a los parámetros fı́sicos y constructivos que fueron utilizados en las simulaciones se muestran en la
Tabla I, y como parámetros de simulación se han utilizado un
paso Tm = 10 µs, un tiempo inicial t = 0 s y tiempo de parada
t = 2 s. Por otro lado, el bloque Almacenamiento de datos,
almacena en formato de texto los valores de las entradas y
salidas de la Figura 3, y el tiempo de simulación t. Finalmente,
en el bloque Análisis de resultados fueron utilizados para
realizar los análisis preliminares el programa GNU/Octave y
para generar las gráficas finales gnuplot, y lualatex.
Con el propósito de comparar y contrastar los resultados
obtenidos, fueron diseñados dos entornos de simulación: uno
de ellos basado en hardware, utilizando el dispositivo FPGA;
y otro de ellos, basado en software ejecutándose en una
computadora personal. En el entorno por hardware el modelo
matemático del motor ası́ncrono trifásico fue implementado en
código binario correspondiente al diseño; mientras que en el
entorno por software el modelo del motor fue desarrollado
en un programa escrito en lenguaje C. A continuación se
presentan los resultados más representativos.
En la Figura 16 se observa la evolución temporal de las
salidas mecánicas par eléctrico y la velocidad angular del rotor,
mientras que en la Figura 17 se muestra la evolución temporal
de las corrientes iαs e iβs del estátor; todos a frecuencia
nominal fa = 50 Hz. Ambas figuras fueron elaboradas a partir
de los resultados obtenidos por hardware.
En las Figuras 18 y 19 se observa la evolución temporal
del par eléctrico Te y la velocidad angular del rotor ωr para
distintas frecuencias. A medida que la frecuencia fa de la
señal modulante fue disminuyendo, la respuesta se hizo más
rápida a costa de un incremento en el ruido y la aparición de
sobrepicos mayores.
Los resultados obtenidos en ambos entornos de simulación
resultaron idénticos en todas las simulaciones. Esto permite
concluir que el error es nulo entre los entornos de simulación.
De esta manera, resulta validado el diseño e implementación
del sistema digital propuesto, puesto que el mismo implementa exitosamente el modelo matemático del motor ası́ncrono
trifásico en operaciones de punto flotante de precisión simple.
14
12
10
8
(a)
Par Te [Nm]
y datos, el contador de programas, los módulos de entrada y
salida, la unidad de control y el módulo de reloj. Asimismo, se
indica mediante lı́neas llenas, el flujo de datos entre bloques
funcionales, y mediante lı́neas punteadas, la relación entre los
bloques y el módulo de reloj.
6
4
2
0
-2
-4
0
0.2
0.4
0.6
0.8
Tiempo [s]
1
1.2
1.4
1.6
0
0.2
0.4
0.6
0.8
Tiempo [s]
1
1.2
1.4
1.6
350
300
(b)
Velocidad angular ωr [rad/s]
Figura 14.
Parámetro
250
200
150
100
50
0
Figura 15.
Diagrama de bloques de un entorno de simulación genérico.
Figura 16. Evolución temporal a frecuencia nominal del (a) Par eléctrico,
(b) Velocidad angular.
RESUMEN EJECUTIVO
9
300
20
200
180
Corriente iαs [A]
10
(a)
(a)
5
200
150
(b)
100
Velocidad angular ωr [rad/s]
15
Velocidad angular ωr [rad/s]
250
50
0
160
140
120
100
80
60
40
20
0
-5
0
0.2
0.4
0.6
0.8
0
1
0
0.2
0.4
Tiempo [s]
0.6
0.8
1
0.6
0.8
1
Tiempo [s]
140
70
120
60
-20
0
0.2
0.4
0.6
0.8
Tiempo [s]
1
1.2
1.4
(c)
1.6
20
100
80
(d)
60
40
Velocidad angular ωr [rad/s]
-15
Velocidad angular ωr [rad/s]
-10
20
15
0
50
40
30
20
10
0
0.2
0.4
0.6
0.8
0
1
0
0.2
0.4
Tiempo [s]
30
5
0
(e)
-5
-10
0
0.2
0.4
0.6
0.8
Tiempo [s]
1
1.2
1.4
1.6
10
0
0.2
0.4
0.6
0.8
1
Figura 19.
Evolución temporal de la velocidad angular del rotor ωr a
frecuencias menores que la nominal, en simulaciones por hardware. (a)
Frecuencia fa = 40 Hz. (b) Frecuencia fa = 30 Hz. (c) Frecuencia
fa = 20 Hz. (d) Frecuencia fa = 10 Hz. (e) Frecuencia fa = 5 Hz.
35
30
15
10
(b)
5
Par Te [Nm]
25
Par Te [Nm]
15
Tiempo [s]
20
20
15
10
5
0
0
-5
20
0
Figura 17. Evolución temporal a frecuencia nominal de la (a) Corriente ias
del estátor, (b) Corrientes ibs estátor.
(a)
25
5
-15
-20
Velocidad angular ωr [rad/s]
Corriente iβs [A]
10
(b)
Tiempo [s]
35
0
0.2
0.4
0.6
0.8
-5
1
0
0.2
0.4
Tiempo [s]
0.6
0.8
1
Tiempo [s]
60
50
50
40
de máquinas eléctricas y sistemas fı́sicos. Por estos motivos,
es posible concluir que el diseño propuesto constituye una
opción útil para simulaciones Hardware in the Loop, y en
particular, para la validación del diseño de controladores de
motores ası́ncronos trifásicos.
En lo que respecta a las futuras lı́neas de investigación a
partir del desarrollo de este trabajo, podrı́an ser:
40
(d)
20
Par Te [Nm]
(c)
Par Te [Nm]
30
30
20
10
10
0
0
-10
0
0.2
0.4
0.6
0.8
-10
1
0
0.2
0.4
Tiempo [s]
0.6
0.8
1
Tiempo [s]
30
25
(e)
Par Te [Nm]
20
15
10
5
0
-5
-10
0
0.2
0.4
0.6
0.8
1
Tiempo [s]
Figura 18. Evolución temporal del par eléctrico Te a frecuencias menores
que la nominal, en simulaciones por hardware. (a) Frecuencia fa = 40 Hz.
(b) Frecuencia fa = 30 Hz. (c) Frecuencia fa = 20 Hz. (d) Frecuencia
fa = 10 Hz. (e) Frecuencia fa = 5 Hz.
XIII. C ONCLUSI ÓN Y TRABAJOS FUTUROS
En el marco de este Trabajo Final de Grado, se ha diseñado
un sistema digital basado en FPGA de la técnica Hardware
in the Loop, aplicado a un motor ası́ncrono trifásico. Para
ello, ha sido desarrollado el modelo matemático de la máquina
ası́ncrona trifásica, y en función al modelo, se han diseñado
los distintos bloques funcionales que componen al sistema,
ası́ como el código de programa; para finalmente llevar a la
implementación del diseño en una placa de evaluación. Las
consideraciones hechas a lo largo del diseño resultaron en un
diseño robusto y flexible, que presentó un error nulo en las
pruebas experimentales. En este sentido, cabe destacar además,
que la flexibilidad del sistema permite plantear otros tipos
1. La introducción de nuevas caracterı́sticas al diseño digital propuesto, tales como: implementar una comunicación bidireccional con auto-negociación Ethernet
10/100/1000; extender la arquitectura y caracterı́sticas
de la unidad de procesamiento para incluir operaciones
lógicas sobre datos de 32 bits, saltos incondicionales,
pruebas lógicas del tipo if-else, y periféricos tales como
contadores y temporizadores; implementar un sistema
de interrupciones, capaz de modificar el flujo normal
del código de programa.
2. La optimización del diseño digital propuesto, incluyendo: reducir la frecuencia de reloj, utilizar una unidad
de procesamiento basada en operaciones de punto fijo,
e implementar un esquema de paralelización para las
operaciones de suma y multiplicación.
3. Modelar otros sistemas fı́sicos, relacionados o no con
sistemas de potencia.
4. Desarrollar investigaciones en el campo de las telecomunicaciones, utilizando el protocolo Ethernet y haciendo
uso de los diferentes periféricos con que cuenta el
módulo de evaluación.
R EFERENCIAS
[1] R. Isermann, J. Schaffnit, and S. Sinsel, “Hardware-in-the-loop simulation for the design and testing of engine-control systems,” Control
Engineering Practice, vol. 7, no. 5, pp. 643–653, 1999.
[2] Q. Wu, L. Lei, J. Chen, and W. Wang, “Research on hardware-in-theloop simulation for advanced front-lighting system,” in Computational
Intelligence and Industrial Application, 2008. PACIIA’08. Pacific-Asia
Workshop on, vol. 2. IEEE, 2008, pp. 671–675.
RESUMEN EJECUTIVO
[3] M. Short and M. Pont, “Hardware in the loop simulation of embedded
automotive control system,” in Proceedings of the 8th International
IEEE Conference on Intelligent Transportation Systems. IEEE, 2005,
pp. 426–431.
[4] J. Brunet and L. Flambard, “A hardware in the loop (hil) model
development and implementation methodology and support tools for
testing and validating car engine electronic control unit (ecu),” The
International Conferences on CAE and Computational Technologies for
Industry.(TCN CAE), pp. 5–8, 2005.
[5] S. Raman, N. Sivashankar, W. Milam, W. Stuart, and S. Nabi, “Design
and implementation of hil simulators for powertrain control system software development,” in American Control Conference, 1999. Proceedings
of the 1999, vol. 1. IEEE, 1999, pp. 709–713.
[6] B. Powell, N. Sureshbabu, K. Bailey, and M. Dunn, “Hardware-inthe-loop vehicle and powertrain analysis and control design issues,” in
American Control Conference, 1998. Proceedings of the 1998, vol. 1.
IEEE, 1998, pp. 483–492.
[7] C. Frangos, “Control system analysis of a hardware-in-the-loop simulation,” Aerospace and Electronic Systems, IEEE Transactions on, vol. 26,
no. 4, pp. 666–669, 1990.
[8] T. Sudiyanto, A. Budiyono, and H. Sutarto, “Hardware in-the-loop
simulation for control system designs of model helicopter,” eMR, vol. 16,
no. 1, p. 8, 2005.
[9] B. Naasz, R. Burns, D. Gaylor, and J. Higinbotham, “Hardware in the
loop testing of continuous control algorithms for a precision formation
flying demonstration mission,” in 18th International Symposium on
Space Flight Dynamics, vol. 548, 2004, p. 53.
[10] N. Gans, W. Dixon, R. Lind, and A. Kurdila, “A hardware in the loop
simulation platform for vision-based control of unmanned air vehicles,”
Mechatronics, vol. 19, no. 7, pp. 1043–1056, 2009.
[11] J. Toman, Z. Ančı́k, and V. Singule, “Hardware-in-the-loop testing of
control algorithms for brushless dc motor,” in Mechatronics. Springer,
2012, pp. 165–173.
[12] A. Saleem, R. Issa, and T. Tutunji, “Hardware-in-the-loop for on-line
identification and control of three-phase squirrel cage induction motors,”
Simulation Modelling Practice and Theory, vol. 18, no. 3, pp. 277–290,
2010.
[13] C. Graf, J. Maas, T. Schulte, and J. Weise-Emden, “Real-time hilsimulation of power electronics,” in Industrial Electronics, 2008. IECON
2008. 34th Annual Conference of IEEE. IEEE, 2008, pp. 2829–2834.
[14] B. Lu, X. Wu, H. Figueroa, and A. Monti, “A low-cost real-time
hardware-in-the-loop testing approach of power electronics controls,”
Industrial Electronics, IEEE Transactions on, vol. 54, no. 2, pp. 919–
931, 2007.
[15] O. Crăciun, A. Florescu, I. Munteanu, A. I. Bratcu, S. Bacha, and
D. Radu, “Hardware-in-the-loop simulation applied to protection devices
testing,” International Journal of Electrical Power & Energy Systems,
vol. 54, pp. 55–64, 2014.
[16] M. Kähler, R. Souffrant, S. Dryba, D. Kluess, R. Bader, and C. Woernle,
“Hardware-in-the-loop-simulator for testing of total hip endoprostheses,”
in 4th European Conference of the International Federation for Medical
and Biological Engineering. Springer, 2009, pp. 1785–1788.
[17] R. Souffrant, M. Kähler, S. Dryba, D. Kluess, R. Bader, and C. Woernle,
“Hardware-in-the-loop-simulator for testing of knee endoprostheses,”
in World Congress on Medical Physics and Biomedical Engineering,
September 7-12, 2009, Munich, Germany. Springer, 2010, pp. 2120–
2123.
[18] S. Herrmann, R. Rachholz, R. Souffrant, M. Kaehler, J. Zierath,
D. Kluess, C. Woernle, and R. Bader, “Development of a threedimensional musculoskeletal model for the hardware-in-the-loop joint
simulation,” in 6th World Congress of Biomechanics (WCB 2010).
August 1-6, 2010 Singapore. Springer, 2010, pp. 557–560.
[19] B. Hanson, M. Levesley, K. Watterson, and P. Walker, “Hardware-in-theloop-simulation of the cardiovascular system, with assist device testing
application,” Medical engineering & physics, vol. 29, no. 3, pp. 367–
374, 2007.
[20] Y. Chapuis, L. Zhou, D. Casner, H. Ai, and Y. Hervé, “Fpga-in-the-loop
for control emulation of distributed mems simulation using vhdl-ams,”
in Hardware and Software Implementation and Control of Distributed
MEMS (DMEMS), 2010 First Workshop on. IEEE, 2010, pp. 92–99.
[21] Z. Jiang, R. Leonard, R. Dougal, H. Figueroa, and A. Monti, “Processorin-the-loop simulation, real-time hardware-in-the-loop testing, and hardware validation of a digitally-controlled, fuel-cell powered batterycharging station,” in Power Electronics Specialists Conference, 2004.
PESC 04. 2004 IEEE 35th Annual, vol. 3. IEEE, 2004, pp. 2251–
2257.
[22] H. Temeltas, M. Gokasan, S. Bogosyan, and A. Kilic, “Hardware in the
loop simulation of robot manipulators through internet in mechatronics
education,” in IECON 02 [Industrial Electronics Society, IEEE 2002
28th Annual Conference of the], vol. 4. IEEE, 2002, pp. 2617–2622.
10
[23] R. Wells, J. Fisher, Y. Zhou, B. Johnson, and M. Kyte, “Hardware and
software considerations for implementing hardware-in-the loop traffic
simulation,” in Industrial Electronics Society, 2001. IECON’01. The 27th
Annual Conference of the IEEE, vol. 3. IEEE, 2001, pp. 1915–1919.
[24] D. Bullock, B. Johnson, R. B. Wells, M. Kyte, and Z. Li, “Hardwarein-the-loop simulation,” vol. 12, no. 1. Elsevier, 2004, pp. 73–89.
[25] R. Duelks, F. Salewski, and S. Kowalewski, “A real-time test and
simulation environment based on standard fpga hardware,” in Testing:
Academic and Industrial Conference-Practice and Research Techniques,
2009. TAIC PART 09. IEEE, 2009, pp. 197–204.
[26] D. Majstorovic, I. Celanovic, N. Teslic, N. Celanovic, and V. Katic,
“Ultralow-latency hardware-in-the-loop platform for rapid validation of
power electronics designs,” Industrial Electronics, IEEE Transactions
on, vol. 58, no. 10, pp. 4708–4716, 2011.
[27] F. Adler, A. Benigni, H. Stagge, A. Monti, and R. De Doncker, “A
new versatile hardware platform for digital real-time simulation: Verification and evaluation,” in Control and Modeling for Power Electronics
(COMPEL), 2012 IEEE 13th Workshop on. IEEE, 2012, pp. 1–8.
[28] P. Krause, O. Wasynczuk, S. Sudhoff, and IEEE Power Engineering
Society, Analysis of electric machinery and drive systems, 2nd ed., ser.
IEEE Press series on power engineering. IEEE Press, 2002.
[29] R. Reginatto, “Modelagem do motor de induçao,” Universidade Federal
do Rio Grande de Sul, Porto Alegre, Brasil, Relatório Técnico, Feb.
2006.
[30] R. Gregor, J. Balsevich, and B. Bogado, “Reduced-order observer for
rotor current estimation in speed control of dual-three phase induction
machine,” in Power Engineering, Energy and Electrical Drives (POWERENG), 2011 International Conference on. IEEE, 2011, pp. 1–6.
[31] N. Ab Aziz, “Three-phase squirrel-cage induction motor drive analysis
using labview,” Master’s thesis, University of South Australia, Adelaide,
Australia, Jul. 2006.
[32] J. Aller, Máquinas Eléctricas Rotativas: Introducción a la Teorı́a General, 1st ed., C. Pacheco, Ed. Caracas, Venezuela: Editorial Equinoccio:
Universidad Simón Bolı́var, 2007.
[33] P. C. Krause and C. H. Thomas, “Simulation of symmetrical induction
machinery,” Power Apparatus and Systems, IEEE Transactions on,
vol. 84, no. 11, pp. 1038 –1053, Nov. 1965.
[34] Xilinx, Inc., Spartan-6 Family Overview, 2nd ed., Xilinx, Inc., Oct. 2011,
DS160.
[35] ——, SP605 Hardware User Guide, 1st ed., Xilinx, Inc., Feb. 2011,
UG526.
[36] ——, Getting Started with the Xilinx Spartan-6 FPGA SP605 Evaluation
Kit, 1st ed., Xilinx, Inc., Mar. 2011, uG525.
[37] ——, FMC XM105 Debug Card User Guide, 1st ed., Xilinx, Inc., Jun.
2011, uG537.
[38] ——, ISE In-Depth Tutorial, 14th ed., Xilinx, Inc., Apr. 2012, uG695.
[39] ——, ISE Simulator (ISim) In-Depth Tutorial, 14th ed., Xilinx, Inc.,
Oct. 2012, uG682.
[40] ——, LogiCORE IP Floating-Point Operator v5.0, 5th ed., Xilinx, Inc.,
Mar. 2011, dS335.
[41] ——, LogiCORE IP Block Memory Generator v7.1, 7th ed., Xilinx, Inc.,
Apr. 2012, dS512.
[42] ——, LogiCORE IP Clocking Wizard v5.0, Xilinx, Inc., Mar. 2013.
[43] ——, LogiCORE IP Tri-Mode Ethernet MAC v5.5, 1st ed., Xilinx, Inc.,
Dec. 2012.
Descargar