Documente Academic
Documente Profesional
Documente Cultură
FPGAs used in
Industrial Control Systems
z
z
z
1st case studies series: FPGA-based Current Controllers for AC Drives (40 min, EM)
2nd case studies series: FPGA-based Intelligent Controllers for AC Drives and AC Generators
(40 min, MC)
Induction Motor Control Using Neural Networks
Stand Alone Generator Set Using Fuzzy-Logic and PWM
z
z
z
z
http://vega.unitbv.ro/~ieee
Mission Statement:
This Committee aims to promote professional activities in the area
of low power electronics used in the modern industry, with an
important focus on the design, development, simulation,
verification and testing of digital and analogue circuits integrated
as Systems on Programmable Chips, targeting Field
Programmable Gate Arrays / Application Specific Integrated
Circuits for implementation, and including the use of Hardware
Description Languages or high level programming languages
hardware compilers, as well as embedded electronic systems and
associated software.
z
z
z
z
z
z
z
z
Presenting tutorials
Introduction
Introduction
Traditional methods are not able to cope with increased complexity and
demands of higher levels of systems integration / faster time to market.
Recent advances in CAD methodologies/languages has brought the systems
functional description and hardware implementation closer.
Traditional methods are not able to cope with increased complexity and
demands of higher levels of systems integration / faster time to market.
Recent advances in CAD methodologies/languages has brought the systems
functional description and hardware implementation closer.
The presentation reveals recent work that was carried out in the area of
holistic modelling of engineering systems using HDLs.
The presentation reveals recent work that was carried out in the area of
holistic modelling of engineering systems using HDLs.
Comparative Economics
Integrated Circuits
Cost
(relative)
full-custom
cell
-based
system
gate-array
Volume
10,000
z
RISC and DSP cores are now offered by chip suppliers. They permit the
design of single chip customised advanced integrated processors.
10
Introduction
.100,000
True cost formula shows that the final unit cost is:
50,000
cost = D / N + chip + F
SSI / MSI
11
12
Introduction
Advantages:
Telecom,
Video,
Signal Processing,
Medical Systems,
Embedded Systems (Aircraft, Automotive),
Electrical Systems:
z PWM inverters,
z Power factor correction AC/DC converters,
z Multilevel converters,
z Matrix converters,
z Active filters,
z Fault-detection on power grid,
z Electrical machines control (induction machine drives, multi-machines
systems,
z Neural Network control of induction motors,
z Fuzzy Logic control of power generators,
z Speed measurement
z
z
13
14
Introduction
Introduction
(d)
Algorithm complexity
Introduction
DSP
(a)
(b)
(c)
(d)
:
:
:
:
Algorithmic Constraints:
Boucles
Speed
Boucles
Speed
de
&
de vitesse
vitesse
&
Flux
&
Flux
&
Regulations
Regulators
de
Regulations
Regulators
de flux
flux
isd*
isq
vs*
vsd*
is*
eejj
is
d
vsq*
vs
c1
c2
SVPWM
Current Regulator
Flux Estimator
c3
MLI
PWM
s
is
isd
isq
-j
ee-j
Is
123
123
is1
is2
is3
FPGA
Flux
Reconstruction
Flux
vector
&
estimation
Flux
Reconstruction
Flux
vector
& Speed
Speed
estimation
du
Observation
vecteur
&
du
Observation
vecteur
& flux
flux
Speed
(Sensorless
estimation
operating
&
mode)
Speed
(Sensorless
estimation
operating
& (sensorless)
(sensorless)
mode)
de
de la
la vitesse
vitesse (sans
(sans capteur)
capteur)
(c)
(a)
Transformations
Differences :
Heterogeneous Functions
Various Time Scale
Various Computing Tasks
(b)
Algorithm Architecture Adequation by means of FPGA
16
Introduction
Introduction
This leads to follow up a design methodology
0 0 ; 0 . 5 9 ,6 5 0 0
Err
t
Isq re f
N re f
V s1
N re f
-K -
Cl o ck
a
x l m (a
u lbt )
Xd
p i / 3 0 /W m a x
-K -
I s q re f
P IW _ sa t
P ro d u c t
I s d re f
a d dxrl sp
[ 0 ro
: 1m
023]
t e ta m
rh
c1 Vs1
W re f
teta
Vs2
-K -
a
b
-K -
Wm
1 /W m a x
3
Vs3
Is1
M u lt1
Wm
o n d u le u r
a
x l a d dasu
+ bb
b
R O M (si n )
P si
I s1
AddSub2
a
W
6 .0 9 ; 0 .5 9 , 1 5
Wm
Is2
Cr
C r0
x l m (a
u lbt )
Is3
Cr
340
a
x l a d d su
a -bb
b
2 * p i /3
AddSub3
Cr
t g (de c )
C h a rg e
M SPM
De flu xa g e
+
+
b
a d dxrl sp
[0 ro
:1 m
023]
x (-1 )
N e g a te
a
x l a d d su
a -bb
b
==
==
FF0
M u l t2
A ddSub1
Kid
+
-
x l m (a
u lbt )
b
a d dxrl sp
[ 0 ro
: 1m
023]
+
+
Kpi
X3
R O M (c o s)1
Cr
0 0 ; 0 .5 9 ,6 5 0 0
z -1-1
X2
x l m (a
u lbt )
a d dxrl sp
[0 ro
:1 m
023]
c3
2
Xq
c3 Vs3
I
C o n tr l e d e s
C o u ra n ts
1
X1
AddSub
c2 Vs2
c2
t et a
a
x l a d d su
a -bb
b
R O M (c o s)
Ce m
C em
I s q re f
M ult
Vs1
c1
I sd q m a x
M u l t3
0
1
I sq re f
N re f
-K -
V s1
N re f
Clo ck
te ta m
rh
c1 Vs 1
W re f
-K -
I s q re f
P I W _ sa t
P ro d u c t
I s d re f
Cem
C em
functional simulation
c2 Vs 2
I s q re f
te ta
Vs 2
teta
-K -
c3 Vs 3
I
c3
Wm
Wm
Is 1
I s1
o nd uleu r
C o n t r l e d e s
C o u ra n ts
1 /W m a x
Vs 3
Is 2
W
Cr
6 .0 9 ; 0 .5 9 , 1 5
Wm
Fixed-point quantization
& discrete model
Vs 1
c1
I sd q m a x
c2
-K -
R O M (si n )1
p i /3 0 /W m a x
Data Flow
Graph
Cr
C r0
Is 3
t g (d e c )
Cr
C h a rg e
M SPM
D e fl u xa g e
Cr
Simulink Model
FPGA board
Experimental board
VHDL coding
FPGA target
17
18
C onfigurable
Input/O utput
B lock
Output carry
C onfigurable
Logic B lock
Inputs
[3:0]
Interconnection
Pr ogram m able
N etwork
LUT
LUT
Combinatorial
output
D
Bascule
Flip-Flop
D
Flip-Flop output
Carry
Chemin
Path
19
Input
carry
Clock
20
Head-to-Head
z
Xilinx Virtex-5
1v 65nm copper
207,360 logic cells
11.6 Mb RAM
192 48-bit MAC Unit
(25x18 multipliers, 550MHz)
Altera Stratix II
Spartan 3E
Altera Cyclone II
21
22
Virtex IV Platforms
Virtex-4 Architecture
RocketIO
Multi-Gigabit
Transceivers
LX
Smart RAM
New block RAM/FIFO
FX
SX
Resource
Advanced CLBs
Xesium Clocking
Technology
500 MHz
Logic
14K
14K200K LCs
12K
12K140K LCs
23K
23K55K LCs
0.9
0.96 Mb
0.6
0.610 Mb
2.3
2.35.7 Mb
412
420
48
32
3296
32
32192
128
128512
240
240960
240
240896
320
320640
RocketIO
N/A
024 Channels
N/A
PowerPC
N/A
Ethernet MAC
N/A
Memory
DCMs
DSP Slices
Tri-Mode
Ethernet MAC
XtremeDSP
Technology Slices
SelectIO
10/100/1000 Mbps
PowerPC 405
with APU Interface
1 Gbps SelectIO
ChipSync Source synch,
XCITE Active Termination
23
1 or 2 Cores
2 or 4 Cores
N/A
N/A
24
Altera Stratix
z
COUT
COUT
BUFT
BUF T
Slice S3
Slice S2
Switch
Matrix
SHIFT
Slice S1
Slice S0
CIN
Local Routing
CIN
25
26
LUT
LUT
Slice
LUT
RAM16X1S
D
WE
WCLK
O
A0
A1
A2
A3
RAM32X1S
D
WE
WCLK
O
A0
A1
A2
A3
A4
RAM16X1D
D
WE
WCLK
SPO
A0
A1
A2
A3
DPRA0
DPRA1
DPRA2
DPRA3
LUT
LUT
LUT
Carry
Carry
DPO
Slice 0
PRE
D
Q
CE
CLR
LUT
LUT
Carry
Carry
D PRE
Q
CE
CLR
27
28
Altera Stratix
29
30
Logic Element
Embedded RAM
z
31
32
4 x 4 signed
18
18xx18
18
Multiplier
Multiplier
Output
(36 bits)
8 x 8 signed
12 x 12signed
Contains adder/subtracter/accumulator
z Registered inputs can become shift register
z
18 x 18signed
Data_B
(18 bits)
33
34
35
36
Column interconnects
4, 8, and 16 blocks up or down
37
38
Local Memory
MicroBlaze
32-Bit RISC Core
Bus
Custom
Functions
Arbiter
Fast Simplex
Link
0,1.7
D-Cache
BRAM
Flexible Soft IP
Configurable
Sizes
SRAM
Possible in
Virtex-II Pro
10/100
E-Net
Off-Chip
Memory
PowerPC
405 Core
Bus
Bridge
Data
PLB
Processor Local Bus
Hi-Speed
Peripheral
UART
Dedicated Hard IP
Instruction
OPB
Custom
Functions
CacheLink
39
I-Cache
BRAM
e.g.
Memory
Controller
Arbiter
Stratix: R4 Interconnect
GB
E-Net
Memory
Controller
FLASH/SRAM
40
Embedded Development
Tool Flow Overview
C Code
Standard Embedded
SW Development Flow
Code Entry
Include
the
BSP
C/C++
Cross
Compiler
and Compile the
Software
LinkerImage
2
Load Software
Into FLASH
Embedded
Development Kit
VHDL or Verilog
Standard FPGA
HW Development Flow
HDL Entry
Board Support
Package
System Netlist
Data2MEM
Compiled ELF
Altera Nios II
Compiled BIT
Download Combined
Image to FPGA
Instantiate the
Simulation/Synthesis
System Netlist
and Implement
Implementation
the FPGA
Download Bitstream
Into FPGA
Chipscope
Debugger
41
42
SoPC Builder
Altera Nios II
43
44
Actel Fusion
Temprature
interne
AT9
AG9
AC9
AV9
AT8
AG8
AC8
AV8
AT1
AG1
AC1
AV1
AT0
AG0
AC0
AV0
Analog
Quad
9
Analog
Quad
8
Analog
Quad
1
Analog
Quad
0
31 30
Flash
memory
ADCCLK
ACM
Analog multiplexer
Vcc
(1.5V)
0
5 bits CHNUMBER
[4 :0]
ADC
ADCSTART
12 bits
RTC
CLK
1
Analog Bloc
6 MHz
Freq_div
SYSCLK = 50MHz
45
Actel ProASIC
46
Actel ProASIC
47
48
Modern
Traditional
NOTHING EASIER !
50
Design flow
z
z
z
z
z
z
z
z
Extends the traditional use of Hardware Description Languages (HDLs) for electronic
circuits design, to encompass holistic modelling of more complex engineering systems.
Outcome: design environment that allows all aspects of the system to be simultaneously
considered, therefore maximising performance.
Clear proof of the internationally identified need for the development of holistic models
for complex engineering systems.
Proposed for engineering systems holistic modelling: VHDL = Very high speed
integrated circuit Hardware Description Language. (IEEE, 1993).
52
The mathematical aspects of systems and the electronic hardware design are
simultaneously addressed, in a unique environment.
A cheap & fast VHDL code validation is via a prototype board containing reprogrammable devices - Field Programmable Gate Arrays (FPGAs).
Ability to handle all levels of abstraction. The system can be simulated as an overall
model during all stages of the electronic controller design, which can be
subsequently targeted for system on a chip silicon implementation.
It shortens the time to correct any design problem and it ensures an error free
design before permanent ASIC implementation.
The prototype board can be used for hardware testing other system
components.
53
54
Top-Down Design
VHDL allows the designer to develop and simulate ideas fast, without
getting caught-up in the details of implementation.
55
56
VHDL Description
Design Units
Due to increased demands of higher levels of integration / faster time-tomarket, a standard language, that referenced a higher level of design
abstraction was needed. This stand-alone specification is not dependent on
any specific tool.
z
z
Thus, design concepts can be tested before the investment is made in the
hardware implementation.
A major feature of VHDL is its inherent ability to handle all levels of
abstraction. The designer requires the use of only a single language, as
57
well as a single simulator for all phases of design.
Behavioural Design
Entity: describes the interface between the outside world and the
design. The connection points (PORTs) to the design, the direction
and type of data that flows through these points are defined here.
z
z
z
59
60
BEGIN
IF reset = '0' THEN
reg_in1 := 0;
reg_in2 := 0;
reg_mul := 0;
accum := 0;
ELSIF rising_edge(clk) THEN
accum := accum + reg_mul;
reg_mul := reg_in1 * reg_in2;
reg_in1 := vect_to_int(in1);
reg_in2 := vect_to_int(in2);
END IF;
out1 <= int_to_vect(accum,32) AFTER tco;
END PROCESS;
END behave;
z
COMPONENT multiply
PORT( port1, port2: IN bit_vector(15 DOWNTO 0);
output: OUT bit_vector(31 DOWNTO 0));
END COMPONENT;
COMPONENT buf
PORT( input: IN bit_vector(31 DOWNTO 0);
output: OUT bit_vector(31 DOWNTO 0));
END COMPONENT;
SIGNAL reg_in1, reg_in2: bit_vector(15 DOWNTO 0);
SIGNAL mul, reg_mul, adder, accum: bit_vector(31 DOWNTO 0);
BEGIN
u1: reg
GENERIC MAP(16) PORT MAP(in1, clk, reg_in1);
u2: reg
GENERIC MAP(16) PORT MAP(in2, clk, reg_in2);
u3: multiply
PORT MAP(reg_in1, reg_in2,mul);
u4: reg
GENERIC MAP(32) PORT MAP(mul, clk, reg_mul);
u5: adder
PORT MAP(reg_mul, accum, adder);
u6: reg
GENERIC MAP(32) PORT MAP(adder, clk, accum);
u7: buf
PORT MAP(accum, out1);
END structure;
Structural Design
z
61
Library/Use statement
z
63
>ck qb
>ck qb
65
66
Clock Buffering
z
z
z
In FPGAs the clock tree is already designed and the clock distribution is dealt
with automatically be the synthesis tool.
For ASIC design it may be necessary to design the clock tree manually.
It is important to avoid:
Clock skew generated by unequal depth of clock buffering.
Unequal load-dependent delays generated by unbalanced clock buffers fan-out.
Slow clock edges due to excessive buffer loading.
67
68
zIt
>ck qb
>ck qb
>ck qb
>ck qb
>ck qb
is recommended to avoid
driving the asynchronous reset
input of one flip-flop using the
output of the other.
>ck qb
clk
>ck qb
>ck qb
r
clk
>ck qb
>ck qb
>ck qb
>ck qb
>ck qb
Combinational
Logic
>ck qb
>ck qb
>ck qb
r
clk
clk
69
>ck qb
r
>ck qb
r
>ck qb
r
70
>ck qb
r
re s e t
c lk
>ck qb
d ( in te r n a l)
sel
>ck qb
a + c ;
M UX
c lk ( in t e r n a l)
71
72
To model sequential logic for synthesis, the clock signal must be used,
following some recommendations:
Designate a signal as a clock through its behavioural description (using
IF or WAIT UNTIL statements).
Use at most one clock with at most one active edge.
All procedural statements must completed into a single clock cycle.
Data-dependent loops must be synchronised by clock.
Modelling Clock Signals with WAIT Statements
z
process (sel, a, b, c)
variable in_add : std_logic_vector(5 downto 0);
begin
if sel = '0' then
b
c
in_add <= b ;
else
in_add <= c ;
sel
MUX
end if ;
a
outp <= a + in_add ;
end process ;
73
Write all input signals in the sensitivity list, otherwise they will be
latched.
Avoid instantiating too many components because this worsens the size
of optimised implementation.
74
?
Algorithm
Hardware
architecture
Definition
a set
of steps
rules
Definition
of aofset
of steps
andand
rules
of for the a
development
of
a
design
methodology
design methodology
76
Design Methodology
Design Methodology
Different steps
Objectives
Modular partitioning
of the algorithm
Simulation procedure
Architecture design
78
Design Methodology
Design Methodology
Continuous Model of a FOC Estimator
Modular partitioning of the algorithm
Modle continu
Continuous
Model
Example : dX/dt (X[k+1]-X[k])/Ts
Discrete Model
X/Xb
80
Design Methodology
Design Methodology
Continuous Model
Simplification
r = Lm/(1+Trs) isd
Wdq = w + Lmisq/(Trr)
Discrete Model
ddq/dt = wdq
81
82
Design Methodology
Design Methodology
Continuous Model
Digital Model of a FOC Estimator
isd[k]=a0(sin([k]+60) is1[k] + sin([k]) is2[k])
isq[k]=a1(sin([k]+150) is1[k] + cos([k]) is2[k])
r[k]=a2 isd [k-1]+ a3 r[k-1]
Wdq [k] =a4 w [k] + a5 isq [k] /r [k]
Cem [k] = a6 r [k] isq [k]
sd [k] = a7 isd [k] + a8 r [k]
sq [k] = a9 isq [k]
dq [k] = dq [k-1] + a10 wdq [k-1]
a0 = 2/3
a1 = 2/3
a2 = Lm Te/Tr
a3 = 1 - Te/Tr
a4 = 1
a5 = Lm/Tr
a6 =(3/2)pLm/Lr
a7 = Ls
a8 = Lm/Lr
a9 = Ls
a10 = Te
Discrete Model
84
Design Methodology
Design Methodology
A0 = a0
A1 = a1
A2 = a2Ib/b
A3 = a3
A4 = a4wb/wdqb
A5 = a5Ib/(wdqbb)
A 6 = a6
A 7 = a 7 Ib / b
A8 = a8
A9 = a9Ib/b
A10 = a10wdqb
is1
is2
isd
abc to dq
Transformation
(1)
Low Pass
Filter
(2)
r
Library
isq
dq
Integrator
(4)
dq
dq, TL, sd et sq
Estimator
(3)
isd
TL
85
Design Methodology
sd
sq
86
Design Methodology
Isd*
T L*
Table
(1)
Isq*
is1*
dq to abc
Transformation
(2)
is2*
is3
Level 3
Hysteresis
Controller
(3)
is1
is2
PWM, SVM,
Sb
Regulation
Modulation
Sc
Estimation
Vector Operators
Registers, multiplexers,
demultiplexers,
Adder, multiplier,
sine-cosine, cordic,
Basic Operators
Arithmetic Operators
Sa
is3
Library
87
Level2
Level 1
88
Design Methodology
89
90
Design Methodology
Design Methodology
1) Development of a continuous functional continuous model
Simulation procedure
IFO
Controller +
VSI
Induction
motor
Estimator
algorithm
91
92
Design Methodology
Design Methodology
2) Development of a discrete fixed-point specification model
Choice of the sampling period and fixed-point format of the digital algorithm
SM
Torque control
algorithm
93
Design Methodology
94
Design Methodology
Example2 : Sliding Mode Torque Control specification model
95
96
Design Methodology
Design Methodology
5/6
/3
U[p/Q0]
/2
U[p/Q0]
U[p/Q0]
U[p/Q0]
isa[k]
Sin
S[n/Qn-1]
U[p/Q0]
Sin
x
S[n/Qn-2]
S[n/Qn-2]
x
S[n/Qn-1]
S[n/Qn-1]
isq[k]
dq-to-abc transformation
specification model
Optimization procedure
x
S[n/Qn-2]
A0
S[n/Qn-2]
Sin
S[n/Qn-1]
S[n/Qn-2]
A1
isb[k]
Sin
S[n/Qn-1]
S[n/Qn-2]
S[n/Qn-2]
Simulation procedure
+
U[p/Q0]
S[n/Qn-1]
dq[k]
U[p/Q0]
isd[k]
Dq-to-abc transformation
Data Flow Graph (DFG)
97
98
Design Methodology
Design Methodology
Generation of optimized hardware architecture (A3 methodology)
dq[k]
U[p/Q0]
Factorization
x1
A1
S[n/Qn-1]
A2
x2
S[n/Qn-1]
S[n/Qn-1]
x
S[n/Qn-1]
Execution time
x1
x2
0
/3
/2
5/6
A0
A1
Hardware resources
S[n/Qn-1]
S[n/Qn-1]
S[n/Qn-1]
S[n/Qn-1]
S[n/Qn-1]
S[n/Qn-1]
S[n/Qn-1]
S[n/Qn-1]
S[n/Qn-1]
A1
+
U[p/Q0]
Sin
S[n/Qn-2]
S[n/Qn-1]
FF1
S[n/Qn-1]
S[n/Qn-1]
isa[k]
isb[k]
J
S[n/Qn-2]
Defactorization
FF0
U[p/Q0]
S[n/Qn-1]
S[n/Qn-1]
U[p/Q0]
S[n/Qn-2]
A2
S[n/Qn-1]
Oprations
DFG
FDFG
Addition
Multiplication
Sine
S[n/Qn-1]
+ i [k] i [k] +
sq
sd
Hardware resources
abc-to-dq transformation
Factorized Data Flow Graph (FDFG)
Execution time
99
100
Design Methodology
Design Methodology
1) Modular Hardware Architecture Design
S1
S3
Start
S2
End
S3
Control unit
Simulation procedure
Output Data
Input Data
Optimization procedure
Reset
Clk
Specific
Library
Data-path
Module name
Architecture Design
Latency*TClk
TClk
Clk
Start
Input Data
Inputs[k]
Inputs [k+1]
Inputs [k+2]
End
Output Data
Outputs [k]
Design Methodology
Startn
Sub-Module
1
Endn
Sub-Module n
Sub-Module 3
Input
Data
Sequencer
Output
Data
isa
Sub-Module 2
isb
Reset
Clk
Global sequencer
End
en
102
Design Methodology
Start1
Outputs [k+2]
101
Start
Outputs [k+1]
Data-path
abc-to-dq
isd
Sequencer
Data-path
isq
Sequencer
LP_Filter
transformation
Global Data-path
Module Name
dq
Sequencer
Data-path
Global data-path
Specific
Library
Integrator
Data-path
dq
TL
isd
sd sq
104
Design Methodology
Design Methodology
Mixed Simulation
Environment
Analog
HDL
Simulation
Simulation
Test
Bench
Simulation
Simulation
Behavioral
HDL
Synthesis
System
Level
Circuit
Specifications
Behavioral
Level
RTL or Synthesis
Level
FPGA
Physical
Level
105
ASIC
106
Design Methodology
Design Methodology
3) VHDL coding - Reusability
System
Level
Simulation procedure
Behavioral
Level
RTL or Synthesize
Level
Library
Library
Reuse and IP
Behavioral M odel
Blocks
Reuse and IP
RTL or Synthesize
M odel Blocks
Optimization procedure
Architecture Design
108
Design Methodology
Design Methodology
Functional model
simulation
Architecture
to be tested
Serial
interface
FPGA Target
5
4
Configuration process
Host-PC
Tx
Rx
isd
1
0
Results
isq
-1
Results
Reception
Comparison
-2
isq
-1
-2
-3
-3
-4
-4
-5
-5
0
0.05
0.1
0.15
0.2
0.25
0.3
0.3 5
0.05
0.1
0.15
time(s)
Simulation Results
isd
0.2
0.25
0.3
0.3 5
time(s)
109
110
Design Methodology
Design Methodology
0 .9
0.9
0 .8
0.8
0 .7
0.7
0 .6
0.6
0 .5
0.5
0 .4
0.4
0 .3
0.3
0 .2
0.2
-4
0 .1
0.1
-6
-6
-8
-8
-2
-2
-4
0.0 5
0 .1
0 .15
0.2
time(s)
0.2 5
0 .3
0 .35
0
0
0 .05
0.1
0 .15
0.2
0 .25
0.3
0.0 5
0.1
0 .15
0 .2
time(s)
0 .35
0.25
0.3
0.3 5
0.0 5
0 .1
0 .15
0.2
0.2 5
0 .3
0 .35
time(s)
time(s)
Slight difference between simulation and hardware in the loop results
111
112
Design Methodology
Design Methodology
2) Experimental test
Algorithm
114
Conclusion
Design Methodology
Hardware
architecture
FPGA-Based Current Controllers for
Advantages :
116
Experimental Set-up
Controlled
Inverter
Synchronous Machine
Vf
isa
(a)
(k)Ts
(k-1)Ts
(k+1)Ts
(b)
(k)Ts
(k-1)Ts
TADC
(k+1)Ts
Interface
(b) DSPcontroller:
- VSI limitations
Controller
(c)
(k)Ts
Encoder
Amplification
(k+1)Ts
ADC
Sa Sb Sc
TC
isa
isa
isb
isb
dq
Host PC
References
RS232
117
Experimental Set-up
isb
isbADC Control
ADC
Interface
Encoder
Interface
Serial Interface
FPGA
118
Experimental Set-up
Current sensors
VSI
Interface
Board
FPGA
Spartan3
Encoder
SM
400.000 Gates
AD Conversion Board
119
120
121
122
Start
E
isd*
isq*
dq-to-abc
Sa
Sb
Sc
isb*
isc*
End_AD
isaAD
AD
Interface
Clk
End_OO
isd*
dq-to-abc
isq*
Clk
Reset
isa*
Clk
isbAD
AD Control
dq
Start_OO
Start_AD
isa*
End
isb*
isc*
2 level hysteresis
comparators
Sa
Sb
Sc
Clk
dq
SM
tAD
9 TS = TAD = 2.4 s
9 Tex= TAD+ tIP+ tH2 = 2.74 s
Vrd
wait
Start_AD=1
Start_OO=1
Tex
Encoder
End_AD=1
Start=1
Hardware Architecture
End=1
wait
Application
Sa,b,c[k-1]
tIP
tH2
tAD
Ts
Sample
isa[k-1]
isb[k-1]
dq[k-1]
Application
Sa,b,c[k]
tIP
tH2
tAD
Sample
isa[k]
isb[k]
dq[k]
Sample
isa[k+1]
isb[k+1]
dq[k+1]
Application
Sa,b,c[k+1]
tIP
tH2
124
H
isa
isa
isa
isa
H
isa
isa
isb
isb
H
isa
Execution time = 50 s
isa
isa
isa
isa
isb
isa
isb
Execution time = 50 s
125
126
isa*
isb*
isd*
isq*
dq-to-abc
isa*
isb*
isc*
is*
abc-to-
is*
+
-
+
-
isb<isc
is
Table
is
End
End_OO
Start_OO
ON-OFF Current controller
Start_AD
End_AD
Clk
isaAD
Sa
Sb
Sc
AD
Interface
isbAD
AD Control
Clk
isd*
isa*
dq-to-abc
isq*
dq
Reset
isb*
isc*
Clk
is*
abc-to-
3 level hysteresis
comparators
is*
S
Table
Sa
Sb
Sc
Clk
Clk
is
|isb|<|isc|
Clk
abc-to-
abc-to-
is
End_AD=1
Start=1
Clk
is
End=1
wait
wait
Start_AD=1
Start_OO=1
Clk
is
dq
isa
isb
h&h
Hardware Architecture
Tex
9 TS = TAD = 2.4 s
SM
tAD
Application
Sa,b,c[k-1]
tIP tC tH3 tT
tAD
Ts
Encoder
Vrd
Sample
isa[k-1]
isb[k-1]
dq[k-1]
Application
Sa,b,c[k]
tIP tC tH3 tT
tAD
Sample
isa[k]
isb[k]
dq[k]
Sample
isa[k+1]
isb[k+1]
dq[k+1]
Application
Sa,b,c[k+1]
tIP tC tH3 tT
128
H
is
is
is
is
is
is
is
H
is
H
is
is
is
H
is
is
is
is
is
Execution time = 50 s
Execution time = 50 s
isd*
isq*
dq-to-abc
Start
Start_OO
Start_AD
isaAD
AD
Interface
Clk
Sc
End_AD
End_OO
isd*
dq-to-abc
isq*
Clk
Reset
isa*
Clk
isbAD
AD Control
Sb
End
Sa
isa*
isb*
isc*
130
129
isb*
isc*
2 level hysteresis
comparators
Sa
Sb
Sc
Clk
dq
End_AD=1
Start=1
wait
Start_AD=1
Start_OO=1
Hardware Architecture
End=1
wait
Ts
dq
SM
9 TS = tAD = 100 s
p
Encoder
Vrd
Fs
Start
Ts
Tex
tAD
Sample
isa[k]
isb[k]
dq[k]
tIP tH2
Application
Sa,b,c[k]
tAD
Sample
isa[k+1]
isb[k+1]
dq[k+1]
tIP tH2
Application
Sa,b,c[k+1]
132
isa*
isb*
isa
is
isa
isd*
THD=14.9%
isq*
THD=8.9%
dq-to-abc
isa
isb*
isc*
abc-to-
is* +
+
-
isa
isb
isb<isc
Ts
E
Sa
is
Sb
Table
is
Sc
is
abc-to-
is
SM
dq
Square current vector error (is+is)
Execution time = 50 s
Vrd
133
Clk
AD
Interface
isbAD
AD Control
Clk
isd*
isa*
dq-to-abc
isq*
dq
Reset
isaAD
Clk
isb*
isc*
is*
abc-to-
3 level hysteresis
comparators
is*
S
Table
Sa
Sb
is
wait
|isb|<|isc|
Clk
abc-to-
isa
End_AD=1
Start=1
Clk
is
isa
End=1
wait
Sc
Clk
Clk
End_OO
Start_OO
ON-OFF Current controller
End_AD
End
Start_AD
134
p
Encoder
Start_AD=1
Start_OO=1
Clk
THD=11.1%
THD=8.9%
h&h
Hardware Architecture
9 TS = tAD = 2.4 s
9 Tex= tAD+ tIP +tC+ tH3+tT = 2.92 s
Controller computation time
Ts
Fs
Tex
Start
tAD
Sample
isa[k]
isb[k]
dq[k]
Ts
tIP tC tH3 tT
Application
Sa,b,c[k]
tAD
Sample
isa[k+1]
isb[k+1]
dq[k+1]
tIP tC tH3 tT
Application
Sa,b,c[k+1]
135
Execution time = 50 s
136
isq *
Vsd
isd *
Vsq*
+
-
dq-to-abc
Vsa
Vsb*
Vsc*
PWM
Modulator
Sa
Sb
Sc
isd
isa isb isc
dq-to-abc
isq
dq
SM
p
Encoder
Vrd
137
138
Start
End
Clk
Carrier
End_VC
End_AD
Algorithm controller
Ts = tPWM/2
Clk
Start
Vsd*
isd*
is1AD
AD
Vsa*
Sa
PI
Interface
Clk
is2AD
dq-to-abc
Vsq*
isq*
PWM
End_VC
Sb
Vsc*
PI
AD Control
Vsb*
Tex
Sb
tPWM/2
tPWM/2
Clk
Clk
isb
isa
isq
isd
Clk
tAD
Clk
abc-to-dq
Sample
isa[k]
isb[k]
dq[k]
Clk
dq
tAD
tVC
Application
Vsa,b,c*[k]
9 TS = TPWM / 2
Hardware Architecture
139
Sample
isa[k+1]
isb[k+1]
dq[k+1]
tVC
tAD
Application
Vsa,b,c*[k+1]
Sample
isa[k+2]
isb[k+2]
dq[k+2]
tVC
Application
Vsa,b,c*[k+2]
140
1 >
Carrier
Ts
Ts
2 >
1) Ch 1:
2) Ch 2:
Carrier vertex
1 >
tk
2 >
Start
1) Ch 1:
2) Ch 2:
Tex
1 >
End_VC
2 >
200 mVolt 10 us
2 Volt 10 us
Start
Tex
tk+1
tk+2
tk+m
Sample
isa[k]
isb[k]
dq[k]
End_VC
Sample
isa[k+m]
isb[k+m]
dq[k+m]
Application
Vsa,b,c*[k]
9 TS = 5 s
1) Ch 1:
2) Ch 2:
tk+m+1
Tex
tk+m+2
2 >
Carrier vertex
1 >
Ts
Tex
200 mVolt 10 us
2 Volt 10 us
Application
Vsa,b,c*[k+m]
Start
1) Ch 1:
2) Ch 2:
141
End_VC
142
9Experimental Results
9Experimental Results
isa
Vsa
isd
Carrier Frequency = 1KHz
isb
1 >
isa
Vsb
isq
THD=11.1%
THD=11.1%
2 >
1) Ch 1:
2) Ch 2:
25 ms
25 ms
isa
isa
Carrier Frequency = 3KHz
1 Volt
1 Volt
isb
isb
THD=4.1%
143
144
1
Tsd
= L
sd
(t )
Lsq dq
Lsd
1
dq (t )
i
Lsq
sd + Lsd
1
isq 0
Tsq
V sd
Vsq
dq (t ) i
rd
1
Lsq
M sr
Lsq
i sd [ k + 1] =
i sq [ k + 1] =
where
T
Ts
(V sd [ k ] e sd [ k ]) + (1 s )i sd [ k ]
T sd
L sd
Ts
T
(V sq [ k ] e sq [ k ]) + (1 s )i sq [ k ]
L sq
T sq
e sd [ k ] = L sq dq [ k ]i sq [ k ]
e
[
k
]
=
L
sq
sd dq [ k ]i sd [ k ] + M sr dq [ k ]i rd [ k ]
145
146
sin( dq ) V sj
cos( dq ) V sj
isdqj[k+1]
q
isdq1[k+1]
tj[k]
isdq*[k]
isdq
r j
r*
r
isdq
[ k + 1] = isdq
[ k ] isdqj [ k + 1]
isdqj[k+1]
Ts
Ts
j
j
isd [ k + 1] = L (Vsd [ k ] esd [ k ]) + (1 T )isd [ k ]
sd
sd
Ts
Ts
j
j
isq [ k + 1] =
(Vsq [ k ] esq [ k ]) + (1
)isq [ k ]
Lsq
Tsq
where
=
e
[
k
]
Lsd dq [ k ]isd [ k ] + M sr dq [ k ]ird [ k ]
sq
*[k]
t3
isdq[k]
147
t2
isdq1[k+1]
t
t1 6
t0,7
t4
t5
isdq[k]
148
Start
Start_AD
isq*
End_AD
Sa
isd*
(isdqj)(j=0..7)
Prediction
isd*
isq*
Sb
Optimization
EAD
isaAD
isbAD
AD Control
Sc
esd esq
isd
Coupling
terms
isq
Clk
m
isa
abc-to-dq
End
Start_Pr
Predictive current controller
Algorithm controller
End_Pr
Reset
E
AD
Interface
Prediction
isd
isa
abc-to-dq
isb
Clk
Clk
esq
End_AD=1
Start=1
wait
Start_AD=1
Start_OO=1
Clk
Speed
Estimator
End=1
wait
Clk
dq
+
+
offset
isb
Coupling
terms
isq
Sa
Sb
Sc
dq
Clk
Ts
dq
d/dt
SM
dq
Fs
Start
9 TS = 100 s
Tex
tAD
Ts
tAD
tPr
Sample Application
isa[k] isb[k]Sa,b,c[k]
dq[k]
Sample Application
isa[k+1] Sa,b,c[k+1]
isb[k+1]
dq[k+1]
149
tPr
150
9 Experimental Results
9 Experimental Results
isa
isa
isb
THD=8.8%
isq
isq
THD=8.8%
isd
isa
Vsa
isb
+ Isn
+ Isn
- Isn
isd
- Isn
Vsb
151
152
Problem Positioning
153
154
9 Current controller
V sd
q isq
Vsq
dq
sd
isd
ird
dq
V sq
Vsd
d sd
= R s i sd +
sq
dt
d sq
= R s i sq +
+ sd
dt
= Lsd isd + M sr ird
isd*
isq*
dq-to-abc
isa*
Sa
isb*
isc*
Sb
Sc
isa isb isc
sq = Lsq isq
Vrd
Sa
dq
3
Te = p ( sd isq sq isd )
2
SM
p
Encoder
Vrd
155
156
9 Current controller
Current Controller Timing Diagram
Ts=100 s
Tr
Ts=100 s
Tex=2.74s
TAD
TCC
tk
Isn
TAD
Application
Sa,b,c[k]
Sample
isa,b[k+1]
dq[k+1]
PI
Kv
isq
1
T isq s + 1
isq
pMsrird
p
Js + f
TCC
time
tk+1+Tex
Application
Sa,b,c[k+1]
isq
- Isn
tk+1
tk+Tex
Sample
isa,b[k]
dq[k]
+
-
isa
isd
isa
isb
isb
157
158
Kv
Proportional
Gain
isq
isq
1
T isq s + 1
pMsrird
p
Js + f
+
-
PI
(s +
1
1 2
)
2Tisq
=1
External speed control loop transfer function
Re
=1
PI
Im
1 .5 K v p M sr i rd
JT isq
=
1 .5 K v p M sr i rd
1
i
s +
s+
Tisq
JT isq
+
-
Tr
*
=
1 2
i
(s +
)
2T isq
Roots Locus
159
1 .5 K p K v p M sr i rd
=
*
JT isq
1 .5 K p K v p M sr i rd
1
s +
s+
JT isq
2T isq
2n
n2
160
400V/50Hz
+1
[k ] =
Current Controller
Speed Controller
*
isd*
dq-to-abc
isq*
Kv
isa*
Sa
isb*
isc*
Sb
Sc
1024 points
Absolute Encoder
4 m [ k ] m [ k 1]
(
)
1024
T
Internal Loop
SM
SM
dq
d/dt
[ k ] = Sense
Encoder
Speed Estimator
Vrd
4 1
1024 Tk
161
162
Sense Computation
P0[k]
P1[k]
P0[k+1]
P1[k+1]
Sense
+1(positive)
-1(negative)
+1(positive)
-1(negative)
+1(positive)
-1(negative)
+1(positive)
-1(negative)
Data-Path
P0
Counter
ETAT0
Clk
1 2
nk 0
Fcompt
nk+1
Rc
1/Fc
P0
Compteur
[ k ] = Sense
n
Tk = k
Fc
4 1
1024 T k
en2
Clk d0=0
en1
Clk
ETAT2
Fcompt=1
Clk
Sense Computation
+
-||
en0
en1
XOR
d0
Start=1
ETAT1
en0=1
P1
en0
nk
||
4 1
[ k ] = Sense
1024 Tk
Reset
Control Unit
T(k+1)
Tk
d0=1
ETAT3
en2=1
Clk
ETAT4
en3=1
en3
Clk
ETAT5
en1=1
Rc=1
Clk
164
9 Experimental Set-up
400V/50Hz
Vrd
Ts=100 s
End
Clk
Speed controller control unit
is1_AD
is2_AD
is1*
is2*
is3*
Clk
AD
AD
control Clk
Interface
*
P-PI
Clk
isd*=0
isq*
(dq/123)
Clk
Clk
Speed
estimator
3 Phases
hysteresis
controller
TAD
offset
tk
isa
Tex=3.45s
C1
C2
C3
Clk
isb
Ts=100 s
Sample
isa,b[k]
dq[k]
TCC TSC
tk+Tex
Application
Sa,b,c[k]
TAD
tk+1
tk+1+Tex
Sample
isa,b[k+1]
dq[k+1]
Application
Sa,b,c[k+1]
Encoder
Interface
TCC TSC
Amplification
A/D
time
Sa Sb Sc
Speed
Controller
isa
isa
isb
isc
isbAD Control
dq
AD
Interface
Host-PC
Note : The speed estimator works independently from the other modules and is
synchronized to the state changes of the LSB of the encoder
References
Serial Interface
RS232
FPGA
Spartan3 Xc3s400
(400.000 gates)
165
166
9 Experimental Results
9 Experimental Results
Current waveforms
isa
=200 rad/s
isa
=200 rad/s
=0 rad/s
isb
isb
=0 rad/s
=-200 rad/s
=200 rad/s
TL=5Nm
=-200 rad/s
167
168
Conclusions
IM
400V/50Hz
VSI Interface
An original speed estimator has been developed, it allows to obtain the best accuracy
Gate pulses
An original speed estimator has been developed, it allows to obtain the best accuracy
controller
algorithm
The obtained experimental results give proof of the ability of the developed speed control
system to achieve an efficient and robust speed control under different operating conditions
isa
isb
isc
AD
Interface
AD
Control
12
12
AD
10
Encoder
References
RS232
UART
FPGA
169
170
Interface
and
Control
Boards
IM
VSI
AD Converters
Board
VSI
Interface
Board
FPGA
Spartan 2
100.000 Gates
172
Load
VSI
Incremental
Encoder
Induction
Machine
University of Aleppo
VSI Interface
Board
173
174
FPGA Spartan 3
400.000 Gates
C lock
(R eversible up-down counter)
Start
R eset
O U T_SIGN AL
C O N TR O L
C O M PAR ATO R
C lock
(PW M )
N ext
Address
generator
M em ory
(Sinewave)
175
176
177
if direction='1' then
if v<val_max then
v:=v+1;
else
v:=v-1;
direction:='0';
end if;
else
if v>-val_max then
v:=v-1;
else
v:=v+1;
direction:='1';
end if;
end if;
end if;
counter_out_bus<=v;
end process;
adr_gen: process (next_pulse,reset)
179
178
begin
if reset='1' then
adr<=0;
elsif next_pulse'event and
next_pulse='1' then
adr<=(adr+1) mod 18;
end if;
end process;
comparator:
process(counter_out_bus,data)
begin
if data<counter_out_bus then
out_signal <= '0';
else
out_signal <= '1';
end if;
end process;
memory: process(adr)
type mem_data is array (0 to 17) of integer;
variable d : mem_data :=(-250,-230,-190,100,0,100,190,230,250,250,230, 90,100,0,
-100, -190,-230,-250);
begin
if adr >=0 and adr<18 then
data<=d(adr);
else
data<=0;
end if;
end process;
control:
process(start,clock,counter_out_bus,
Max_count)
variable temp_Max_count: integer;
begin
if Max_count'event then
temp_Max_count:=Max_count;
end if;
if start='1' and start'event then
temp_Max_count:=Max_count;
val_max<=temp_Max_count;
reset<='1';
next_pulse<='0';
elsif start='1' and clock='0' and
clock'event then 180
reset<='0';
end if;
if
counter_out_bus=-val_max
clock='0' and clock'event then
next_pulse<='1';
val_max<=temp_Max_count;
elsif clock='1' then
next_pulse<='0';
end if;
if start='0' then
reset<='1';
end if;
end process;
end behav;
library ieee;
use ieee.std_logic_1164.all;
entity test is
end test;
end behav;
and
181
Achievements
Original design of a 3-phase PWM generator, successfully
182
184
L s L r L2m
L
=
Lr
R
R
=
s
L
e = m R i s + j L i s + L i s = L m R i s + j s
r
r r
er
r r
m s
r r
er
Lr
Lr
u = u
s
i = i s
)]
)
185
186
Simulation
z The
z Slip
frequency is kept constant for any load torque & any rotor speed.
Basic Control
Algorithm
Improved
Control
Algorithm
z The
z Very
188
189
190
Achievements
192
RECTIFIER
Project Background
In a given synchronous machine the operational speed is dependent on
the desired output frequency.
PWM INVERTER
GENERATOR
V DC
Synchronous
Generator
Diesel Engine
3 phase
output
FPGA Controller
Fuzzy Control
The research aim is to design and build a control system for a stand
alone variable speed PM synchronous generator.
PWM Control
Fuel Control
This has been developed on the basis of fuzzy logic, using VHDL and
is implemented in Xilinx FPGA.
193
194
Designed using VHDL for easy correction and future integration with other
components to extend the system.
Vdc
Vout
a.c.
output
generator
engine
valve
Inference
Machine
-300
x1
Fuzzy
Defuzzifier
time [ms]
195
inverter
rectifier
Fuzzifier
x2
d
dt
PWM
Control
FVSG
196
ILOAD =20A
1200
1000
800
600
ILOAD =10A
400
350
300
250
200
150
100
50
0
d .c . v o lt a g e [ v o lt ]
1400
d .c . v o lta g e [v o lt]
Voltage (normalised)
200
10 15 20 25 30 35 40 45
350
300
250
200
150
100
50
0
0
10 15 20 25 30 35 40 45
time [sec]
time [sec]
0
1
21
41
61
81 101 121 141 161 181 201 221 241 261 281 301 321 341 361 381
Without controller
Reference Voltage
DC Voltage (Normalised to 1000)
Load Current
With controller
Achievements
198
General Conclusions
A novel modelling technique is proposed for the holistic investigation of
engineering systems. This is based on Hardware Description Languages (VHDL).
PWM controller
voltage control using PWM is a simple and effective strategy for
obtaining and maintaining the desired output voltage parameters.
The sample systems were developed from idea, through modelling / simulation, to
complete systems commissioning, in short time, giving further advantages:
Fuzzy logic
an effective design solution for the speed governor.
able to produce a competent control system without the need for a
precise mathematical model of the plant.
the controller is reconfigurable by changing the rule base.
design can be easily extended to include more parameters.
A CAD platform independent model & design are developed and therefore valuable
IPs can be produced, in co-relation with the modern principles of design reuse.
VHDL
design, modelling & simulation performed on a single platform
the same design tool can be used for hardware implementation
reusable design modules are produced
new developments of the design can easily be performed
Concurrent engineering basic rules (unique EDA environment and common design
database) are fulfilled.
199
Recent Developments
HandelHandel-C a novel compiler for Hardware-Software co-design from Celoxica.
C/C++ System Model
Handel-C compiler
Perspectives
In the near future, the complexity of the control systems will continue to grow.
The tasks devoted to the control algorithm will no longer be limited to regulation but will have to
manage diagnosis and fault-adaptive on line control.
The research effort on the theory and the applications of dynamic reconfiguration is crucial.
Network-on-a-Chip (NoC)
SoC design that can include digital control and its analog interface (sensors, ADC, power drivers, etc.).
Co-design issue must be addressed, since the borders between software and hardware are rapidly
vanishing. The main problem in this case is to propose automatic rules of partitioning, based on relevant
quantitative indicators.
Another interesting direction of research is based on the following observation: a control algorithm,
when implemented in an FPGA, can have a very short execution time due to the high degree of
parallelism of its architecture. At the same time, the constraints imposed by the power electronic
components imply a sampling period that is much higher than the execution time. The resulting wasted
time could be advantageously employed.
Several examples of relevant FPGA utilizations in this context were presented. They consist of
predictive control, over-sampling strategies, multi-plants control, etc. All these very promising control
203
paradigms must still be improved.
General Conclusions
The simultaneous increase of the control algorithm complexity and the
chip density implies the use an efficient design methodology.
A modeling technique is proposed for the holistic investigation of power
electronic systems. This is based on System Level Modeling Languages
or HDL and allows rapid FPGA prototyping of the control systems.
Three main design rules are presented.
the algorithm refinement,
the modularity,
the systematic search for the best compromise between the control
performances and the architectural constraints (see A3 section).
Full and timely examples are presented to illustrate the benefits of
FPGA implementation when using the proposed design approach.
It is demonstrated that in both cases a low cost FPGA-based controller
can greatly improve the control performance, especially due to the
reduction of execution time, while keeping a high level of flexibility.
202
Bibliography
M.N. Cirstea, A. Dinu, J. Khor, M. McCormick, "Neural and Fuzzy Logic Control
of Drives and Power Systems", Elsevier Science Ltd., 2002.
M.N. Cirstea, A. Dinu, D. Nicula: "A Practical Guide to VHDL Design", Editura
Tehnica, Bucharest, Romania, 2001, ISBN: 9733115398.
A. Dinu: "FPGA Neural Controller for Three Phase Sensorless Induction Motor
Drive Systems", PhD Thesis, De Montfort University, 2000.
J. Khor, "Intelligent Fuzzy Logic Control of Generators", PhD Thesis, De Montfort
University, UK, 1999.
A. Zregh: Holistic Modelling of Stand Alone Generators, MPhil thesis, De
Montfort University, UK, 2003.
B.K Bose: Modern Power Electronics & AC Drives, Prentice Hall, 2002.
M. P. Kazmierkowski, R. Krishnan, F. Blaabjerg, J. D. Irwin (Editors): Control in
Power Electronics: Selected Problems, Academic Press, 2002.
D.L. Perry: "VHDL", McGraw-Hill, 1998.
Xilinx home page: http://www.xilinx.com/
Celoxica home page: http://www.celoxica.com/
Rosetta home page: http://www.sldl.org/
204
Bibliography
Bibliography
F. Ricci, H. Le-Huy, An FPGA-based rapid prototyping platform for variable-speed drives, in Proc. IEEE IECON02 Conf., 2002, pp. 1156-1161.
L. Charabi, E. Monmasson, I. Slama-Belkhodja, Presentation of an efficient design methodology for FPGA implementation of control system application
to the design of an antiwindup PI controller, in Proc. IEEE IECON02 Conf., 2002, pp. 1942-1947.
R. Andraka, A survey of CORDIC algorithms for FPGAs, in Proc. ACM/SIGDA Conf., 1998, pp. 191-200.
S.A. White, Applications of Distributed Arithmetic to Digital Signal Processing: A Tutorial Review, IEEE ASSP Mag., pp. 4-21, July 1989.
F. Zhengwei, J.E. Carletta, R.J. Veillette, A methodology for FPGA-based control implementation, IEEE Trans. Control Systems Technology, Vol. 13,
n6, pp. 977-987, Nov. 2005.
D. Menard and O. Sentieys. Automatic Evaluation of the Accuracy of Fixed-point Algorithms, in Proc. IEEE/ACM Conference on Design, Automation and
Test in Europe, 2002, CD-ROM.
K. Kebbati, Y.A. Chapuis, F. Braun, IP modules for motor control FPGA/ASIC integration, in Proc. IFIP Conf., 2001, pp. 385-390.
Texas Instruments DSC Group, A software modularity strategy for Digital Control System motor, SPRU485A, August 2001,Revised October 2003.
T. Grandpierre, C Lavrenne and Y. Sorel, Optimized rapid prototyping for real-time embedded heterogeneous multiprocessor, in Proc. CODES99 7th
International Workshop on Hardware/ Software Co-Design Conf., 1999, CD-ROM.
E. Monmasson, J.C. Hapiot, M. Granpierre "Analysis of a current controller for AC drives entirely based on FPGAs," in Proc. ICEM, Conf., Sept. 1994, vol.
3, pp. 1-5.
S. Berto, A. Paccagnella, M. Ceschia, S. Bolognani, M. Zigliotto, Potentials and pitfalls of FPGA application in inverter drives - a case study, in Proc.
IEEE ICIT Conf., 2003, Vol. 1, pp. 500-505.
Y.A. Chapuis, J.P. Blonde, F. Braun, FPGA Implementation by Modular Design Reuse Mode to Optimize Hardware Architecture and Performance of AC
Motor Controller Algorithm, in Proc. of 11th EPE-PEMC Conf., 2004, CD-ROM.
K.V. Ling, S.P. Yue and J.M. Maciejowski, Model Predictive Control on a Chip, in Proc. IEEE ACC Conf., 2006, CD-ROM.
A. Fratta, G. Griffero, S. Nieddu, Comparative analysis among DSP and FPGA-based control capabilities in PWM power converters, in Proc. IEEE
IECON Conf., 2004, Vol. 1, pp. 257-262.
F. Blaabjerg, P.C. Kjaer, P.O. Rasmussen, C. Cossar, Improved digital current control methods in switched reluctance motor drives, IEEE Trans. Power
Electron., vol. 14, n3, pp. 563-572, May 1999.
O. Garcia, P. Zumel, A. de Castro, J.A. Cobos, J. Uceda, An automotive 16 phases DC-DC converter, in Proc. IEEE PESC Conf., 2004, Vol. 1, pp. 350355.
J. Chen; P.C. Tang, A sliding mode current control scheme for PWM brushless DC motor drives, IEEE Trans. Power Electron., vol. 14, n3, pp. 541551, May 1999.
C. Attaianese, V. Nardi, G. Tomasso, A Novel SVM Strategy for VSI Dead-Time-Effect Reduction, IEEE Trans. Indus. Appl., vol. 41, pp.1667-1674,
Nov/Dec 2005.
205
Questions ?
207
K. Bondalapati, V.K. Prasanna, Reconfigurable computing systems, Proceedings of the IEEE , Vol. 90, pp. 1201-1217, Jul. 2002.
E. Monmasson; B. Robyns; E. Mendes, B. De Fornel, Dynamic reconfiguration of control and estimation algorithms for induction motor drives, in
Proc. IEEE ISIE Conf., 2002, pp. 828 833.
Y.Y. Tzou, J.J. Jyang, A programmable Current Vector Control IC for AC Motor Drives, in Proc. IECON99 Conf., 1999, CD-ROM.
K. Tazi, E. Monmasson and J.P. Louis, Description of an entirely reconfigurable architecture dedicated to the current vector control of a set of AC
machines, in Proc. IEEE-IECON99 Conf., 1999, pp. 1415-1420.
E. Monmasson, J.C. Hapiot, M. Granpierre, A digital control system based on field programmable gate array for AC drives, EPE Journal, vol. 3, n 4,
Nov. 1993, pp. 227-234.
Y-A. Chapuis, C. Girerd, F. Aubpart, J-P. Blond and F. Braun, Quantization problem analysis on ASIC-based Direct Torque Control of an induction
machine, in Proc. IEEE-IECON98 Conf., 1998, pp.1527-1532.
H.J. Lee; S.K. Kim; Y.A. Kwon; S.J. Kim, ASIC design for DTC based speed control of induction motor, in Proc. IEEE ISIE01 Conf., 2001, pp. 956
961.
S.J. Henriksen, R.E. Betz and B.J. Cook, Digital hardware implementation of a current controller for IM variable-speed drives, IEEE Trans. Ind.
Appl., vol. 35, pp.1021-1029, Sept./Oct. 1999.
A.A. Jerraya, H. Ding, P. Kission, M. Rahmouni, Behavioral Synthesis and Component Reuse with VHDL. Kluwer Academic Publishers, 1998.
T. Riesgo, Y. Torroja, E. De la Torre, Design methodologies based on Hardware Description Languages, IEEE Trans. Ind. Electron., vol. 46, pp. 312, Feb. 1999.
206