Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 16

I HC BCH KHOA H NI

VIN IN T - VIN THNG


----------

Phng php iu xung PWM iu khin ng c


mt chiu DC

Nhm 21
Sinh vin: TRN XUN TRNG 20092932

MC LC
V. iu xung (PWM) iu khin ng c

1.Phng php iu xung PWM l g?........................1


2.Nguyn l ca xung PWM ..
3.Cc cch to xung PWM iu khin
4.PWM trong iu khin ng c

1.Phng php iu xung PWM l g?


-Phng php iu ch PWM c tn ting anh l Pulse Width
Modulation l phng php iu chnh in p ra ti hay ni cch
khc l phng php iu ch da trn s thay i rng ca
chui xung vung dm m s thay i in p ra.
Cc PWM khi bin i th c cng 1 tn s v khc nhau v
rng ca sn dng hay hoc l sn m

Trn l th dng xung khi iu khin bng PWM. Vi rng


xung u ra tng ng v c tnh bng %. Ty thch do chng ta
iu khin.
2.Nguyn l ca xung PWM

y l phng php c thc hin theo nguyn tc ng ngt


ngun ci ti v mt cch c chu k theo lut iu chnh thi gian
ng ct. Phn t thc hin nhin v trong mch cc van bn
dn.
Xt hot ng ng ct ca mt van bn dn. Dng van ng ct
bng Mosfet

Gin xung

Trn l mch nguyn l iu khin ti bng PWM v gin xung


ca chn iu khin v dng in p u ra khi dng PWM.
* Nguyn l : Trong khong thi gian 0 - to ta cho van G m ton b
in p ngun Ud c a ra ti. Cn trong khong thi gian to T cho van G kha, ct ngun cung cp cho ti. V vy vi to thay i
t 0 cho n T ta s cung cp ton b , mt phn hay kha hon
ton in p cung cp cho ti.
+ Cng thc tnh gi tr trung bnh ca in p ra ti :
Gi t1 l thi gian xung sn dng (kha m ) cn T l thi gian
ca c sn m v dng, Umax l in p ngun cung cp cho ti.
==> Ud = Umax.( t1/T) (V)
hay Ud = Umax.D

vi D = t1/T l h s iu chnh v c tnh bng % tc l PWM


Nh vy ta nhn trn hnh th dng iu ch xung th ta c : in
p trng bnh trn ti s l :
+ Ud = 12.20% = 2.4V ( vi D = 20%)
+ Ud = 12.40% = 4.8V (Vi D = 40%)
+ Ud = 12.90% = 10.8V (Vi D = 90%)
3.Cc cch to xung PWM iu khin
to c ra PWM th hin nay c hai cch thng dng : Bng
phn cng v bng phn mm. Trong phn cng c th to bng
phng php so snh hay l t trc tip t cc IC dao ng to

xung vung nh : 555, LM556...Trong phn mn c to bng cc


chip c th lp trnh c. To bng phn mn th chnh xc cao
hn l to bng phn cng,nn ngi ta hay s dng phn mn
to PWM.Trong phm vi yu cu ca ti nhm chng em
chn cch hai,c th l lp trnh cho PIC 16F877A.
a) To bng phng php so snh
to c bng phng php so snh th cn 2 iu kin sau y :
+ Tn hiu rng ca : Xc nh tn s ca PWM
+ Tn hiu ta l tn hiu xc nh mc cng sut iu ch (Tn hiu
DC)
Xt s mch sau :

Vi tn s xc nh c l f = 1/(ln.C1.(R1+2R2) nn ch cn iu
chnh R2 l c th thay i rng xung d dng. Ngoi 555 ra cn
rt nhiu cc IC to xung vung khc.

c) To xung vung bng phn mm


y l cch ti u trong cc cch to c xung vung. Vi to
bng phn mn cho chnh xc cao v tn s v PWM. Vi li
mch ca chng ta n gin i rt nhiu. Xung ny c to da
trn xung nhp ca CPU.
C th xt vi PIC 16F877A:
3.1.2 iu khin tc ng c DC bng phng php PWM
i vi iu khin tc ng c DC trong robot, phng php
c s dng ph bin nht l iu ch rng xung (Pulse Width
Modulation) hay c gi tt l iu xung, bm xung hoc PWM.
Nguyn l ca phng php ny l bt tt nhanh ngun in cp
vo ng c to ra mt tn hiu xung. Khi vic bt tt tn s
ln (thng s dng t 1kHz n 20kHz), ng c s chy vi 1 tc
n nh nh moment quay.
Thi gian cp ngun cho ng c l T-on, thi gian tt ngun ng
c l T-off. Vic thay i thi gian T-on v T-off lm thay i in p
hiu dng cp cho ng c. i vi ng c DC, tc ng c
tng i t l thun vi in p cp cho ng c. V vy, bng cch
thay i rng ca xung, ta thay i c tc ca ng c
DC.
i lng biu din mi quan h gia T-on v T-off c gi l duty
cycle:
duty_cycle = Ton / ( Ton + Toff )
V d: Ta cp ngun ng c trong 0.8ms, sau tt 0.2ms.
Nh vy: T-on = 0.8ms; T-off = 1ms. Tn s PWM l:

f = 1 / ( Ton + Toff ) = 1 / ( 0.8ms + 0.2ms ) = 1/1ms = 1KHz


duty_cycle = Ton / ( Ton + Toff ) = 0.8 / ( 0.8 + 0.2 ) = 0.8 = 80%

V tc ng c DC t l vi duty cycle nn tc ng c t
tng ng 80% tc ti a.

Tnh ton duty cycle iu khin tc ng c DC

3.1.3 iu xung PWM dng vi iu khin


iu xung PWM bng phn mm:
iu xung PWM mt cch n gin l a 1 chn no ca vi iu
khin ln mc 1, sau a xung mc 0. Cng vic ny c lp
i lp li lin tc s to ra xung, v tc ca ng c s tng ng
vi duty cycle.
V d: iu xung trn chn A0 :
Code
RA0=1;
Delay_ms(Ton);
RA0=0;

Delay_ms(Toff);

Tuy nhin, nu thc hin bng cch ny th vi iu khin s lun


dnh thi gian cho vic iu xung PWM. Do , cc cng vic khc
nh nhn tn hiu t cm bin, iu khin cc c cu s b nh
hng.

iu xung PWM bng phn cng


gii quyt vn vic iu xung PWM bng phn mm chim
phn ln thi gian hot ng ca vi iu khin, PIC16F877A c h
tr 2 knh iu xung bng phn cng 2 chn C1 (CCP2) v
C2(CCP1) s dng TIMER2. Ngha l, khi ta khai bo iu xung
PWM mt tn s v duty cycle no th vi iu khin s thc
hin cng vic xut xung mt cch lin tc v t ng cho n khi ta
thay i cc gi tr khai bo. Khi , ta c th lm cc cng vic
khc mt cch d dng m khng phi mt thi gian cho vic duy tr
xung PWM.

Cc hm h tr vic iu xung bng phn cng ca CCS:


Ghi ch: Ch cp n cc i s ca cc hm c phc v cho
vic iu xung PWM.
o setup_timer_2 (mode, period, postscale)
mode: T2_DIV_BY_1, T2_DIV_BY_4, T2_DIV_BY_16
period: 0-255
postscale: 1

Tn s iu xung PWM:
f = fosc / [ 4*mode*(period+1) ]
o setup_ccp1(mode) v setup_ccp2(mode)
mode:
CCP_PWM: chn ch PWM.
CCP_OFF: tt ch PWM.
o set_pwm1_duty(value) v set_pwm2_duty(value)
Nu value l gi tr kiu int 8bit:
duty_cycle = value / ( period+1 )
Nu value l gi tr long int 16bit:
duty_cycle = value&1023 /
[4*( period+1 )]
Nu khng cn iu xung qu mn th nn iu xung gi tr
value 8bit cho n gin.
V d: Ta mun iu xung PWM vi tn s 10kHz vi tn s thch
anh (fosc) s dng l 20MHz (value 8bit).
f=fosc/[4*mode*(period+1)] <=> 10000 =20000000/
[ 4*mode*(period+1) ] <=> mode(period+1) = 500
Vi mode = [1,4,16] v period = 0-255 ta c th chn:
o mode = 4; period = 124
o mode = 16; period = 32

cho vic iu xung c mn (chn c nhiu gi tr duty


cycle) ta chn mode = 4 v period = 124.
Nh vy, duty_cycle t 0% n 100% ta cho value t 0 n 125.
o value = 30 => duty_cycle = 30 / ( 124+1 ) = 0.32 = 32%
o value = 63 => duty_cycle = 63 / ( 124+1 ) = 0.504 = 50.4%
o value = 113 => duty_cycle = 113 / ( 124+1 ) = 0.904 = 90.4%

Code:
setup_timer_2(T2_DIV_BY_4,124,1);
setup_ccp1(CCP_PWM);
set_pwm1_duty(30);

S dng CCP1 v CCP2 cho ng c tri v ng c phi, ta c th


iu khin c tc ca 2 ng c ph hp trng thi lch khi
vch trng ca robot.
Cc chng trnh con tham kho:
vic lp trnh c d dng, ta nn to cc chng trnh con x
l tc . Sau y l chng trnh tham kho ca hm speed.
o Speed (tc ng c tri, tc ng c phi)
Tc : -100 n 100 (chy ngc 100% n chy thun
100%)

V d: speed(80,60) => ng c tri chy 80%, phi 60%


// Cc hm h tr
void left_motor_forward(int value)
{
MOTOR_LEFT_DIR=0;
setup_timer_2(T2_DIV_BY_4,124,1);

// Dieu xung 10kHz

setup_ccp2(CCP_PWM);
set_pwm2_duty(value);
}
void right_motor_forward(int value)
{
MOTOR_RIGHT_DIR=0;
setup_timer_2(T2_DIV_BY_4,124,1);

// Dieu xung 10kHz

setup_ccp1(CCP_PWM);
set_pwm1_duty(value);
}
void left_motor_reverse(int value)
{
MOTOR_LEFT_DIR=1;
setup_timer_2(T2_DIV_BY_4,124,1);
setup_ccp2(CCP_PWM);

// Dieu xung 10kHz

set_pwm2_duty(value);
}
void right_motor_reverse(int value)
{
MOTOR_RIGHT_DIR=1;
setup_timer_2(T2_DIV_BY_4,124,1);

// Dieu xung 10kHz

setup_ccp1(CCP_PWM);
set_pwm1_duty(value);
}
void left_motor_stop()
{
setup_ccp1(CCP_OFF);
}
void right_motor_stop()
{
setup_ccp1(CCP_OFF);
}
// Chng trnh x l tc 2 ng c
// 0:Stop,100:FORWARD 100%,-100:Reverse 100%
void speed (signed int left_motor_speed, signed int
right_motor_speed)

{
int left_pwm_value=0,right_pwm_value=0;
/* Left motor */
if( left_motor_speed >= 0 )
{
left_pwm_value = 1.25*left_motor_speed; //
(125*left_motor_speed/100)
left_motor_forward(left_pwm_value);
}
else
{
left_motor_speed = -left_motor_speed;
left_pwm_value = 1.25*left_motor_speed; //
(125*left_motor_speed/100)
left_motor_reverse(left_pwm_value);
}
/* Right motor */
if( right_motor_speed >= 0 )
{
right_pwm_value = 1.25*right_motor_speed; //
(125*left_motor_speed/100)
right_motor_forward(right_pwm_value);

}
else
{
right_motor_speed = -right_motor_speed;
right_pwm_value = 1.25*right_motor_speed; //
(125*left_motor_speed/100)
right_motor_reverse(right_pwm_value);
}
}
4.PWM trong iu khin ng c
Trong ng c : iu m chng ta d nhn thy rng l PWM rt
hay c s dng trong ng c iu khin ng c nh l
nhanh , chm, thun ,nghch v n nh tc cho n. Ci ny c
ng dng nhiu trong iu khin ng c 1 chiu. v s nguyn
l ca mch iu khin ng c DC l :

y l mch n gin iu khin ng c. Nu mun iu khin


ng c quay thun quay ngc th phi dng n cu H.

You might also like