
Điều khiển vận tốc động cơ DC dùng bộ điều khiển PID.
3
CơsởLýthuyết
1. ThuậtđiềukhiểnPIDvàviệcrờirạchóanó:
Trongmiềnthờigian,bộđiềukhiểnPIDđượcmôtảbằngmôhìnhvào
ra:
=+ +
∫
0
()
() () ()
t
Pi d
de t
Ut Ket K etdt K dt
trongđóe(t)làtínhiệungõvào,u(t)làtínhiệungõracủabộđiều
khiển.
Tuynhiên,đốivớiViĐiềukhiểnnóichung,việctínhtoáncácthành
phầnP,I,D‐nóicáchkháclàtínhcáctíchphânhayđạohàmtrongcông
thứctrênlàkhôngthựchiệnđược.Lýdo:CPUkhôngthểtínhtoán
chínhxáctớimứcΔt=0,nghĩalàkhôngliêntục.
Dođó,tachỉcóthểtínhtoángầnđúngbằngcáchtachoΔt=εrất
nhỏnhưnglớnhơn0.
ĐểtìmhệthứcPIDrờirạc,taxétđồthịsauđây:
Chúthích:‐đườngchấmgạchbiểudiễnvậntốccầnthiếtv_set.
‐đườnggạchgạchbiểudiễnvậntốcthựctếcủađộngcơ.
Δt
0
e1
1
e2
e0
t (s)
V
2

Điều khiển vận tốc động cơ DC dùng bộ điều khiển PID.
4
‐đườnggạchđậmlàđồthịrờirạchóacủavậntốcđộng
cơ.
‐Δt làthờigianlấymẫu.
Thànhphầntíchphân:
e(t)dt=limΔt‐‐>0(Σe(t)Δt).DođókhilấygầnđúngΔt=ε>0,tacó:
e(t)dt≅Σe(i)Δt,i=0,1,2,3…
Thànhphầnviphân:
de(t)/dt=limΔt‐‐>0{[e(t2)‐e(t1)]/Δt}.DođókhilấygầnđúngΔt=ε>0,
tacó:
de(t)/dt=[e(i+1)‐e(i)]/Δt,i=0,1,2,3…
Tómlại,tacó:
u(i)=Kp*e+Kd*[e(i+1)‐e(i)]/Δt+Ki*Σe(i)Δt
Đặt e_delta(i+1)=e(i+1)‐e(i)
e_sum(i+1)=Σe(i)=e_sum(i)+e(i+1)
Trongcôngthứctrên,thờigiansamplingtimeΔtlàrấtnhỏ,tabỏ
quaΔt.Saunày,khitìmcáchệsốKd,Kibằngthựcnghiệm,KdvàKi
lúcđóđãbaogồmcảΔt.
Khiđó,côngthứctrênđượcviếtlạinhưsau:
u(i)=Kp*e+Ki*e_sum+Kd*delta_e
điềukiệnbiên:u(0)=duty>0.
2. Đốitượngđiềukhiển:
ĐốitượngđiềukhiểnlàvậntốcđộngcơDC(đc).Tabiếtvậntốc
độngcơDCphụthuộcdòngđiệnhayđiệnápmàtacấpchonó(dĩ
nhiênphảinằmtrongkhoảngchophépcủađc).Cụthểởđâysử
dụngđc24VDC,dođóđiệnápcấpkhôngđượcquá24V.Tuynhiên,
việccấpápchođctrongmộtkhoảngrộngtừ0đến24Vlàkhókhăn.

Điều khiển vận tốc động cơ DC dùng bộ điều khiển PID.
5
DođótađiềukhiểnvậntốctheoxungPWM(PulseWidth
Modulation),cụthểlàdutycycle.
VậycácngõvàovàracủabộđiềukhiểnPIDnhưsau:
Ngõvào:e=vậntốchiệntại(v_cur)‐vậntốcthiếtlập(v_set)
Ngõra:u=%dutycycle
Phụthuộcgiữa%dutyvàvậntốcđcgầnnhưtuyếntínhnên
đểđơngiản,tagiảsửnóhoàntoàntuyếntính.Vậy,tacóthểđiều
khiểnvậntốcđcthôngqua%duty.
3.Sơđồmạch:Giớithiệucácthànhphầntrongmạchvàchứcnăng:
• ViđiềukhiểnchínhcủamạchđiềukhiểnlàPIC16F88của
Microchip.PIC16F88có7kênhADC10bit,1PWMđểđiều
khiểnđc.
Dođó,tasửdụng4kênhADCdùngđểnhậpdữliệu(hệsốPID
chỉnhbằngtayvàvậntốcmongmuốn).ChânADCnốivớimộtcầuphân
ápbằngbiếntrở.Giátrịbiếntrởlàmthayđổiđiệnápdạnganalogtrên
chânADC,vàPIClấyđiệnápđóchuyểnthànhgiátrịdigital.Việctính
toáncụthểxinxemphần5củabáocáonày.
PWM(PulseWidthModulation)làmộtmodulemởrộngcủaPIC
16F88.Nócóchứcnăngtạoramộtdãyxungcó%dutyvàtầnsốxácđịnh.
Cácgiátrị%dutyvàtầnsốcủaxunghoàntoàncóthểhiệuchỉnhbằng
phầnmềm.
ChânT0CLKIcủaPIC16F88làchânvàocủaxungclockbộđịnhthời
0.Chânnàyđượcnốivớidâytínhiệucủaencoder.Timer0lúcnàycóchức
năngcounterđếmsốxungpháttừencoder.Timer1sẽđịnhthờitrong1
khoảngthờigian.KhiTimer1tràn,talấygiátrịcủaTimer0.Dựavàogiátrị
duty Chu kỳ T
Tần số f = 1/T

Điều khiển vận tốc động cơ DC dùng bộ điều khiển PID.
6
này,cóthểtínhđượcvậntốcđcởthờiđiểmnày.Phầntínhtoánxemmục
5.
• DriverđiềukhiểnđclàchipL293củaTexasInstruments.Chip
nàycócácđặcđiểmsau:
Dòngtốiđa1A,quádòng1.2A.
Điệnáptốiđalà33V.
Cóthểláicùnglúc2đcDC.Tuynhiên,tachỉsửdụng1cầuHđể
điềukhiển1đc.TachọncầuH1cócácchânngõvàolàchânenable1/2EN,
chânchọnchiềuquay1A,2A.Cácchânralà1Y,2Y.Chân1/2ENđượcnối
vớichâncấpxungPWMcủaPIC16F88.
• Chip74LS06làcổngNOT.Mụcđíchđểkhuyếchđạixung
clockcủaencodertrướckhiđưavàoT0CLKI.
• Mạchsửdụng2nguồn:5Vchocácchiphoạtđộngvà24Vcho
độngcơ.
Docáchđấudâydướiđây,tacóchânRB2củaPIC16F88=0/1thì
đcquaythuận/nghịchchiềukimđồnghồ.
SauđâylàsơđồmạchđượcvẽbằngOrCAD9.2.ThứtựchânIC,
cáchnốidâycụthể,côngdụngcủacácchânđặcbiệtxinxemtrênsơđồ
mạchnày.

Điều khiển vận tốc động cơ DC dùng bộ điều khiển PID.
7
VCC
Tu 30 pico x 2
J3
Dong co
1
2
Bien tro
VCC
Quay phai
/Quay
trai
S1
SW DIP-2
1
24
3
U15
7406
14 7
1
3
5
9
11
13
2
4
6
8
10
12
U16
PIC16F88
5
14
15
4
16
17
18
1
2
3
6
7
8
9
10
11
12
13
Vss
VDD
OSC2/CLKOUT
MCLR/RA5/Vpp
OSC1/CLKIN
RA0/AN0
RA1/AN1
RA2/AN2
RA3/AN3
RA4/AN4/TOCKI
RB0/INT/CCP1
RB1/SDI/SDA
RB2
RB3/CCP1/PGM
RB4/SCK/SCL
RB5
RB6/AN5/T1CLKI
RB7/AN6
C4
R5
100
D3
VCC
Dieu
chinh
toc do
mong
muon
VCC
J1
Encoder
1
2
3
VCC_CIRCLE
J2
Nguon
1
2
3
Y1
PWM
R3
100
SW1
Reset VCC
version2 by
Wonbinbk@gmail.com
DC Motor controller sche.
B
11Wednesday , April 27, 2005
Title
Size Document Number Rev
Date: Sheet of
U2
L293
2
7
10
15
1
9
3
6
11
14
4
5
13
12
16
8
1A
2A
3A
4A
1/2EN
3/4EN
1Y
2Y
3Y
4Y
GND
GND
GND
GND
VCC1
VCC2
VCC_CIRCLE
1/4=Open/Close--->PID tu dong./bang
tay.
2/3=Open/Close--->quay trai/quay phai.
1=mass
2=fase A
3=5V
D2
C2
VCC
Encoder
feedback
R4
100
He so Kd
PHAN HANG DUY THAI 20202382
R6 100
R2
1K
VCC
D1
He so Ki
VCC
VCC_CIRCLE
1= 5V
2=24V
3= mass
4MHz
He so Kp
VCC
VCC
C1
R1
R
D4