Professional Documents
Culture Documents
QUANG LVTN Hoanchinh PDF
QUANG LVTN Hoanchinh PDF
LUN VN TT NGHIP I HC
TP H Ch Minh, 01/2007
i
NHN XT CA GIO VIN HNG DN
-----------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
---------------------------------------------------
Tp H Ch Minh, thng 1 nm 2007
Gio vin hng dn
ii
NHN XT CA GIO VIN PHN BIN
----------------------------------------------
---------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
iii
LI CM N !
iv
MC LC
CHNG 1: 2
GII THIU V NG C KB V PHNG PHP IU KHIN 2
1.1> TNG QUAN V NG C NG B: .........................................................2
1.1.1) Gii thiu: ....................................................................................................2
1.1.2) Cu to: .......................................................................................................2
1.1.3) ng dng:....................................................................................................3
1.2> CC PHNG PHP IU KHIN NG C KB:....................................4
CHNG 2: 5
GII THIU V BIN TN NGUN P IU KHIN V/f=const 5
2.1> BIN TN NGUN P:.....................................................................................5
2.2> PHNG PHP IU KHIN V/f: ..................................................................5
2.2.1) Phng php E/f .........................................................................................5
2.2.2) Phng php V/f .........................................................................................6
2.3> PHNG PHP IU CH SIN PWM: ...........................................................7
2.3.1) Gii thiu: ....................................................................................................7
2.3.2) Cc cng thc tnh ton: .............................................................................9
2.3> PHNG PHP IU CH VECTOR KHNG GIAN ( SVM) ......................10
2.3.1) gii thiu chung: ........................................................................................10
2.3.2) S sp xp cc vector V0 -> V7 trn trc Va; Vb; Vc .........................11
2.3.2) Gii thiu vector Vs : .................................................................................13
uur
2.3.3) Cch tnh ton thi gian to ra vector Vs :...........................................15
2.4> K THUT IU CH VECTOR KHNG GIAN: ..........................................16
2.4.1) Gin ng ngt cc kha to ra Vector Vs trong tng sector:.......16
2.4.2) S tm tt ca qu trnh iu ch : ......................................................19
2.4.3) Tnh ton gc update ca vector Vs theo phng php iu khin V/f:...20
CHNG 3: 22
GII THIU V PIC Microcontrollers (MCUs) 22
3.1>TNG QUAN: ...................................................................................................22
3.1.1> Nhng c im ni bc PIC18F4431: ....................................................24
3.1.2> Nhng c im chnh: ............................................................................25
3.2>TM TT TRC PHN CNG:.......................................................................26
3.2.1> S chn MCU PIC18F4431 :...............................................................26
2.2.3) Chc nng ca tng chn:.......................................................................28
3.3> CC MODULE C BN: ...............................................................................32
3.3.1> Power control PWM module : ...................................................................32
3.3.2> Analog to digital converter module (A/D):................................................48
CHNG 4 : 51
THIT K PHN CNG 51
4.1> YU CU C BN : .......................................................................................51
4.2> S KHI CA H THNG : ....................................................................52
4.3> MCH NG LC : .......................................................................................53
4.3.1) B chnh lu:..............................................................................................53
4.3.2) B nghch lu:............................................................................................54
4.3.3) Mch li ( driver) & cch ly: .......................................................................55
4.2> MCH IU KHIN: .......................................................................................59
v
4.2.1) S khi mch iu khin: .....................................................................59
4.2.2) Cc tn hiu vo ca mch iu khin: .....................................................59
4.2.3) Tn hiu u ra ca mch iu khin: .......................................................59
CHNG 5: 60
LP TRNH 60
5.1> GII THUT LP TRNH : ..............................................................................60
5.1.1) Chng trnh chnh: ..................................................................................60
5.1.2) Chng trnh ngt: ....................................................................................61
5.2> GII THCH GII THUT : .............................................................................62
5.2.1) Chng trnh chnh: ..................................................................................62
5.2.2) Chng trnh ngt : ...................................................................................62
CHNG 6: 64
KT QU T C 64
6.1> PHN CNG:..................................................................................................64
6.1.1> Mch ng lc: .........................................................................................64
6.1.2> Mch iu khin:.......................................................................................65
6.2> PHN MM GIAO TIP VI NGI S DNG:..........................................66
6.2.2) M t: .........................................................................................................67
6.3> DNG SNG IN P NG RA:...................................................................67
6.4> HNG PHT TRIN: ...................................................................................68
6.4.1) Khc phc nhng khuyt im hin ti: ....................................................68
CHNG 7: 69
TI LIU THAM KHO 69
CHNG 8: 70
PH LC 70
8.1> S MCH (V TRN ORCAD):...............................................................70
8.1.1) S mch cch ly ...................................................................................70
8.1.2 S mch li: ...........................................................................................72
8.1.3) S mch nghch lu : ...........................................................................73
8.1.4) S mch iu khin :............................................................................74
8.2> CHNG TRNH VIT CHO PIC18F4431 : ..................................................76
8.3> CODE PHN MM GIAO TIP NGI S DNG:....................................102
vi
CHNG 1:GII THIU V NG C KB V PHNG PHP IU KHIN
CHNG 1:
GII THIU V NG C KB V PHNG PHP IU KHIN
1.1.2) Cu to:
+ V my:
V my c tc dng c nh li st v dy qun, khng dng lm mch dn
t. Thng v my c lm bng gang. i vi my c cng sut tng i
ln ( 1000kW ) thng dng thp tm hn li lm thnh v my. Tu theo cch
lm ngui my m dng v cng khc nhau.
+ li st:
Li st l phn dn t. V t trng i qua li st l t trng quay nn
gim tn hao: li st c lm bng nhng l thp k thut in p li.
+ Dy qun:
Dy qun stator c t vo cc rnh ca li st v c cch in tt vi
li st.
2
CHNG 1:GII THIU V NG C KB V PHNG PHP IU KHIN
Rotor c 2 loi chnh : rotor kiu dy qun v rotor kiu lng sc.
1.1.3) ng dng:
3
CHNG 1:GII THIU V NG C KB V PHNG PHP IU KHIN
4
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
CHNG 2:
GII THIU V BIN TN NGUN P IU KHIN V/f=const
+ Vi f: tn s hot ng ca ng c,
+ fm: tn s nh mc ca ng c.
+ Vi Lm l in cm mch t ha
Ti tn s lm vic f:
E 1
Im = . (2.3)
a.fm 2L m
5
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
E E E
= Em = m = const
a f fm
(2.4)
Nh vy t thng ng c c gi khng i khi t l E/f c gi khng i
(E/f = const).
2.2.2) Phng php V/f
2 R'
Vm . 2
3 s
M= . (2.5)
b 2
( )
'
R 1 + R 2 + X1 + X '2
2
s
V moment cc i ch nh mc:
2
3 Vm
Mmax = . (2.6)
2.b
(
R 1 R 12 + X1 + X '2 )
2
Khi thay cc gi tr nh mc bng gi tr nhn vi t s a (am, aVm, aX),
Ta c c cng thc moment ca ng c tn s f khc nh mc:
R'
Vm2 . 2
3 a.s ;(a < 1)
M= . (2.7)
b R1 R2 2
( )
'
+ + X1 + X '
2
a as 2
V moment cc i tn s f khc nh mc:
6
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
3 Vm2
Mmax = . , a < 1 (2.8)
2.b R 2
R
(
1 1 + X1 + X '2
a
)
2
a
Da theo cng thc trn ta thy, cc gi tr X1 v X2 ph thuc vo tn s,
trong khi R1 li l hng s. Nh vy, khi hot ng tn s cao, gi tr (X1+X2)>>
R1/a, st p trn R1 rt nh nn gi tr E suy gim rt t dn n t thng c gi
gn nh khng i. Moment cc i ca ng c gn nh khng i.
7
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
Khi:
Vdc
Vcontrol > Vtri th VAO = (2.9)
2
V
Vcontrol < Vtri th VAO = dc
2
Nh vy, to ra ngun in 3 pha dng iu rng xung, ta cn c ngun sin
3 pha mu v gin kch ng ca 3 pha s c biu din nh hnh v di y:
8
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
Hnh 2.3: nguyn l ca phng php iu rng SIN 3 pha v dng sng in p ng
ra
9
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
S0 S2 S4
10
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
Bng tm tt :
11
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
u (t ) =
2
( ua + ub .e j (2 / 3) + uc .e j (2 / 3) )
3 (2.13)
+VDC/2 +VDC/2
Ra
S1 S3 S5
a b c
N
Rb Rc
S0 S2 S4
-VDC/2 -VDC/2
Ra Rb Rc
Vb
12
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
13
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
Hnh 2.12: in p 3 pha ng ra trong min thi gian tng ng Hnh 2.11
uur
Vector Vs lin quan n cc trng thi kha transtior trong b bin tn ngun
p VSI ( Voltage Source Inverter). Trong phng php SVM th VSI cuung
r ngt
tn s rt ln (FPWM). FPWM quyt nh thi gian ly mu Ts cho vector Vs ( Ts=1/
FPWM)
uur
C rt nhiu cch ng ngt cc kha BJT to ra vector Vs t cc vector
uur uur uur uur uur uur uur uur
V 0 ; V1 ; V 2 ; V 3 ; V 4 ; V 5 ; V 6 ; V 7 .
14
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
uur
2.3.3) Cch tnh ton thi gian to ra vector Vs :
uur Xt
uur gc
uur 1 phn su u tin ca hnh lc gic c to bi nh ca ba
uur vector
V 0 ; V 1 ; V 2 . Gi s trong khon thi gian Ts , ta cho tc dng vector V 1 trong
uur uur
khon thi gian TA,vector V 2 trong khon thi gian TB; vector V 0 trong khon thi
gian cn li trong chu k ly mu ( Ts- TA-TB). Vector tng ng c tnh bng
vector trung bnh ca chui tc ng lin tip trn:
Chiu phng trnh (2.14) ln trc X - Y ; s dng thm phng trnh (2.16) v
t s m (2.15)
15
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
2
T1 = Ts . 3 m.sin ( / 3 )
2
T2 = Ts . m.sin ( ) (2.17)
3
T07 = Ts T1 T2
Thng thng, mt trong nhng tiu chun la chn gin ng kch linh
kin l sao cho gim thiu ti a s ln chuyn mch ca linh kin =>gim tn hao
trong qu trnh ng ngt chng. S ln chuyn mch s t nu ta thc hin trnh t
iu khin sau:
Cc kha cng sut trong tng nhnh ng ngt i nghch nhau. n gin
ha s , ta ch v trng thi ca 3 kha cng sut pha trn. Ba kha cn li c
trng thi i nghch vi 3 kha trn theo tng cp nh sau :
+ S0 S1
+ S2 S3
+ S4 S5
16
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
17
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
18
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
2.4.2) S tm tt ca qu trnh iu ch :
2
T1 = Ts . 3 m.sin ( / 3 )
2
T2 = Ts . m.sin ( )
3
T07 = Ts T1 T2 (2.18)
Trong :
Vs
+ m= l t s iu bin
2
Vdc
3
+ Ts l chu k iu rng xung
+ l gc lch gia VA v VB
19
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
2.4.3) Tnh ton gc update ca vector Vs theo phng php iu khin V/f:
TP
W
M
TPWM
Hnh 2.16: gc update ca vector Vs
TPWM
'= 360
=> T () : gc update ca vector Vs (2.20)
20
CHNG 2:GII THIU V BIN TN NGUN P IU KHIN V/f=const
TPWM 60
=> 360 = K *
T n
T n
=> K = PWM * 360 *
T 60
M T=1/f
1 n
=> K = .360. .f
f PWM 60
1 512
=> K = .360. .f
5000 60
=> K = 0.6144 f = step size (2.21)
Ta c tn s f t thay i t 0 -> 60 Hz
=> K= (0 ->36.684 )
21
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
CHNG 3:
GII THIU V PIC Microcontrollers (MCUs)
3.1>TNG QUAN:
Gm cc h nh sau:
8 bit:
+ PIC10
+ PIC12
+ PIC16
+ PIC18
16 bit:
+ PIC24F
+ PIC24H
+ dsPIC30
+ dsPIC33
22
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
23
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
Peripheral Highlights:
+ Chu dng cao : sink/source ( 25mA/25ma)
+ 3 ngun ngt ngoi
+ 2 module Capture / Compare / PWM (CCP)
- Capture 16 bit, phn gii ti a 6.25 ns ( TCY/6)
- Compare 16 bit, phn gii ti a 100 ns ( TCY)
- PWM output: phn gii t 1 -> 10 bt
+ Module USART:
- H tr RS-485, RS-232 v LIN1.2
- Auto weak-up on start bit
- Auto-Bound detect
+ RS-232 s dng khi dao ng ni ( ko cn thch anh ngoi)
24
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
25
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
26
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
27
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
a)_PORT A:
+ L port I/O . C tt c 6 chn, t RA0 n RA5.Trong RA2 v RA3 c th
dng tip nhn in p Vref+ v Vref-.
+ RA4 cn l ng vo xung clock cho Timer0. RA5 c th lm chn chn slave
cho port serial ng b.
b)_PORT B:
+ L port I/O ,c th c lp trnh bi phn mm lm chc nng ko ln
cho tt c ng vo.
+ RB0 c th lm chn ngt ngoi.
+ RB3 c th lm ng vo lp trnh in th thp.
+ Cc chn cn li c th lm ng vo ngt trn chn,lp trnh vi xung v d
liu serial.
c)_PORT C:
+ L port I/O, c 8 chn:
+ RC0 dng lm ng ra b dao ng Timer1 hoc ng vo xung timer1.
+ RC1 ,RC2 c cng 3 chc nng: lm ng ra PWM / chn Compare( so
snh) / chn capture (ly mu).RC1 cn l ng vo b dao ng Timer1.
+ RC3 l ng vo xung tun t ng b/ hoc ra (vi ch SPI v I2C).
+ RC4 lm chn nhn data (ch SPI) hay data I/O (ch I2C).
+ RC5 c th xut data SPI ( ch SPI).
+ RC6 c th lm chn pht bt ng b (USART) hoc xung ng b.
d)_PORT D:
+ L port I/O ,c th lm port slave song song khi giao tip vi 1 bus vi x l.
e)_PORT E:
_Port I/O ny thng dng iu khin chn/c/ghi cho port slave song song.
28
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
29
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
30
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
31
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
32
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
33
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
34
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
B to dead time s chn 1 khon off gia lc xung PWM ca pin ny ang cnh
xung v xung PWM ca chn i nghch ang ang cnh ln ( trong 1 cp chn
i nghch). iu ny ngn chn trng dn => cc kha cng sut c bo v
35
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
36
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
37
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
38
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
39
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
Khi bit PTMOD<1:0>=01 =>PWM time base ch single shot. S kin interrupts
xy ra khi gi tr trong thanh ghi PTPER bng gi tr ca thanh ghi PTMR. Gi tr ca
thanh ghi PTMR s c c a v zero ngay xung clock sau .
40
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
41
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
Ch double update cung cp cho ngi dng thm 2 chc nng trong ch
center-align mode:
+ Bandwidth c ln gp i v PWM duty cycle c update 2 ln
trong mi chu k (periode)
+ C th to ra c dng sng PWM center-align khng i xng, iu
ny rt hu dng trong vic hn ch ti a s mo dng ca dng
sng ng ra trong 1 s ng dng iu khin ng c
42
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
43
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
44
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
45
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
46
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
47
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
48
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
S khi b A/D :
49
CHNG 3: GII THIU V PIC Microcontrollers (MCUs)
1_Thit lp b A/D :
+ Thit lp cc chn analog / so snh p v I/O s ( ADCON1 ) .
+ Chn knh ng vo A/D (ADCONO).
+ Chn xung clock b A/D ( ADCONO).
+ Kch hot A/D ( ADCONO ).
2_Thit lp ngt A/D nu s dng
+ xo bit ADIF.
+ Set bit ADIE.
+ set bit PEIE
+ set bit GIE
3_Ch thi gian p ng cn thit.
4_Bt u chuyn i : set bit ADCONO<2>.
5_Ch chuyn i A/D hon thnh bng cch hi vng bit ADCONO<2> c b
xo cha hay ch ngt A/D
6_c kt qu t cp thanh ghi ADRESH : ADRESL , xo bit ADIF nu cn .
7_Lp li t bc 1 hay 2 nu c yu cu. Thi gian chuyn i A/D mi bit gi
l TAD .
50
CHNG 4 : THIT K PHN CNG
CHNG 4 :
THIT K PHN CNG
4.1> YU CU C BN :
Cc thng s n v ng c u / sao
Pm Cng sut nh mc (KW) 1.5
Vm in p nh mc (Vac) 380/220
Im Dng in nh mc (A) 5.9/3.4
cos H s cng sut 0.81
RPM Vn tc ( vng /pht) 1420
51
CHNG 4 : THIT K PHN CNG
VDC
-
Mch li
Cch ly
Tn hiu
xung kch
Bin tr
Nt n PIC
LEDs
RS 232
52
CHNG 4 : THIT K PHN CNG
4.3> MCH NG LC :
Yu cu:
53
CHNG 4 : THIT K PHN CNG
9 Ghi ch:
2 2 *Vpha
VDC = cos 200(V ) => ng c s khng th vn hnh ht nh
mc c hai ch
C hai la chn chnh cho vic s dng kho ng ct cng sut trong iu
khin ng c l MOSFET v IGBT. C hai loi MOSFET v IGBT u l linh kin
c iu khin bng in p, ngha l vic dn v ngng dn ca linh kin c
iu khin bng mt ngun in p ni vi cc gate ca linh kin thay v l dng
in trong cc b nghch lu s dng transitor nh trc y. V vy cch s dng
loi linh kin ny lm cho vic iu khin tr nn d dng hn.
54
CHNG 4 : THIT K PHN CNG
a) Mch li :
55
CHNG 4 : THIT K PHN CNG
56
CHNG 4 : THIT K PHN CNG
Cc mch pht ra tnh hiu iu khin mch cng sut dng bn dn phi
c cch ly v in. iu ny c th thc hin bng opto hoc bng bin p xung.
+ Bin p xung :
Gm mt cun dy s cp v c th nhiu cun th cp. Vi nhiu cun dy
pha th cp, ta c th kch ng nhiu transistor mc ni tip hoc song song.
57
CHNG 4 : THIT K PHN CNG
58
CHNG 4 : THIT K PHN CNG
Nt n iu khin ng c:
+ RUN
+ STOP
+ F/R
+ Bin tr iu chnh tc
Nt n iu khin LCD:
+ MODE
+ UP
+ DOWN
+ LEFT
+ RIGHT
+ SELECT
Tn hiu hi tip: (*)
+ Dng in ca ng c
+ in p ng c
+ Tc ng c
+ Nhit ca kha BJT
Tn hiu iu khin t PC
59
CHNG 5: LP TRNH
CHNG 5:
LP TRNH
60
CHNG 5: LP TRNH
61
CHNG 5: LP TRNH
(3) X l nt n RUN
(4) Trng thi IDLE: hin th LED bo trng thi idle, ng thi qua li phn (3)
kim tra xem nt RUN c c n hay khng
(6) Khi tn s f yu cu thay i: tnh ton cc bin s Vref, stepsize. Hai thng
s ny dng update cc gi tr v ln v bc nhy ca vector Vs khi
chng trnh ngt PWM xy ra. Vref dng tnh ton t s iu bin m =
Vref/Vdc. Stepsize xc nh gc update ca vector Vs
+ STOP button: => set cc duty cycle v zero => qua li v tr (4) : IDLE
+ F/R button: => gi hm RAM_DOWN gim tc ng c v zero => o chiu
quay vector Vs => gi hm RAM_UP tng tc ng c n tn s t
+ ..
(3) C tng cng 6 sector. Mi sector 60 c chia thnh 512 phn bng
nhau. Khi vector Vs qut ht sector hin ti ( stepsize > 512), chuyn sang Vs
sector mi => (4)
62
CHNG 5: LP TRNH
63
CHNG 6: KT QU T C
CHNG 6:
KT QU T C
+ u im:
Mch ng lc vn hnh n nh ng c 2 HP ( u ; khng ti ) tt c
cc ch iu khin thng thng( RUN, STOP, o chiu, thay i tc
..).
+ Khuyt im:
- Nhit cc kha cng sut kh cao ( 70-80 C)
- Cha c khu hi tip dng ,hi tip tc , hi tip nhit kha cng
sut
64
CHNG 6: KT QU T C
- Pht trin thm khu hi tip dng => ngn chn qu dng ng c
- Pht trin khu hi tip tc => iu khin vng kn ng c
- Pht trin khu hi tip nhit ca kha cng sut => ngn chn hin
tng qu nhit
65
CHNG 6: KT QU T C
]
Hnh 6.3: phn mm iu khin
66
CHNG 6: KT QU T C
6.2.2) M t:
Cc nt iu khin:
+ RUN / SEND: Khi ng ng c / gi tn s yu cu n vi x l
+ STOP: dng ng c
+ CHANGE: o chiu ng c
67
CHNG 6: KT QU T C
Hnh 6.7: in p dy ng ra ( ti ng c)
68
CHNG 7: TI LIU THAM KHO
CHNG 7:
TI LIU THAM KHO
[5] Prof. Ali Keyhani, Pulse-Width Modulation (PWM) Techniques lecture 25,
Department of Electrical and Computer EngineeringThe Ohio State University
69
CHNG 8: PH LC
CHNG 8:
PH LC
5V_1
5V_2
R35 R42 + C7
H1
110 110 0.1uF H2
J8 R33 220 U10 H3
1 1 8 L1
2 Vin1+ VCC L2
3 2 7 L3
4
0 Vin1- Vout1
5 3 6
6 Vin2- Vout2
7 4 5
Vin2+ GND
R34 220 HCPL2631
0
5V_1
5V_2
+ C8
R43 R44
0.1uF
R37 220 U11 110 110
1 8
Vin1+ VCC
2 7
0 Vin1- Vout1
3 6
Vin2- Vout2
4 5
Vin2+ GND
R38 220 HCPL2631
5V_1
5V_2
+ C9
0.1uF
R36 R45
R40 220 U12
1 8 110 110
Vin1+ VCC
2 7
0 Vin1- Vout1
3 6
Vin2- Vout2
4 5
Vin2+ GND
R41 220 HCPL2631
70
CHNG 8: PH LC
5V_1
U3 LM7805C
1 3
GND
IN OUT
D15 D17
+ 1
LED
2
J5
C11
1 2 3
2 C12 100uF C13 C16
470uF 10uF
104 R1
6V_AC 4 -
BRIDGE_3A 330
15V
U4 LM7815C
1 3
GND
IN OUT
D16 D18
+ 1
LED
2
J6
C10
1 2 3 C14 C15 C17
2 470uF 100uF 10uF 104
R2
4 -
12V_AC BRIDGE_3A 1k
5V_2
U5 LM7805C
1 3
GND
IN OUT
D19 D20
+ 1
LED
2
J7
C18
1 2 3
2 C19 100uF C20 C21
470uF 10uF
104 R3
4 -
71
CHNG 8: PH LC
20
15V VB3 R22
19 + C3 HO3
HO3 1uF
100 VS3
15V + C6 18
VS3
10uF
25
17 25
R32 21 17 16 R23 100 LO1
21 LO1
100
15 R24 100 LO2
11 LO2
RCIN 14 R25 100 LO3
ITRIP 9 LO3
+ C4 ITRIP
.1uF 12 13 COM
VSS COM
C5
ITRIP
+
10uF
IR2136
15V 12V
RVAR1 J3
CONTROL
1 ENABLE RVAR2
PR 1R 5W 2 FAULT ENABLE
COM 3 ITRIP
4
5
72
CHNG 8: PH LC
F1
VDC
FUSE
2
Q1 Q3 Q5
H1 1 H2 1 H3 1
3
R1 R2 R3
10K 10K 10K
J1
S1 S2 S3
J2 P1 1
P2 2
VDC 1 P3 3
COM 2
P1
MOTOR
J3CON2 P2
H1 1 P3
S1 2
H2 3
S2 4
H3 5
S3 6
L1 7
L2 8
L3 9
2
2
COM 10
Q4 Q6 Q2
L1 1 L2 1 L3 1
CON10
3
3
R4 R5 R6
10K 10K 10K
COM
VDC
D1 D3
J4
2
1 C1
C
AC_VOLTAGE
D2 D4
COM
73
CHNG 8: PH LC
CON6N
VCC 1 MCRL
VCC VCC 1 2
2 3 VCC
3 4 PGD
C_Vcc1 C_Vcc2 4 5 PGC
104 5 6
104 6
ZENNER U16_1 Programing conector
PORTB_1 PORTB_PWM
PORTA_1 MCRL 1 40 PGD 8
MCRL RB7/PGD 8 7
R_RESET_SW 6 RA0 2 39 PGC 7 PWM5 6 7
6 5 RA1 3 RA0/AN0 RB6/PGC 38 PWM4 6 7 6
5 4 RA2 RA1/AN1 RB5/PWM4 6 PWM4 5
1K 4 37 PWM5 5 PWM3 4 5
3 MCRL 4 3 RA3 5 RA2/AN2 RB4/PWM5 36 PWM3 4 5 4
3 2 RA4 RA3/AN3 RB3/PWM3 4 PWM2 3
6 35 PWM2 3 PWM1 2 3
2 1 RA5 7 RA4/AN4 RB2/PWM2 34 PWM1 2 3 2
1 RA5/AN5 RB1/PWM1 2 PWM0 1
33 PWM0 1 1
SW_RESET RUN 8 RB0/PWM0 1
FR 9 RE0/AN6 PORTB_1
RE1/AN7 PORTB_PWM
STOP 10 VCC
RE2/AN8 32
1 VCC 11 Vdd 31
12 Vdd Vss
Vss
OSC1 13 PORTD_1
OSC2 14 OSC1/RA7 30 D7 8
OSC2/RA8 RD7/PWM7 29 D6 7 8
1 MODE 15 RD6/PWM6 28 D5 6 7
1 2 ENTER 16 RC0 RD5/PWM4 27 D4 5 6
2 3 UP 17 RC1/CCP2 RD4 22 D3 4 5
3 4 DOWN 18 RC2/CCP1 RD3/SCK 21 D2 3 4
C4 22P OSC1 4 5 LEFT 23 RC3/INT0 RD2/SDI 20 D1 2 3
5 6 RIGHT 24 RC4/SDA RD1/SDO 19 D0 1 2
6 7RC6 25 RC5/SCK RD0 1
Y2 20MHZ 7 RD6/TX/CK
8RC7 26
C3 22P OSC2 8 RC7/RX/DT PORTD_1
PORTC_1 PIC18F4431 SW_DIP
D7 LED8
D6 LED7
D5 LED6
D4 LED5
D3 LED4
D2 LED3
D1 LED2
D0 LED1
SW DIP-8
74
CHNG 8: PH LC
VCC
3
U18
D7
D6
D5
D4
2
D2
D1
D0
10k
VCC
1
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
Lam+
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
Vee
E
RS
Lamp-
VCC
GND
R/W
U17
LCD
VCC
16
U10
C_C3
VCC
1 2
C_1 C+ V+ C_cocuc C_C4
6 C_cocuc
1UF 3 V-
C1- 9
4 R2OUT
C2+ 7
1UF C_C2 5 T2OUT
U7
C2- 10 5
T2IN 9
8 4
C_C5 R2IN 8
C_cocuc RS3 3
RS2 14 11 RC6 7
T1OUT T1IN RS2 2
6
RS3 13 12 RC7 1
GND
R1IN R1OUT
COM9NS
MAX232
15
BUTTON
1 1 1 1
3 UP DOWN RIGHT
3 3 LEFT 3
1 1 1
1
75
CHNG 8: PH LC
////////////////////////////////////////////////////////////////////////////////////////////////
// MODE 1: R_VAR => dieu khien = RUN , FR, STOP button va` R_VAR
// MODE 2: AUTO
// 1) nhap gia tri f1 (freq1)
// 2) nhap gia tri f2 (freq2)
// 3) nhap gia tri T ramp_up
// 4) nhap gia tri T ramp_down
// =>dieu khien = RUN , FR, STOP button va` mode 2 toc do ( thong
button //thay doi toc do= "^" key)
// MODE 3: PC control
//////////////////////////////////////////////////////////////////////////////////////////////////////
76
CHNG 8: PH LC
1573,1579,1586,1592,1598,1605,1611,1617,1623,1630,
1636,1642,1648,1655,1661,1667,1673,1680,1686,1692,
1698,1704,1710,1717,1723,1729,1735,1741,1747,1754,
1760,1766,1772,1778,1784,1790,1796,1802,1808,1814,
1820,1826,1832,1839,1845,1851,1857,1863,1868,1874,
1880,1886,1892,1898,1904,1910,1916,1922,1928,1934,
1940,1946,1951,1957,1963,1969,1975,1981,1986,1992,
1998,2004,2010,2015,2021,2027,2033,2038,2044,2050,
2056,2061,2067,2073,2078,2084,2090,2095,2101,2107,
2112,2118,2124,2129,2135,2140,2146,2151,2157,2163,
2168,2174,2179,2185,2190,2196,2201,2207,2212,2218,
2223,2228,2234,2239,2245,2250,2256,2261,2266,2272,
2277,2282,2288,2293,22982304,2309,2314,2320,2325,
2330,2335,2341,2346,2351,2356,2361,2367,2372,2377,
2382,2387,2392,2398,2403,2408,2413,2418,2423,2428,
2433,2438,2443,2448,2453,2458,2463,2468,2473,2478,
2483,2488,2493,2498,2503,2508,2513,2518,2522,2527,
2532,2537,2542,2547,2551,2556,2561,2566,2571,2575,
2580, 2585,2589,2594,2599,2604,2608,2613,2618,2622,
2627,2631,2636,2641,2645,2650,2654,2659,2664,2668,
2673,2677,2682,2686,2691,2695,2699,2704,2708,2713,
2717,2722,2726,2730,2735,2739,2743,2748,2752,2756,
2761,2765,2769,2773,2778,2782,2786,2790,2795,2799,
2803,2807,2811,2815,2820,28242828,2832,2836,2840,
2844,2848,2852,2856,2860,2864,28682872,2876,2880,
2884,2888,2892,2896,2900,2903,2907,2911,2915,2919,
2923,2927,2930,2934,2938,2942,2945,2949,2953,2957,
2960,2964,2968,2971,2975,2978,2982,2986,2989,2993,
2996,3000 };
//--------------------------------------------------------caculation varible
float f_float=0,temp_float=0;
long M,Vref,Vdc=311;
long TS=2000,TA,TB,Tz; //TS=PTPER*4
77
CHNG 8: PH LC
// Fpwm=5Khz=> PTPER=500;
// real TS is PTPER*0.2uS, when Fosc=20M )
//Tz= T0/2
unsigned int temp_int=0,sector,adc,count_timer1_interupt;
int f,f_req;
int1 first_run_flag,direction_flag;
//--------------------------------------------------------TEMP varible
int32 count=0,interrupt_number=0;
#INT_PWMTB HIGH //It will generate code to save and restore the machine state,
and will clear the interrupt flag
void PWM_INTERRUPT() //caculating base on "Vref" and "stepsize"
{
interrupt_number=interrupt_number+1;
TB=data[Vs_angle]; //data=PTPER*4*sqrt(3)*SIN ;
// at 1st RUN: n=0
TA=data[511-Vs_angle];
M=Vref*16/Vdc; // mutiply 16=> will shift right 4 bit later
TA=TA*M;
TB=TB*M;
TA=(TA>>4)&0x0FFF; //4TA
TB=(TB>>4)&0x0FFF; //4TB
Tz=(TS-TA-TB)/2; //TS=4TS
78
CHNG 8: PH LC
switch (sector)
{
case 1: set_power_pwm0_duty(TS-Tz);
set_power_pwm2_duty(Tz+TB);
set_power_pwm4_duty(Tz);
break;
case 2: set_power_pwm0_duty(TA+Tz);
set_power_pwm2_duty(TS-Tz);
set_power_pwm4_duty(Tz);
break;
case 3: set_power_pwm0_duty(Tz);
set_power_pwm2_duty(TS-Tz);
set_power_pwm4_duty(Tz+TB);
break;
case 4: set_power_pwm0_duty(Tz);
set_power_pwm2_duty(Tz+TA);
set_power_pwm4_duty(TS-Tz);
break;
case 5: set_power_pwm0_duty(Tz+TB);
set_power_pwm2_duty(Tz);
set_power_pwm4_duty(TS-Tz);
break;
case 6: set_power_pwm0_duty(TS-Tz);
set_power_pwm2_duty(Tz);
set_power_pwm4_duty(Tz+TA);
break;
}
}
#INT_TIMER1
void READ_AD_RESULT() //With an internal clock at 20mhz and with the
T1_DIV_BY_8 mode, the timer will increment every 1.6us. It will overflow every
104.8576ms.
{
if(count_timer1_interupt==10) // 1s
{
adc=read_adc();
79
CHNG 8: PH LC
count_timer1_interupt=1;
if(disable_update_freq==1)
{count_timer1_interupt=9;}
else
{count_timer1_interupt=count_timer1_interupt+1;}
}
80
CHNG 8: PH LC
{
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
}
}
void PARAs_CAL()
{
f_float=f;
temp_float=f_float*3;
Vref=temp_float; //Vref(Vphase; motor in deltal mode) at f
frequency to maintain V/f=cont=(220*sqrt(2)/sqrt(3))/60=3
switch(mode_select)
{ case 1:
lcd_gotoxy(4,0);
printf(lcd_putc,"%2.0d",f_req);
81
CHNG 8: PH LC
lcd_gotoxy(10,0);
printf(lcd_putc,"%2.0d",f);
break;
case 2:
lcd_gotoxy(10,0);
printf(lcd_putc,"%2.0d",f);
break;
case 3:
fputc(f); //send value of f for PC
lcd_gotoxy(4,0);
printf(lcd_putc,"%2.0d",f_req);
lcd_gotoxy(10,0);
printf(lcd_putc,"%2.0d",f);
break;
}//end switch
}
}
void RAM_UP_SPEED()
{ while(f<f_req)
{
f=f+1;
PARAs_CAL();
delay_ms(T_ramp_up_ms); // 0.1s/Hz
if(f>f_req)
{
f=f_req; //f=f_req when ram speed finished !
}
switch(mode_select)
{ case 1:
lcd_gotoxy(4,0);
printf(lcd_putc,"%2.0d",f_req);
lcd_gotoxy(10,0);
printf(lcd_putc,"%2.0d",f);
break;
case 2:
lcd_gotoxy(10,0);
printf(lcd_putc,"%2.0d",f);
break;
case 3:
fputc(f); //send value of f for PC
lcd_gotoxy(4,0);
printf(lcd_putc,"%2.0d",f_req);
lcd_gotoxy(10,0);
printf(lcd_putc,"%2.0d",f);
break;
}//end switch
82
CHNG 8: PH LC
}
void defaul_value_in_EEPROM() //use in MODE2: AUTO ; P18F has 256 bytes
eeprom which address from 0x00 -> 0xFF
{
write_eeprom(0X00,100); //temp_eeprom for checking at 1st reading
write_eeprom(0X10,30); //f1
write_eeprom(0X20,60); //f2
write_eeprom(0X03,6); //T_ramp_up
write_eeprom(0x04,3); //T_ramp_down
}
/////////////////////////////////////////////////////////////////////
void MAIN ()
{
PORTS_INIT(); //1
lcd_init(); // this subrotine in flex_LCD.C file
PWM_MODULE_INIT(); //2
INTERRUPTS_INIT(); //3
ADC_INIT(); //4
TIMER_INIT(); //5
MODE_SELECT:
return_2_mode_select=0; //return_2_mode_select=0 as default
;return_2_mode_select=1 when mode button is pressed
switch (mode_select)
{ case 1:
lcd_gotoxy(1,1);
printf(lcd_putc,"< M1:Read_AD >");
lcd_gotoxy(1,0);
printf(lcd_putc," ok");
while( 1)
{
if(!input(OK))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
goto MODE_R_VAR;
}
if(!input(NEXT))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
mode_select=2;
goto MODE_SELECT;
}
83
CHNG 8: PH LC
if(!input(BACK))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
mode_select=3;
goto MODE_SELECT;
}
}
break;
case 2:
lcd_gotoxy(1,1);
printf(lcd_putc,"< M2:Set freq >");
lcd_gotoxy(1,0);
printf(lcd_putc," ok");
while( 1)
{
if(!input(OK))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
goto MODE_AUTO;
}
if(!input(NEXT))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
mode_select=3;
goto MODE_SELECT;
}
if(!input(BACK))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
mode_select=1;
goto MODE_SELECT;
}
}
break;
case 3:
lcd_gotoxy(1,1);
printf(lcd_putc,"< M3:COMPUTER >");
lcd_gotoxy(1,0);
printf(lcd_putc," ok");
while( 1)
{
if(!input(OK))
{ output_bit(PIN_D3,1);
delay_ms(200);
84
CHNG 8: PH LC
output_bit(PIN_D3,0);
goto MODE_COMPUTER;
}
if(!input(NEXT))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
mode_select=1;
goto MODE_SELECT;
}
if(!input(BACK))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
mode_select=2;
goto MODE_SELECT;
}
}
break;
}
//==================================================
// MODE_R_VAR
//==================================================
MODE_R_VAR:
lcd_gotoxy(1,1);
printf(lcd_putc,"T ramp up :?? s"); //clear screen
lcd_gotoxy(1,0);
printf(lcd_putc," "); //clear screen
T_RAMP_UP_MODE1:
while(1)
{
if(!input(OK)) // OK button is pressed?
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
goto NEXT_MODE1;
}
if(!input(UP)) // UP button is pressed?
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
T_ramp_up=T_ramp_up+1;
if(T_ramp_up>20)
{T_ramp_up=5;}
}
if(!input(DOWN)) // DOWN button is
pressed?
85
CHNG 8: PH LC
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
T_ramp_up=T_ramp_up-1;
if(T_ramp_up<5) //6Hz is
minimum frequency for motor can RUN
{T_ramp_up=20;}
}
T_ramp_up_ms=T_ramp_up*5;
goto T_RAMP_DOWN_MODE1;
}
if(!input(MENU))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
goto MODE_SELECT; //return to MAIN menu (motor is
running => user press stop BUTTON => want to return to main menu)
}
}//end while T ramp up mode1:
T_RAMP_DOWN_MODE1:
lcd_gotoxy(1,0);
printf(lcd_putc,"T ramp down:?? s");
while(1)
{
86
CHNG 8: PH LC
T_ramp_down=T_ramp_down-1;
if(T_ramp_down<3) //6Hz is
minimum frequency for motor can RUN
{T_ramp_down=20;}
}
T_ramp_down_ms=T_ramp_down*5;
goto NEXT_MODE1;
}
if(!input(MENU))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
goto MODE_SELECT; //return to MAIN menu (motor is
running => user press stop BUTTON => want to return to main menu)
}
}//end while T ramp down mode1:
NEXT_MODE1:
MODE_R_VAR_return_from_stop_button:
lcd_gotoxy(1,1);
printf(lcd_putc,"M1 freq READY "); //clear screen
lcd_gotoxy(1,0);
printf(lcd_putc,"Rv ?? 2 RUN "); // ?? wil be cleard when value update
f=0,f_req=0;
Vs_angle=0; //default value for 1st Vs; direction=1
update_angle=0;
sector=1;
87
CHNG 8: PH LC
{
lcd_gotoxy(4,0);
printf(lcd_putc,"%2.0d",f_req); //int_timer1 is enable as default to read AD
result =>f_req
lcd_gotoxy(1,1);
printf(lcd_putc," "); //clear screen
lcd_gotoxy(1,0);
printf(lcd_putc," ");
lcd_gotoxy(1,1);
printf(lcd_putc,"M1 freq fo DIR"); //clear screen
lcd_gotoxy(1,0);
printf(lcd_putc,"AD ?? ?? ? "); // ?? wil be cleard when value update
88
CHNG 8: PH LC
if(!input(STOP))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
STOP_MOTOR_MODE1: //lable for MODE
button is pressed => stop motor
//disable_interrupts(INT_TIMER1); //stop reading A/D
disable_update_freq=1;
89
CHNG 8: PH LC
f_req=0;
RAM_DOWN_SPEED();
}
if(!input(MENU))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
return_2_mode_select=1;
goto STOP_MOTOR_MODE1;
}
}//end while(first_run=0)
}//while(1)
//==================================================
// END of MODE R_VAR //
//==================================================
//==================================================
// MODE AUTO //
//==================================================
MODE_AUTO:
lcd_gotoxy(1,1);
printf(lcd_putc,"T ramp up :?? s"); //clear screen
lcd_gotoxy(1,0);
printf(lcd_putc," "); //clear screen
T_RAMP_UP_MODE2:
while(1)
{
if(!input(OK)) // OK button is pressed?
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
goto NEXT_MODE2;
}
90
CHNG 8: PH LC
T_ramp_up_ms=T_ramp_up*5;
goto T_RAMP_DOWN_MODE3;
}
if(!input(MENU))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
goto MODE_SELECT; //return to MAIN menu (motor is
running => user press stop BUTTON => want to return to main menu)
}
}//end while T ramp up mode3:
T_RAMP_DOWN_MODE2:
lcd_gotoxy(1,0);
printf(lcd_putc,"T ramp down:?? s");
while(1)
{
91
CHNG 8: PH LC
output_bit(PIN_D3,0);
T_ramp_down=T_ramp_down+1;
if(T_ramp_down>20)
{T_ramp_down=5;}
}
if(!input(DOWN)) // DOWN button is
pressed?
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
T_ramp_down=T_ramp_down-1;
if(T_ramp_down<3) //6Hz is
minimum frequency for motor can RUN
{T_ramp_down=20;}
}
T_ramp_down_ms=T_ramp_down*5;
goto NEXT_MODE2 ;
}
if(!input(MENU))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
goto MODE_SELECT; //return to MAIN menu (motor is
running => user press stop BUTTON => want to return to main menu)
}
}//end while T ramp down mode2:
NEXT_MODE2:
MODE_AUTO_return_from_stop_button:
92
CHNG 8: PH LC
lcd_gotoxy(1,1);
printf(lcd_putc," "); //clear screen
lcd_gotoxy(1,0);
printf(lcd_putc," ");
lcd_gotoxy(1,1);
printf(lcd_putc,"M2 f1 ->"); //clear screen
lcd_gotoxy(1,0);
printf(lcd_putc,"Au ?? "); // ?? wil be cleard when value update
eeprom_check=read_eeprom(0x00);
if(eeprom_check!=100) //100 is default set for
eeprom_check
{ defaul_value_in_EEPROM(); //load default value
}
f1_select:
//f1=read_eeprom(0x10); //read f_req2 value in eeprom
f1=30;
while(1)
{
if(!input(OK)) // OK button is pressed?
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
goto NEXT_MODE2;
}
if(!input(UP)) // UP button is pressed?
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
f1=f1+1;
if(f1>60)
{f1=6;}
}
if(!input(DOWN)) // DOWN button is
pressed?
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
f1=f1-1;
if(f1<6) //6Hz is minimum
frequency for motor can RUN
{f1=60;}
}
93
CHNG 8: PH LC
if(!input(MENU))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
goto MODE_SELECT; //return to MAIN menu (motor is
running => user press stop BUTTON => want to return to main menu)
}
}//end while f1_select:
f2_SLECT:
lcd_gotoxy(1,1);
printf(lcd_putc," "); //clear screen
lcd_gotoxy(1,0);
printf(lcd_putc," ");
lcd_gotoxy(1,1);
printf(lcd_putc,"M2 f2 "); //clear screen
lcd_gotoxy(1,0);
printf(lcd_putc,"Au ?? ok"); // ?? wil be cleard when value update
while(1)
{
if(!input(UP)) // UP button is pressed?
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
f2=f2+1;
if(f2>60)
{f2=6;}
}
if(!input(DOWN)) // DOWN button is
pressed?
94
CHNG 8: PH LC
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
f2=f2-1;
if(f2<6) //6Hz is minimum frequency for
motor can RUN
{f2=60;}
}
NEXT_DEFAULT_VALUE_MODE3:
//----------------- DEFAULT VALUE ------------------------------------------
first_run_flag=1;
direction_flag=1;
f=0,f_req=0;
Vs_angle=0; //default value for 1st Vs; direction=1
update_angle=0;
sector=1;
95
CHNG 8: PH LC
lcd_gotoxy(1,1);
printf(lcd_putc,"M1 f1 f2 READY ");
lcd_gotoxy(1,0);
printf(lcd_putc,"Au ?? ?? 2 RUN "); // ?? wil be cleard when value update
lcd_gotoxy(4,0);
printf(lcd_putc,"%2.0d",f1);
lcd_gotoxy(7,0); //print value of f1
printf(lcd_putc,"%2.0d",f2);
lcd_gotoxy(1,1);
printf(lcd_putc," "); //clear screen
lcd_gotoxy(1,0);
printf(lcd_putc," ");
lcd_gotoxy(1,1);
printf(lcd_putc,"M2 f1 f2 fo DIR"); //clear screen
lcd_gotoxy(1,0);
printf(lcd_putc,"Au ?? ?? ?? ? "); // ?? wil be cleard when value
update
96
CHNG 8: PH LC
printf(lcd_putc,"F");
break;
case 0:
lcd_gotoxy(15,0);
printf(lcd_putc,"R");
break;
}
while (first_run_flag==0)
{
if(!input(STOP))
{ output_bit(PIN_D3,1);
97
CHNG 8: PH LC
delay_ms(200);
output_bit(PIN_D3,0);
STOP_MOTOR_MODE2: //lable for
MODE button is pressed => stop motor
disable_interrupts(INT_TIMER1); //stop reading A/D
f_req=0;
RAM_DOWN_SPEED();
if(!input(MENU))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
return_2_mode_select=1;
goto STOP_MOTOR_MODE2;
RAM_UP_SPEED(); // RAM_SPEED
to reach the new request frequency
RAM_DOWN_SPEED();
}
}//end while(first_run=0)
}//while(1)
//==================================================
98
CHNG 8: PH LC
// MODE COMPUTER //
//==================================================
MODE_COMPUTER:
lcd_gotoxy(1,1);
printf(lcd_putc,"T ramp up :?? s"); //clear screen
lcd_gotoxy(1,0);
printf(lcd_putc," "); //clear screen
T_RAMP_UP_MODE3:
while(1)
{
if(!input(OK)) // OK button is pressed?
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
goto NEXT_MODE3;
}
if(!input(UP)) // UP button is pressed?
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
T_ramp_up=T_ramp_up+1;
if(T_ramp_up>20)
{T_ramp_up=5;}
}
if(!input(DOWN)) // DOWN button is
pressed?
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
T_ramp_up=T_ramp_up-1;
if(T_ramp_up<5) //6Hz is
minimum frequency for motor can RUN
{T_ramp_up=20;}
}
99
CHNG 8: PH LC
T_ramp_up_ms=T_ramp_up*5;
goto T_RAMP_DOWN_MODE3;
}
if(!input(MENU))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
goto MODE_SELECT; //return to MAIN menu (motor is
running => user press stop BUTTON => want to return to main menu)
}
}//end while T ramp up mode3:
T_RAMP_DOWN_MODE3:
lcd_gotoxy(1,0);
printf(lcd_putc,"T ramp down:?? s");
while(1)
{
T_ramp_down_ms=T_ramp_down*5;
goto NEXT_MODE3 ;
}
100
CHNG 8: PH LC
if(!input(MENU))
{ output_bit(PIN_D3,1);
delay_ms(200);
output_bit(PIN_D3,0);
goto MODE_SELECT; //return to MAIN menu (motor is
running => user press stop BUTTON => want to return to main menu)
}
}//end while T ramp down mode3:
NEXT_MODE3:
//----------------- DEFAULT VALUE ------------------------------------------
first_run_flag=1;
direction_flag=1;
f=0,f_req=0;
Vs_angle=0; //default value for 1st Vs; direction=1
update_angle=0;
sector=1;
//--------------------------------------------------------------------------
lcd_gotoxy(1,1);
printf(lcd_putc,"M3 freq fo DIR"); //clear screen
lcd_gotoxy(1,0);
printf(lcd_putc,"PC ?? ?? ? "); // ?? wil be cleard when value update
loop_mode3:
f_req=fgetc();
if(first_run_flag==1)
{
enable_interrupts(INT_PWMTB);
first_run_flag=0;
}
if(f_req==0) //stop button is pressed
{
RAM_DOWN_SPEED();
first_run_flag=1;
disable_interrupts(INT_PWMTB);
}
101
CHNG 8: PH LC
direction_flag=direction_flag+1; //complement
direction_flag=direction_flag+1
goto loop_mode3;
}//main
Option Explicit
If (dir_flag = 0) Then
Text_direction = "FORWARD"
102
CHNG 8: PH LC
dir_flag = 1
Else
Text_direction = "REVERSE"
dir_flag = 0
End If
End Sub
Text_motor_status = "RUNNING"
End If
End Sub
Private Sub STOP_button_Click()
Text_motor_status = "STOP"
End If
End Sub
dir_flag = 1
103
CHNG 8: PH LC
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Chart SETTING
Strip1.CursorColor = RGB(255, 0, 0)
'Left = (Main.Width - Width) / 2
'Top = (Main.Height - Height) / 2
Xx = Now
For i = 0 To Strip1.Variables - 1
Strip1.VariableID = i
'.5 seconds
Strip1.VariableDeltaX = 1 / 24 / 60 / 60 / 2 '.5 seconds interval
Strip1.VariableLastX = Xx 'Set LastX to current time
Next
End Sub
With frmMain.MSComm1
Select Case .CommEvent
Case comEvReceive
'Nhan du lieu tu vi dieu khien
strtemp = .Input
strdata = Left(strtemp, 1)
datavu = Right(strtemp, 1)
104
CHNG 8: PH LC
digdata = Asc(strdata)
intdigvu = Asc(datavu)
'txtFreg = digdata
'txt_f_out = intdigvu 'xuat du lieu ra o txt upload cua
txt_f_out = digdata
txt_u_out = digdata * 3.66 ' V/f=const
End Select
End With
End Sub
Strip1.AddXY 0, Now, Y
End Sub
105