You are on page 1of 23

IU KHIN NG C DC DNG PID

NHN XT CA GING VIN HNG DN


................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................

Tp. H Ch Minh, Ngy.thng..nm 2011


Trang 1

IU KHIN NG C DC DNG PID

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

IU KHIN NG C DC DNG PID

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

IU KHIN NG C DC DNG PID

CHNG I: S KHI V M T H THNG


S khi:

Hnh 1: S khi h thng

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

IU KHIN NG C DC DNG PID

CHNG II: CC LINH KIN S DNG


A. VI IU KHIN PIC 16F877A:
1. Gii thiu tng quan vi iu khin PIC16F877A:

Hnh 2 : S b tr chn ca PIC16F877A


y l VK thuc h PIC16Fxxx vi tp lnh gm 35 lnh c di 14 bit.
Mi lnh u c thc thi trong mt chu xung clock. Tc hot ng ti a cho
php l 20MHz vi chu k lnh l 200ns. B nh chng trnh 8Kx14 bit, b nh d
liu 368 x 8 byte RAM v b nh d liu EEPROM vi dung lng 256 x 8 byte. S
PORT I/O l 5 vi 33 pin I/O.
Cc c tnh ngoi vi bao gm cc khi chc nng sau:
Timer 0 : L b m 8 bit c kt ni vi b chia tn s 8 bit. Timer 0 cho php
la chn xung clock tc ng v cnh tch cc ca xung clock.
Timer 1: L b nh thi 16 bit c kt ni vi b chia tn s, c th thc hin
chc nng m da vo xung clock ngoi vi ngay khi vi iu khin hot ng ch
sleep.
Timer 2: L b nh thi 8 bit c h tr bi 2 b chia tn s prescaler v
postscaler .
Trang 5

IU KHIN NG C DC DNG PID

Hay b capture/ so snh/ iu ch rng xung.


Cc chun giao tip ni tip SSP ( Synchronous Serial Port ), SPI v I2C.
Chun giao tip ni tip USART vi 9 bit a ch.
Cng giao tip song song PSP ( Parallel Slave Port ) vi cc chn iu khin RD,
WR, CS bn ngoi.
8 knh chuyn i ADC (Analog to Digital Converter ) 10 bit : L b chuyn i
tn hiu gia 2 dng tng t v s.

Hnh 3: S khi vi iu khin PIC

Trang 6

IU KHIN NG C DC DNG PID

2. Khi qut v timer0, timer1, timer2 trong Pic 16F877A


a. Timer 0
y l mt trong ba b m hoc b nh thi ca vi iu khin PIC
16F877A. Timer 0 l b m 8 bit c kt ni vi b chia tn s (prescaler) 8 bit.
Cu trc ca timer 0 cho php ta la chn xung clock tc ng v cnh tch cc ca
xung clock. Ngt timer 0 s xut hin khi timer 0 b trn. Bit TMR0IE
(INTCON<5>) l bit iu khin ca timer0. TMR0IE=1 cho php ngt timer0 tc
ng, TMR0IE=0 khng cho php ngt timer tc ng.
Mun

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

IU KHIN NG C DC DNG PID

(cnh tc ng l cnh ln. Vic la chn xung tc ng (tng ng vi vic la


chn ch hot ng l timer hay counter) c iu khin bi bit TMR1CS
(T1CON<1>).
Ngoi ra timer 1 cn c chc nng reset input bn trong c iu khin mt
trong hai khi CCP (Capture/Compare/PWM).
Timer 1 c hai ch m l ng b (Synchronous) v bt ng b
(Asynchronous).
Cng thc tnh thi gian nh thi cho Timer 1:
T= (65536-VALUE)*(4/Fosc)*P
T: thi gian nh thi
VALUE: gi tr trong hm set_timer1(value)
Fosc: tn s thch anh
P: t l chia tn s (setup_timer_1(T1_INTERNAL|T1_DIV_BY_P))
c. Timer 2
Timer 2 l b nh thi 8 bit v c h tr bi hai b chia tn s prescaler v
postscaler. Thanh ghi cha gi tr m ca timer 2 l TMR2. Bit cho php ngt timer
2 tc ng l TMR2ON (T2CION<2>). C ngt ca timer 2 l bit TMR2IF
(PIR1<1>). Xung ng vo (tn s bng tn s oscillator) c a qua b chia tn
s prescaler 4 bit ( vi cc t s chia tn s l 1:1, 1:4, 1:6 v c iu khin bi cc
bit T2CKPS1 : T2CKPS0 (T2CON<1:0>)).
Timer 2 cn c h tr bi thanh ghi PR2. Gi tr m trong thanh ghi
TMR2 t 00h n gi tr cha trong thanh ghi PR2, sau c reset v 00h. Khi
reset thanh ghi PR2 c nhn gi tr mc nh FFh.
Ng ra ca timer 2 c qua b chia tn s postscaler vi cc mc chia t 1:1
n 1:16. Ng ra ca postscaler ng vai tr quyt nh trong vic iu khin c ngt
Ngoi ra ng ra ca timer 2 cn c kt ni vi khi SSP, do timer 2 cn
ng vai tr to ra xung clock ng b cho khi giao tip SSP
3. INTERRRUPT:
PIC16F877A c 15 ngun to ra hot ng ngt c iu khin bi thanh ghi
INTCON (bit GIE). Bn cnh , mi ngt cn c mt bit iu khin v c ngt

Trang 8

IU KHIN NG C DC DNG PID

ring. Cc c ngt vn c set bnh thng khi tha mn iu kin ngt xy ra bt


chp trng thi ca GIE. Tuy nhin, hot ng ngt vn ph thuc bit GIE v cc bit
iu khin khc. Bit iu khin ngt RB0/INT v TMR0 nm trong thanh ghi
INTCON, thanh ghi nay cn cha cc bit cho php cc ngt ngoi vi PEIE. Bit iu
khin cc ngt nm trong thanh ghi PIE1 v PIE2. C ngt ca cc ngt nm trong
cc thanh ghi PIR1 v PIR2.
Trong mt thi im ch c mt ngt c thc thi, chng trnh ngt c kt
thc bng lnh RETFIE. Khi chng trnh ngt c thc thi, bit GIE t ng c
xa, a ch lnh tip theo ca chng trnh chnh c ct trong b nh Stack v b
nh chng trnh s ch n a ch 0004h. Lnh RETFIE c dng thot khi
chng trnh ngt v quay tr v chng trnh chnh, ng thi bit GIE c set
cho php cc ngt hot ng tr li. Cc c hiu c dng kim tra ngt no
ang xy ra v phi c xa bng chng trnh trc khi cho php cc ngt tip tc
hot ng tr li ta c th pht hin c thi im tip theo m ngt xy ra.
i vi cc ngt ngoi vi nh ngt t cc chn INT hay ngt t s thay i
trng thi cc chn ca PORTB (PORTB Interrupt on change), vic xc nh ngt
no xy ra cn 3 n 4 chu k lnh ty thuc vo thi im xy ra ngt.

B. LCD SYB1602A:

Hinh 4 : M ta kich thc chi tit LCD SYB1602A

Trang 9

IU KHIN NG C DC DNG PID

LCD thng thng co 16 chn:


1 VSS - t
2 VCC - Dng (5v)
3 VEE - Cp ngun iu khin tng phan
4 RS

- RS = 0 chon thanh ghi lnh. RS = 1 chon thanh d liu

5 R/W I - R/W = 1 oc d liu. R/W = 0 ghi


6E

- 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:

in p DC cung cp cho ng c: 24Vdc.

Tc ti a l 4500 vng/pht.

S xung ca Encoder l 200 xung/vng.


ng c c tt c 6 dy:

Hai dy cung cp ngun 24Vdc cho ng c hot ng.

Hai dy ngun 5Vdc cung cp cho Encoder hot ng.

Hai dy tn hiu xung Encoder c a ra ngoi.

Trang 10

IU KHIN NG C DC DNG PID

Nguyn l hot ng c bn ca Encoder.


Nguyn l c bn ca encoder l mt a trn xoay quay quanh trc. Trn
a c cc rnh kim loi, ta dng mt n led pht chiu nh sng ln mt a. Khi
a quay, ch khng c rnh kim loi led chiu nh sng ln a nhng nh sng ny
khng phn x li c, ch c rnh kim loi led s chiu nh sng ln a v nh
sng ny c phn x li v k bn led pht l led thu s nhn tn hiu.

D. MOTOR DRIVER CU H L298:


L298 l IC cu H iu khin tc v chiu quay ca ng c ( ng c DC).
L298 c th iu khin cng lc 2 ng c DC ( ton cu ), hoc 4 ng c DC ( bn
cu ). L293D c thit k c th chu dng qu ln n 1.2A, dng n nh
800mA, v p vo trong khong 4,5 n 36V DC.

Hnh 5: Hnh dng v s chn ca L298

Hnh 6: S u dy ca L298
Trang 11

IU KHIN NG C DC DNG PID

Chng III: GII THIU V B IU KHIN PID V


PHNG PHP IU CH XUNG
A. B IU KHIN PID:
B iu khin vi tich phn t l ( PID) l mt c ch phn hi vng iu khin
tng qut c s dng rng ri trong cc h thng iu khin cng nghip. B iu
khin PID tnh ton gi tr sai s l hiu s gia gi tr o thng s bin i v gi
tr t mong mun. B iu khin s thc hin gim ti a sai s bng cch hiu
chnh gi tr iu khin u vo.

Hnh 7: S vng kn ca b iu khin PID


Gii thut tnh ton ca b iu khin PID gm 3 khu ring bit: t l, tich
phn v o hm, vit tt l P, I, D. Trong , gi tr ca khu t l xc nh tc ng
ca sai s hin ti, gi tr khu tch phn xc nh tc ng ca tng cc sai s qu
kh, v gi tr khu vi phn xc nh tc ng ca tc bin i sai s. Tng chp
ca ba tc ng ny dng iu chnh qu trnh thng qua mt phn t iu khin
nh v tr ca van iu khin hay b ngun ca phn t gia nhit. Nh vy, nhng
gi tr ny c th lm sng t v quan h thi gian: P ph thuc vo sai s hin ti, I
ph thuc vo tch ly cc sai s qu kh, v D d on cc sai s tng lai, da vo
tc thay i hin ti.
Bng cch iu chnh 3 hng s trong gii thut ca b iu khin PID, b
iu khin c th dng trong nhng thit k c yu cu c bit. p ng ca b
iu khin c th c m t di dng nhy sai s ca b iu khin, gi tr m
Trang 12

IU KHIN NG C DC DNG PID

b iu khin vt l im t v gi tr dao ng ca h thng. Cng dng ca gii


thut PID trong iu khin khng m bo tnh ti u hoc n nh cho h thng.
Khu t l, tch phn, vi phn c cng li vi nhau tnh ton u ra ca
b iu khin PID. nh ngha rng u(t) l u ra ca b iu khin, biu thc cui
t

cng ca gii thut PID l:

u (t ) = K p e(t ) + Ki e( ) + Kd
0

d
e (t )
dt

Trong cc thng s iu chnh l:


Khu t l, Kp
gi tr cng ln th p ng cng nhanh do sai s cng ln, b khu t l
cng ln. Mt gi g li t l qu ln s dn n qu trnh mt n nh v
dao ng.
Khu tch phn, Ki
gi tr cng ln ko theo sai s n nh b kh cng nhanh. i li l vt l
cng ln: bt k sai s m no c tch phn trong sut p ng qu phi
c trit tiu tch phn bng sai s dng trc khi tin ti trng thi n
nh.
Khu vi phn, Kd
gi tr cng ln cng gim vt l, nhng li lm chm p ng qu v c th
dn n mt n nh do khuch i nhiu tn hiu trong php vi phn sai s.

Cc phng php iu chnh:


- iu chnh th cng: tng mt thng s c lp
Thng

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

IU KHIN NG C DC DNG PID

- Phng php Ziegler Nichols:


Phng php ZieglerNichols
Dng iu khin
Kp
Ki
Kd
P
T2/T1
0
0.9T2/
PI
T1/0.3
0
T1
1.2T2/
PID
2T1
0.5T2
T1

B. PHNG PHP IU CH RNG XUNG ( PWM ):


Phng php iu ch xung c tn ting anh l Pulse Width Modulation
( PWM ), l phng php iu ch in p ra ti, ni cch khc l phng php iu
ch da trn s thay i rng xung vung dn n s thay i in p u ra.
Mch iu khin ng c bng phng php PWM hot ng da theo nguyn tc
cp ngun cho ng c bng chui xung ng m lin tc. Ngun DC c chuyn
thnh xung vung. Tn hiu xung vung ny c cp cho ng c. Nu tn s
chuyn mch ln ng c s chy vi mt tc u n ph thuc vo trc
quay ng c.
Cc PWM khi bin i c cng tn s nhng khc nhau v rng ca sn
dng hoc l sn m.

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

IU KHIN NG C DC DNG PID

Chc nng iu ch xung trong PIC16F877A:


Tn hiu sau khi iu ch s c a ra cc chn ca khi CCP (n nh cc
chn nay l output). s dng chc nng iu ch ny ta tin hnh cc bc ci t
sau:
1.Thit lp thi gian ca mt chu k xung iu ch (period) bng cch a gi
tr thch hp vo thanh ghi PR2.
2.Thit lp rng xung cn iu ch (duty cycle) bng cch a gi tr vo
thanh ghi CCPR1L v cc bit CCP1CON <5:4>.
3.iu khin cc chn ca CCP l output bng cch lear cc bit tng ng
trong thanh ghi TRISC.
4.Thit lp gi tr b chia tn prescaler ca TIMER2 v cho php TIMER2
hot ng bng cch a gi tr thch hp vo thanh ghi T2CON.
5.Cho php CCP hot ng ch PWM.
Trong gi tr mt chu k (period) ca xung iu ch c tnh bng cng
thc:
PWM period = [(PR2)+1]*4*TOSC*(gi tr b chia tn caTMR2)
B chia tn s ca TIMER2 ch c th nhn cc gi tr 1:4 hoc 1:16. Khi
thanh ghi PR2 bng vi gi tri trong thanh ghi TMR2 th qu trnh sau xy ra:
- Thanh ghi TMR2 t ng c xa.
- Chn khi CCP c set.
- Gi tr thanh ghi CCPR1L (cha gi tr n nh rng xung iu ch duty
cycle c a vo thanh ghi CCPRxH.
rng xung iu ch (duty cycle) c tnh theo cng thc:
PWM duty cycle = (CCPRxL:CCPxCON<5:4>)*TOSC*( gi tr
b chia tn s TMR2)
Nh vy 2 bit CCPxCON<5:4> s cha 2 bit LSB. Thanh ghi CPRxL cha
bit cao ca gi tr quyt nh rng xung. Thanh ghi CCPRxH ng vai tr l
buffer cho khi PWM. Khi gi tr trong thanh ghi CCPRxH bng vi gi tr trong
thanh ghi TMR2 v 2 bit CCPxCON<5:4> bng vi gi tr 2 bit trong b chia tn

Trang 15

IU KHIN NG C DC DNG PID

prescaler , chn ca khi CCP li c a v mc thp, nh vy ta c hnh nh ng


ra ca khi PWM.

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

IU KHIN NG C DC DNG PID

Chng IV: S MCH V LP TRNH CCS


A. S MCH NGUYN L:

Hnh 10: S nguyn l mch

Trang 17

IU KHIN NG C DC DNG PID

B. LU GII THUT:

Hnh 11: Lu gii thut chng trnh

C. CHNG TRNH CCS:


#include <16F877A.h>
#fuses

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

IU KHIN NG C DC DNG PID

INT16 count=0; //dem=0x00;


INT8 solanlap,start=0,thuan=0,nghich=0;
int16 nghin,tram,chuc,donvi;
int16 duty1=0,duty2=0,u;
int16 soxung1s=0x00,vantocthuc=0x00,v1=0;
#INT_RTCC

// ngat khi timer0 tran

VOID TIMER0()

// tao bo dem timer0 dem so xung vo RA4

{
count++;

//dem++

}
#INT_TIMER1
VOID TIMER1()

// dinh thoi 1s bang timer1 va tinh toan toc do.... \


//thach anh 20M=> cki=0.05us=>0.2s=10000*0.05*div(4)

{
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

IU KHIN NG C DC DNG PID

}
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;

// tch so hng tram

x = x % 100;

// chia lay phan du

chuc = x / 10 + 0x30;

// tch lay phan chuc

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);

//khoi tao port B la port nhap

Trang 20

IU KHIN NG C DC DNG PID

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);

// Cho phep ngat timer 0

enable_interrupts(INT_TIMER1);

// Cho phep ngat timer 1

enable_interrupts(GLOBAL);

// Cho phep tat ca chuong trinh ngat

count= 0;
setup_ccp1(CCP_PWM);

//goi pwm o chan ccp1/ chan 17

setup_ccp2(CCP_PWM);

//goi pwm o chan ccp2/ chan 16

setup_timer_2(T2_div_by_16,255,1);

//tinh chu ky pwm T= (1/fosc)* 4 * DIV *(


255+1)

set_pwm1_duty(duty1);

// max duty pwm = 256*4 = 1024 ( 0.1023)

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

IU KHIN NG C DC DNG PID

{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

IU KHIN NG C DC DNG PID

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();
}
}

Ti liu tham kho:


Vi x ly_Pham L Phat Toan,ThS L Hai Sm_NXB Lao ng Xa Hi

1.
2.

K thut Vi X Ly & Lp trinh Assembly Cho H Vi X Ly_Nxb Khoa hoc


Ky Thut

3. Tai liu thi nghim Ky Thut Vi X Ly- H Tn c Thng


4. Tai liu Vi X Ly,
5. Gio trinh Ky thut Vi x ly_Hoc vin Cng ngh Bu chinh Vin
thng_NXB Thng Tin va Truyn Thng
6.

L thuyt iu khin t ng_Nguyn Th Phng H.

Trang 23

You might also like