implementation of space vector pulse width modulation on ...6708... · 1.1 objective chapter i...

81
Implementation of Space Vector Pulse Width Modulation on System on Programmable Chip by Vincent Luong A project presented to Ryerson University in a requirement for the degree of Master of Engineering in the Electrical and Computer Engineering program Toronto, Ontario, Canada, 2010 I PROPfiflr.Y Of UNWil1SlTY LfBRAlrl

Upload: others

Post on 31-Mar-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Implementation of Space Vector Pulse Width

Modulation on System on Programmable Chip

by

Vincent Luong

A project presented to Ryerson University in a requirement for the degree of

Master of Engineering in the Electrical and Computer Engineering program

Toronto, Ontario, Canada, 2010

I PROPfiflr.Y Of RYER~O;~ UNWil1SlTY LfBRAlrl

Page 2: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Declaration

I hereby declare that I am the sole author ofthis thesis report.

I authorize Ryerson University to make copies ofthis thesis by any means, in

whole or in part, for the purpose of scholarly research.

Signature:

II

Page 3: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Acknowledgements

I would like to express my sincere gratitude to my supervisor Professor Richard

Cheung for his guidance. His tremendous patient and constant encouragement has helped

me accomplishing what I thought to be beyond my ability.

I am grateful to my wife and sons for their love and support. Because of my study,

many weekend activities were cancelled.

I give thanks to my Lord Jesus for everything I have. To Him all glory belongs!

III

Page 4: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Abstract

For years, DSP has been the dominant tool in implementing gate switching for

power inverter. It is a powerful and reliable technology in carrying out complex

switching schemes. DSP is still expensive due to its intensive use of resource in chip

fabrication. There is no flexibility in making change on hardware once a DSP chip is

selected. It is also time consuming in a design development because the learning curve of

the DSP is stiff. Recently, a new approach to the problem has emerged. It is called

embedded system design. Basically, it is a FPGA system combined with a RISC type

microprocessor. This is a robust combination that allows users to pick and choose any

functional peripheral devices only as needed. Once the complete hardware platform is

decided upon, the circuit is configured and down loaded to a chip. Software codes are

then written to run the application. The hardware system is reconfigurable. Designers can

always go back to change the hardware with ease in order to improve the performance

and to meet the target cost.

This is an attempt to utilize the embedded system design also called System on

Programmable Chip (SOPC) to perform Space Vector Modulation (SVM) gate switching

strategy. The Altera Nios II IDE tool is selected for this task.

IV

Page 5: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Table of Content

Chapter I Introduction .......................................................................... 1

1.1 Objective .............................................................................. .1 1.2 Background ............................................................................. 1 1.3 Methodologies ......................................................................... 4 1.4 ProposaL ................................................................................ 6

Chapter II Principal of Space Vector Modulation ........................................ 8

2.1 Switching State ........................................................................ 9 2.2 Space Vector ........................................................................... 10 2.3 Dwell Time Calculation ............................................................. 13 2.4 Modulation Index ..................................................................... 15 2.5 Switching Sequence .................................................................. .16

Chapter III SVP~ Matlab Simulation ................................................... 20

3.1 Specification .......................................................................... 20 3.2 Simulating Scheme .................................................................. 21 3.3 Result ................................................................................... 21 3.4 Observation ........................................................................... 27

Chapter IV SVPWM Realization by SO PC •••••.••••••••••.••••••••••••••••••••••••••••.•• 28

4.1 Target Board .......................................................................... 28 4.2 Embedded Processor .................................................................. 29 4.3 System Development Flow .......................................................... 30

4}.1 Hardware Development Tasks .......................................... 32 4.3.2 Software Development Tasks ........................................... 34 4.3.3 Refining Hardware and Software ..................................... 35

4.4 Creating The Design ................................................................. 35 4.5 Design Result ......................................................................... 52 4.6 Future Work: Multiple Processors System ............................................. 54

Chapter V Conclusion ........................................................................... 57

Appendix A Matlab Simulink Block Diagram ............................................ 59

Appendix B Software Codes in C Programming Language ............................. 62

References .......................................................................................... 71

V

Page 6: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Lists of Figures

Figure 2-1 Simplified Schematic of an Inverter .......................................... 8 Figure 2.1-1 Switching State Definition ................................................... 9 Figure 2.1-2 All Switching State Combination ............................................ 10 Figure 2.2-1 Space Vector Diagram ........................................................ 11 Figure 2.3-1 Dwell Time and Voltage Vectors ........................................... 14 Figure 2.5-1 Switching Sequence in Sector I ............................................. 17 Figure 2.5-2 Switching Sequence in All Six Sectors .................................... 18 Figure 3.2-1 Simulation Logic Flow ....................................................... 20 Figure 3.3-1 Simulation output at f=60Hz, fsw=900Hz, tIla=0.7 ....................... 21 Figure 3.3-2 Simulation output at f=60Hz, fsw=900Hz, tIla=O.5 ....................... 22 Figure 3.3-3 Simulation output at f=60Hz, fsw=900Hz, tIla=O.2 ....................... 23 Figure 3.3-4 Simulation output at f=30Hz, fsw=900Hz, tIla=0.9 ....................... 24 Figure 3.3-5 Simulation output at f=10Hz, fsw=900Hz, tIla=0.9 ....................... 25 Figure 3.3-1 Table of Simulation output and Its Load Current THD .................. 26 Figure 4.1-1 Target Board ................................................................... 28 Figure 4.3-1 Embedded System Design Flow ........................................... .30 Figure 4.3.1-1 Preliminary Design Block ................................................. 32 Figure 4.3.2-1 Software Algorithm ....................................................... .33 Figure 4.4-1 SOPC Builder GUI ........................................................... 35 Figure 4.4-2 On-chip Memory MegaWizard ............................................ .36 Figure 4.4-3 NIOS II Processor Core GUI ............................................... 37 Figure 4.4-4 Floating Point GUI .............................................. ; ............. .38 Figure 4.4-5 Serial Communication GUI ................................................ 38 Figure 4.4-7 Interval Timer Mega Wizard ............................................... 39 Figure 4.4-8 PIO MegaWizard ............................................................ 40 Figure 4.4-9 System ID Peripheral Interface Box ..................................... .41 Figure 4.4-10 Content of Complete System ............................................ .42 Figure 4.4.5-1 System Module ............................................................. 43 Figure 4.4.5-2 FPGA Pin Assignment MegaWizard .................................. .43 Figure 4.4.7-1 Software Main Flow Chart .............................................. .44 Figure 4.4.7-2 Flow Chart of Some Subroutines ....................................... .45 Figure 4.4.7-3 Overview of Switching Pattern, Timing Sequence and Interrupt Timers ...................................................................................................................... 48 Figure 4.5-1 Waveforms of Software Simulation and Hardware Output ............ 52 Figure 4.5-2 Matlab Simulation Waveforms ............................................ 53 Figure 4.6-1 Multiple Processors in Open Loop Control System .................... 55

VI

Page 7: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

VII

Page 8: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

VIII

Page 9: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

1.1 Objective

Chapter I

Introduction

The focus ofthis report is on the implementation of space vector modulation for

induction load or motor using System on Programmable Chip (SOPC) method. The

advantages of the induction motor over the DC motor will mentioned, two main pulse

width modulation schemes will be discussed, different ways to apply the scheme will be

examined before heading to the proposal.

1.2 Back Ground

The fIrst induction motor was invented by Nicola Tesla in 1888. To this day, it

still remains the most rugged, reliable, less expensive to build and the least maintenance

required machine. In comparison with a DC motor, the DC one relies on built in

permanent magnets for flux generation in order for the machine to run. The induction

motor produces its flux through the supply voltages. Hence, the induction machine is

lighter in term ofweigh and output power ratio. In addition, the rotor ofthe DC machine

brings about a turning force as the current carrying conductor is placed inside the

magnetic fIeld. This conductor is connected to the power source through some kind

brushing mechanism. Over times, this connector gets corroded due to wear and tear that

affects the performance of the motor. Therefore, periodic maintenance must be carried

out to ensure its effIciency [1]. For induction motor, the supply voltages in the stator give

1

Page 10: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

offa rotating field. This moving field induces voltage in the rotor. In the case of squirrel

cage induction motor where the rotor windings are short circuited, the flowing current

creates a rotor flux. Consequently, the rotor flux reacts with the stator flux to yield torque

to the rotor. The whole process requires no external connection to the rotor. Therefore,

the motor is rugged and needs no maintenance [2].

The advantages of the induction motor out weigh that of the DC motor. It was,

however, not commonly used in the early days because the motor has a fixed speed which

depends on the frequency of the voltage source. Recent advancement in power electronic

has given the induction motor a face lift in its applications which can be found in

robotics, machine tools and hybrid vehicles [3].

The general scheme for controlling the speed of the induction motor involves an

AC to DC rectifying process and a DC to AC transformation procedure. A typical unit

takes AC power source, rectifies it into a steady DC voltage, and then converts it back to

a desired frequency AC waveform. This DC to AC sub unit is called an inverter, which is

how the motor control inverter has its name. There are two main methodologies to

convert DC to AC for induction motors. One method is called Sine Pulse Width

Modulation (SPWM) or Voltage Frequency (VF) control. The other is Space Vector

Modulation (SVM).

The principal of the sinusoidal PWM scheme is that a control sine wave at the

desired frequency is compared with the triangular wave at constant amplitude. The

frequency ofthe triangular wave set the inverter switching frequency [4]. Traditionally,

VF control was popular mainly due to its uncomplicated implementation and the least on

chip computation requirement. This algorithm has some major drawbacks. First of all, it

2

Page 11: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

is not able to fully utilize the supply DC voltage. Less than 90% of DC supply voltage is

used. Secondly, it has substantial high Total Harmonic Distortion (THD) which results in

heat generated in switching devices and larger heat sink is needed. The THD is

worsening when the frequency modulation index defmed by the ratio of carrier and

modulating frequency is not an integer. It brings about a so called non characteristic

harmonics whose frequency is not a multiplication ofthe fundamental frequency. This

poses a challenge in designing a proper filter to eliminate the unwanted frequency [5].

This method also imply an inefficient way to use the memory since three 120 degree

phase shifted sine tables have to be stored in the chip memory in order to generate the

necessary sine waves [6].

The SVM algorithm is based on the fact that for a balanced three phase system,

the sum of vectors representing 3-phase line to neutral AC power supply sine waves is

zero. Hence, these vectors can be expressed as a single space reference vector in a and ~

plane [7]. By controlling the amplitude and the rotating speed ofthis vector, the motor's

torque and speed can be regulated. The SVM is an advanced and computation intensive

technique which gives 15% more voltage output compared to the SPWM method [8]. It

generates less THD. Nowaday, this technique is widely adopted in motor speed

regulation.

The main challenge ofthe SVM approach lays in the calculation of the angle

between two vectors. The trigonometric function such as sine and cosine to defme angle

can be solved conventionally by interpolating from a detailed table ofthe known values.

The end result may lack ofthe resolution needed for some applications. Modem day

computers resolve that problem mainly by Taylor series with very high precision. That

3

Page 12: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

requires large amount of hardware resources and long computing time on the computers

part [9]. How fast the angles are worked out determines how well the performance of

SVM. In fact, estimating the angles becomes the bottle neck ofthe entire process.

1.3 Methodologies

Over the years, with the progress of microelectronics and its cost reduction have

made the SVM feasible in real time. There are many ways to carry out the scheme of

which in general can be categorized into two three main streams: software, hardware and

the combination of both. With many choices available, today designers have to juggle

between the performance, cost effective and the ease of implementation in adopting the

best method for their application.

Until recently, software stream has been realized by high speed microprocessor

such as RISC machines and DSP. This approach is very flexible and able to accomplish

complex algorithms, but the disadvantages are long development time, poor portability of

programming codes and more CPU resources. DSP still is comparatively expensive.

RISC stands for Reduced Instruction Set Computer. The idea behind the creation

ofRISC processor is based on the observation that only a small percentage ofa

processor's basic instructions are used in majority of cases. Therefore, it is better to build

processors where those instructions are handled efficiently on simplified and faster

hardware [10]. The instructions ofRISC engine are simple and fixed in size so that the

implementation for this faster hardware called pipe lined machines can be made easy. The

concept the pipeline is borrowed from assembly line in manufacturing process. Instead of

putting all the time and resource into processing one computer code, the entire operation

4

Page 13: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

can be divided into smaller different stages where codes are managed continuously. The

end result is that, after the initial delay, commands are completed in every cycle.

DSP are designed for extensive enumeration purposes. It is also a RISC machine

with Harvard architecture. This architecture utilizes segregated, independent program and

data memories with different buses so that the two memories can be accessed at the same

time. It allows an instruction and an operand to be fetched from memory in one clock

cycle [11]. In order to make quick calculation, all DSP processors equip with at least one

fast hardware multiplier. This fast multiplier is able to bear result in a single clock cycle.

Some advance DSP employ parallel execution technique called parallelism where second

or more multipliers are needed. Floating point data formats are generally used in DSP

algorithms and hence complex hardware are developed for this format. Since much

hardware circuits are used in its construction, DSP remains the most expensive

computation machine. Also, dedicated hardware requires specialized instruction set,

programmers can only optimize codes in assembly level instead of high level languages

as C and C++. This may prolong system development time [12].

Recent arising of the field programmable gate array or FPGA technology, has

given designers a new arsenal in tackling comprehensive enumerating challenge. This is

the hardware approach for SVPWM. FPGA is an array of many logic blocks that are

linked by horizontal and vertical wiring channels. A logic block consists of many logic

elements which embodies look up tables (LUT), a programmable flip-flop with a

synchronous enable, a carry chain, and a cascade chain. The FPGA chip is configured by

a specific programming code called hardware description language (HDL). A HDL

programmer can ''write'' a hardware and down load it onto a FPGA chip which performs

5

Page 14: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

as a complex combinational function or even like an application specific integrated

circuit (ASIC). The hardware is reconfigurable and therefore complicated circuits can be

realized and tested in very short time. In addition, instead of executing instructions

sequentially as in software approach, FPGA is able to carry out different tasks

simultaneously [13]. There is no need for external wiring; the system is reliable. As a

result, sine and cosine function modules, PWM output waveform module [14] and even

an entire SVPWM core [15] are developed. This has greatly enhanced the SVPWM

performance where the sampling rate can reach as high as 40 KHz [16]. There are a few

disadvantages; a new programmable language is to be learned; proficiency in fmite state

machine (FSM) design and handshaking protocol is a must in order to have all these

hardware modules working together in correct timely manner.

1.4 Proposal

The quest for faster sampling time is propelled by Field Oriented Control (FOC)

in servo motors. This is because in the heart ofFOC, sit the SVPWM. To achieve

dynamic performance, FOC demands high sampling rate. However, not all SVPWM

applications have to be high speed. In the case of high power medium voltage (MY)

drive, the switching frequency of the inverter is usually below 1 KHz [17]. The reason is

that the switching devices can't handle over that frequency range. This gives rise to the

proposal ofthis report as high sampling rate is not required. A hardware and software

combined method called embedded system design is introduced.

An embedded system is a digital system with at least one processor that

implements a hardware function which is part of an over all system. The Embedded

6

Page 15: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

processors are typically rusc machines which are used the same way as

microcontrollers. The main difference is that embedded system allows more flexibility

and design customization due to its reconfigurable capability [18]. Designers are able to

choose the hardware functions and merge together with microprocessors then down load

the system into a FPGA chip. Assembler or high level language such as C and C++ is

written to program the processor. The entire process necessitates a software tool called

System on a Programmable chip or SOPC. This tool provides graphic user interface

(GUI) for system components selection and generates interconnect logic automatically.

SOPC outputs HDL files that defme all modules of the system and HDL design file that

connects all modules together for the purpose of FPGA configuration. Besides that, it

offers features to write software codes and to do simulation for the prototype.

The SOPC used to realize SVPWM in this report belongs to Altera's Quatus

software package. The sampling rate of this SVPWM method depends on how

sophisticate the hardware components are selected or created. A process will be shown

later that this method is easy to implement.

This paper is organized as the following. The next chapter demonstrates the

principle of vector modulation technique. Chapter III simulates SVPWM using Mathlab

and its results are served as benchmark in comparing with the real implementing results.

Chapter IV executes SVPWM by SOPC mean. Chapter V concludes the report.

7

Page 16: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Chapter II

Principle of Space Vector Pulse Width Modulation

The theory presented here is base on the text book; High power converter and A C

drive by Professor Bin Wu [19].

Voltage source inverter (VSI) is the unit that converts a DC voltage to a three-

phase AC voltage with varying amplitude and frequency. The inverter is made up of six

group of active switches, S 1 - S6 . Each switch has a free-wheeling diode coupled in

parallel. A simplified schematic for a voltage source converter for a typical high power

medium voltage is shown in Fig.2-1. Base on the DC operating voltage ofthe inverter,

each switching group may composes two or more IGBT or GCT connected in series.

o--~------~------~~------~

Figure 2-1 Simplified schematic of an inverter

8

Page 17: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

2.1 Switching state

Before introducing the SVPWM theory, some of the terminologies are

familiarized in order to have a better understanding. The operating status of the switches

in each inverter branch is represented by switching states. P is denoted as upper switch

being turned on and its inverter terminal carrying positive voltage (Vd). 0 stands for the

lower switch being turned off and its inverter terminal having zero voltage. Figure 2.1-1

provides the defmition of the switching state.

Switching LEG A LEGB LEGe State SI S4 UAN S3 S6 UBN S5 S2 U eN

P ON OFF Vd ON OFF Vd ON OFF Vd

0 OFF ON 0 OFF ON 0 OFF ON 0

Figure 2.1-1 Switching State Definition

There are eight combinations of the switching states for the inverter. For instants,

combination [P 0 0] corresponds to the conduction of SI, S6, and S2 in legs A, B, C

accordingly. Within the eight switching states, [P P P] and [0 0 0] are the zero states,

the rest are active states. Figure 2.1-2 lists the definition of all combinations.

9

Page 18: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Space Vector Switching On-state Vector Definition

State Switch

VO [PPP1 Sh S3, S5 V. -0 Zero Vector

0-

rOOOI S4, S6, S2

- 2 '0

~ [POO] Sh S6, S2 V; =-Vde}

3

Active Vector - 2 j~

Vl [PPO] S., S3, S2 Vz = -Vde 3

3

- 2 ,211'

V3 [OPO] S4, S), S2 V3 =-Vde 3

2 ,311' - }-

V4 [OPP] S4, S3, S5 V4 =-Vde 3

3

_ 2 /tr Vs lOOP] S4, S6, S5 Vs =-Vde 3

3

2 ,5tr - ]-

V6 [POP1 Sh S6, S5 V6 =-Vde 3 3

Figure 2.1-2 All Switching State Combination

2.2 Space Vector PWM

This theory is better demonstrated in graphical way. The active and zero

switching states can be represented as active and zero state vectors. A space vector

diagram is shown in figure 2.2-1.

10

Page 19: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

The six vectors V 1 to V 6 form a regular hexagon with six equal sectors (I to VI).

The zero state vector, V o.lies in the centre of the hexagon. The reference vo ltage vector

V ref rotates within the hexagon at a certain speed.

jP. !oI[CiORU

I -,:~;;-.m~7'""~"-"

I

V ....,.--------1~-....;.;.---.. I..... ..• a

poo

St:(:U'RIV St:C-'1'OR VI

P. SECTOR V

Figure 2.2-1 Space Vector Diagram

The relationship between the space vector and the switching states can be derived

as the following. From the inverter shown in figure 2-1, with the assumption that the

inverter having three-phase balanced load, this expression is valid,

V,w (t) + VBO (t) + VCO (t) := 0 (2.2-1)

The state of Vco (t) is redundant, since it can be defmed by V,w (t) and Vso (t) .

Also, it is convenient to transform the three-phase variable to two-phase variable.

11

Page 20: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

(2.2-2)

Therefore, the space vector can be expressed in a - ~ plane two-phase voltages.

Vet) = Va (t) + jVp (t) (2.2-3)

Substituting (2.2-1) to (2.2-3),

(2.2-4)

where e jx = cos(x) + j sine x) and x = 0, 2It!3 and 41t13.

Considering the Active switching state [P 0 0] for example, the generated

inverter phase vo ltages are

Vo V,w(t) = 2- , Vao(t) =

3 3

-V , Vco(t) = __ 0

3 (2.2-5)

---The corresponding space vector, V; can be found by placing (2.2-5) to (2.2-4)

- 2 '0 Vi =-V e1

3 d

In general, all six space vectors can be represented as

- 2 j(k-I)~ Vt=-Vde 3 wherek=1,2,3 ... 6

3

(2.2-6)

The zero-space vector Vo has two switching states. These two states are redundant

to each other. The redundant state is used to minimize the switching frequency and

eliminate the even harmonics. The zero and active space vectors are stationary in space

and hence they are called stationary vectors.

12

Page 21: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

--The reference vector V ref, in figure circulates in space with an angular velocity at

0) = 2ift (2.2-8)

It is the fundamental frequency of the inverter output voltage. The angle between

.... V ref and a- axis in the a-p plane is obtained by

t

B(t) = f OJ(t)dt + B(O) (2.2-9) o

-V ref can be approximated by the three stationary vectors for any given length and

position. These stationary vectors in turn determine the switching states ofthe inverter.

-As V ref rotates one revolution in space, the inverter completes one cycle over time. The

generated output voltage frequency is proportional to the angular velocity of V ref and the

-output voltage magnitude is corresponding to the magnitude of V ref.

2.3 Dwell Time Calculation

- . Since the spinning V ref can be composed by three stationary vectors, the length of

these stationary vectors depends on the length of time assigned to them during the

sampling period Ts . It is called the dwell time and is used to defme a moving vector

position at that time instant. The dwell time calculation applies the 'voltage second

balancing' principle. The principle states that the product ofthe reference voltage

V ref and the sampling period r: equal to the sum of the voltage multiplied by time

interval ofthe selected space vectors. The sampling period Ts is always set small enough

.... such that the reference vector is almost constant during Ts interval. Taking V ref inside

the sector I for example, the voltage balancing equation is

13

Page 22: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

(2.3-1)

Ta, Tb and To are the dwell times for iT I. iT 2 and iT 0 correspondingly.

The space vector in 2.3-1 can be shown as

(2.3-2)

Substituting 2.3-2 to 2.3-1 and then separate the resulting equation into real and

imaginary components in the a-~ plane,

Re:

1m: (2.3-3)

\ \

\ _ \ Sectorl

Vr<:r / ....... " ..... " ................ + ............. -

\\ ~--~~~~--------~v.

T,'V T I ..

Figure 2.3-1 Dwell Time and Voltage Vectors

Solving 2.3-3 with Ts = Ta + Tb + To yields

14

Page 23: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

r:; Vref 7r T = ",3T -sin(--B)

a If Vd 3

(2.3-4)

for

Figure 2.3-1 illustrates the relation between dwell time and voltage vectors.

The equations in 2.3-4 are derived when Vref falls in sector I. For other sectors,

-V ref can be located by this general angle expression

• 7r B = B-(k-l)-

3 for

7r O~B<-

3

where k=l, 2, 3, ... ,6 corresponding to sectors I, n, ... ,VI

2.4 Modulation Index

Modulation index dictates the magnitude of the inverter's output. Equation 2.3-4

can be used to express the modulation indexma.

where

r:; Vref • (7r B) T = ",3T -sm --a 8 V 3

d

T=T-T-T. o 1I a b

15

for

(2.4-1)

Page 24: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

The maximum amplitude of the reference vector Vref•max lies on the vertices of the

hexagon outside the circle as shown in figure 2.2-1.

V =2V. J3 _Vd ref.max 3 d 2 - J3

Substituting Vref,max into ma in 2.4-1 gives

m =1 a

Therefore, the modulation is within the range of

O:5:m:5:1

and the peak fundamental voltage produced by SMV is

2.5 Switching Sequence

A Vd V max,SMV = V ref,max = J3

-

(2.4-2)

(2.4-3)

(2.4-4)

The switching sequence for any V'ef should follow these two guide lines in order

to minimize the switching frequency.

1- Only one branch of the inverter switches change states, one being switched on and

other being switched off, when one switching segment alters from one to the next.

2- As V ref travels from one sector to the next, none or minimum number of switches

change states. The figure 2.5-1 is an example of the switching sequence utilizing the

above guide lines. The figure shows a seven segment sequence and inverter output

voltage for Vref in sector I. It is observed that

16

Page 25: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

- Sum of the different dwell times equals to the sampling time.

- The transition from [0 0 0] to [P 0 0] involves only two switches which are

SI (ON) and Sz (OFF). The requirement 1 is satisfied.

- The redundant switching states of Vo are used to minimize the number of

switching.

- Each switch in the inverter is turned on and off once in one sampling period Ts

Hence, the switching frequency law is the same as the sampling frequency Isp •

Figure 2.5-1 graphs the essence ofthe switching sequence rule above in sector L

Jl-' V il I

i 000 POO

V.iN U ~~,_'" .... _.~~"~ ...... ~I~~ . , i Vd . ,--...... :

I , I vJ

.. , ...... ... , ... T, 1;1 2 :2

, Ts

j; 2

pro

r~ I

POO

......... ~ .. ~I __

2

Figure 2.5-1 Switching Sequence in Sector I

17

Page 26: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

-Figure 2.5-2 summarizes the seven segment switching sequences of V ref in all six.

sectors.

Sector uence

I Yo ~ Y2 Yo Y2 ~ Yo

000 00 PPO PPP PPO POO 000

II Yo Y3 Y2 Yo Y2 Y3 Yo

000 OPO PPO PPP PO OPO 000

III Yo Y3 Yo Y4 Y] Yo

000 OPO OPP PPP OPP OPO 000

IV Yo Y4 Yo

000 OPP 000

V Yo Ys V;; Yo

000 OOP POP P 000

Yo ~ Y6 Yo Y6 ~ Yo VI 000 POO POP PPP POP POO 000

Figure 2.5-2 Switching Sequence in All Six Sectors

18

Page 27: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Chapter III

SVPWM Matlab Simulation

It is always a good practice to simulate a design before actually carrying it out.

This allows designers to see the feasibilities and the performances of their would-be

products preventing costly later alternation and time delay. The software package used

for this project is Matlab Simmulink.

The design specification is coming from an actual project.

3.1 Specifications

• Inverter configuration: Three phase two-level inverter

• Rated inverter output voltage: 4160V (rms fundamentalline-to-line

voltage)

• Rated inverter output power: IMVA (three phase)

• DC link vol~age: constant, ripple free

• Inverter load: Three-phase balanced RL load with a lagging power factor

of 0.9

The inverter base parameters

• VB =:; VR 13 = 41601 J3;;;; 2401.8V

• IB =SRI3VB =(1*106 )/(3*2401.8) = 138.8A

• ZB =VBIIB =2401.8/138.8=17.3.0

19

Page 28: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

• (j)B = 2trJ;. = 377.0rad I s

• Load: R = 17.3cos(8) = 15.60

.: o:L = 17.3sin( 8) = 7.54 :. L = 20mH

Vd can be defined by modulation index when ma = 1 .

VABI =0.612 Vd

:. V = VABI = 4160 = 6797.4V d 0.012 0.612

3.2 Simulating scheme

According to the theory of SVPWM, the position of the moving space vector at a

time instant is determined by an angle fonned between the vector itself and horizontal

axis. The dwell time is calculated based on the angle found at the moment. The switching

pattern is decided upon by the sector where the V ref is located. For strategy wise, it is

easier to fmd the sector right after the angle becomes known. The flow of the simulation

logic is outlined in the figure 3.2-1.

Angle Locating

/'

t===:::;-"'~ Sector Locating v

/

/

i', Dwell Time f==-:::::::::::':v)1 Calculation

Figure 3.2-1 Simulation Logic Flow

3.3 Result

v

/

The result of the simulation is categorized by two types of graphs: one is the

Switching Pattern

graphs of voltages and current waveforms; the other is the graph of harmonic spectrum

20

Page 29: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

0.01 ~O15 o.C'2 MZS 0.03 O.C'~5 0.04 O.C045 0.05 0.055 Ct.CtS 4

2

~I~~~~~ [I . .].: , .. ~' .... : . \~' " .. , ':" % ' .~" .. >., ~ , .

0.015 0.02 o.!J2:5 0.03 0.035 0.04 Q.045 0.05 0055 O.OS

0.01 0.015 0.02 0.025 0.03 O.ms 0.04 0045 0.05 O.Ct55 O.CtS

-"!

\:.01 o.O~5 0.02 0.025 am O.ms 0.04 O.C45 O.OS 0."$5 0.00 hle(se:)

{II.} Waveforms

F"nd .. m .. "t .. 1 (!SOH,,) - 0.6956 • THD- 8.2. 16% 00

450

.to

3S

. .".- 30

"';;,;: 25-:;;..'4 ID

1!O

10

~

0 0 &0

!.II LlII, illllllJL 2000 .2500 3000 3500 40X1

I"r"'l· ...... "7 (Mq

Figure3.3-1:f=60Hz, fsw = 900Hz, ma =0.7, and T, =1.11ms

21

Page 30: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

0.01 o.oi5 0.02 0.025 O.'J) O.wS O.'j4 0.045 0.e'5 0.055 0.00

0.01 0.0:5 0.02 0.025 0.03 0.035 0.04 0.045 0.05 0.055 0.05 t'Tle (set)

Fund;amfJnU,1 (SOHz) ... 0.4972 • THD'" 109 61 %

70

GO

50 'i::::;.'"O 40

>~ Xl

.20

10

o 0 fOO Frequency (Hz.)

(h) Ih.rmouLc llp~tni:m

Figure 3.3-2: f = 60Hz, f sw = 900Hz, ma = 0.5, and r: = 1.1lms

22

Page 31: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

0.0' 0.0'5 0.02 0.025 O.oJ 0.035 0.04 u.045 0.05 0.055 (l.C6

00';5 0.02 Cr.02S 0.03 0.035 0.04 0.045 0.05 M55 O.CtS

0.01 nO:5 0.02 oms 0.03 0.;)35 0.04 0.045 0.05 0.055 0.00

UD1 il015 0.02 0.025 om 0.035 O.D4 0.045 0.05 0.055 0.00

100

80

60

40

o o

t"e :sec)

Fundamental (GOHz) = 01989 • THO= 176.95%

.1 I. til III I I

&lO 10J0 .500 .2CO) 2500 3000 3500 4000 Fr~u~ey (Hz)

(b) Uarmolllc t;~mm

Figure 3.3-3: f = 60Hz, flfW = 900Hz, rna = 0.2, and 1'., = 1.11rns

23

Page 32: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

2

O.Ol 0.04 0.05 O.J5 0.09 0.1

(a) Wa,\-efortlu;

Fundamental (3OHz) = 08:985 , THD= 5402%

Hi

~ """~ 10

5

oL-~ __ ~~~~U-~~~~~~~~~~UU~~~ 500 1000 1500 2000 2500 u

Frequency (Hz)

(h) Harmonic spectrum

Figure 3.3-4: f = 30Hz, fsw = 900Hz, ma = 0.9, and Ts = l.11ms

24

Page 33: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

6~ 4

2 - ...... ,

(l00 0.1 4

2

0

-2

-4 a.oa 0.1

2

-2

o.ce ,11

.2

20

15

~ >~ 10

6

a o

he-~' 0.1;1.,;1 't; ~Neb"'1'~ ~:r.:LCeQ!71 s!'.'e"-1eo--re'"1 SVM

I r - SilNors I I ,' .. ""

I I r ...... , .. -,. ~ . , .

! . .., :

O.~2 0.'4 o.~& 0.i3 0.2 0.22 0.24

O.~.2 o.~4 o.~s 0.13 ii2 02'.2 0 .. 24

Cu2 0.14 o.~s 0.13 C.2 0.22 Q.24

{me (seo:)

(a) \\' aveforms

Fund<llment.d (10Hz) .. 0.0099 • THO- 53610/",

. j !~ . till J II 1000 1500 ::xn:J 2500 3000 3500 4000

Frequency (Hz)

(n) Harmonie spectrum

Figure 3.3-5: f = 10Hz, f $IV = 900Hz, ma = 0.9, and Ts = l.llms

25

Page 34: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Figure 3.3-1, -2, -3, -4 and -5 show simulations for the following cases A, B, C, D

and E respectively. The THD result of the load current i A at 1000Hz range is included in

Figure 3.3-1.

Simulation ~ (Hz) fsw (Hz) ma Ta (ms) Load Current, i A , THD%

A 60 900 0.7 1.11 7.1 B 60 900 0.5 1.11 8.7 C 60 900 0.2 1.11 11.8 D 30 900 0.9 1.11 5.5 E 10 900 0.9 1.11 5.4

Figure 3.3-1 Table of Simulation output and Its Load Current THD

3.4 Observation

The simulation result does prove that the theory works. With sampling rate

remains the same through out, lower the rotating frequency yields better THD. The same

is true for higher the modulation index. Higher sampling rate reduces the effect ofTHD.

Most of the distortions occur at and over 900Hz range and are far away from the

fundamental frequency. They can be easily filtered out.

26

PRW.:lf'( Cfi~ RYEFlWii liir.lm&IY lIDRAR'r

Page 35: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Chapter IV

SVPWM Realization by SOPC

The best way to get familiar with Altera SOPC builder is to follow its tutorial on

Nios II hardware development [20]. This tutorial serves as a guideline on designing a

Nios II hardware system and then composing a software program to run on the system.

Since the objective of this exercise is different from the thesis project, changes will be

made as needed to fit the project's goal. .

4.1 Target Board

.. The circuit board used here is the Altera DE2 Development and Education Board

with Altera Cyclone II (2C~5) FPGA chip on it. It has a number of switches, LEDs, LCD,

and 7-segment displays either for input to the processor or visual indicator of processor

activities for small project. It includes RS232 and PS2 for communication. For video and

sound experiment, it provides connectors for microphone,. line-in, 24-bit audio CODEC

line out, video in and VGA out. It also equips USB 2.0 connectivity for host and device.

For more challenging experiments, there are SRAM, SDRAM, and Flash memory chip.

The board runs at frequency of 50 MHz. Figure 4.1-1 is the picture of the target board

27

Page 36: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Figure 4.1 -1 Target Board

4.2 Embedded Processor

The Nios II processor is a general-purpose RISe machine. It comprises of a full

32-bit instruction set, data path, and address space; 32 general purpose registers , 32

external intemlpt sources; smgle ins~ruction 32x32 multiplier and divider resulting in 32-

"it data ; floating point instruction for single preclsion floating point manipulation.

28

Page 37: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

4.3 System Development flow

The embedded system development flow consists of three forms of development:

hardware design, software design and system design which includes both hardware and

software. For a simpler system, all ofthe above procedures can be performed by one

person. For a more complex system, it may request several teams of engineers to cover

all those steps. Figure 4.3-1 suggests the designing flow.

System Requirements analysis

~ Defining and Generating

System in SOPC Environment: Nios Processor Cores and

Standard Peripherals

~~ Developing Software

Integrating SO PC with the Nios II IDE: CI Builder System into C++ programming.

Quartus Project Custom Libraries, Peripheral Drivers

Pins Assignment Compiling Software

Compiling Hardware Downloading Software for Target Chip to Target Board

Downloading Design Running and

Debugging Software to the Target Board on Target Board

~~ Refining Software and

Hardware

Figure 4.3-1 Embedded System Design Flow

29

Page 38: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Following the figure 4.3-1 suggestion, the requirement ofthe project has to be

clearly defined. For SVM control scheme, calculation ofthe switching time and

switching patterns are the predominant issues.

The switching time calculation is determined by the sine trigonometry function of

an angle. This is done by mean of power series and hence a hardware multiplier is

incorporated inside the processor core.

. X 3 X 5 X7 Sm(X)=X- +---+ ...

3! 5! 7! (Equation 4.3.1)

The easiest way to achieve the switching pattern is to utilize interrupt timers. This

is because the switching sequences change after a certain time interval according to the

figure 2.5 .1.

4.3.1 Hardware Development tasks

Based on these observations, a concrete system design is fmalized. This project

requires a fast Nios II processor with a hardware multiplier for the power series

calculation; seven interrupt timers for seven changes in switching sequences. The next

step will be using sope builder tool to specify the processor core, memory, and other

peripheral devices such as timers. The builder tool will automatically generate the

interconnected logic to integrate the component in the system. In general, there are two

classes of peripherals. One is the standard type such as timers, SDRAM, general purpose

va, even a secondary processor etc provided by Nios II Embedded Design Suite. The

other is the custom type like custom-made logics or the ready-made intellectual property

(IP). There are two advantages; hardware implementation is faster than software; the

30

Page 39: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

processor is free to execute other task in parallel while the peripheral operates on data.

Ideally, a hardware sine function for SVM should be created to handle this kind of

computation as hardware approach is always faster than software approach. This incurs

higher development cost and longer development time. For the pilot run, the fastest and

cheapest technique is used. Figure 4.3.1-1 shows the preliminary design for the SVM.

Continuing the process, pins assignment for the IIO signals can be arranged with

design constraints using the Altera SOPC builder. Finally, the entire project is compiled

to produce an SRAM Object File to configure the FPGA. This file is then downloaded to

the FPGA on the target board through the cable called Altera USB-Blaster.

Target Board

AII"era FPGA VDD

] ~ ,...

N ios II System LEDO 'i' ./] 'V'--- Debug I"'J

•• G Control Instr i

•• r--N,osili.

8 ~ Core LED1 )../1 •• I-- C

I L vI/' 0, Data r---- IIC Ports I ' 1'-1

•• Nf- l- ,

•• T ! ~

- R JTAG lED2~1./]

a UART I I"'J L

L Character 10- pin JTAG E 110 i System

Header R Interconnect On-Chip - Fabric r----

Ram

I T,merO •

• • • TimerS SystemlD

-

I Other logic I

I System I Clock

Figure 4.3.1-1 Preliminary design Block

31

Page 40: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

In this layout, JTAG UART is used for downloading both for hardware and

software and for debugging. General VO ports PIO are used for switches with LEDs for

visual effect. Several timer interrupts are required for setting up the switching patterns.

Other logic is anticipated when the goal is not reached and custom made logic might be

needed.

4.3.2 Software Development Tasks

With the help ofNios II IDE, software development tasks for Nios II processor

system are performed. Designers are able to write high level computer languages like C

or C++ codes for the system. To interact with low level hardware components like

turning on or off switches, Altera provides components drivers and a hardware

abstraction layer (HAL) to facilitate such a task. Once the application program is

compiled, it can be downloaded to the target board using the same USB-Blaster cable.

The IDE debugger allows users to start and stop the program, step through codes, create

break points, and examine variables. This debugger also provides a way to debug the

software without the present ofthe target hardware.

Figure 4.3.2-1 displays the software algorithm for the SVM. T to T7 represents the

timer interrupt interval. In one sampling period, values ofT 0, Ta, and T b are determined

for the switching sequences.

32

Page 41: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

One Sampling Period

I To + Ta or ~ + Tb or Ta + 4 2 2 2 2

To + Tb or To + To or Tb + 2 2 2 2 2

Figure 4.3.2-1 Software Algorithm

4.3.3 Refining Hardware and Software

To 4

After running the software on the hardware, it might be that the performance

does not meet the requirement. Designers can either go back to the software to make

changes in algorithm or go to hardware to reconfigure the peripheral. Reconfigurable

I

peripherals is one of the most distinguish difference between an embedded system and a

fixed microcontroller. In this context, reconfigurable means that hardware features can be

added or removed on a system-by-system basis to meet performance and price goal.

4.4 Creating the Design

Following are the step by step to implement the design using Nios II

Development tool. This procedure is carried out closely adhering to the tutorial.

33

Page 42: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

1. Install the design files for the Nios II Hardware Development Tutorial. After

having the files unzipped, they are stored in a d irector.

2. Start the Quartus II software and open the tutorial project.

3. Create a new SOPC builder system by clicking SOPC builder on the tool menu in

the Quartus II software . On the Create New System dialog box, type system

name. This project uses the same name as suggested in the tutorial which is

flrst_nios2_system. Figure 4.4-1 shows the SOPC builder GUl in the early state.

I.! AIt.r. SOP( OUIlM' ',nt nlol] 'Y1tMl.sopc tC;\aU.,.\h.rdw.,. 1uton.' 1c 70\first rrios1 1Y""T1 .~PCJ ~~

"­, II lJrter".'

.. " ,- L''''J [J

ea..

- - -----------------------1 I"" ~_ , .('I'i t'f"'. , •. ",t.,. t.)<;I'!W"'IOht

I ... ·· ·J 1·:- ·1

Figure 4.4-1 SOPC Builder GUl

4 . Building the system in the sope builder. SOPC builder is used to define the

hardware characteristics of the of the Nios II system, i.e. which Nios II core is

selected, what peripherals to include in the system. Since this step is the most

crucial of the whole process, detail contents ofGUI are shown and explained. On

the SOPC builder, FPG A cyclone chip is chosen, and the clock is set at 50MHz.

• Processor requires minImum one memory to store data and

instructions; the on chip memory selection is first performed. To add

34

Page 43: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

the memory, on the left hand side of system contents tab, under the

category Memories and Memory Contro)Jers/On-Chip, user high

lights the On-Chip Memory (RAM or ROM) then clicks Add. The

On-Chip Memory MegaWizard interface appears . M4K block

memory is select. Figure 4 .4-2 is the On-Chip Memory interface box.

On-Chip Memory (RAM or ROM) r ~OUl

• RAM rMIT()ble) (.; ROM (Reed-only )

l.J Duel-port ~cees.

Read DUI ing \l\trte Mode: [

tiloe" type' 1:::.4" Iv ] Inrtlslioe memory COllt ~nt

Dnt ''<'VldtI1.

Total memol Y SlU: 135500 r::1fu--'i ' ~es ' '''' j

-...I Minimize mt!lTlor y I;lock usuye (may impact fmox

Read latency

5 1;)"e ,,1 r, - - T .... l SlaVeS2: l -Mem ory'ln lt lal izati on

~ En.Jble non-default inrti;Jfi::otion !lle

U!::er -created inrtinll::stion file

r Enable I,,-System M<!ffiory Content Editor f.mure

Instance ID

.hex

---- ..., ~

Figure 4.4-2 On-Chip Memory Mega Wizard

The total memory size is 35Kbytes. This is because the actual

software size is bigger than the default 20Kbytes. Floating point

computation needs more memory space as welL

35

Page 44: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

The Nios II core selection and its configuration is done next. There

are three classes of Nios II core processor; they are economics,

standard and full features . Standard core is picked in this project for

the reason that it has built in hardware multiplier and divider. This

hardware will accelerate the float ing point manipUlation. User selects

Nios II Processor and then clicks on ADD. The Nios II processor

Mega Wizard appears. Figure 4.4-3 displays the Nios II core page.

Nios II Processor

Cor€ IIIOS 11

Select a mos II cor ,, :

o Nios IVe '@Nios Ills -~-s-c~~~-------»~sc

Nios II 32-brt 32-bt Selector GUIde

Farlll1, Cyclone"

f'S1~tetn 50.0 MH:I

l:PUld 0

Per formance 8150.0 MHz Up to 5 DI'ItIPS

Logic U,age 600-700 LEs

Memory Usage Two I.I4Ks (or eqliv)

liordwOl e MultIply' 'EmDedded fUlpiers

Il1stJuctlol1 Cache

Bronch Prediction Hardwar e Multiply Hardware Divide

Up 10 25 DMPS

1 200-1400 LEs

Two M41'.s + cache

.hJ 0 Hardware Di/ide

ONios IIIf RISC 32-Oit Ins1rucrion Cache BI anch Prediction Hardware Multiply Hordwore DiVide Barrel Shiner Oat» Cache DyrIamic Branch Pr ediction

Up to 51 D~"PS

1400-1800 LEs

Tl1ree M41\s + cache

(.!emoIY ,onchiP'_I1le!l1 j ... lOffset 'Ox\) 0,00010000

E .... ceptlon 'Je~or "~Inory . ~crn--==:""::=-=-==---' ;''''''' Oft~et' rlo-,-c )------- 0:...00010020

n Only IncUde t~ rll~,oIj when uSo;;Isn opelatJflg system thid t>phcltly suPports an MMU

Fast TLB IAi .. Exception Vector I.l.!ncry - - - -----, orfsol ------- ... ---'- , r.1

Figure 4.4-3 Nios II Processor Core GUT

36

Custom Instrucbons

T

Page 45: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Hardware divide is not adopted here since it takes up huge FPGA

chip resource. The division w ill be done by software. Nios II processor

provides custom instruction in order to use its hardware multip liers for

floating point operation. To activate this feature, user clicks on Custom

Instructions on the Nios II core GUI. Figure 4.4-4 shows the configuration

wizard.

tt Nios II Processor - '

• i

CicteS N Port fpolf'rt : .... 'N~bIe • ... il 01

Figure 4.4-4 Floating point GUI

37

f

Page 46: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

.lTAG UART I ~out Q.ocum~ntatl0 n

Wnl" F IFO (Data f'-a m Ava l

I- I IRQ till esl ",ol"t, '8

I "'on struct usin9 I"e'Cll s t e r __ inste- d of rnelllOI y b lock s

Rp ;H1 FIFO (Data from JTAG T O Avalo n)

Buffe, d .. ""., (bytes) [6 4 I- I IRQ threshold ~ , -

I C"'on stl wet u Sin g register .. Inste d o f rnernory blocks

Lc a n ce l l 'I Elnlsh J

Figure 4.4-5 Serial Communication GUI

• Addmg JTAG UART allows for convenient way to communicate with

Nios II processor through the USB-Blaster download cable. This is

very useful for software debugging purpose. On Interface

protocols/Serial, user elects JT AG U ART the clicks Add. Figure

4.4-5 indicates the setting.

• To make the progranuning part straight forward, seven timer

interrupts are required here for seven switching pattern changes.

Under PeripheralfMicrocontroller Peripheral!, user clicks ADD

then the Timer MegaWizard interface appears. Figure 4.4-6 displays

the timer interface.

38

Page 47: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Interval Timer . 6!Jou t Qocumentat lon

Timeo ut per iod

Penod: 11 I U3

T imer counter size

C a unte . Si::e' @2 ---1 .... J brts

H ardwar e opti ons

P, esetll ' IFUII- f eatu red 1--1 Reg ist.;>rs

[;;:] I. '" j

1-'11.. J l.. I " •

Ii:) t·t 1 rltr I It.

Ou t p ut Sig n a ls

U Til l f I I I I (~ l"

n , 'I

[can"CetJ 1 Ein ish i

Figure 4.4-7 Interval TImer MegaWizard

Since our SVP sampling period is set at _1_ second or 900

1.11 rnilisecond, the interrupt timing for each switching sequence is in

the order of microsecond. With 32 bits counter size, it is more than

enough to cover one sampling cycle. The timer hardware option is set

at full featured, so that the timer period can be written to, read from,

and started/stopped by control bits.

• General purpose VO port or PIO is used to drive LEOs for visual

effect as to confirm the program working properly. They are

39

Page 48: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

actually the switch drivers in SVM scheme. Eight bits are selected.

Under PeripheralslMicrocontroUer Peripherals/PIO (Parallel

110), user clicks on ADD and the PIO Mega Wizard appears.

Figure 4.4-8 exhibits the PIO interface menu.

PIO (Parallel 1/0) j ebo ut .Q.oc un H::n t at i o n

WILlH .

/\1dth ( 1-:3:2 bits) .0

DII'" et l o n

. I put pori. only

eol'"' 111 J.)ut Ollel 'Output POt t s

- O u tP .... tt por1Q o n ly

O u tPlJ' P U rl Pf:!~~ 1 V t u~

Reset Vc\lu e. 10>( ..... '

r Can cel 1 t 11 I [ UI!:!:)(t ~ ] Llni s h 1

Figure 4.4-8 PIO MegaWizard

• The system 10 peripheral helps accidentally downloading other

software for different Nios II system. Under PeripheralsfDebug

and Perfonnance, user clicks on System ID Peripheral and then

clicks on ADD. The 10 Peripheral Mega Wizard interface appears.

There is no need to configure the 10 option. Figure 4.4-9 shows the

pop up interface box.

40

Page 49: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

System I D Peripheral

System ID 701835872

Time stamp: 1 26866741 8

A unique ID is assigned eery time the sy'stem is generated.

Qocurnentation

- -- -- -- ----- - ----------,

I Cancel I rEn i~

Figure 4.4-9 System ID Peripheral Ii1terface Box

At this point, all the necessary hardware components are in place They

need to be specified as to how they interact within the system. The issues can be

the base addresses assigned to each component, and designating priorities for

timer interrupt requests (IRQ) and the JT AG U ART. sope builder provides

Auto-Assign Base Address and Auto-Assign IRQs commands to facilitate these

assIgnments. Since the project's timer interrupts do not happen at the same time,

they can be allocated in any priority sequences as long as the JT AG U ART get the

lowest one. Figure 4.4-10 displays the interconnection of the system.

41

Page 50: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

'1 Altera SOPC Builder - first_nios2_system.sopC" (/home/facultytvluong/DE_tut2/niosltcydonell_2c35/first_nios2_'":i·~+< 1f'

<)yitem (ontents .J'i5:ern Gel1:efJlIYl

.J.t~rJ '~tP,' E!jl.i~1

: ho~ I PI ,r.t-.. ~ cr

0-- BIFI9"~ ·,wJ t.l1plet5 If"~ I J!~ IJr otocclc;

j)oo .l~1

~ tthe'nM

... lilqn :,<<<1

00 LC'S3Cy ~OmpIJlIi:-r II)

0- 'J~:,nes 3')(1 t ~~rT!(W~ (c-ntij 9 P.r,rerals

t:J. Del.,u'Jlnd ;)ell~ rnan:e "" D«P3y "" FPCA PEl 1"<1 als , f IlCrocontrC~1 Poenphtral!

PO (Por.lllell>;)', 0- f 11I1lOfocc .. o;or C:Jurdnl!tl~

... PLL

... use

r"yet

U" t;.~ '.·)dlilfrl~

01 El onclliprnem .... sl

01 (!] ' pu 01 13 jtaO_ual1

..... J"aJon J"Iu,la;e v: 13 Iysid

..... '~0r:t ol _slJ oJe

~ 13 leu"pio ~ .1

tI 13 timer H $1

01 13 bmer_l --t .1

,; 13 tlmer_7 --t <1

,., 13 timer_3 .... .1

Re!!l<lve !;cit

--

~Jlfl"I(t ---elk Ellt etnal

Des~r'l'llO!' C-od

On·Chop "tOOl; (~A1~ Of POI.I)

AV:ion tieml!! i I":.tpptc Sla.r~ ,Ik I J os N Pr O .... f'!SSOJ elk JTAGUAPT

~v"on I,'tmcry !.lapped laye t lk

~y.lem [) P. 'Pt'" .. Ava 00 Il~lKI y I.lapped 'S ' Ik PIO ,POI ""'I 10)

Av.on 11em.;ry I ppec Sla,,~ , Ik

1"it000ai Tmer h'i ),on '.l{>IT¥.Jf 1,lappeC Sla~e elk lrtervoll Trner

Ave.on Ilemcry I.lappea Slave elk r1~r"ll Timer

~ v,.on I telller.1 ~JPped ~Io"le elk iht1val Trmer 'A."on I,"'mcry t

-'--pp~a sat'~ elk

lIove~ I .", Meve Ilown J

Ncr! I Gen<r8te

Figure 4.4-10 Contents of Complete System

50.0

.~J~e

0,00010000

0. 00020800

0\00 2IOfO

O,OOO21 0f8

O,OO0210~O

0, 00021000

0.00021010

0. 00021040

0, 00021060

Addtes$ ~3jl

The hardware can be now generated by clicking on System Generation

tab and then clicking on Generate box.

5 Integrate the sope builder system into Quartus II project. This step involves

t.t1:: _

End

),(j()()18aab

~,llfC«J= = rff

OllilOO:lO f'

,J.C(X)-Wff

~>OOO : lOef

) '(")O?1('1 f

OxOOO;:103f

:,. ,X~: 1v:."

) .. f00210; f

F*er --=- ~

instantiating the SOPC system module, assigning physical FPGA pins, compiling

the project and verifying the timing, Figure 4.5-1 and Figure 4.5-2 each display

system module and FPGA pins assignment.

42

IRO

f--,

Page 51: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

CdJ ~ A

D-1ClI - 1 I "il l .. v 'I ' ~

Nios II Q UCirtuS II 'Project -- Nio~II ,. Cy'ctot"e It

HI

For Help . pre $' F I

EaJ Oto up.$

Ndllleu II ~ ®... ~ GIl :1l:I: -i;u:..f~..:::. ~

I .:~k ~ ;:~ [!JI ~

.%~~

" Named: II Node N~me

LEDG[ O]

LEDG[ l ]

LEDG[2]

LEDG[3J LEDG[4]

LEDG[S]

LEDG[6]

LEDG[ ?]

Tt l ls t ho- to p level U~'S4yrl·to r tt·l,=, N lws IIl'"i& d\lv r e Deveh .. ~)menl T uto r-Ial u n the N IUfS Or::veluiXf le Hl & _tud. l.: V C IOIIt:; ~ eUltlol 1 .

rh l$ dEts jg:n 'vvOrks. fO': both :he £:P:iC3~ &nd 6PjC3SE';;' devlce."s :

:.o .... t

Figure 4.5-1 System Module

Node Nam e

< <new node ;. >

Ilnl·~(l,."n

Unkr"o\'.m

IJnkr r.:h" l1 Un~rown

un~ro.w_n __ _ Unkr'IQ\,.,n

• x

Location P IN_ A - 22

P 1N_ AF22

P IN_W L9

P IN_ VI S

P IN_ U lS

PIN_ U l7

lPIN _ AAZO

PIN _ V I S 0' .... Vl

7

7

7

7 7

55 1. 41 4

Tc:p Vll lU -tnJlr. l Ola

Cy:I~u: JI- EP~~~ 51:i.1::6

F~t"r:

I 06<onk

Figure 4 .5-2 FPGA pin assignment Wizard

~ II

VREF GYc -B7_NO

B7JJO

B7JJO

87_ NO

.S7JJO B7_ N O

S7 NO

87~'lO

6. Download hardware design to target FPGA. This process requires USB-Blaster

and following the Programmer GUI procedure.

43

Page 52: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

7. Develop software using Nios II IDE. Figure 4.7-1 depicts the logic flow ofthe

main software. Figure 4.7-2 shows some of the subroutines and interrupt

subroutines.

(---.sta~rt ) Initialization: count-D, lastent-O. nJ'attern=o

inc_degree = (1/60)/(11900); deg = (inc_degree' count) + offset;

rad_deg = deg • (llp,e); Sec,num = (degl60) + 1;

adLdeg = (rad_deg) - (sec,num 1)' (pieI3); Ta = sin( p,el3 - adLdeg) • Ts

Tb = sine ad_deg) • Ts To = Ts - Ta - Tb

Set switching patterns Write and enable 7 timer interrupts

L..-

~ lYes

Last_cnt = 0 Count =0

I

--I I J

No

'deg = (inc_degree' cQunt) + offset; rad_deg = deg • (l/pie); sec,num = (deg/60) + 1;

adLdeg (rad_deg) - (sec,num - 1) • (pieI3);

Ta = sine piel3 - adLdeg)' Ts Tb = sine ad_deg) • Ts

To Ts-Ta - Tb

Goto: switching subroutine loading timer interrupts

subroutine

No

Lastcnt = last count n_pattern = pattern number

deg = degree Inc_degree = degree increment

rad_deg = degree in radian sec.num = section number adLdeg = adjusted degree

Ts = sampling time

Figure 4.7-1 Software main flow chart

44

Page 53: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Loading subroutine

Writing interrupt timers Timer = Ts

Timer1= To/4 Timer2=ToI4+Ta12

Timer3= To/4+TaI2+Tb/2 Timer4 =To/4+Ta/2+Tbl2+

To/2 TimerS =To/4+Ta/2+Tbl2+

To/2+Tbl2 TimerS =To/4+Ta/2+Tbl2+

ToI2+Tb/2+Ta/2 Enable timer interrupts

!

( return )

Interrupt Timer

~ Increment count Reset switching

pattern

I

( .,

return )

Switching subroutine

A set of switching sequence depending on

section number. Section 1 '" pattern set 1 Section 2 = pattern set 2 Section 3 = pattern set 3 Section 4 ;:; pattern set 4 Section 5 '" pattern set 5 Section 6 = pattern set 6

i

( i:

return )

Interrupt Timer1

... Set switching • • pattern 1 •

( y

return )

Set switching pattern 6

., ( return

Figure 4.7-2 Flow charts of some subroutines

45

)

Page 54: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

The detail of software implementation is described as the following. There

are three parameters that the program needs to know in order to set the inverter

frequency and amplitude. They are sampling frequency, modulating frequency

and the modulation index. In this project the sampling frequency is set at 900Hz,

the modulating frequency is at 60Hz, and the modulation index is 1.

The sampling period is

Sampling period = 1 = 1 = 1.11mS (4.4.7-1) - Sampling _frequency 900Hz

The number of sampling time per cycle is

Sampling _ time 900Hz =15 60Hz

The sampling angle increment in one circle is

Sampling _ increment = 31~0 = 24 deg ree

(4.4.7-2)

(4.4.7-3)

An interrupt timer at every sampling period is established. At each

interrupt, a counter ranging from zero to 14 is increased by one and it will reset

itself when the number reaches 15. The sampling angle at any given time is just

the product of the number in the counter and the angle of the sampling increment.

Sampling _ angle = 24 * counter's _ number (4.4.7-4)

When the angle is became known, the switching time constant T a, T band

To can be found but the angle has to be fIrst converted to radian degree.

. 7r radzan deg ree( 8) = deg ree *-

- 180 (4.4.7-5)

T = sin( 7r - 8) a 3

with ma = 1 (4.4.7-6)

46

Page 55: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Tb = sin(B) (4.4.7-7)

(4.4.7-8)

These time constant T a, T b and To are just the relative time as compared to

the sampling period. In order to become real time, they have to be multiplied by a

system clock time Ts related to the sampling time. These real times can now be

used in setting the interrupt timers.

Ts = sampling period * system clock = 1 * 50MHz - - 900Hz

(4.4.7-9)

Ts = 55555.55

The angle is also used to figure out the sector number that the angle

belongs to. The sector number decides the switching patterns. As indicated in the

chapter II, Figure 2.5_2 of this report, each sector has its unique switching

patterns.

Sector number = int( sampling angle) + 1 60

(4.4.7-11)

Not only does the sector number affect the switching sequence, it also has

effect on the order of the timing sequence. The odd sector number has this timing

T T T Tb T d T Th fh .. sequence: _0 -!!.. • _0 , -, _Q an -!!.. • e arrangement 0 t e tImmg 4' 2' 2 2 2 2 4

b . d'ffi . . l'k hi To Tb Ta T T order for the even sector num er IS 1 ere nt, It IS 1 e t s: -, -, -. -!!.., -!!.., 4 2 2 2 2

and To . All these procedures are observed closely according to the switching 2 4

rules laid out in the chapter II to ensure minimum switching loss.

47

Page 56: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

VAN

V BN

V eN

Vo ~ V2 Vo V2 ~ Vo 000 POO PPO PPP PPO POO 000

----- -------------

;

,

1'.. To

; 4

I To + 4

-------------

T2

Ta 2

-------------

T3

Tb 2

PPO

T4

To , 2

One Sampling Period

--------------

-------------

Ts T6

Tb Ta 2 2

PPO Poo

T To To T _a or~ + ~or_a + To To T T To + _b or---E.... + ---E.... or ~ + 2 2 2 2 2 2 2 2 ·2

T7

To 4

000

To 4

Figure 4.4.7-3 Overview of Switching Pattern, Timing Sequence and Interrupt Timers

Within one sampling period, T, there are seven interrupts are set to

correspond to seven changes in switching sequence as shown in figure 4.4.7-3

where sector I is taken as an example. The length of time of each interrupt is the

sum of current time and all ofthe previous timing. The timer 1 is the only

exception when it starts from fresh. In this example, timer interrupt T is

responsible for [000] switching, timer interrupt Tl is responsible for [POO] and

48

I

Page 57: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

so on. The interrupt timer seven is not used here since it is redundant with the

sampling time T. The contents of each timer are listed below.

I . 1

nterrupt timer T = * T 900Hz s

Interrupt timer T 1 = Tr> * T 4 s

Interrupt timer T 2 = (To + To ) * T 4 2 s

Interrupt timer T 3 = (To + To + Tb) * T 4 2 2 s

Interrupt ttm' er T - (To + To + 7;; + To ) * T 4-4 2 2 2 s

I . T (To+To+Tb+TO+Tb)*T nterruptttmer 5 = 4 2 2 2 2 s

I . T (To Tb To Tb TO)*T nterruptttmer 6= -+ +-+-+-+-422222 s

(4.4.7-12)

(4.4.7-13)

(4.4.7-14)

(4.4.7-15)

(4.4.7-16)

(4.4.7-17)

(4.4.7-18)

Once the interrupt timer ofthe sampling period occurs, the software

program will select the switching patterns and the timing order then set off other

six interrupt Hmers. The program then calculates the angle related t~g> selects

the switching pattern and timing sequence to prepare for the next sampling period.

The switching sequences are handled by interrupt timers. Usually, the

number oftimers available is fixed in microprocessor systems. With FPGA, users

are able to instantiate as many as needed as long as the resource permits.

Hardware choices ease software writing.

49

Page 58: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Anned with a hardware multiplier within the processor core, there was an

attempt to avoid floating point computation. Integer arithmetic was implemented

in order to speed up the calculation of the sine function.

. X 3 X S

Szn(8) = X --+-3! 5!

(4.47-19)

Only three terms were used in those trials and some scaling factors are

employed for the integer arithmetic method. The scale factor has to be chosen

carefully so that at the fifth power term it does not exceed the capacity of the data

register ofthe processor. The practice does not yield much higher computing

speed as compared to the Nios II floating-point custom instructions. It makes

calculation complicated and software codes not easy to read.

As it turns out, the Nios II floating-point custom instructions help writing

the software an easy task. In this project, floating point manipulation is the major

part. Instead of creating custom codes for sine or cosine functions, Nios II custom

instructions have done the hard work and allow users to use simple ANSI C math

functions. The Nios II processor performs single precision floating.:point

arithmetic operations. The time spent on code writing is much shorter, but much

on chip resource is also occupied.

The debugging method here utilized the printffunction of the C codes.

This function transmits data from FPGA chip through UART and displayed them

on the host computer screen. Timing constants such as Ta, Tb and To' sector

number, sampling angle and switching pattern were able to be shown on the

computer screen at a desired interval.

50

Page 59: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

C code:

Printf("%d %d %d %d %u %u %uln", sec.num, deg, pattern,ToI4, Ta12,

T,/2);

Sampling time was fIrst changed to1.11Sec as to allow enough time for

the data to be transferred and displayed. A complete cycle, 360 degree, of data

were collected and compared to hand calculations. When the numbers were

correctly matched, the sampling rate was put back to 1.11 mSec and the switching

action was captured by an oscilloscope. The switching waveform was then

weighed against the switching waveform ofthe Mathlab.

51

Page 60: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

4.5 Design Result

. -

. ..

I

Tek.

., .....

~--

I

u _

:rViatlab :::tmu!ati(.n

.. S 1;OP tV! P o - : - 3 . O Orns ......

Jlru III I I ruLUllJUlJ 11 II C H 2 , OOrn· ... ·a..... "".., 2 .5 0 rns

SOPC Hardware output

Figure 4.5-1 Wave forms of software simulation and hardware output

The design result is right on its target. The pulse width modulation output of the

hardware is identical to that of the Mathlab simulation. Since the SVM inverter design is

intended for high power system (-3800V), it would be impractical to build a complete

system just to show the validity of SOPC method. Hence, the switching waveform of

Mathlab is used as a benchmark to verify the switching outcome of SOPC design. Figure

52

Page 61: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

4.5- 1 illustrates both result of the theory and practicality. The inverter sampling rate is set

at 1/900 second, rotating at 60 Hz frequency and the amplitude modulation index is one.

Figure 4.5-2 shows current, voltage, sector number, switching wavefonns of the Matlab

simulat ion at above setting.

Figure 4.5-2 Matlab simulation waveforms

53

Page 62: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

4.6 Future Work: Multiple Processors System

In this paper, all hardware resources and software effort are concentrated on

realization of Space Vector Modulation (SVM). The processor spends most of its time

computing power series of the two trigonometry sine functions and outputting switching

patterns. At each sampling period, calculation ofthe timing vectors has to be carried out.

That means no pre-calculated values or table is stored in the memory as to boost up the

sampling speed. The highest true sampling rate obtained is close to 1000Hz with 50MHz

system clock. Since sampling rate of the SVM is the dominant issue, there is little

attention paid for controlling and safely running ofthe motor. The subjects such as over

current, over voltage, over temperature protection, blanking time and user input interface

are left out. To amend these shorting comings, a multiprocessor system within a SOPC is

suggested. Basically, it is a system which incorporates two or more microprocessors

working together to perform one or more related tasks.

Altera SOPC builder package allows users to add as many processors to a system

as desired effortlessly. The arranging and connecting of hardware components are no

longer an issue in building mUltiprocessor system. The challenge now lies in writing the

software for the processors so that they do not conflict with one another. To prevent

multiple processors from interfering with each other, hardware peripherals to coordinate

effective operating of the processors are included in the Embedded Design Suite. The

hardware allows different processors to claim ownership of a share resource for a period

oftime and to coordinate data exchange in a single resource such as memory. They are

named hardware mutex core and hardware mailbox core accordingly.

A preliminary design for the open loop motor control system is shown below in

figure 4.6-1. The first processor takes care of SVMand switching functions. The second

processor looks after the safety operating of the machine and interfaces with users for

input speed; this information is passed through the shared memory to the processor 1

which will decides either to stop, run or change speed of the motor. There is an added

feature for this configuration. When the first processor detects no change in motor speed,

54

Page 63: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

higher sampling rate can be obtained by pre-calculating all the timing vectors in one

cycle and their values are stored in the memory. The next time around, the processor 1

just reads from memory and generates switching sequences without going through the

long computing process. Higher sampling rate yields cleaner waveform and reduces

THD.

~----~~~I Memo~

P 1 rocessor J SVM & Switching I

Interrupt Timer 0 I

i Patterns I !

i • • • i I

I Interrupt Timer 6 I

\ Output to Switches I

! J Shared Memo~ i I

Processor 2 I Speed Input & Safety i I

Memo~ I I Features

I Sensors

. I I

~ UART (Speed Input) I

Figure 4.6-1 Multiple Processors in Open Loop Control System

A closed loop servo motor control like the FOC can also be carried out in the same

fashion. The field oriented control unit can be comprised of more than one processors

55

Page 64: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

operating together. Each processor acts as a functional unit, thereby, data are processed

concurrently. The perfonnance of the overall system is faster as a result.

The Altera Nios II development software is capable of debugging simultaneously

a multiple processors design. Debug for all processors can run at the same time and is

able to pause and restart each processor independently. Break points can be placed

individually anywhere in a processor. Once a breakpoint is hit, it does not halt the debug

procedures of other processors. This debugging capability facilitates the development of a

multiple processors system

56

Page 65: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Chapter 5

Conclusion

Space Vector Modulation is a superior method in converting DC voltage to AC

voltage. It is a known fact that SVM has a lower THD, less switching loss, and more

efficient usage of DC power supply as comparing to all other modulation schemes. The

major disadvantage of this method is that it requires intensive computation. For this

reason, DSP and high end microprocessor are often chosen to implement SVM. They are

expensive because of complicated computer architecture is employed and hence huge

resources are used to fabricate these chips. There is lack of flexibility in DSP or

microprocessor technique. Once a DSP chip is elected, there is no easy turning back to

make the hardware change without replacing with other DSPs. This may result in longer

development period or an under utilization design. The recent emerging FPGA

technology has given rise to a new approach to carry out SVM. It is called embedded

system design or System On Programmable Chip SOPC. The system is consisted ofa fast

RISC microprocessor in a FPGA chip. Since FPGA can be configured into any logics or

functions, coupling this with a processor makes it a robust combination. The processor is

acting like a tasks distributor that it out sources the works to the hardware peripherals

formed by FPGA. The work done by hardware is always faster than the software for

57

Page 66: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

hardware works concurrently and software works sequentially. That also frees up the

processor to operate on other task and the system becomes truly multitasking. Software

coding gets easier as well as in the case of floating-point arithmetic. The hardware added

is not limited only to peripherals; a multiple processors can be put together as well. This

feature makes the hardware peripherals more intelligent. The over all system performance

is increased as a consequence. Unlike DSP or microprocessor structure which has fixed

peripherals, the hardware in the embedded system is reconfIgurable. Designers can easily

reiterate the hardware by adding or deleting functions in order to meet performance or

price goal.

The tools for this project are Altera DE2 development board and Altera Quatus II

design suite. It is a successful implementation ofSVM in SOPC. The output switching

waveform is the same as the Mathlab simulation. There is two-fold in the purpose of the

Mathlab exercise. One is to observe how the theory works. The other is served as a

benchmark to verifY the practical outcome. It is a long journey to go from proving the

theory of the Space Vector Modulation to practically working hardware design. In reality,

it is the same procedure that any serious engineering design has to go through. This

practice not only detects any design flaws at early stage. It also helps foreseeing problems

may emerge later on: An idea is stemmed from the same reasons; SOPC can be served as

hardware simulation for the design.

58

Page 67: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Appendix A

Mathlab Simulink Block Diagrams

Pul<es

g~ G.I1o "gnals

) SVM in 2 level Inverter

~ ·EFJ A A

A

.J~. I C~ru~ ! T DCV.ijag So fee

C "enl Mu,u,"m ntr B

Ir" c c C

MeM 10 Th.e.·Phase

Univorul Bridge Seri •• RLC Btanoh

sedors G.in3

D ~ v I(-

",.Ilag" M ..... remenl

K-

'L-LJ Gain Volligl Musuromlnll

b- Fo=60Hz ~

~ • 2nd-Ord., ~

.1 Fill ••

• YSIgr\aI THO I I I

0 Soop.l

SVM overview in Matlab Simulink

59

Page 68: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

theta

secte>r/I

Angle and seCltolS

T3 hetl!

Th .. sectolif ~

To

isector I D.ata Store Memory

--eCltor -- sectolif

T.

Signal .. Th ...

p To

Dwell·time caloulat,on Signals generation

Pulses-Gate signal block overview

Angle and sectors block diagram

60

1

Pulses

Page 69: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Til

Ta

Ts theta lb

2

sin Tb

+

To

Dell time calculation diagram

Signal generation block diagram

61

Page 70: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

Appendix B

Software Codes in C Programming Language

iinclude "count_binary.h" iinclude "sys/alt_irq.h" iinclude "system.h" 'include "unistd.h" 'include "math.h" 'include "float.h" 'include "altera_avalon_timer_regs.h"

Iitypedef unsigned int REGISTER: Iitypedef unsigned int BITS; II union TIMER STATUS REG { II REGISTER data; -II struct { II BITS TO 1; II BITS RUN I: II BITS unused 30; I I bits: I/}:

Ilunion TIMER_CONTROL_REG { II REGISTER data: II struct { II BITS ITO :1; II BITS CONT :1; II BITS START :1: II BITS STOP :1: II BITS unused :28: II bits; I/};

Iistruct TIMER REGS { II union TIMER_STATUS_REG status; II union TIMER_CONTROL_REG control; II REGISTER periodl; II REGISTER periodh: II REGISTER snapl: II REGISTER snaph; In; Iistruct TIMER_REGS *TIMER = (struct TIMER REGS *) (TIMER_BASE IOx00021020);

static char lastcnt;

62

Page 71: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

1* A "loop counter" variable. *1

static alt u8 count: float rad ~ 0.0174532f: float pi = 3.141592f; float Ts 55555.55f: 11416666666.66f: float pi_by_3 = 1.04719f; float rad deg: float adf~deg; float adj_angl:

unsigned long int Ta: unsigned long int Tb: unsigned long int To; unsigned long int adj To 1: unsigned long int adj-To-2: unsigned long int adj-Ta; unsigned long int adj=Tb; unsigned short int c_deg; char pattern 0; char pattern=1_5; char pattern_2_4; char pattern_3; char pattern: char nyattern: char section: char flag; Ilchar red flag; static char int cnt: char cnt; -unsigned short int deg;

struct b_type { unsigned last:l: int: 7;

} ;

union sec { char num: struct b_type bits:

sec:

union duration_type { unsigned short int d[2]; unsigned long int 1 durtn:

duration: -

void handle_timer_interrupts () ( count++:

1155555.5555:11555555555.5:

IOWR ALTERA AVALON TIMER STATUS (TIMER BASE, 0): 1111 IOWR_ALTERA_AVALON_TIMER_CONTROL(TlMER_BASE, 8): }

void handle timerl interrupts () { IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_1_BASEI 0): IOWR ALTERA AVALON TIMER CONTROL(TIMER 1 BASE, 8): IOWR=ALTERA=AVALON=PIO_DATA(LED_PIO_BASE~ pattern_1_5);

63

Page 72: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

void handle_timer2_interrupts () { IOWR_ALTERA_AVALON TIMER STATUS (TIMER 2 BASE, 0); IOWR ALTERA AVALON-TIMER-CONTROL(TIMER 2 BASE, 8): IOWR=ALTERA=AVALON=PIO_DATA(LED_PIO_BASE; pattern_2_4);

n_pattern pattern_2_4;

void handle_timer3_interrupts () { IOWR ALTERA AVALON TIMER STATUS (TIMER 3 BASE, 0); IOWR-ALTERA-AVALON-TIMER-CONTROL(TIMER 3 BASE, 8); IOWR-ALTERA-AVALON-PIO DATA(LED PIO BASE; pattern 3); n_pattern =-pattern_3:- - - -

void handle timer4 interrupts () { IOWR ALTERA AVALON TIMER STATUS(TIMER 4 BASE, 0): IOWR-ALTERA-AVALON-TIMER-CONTROL(TIMER 4 BASE, 8); IOWR-ALTERA-AVALON-PIO DATA(LED PIO BASE; pattern 2 4): n_pattern =-pattern_2_4; - - - -

void handle timerS interrupts () { IOWR ALTERA AVALON TIMER STATUS(TlMER 5 BASE, 0): IOWR-ALTERA-AVALON-TIMER-CONTROL(TIMER 5 BASE, 8): IOWR-ALTERA-AVALON-PIO DATA(LED PIO BASE; pattern 1 5): n-pattern -pattern 1 5; - - - -

void handle timer6 interrupts () { IOWR ALTERA AVALON TIMER STATUS(TlMER 6 BASE, 0); IOWR-ALTERA-AVALON-TlMER-CONTROL(TlMER 6 BASE, 8): IOWR-ALTERA-AVALON-PIO DATA(LED PIO BASE; pattern_Oj: n-pattern =-pattern_O:- --

static void initial_message() (

printf("\n\n**************************\n"); printf("* Hello from Nios II! *\n"); printf("* Counting from 00 to ff *\n"): printf("**************************\n");

static void switching{) {

switch (section) {

Page 73: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

case OxI: pattern_O == pattern 1 5 pattern 2 4 pattern-3-

break: -

case Ox2: pattern_O pattern 1 5 pattern-2-4 pattern-3-

break; -

case Ox3: pattern 0 ... pattern-IS pattern=2=4 pattern 3

break: -

case Ox4:

OxO: == Ox4: = Ox6: Ox7;

Oxo; Ox2: Ox6;

Ox7:

OxO; = Ox2:

Ox3: Ox7:

pattern_O == OxO: pattern 1 5 pattern-2-4 pattern-3-

break: -

case Ox5: pattern_O == pattern 1 5 pattern-2-4 pattern-3-

break; -

case Ox6: pattern 0 = pattern=1_5 pattern 2 4 pattern-3-

break: -

static void load_I() {

=- OxI: =- Ox3; Ox7;

OxO; == OxI:

Ox5; Ox?;

OxO; = Ox4: == Ox5: Ox7:

IOWR_ALTERA AVALON_TIMER_PERIODL(TIMER_I_BASE, duration.d[O]): IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_I_BASE, duration.d[ll):

static void load_2() {

IOWR ALTERA AVALON TIMER PERIODL(TIMER 2 BASE, duration.d[O]); IOWR=ALTERA=AVALON=TIMER=PERIODH(TIMER=2=BASE, duration.d[ll):

65

Page 74: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

static void load_3() {

IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER 3 BASE, duration.d[Ol); IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER=3=BASE, duration.d[ll);

static void load_4() {

IOWR ALTERA AVALON TIMER PERIODL(TIMER 4 BASE, duration.d[O]); I OWR=ALTERA=AVALON=T IMER=PERIODH (TIMER=4=BASE, duration.d[l]);

static void load_5() {

IOWR ALTERA AVALON TIMER PERIODL(TIMER 5 BASE, duration.d[O]); IOWR=ALTERA=AVALON_TIMER=PERIODH(TIMER=5=BASE, duration.d[ll);

static void load_6() {

IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_6_BASE, duration.d[O]): IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_6_BASE, duration.d[ll):

Iistatic void II{ II II II}

IOWR ALTERA AVALON_TIMER_PERIODL(TlMER_BASE, duration.d[O]); IOWR_ALTERA_AVALON_TIMER_PERIODH(TlMER_BASE, duration.d[ll);

static void fire() {

IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_I_BASE, 5);

I OWR_ALTERA_AVALON_T IMER_CONTROL (TIMER_2_BASE, 5):

IOWR ALTERA_AVALON_TIMER_CONTROL(TIMER_3_BASE, 5);

I OWR_ALTERA_AVALON_T IMER_CONTROL (TIMER_4_BASE, 5);

I OWR_ALTERA_AVALON_T IMER_CONTROL (TIMER_5_BASE, 5);

IOWR ALTERA AVALON TIMER CONTROL(TIMER 6 BASE, 5): - - - - --

static void loading() {

duration.l durtn 0; II Segment-l II duration.l_durtn adj_To_l; load_l ();

if (flag ! = 0) II It is odd section II

66

Page 75: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

else (

fire () ;

int main(void) {

II

II

II

II

II

II

II

II

II

II

II FILE * led;

Segment 2 II duration.l_durtn load_2(); Segment 3 II duration.l durtn load_3(); Segment 4 II duration.l durtn load_40 ; Segment 5 II duration.l durtn load_5 () i

Segment 6 II duration.l durtn load_60;

Segment 2 II duration.l durtn load 2 (); Segment 3 II duration.l durtn load_3 () i

Segment 4 II duration.l durtn load 4 () i Segment 5 II duration.l durtn load_50; Segment 6 II duration.l durtn load_6 ();

Ilunsigned long int sine_fcn(); count = 0; lastcnt = 1; sec.num = 0; deg = 0; int cnt 1;

67

duration.l durtn + adj_Ta;

duration.l durtn + adj_Tb;

duration. 1 durtn + adj_To_2;

duration.l durtn + adj_Tb;

duration.l durtn + adj_Ta;

II It is even section II

duration.l durtn + adj_Tb;

duration.l durtn + adj_Tai

duration.l durtn + adj_To_2;

dura tion.1 durtn + adj_Ta;

duration.l durtn + adJ, .. Tb;

Page 76: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

II int cnt 0;

1* Initial message to output. *1

initial_message(); IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, OxOc);

alt_ir~register(TIMER_IRQ, NULL, (void*)handle_timer_interrupts);

Iiduration.l durtn= Ox2faf080; duration.l_durtn= (unsigned long int)Ts;

IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_BASE, duration.d[O]); IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_BASE, duration.d[1]);

IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_BASE, 7); alt_irq_register(TIMER_IRQ, NULL, (void*)handle_timer_interrupts);

1* initialization *1

alt irq register(TIMER 1 IRQ, NULL, (void*)handle_timer1_interrupts); alt-irq-register(TIMER-2-IRQ, NULL, (void*)handle timer2 interrupts); alt-irq-register(TIMER-3-IRQ, NULL, (void*)handle-timer3-interrupts); alt=irq:register(TIMER=4=IRQ, NULL, (void*)handle-timer4-interrupts); alt_irq_register(TIMER_S_IRQ, NULL, (void*)handle-timerS-interrupts); alt_irq_register(TIMER_6_IRQ, NULL, (void*)handle=timer6=interrupts);

II IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, pattern_Oj; n_pattern = 0; cnt = 0; Ilred flag = 0; deg =-(24 *count) + 4; rad_deg = deg * rad;

sec.num (deg/60) + 1;

adj deg rad_deg - (sec.num -1)*pi_by_3; adj=angl = pi_by_3 - adj_deg;

Ta (unsigned long int) (sin(adj angl)*Ts); Tb (unsigned long int) (sin(adj=deg)*Ts); To (unsigned long int)Ts - Ta - Tb ;

adj_To_2 adj_To_1 adj_Ta adj_Tb =

= To » 1; = To » 2; Ta » 1; Tb » 1;

section = sec.num; flag = (char) (sec.bits.last): switching(); loading();

68

Page 77: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

printf("%d %d %d %d %u %u %u\n",sec.num,flag, deg,pattern,adj_To_2, adj_Ta, adj_Tb);

II IOWR ALTERA AVALON PIO DATA(LED PIO BASE, pattern_Oj; n_pattern 0; - - --

IITIMER -> periodl = dur ° 6.d[0]; IITIMER -> periodh : dur=0=6.d[1]: IITIMER -> status.bits.TO = 0: IITIMER -> control.bits.ITO 1; IITIMER->control.bits.START = 1;

1* Continue O-ff counting loop. *1

while ( 1 ) {

if (lastcnt != count) {

lastcnt count; if (count >= 15) {

count = 0; lastcnt =0;

I OWR_ALTERA_AVALON_P I O_DATA (LED_PIO_BASE, pattern 0); nyattern = 0:

switching(): loading();

deg (24 *count) + 4; rad_deg (float)deg * rad:

sec.num (deg/60) + 1:

adj_deg rad_deg -(float) (sec.num -1)*pi_by_3; adj_angl = pi_by_3 - adj_deg;

Ta Tb To

(unsigned long int) (sin(adj_angl)*Ts): (unsigned long int) (sin (adj deg)*Ts); (unsigned long int)Ts - Ta = Tb ;

adj To 2 adj=To=l adj Ta adj=Tb

To » 1: To » 2;

Ta » 1; Tb » 1;

c deg = deg: section = sec.num; flag = (char) (sec.bits.last);

Iiswitching();

69

Page 78: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

//loading();

/I count_all( lcd );

//printf("%d %d %d %d %u %u %u\n",sec.num,flag, deg,pattern, adj_To_2, adj_Ta, adj_Tb);

return 0;

70

Page 79: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

References

[l]Ned Mohan, "Electric Drives, An Integrative Approach", MNPERE Minneapolis,

2001, pp7-1.

[2]Harold W.Gingrich, "Electrical Machinery, Transformers, and Controls", Prentice-

Hall, Inc., 1979, pp231.

[3]Ned Mohan, "Electric Drives, An Integrative Approach", MNPERE Minneapolis,

2001, ppll-l.

[4]Mohan, Undeland, Robbins, "Power Electronics-Converters, Applications and

Design", John Wiley & Sons, INC., 2003, pp203. . ,

[5]Bin Wu, "High-Power Converters and AC Drives", John Wiley and Sons, INC., 2006,

pp6.3.

[6]Microchip, ''VF Control of3-Phase Induction Motor Using Space Vector

Modulation", AN955, 2005, ppl.

[7]Hein Willi Van Der Broeck, Hans-Christoph Skudelny and Georg Viktor Stanke,

"Analysis and Realization of a Pulsewidth Modulator Based on Voltage Space Vector",

IEEE Transaction on Industry Applications, Vol 24, No.1, January/February 1988,

pp143.

[8]D.Rathnakumar, 1.Lakshmana Perumal and T.Srinivasan, "A new Software

Implementation of Space Vector PWM", Proceedings IEEE SoutheastCon, 2005, pp131.

71

Page 80: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

[9]Clive "Max" Maxfield, "The Design Warrior's Guide to FPGAs" Newnes 2004 . "

pp95, pp229.

[IO]Michel Cosnard, Denis Trystram, "Parallel Algorithms and Architectures",

International Thomson Computer Press, 1995, pp22.

[11] Douglas Gard, "Digital Signal Processor Architecture", US patent 5954811, 1999,

pp20.

[12]Theerayod Wiangtong and Prasoot Dechsuwan, "Unified Motor Controller Based on

Space Vector Modulation Technique", IEEE International Symposium on Circuit and

System, 2006, pp5635.

[13]Rui Wu, Donghua Chen and Shaojun Xie, "A Three-Dimentional Space Vector

Modulation Algorithm in A-B-C Coordinate Implemented By a FPGA", IEEE 32nd

Annual conference ofIndustrial Electronics Society, 2005, ppI071.

[14]Su Chen and Gera Joos, "Symmetrical SVPWM Pattern Generator Using Field

Programmable Gate Array Implementation", 17th Annual IEEE Applied Power

Electronics Conference and Exposition, 2002, pp 1004.

[15]Guijie Yang. Pinzhi Zhao and Zhaoyong Zhou, "The Design of SVPWM IP Core

Based on FPGA", The 2008 IEEE Conference on Embedded Software ans System

Symposia, 2008, pp191.

[16] Zhaoyong Zhou and Tiecai Li, "Design ofa Universal Space Vector PWM

Controller Based on FPGA", IEEE 19th Annual IEEE Applied Power Electronics

Conference and Exposition, 2004, pp1968.

[17]Bin Wu, "High-Power Converters and AC Drives", John Wiley and Sons, INC.,

2006, pp 6.1.

72

Page 81: Implementation of Space Vector Pulse Width Modulation on ...6708... · 1.1 Objective Chapter I Introduction The focus ofthis report is on the implementation of space vector modulation

[18]Zainalabedin Navabi, PH.D., "Embedded Core Design with FPGAs", McGraw-Hill,

2007,pp217,pp391.

[19]Bin Wu, "High-Power Converters and AC Drives", John Wiley and Sons, INC.,

2006, pp6.1-pp6.13.

[20]Altera Corporation, "Nios II Hardware Development Tutorial", Nios II Applications,

2007, pp 1-1 -pp 1-41.

73