Bao Cao Tot Nghiep Moi

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 91

B CNG THNG

TRNG I HC CNG NGHIP TP. HCM


KHOA CNG NGH IN T

N TT NGHIP

IU KHIN NG C KHNG NG B BA PHA


S DNG VI IU KHIN DSPIC30F4011
THEO PHNG PHP SPWM

Ging vin hng dn: Th.S TRN VN HNG


Sinh vin thc hin: NGUYN NG TN
NG KIN T
Lp

09090321
09167261

: DHDT5A

TP. H Ch Minh, ngy 20 thng 12 nm 2013

B CNG THNG

TRNG I HC CNG NGHIP TP. HCM


KHOA CNG NGH IN T

N TT NGHIP

IU KHIN NG C KHNG NG B BA PHA


S DNG VI IU KHIN DSPIC30F4011
THEO PHNG PHP SPWM

Ging vin hng dn: Th.S TRN VN HNG


Sinh vin thc hin: NGUYN NG TN
NG KIN T
Lp

09090321
09167261

: DHDT5A

TP. H Ch Minh, ngy 20 thng 12 nm 2013

LI CAM OAN
Knh tha cc thy c trong khoa cng ngh in t, em l sinh vin kha 5
lp DHDT5A. Sau bn nm hc tp ti trng, c cc thy c tn tnh hng
dn, em c c vn kin thc chuyn ngnh c th nhn ti n
tt nghip. Em xin cam oan s c gng hon thnh ti, tun th ng cc
hng dn, yu cu ca gio vin hng dn c th hon thnh tt ti
cng nh kha hc ca mnh.Em xin m bo ti ny do em lm v hon
thnh. Trong qu trnh lm em c tham kho ca mt s ti lm trc y.
Km theo ph lc bn di.
Ngy 20 thng 12 nm 2013
SINH VIN THC HIN
Nguyn ng Tn
Ng Kin t

LI CM N
Trong sut qu trnh hc tp ti trng I HC CNG NGHIP TP H
CH MINH, em gp rt nhiu kh khn trong vic tip thu kin thc chuyn
ngnh. Nhng nh c s ch dy tn tnh ca cc thy c trong khoa CNG
NGH IN T, em c th hon thnh c chng trnh hc hm nay
c th lm ti ra trng.
Trong qu trnh lm ti, em xin c cm n thy Trn Vn Hng
hng dn, a ra cc hng, phng php gip em kim tra, tm ra nguyn
nhn t khc phc nhng vn kh khn m em gp phi.
Em xin chn thnh cm n!
Sinh vin thc hin
Nguyn ng Tn
Ng Kin t

NHN XT CA GIO VIN HNG DN


...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
Ngy thng nm 2013
GIO VIN HNG DN
(K v ghi r h tn)

NHN XT CA GIO VIN PHN BIN


...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................
Ngy thng nm 2013
GIO VIN PHN BIN
(K v ghi r h tn)

MC LC
LI CAM OAN
LI CM N
NHN XT CA GIO VIN HNG DN
NHN XT CA GIO VIN PHN BIN
MC LC
DANH SCH CC BNG V HNH
NI DUNG
Trang
CHNG 1 M U ....................................................................................... 1
CHNG 2 C S L THUYT .................................................................... 2
2.1 PHNG PHP SINE PULSE WIDTH MODULATION .................. 2
2.1.1 Phng Php iu Rng Xung SINPWM ....................................... 2
2.1.2 Cc cng thc tnh ton, Cch thc iu khin............................... 4
2.1.3 Hiu Qu ca phng php iu khin............................................ 8
2.2 L THUYT IU KHIN PID ............................................................. 9
2.3 VI IU KHIN DSPIC30F4011 ......................................................... 11
2.3.1 Tng quan v vi iu khin dsPIC30F4011.................................... 11
2.3.2 Ngt .................................................................................................... 13
2.3.3 B nh thi Timer ........................................................................... 13
2.3.4 B chuyn i tng t sang s ADC ............................................. 14
2.3.5 Khi c encoder .............................................................................. 15
2.3.6 Khi PWM cho iu khin ng c ................................................ 17
2.3.7 Khi giao tip ni tip UART .......................................................... 18
2.4 VAN CNG SUT MOSFET ............................................................... 20
2.5 IC CCH LY ........................................................................................... 21
2.6 IC LI ...................................................................................................... 22

2.7 IC MAX232.............................................................................................. 24
2.8 ENCODER............................................................................................... 25
2.9 NG C BA PHA ............................................................................... 25
CHNG 3 NI DUNG V PHNG PHP NGHIN CU ................ 31
3.1 THIT K PHN CNG...................................................................... 31
3.1.1 S khi ca h thng ................................................................... 31
3.1.2 Mch vi iu khin ........................................................................... 31
3.1.3 Mch li v cch ly ........................................................................... 33
3.1.4 Mch o dng in, mch chnh lu v nghch lu ...................... 34
3.1.5 Mch giao tip my tnh................................................................... 35
3.2 TNH TON CC THNG S.. 39
3.2.1Phng php iu khin Sine Pulse Width Modulation. .............. 40
3.2.2 Thut ton chng trnh.................................................................. 40
CHNG 4 KT QU V THO LUN ................................................... 45
4.1 KT QU ................................................................................................ 45
4.2 THO LUN .......................................................................................... 52
CHNG 5 KT LUN V KIN NGH ................................................... 49
TI LIU THAM KHO ............................................................................... 50
PH LC .......................................................................................................... 51

DANH SCH CC BNG V HNH


DANH SCH CC HNH ...................................................................... Trang
Bng 2.1 Nguyn l ca phng php iu rng sin....................................... 5
Bng 2.2 S dng in p trn cc pha ....................................................... 8
Hnh 2.3 Qu trnh hot ng ca b iu khin ............................................. 2
Hnh 2.4 S kt ni cc kho trong b nghch lu ..................................... 3
Hnh 2.5 S nguyn l b nghch lu ba pha .............................................. 4
Hnh 2.6 M hnh h thng diu khin vi b PID ....................................... 10
Hnh 2.7 S chn dsPIC30F4011 ............................................................. 13
Hnh 2.8 S khi dsPIC30F4011 .............................................................. 14
Hnh 2.9 S khi Timer 1 ......................................................................... 16
Hnh 2.10 S khi ADC ........................................................................... 18
Hnh 2.11 S khi ca QEI....................................................................... 19
Hnh 2.12 S khi ca khi PWM iu khin ng c ............................ 21
Hnh 2.13 S khi truyn UART.............................................................. 22
Hnh 2.14 S khi nhn UART ................................................................ 23
Hnh 2.15 Mosfet IRFP460 ........................................................................... 24
Hnh 2.16 Opto HCPL2631 ........................................................................... 25
Hnh 2.17 S iu khin Mosfet ............................................................... 26
Hnh 2.18 IC li IR2102 ................................................................................ 27
Hnh 2.19 IC MAX232 .................................................................................. 28
Hnh 2.20 Encorder........................................................................................ 30

Hnh 2.21 ng c 3 pha ............................................................................... 30


Hnh 3.1 S khi ca h thng ................................................................. 31
Hnh 3.2 S nguyn l mch vi iu khin ............................................... 33
Hnh 3.3 S nguyn l mch cch ly v li ............................................... 35
Hnh 3.4 S nguyn l mch chnh lu, nghch lu, o dng in ........... 37
Hnh 3.5 S nguyn l mch giao tip my tnh ....................................... 38
Hnh 3.6 Thut ton chng trnh ................................................................. 43
Hnh 4.1 M hnh phn cng ......................................................................... 46
Hnh 4.2 Giao din iu khin trn my tnh ................................................ 47

CHNG 1: M U

CHNG 1

M U
Hin nay, cng nghip pht trin rt mnh m, my mc thay th cho sc
ngi. ng c l ngun truyn ng ph bin nht. Trong cc loi ng c th
ng c khng ng b ba pha c s dng nhiu nht do cu to n gin,
gi thnh r, cng sut ln. Nhng nhc im ln nht ca loi ng c ny l
kh iu khin. ng trc vn ny, cc k s lun mun tm ra mt phng
php c th iu khin ti u, chi ph ch to b iu khin thp c th a
ng c khng ng b ba pha ng dng rng hn na, nht l trong cc ng
dng m ng c ny cn b hn ch.
Trong cc phng php iu khin hin nay th phng php SINE PULSE
WIDTH MODULATION cho kt qu tt. Nhng phng php kh thc hin
hn cc phng php khc nn cha c ng dng nhiu ngoi thc t. Chnh
v l do ny m em chn ti IU KHIN NG C KHNG NG B
BA PHA S DNG VI IU KHIN DSPIC30F4011 THEO PHNG
PHP SPWM vi mc ch tm hiu, nghin cu, thit k b iu khin theo
phng php ny. Vi s tm hiu ban u ny v vic s nghin cu su hn
sau ny c th a phng php ny ng dng nhiu trong thc tin.

GVHD: TRN VN HNG

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT

CHNG 2

C S L THUYT
2.1 PHNG PHP SINE PULSE WIDTH MODULATION
2.1.1 IU RNG XUNG SINE
to ra in p xoay chiu bng phng php SinPWM, ta s dng mt tn hiu
xung tam gic tn s cao em so snh vi mt in p sin chun c tn s f. nu em
xung diu khin ny cp cho mt b bin tn mt pha th ng ra s thu c mt dng
in p dng iu rng xung c tn s bng tn s ngun song sin mu v bin d hi
bc nht ph thuc vo ngun in mt chiu cung cp v t s gia bin song sin
mu v song mang. tn s song mang phi ln hn tn s song sin mu. sau y l hnh
v miu t nguyn l ca phng php iu rng xung sin.

Hnh 2.1 Nguyn l ca phng php iu rng xung sin.


GVHD: Trn Vn Hng

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT

Khi :

Vcontrol >Vtri th VAO =


Vcontrol <Vtri th VAO = -

Nh vy, to ra ngun in ba pha dng iu rng xung, ta cn c ngun sin


ba pha mu v gin kch ng ca ba pha s c biu din nh hnh di y:

Hnh 2.2 S dng in p trn cc pha


GVHD: Trn Vn Hng

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT

2.1.2 Cc cng thc tnh ton phng php iu khin


Ta cn tnh c bin hi bc nht ca in p ng ra t bin gia song
mang v song tam gic.
Cng thc tnh bin hi bc nht:
Ut = ma.

(1)

Trong ma l t s gia bin sng sin mu m bin song mang cn gi l t


s iu bin.
ma =

(2)

2.3.1.2 Cch thc iu khin


Sau khi ni v phng php iu khin V/f= const v phng php iu
khin b nghch lu p the phng php iu rng xung SINPWM, ta c th a ra
mt thut ton iu khin ng c theo tn s t cho trc nh sau.
Do ng c c iu khin vng kn nn o c tc thc ca ng c, nn
ta hiu tn s t y l tn s ngun sin iu rng xung sin cp cho ng c.
Trong trng hp ta mun cho ng c trng thi ng yn chuyn sang chy
tn s t th phi thong qua mt qu trnh khi ng mm trnh cho ng c khi
ng lp tc n tc t, gy ra dng in khi ng ln lm hng ng c. tn s
ngun cung cp s tng t gi tr 0(ng yn). thi gian khi ng ny c thay i theo
cng sut ca tng ng c. i vi ng c c cng sut ln thi gian khi ng lu
hn ng c c cng sut ln. thi gian khi ng ca ng c thong thng c
chn t 5 ti 10giy.
Sau khi tn s ngun t ti gi tr yu cu lc u s gi nguyn gi tr .
Trong qu trnh ng c ang chy n nh m c mt nhu cu thay i tn s th cng
c mt qu trnh chuyn i tn s tng bc thay v nhy ngay lp tc n gi tr tn
s yu cu mi.
Khi mun thay i chiu ca ng c cn phi a tn s ng c v nh ri
sau mi thc hin chuyn i ngay( thay i th t ngun pha cung cp cho ng
c)- trnh hin tng moment xon c th lm gy trc ng c v tng dng t ngt.

GVHD: Trn Vn Hng

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT
Khi mun dng ng c th phi h tn s t gi tr hin ti v gi tr 0. thi
gian hm ny ph thuc vo qun tnh quay ca ng c. Khi mun hm phanh c th
dung cc phng php hm nh phng php hm ng nng c dung in tr thng.
Nh vy ta c th hnh dung qu trnh hot ng ca b iu khin nh sau:

Hnh 2.3 Qu trnh hot ng ca b iu khin.


on 1 ng vi khi ng ng c - tn s tng t 0 ti gi tr t sau khong thi
gian khi ng (Tramp ).
on 2 ng vi vic thay i tn s khi ng c ang chy n nh.
on 3 ng vi chiu chuyn i ng c - c chia lm 2 giai on. on 3a ng
vi gim tn s v 0. cui on 3a s thay i th t pha ngun cung cp cho ng c.
on 3b ng vi tng tn s ln n gi tr mi.
on 4 ng vi ngng ng c. tn s cho ng c c gim dn t gi tr t v 0
sau khong thi gian dng( Tramp ).
2.3.1.3 Quy trnh tnh ton
Tn s sng mang trong MCU 4011 l
PTPER = Fcy/(Fpwm*prescale*2)-1

GVHD: Trn Vn Hng

(1)

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT
Trong PTPER l gi tr cn np vo thanh ghi c c tn s song mang
mong mun.
Fcy =

(2)

Vi Fosc l tn s thch anh a vo vi iu khin.


Trong phn ny vi tn s thch anh a vo vi iu khin l 10Mhz, cng vi ch
nhn tn s PLL=8, ta c tn s thc a vo vi iu khin l 20Mhz. thi gin tnh
ton ca mt chu k lnh l 0.05 micro giy.
ng vi cc gi tr tnh ton trn, to ra mt song mang c tn s 5kHz. Gi tr
cn np vo thanh ghi PTPER l 1999.
sng iu khin( Udk ) c to ra bng cch lp mt bng sin c gi tr t 0 ti
tng trng cho mt chu k song iu khin dng sin. Nh bit, song iu
khin mang thong tin v ln gi tr hiu dng v tn s song hi c bn ca in p
ng ra, v vy khi bin v tn s ca song diu khin thay i th ta c in p v tn
s ng ra cng thay i theo.
Tn s ca song iu khin thay i tu thuc vo tn s di chuyn ca con tr
trong bng sin. nu tn s ca song iu khin cng ln th s bc nhy ca song iu
khin di chuyn ca con tr di chuyn trong bng sin trong mt chu k song iu khin
cng t v ngc li. Quan h gia s bc nhy ca con tr trong bng sin v tn s
ca song iu khin c xc nh theo cng thc sau:
K=

(3)

Trong min l phn gii ca bng sin( vi bng sin gm c 720 gi tr th


phn gii ca bng sin l 0.5 /gi tr).
=

(4)

L gc nhy ca con tr trong bng sin sau mt chu k PWM.


t cng thc 1 v 2 ta c:

GVHD: Trn Vn Hng

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT

Ut =

(3)

Trong Udc =440V ng vi trng hp t s iu ch ma=1 v ng c hot ng


ch nh mc.
Khi ng c hot ng ch nh mc:
= 3.667 (Udm = 220V, fdm = 60Hz) (4)
t 3 v 4 ta c:
freq =0.03*Udk

(5)

gi tr ca tn s t vo ng c t bin tr c thng qua b chuyn i ADC


10bits theo cng thc:
freq =ADC_Result*60/1024. (6)
da vo tn s yu cu u vo ta c th tnh bin ca song iu khin gi cho t
s V/f khng i.
thi gian tng tc v gim tc ca ng c c tnh ton da vo chu k PWM,k t
khi c s thay i v tn s t, sau mi chu k PWM, gi tr tn s hin ti s cng
them vo hoc tr ra mt gi tr cho ti khi bng vi gi tr ca tn s t mi.
Gi tr cng vo hoc tr ra c tnh theo cng thc sau:
= (60*TPWM)/t

(7)

Trong t(s) l thi gin tng tc hoc gim tc ca ng c.


m bo s chuyn mch din ra ng, ti mt thi im trn mt nhnh ch c mt
kho bn dn trong trng thi dn, mt khong thi gian ngh( dead time) cn c
thm vo khong gia hai kho, vi tn s thch anh a vo vi iu khin l 10Mhz,
tn s song mang l 5Khz, khong thi gian ngh t 1 ti 25miligiy, y khong
thi gian chn l 2mili giy.

GVHD: Trn Vn Hng

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT

2.1.3 Hiu qu phng php iu khin


i vi phng php iu ch SINPWM, ti thi im m mt trong hai kho trn
cng mt nhnh trng thi ON th biu thc in p gia mt pha v im trung tn
o (O) c dng nh sau:

Hnh 2.4 S kt ni cc kho trong b nghch lu.


VAO =
VBO =
VCO =

*(m*sin())
*(m*sin(+

2
3

))

(7a)

*(m*sin(+ ))
3

in p gia hai pha c tnh ton:


VAB = VAO VBO =
VBO =
VCO =

3
2
3
2

3
2

*VDC*m*sin(+ )

*VDC*m*sin(+

5
6

(7b)

*VDC*m*sin(+ ))

GVHD: Trn Vn Hng

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT
t cng thc 7a vi 7b trn ta thy gi tr in p ln nht gia hai pha t
c gia hai vng tuyn tnh khi m=1.

Gi tr in p ln nht l Vline_to_line_max = *VDC (8)


vy vi phng php ny, in p b nghch lu cung cp ch dc s dng ti
a 86,67% trong vng diu khin tuyn tnh.

2.2 L THUYT IU KHIN PID


PID l ch vit tt ca ba thnh phn c bn c trong b iu khin: khuch i t l
(P), tch phn (I) v vi phn (D). PID c v nh mt tp th hon ho gm ba c
nhn vi ba tnh cch khc nhau:
Phc tng v thc hin chnh xc nhim v c giao (t l).
Lm vic v c tch ly kinh nghim hon thnh tt nhim v c giao (tch
phn).
Lun c sng kin, phn ng nhanh nhy vi s thay i trong qu trnh thc
hin nhim v (vi phn).

Hnh 2.5 M hnh h thng diu khin vi b PID


GVHD: Trn Vn Hng

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT
Biu thc ton hc ca b iu khin PID c dng (tham kho [2]):
U(t) = K e(t) + K e(t)d(t) + K

()

(2.13)

()

Hm truyn t ca b iu khin PID (tham kho [2]):


G (s) = K +

+K s

(2.14)

Cht lng ca h thng ph thuc vo cc tham s KP, KI, KD. Mun h thng c
cht lng nh mong mun cn phi phn tch i tng ri trn c s chn tham
s cho ph hp. Mt s phng php thng c s dng chn tham s PID:
Phng php Ziegler-Nichols.
Phng php ti u m dun, phng php ti u i xng.
Phng php thc nghim.
Trong nhiu trng hp khng cn xc nh c ba tham s cho b iu khin. Nu
bn thn i tng c thnh phn tch phn trong b iu khin, ta khng cn phi
thm khu tch phn mi trit tiu c sai lch tnh, tc ch cn dng b iu khin
PD l . Nu tn hiu trong h thng thay i tng i chm v bn thn b iu
khin khng cn phi phn ng tht nhanh vi s thay i ca sai lch e(t) th ta ch
cn s dng b iu khin PI.
Khu iu chnh t l P c nhim v lm gim sai lch e(t), tng tnh tc ng nhanh
ca h thng. Nhc im ca khu ny l lun tn ti sai s ch xc lp.
Khu iu chnh tch phn I trit tiu c sai lch tnh nhng vn nh hng n
qu trnh qu , d gy mt n nh h thng. V vy, b iu khin tch phn khng
c dng n l.
Khu iu chnh vi phn D ci thin kh nng qu ca h thng, p ng c
tc thay i ca sai s e(t). N c th to ra mt s sa cha ng k trc khi bin
ca sai lch iu khin e(t) tr nn ln. Tc ng vi phn c ch trong h thng
kim tra khi c tn hiu vo t bin hoc thay i ph ti. Khu vi phn d b nh
hng bi nhiu.
Trong cc h ng c, ta thng dng b iu khin PI. N gim bt nh hng
ca nhiu lon, tng h s khuch i h thng vng tn s thp nhm gim bt sai
s ch xc lp m khng lm thay i c tnh min tn s cao.

GVHD: Trn Vn Hng

10

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT

2.3 VI IU KHIN DSPIC30F4011


2.3.1 Tng quan v vi iu khin dsPIC30F4011
DSPIC30F4011 l mt chp x l mnh vi b x l 16 bit. Tc x l c th ln
ti 30 triu lnh mt giy, c th thc hin chc nng ca mt b x l tn hiu s.
DsPIC cn c trang b b nh flash, b nh EEPROM v cc ngoi vi hiu nng cao
v rt a dng cc th vin phn mm cho php thc hin cc gii thut nhng vi hiu
sut cao trong mt khong thi gian ngn. V vy, dsPIC c ng dng rng ri trong
cc ng dng x l tn hiu s, o lng v iu khin t ng.
Mt s t im ca dsPIC30F4011:

B nh chng trnh 48K.


B nh RAM 2 Kbytes
B nh EEPROM 1Kbyte
Xung clock ngoi ti a ln ti 40MHz.
30 ngun ngt.
5 timer 16 bit c th ghp thnh timer 32 bit
Ch bt gi, so snh, iu rng xung 16 bit.
Giao tip SPI, I2C, UART, CAN.
6 knh pht PWM chuyn dng iu khin ng c.
Module QEI chuyn c encoder.
ADC 10 bit tc cao.

GVHD: Trn Vn Hng

11

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT
Hnh 2.6S chn dsPIC30F4011

Hnh 2.7 S khi dsPIC30F4011


GVHD: Trn Vn Hng

12

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT

2.3.2 Ngt
Dspic30f4011 c 30 ngun ngt. Bng vecto ngt c t gn b nh chng trnh
ti a ch 0x000004. B iu khin ngt iu khin cc ngt. Thit lp cc ngt thng
qua cc thanh ghi c bit sau:
IFS0<15:0>, IFS1<15:0>, IFS2<15:0> : cha tt c cc c ngt. C ngt
c bt ln bi ngoi vi ca vi iu khin hoc tn hiu t bn ngoi v
c xa bng phn mm.
IEC0<15:0>, IEC1<15:0>, IEC2<15:0>: cha tt c cc bit iu khin cho
php ngt. Cc bit ny c s dng bt cc ngt ring bit t cc thit b
ngoi vi hay tn hiu t bn ngoi.
IPC0<15:0>... IPC11<7:0> : thit lp cc ngt u tin thng qua 12 thanh
ghi.
IPL<3:0>: cc mc u tin c lu tr trong cc bit IPL. IPL<3> nm
trong thanh ghi CORCON, IPL<2:0> nm trong thanh ghi trng thi.
INTCON1<15:0>, INTCON2<15:0>: iu khin ngt ton cc. INTCON1
bao gm cc bit c iu khin cc ngt khi c li x l. INTCON2 iu khin
cc tn hiu yu cu ngt ngoi vi v vic s dng bng chuyn i cc vecto
ngt.
Tt c cc ngun ngt c th c ngi dng gn cho mt trong 7 cp u tin
thng qua cc thanh ghi IPCx. Nu bit NSTDIS (INTCON1 <15>) c thit lp, tt c
cc ngt u b cm.
2.3.3 B nh thi Timer
Trong vi iu khin dsPIC40F4011 c ti nm b nh thi (Timer) 16-bit. Trong
cc Timer c th hot ng ring bit, ring hai Timer 2, 3 v hai Timer 4, 5 c th
kt hp vi nhau tr thnh mt Timer 32 bit.
Timer 1 c th hot ng vi ngun to dao ng tn s thp 32KHz, v ch
khng ng b vi ngun to dao ng ngoi. c im ring bit ca Timer 1 l
c th dng trong cc ng dng thi gian thc. Timer 1 c th hot ng trong ba ch
:
Timer 16-bit: trong ch ny, timer s tng sau mi chu k lnh n khi gi tr
ca timer bng gi tr ca thanh ghi chu k PR1 (Period Register) th. s reset v
0 v tip tc m.

GVHD: Trn Vn Hng

13

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT
Counter ng b 16-bit: trong ch ny, timer s tng mi sn ln ca ca
xung nhp ngoi m c ng b vi pha ca cc xung nhp trong. Timer tng
n gi tr nm trong thanh ghi PR1 th dng v reset timer v 0 ri tip tc
m ln.
Counter khng ng b 16-bit: khi hot ng trong ch ny, timer s tng
dn sau mi sn ln ca xung nhp bn ngoi tc ng vo. Timer s tng dn
n khi gi tr ca n bng thanh ghi PR1 th. b reset v 0 ri li tip tc m
ln.

Hnh 2.8 S khi Timer 1

2.3.4 B chuyn i tng t sang s ADC


Vi iu khin dsPIC30F4011 cung cp b chuy i tng t s 10 bit vi 10 knh
ng vo. in th chun c th l ngun cung cp (Vdd/Vss) hoc mc in th ca
cc chn VREF+/VREF- . b ADC c 6 thanh ghi
Ba thanh ghi iu khin: ADCON1, ADCON2, ADCON3 iu khin hot ng
ca ADC.
Thanh ghi la chn kn vo bin i ADCSH.
Thanh ghi cu hnh ng vo l tng t hay s ADPCFG.
Thanh ghi la chn qut ADCSSL.
DsPIC cng c th ly mu ng thi 2 knh hoc 4 knh cng lc, ly mu tun
t, thi gian ly mu v chuyn i c th thit lp trc, c th kch chuyn i bng

GVHD: Trn Vn Hng

14

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT
mt s kin do ngoi vi khc to ra. Kt qu chuyn i c lu trong b m gm
16 thanh ghi ADCBUF0 n ADCBUFF.
Cc bc tin hnh chuyn i ADC:
Cu hnh chn l ng vo tng t, chn in p chun.
Chn knh cn chuyn i, chn xung nhp chuyn i
Bt ADC hot ng.
Xa c ngt, chn mc u tin ngt cho ADC.
Bt u ly mu, i kt thc ly mu v bt u chuyn i
c kt qu t b m.

Hnh 2.9 S khi ADC

2.3.5 Khi c encoder


Khi c encoder c cc c im:
C 3 ng vo cho pha A, pha B v xung index.
GVHD: Trn Vn Hng

15

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT

C th hot ng nh b m xung ln xung 16 bit.


Xc nh c hng m.
Ch tng phn gii x2, x4 cho encoder.
Chn vo c b lc nhiu.
C th hot ng ch m hay nh thi ca timer 16 bit.
Cho php ngt.
MAXCNT l thanh ghi gi tr m ti a.
POSCNT l thanh ghi gi tr m.
QEICON l thanh ghi iu khin

Hnh 2.10 S khi ca QEI

GVHD: Trn Vn Hng

16

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT

2.3.6 Khi PWM cho iu khin ng c


DsPIC30F4011 c 6 chn pht PWM vi 3 cp tng ng chuyn dng cho iu
khin ng c vi cc c im:
6 chn pht PWM vi 3 b to chu k.
phn gii 16 bit.
Ch to xung t do: thanh ghi m c m ln bng gi tr trong PTPER
th PTMR b reset v 0, sau tip tc m ln nu PTEN cn bt.
Ch to n xung : cng ging nh ch to xung t do ch khc ch khi
PTMR bng PTPER th bit PTEN s b xa bng phn cng ngn b tao
xung hot ng tip.
Ch to xung canh gia (m ln xung): thanh ghi s m ln khi bng gi
tr trong PTPER th s o hng m bng cch o bit PTDIR. Ngt khi thanh
ghi PTMR tr v 0.
Ch to xung canh gia cp nht kp: ngt xy ra khi PTMR bng khng
cng nh PTMR = PTPER. Ch ny gip cp nht rng xung trong chu k
kp cng nh to ra dng sng khng u khi canh gia ph hp vi mt s ng
dng iu khin.
Cc chn pht PWM c th hot ng c lp hay giao hon nhau.
C thanh ghi to thi gian cht DTCON, trnh trng dn khi to xung kch b
nghch lu.
C th p t gi tr logic ng ra thng qua thanh ghi OVDCON.
C th to s kin kch chuyn i ADC.
Cng thc tnh chu k:
Trong ch to xung t do hoc n xung (xem [4]):
TPWM = Tcy*(PTPER+1)*PTMR Prescale value
(2.15)
Trong ch canh gia (xem [4]):
TPWM = 2*Tcy*(PTPER+1)*PTMR Prescale value
(2.16)

GVHD: Trn Vn Hng

17

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT

Hnh 2.11 S khi ca khi PWM iu khin ng c

2.3.7 Khi giao tip ni tip UART


Khi UART ca dsPIC30F4011 c nhng c im sau:
Truyn song cng, giao tip 9 hoc 8 bit d liu.
Trong ch 8 bit d liu c cc ty chn bit chn, bit l hoc khng s dng
bit chn l.
Mt hoc hai stop bit.
GVHD: Trn Vn Hng

18

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT
B to tc baud 16 bit c chia t l trc, tc baud t 38 bps ti 1,875
Mbps vi tn s h thng 30MHz.
C 4 b m d liu nhn v 4 b m d liu truyn.
Ch kim tra, pht hin bit chn l, trn b m.
Ngt truyn, ngt nhn d liu.
Cng th tnh tc baud:
tc Baud = F /(16 (BRG + 1))
(2.17)

Hnh 2.12 S khi truyn UART

GVHD: Trn Vn Hng

19

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT

Hnh 2.13 S khi nhn UART

2.4 VAN CNG SUT MOSFET


C hai la chn chnh cho vic s dng van ng ngt trong iu khin ng c
l Mosfet v IGBT. C hai loi ny u c iu khin bng p, ngha l vic dn v
ngng dn ca linh kin c iu khin bng mt ngun p thay v dng in trong
cc b nghch lu s dng. Mosfet s dng cc ng dng i hi tc cao, tuy
nhin Mosfet khng c kh nng chu dng in cao. IGBT thch hp vi cc ng dng
tc thp, nhng IGBT c kh nng chu c dng in cao. IGBT c tn s ng
ngt thp hn Mosfet nn tn ha ng ngt cng nhiu hn.
Yu cu t ra cho linh kin s dng lm b nghch lu:
GVHD: Trn Vn Hng

20

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT
in p VDS (Mosfet) hay VCE (IGBT) >> VDC/2
Dng din qua linh kin ln hn dng nh mc ca ng c 10A nhit
hot ng.
Chu c tn s ng ngt cao.
Mosfet IRFP460 ph hp vi nhng yu cu trn, gi thnh li r v d tm mua
trn th trng nn c chn s dng trong ng dng ny

Hnh 2.14 Mosfet IRFP460

2.5 IC CCH LY
Cc mch pht ra tn hiu iu khin mch cng sut dng bn dn phi c
cch ly v in. iu ny c th thc hin bng opto hoc bin p xung.
Bin p xung: gm mt cun s cp v c th c nhiu cun th cp. Vi nhiu
cun dy pha th cp, ta c th kch ng nhiu transistor mc ni tip hoc
song song. Bin p xung cn c cm khng tn nh v p ng nhanh. Trong
trng hp xung iu khin c tc ng ko di hoc tn s thp, bin p xung
sm t trng thi bo ha v ng ra s khng ph hp vi yu cu iu khin.
Opto: gm ngun pht hng ngoi bng diot (IR LED) v mch thu dng
phototransistor. Do , opto tha mn yu cu v in, ng thi p ng tt
hn bin p xung.
Trong ng dng ny,ta dng opto HCPL2631ca hng Fairchild c p ng tn s
ln ti 10MHz, tha mn yu cu ng dng.

GVHD: Trn Vn Hng

21

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT

Hnh 2.15 Opto HCPL2631

2.6 IC LI
Cc mch iu khin ng c dng mch nghch lu u cn dng ti mch li
iu khin ng ngt Mosfet hay IGBT. C hai thnh phn c bn trong iu khin
ng ngt linh kin cng sut l iu khin van pha cao (high side Q1) v van pha
thp (low side Q2).

Hnh 2.16 S iu khin Mosfet


Trong mch nghch lu Q1 v Q2 lun trng thi lm vic i nghch nhau. Khi
Q1 m th Q2 ng v ngc li. Khi Q1 ang trng thi OFF chuyn sang trng thi

GVHD: Trn Vn Hng

22

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT
ON => chn S (MOSFET) hay chn E (IGBT) ca Q1 chuyn t ground sang in p
cao ( high voltage rail). Do mun kch Q1 tip tc ON th phi to in p kch
VGS1 c gi tr VGS1= VSQ1 + V.Trong khi tn hiu ra ca vi x l iu khin
ng ngt cc kha ch c gi tr in p +5V (so vi ground). Nn cn phi c mch
li to tri p v cch ly trong vic ng ngt pha cao Q1. Tuy nhin i vi Q2 th
chn S c ni ground , do in p kch VGS2 ch cn c gi tr V. Do vic
ng ngt kha low side (Q2) c iu khin d dng hn. V l gi tr in p cn
thit kch Q1 hay Q2 dn. i vi MOSFET v IGBT V c gi tr t 10 n 15
(V).
Trong ng dng ny, ta dng IC li loi s dng t bootstrap li pha cao. Trong
sut thi gian ON ca Q2 chn S ca Q1 c in th l ground. iu ny cho php t
Cboot c np (thng qua diode D1) n gi tr VBIAS. Khi Q2 c kch OFF v
Q1 c kch ON th in p chn S ca Q1 bt u tng ln. T Cboot lc ny ng
vai tr ca ngun phn cc, cung cp dng li pha cao Q1.
Nhc im ca mch li loi ny l thi gian tr hon gia tn hiu iu khin v
tn hiu ng ngt ln t 500ns n 1us, nhng trong ng dung ny th thi gian tr
hon ny khng nh hng. Mt trong cc IC li l IR2102 vi 2 ng vo v hai ng ra
tng ng cho mt cp mosfet mt pha.

Hnh 2.17 IC li IR2102

GVHD: Trn Vn Hng

23

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT

2.7 IC MAX232
Vi mch MAX 232 ca hng MAXIM l mt vi mch chuyn dng trong giao din
ni tip vi my tnh. Chng c nhim v chuyn i mc TTL li vo thnh mc
+10V hoc 10V pha truyn v cc mc +3+15V hoc -3-15V thnh mc TTL
pha nhn.

Hnh 2.18 IC MAX232


Vi mch MAX 232 c hai b m v hai b nhn. ng dn iu khin li vo
CTS, iu khin vic xut ra d liu cng ni tip khi cn thit, c ni vi chn 9
ca vi mch MAX 232. Cn chn RST (chn 10 ca vi mch MAX ) ni vi ng
dn bt tay iu khin qu trnh nhn. Thng th cc ng dn bt tay c ni
vi cng ni tip qua cc cu ni, khi khng dng n na c th h mch cc cu
ny. Cch truyn d liu n gin nht l ch dng ba ng dn TxD, RxD v GND
(mass).
Mc in p logic ca RS-232C l khong in p gia +15V v 15V. Cc ng
d liu s dng mc logic m: logic 1 c in th gia 5V v 15V, logic 0 c in
th gia +5V v +15V. tuy nhin cc ng in khin (ngoi tr ng TDATA v
RDATA) s dng logic dng: ga tr TRUE = +5V n +15V v FALSE =-5V n
15.
chun giao tip ny, gia ng ra b kch pht v ng vo b thu c mc nhiu
c gii hn l 2V. Do vy ngng ln nht ca ng vo l 3V tri li mc 5V l
ngng nh nht vi ng ra. Ng ra b kch pht khi khng ti c in p l 25V.

GVHD: Trn Vn Hng

24

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT

2.8 ENCODER
iu khin c tc , ta cn c mt thit b o tc quay ca ng c.
Encoder l thit b o tc hay v tr theo nguyn l m vch xung thng c s
dng. o tc bng encoder n gin hn cc phng php khc. Khi kt hp vi
dsPIC th li cng n gin hn na khi dsPIC c khi chuyn dng c encoder v
c th tng phn gii ca encoder ln gp 2 hoc gp 4 ln. Encoder c s dng
trong ng dng ny c phn gii 100 xung/vng, in p cung cp 5V, hai knh ra
QA v QB.

Hnh 2.19 Encorder

2.9 NG C BA PHA
Trong ng dng ny, ta dng ng c 3 pha cng sut nh. l loi 5IK90GUSW, cng sut 90W, in p cung cp 220V-50Hz, tc danh nh 1300 vng/pht.

GVHD: Trn Vn Hng

25

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 2: C S L THUYT

Hnh 2.20 ng c 3 pha

GVHD: Trn Vn Hng

26

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 3: NI DUNG V PHNG PHP NGHIN CU

CHNG 3

NI DUNG V PHNG PHP NGHIN CU


3.1 THIT K PHN CNG
3.1.1 S khi ca h thng

Hnh 3.1 S khi ca h thng

3.1.2 Mch vi iu khin


Mch vi iu khin c th coi l trung tm ca h thng. Ti y, vi iu khin c
cc gi tr o, bin i, tnh ton, iu chnh v xut ra tn hiu ng ngt cc van cng
sut to dng in iu khin ng c.
GVHD: Trn Vn Hng

31

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 3: NI DUNG V PHNG PHP NGHIN CU


Mch vi iu khin c thit k ring, tt c cc chn c ni ra cc port ni bus
nhm tng tnh linh hot cho vi iu khin khi mun thay i kt ni. Mch c cung
cp in p 5V t bn b ngun bn ngoi. Vi iu khin hot ng vi tn s thch
anh 20MHz, c nt reset v diot chng dng ngc.
Vi iu khin c kt ni port nh sau:

PORTE: chn ra ca 6 knh pht PWM, s ni vi u vo mch cch ly v li.


RD0,RD1,RD2,RD3,RB6,RB7,RB8: kt ni vi LCD.
PORTB, chn RC13, RC14, RB0,RB1,RB2 RB3: kt ni vi bn phm ma trn.
Chn RB4, RB5: kt ni 2 knh A, B ca encoder.
Chn RF4, RF5 kt ni giao tip my tnh.

GVHD: Trn Vn Hng

32

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 3: NI DUNG V PHNG PHP NGHIN CU

Hnh 3.2 S nguyn l mch vi iu khin

3.1.3 Mch li v cch ly


Mch li v cch ly gip cch li gia vi iu khin vi phn in p cao ca mch
nghch lu, ng thi to ra mc in p cao kch mosefet pha thp v pha cao.
Mch cch ly v li l phn trung gian kt ni vi iu khin vi mch nghch lu,
c lin quan trc tip vi nhau nn c thit k chung mt mch.
Mch gm 3 IC cch ly HCPL2631 hot ng vi in p 5V, u vo l tn hiu
PWM t 6 knh pht vi iu khin, u ra c in tr ko ln 10K to mc logic cho
ng vo IC li. IC li hot ng vi in p 15V, gi tr tu bootstrap l 4.7uF ln
duy tr xung kch trong 200us kch dn van cng sut pha cao.

GVHD: Trn Vn Hng

33

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 3: NI DUNG V PHNG PHP NGHIN CU

Hnh 3.3 S nguyn l mch cch ly v li

3.1.4 Mch o dng in, mch chnh lu v nghch lu


Ba mch ny c thit k chung vi nhau do cng thc hin chung mt chc nng
l bin in AC mt pha sang AC ba pha cho ng c v tr v gi tr dng in o
c cho vi iu khin.
u vo ca mch l tn hiu kch t IC li, u ra ni vi 3 u dy ca ng c.
Mosfet c th rt nng trong lc lm vic nn phi c thm tn nhit km theo. N
cng rt nhy cm vi dng in cao nn cn mc thm diot ngoi bo v d bn trong
linh kin c sn diot bo v, trnh tng hp trng dn lm cht nhiu Mosfet khi
thut ton c sai st.

GVHD: Trn Vn Hng

34

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 3: NI DUNG V PHNG PHP NGHIN CU

Hnh 3.4 S nguyn l mch chnh lu, nghch lu, o dng in

3.1.5 Mch giao tip my tnh


truyn d nhn d liu ni tip t PIC vi my tnh qua cng COM, ta cn c
mch chuyn i t mc TTL sang mc in p cng COM (12V). Mch giao tip
ni tip vi my tnh dng IC MAX232. Mch rt n gin, MAX232 l IC chuyn
dng nn khng cn thm linh kin nhiu, ch cn 4 t ha dng h tr IC chuyn
mc tn hiu. Chn TXD, RXD ca pic ni vo chn T1IN, R1OUT (hoc T2IN,
R2OUT) ca MAX232. Chn TXD, RXD ca my tnh ni vi chn T1OUT, R1INT
(hoc T2OUT, R2INT) ca MAX232.
Trong ch giao tip vi my tnh, ta thit lp ch truyn d liu ni tip bt
ng b. Tc baud mc nh l 9600, truyn 8 bit, khng c parity bit, bit stop bng
1.

GVHD: Trn Vn Hng

35

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 3: NI DUNG V PHNG PHP NGHIN CU

Hnh 3.5 S nguyn l mch giao tip my tnh


3.2 TNH TON CC THNG S
3.1.1 PHNG PHP IU KHIN SINE PULSE WIDTH MODULATION
1. K thut SinPWM
SinPWM l mt k thut nghch lu bng cch iu rng xung PWM kch mch
cng sut MOSFET to ra tn hiu AC gn sin (Pure Sine Inverters). Mc logic ca
xung PWM c quyt nh bi vic so snh mt sng tam gic (sng mang) v mt
sng sin chun (sng iu khin). Tn s sng mang cng ln th tn hiu AC dng sine
thu c cng pure.

GVHD: Trn Vn Hng

36

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 3: NI DUNG V PHNG PHP NGHIN CU

Hnh 3.6 S dng song Sine Pulse Width Modulation


Khi gi tr sng mang nh hn sng iu khin, PWM mc thp (inactive),
khi gi tr sng mang ln hn sng iu khin, PWM mc cao (active). Tn hiu
PWM thu c s l SinPWM:

Hnh 3.7 Tn hiu thu c

GVHD: Trn Vn Hng

37

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 3: NI DUNG V PHNG PHP NGHIN CU


p dng vo vi x l dsPIC30F4011 ta c module PWM khi hot ng ch
Up/Down Count Mode with Double Updates c gi tr b m (PTMR) tng/gim
tuyn tnh nn to thnh mt dng sng digital tam gic.

Hnh 3.7 Gi tr u ra PWM

Mc logic ca ng ra ph thuc vo gi tr ca thanh ghi PDCx, nu PDCx nh


hn PTMR th ng ra tch cc, ngc li th ng ra th ng. Cn c vo nguyn l
lm vic ny, nu gi tr PDCx c dng sin digital th ng ra PWM s l SinPWM.
Vi thch anh 7.3728 MHz, t l nhn x16 ta c:
Tc s thc hin lnh: Fcy = (7.3728 x 16)/4 = 29.4912 MHz.
Chu k lnh: Tcy = 1/Fcy = 33.9 ns.
t b m PWM c chu k xung clock = Tcy, gi tr cc i ca b m l
2000 (PTMR = 2000). Khi tn s sng mang l:
Fm = (

= 3686.4 Hz 3.7 kHz

Tn hiu iu khin dng digital sin c to ra bng cch cp nht gi tr (ly


mu) t bng sin tnh sn (bng sin 720 gi tr). Vic cp nht c thc hin thng
qua mt ngt Timer vi gi tr Timer (PRx) c tnh l:

GVHD: Trn Vn Hng

38

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 3: NI DUNG V PHNG PHP NGHIN CU


PRx = Fcy / (720/s bc nhy trong bng sin) / tn s t.
Vic la chn bc nhy phi lm sao cho tn hiu sin cng nhuyn cng tt v
vic ngt Timer khng c nh hng n chng trnh chnh. Do , s bc nhy
c chn nh sau:
Bng 2: Mi lien h gia tn s v bc nhy
Tn s sng sin
1~25 Hz
26~50 Hz
51~75 Hz
76~100 Hz
101~125 Hz
126~150 Hz
151~200 Hz

S bc nhy
1
2
3
4
5
6
8

2. L thuyt PID
iu khin PID l da trn sai s e gia gi tr t SP (set point) v gi tr o PV
(process variable) tnh ton ra gi tr iu khin u(t)
( )=

Do h thng iu khin s nn ta c dt l khong thi gian gia 2 ln ly mu, hay


ni cch khc l chu k ly mu (tS). Khi ta c cc gi tr ti thi im ly mu l
u(k), e(k), v gi tr trc s l u(k-1),e(k-1),....
Phng trnh iu khin s tr thnh:
( )=
t

( ) + ( 1)
2

( )+
( )=
( )=
( )=

GVHD: Trn Vn Hng

[ ( ) ( 1)]

( )

()

[ ( ) ( 1)] =

39

( )

( 1)]

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 3: NI DUNG V PHNG PHP NGHIN CU


Ta c

( )=

( )+

( )+

( )

3. Encoder
Gi A (vng/pht) l tc trc ng c.
Vi b truyn ng t l 1:25, tc ng ra l A/25 (vng/pht).
Bnh rng ng ra l 22 rng, bnh rng encoder l 15 rng, tc encoder s l
(A/25)*(22/15) = A*22/375 vng/pht.
Encoder c phn gii 500 xung/vng, t l nhn xung ca vi x l bng 4 suy
ra vi x l nhn c A*352/3 (xung/pht) hay A*88/45 (xung/giy).
Nh vy, nu t chu k ly mu bng 45/88 = 0.511364s th s xung nhn
c trong mt chu k chnh l tc ca trc ng c.

3.2.2 Thut ton chng trnh

Thut ton menu


GVHD: Trn Vn Hng

40

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 3: NI DUNG V PHNG PHP NGHIN CU

Gii thch: trn mn hnh LCD la chn 4 ch .


- Ch 1: khi nhn phm 1 la chn nhp t bn phm, tn s hay tc
chn t bn phm.
- Ch 2: khi nhn phm 2 la chn ch bin tr, ci t t bin tr.
- Ch 3: khi nhn phm 3 chn ch giao tip my tnh, iu khin
ng c t giao din.
- Ch 4: khi nhn phm 4 chuyn sang ch JOG, ch ci thi gian
chy cho ng c.

Thut ton ch la chn 1.


Gii thch hot ng: thit lp tn s trn LCD. Tip theo nhn phm A s
tr v mn hnh chnh. Sau nhn phm D ng c chy, nu mun dng ng
c th nhn tip phm D, cn nu nhn phm D sai th ta nhn phm * la chn
li cho ng.

GVHD: Trn Vn Hng

41

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 3: NI DUNG V PHNG PHP NGHIN CU

Thut ton la chn ch 2.


- Ta ly mu ADC 60 ln, sau cng trung bnh cc gi tr ADC, sau
chuyn ra tn s (ADC/5)
- Hin th gi tr ADC ln mn hnh LCD.
- Nhn phm D cp nht tn s v chy ng c.

GVHD: Trn Vn Hng

42

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 3: NI DUNG V PHNG PHP NGHIN CU

Thut ton la chn ch 3.

GVHD: Trn Vn Hng

43

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 4: KT QU V THO LUN

CHNG 4

KT QU V THO LUN
4.1 KT QU
Sau thi gian tm hiu, nghin cu, lm mch, m hnh hon thnh v hot ng
t yu cu. Tc t v tc o c hin th trn LCD. Gi tr t c c
nhp t bn phm ma trn to s linh hot, c th thay i gi tr t mt cch nhanh
chng khng cn phi kt ni my tnh. Nhp gi tr t bn phm nh sau:
ch thng, tt c cc phm khng c tc dng tr phm MENU. Nhn
phm MENU s a mn hnh vo ch ci t.
Trong ch ci t, nhn phm 0 n 9 nhp gi tr v ENT cp nht
gi tr v thot ra ch thng. Nhn phm UP s tr li ch thng, tc
t khng thay i. Nhn phm MENU s xa gi tr va nhp vo
nhp li gi tr khc.
M hnh cng c kh nng kt ni vi my tnh thng qua mch giao tip ni tip dng
RS232.
Giao din my tnh cho php nhp tc t, hin th tc o.
Giao din my tnh cng cho php thay i h s Kp, Kd, iu m bn phm ma
trn khng lm c.
C nhiu ty chn thng s giao tip, kt ni nh chn tc baud, cng com,
bit chn l, stop bit.
C th ghi li gi tr o theo thi gian, thng qua c th kho st, nh gi
cht lng iu khin ca h thng.
Trong chng trnh ny, cng com kt ni l COM8, tc baud 9600, 1 Stop
bit, 8 bit d liu, khng dng bit chn l.
Tuy nhin, do ln u tin lm v ng c ba pha nn khng trnh khi mt s
hn ch v phn cng lm cho m hnh hot ng cha c tt. Ngoi dy tc ny
ng c khng cn n nh.

GVHD: Trn Vn Hng

45

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 4: KT QU V THO LUN

Hnh 4.1 M hnh phn cng


Dng sng u ra:

GVHD: Trn Vn Hng

46

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 4: KT QU V THO LUN

Dng sng u ra ni hnh sao, in p dy:

GVHD: Trn Vn Hng

47

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 4: KT QU V THO LUN

GVHD: Trn Vn Hng

48

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 4: KT QU V THO LUN

Dng sng u ra u dng tam gic:

GVHD: Trn Vn Hng

49

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 4: KT QU V THO LUN

Hnh 4.2 Giao din iu khin trn my tnh


t tc 1300:

Ban u vt l cao nhng sau tc v gn tc t, sai lch nh.

GVHD: Trn Vn Hng

50

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 4: KT QU V THO LUN


t tc 1650, mn hnh giao tip nh di:

t tc 1700 mn hnh nh di:

GVHD: Trn Vn Hng

51

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 4: KT QU V THO LUN

4.2 THO LUN


Mt s hn ch v mt phn cng c th ni n l phn gii ca cm bin o
dng in v encoder thp.
Encoder s dng c phn gii 500 xung/vng. Khi QEI ca dspic nng
phn gii ln 4 ln ch t 2000 xung/vng. Nu thi gian ly mu nh,
c vi mili giy th sai s c th ln n vi chc vng/pht cho mt xung.
Thc t, i vi iu khin ng c ny th encoder phi c phn gii trn
1000 xung/vng. Nhng loi encoder ny rt t v kh tm mua.
ng c ba pha khi khi ng trc tip th dng ban u ln t 5-7 ln dng
danh nh.
Giao din my tnh v c bn c th ci t, thay i cc thng s cn thit, nhng
tc ly mu v th cn thp nn th khng r nt giai on qu .

GVHD: Trn Vn Hng

52

SVTH: Nguyn ng Tn
Ng Kin t

CHNG 5: KT LUN V KIN NGH

CHNG 5

KT LUN V KIN NGH


M hnh hon thnh nhng vn cn nhiu vn cha tt cn phi sa i nu
mun pht trin v hon thin.
V phn cng, cn thay th bng encoder v cm bin c phn gii cao hn.
V giao tip nn b sung, thit k li giao din cho p hn, tm cch khc phc
hin tng khng ng b truyn cc thng s khc nhau c th tng tc
c gi d liu c th iu khin tt hn v th c r nt hn.
Tuy vy, m hnh ny cng l c s, bc u, lm nn tng cho vic hon thin v
pht trin sau ny.

GVHD: TRN VN HNG

49

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

TI LIU THAM KHO


1. Sch Truyn ng in thng minh ca thy Nguyn Phng Quang, Nh xut
bn khoa hc v k thut H Ni 2004.
2. Gio trnh L thuyt iu khin t ng ca Ths. Trn Th Hong Oanh trng
i hc Cng Nghip TP. H Ch Minh
3. Ti liu Using the dsPIC30F for Vector Control of an ACIM ca hng
Microchip.
4. Datasheet ca dsPIC30F4011.
5. Ti liu dsPIC30F Family Reference Manual ca hng Microchip.
6. Datasheet ca mosfet IRFP460.
7. Datasheet ca IC cch ly HCPL2631.
8. Datasheet ca IC li IR2102.
9. Datasheet ca cm bin o dng in ACS712.

GVHD: TRN VN HNG

50

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

PH LC
CHNG TRNH TRN VI IU KHIN
/**********************************************************
********************
**********************************************************
********************/
#include "p30F4011.h"
#include "delay.h"
#include "lcd.h"
#include "uart.h"
//----------------------------------------------------------------------------//Configuration bits
_FOSC(CSW_FSCM_OFF & XT_PLL16);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_ON
&
BORV27
&
PWRT_16
&
PWMxL_ACT_LO & PWMxH_ACT_LO & MCLR_EN);
_FGS(CODE_PROT_OFF);
//----------------------------------------------------------------------------//Program Specific Constants
#define FCY 29491200 //Instruction cycle rate (Osc x PLL / 4)
//----------------------------------------------------------------------------//Khai bao chuong trinh con
void period();
unsigned char ALL_ROWS();
//Phat hien co phim
nhan.
unsigned char kbd_getc();
//Ham lay ma phim.
unsigned int read_adc();
void adc_init();
void update();
void QEI_init();
void get_speed();
void pid_freq();
//----------------------------------------------------------------------------// Global variants using in subroutine
GVHD: TRN VN HNG

51

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

unsigned char kbd_down = 0;


// Bien chi thi da co nhan hay
chua co nhan phim lan nao (Mac dinh = FALSE).
unsigned char last_key;
// Bien chua ma phim duoc nhan o
lan nhan sau cung (Mac dinh = NULL).
//----------------------------------------------------------------------------//Global variables
const char KEYS[4][4] = {
{'1','2','3','A'},
//
{31H 32H 33H 41H}
{'4','5','6','B'},
//
{34H 35H 36H 42H}
{'7','8','9','C'},
//
{37H 38H 39H 43H}
{'*','0','#','D'}
};
//
{2AH 30H 23H 44H}
float Kp = 20, Ki = 8, Kd = 0, Up =0, Ui = 0, Ud = 0, freq = 60,
pc_freq = 0;
unsigned int pot_freq, key_freq,jog_freq;
int error[2] = {0,0};
int sum_error = 0, delta_error = 0;
int speed = 0,set_speed = 0, mea_speed = 0;
unsigned char mode = 1,tmr1_flag = 0, uart_flag = 0, chieuquay = 0,
byte_num = 0;
unsigned char pc_data[4] = {"0000"};
unsigned char tran_data[4] = {"0000"};
unsigned int locus = 0, locus_a = 0, locus_b = 0, locus_c = 0, step = 3;
//Position in sine table of each phase.
const float sine[720] = {0.00000, 0.00873, 0.01745, 0.02618, 0.03490,
0.04362, 0.05234, 0.06105, 0.06976, 0.07846, 0.08716, 0.09585,
0.10453, 0.11320, 0.12187,
0.13053, 0.13917, 0.14781, 0.15643, 0.16505, 0.17365, 0.18224,
0.19081, 0.19937,
0.20791, 0.21644, 0.22495,
0.23345, 0.24192, 0.25038, 0.25882, 0.26724, 0.27564, 0.28402,
0.29237, 0.30071,

GVHD: TRN VN HNG

52

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

0.30902, 0.31730, 0.32557,


0.33381, 0.34202, 0.35021, 0.35837, 0.36650, 0.37461, 0.38268,
0.39073, 0.39875,
0.40674, 0.41469, 0.42262,
0.43051, 0.43837, 0.44620, 0.45399, 0.46175, 0.46947, 0.47716,
0.48481, 0.49242,
0.50000, 0.50754, 0.51504,
0.52250, 0.52992, 0.53730, 0.54464, 0.55194, 0.55919, 0.56641,
0.57358, 0.58070,
0.58779, 0.59482, 0.60182,
0.60876, 0.61566, 0.62251, 0.62932, 0.63608, 0.64279, 0.64945,
0.65606, 0.66262,
0.66913, 0.67559, 0.68200,
0.68835, 0.69466, 0.70091, 0.70711, 0.71325, 0.71934, 0.72537,
0.73135, 0.73728,
0.74314, 0.74896, 0.75471,
0.76041, 0.76604, 0.77162, 0.77715, 0.78261, 0.78801, 0.79335,
0.79864, 0.80386,
0.80902, 0.81412, 0.81915,
0.82413, 0.82904, 0.83389, 0.83867, 0.84339, 0.84805, 0.85264,
0.85717, 0.86163,
0.86603, 0.87036, 0.87462,
0.87882, 0.88295, 0.88701, 0.89101, 0.89493, 0.89879, 0.90259,
0.90631, 0.90996,
0.91355, 0.91706, 0.92050,
0.92388, 0.92718, 0.93042, 0.93358, 0.93667, 0.93969, 0.94264,
0.94552, 0.94832,
0.95106, 0.95372, 0.95630,
0.95882, 0.96126, 0.96363, 0.96593, 0.96815, 0.97030, 0.97237,
0.97437, 0.97630,
0.97815, 0.97992, 0.98163,
0.98325, 0.98481, 0.98629, 0.98769, 0.98902, 0.99027, 0.99144,
0.99255, 0.99357,

GVHD: TRN VN HNG

53

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

0.99452, 0.99540, 0.99619,


0.99692, 0.99756, 0.99813, 0.99863, 0.99905, 0.99939, 0.99966,
0.99985, 0.99996,
1.00000, 0.99996, 0.99985,
0.99966, 0.99939, 0.99905, 0.99863, 0.99813, 0.99756, 0.99692,
0.99619, 0.99540,
0.99452, 0.99357, 0.99255,
0.99144, 0.99027, 0.98902, 0.98769, 0.98629, 0.98481, 0.98325,
0.98163, 0.97992,
0.97815, 0.97630, 0.97437,
0.97237, 0.97030, 0.96815, 0.96593, 0.96363, 0.96126, 0.95882,
0.95630, 0.95372,
0.95106, 0.94832, 0.94552,
0.94264, 0.93969, 0.93667, 0.93358, 0.93042, 0.92718, 0.92388,
0.92050, 0.91706,
0.91355, 0.90996, 0.90631,
0.90259, 0.89879, 0.89493, 0.89101, 0.88701, 0.88295, 0.87882,
0.87462, 0.87036,
0.86603, 0.86163, 0.85717,
0.85264, 0.84805, 0.84339, 0.83867, 0.83389, 0.82904, 0.82413,
0.81915, 0.81412,
0.80902, 0.80386, 0.79864,
0.79335, 0.78801, 0.78261, 0.77715, 0.77162, 0.76604, 0.76041,
0.75471, 0.74896,
0.74314, 0.73728, 0.73135,
0.72537, 0.71934, 0.71325, 0.70711, 0.70091, 0.69466, 0.68835,
0.68200, 0.67559,
0.66913, 0.66262, 0.65606,
0.64945, 0.64279, 0.63608, 0.62932, 0.62251, 0.61566, 0.60876,
0.60182, 0.59482,
0.58779, 0.58070, 0.57358,
0.56641, 0.55919, 0.55194, 0.54464, 0.53730, 0.52992, 0.52250,
0.51504, 0.50754,

GVHD: TRN VN HNG

54

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

0.50000, 0.49242, 0.48481,


0.47716, 0.46947, 0.46175, 0.45399, 0.44620, 0.43837, 0.43051,
0.42262, 0.41469,
0.40674, 0.39875, 0.39073,
0.38268, 0.37461, 0.36650, 0.35837, 0.35021, 0.34202, 0.33381,
0.32557, 0.31730,
0.30902, 0.30071, 0.29237,
0.28402, 0.27564, 0.26724, 0.25882, 0.25038, 0.24192, 0.23345,
0.22495, 0.21644,
0.20791, 0.19937, 0.19081,
0.18224, 0.17365, 0.16505, 0.15643, 0.14781, 0.13917, 0.13053,
0.12187, 0.11320,
0.10453, 0.09585, 0.08716,
0.07846, 0.06976, 0.06105, 0.05234, 0.04362, 0.03490, 0.02618,
0.01745, 0.00873,
0.00000, -0.00873, -0.01745, 0.02618, -0.03490, -0.04362, -0.05234, -0.06105, -0.06976, -0.07846, 0.08716, -0.09585,
-0.10453, -0.11320, -0.12187,
-0.13053, -0.13917, -0.14781, -0.15643, -0.16505, -0.17365, -0.18224, 0.19081, -0.19937,
-0.20791, -0.21644, -0.22495,
-0.23345, -0.24192, -0.25038, -0.25882, -0.26724, -0.27564, -0.28402, 0.29237, -0.30071,
-0.30902, -0.31730, -0.32557,
-0.33381, -0.34202, -0.35021, -0.35837, -0.36650, -0.37461, -0.38268, 0.39073, -0.39875,
-0.40674, -0.41469, -0.42262,
-0.43051, -0.43837, -0.44620, -0.45399, -0.46175, -0.46947, -0.47716, 0.48481, -0.49242,
-0.50000, -0.50754, -0.51504,
-0.52250, -0.52992, -0.53730, -0.54464, -0.55194, -0.55919, -0.56641, 0.57358, -0.58070,

GVHD: TRN VN HNG

55

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

-0.58779, -0.59482, -0.60182,


-0.60876, -0.61566, -0.62251, -0.62932, -0.63608, -0.64279, -0.64945, 0.65606, -0.66262,
-0.66913, -0.67559, -0.68200,
-0.68835, -0.69466, -0.70091, -0.70711, -0.71325, -0.71934, -0.72537, 0.73135, -0.73728,
-0.74314, -0.74896, -0.75471,
-0.76041, -0.76604, -0.77162, -0.77715, -0.78261, -0.78801, -0.79335, 0.79864, -0.80386,
-0.80902, -0.81412, -0.81915,
-0.82413, -0.82904, -0.83389, -0.83867, -0.84339, -0.84805, -0.85264, 0.85717, -0.86163,
-0.86603, -0.87036, -0.87462,
-0.87882, -0.88295, -0.88701, -0.89101, -0.89493, -0.89879, -0.90259, 0.90631, -0.90996,
-0.91355, -0.91706, -0.92050,
-0.92388, -0.92718, -0.93042, -0.93358, -0.93667, -0.93969, -0.94264, 0.94552, -0.94832,
-0.95106, -0.95372, -0.95630,
-0.95882, -0.96126, -0.96363, -0.96593, -0.96815, -0.97030, -0.97237, 0.97437, -0.97630,
-0.97815, -0.97992, -0.98163,
-0.98325, -0.98481, -0.98629, -0.98769, -0.98902, -0.99027, -0.99144, 0.99255, -0.99357,
-0.99452, -0.99540, -0.99619,
-0.99692, -0.99756, -0.99813, -0.99863, -0.99905, -0.99939, -0.99966, 0.99985, -0.99996,
-1.00000, -0.99996, -0.99985,
-0.99966, -0.99939, -0.99905, -0.99863, -0.99813, -0.99756, -0.99692, 0.99619, -0.99540,
-0.99452, -0.99357, -0.99255,
-0.99144, -0.99027, -0.98902, -0.98769, -0.98629, -0.98481, -0.98325, 0.98163, -0.97992,

GVHD: TRN VN HNG

56

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

-0.97815, -0.97630, -0.97437,


-0.97237, -0.97030, -0.96815, -0.96593, -0.96363, -0.96126, -0.95882, 0.95630, -0.95372,
-0.95106, -0.94832, -0.94552,
-0.94264, -0.93969, -0.93667, -0.93358, -0.93042, -0.92718, -0.92388, 0.92050, -0.91706,
-0.91355, -0.90996, -0.90631,
-0.90259, -0.89879, -0.89493, -0.89101, -0.88701, -0.88295, -0.87882, 0.87462, -0.87036,
-0.86603, -0.86163, -0.85717,
-0.85264, -0.84805, -0.84339, -0.83867, -0.83389, -0.82904, -0.82413, 0.81915, -0.81412,
-0.80902, -0.80386, -0.79864,
-0.79335, -0.78801, -0.78261, -0.77715, -0.77162, -0.76604, -0.76041, 0.75471, -0.74896,
-0.74314, -0.73728, -0.73135,
-0.72537, -0.71934, -0.71325, -0.70711, -0.70091, -0.69466, -0.68835, 0.68200, -0.67559,
-0.66913, -0.66262, -0.65606,
-0.64945, -0.64279, -0.63608, -0.62932, -0.62251, -0.61566, -0.60876, 0.60182, -0.59482,
-0.58779, -0.58070, -0.57358,
-0.56641, -0.55919, -0.55194, -0.54464, -0.53730, -0.52992, -0.52250, 0.51504, -0.50754,
-0.50000, -0.49242, -0.48481,
-0.47716, -0.46947, -0.46175, -0.45399, -0.44620, -0.43837, -0.43051, 0.42262, -0.41469,
-0.40674, -0.39875, -0.39073,
-0.38268, -0.37461, -0.36650, -0.35837, -0.35021, -0.34202, -0.33381, 0.32557, -0.31730,
-0.30902, -0.30071, -0.29237,
-0.28402, -0.27564, -0.26724, -0.25882, -0.25038, -0.24192, -0.23345, 0.22495, -0.21644,

GVHD: TRN VN HNG

57

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

-0.20791, -0.19937, -0.19081,


-0.18224, -0.17365, -0.16505, -0.15643, -0.14781, -0.13917, -0.13053, 0.12187, -0.11320,
-0.10453, -0.09585, -0.08716,
-0.07846, -0.06976, -0.06105, -0.05234, -0.04362, -0.03490, -0.02618, 0.01745, -0.00873
};
// Sine table with 720
values.
//==================================================
===========================
//Main routine
//Set up LEDs and timer, wait for timer periods, and flash one of the
two LEDs
int main(void)
{
unsigned char key = 0,key_change = 0;
unsigned int a,adc_value;
adc_init();
QEI_init();
UART1_init();
// Thiet lap PWM tan so 5kHz.
OVDCON = 0x00ff;
//Tat che do PWM va ngo ra tich cuc (muc
thap)
PTCON = 0x0000; //Turn off PWM and clear settings
PTPER = 2100;
//Tan so song mang = 1.8kHz + HIN pulsewidth >
1us + deadtime.
PWMCON1 = 0x00ff;
//Che do bo tro & ngo ra PWM.
DTCON1 = 0x006B;
//Deadtime = 88 Tcy = 3us
PDC1 = 0xffff;
//Xoa duty cycle phase A => Ngo ra
PWM1H tich cuc muc thap.
PDC2 = 0xffff;
//Xoa duty cycle phase B => Ngo ra
PWM2H tich cuc muc thap.
PDC3 = 0xffff;
//Xoa duty cycle phase C => Ngo ra
PWM3H tich cuc muc thap.
// Dieu khien ngoai vi ban dau.
GVHD: TRN VN HNG

58

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

TRISBbits.TRISB1 = 0; //Relay
TRISBbits.TRISB2 = 0; //BUZZ
LATBbits.LATB1 = 0;
lcd_init();
kbd_init();
__delay_ms(1000);
// Thiet lap Timer 2 de update gia tri PWM.
IEC0 = 0x0048; //Enalble Timer1 & Timer 2 interrupt request
T2CON = 0; //Turn off Timer2 and clear settings
TMR2 = 0; //Start Timer2 at zero
PR2 = FCY/240/freq; //Set period register value for 1/240/60 second
(60 Hz)
T2CON = 0x8000; //Turn on Timer2 with 1:1 prescaler.
//Thiet lap Timer 1 de lay toc do tra ve tu encoder.
T1CON = 0;
TMR1 = 0;
PR1 = 0xE61D;
//Set thoi gian timer1 sao cho so xung tra ve = so
vong/phut.
T1CON = 0x8030; //Turn on Timer1 with 1:256 prescaler.
PTCON = 0x8007;
// Hien thi LCD
lcd_puts(" Welcome ");
lcd_gotoxy(0,1);
lcd_puts("Bien tan SinPWM ");
__delay_ms(1000);
//--------------- Che do ban phim -----------------------MODE1:
lcd_putc('\f');
lcd_puts("Tan so:
Hz");
lcd_gotoxy(12,0);
lcd_putd(freq);
if(key_change == 1)
{
lcd_gotoxy(0,1);
lcd_puts("Nhan D de update");
GVHD: TRN VN HNG

59

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

}
while(1)
{
key = kbd_getc();
if(key == 'D')
{
key_change = 0;
lcd_gotoxy(0,1);
lcd_puts("Toc do:
rpm");
lcd_gotoxy(11,1);
lcd_putd(speed);
OVDCON = 0xffff; //ngo ra PWM
module PWM.
update();
while(1)
{
if(tmr1_flag == 1)
//Neu
cap nhat.
{
lcd_gotoxy(11,1);
lcd_putd(speed);
tmr1_flag =0;
}
__delay_ms(10);
phim.
switch (kbd_getc())
{
case 'D':
ngung bien tan.
OVDCON = 0x00ff;
khien boi POUTx o muc tich cuc (1).
goto MODE1;
man hinh ban dau cua che do KEY.
break;
case '*':
GVHD: TRN VN HNG

60

dieu khien boi

gia tri speed dc

//Chong doi ban

//Nhan
//Ngo

nut
ra

//Tro

dieu
ve

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

key_change = 1;
goto MODE1_1;

//Truong

hop

muon thay doi tan so.


break;
default:
break;
}
}
}
MODE1_1:
if(key == '*')
{
key_freq = 0;
lcd_putc('\f');
lcd_puts(" Nhap tan so: ");
lcd_gotoxy(0,1);
lcd_puts("
Hz ");
while(key != 'C')
{
key = kbd_getc();
if (key != 'A' && key != 'B' && key != 'C' &&
key != 'D' && key != '*' && key != '\0')
{
if(key == '#')
key_freq /= 10;
else
key_freq = key_freq*10 + (key - 48);
if(key_freq > 200)
key_freq /= 10;
lcd_gotoxy(7,1);
lcd_putc(' ');
lcd_putc(' ');
lcd_putd(key_freq);
}
}
GVHD: TRN VN HNG

61

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

if(key_freq != 0)
freq = key_freq;
goto MODE1;
}
if(key == 'A')
goto MENU;
}
//--------------------- Menu chinh -----------------------MENU:
lcd_putc('\f');
lcd_puts("KEY POT COM JOG ");
lcd_gotoxy(0,1);
lcd_puts(" 1 2 3 4 ");
while (1)
{
switch(kbd_getc())
{
case 'A':
lcd_putc('\f');
lcd_puts("Time.Set PID ");
lcd_gotoxy(0,1);
lcd_puts(" 5
6 ");
while(1)
{
switch(kbd_getc())
{
case 'A':
goto MENU;
break;
/*case '2':
mode = 2;
goto MODE2;
break;
case '3':
GVHD: TRN VN HNG

62

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

mode = 3;
goto MODE3;
break;*/
default:
break;
}
}
break;
case '1':
mode =1;
goto MODE1;
break;
case '2':
mode = 2;
goto MODE2;
break;
case '3':
mode = 3;
goto MODE3;
break;
case '4':
mode = 4;
goto MODE4;
break;
default:
break;
}
}
//------------------------ Che do su dung bien tro -----------------------------MODE2:
adc_value = 0;
lcd_putc('\f');
lcd_puts("Gia tri adc: ");
lcd_gotoxy(0,1);
GVHD: TRN VN HNG

63

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

lcd_puts("Nhan [D] de chay");


while (1)
{
for(a =0;a<60;a++) //Doc adc 60 lan => vua du cong lai trong 1
bien 16 bit.
adc_value += read_adc();
adc_value /= 61; //Chia 61 vi tinh luon gia tri cu con luu.
lcd_gotoxy(15,0);
lcd_putd(adc_value);
key = kbd_getc();
if(key == 'A')
goto MENU;
if(key == 'D')
{
lcd_putc('\f');
lcd_puts("Tan so:
Hz");
lcd_gotoxy(0,1);
lcd_puts("Toc do:
rpm");
OVDCON = 0xffff;
//Bat PWM.
while(kbd_getc() != 'D') //Nhan nut D de dung lai.
{
for(a = 0;a<60;a++)
adc_value += read_adc();
adc_value /= 61;
pot_freq = adc_value/5; //Do phan giai adc la
1024, tan so max la 200 => lay gan dung = adc/5.
if(pot_freq < 1)
//Gioi han lai tan so tu
1 den 200
pot_freq = 1;
else if(pot_freq > 200)
pot_freq = 200;
if(pot_freq != freq)
{
freq = pot_freq;
update();
GVHD: TRN VN HNG

64

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

}
if(tmr1_flag == 1)

//Neu gia tri speed dc

cap nhat.
{
lcd_gotoxy(11,1);
lcd_putd(speed);
tmr1_flag =0;
}
lcd_gotoxy(12,0);
lcd_putd(freq);
}
OVDCON = 0x00ff;
lcd_putc('\f');
lcd_puts("Gia tri adc: ");
lcd_gotoxy(0,1);
lcd_puts("Nhan [D] de chay");
}

//Tat PWM.

}
//Lap lai mode 2.

//------------------------- Che do JOG ---------------------------------------MODE4:


lcd_putc('\f');
lcd_puts("Chay che do JOG ");
lcd_gotoxy(0,1);
lcd_puts("
STOP
");
while(1)
{
key = kbd_getc();
if(key == 'A')
goto MENU;
if(key == 'D')
{
lcd_gotoxy(0,1);
lcd_puts("
RUN
");
jog_freq = freq;
GVHD: TRN VN HNG

65

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

freq = 10;
update();
//Cap nhat tan so 10 Hz
OVDCON = 0xffff; //Chay PWM
__delay_ms(1000);
key = '\0';
//Xoa key quet lai.
freq = jog_freq;
OVDCON = 0x00ff;
//Tat PWM
lcd_gotoxy(0,1);
lcd_puts("
STOP
");
}
}
//-------------------------- Che do giao tiep may tinh-----------------------MODE3:
lcd_putc('\f');
lcd_puts("Ket noi den PC");
lcd_gotoxy(0,1);
lcd_puts("Nhan D de chay");
set_speed = 1500;
Kp = 1;
Ki = 0.5;
Kd = 0;
while(1)
{
key = kbd_getc();
if(key == 'A')
{
goto MENU;
}
if(key == 'D')
{
lcd_putc('\f');
lcd_puts("Tan so:
Hz");
lcd_gotoxy(0,1);
lcd_puts("Nhan D de dung");
GVHD: TRN VN HNG

66

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

__delay_ms(100);
IEC0|= 0x0200;
//U1RX Interrupt enable.
while(kbd_getc() != 'D')
{
if(tmr1_flag == 1)
{
tmr1_flag == 0;
mea_speed = speed;
pid_freq();
freq = pc_freq;
lcd_gotoxy(12,0);
lcd_putf(freq);
//
update();
//
OVDCON = 0xffff;
for(a=0;a<4;a++)
{
tran_data[3-a] = mea_speed%10
+48;
mea_speed/=10;
}
//if(uart_flag == 1)
putsUART1(tran_data);
}
}
IEC0 &= 0xfdff;
OVDCON = 0x00ff;
goto MODE3;
}
}

} //End of main()
//==================================================
===========================
//Error traps
GVHD: TRN VN HNG

67

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

//----------------------------------------------------------------------------//Oscillator Fail Error trap routine


void _ISR _OscillatorFail(void)
{
LATBbits.LATB2 = 1; //Turn LED D4 on
while(1); //Wait forever
}
//----------------------------------------------------------------------------//Address Error trap routine
void _ISR _AddressError(void)
{
LATBbits.LATB3 = 1; //Turn LED D4 on
while(1); //Wait forever
}
//----------------------------------------------------------------------------//Stack Error trap routine
void _ISR _StackError(void)
{
LATBbits.LATB4 = 1; //Turn LED D4 on
while(1); //Wait forever
}
//----------------------------------------------------------------------------//Math (Arithmetic) Error trap routine
void _ISR _MathError(void)
{
LATBbits.LATB5 = 1; //Turn LED D4 on
while(1); //Wait forever
}
//----------------------------------------------------------------------------//Interrupts subroutine
void __attribute__((__interrupt__, auto_psv)) _T2Interrupt (void)
{
IFS0bits.T2IF = 0; // Clear timer 2 interrupt flag
locus = locus + step;
if(locus > 719)
GVHD: TRN VN HNG

68

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

locus = 0;
period();
}
void __attribute__((__interrupt__)) _T1Interrupt (void)
{
IFS0bits.T1IF = 0; // Clear timer 1 interrupt flag
get_speed();
tmr1_flag = 1;
POSCNT = 0;
}
void __attribute__((__interrupt__)) _U1RXInterrupt(void)
{
IFS0bits.U1RXIF = 0;
// Read the receive buffer till atleast one or more character
can be read
while(DataRdyUART1())
{
pc_data[byte_num] = U1RXREG;//ReadUART1(); //
Nhan chuoi thong tin (gom 5 byte) tu UART.
byte_num++;
// Tang bien dem so
luong byte da nhan trong chuoi.
if (byte_num>3) // Kiem tra so byte du lieu nhan
duoc.
{
uart_flag = 1;
byte_num = 0;
// Dat lai so thu byte trong
chuoi (tong so byte trong chuoi la 5).
}
}
}
/*void __attribute__((__interrupt__, auto_psv)) _T3Interrupt (void)
{
IFS0bits.T3IF = 0; // Clear timer 3 interrupt flag
GVHD: TRN VN HNG

69

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

display = pdc1_value;
for(i = 15;i>=12;i--)
{
lcd_gotoxy(i,1);
lcd_putc(number[display%10]);
display = display/10;
}
}*/
//-----------------------------------------------------------------------------//Subroutines
void period()
{
locus_a = locus;
locus_b = locus+240;
locus_c = locus+480;
if(locus_b > 719)
locus_b -= 720;
if(locus_c > 719)
locus_c -= 720;
PDC1 = (unsigned int)1050 + 1000*sine[locus_a];
PDC2 = (unsigned int)1050 + 1000*sine[locus_b];
PDC3 = (unsigned int)1050 + 1000*sine[locus_c];
}
// ***************************************************
// Ten CTC:
ALL_ROWS(void).
// Thong so dau vao:
// Thong so dau ra: Tra ve gia tri LOW(0) neu khong nhan phim.
//
Tra ve gia tri HIGH(1) neu co nhan
phim.
// Cong dung:
Kiem tra co nhan hay khong nhan phim.
// ***************************************************
unsigned char ALL_ROWS() // Ham kiem tra co nhan hay khong
nhan phim.
GVHD: TRN VN HNG

70

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

{
// Tra ve gia tri
LOW(0) neu khong nhan phim va gia tri HIGH(1) neu co nhan
phim.
// Khai bao bien.
// Dinh nghia ham.
if(row0 && row1 && row2 && row3)
logic cua cac hang ban phim.

// Kiem tra muc

// Neu tat ca cac hang deu co muc HIGH ->


khong nhan phim.
return(0);
phim nhan.
else
return(1);
nhan.
}

// Tra ve ket qua la LOW(0) neu khong co

// Tra ve ket qua la HIGH(1) neu co phim

// ***************************************************
// Ten CTC:
kbd_getc().
// Thong so dau vao:
// Thong so dau ra: Ma phim duoc nhan tren ban phim 4x4 (ma
ASCII). Xem cau hinh ben tren.
// Cong dung:
Ham se tra ve gia tri (ma) cua phim duoc nhan
(theo ASCII),
//
hoac ky tu NULL neu khong co
phim nao duoc nhan.
//
Ham nay phai duoc goi lien tuc de tranh khong phat hien
phim nhan.
// ***************************************************
unsigned char kbd_getc()
// Ham lay ma phim duoc nhan tren
ban phim.
{
// Khai bao bien.
unsigned char kchar;
// Bien chua ma phim.
GVHD: TRN VN HNG

71

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

unsigned char col = 0;


// Bien thu tu cot duoc
quet (Cot tich cuc, mac dinh = cot 0).
unsigned char row = 0;
// Bien thu tu
hang co phim nhan (Hang tich cuc).
unsigned int kbd_call_count; // Bien dem so lan goi quet
phim de thuc hien chong doi.
// Dinh nghia ham.
kchar = '\0'; // Bien chua ma phim duoc nhan (Mac dinh ban
dau chua ky tu NULL).
for(kbd_call_count
=
0;
kbd_call_count
<=
kbd_debounce_factor; kbd_call_count++) // Thuc hien vong lap
de chong doi phim nhan.
{
switch(col) // Chon lua xuat ma quet cot tuong ung
cho tung cot tren ban phim.
{
case 0:
// Xuat ma quet cho cot 0: 1110.
col3 = 1;
col2 = 1;
col1 = 1;
col0 = 0;
break;
case 1:
// Xuat ma quet cho cot 1: 1101.
col3 = 1;
col2 = 1;
col1 = 0;
col0 = 1;
break;
case 2:
// Xuat ma quet cho cot 2: 1011.
col3 = 1;
col2 = 0;
col1 = 1;
col0 = 1;
GVHD: TRN VN HNG

72

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

break;
case 3:
col3 = 0;
col2 = 1;
col1 = 1;
col0 = 1;
break;
}

// Xuat ma quet cho cot 3: 0111.

if(kbd_down == 1) // Kiem tra xac nhan viec da co


nhan hay chua nhan phim.
// Neu chua nhan thi kiem tra
phim nao se duoc nhan.
// Neu da co phim nhan thi
cho den khi phim da nhan duoc nha (buong ra).
{
// Truong hop da co nhan phim
(kbd_down = True) - Cho nha phim da nhan.
if(ALL_ROWS() == 0) // Neu khong co phim
nao duoc nhan (khong con giu phim nhan nua).
{
kbd_down = 0;
// Xac nhan khong con
phim nao duoc nhan (kbd_down = False).
kchar = last_key; // Lay ma phim duoc
nhan truoc do.
last_key = '\0';
// Cat ma phim
(NULL) tuong ung khong nhan phim nao.
}
}
else
{
// Truong hop chua co phim nao
nhan (kbd_down = False) - Kiem tra phim nao duoc nhan.
if(ALL_ROWS() == 1)
// Neu truong
hop CO bat ky phim nao duoc nhan
{
// Kiem tra phim
duoc nhan thuoc hang nao (Hang tich cuc).
GVHD: TRN VN HNG

73

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

LATBbits.LATB2 = 1; //Bao coi


if(!row0)
// Hang 0 tich cuc?
(row0 = LOW).
row = 0;

//

Hang 0.
else if(!row1)

// Hang 1 tich cuc?

(row1 = LOW).
row = 1;

//

Hang 1.
else if(!row2)

// Hang 2 tich cuc?

(row2 = LOW).
row = 2;

//

Hang 2.
else if(!row3)

// Hang 3 tich cuc?

(row3 = LOW).
row = 3;

//

Hang 3.
last_key = KEYS[row][col];
phim dua vao hang (row) va cot (col) tich cuc.

// Lay ma

// Bo ma cua ban phim duoc thiet lap o dau chuong trinh.


kbd_down = 1;
//
Xac
nhan da co phim nhan (kbd_down = True).
}
else
// Neu truong hop
KHONG CO phim nao duoc nhan.
{
// Chuyen sang
quet cot ke tiep.
col++;
// Tang bien quet cot ->
chuyen sang quet cot ke tiep.
if (col == 4) // Xu ly de chi quet 4 cot (tra
ve quet cot dau tien).
col = 0;
// Cot 0.
}
GVHD: TRN VN HNG

74

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

}
}
while (ALL_ROWS() != 0);
// Cho cho den khi khong con
giu phim nua moi tra ve ma phim nhan.
LATBbits.LATB2 = 0;
return(kchar);
// Tra ve ma ASCII cua phim duoc nhan
(bang ma duoc khai bao o dau chuong trinh).
}
//Chuong trinh cai dat adc
void adc_init()
{
TRISBbits.TRISB0 = 1; //RB0 la input.
ADPCFG = 0xfffe;
//AN0 la input analog.
ADCON1 = 0x00e0;
//Convert tu dong.
ADCON2 = 0;
ADCON3 = 0x033f;
//Thoi gian lay mau = 3 Tad
(3us), Tad = 32 Tcy = 1us.
ADCHS = 0;
//CN0- = Vref- = AVss, CN0+
= AN0.
ADCSSL = 0;
//Chi lay mau tai AN0
nen khong scan input.
ADCON1bits.ADON = 1; //Cho phep chay ADC.
}
//Chuong trinh lay gia tri adc
unsigned int read_adc()
{
ADCON1bits.SAMP = 1;
while(!ADCON1bits.DONE);
ADCON1bits.DONE = 0;
return (ADCBUF0);
}
//Chuong trinh cap nhat gia tri PR2
GVHD: TRN VN HNG

75

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

void update()
{
if(freq < 25)
step = 1;
else if (freq < 50)
step = 2;
else if (freq < 75)
step = 3;
else if (freq < 100)
step = 4;
else if (freq < 125)
step = 5;
else if (freq < 150)
step = 6;
else
step = 8;
IEC0 &= 0xffbf;
T2CON = 0;
TMR2 = 0;
PR2 = FCY/720/freq*step;
IEC0 |= 0x0040;
T2CON = 0x8000;
}
//Chuong trinh thiet lap QEI.
void QEI_init()
{
QEICONbits.QEIM = 0; // Tat Module QEI
QEICONbits.TQCS = 0; // su dung bo dao dong trong
QEICONbits.CNTERR = 0; // Clear any count errors
QEICONbits.QEISIDL = 0; // Continue operation during
sleep
QEICONbits.SWPAB = 0; // QEA and QEB not swapped
QEICONbits.PCDOUT = 0; // Normal I/O pin operation
GVHD: TRN VN HNG

76

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

QEICONbits.POSRES = 0; // reset bang tran bo nho


DFLTCONbits.CEID = 1; // Count error interrupts disabled
DFLTCONbits.QEOUT = 1; // Digital filters output enabled
for QEn pins
DFLTCONbits.QECK = 5; // 1:256 clock divide for digital
filter for QEn
//
DFLTCONbits.INDOUT = 1; // Digital filter output enabled
for Index pin
POSCNT = 0; // Reset position counter
QEICONbits.QEIM = 7; // X4 mode with position counter
reset by Index
MAXCNT = 0xFFFF;
}
void get_speed()
{
speed = (int) POSCNT;
if(speed < 0)
speed = - speed;
chieuquay = QEICONbits.UPDN;
}
void pid_freq()
{
error[0] = set_speed - mea_speed;
sum_error = sum_error + (error[0] + error[1])/2;
delta_error = error[0] - error[1];
Up = Kp*error[0];
Ui = Ki*sum_error*0.51136;
Ud = Kd*delta_error/1.9556;
error[1] = error[0];
GVHD: TRN VN HNG

77

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

/*

pc_freq = (Up + Ui + Ud)*75/1800;


if(pc_freq < 1)
pc_freq = 1;
if(pc_freq > 75)
pc_freq = 75;*/

}
CHNG TRNH TRN VB 6.0
Dim chuoinhan As String
Dim maguidi As String
Dim chuoinhan1 As String
Dim tocdodo As Long
Dim tocdodat As Long
Dim kp, ki, kd As Single
Dim e0, e1, e2, e3, e4, e5 As Single
Dim MANG(0 To 500000) As Long
Dim biendem As Integer
Private Sub Command1_Click()
'gui du lieu di
maguidi = txtgiu.Text
If (Len(maguidi) < 4) Then
MsgBox "Du lieu chua du"
Else
If MSComm1.PortOpen = True Then
MSComm1.Output = maguidi
GVHD: TRN VN HNG

78

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

Else
MsgBox "Chua ket noi Cong COM"
End If
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Command3_Click()
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
Label1.Caption = "Disconnect" 'hien thi chu Disconnect len
Shape1.BackColor = &HFF&

'hien mau do len

Else
MsgBox "Not Conneting"
End If
End Sub
Private Sub Command4_Click()
txthien.Text = ""
End Sub
Private Sub connect_Click()
'an nut ket noi

GVHD: TRN VN HNG

79

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

'Doan thiet lap truyen thong.


If Combo1.Text = "" Then
MsgBox "xin moi chon cong COM"
Else
With MSComm1
.CommPort = Combo1.Text
.Settings = "9600,N,8,1"
stop

'baud 9600bps, none parity, 8 bit data, 1 bit

.InBufferSize = 512
.InputLen = 0
.RThreshold = 1
.SThreshold = 1
.OutBufferSize = 1024
'.InputMode = comInputModeBinary // dung de truyen so
.InputMode = comInputModeText
.PortOpen = True
End With
Label1.Caption = "Connect"
Shape1.BackColor = &HFF00&
End If
End Sub
Private Sub MSComm1_OnComm()
Dim chuoinhan1 As String
GVHD: TRN VN HNG

80

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

chuoinhan1 = MSComm1.Input
txtnhanve.Text = chuoinhan1 + txtnhanve.Text
txthien.Text = txtnhanve.Text
'StrReverse(
tocdodat = Val(txtgiu.Text)
tocdodo = Val(txthien.Text)
MANG(biendem) = tocdodo
'dich chuyen truc
If biendem / 10 > 10 Then
TChart1.Axis.Bottom.SetMinMax biendem / 10 - 9, biendem / 10
TChart1.Series(0).AddXY biendem / 10, MANG(biendem), "", vbBlue
TChart1.Series(1).AddXY biendem / 10, tocdodat, "", vbRed
'TChart1.Series(2).AddXY biendem / 20, MANG(biendem) + 100, "",
vbGreen
Else
TChart1.Series(0).AddXY biendem / 10, MANG(biendem), "", vbBlue
TChart1.Series(1).AddXY biendem / 10, tocdodat, "", vbRed
'TChart1.Series(2).AddXY biendem / 20, MANG(biendem) + 100, "",
vbGreen '
End If
biendem = biendem + 1
End Sub
GVHD: TRN VN HNG

81

SVTH: Nguyn ng Tn
Ng Kin t

PH LC

Sub PID(kp As String, ki As String, kd As String)


tocdodat = Val(txtgiu.Text)
e0 = tocdodat - tocdodo
tocdodo = tocdodo + kp * (e0 - e1) + ki * (e0 + e1) / 2 + kd * (e0 - 2 * e1 +
e2)
End Sub
Private Sub Timer1_Timer()
Timer = Timer + 1
If (Timer = 3000) Then
Timer = 0
With TChart1
.Series(0).Clear
.Series(1).Clear
End With
End If
Timer1.Enabled = False
Timer1.Enabled = True
End Sub

GVHD: TRN VN HNG

82

SVTH: Nguyn ng Tn
Ng Kin t

You might also like