Professional Documents
Culture Documents
MC LC
Li ni u.....................................................................................................Trang 3
Chng I: S khi v m t h thng.......................................................Trang 4
Chng II: Cc linh kin s dng
1. Vi iu khin PIC 16F877A............................................................Trang 5
2. LCD SYB1602A.............................................................................Trang 9
3. ng c DC gn Encoder................................................................Trang 10
4. Motor Driver cu H L298................................................................Trang 11
Chng III: Gii thiu b iu khin PID v phng php iu ch xung
1. B iu khin PID..........................................................................Trang 12
2. Phng php iu ch rng xung...............................................Trang 14
Chng IV: S mch v lp trnh CCS
1. S mch.....................................................................................Trang 17
2. Lu gii thut.............................................................................Trang 18
3. Lp trnh CCS.................................................................................Trang 18
Ph lc:
Ti liu tham kho..............................................................................Trang 23
Trang 2
LI NI U
Ngy nay ng c DC c s dng rt nhiu trong i sng v sn xut, n l
cng c khng th thiu trong mt s ngnh cng nghip sn xut xe v my v
ng c DC c nhiu ng dng quan trng nn c nhiu mn hc l thuyt gii thiu
v ng c DC nh mn my in, truyn ng in m chng em c hc.
Qua cc mn hc chng em bit c cu to, nguyn tc hot ng v cc
phng php iu khin tc ng c DC.
Tuy nhin, c nhiu ng dng i hi chng ta phi iu khin cho tc ng
c quay chnh xc nh yu cu v cht lng p ng tt, i hi phi c mt thut
ton iu khin gip ng c p ng tt vi vn tc mong mun. C nhiu phng
php iu khin ng c nh th. V thut ton PID l mt trong nhng phng
php . Tuy nhin, PID l phng php c s dng rng ri, ph bin trong cng
nghip.
V vy, chng em quyt nh thc hin mt ti s dng thut ton ny trong
vic iu khin ng c. Thng qua vic nghin cu ti s gip chng em hiu
hn v b iu khin thng dng ny.
Trang 3
M t h thng:
H thng ca chng em c m t nh sau: H thng bao gm mt b iu
khin trung tm l vi x l PIC 16F877A, bn phm t vn tc, khi hin th vn tc
t v vn tc thc bng LCD, mch cng sut iu khin ng c dng L298 v
cui cng l i tng iu khin l ng c DC c gn Encoder.
Thng qua bn phm t vn tc ln VXL, vi x l thc hin o vn tc thc v
tnh ton dng thut ton PID iu khin mch cng sut iu khin in p cung
cp cho ng c hot ng nh mong mun.
Trang 4
Trang 6
timer0
hot
ng
ch
timer
ta
clear
bit
TOSC
(OPTION_REG<5>), khi gi tr thanh ghi TMR0 s tng theo tng chu k xung
ng h (tn s vo timer bng tn s oscillator). Khi gi tr thanh ghi TMR0 t
FFh tr v 00h, ngt timer 0 s xut hin. Thanh ghi TMR0 cho php ghi v xa gip
ta n nh thi gian mt cch linh ng.
Mun timer 0 hot ng ch counter ta set bit TOSC
(OPTION_REG<5>). Khi xung tc ng ln b m c ly t chn
RA4/TOCK1. Bit TOSE (OPTION_REG<4>) cho php la chn cnh tc
ng vo b m. Cnh tc ng s l cnh ln nu TOSE=0 v cnh tc ng s l
cnh xung nu TOSE=1.
B chia tn s (prescaler) c chia s gia timer 0 v WDT (Watchdog
Timer). iu ny c ngha l prescaler c s dng cho timer 0 th WDT s khng
c h tr prescaler v ngc li.
b. Timer 1
Timer 1 l b nh thi 16 bit, gi tr ca timer 1 s c lu trong hai thanh
ghi (TMR1H:TMR1L). C ngt ca timer 1 l bit TMR1IF (PIR1<0>). Bit iu
khin ca timer 1 s l TMR1IE(PIE<0>).
Tng t nh timer 0, timer 1 cng c hai ch hot ng: ch nh thi
(timer) vi xung kch l xung clock ca oscillator (tn s ca timer bng tn s
oscillator) v ch m (counter) vi xung kch l xung phn nh cc s kin cn
m ly t bn ngoi thng qua chn RC0/T1OSO/T1CKI
Trang 7
Trang 8
B. LCD SYB1602A:
Trang 9
- Cho php
7 DB0
- Cc bt d liu
8 DB1
- Cc bt d lliu
9 DB2
- Cc bt d liu
10 DB3 - Cc bt d liu
11 DB4 - Cc bt d liu
12 DB5 - Cc bt d liu
13 DB6 - Cc bt d liu
14 DB7 - Cc bt d liu
15 ANOT
16 KATOT
C. NG C DC GN ENCODER:
Bn trong ng c c gn mt Encoder ng trc vi n dng xc nh tc
v v tr ca ng c.
Cc thng s ca ng c nh sau:
Tc ti a l 4500 vng/pht.
Trang 10
Hnh 6: S u dy ca L298
Trang 11
u (t ) = K p e(t ) + Ki e( ) + Kd
0
d
e (t )
dt
Thi gian
Qu
Thi gian
khi ng
Kp
Gim
Tng
xc lp
Thay i
Ki
Gim
Kd
Gim t
Tng
Gim
t
nh
Tng
Gim t
Sai s n nh
n nh
Gim
Gim cp
Gim ng k
V l thuyt khng
Gim cp
Ci thin nu
tc ng
Kd nh
Trang 13
Hnh 8: S xung iu ch
Gi t1 l thi gian xung sn dng, T l chu k xung, Umax l in p
ngun cung cp cho ti.Ta c:
T s D=t1/T l h s iu chnh v c tnh bng % tc l PWM.
in p ra ti sau khi iu ch U=Umax*t1/T
Trang 14
Trang 15
Hnh 9: S xung ra
Ch :
- B chia tn postcaler khng c s dung trong iu ch PWM
- Nu thi gian duty cycle di hn thi gian chu k preiod th xung ng ra tip
tc gi mc cao sau khi gi tr PR2 bng vi gi tr TMR2.
- Chn khi CCP l: RC1/T1OSI/CCP2 v RC2/CCP1
Trang 16
Trang 17
B. LU GII THUT:
NOWDT,PUT,HS,NOPROTECT,NOLVP
#use delay(clock=2000000)
#include <lcd_lib_4bit.c>
#use fast_io(b)
#use fast_io(d)
#byte portb =0x06
Trang 18
VOID TIMER0()
{
count++;
//dem++
}
#INT_TIMER1
VOID TIMER1()
{
set_timer1(3035); //timer1 dem 62500*4*8/20 000 000=0,1s
solanlap=solanlap+1;
//
//
//
if (solanlap==10)
{
vantocthuc=((COUNT*255)+GET_TIMER0())*0.3;
SOLANLAP=0;
SET_TIMER0(0);
COUNT=0;
}
Trang 19
}
void TINHTOAN_HIENTHI(int16 x) // thuc hien tach so va dua ra hien thi
{
nghin = x / 1000 +0x30 ;
x = x % 1000;
tram = x / 100 + 0x30;
x = x % 100;
chuc = x / 10 + 0x30;
donvi = x % 10 + 0x30;
// phan don vi
lcd_putchar(nghin);
lcd_putchar(tram);
lcd_putchar(chuc);
lcd_putchar(donvi);
}
void hienthi()
{
lcd_putcmd(0x80);
lcd_putcmd(0xc0);
lcd_init();
delay_ms(10);
}
void main()
{
double uk,uk_1,ek,ek_1,ek_2,Kp,Ki,kd,T,vantocdat=0;
int16 u,duty1,duty2;
T=0.2;
uk=0;uk_1=0;ek=0;ek_1=0;ek_2=0;
kp=0.12;Ki=0.01;kd=0;
v1=0;
set_tris_b(0xFF);
Trang 20
set_tris_d(0x00);
setup_timer_0 (RTCC_DIV_1|RTCC_EXT_H_TO_L);
set_timer0(0);
//bat dau tu 0
setup_timer_1(T1_INTERNAL | T1_DIV_BY_8);
set_timer1(3035);
enable_interrupts(INT_RTCC);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
count= 0;
setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM);
setup_timer_2(T2_div_by_16,255,1);
set_pwm1_duty(duty1);
set_pwm2_duty(duty2);
while (true)
{
if (!bit_test(portb,0))
{start=0;duty1=0;duty2=0;set_pwm1_duty(duty1);set_pwm2_duty(duty2);v1=0;}
if (!bit_test(portb,1))
{start=1;nghich=0;thuan=1;v1=0;vantocdat=0;delay_ms(1000);goto next;}
if (!bit_test(portb,2))
{start=1;nghich=1;thuan=0;vantocdat=0;v1=0;delay_ms(1000);goto next;}
if (!bit_test(portb,3))
{vantocdat=1000;v1=vantocdat;goto next;}
if (!bit_test(portb,4))
{vantocdat=vantocdat+100;v1=vantocdat;delay_ms(1000);goto next;}
if (!bit_test(portb,5))
{vantocdat=vantocdat+200;v1=vantocdat;delay_ms(1000);goto next;}
if (!bit_test(portb,6))
Trang 21
{vantocdat=vantocdat-100;v1=vantocdat;delay_ms(1000);goto next;}
if (!bit_test(portb,7))
{vantocdat=vantocdat-200;v1=vantocdat;delay_ms(1000);goto next;}
next:
ek=vantocdat-vantocthuc;
uk=uk_1+Kp*(ek-ek_1)+Ki*T*ek+(Kd/T)*(ek-2*ek_1+ek_2);
if (uk>1024){
uk=1023;
}
if (uk<0){
uk=0;
}
uk_1=uk;
ek_2=ek_1;
ek_1=ek;
u=uk;
if(start==0)
{duty1=0;duty2=0;set_pwm1_duty(duty1);set_pwm2_duty(duty2);}
else{
if(start==1 && thuan==1)
{
duty1=u;
duty2=0;
set_pwm1_duty(duty1);
set_pwm2_duty(duty2);
}else
{
duty2=u;
Trang 22
duty1=0;
set_pwm1_duty(duty1);
set_pwm2_duty(duty2);
}
}
lcd_putcmd(0x80);
lcd_putchar("V Thuc:");
lcd_putcmd(0x88);
TINHTOAN_HIENTHI(vantocthuc);
delay_ms(5);
lcd_putcmd(0xc0);
lcd_putchar("V Dat:");
lcd_putcmd(0xc8);
TINHTOAN_HIENTHI(v1);
delay_ms(5);
hienthi();
}
}
1.
2.
Trang 23