1
Điều khiển tốc độ động cơ một chiều loại nhỏ
1. Sơ đồ khối
Sơ đồ khối cho điều khiển tốc độ của động cơ một chiều loại nhỏ sử dụng vi
điều khiển P89C664: (hình 1)
Yêu cầu là sử dụng vi điều khiển để điều khiển tốc độ động cơ DC theo chiều
thuận và ngược và hiện thực ở hai tốc độ (nhanh và chậm). Công tắc (nút nhấn)
được dung tạo ra hai tốc độ và tác động quay ngược.
Sơ đồ khối được minh họa ở hình 1, sử dụng vi điều khiển P89C664.
Phương pháp điều khiển tốc độ là bằng điều rộng xung (PWM) dung P89C664.
Đặt chân 7 P1.5=’0’ (logic 0) và áp dụng PWM vào chân P1.4 (chân 6) làm cho
động cơ quay thuận. Việc điều khiển quay thuận hay nghịch đạt được bằng
thiết kế cầu của mạch điều khiển động cơ. Nếu nút nhấn không được nhấn thì
động cơ vẫn ổn định. Giả sử nút nhấn 1 được thiết lập PWM ở tỉ số 6:4 và nút 2
được thiết lập PWm với tỉ số 9:1.
PWM =
Ton
Ton
=
T
Ton + Toff
P89C664
Động cơ chạy
Mạch lái
động cơ
Động cơ
Ngược chiều
Tốc độ 1
Tốc độ 2
Ngược chiều
Nút nhấn 1
Nút nhấn 2
Nút nhấn 3
Hình 1
Tỉ số 6:4 có chu kì tổng T=6+4=10 và 6 chu kì ở mức cao (1), 4 ở mức thấp
(0). Tỉ số 9:1 có T=10, và 9 ở mức 1, và 1 ở mức 0.
Thanh ghi capture CCAP1L (low) và CCAP1H(high) là 8 bit và có 256 (28)
mức tăng.
mức tăng/chu kì=256/10=25,6
vì vậy tỉ số 6:4 =154 mức tăng ở logic 1, 102 mức ở logic 0. Tỉ số 9:1=230 mức
ở logic 1 và 26 mức ở logic 0.
Hướng dẫn thí nghiệmđiều khiển tự động (bổ sung)-©Huỳnh Minh Ngọc
2
Hình 2: Mạch tạo mức logic 0/1
Vi điều khiển P89C664 có 64 KB Bộ nhớ chương trình Flash, 1 KB bộ nhớ
Ram trên chip, 3 timer-To, T1, T2, dãy bộ đếm lập trình được (PCA), bộ thu
phát bất đồng bộ đa năng (UART), giao tiếp I2C. P89C664 có 44 chân dạng
PLCC. VCC (chân 44), Vss(chân 22), T0/CEX3 (P3.4), T1/CEX4(P3.5), T2
(P1.0), P.14(CEX1), P1.5(CEX2), P3.0 (RxD), P3.1 (TxD), P3.2 (/INT0), P3.3
(/INT1).
2. Điều khiển động cơ:
Sơ đồ cầu được minh họa ở hình 3. Mạch tận dụng cặp transistor bổ phụ
NPN/PNP T2/T3 và T4/T5. Động cơ dung không quá 0,5 A trong khi diode tạo
điện áp dẫn gây bởi dòng chuuyển mạch nhanh.
Hướng dẫn thí nghiệmđiều khiển tự động (bổ sung)-©Huỳnh Minh Ngọc
3
Hình 3: Mạch điều khiển cầu sử dụng ngõ vào từ chân P1.4 và P1.5 để điều
khiển tốc độ động cơ một chiều và hướng quay.
Động cơ ngừng (off) khi P1.4 và P1.5 ở logic 0, cực C của T1 và T6 ở mức cao.
Vì vậy T2 và T4 sẽ dẫn (on) trong khi T3 và T5 tắt (off)(không dẫn) và không
có dòng dẫn qua động cơ giữa 5V và đất (GND, mass).
Động cơ quay(on): khi P1.5=’0’, cực C của T6 sẽ cao, T4 dẫn và T5 tắt. Nếu
tín hiệu PWM áp dụng vào P1.4 thì khi PWM ở logic 1, T1 dẫn, cực C của T1
ở mức thấp; vì vậy T2 tắt và T3 dẫn. Do đó dòng điện dẫn qua đất thong qua
transistor T3, động cơ Dc và qua transistor T4 lên nguồn +5V.
Động cơ quay ngược(reverse): Nếu P1.4=’0’ (logic 0) thì T2 dẫn và T3 tắt. Nếu
tín hiệu PWM áp dụng vào P1.5 thì khi PWM là logic cao (1), transistor T4 tắt
và T5 dẫn, tạo ra dòng điện dẫn ngược thong qua T5, động cơ và T2.
5.6.3. Hoạch định chương trình:
Chương trình điều khiển động cơ theo một hướng từ chân P1.4 dùng phương
pháp điều rộng xung, được cấu trúc từ dãy đếm lập trình được (PCA). Quay
ngược đạt được bằng cách áp đặt PWM ở chân P1.5.
Hai tốc độ là : nhanh (9:1) và chậm (6:4). Nghịch đảo và tốc độ được chọn từ
nút nhấn on/off tích cực mức thấp (logic 0).
Chương trình kiểm tra nút nhấn bằng hành động ngắt /INT0 mức thấp ở chân
P3.2. Chương trình sau khai báo vectơ ngắt có địa chỉ ở 0003H và chỉ tới chuỗi
đuợc chọn ngắt CHECK.
Org 03h; địa chỉ ngắt ngoài 0
Sjmp check; nhảy tới chương trình phục vụ ngắt
Khởi động (START)
CFH=1100 1111 b và điều này làm cho chân 4 và 5 của port 1 là bằng zero và
vì vậy hành động đầu tiên của chương trình là tắt động cơ.
SETB IT0 bật ngắt xảy ra trên chuyển từ mức cao sang thấp (cạnh xuống) của
hành động nút nhấn trên chân 2 của port 3 (/INT0).
MOV IEN0,#81H đặt số nhị phân 1000 0001 vào thanh ghi cho phép ngắt IE
IEN0 để cho phép hành động của /INT0.
Kiểm tra (CHECK)
Các nút nhấn của port 1 chân số 0 (quay ngược), chân 1(6:4 tốc độ 1), chân
2(9:1 tốc độ 2) là bình thường ở logic 1. Khi nút nhấn được nhấn, chúng chuyển
thành logic 0 và lệnh JNB (jump if not bit) trở nên tích cực và gửi chương trình
tới chương trình phục vụ tương ứng.
Tốc độ (SPEED)
Với tốc độ 1 và tốc độ 2, hành động PWM là thong qua chân 4 trên port 1 khi
cho quay ngược, tốc độ 1R và tốc độ 2R, hành động PWM là thong qua chân 5
của port 1. Như vậy hành động của hai dòng chương trình đầu tiên của bốn
chương trình con này là không cho phép hành động PWM trên chân đối diện.
Chương trình: Sinh viên làm như một bài tập.
Hướng dẫn thí nghiệmđiều khiển tự động (bổ sung)-©Huỳnh Minh Ngọc
4
Bài tập: Viết chương trình hợp ngữ điều khiển động cơ DC ở trên dung Keil
µVision 2 hay TopView.
Mô phỏng: dung Proteus.
Chương trình:
$include (REG66x.inc)
; địa chỉ SFR
org 0
; địa chỉ reset
sjmp START
;nhảy tới START
org 03h
; địa chỉ ngắt ngoài 0
sjmp CHECK
;nhảy tới chương trình con ngắt
org 40h
; địa chỉ bắt đầu chương trình
START: mov p1,#0CFh
; động cơ lái về zero (0).
setb IT0
;ngắt trên cạnh âm
mov IEN0,#81H
; ngắt ngoài 0 INT0 được cho phép
STAY: SJMP STAY
;chờ ở đây cho tới khi ngắt xảy ra.
CHECK: JNB P1.0, REVERSE; nếu được chọn nhảy tới reverse
JNB P1.1, SPEED1 ; nhảy tới tốc độ 1 6:4
JNB P1.2, SPEED2 ; nhảy tới tốc độ 2 9:1
SJMP CHECK
;kiểm tra nút nhấn trở lại
SPEED1: ANL CCAPM2,#0FDH; xoá PWM lái trên chân P1.5
CLR P1.5
; đặt P1.5 về logic 0
ORL CCAPM1,#42H; bật (set) ECOM1 và PWM1(P1.4)
MOV CCAP1L,#102; nạp giá trị đếm 6;4
MOV CCAP1H,#102; đếm 6:4 được nạp lại
ORL CCON,#40H ; bật CR để bật timer PCA lên
RETI
;trở về từ ngắt
SPEED2: ANL CCAPM2,#0FDH; xóa PWM lái trên P1.5
CLR P1.5
; đặt P1.5 về logic 0
ORL CCAPM1,#42H ; bật ECOM1 và PWM1(P1.4)
MOV CCAP1L,#26; nạp số đếm 9:1
MOV CCAP1H,#26; số đếm 9:1 được nạp lại
ORL CCON,#40H ; bật CR để bật timer PCA lên
RETI
;trở về từ ngắt
REVERSE: JNB P1.1,SPEED1R; nhảy tới quay ngược speed1
JNB P1.2, SPEED2R; nhảy tới quay ngược speed2
SJMP CHECK
;kiểm tra nút nhấn ngõ vào
SPEED1R: ANL CCAPM1,#0FDH; xoá PWM lái trên P1.4
CLR P1.4
; đặt P1.4 về logic 0
ORL CCAPM2,#42H ; bật ECOM2 và PWM2 (P1.5)
MOV CCAP2L,#102; nạp giá trị đếm 6;4
MOV CCAP2H,#102; đếm 6: 4 được nạp lại
ORL CCON,#40H ;bật CR để bật timer PCA lên
RETI
;trở về từ ngắt
SPEED2R: ANL CCAPM1,#0FDH; xóa PWM lái trên P1.4
Hướng dẫn thí nghiệmđiều khiển tự động (bổ sung)-©Huỳnh Minh Ngọc
5
CLR P1.4
; đặt P1.4 về logic 0
ORL CCAPM2,#42H; bật ECOM2 và PWM2
MOV CCAP2L,#26
; nạp số đếm 9:1
MOV CCAP2H,#26
, đếm 9:1 được nạp lại
ORL CCON,#40H
;bật CR để bật timer PCA lên
RETI
;trở về từ ngắt
END
Chương trình dung phần mềm Raisonance. Bạn có thể dung Keil µVision hay
TopView.
Tham khảo: David Calcutt, Fred Cowan, Hassan Parchizadeh, 8051
Microcontrollers: an Application based introduction, Newnes (Elsevier), 2004.
Hướng dẫn thí nghiệmđiều khiển tự động (bổ sung)-©Huỳnh Minh Ngọc
6
Bài 6: Hiện thực hệ thống điều khiển tốc độ và vị trí động cơ một chiều
I.Mục tiêu:
Khảo sát làm mô hình động cơ dung vi điều khi ểnPIC
16F877A/887 giao tiếp máy tính.
Nhận dạng hàm truyền động cơ DC dùng đáp ứng n ấc hệ hở của ZieglerNichols.
Điều khiển và thu thập dữ lệu tốc độ và vị trí động cơ theo
phương pháp on/off.
-Sử dụng chương trình VB6.0, và chương trình CCS cho PIC.
Cảm biến tốc độ l à encoder.
II. Cơ sở lý thuyết:
1. Sơ đồ khối điều khiển
Khối máy
tính
Khối Vi
điều
khiển
PIC
Khối
công suất
(cầu H)
Khối
động cơ
DC
Khối
Encoder
Hình – Sơ đồ khối điều khiển
Khối máy tính
Dùng ngôn ngữ lập trình Visual Basic 6.0 làm phương tiện giao tiếp. Nhiệm
vụ của VB6 là:
– Tạo giao diện người dùng để giao tiếp với người sử dụng. Trên đó cho
phép thay đổi giá trị tốc độ yêu cầu, thay đổi bộ thông số PID, chọn chiều quay
của động cơ, vẽ đồ thị biểu diễn đáp ứng của hệ thống.
– Thiết lập giao tiếp với khối Vi điều khiển qua cổng nối tiếp RS – 232.
– Lấy giá trị đo tốc độ thực tế do khối vi điều khiển truyền về để xử lý.
– Từ giá trị đo tốc độ thực tế, thực hiện thuật toán PID xuất giá trị độ rộng
xung về khối Vi xử lý để điều khiển.
– Xuất giá trị điều khiển chiều quay của động cơ được thiết lập trên giao
diện người dùng.
Hướng dẫn thí nghiệmđiều khiển tự động (bổ sung)-©Huỳnh Minh Ngọc
7
Khối vi điều khiển
Dùng ngôn ngữ lập trình C (CCS C) cho PIC 16F877A/887 để lập trình cho
Vi điều khiển PIC. Nhiệm vụ của khối Vi điều khiển là:
– Thiết lập giao tiếp với máy tính qua cổng giao tiếp nối tiếp.
– Thực hiện thuật toán PID số , sử dụng tính năng điều rộng xung(PWM).
– Thực hiện việc lấy tốc độ thực tế của động cơ từ khối encoder và truyền
giá trị này về cho khối máy tính để xử lý.
Khối công suất
Nhiệm vụ của khối này là:
– Khuếch đại công suất từ tín hiệu điều khiển do khối vi điều khiển truyền
tới để điều khiển động cơ DC.
– Cho phép đảo chiều quay của động cơ thông qua cầu H.
Khối động cơ DC
Khi nhận được xung điều khiển từ khối công suất, động cơ sẽ quay với tốc
độ phụ thuộc vào độ rộng của xung truyền tới. Động cơ DC servo có tích hợp
sẵn encoder (200 xung).
Khối encoder
Đo tốc độ của động cơ bằng cách xuất xung liên tục về cho khối Vi điều
khiển. Động cơ quay nhanh hay chậm tùy thuộc vào số xung xuất ra trong một
khoảng thời gian. Việc định thời gian lấy mẫu được thực hiện từ khối vi điều
khiển.
2.Hàm truyền động cơ:
Hàm truyền động cơ DC:
Động cơ DC là thiết bị truyền động công suất mà phân phối năng lượng
ra tải.
Động cơ một chiều được mô tả ở hình sau:
Hướng dẫn thí nghiệmđiều khiển tự động (bổ sung)-©Huỳnh Minh Ngọc
8
Hình 5.9: Sơ đồ nối dây của động cơ DC
Trong đó: Load : tải; Armature: phần ứng, Field: trường; Inertia: mô men
quán tính; Friction: ma sát.
Từ thong của động cơ tỉ lệ với dòng điện từ, giả sử từ trường không bão
hòa:
φ = K f if
(1)
Mô men của động cơ được giả sử là tuyến tính với φ và dòng điện phần
ứng ia (armature current)
(2)
Tm = K1φ .ia (t ) = K 1 K f i f (t )ia (t )
hay Tm (t ) = K m .ia (t )
trong ñoù K1 laø haèng soá tæ leä.
Söùc phaûn ñieän ñoäng: Vb = K 1φ .ω
dθ (t )
Hay Vb (t ) = K b
= K bω (t )
dt
Rõ rang từ phương trình (2) để có phần tử tuyến tính, một dòng điện phải
là hằng số. Trường hợp ia=Ia dòng điện phần ứng không đổi ta có động cơ được
điều khiển bằng dòng từ (field current controlled motor). Xét trường hợp động
cơ DC được điều khiển bằng phần ứng (armature controlled DC motor), động
cơ sử dụng dòng ia như là biến điều khiển. Phần cảm (stator) dung cuộn dây từ
và dòng hay từ trường không đổi. Khi dòng điện từ không đổi được thiết lập
trong cuộn dây từ, mô men động cơ là
Tm ( s ) = TL ( s) + Td ( s )
(3)
Mô men động cơ bằng mô men phân phối cho tải. Quan hệ này được
minh họa (3). Trong đó, TL(s) là mô men tải và Td(s) là mô men của nhiễu (theå
hieän moâmen ma saùt taûi nhö laø ma saùt Coulomb).
Hướng dẫn thí nghiệmđiều khiển tự động (bổ sung)-©Huỳnh Minh Ngọc
9
Tm ( s ) = ( K 1 K f I f ) I a ( s ) = K m I a ( s )
(4)
vôùi K m = K1φ : haèng soá moâmen.
Khi từ trường không đổi được dung, ta có
Tm ( s ) = K m I a ( s )
Mô men tải cho quán tính quay được viết như sau:
d 2θ (t )
dθ (t )
+b
= Tm (t ) − Td (t )
2
dt
dt
TL ( s) = Js 2θ ( s) + bsθ ( s) = Tm ( s ) − Td ( s )
TL (t ) = J
(8)
trong đó Km là hàm của từ tính của vật liệu từ.
Dòng điện phần ứng có quan hệ với điện áp vào đặt vào phần ứng
(armature) Va(s) ( goïi laø U):
di a (t )
+ Vb (t )
dt
Va ( s ) = Ra I a ( s ) + La sI a ( s ) + Vb ( s )
Va (t ) = Ra ia (t ) + La
(5)
trong đó Ra là điện trở phần ứng
La là điện cảm phần ứng.
Va là điện áp vào đặt vào phần ứng.
Vb(s) (goïi laø E) là điện áp điện động ngược (sức phản điện động phaàn
öùng) và tỉ lệ với tốc độ động cơ.
Vb ( s) = K bϖ ( s)
(6)
và dòng điện phần ứng
I a (s) =
Va ( s ) − K bϖ ( s)
( R a + La s )
(7)
Quan hệ cho động cơ DC được điều khiển bằng phần ứng được minh họa
ở hình sau:
Sử dụng phương trình (4), (7) và (8) hay sơ đồ khối và cho Td(s)=0, ta
giải và đạt được hàm truyền sau:
G ( s) =
=
θ (s)
Va ( s )
=
Km
s[( Ra + La s )( Js + b) + K b K m ]
Km
(9)
.
s ( s 2 + 2ξϖ n s + ϖ n2 )
Km
θ (s)
hay G ( s) =
=
3
Va ( s ) La Js + ( Ra J + bLa ) s 2 + ( K b K m + Ra b) s
Phöông trình traïng thaùi: khi coù nhieãu Td(t)
dia (t ) − Ra
dt La
dϖ K
= m
dt J
dθ 0
dt
Kb
La
b
−
J
1
−
0
1
0
i
(
t
)
a La
1
0 ϖ (t ) + 0 Va (t ) + − Td (t ) (10)
0J
0 θ (t ) 0
Hướng dẫn thí nghiệmđiều khiển tự động (bổ sung)-©Huỳnh Minh Ngọc
10
trong ñoù Td(t) ñöôïc xem laø ngoõ vaøo thöù hai trong phöông trình traïng
thaùi.
Khi khoâng coù nhieãu Td(t), Phöông trình traïng thaùi:
dia (t ) − Ra
dt La
dϖ K
= m
dt J
dθ 0
dt
0
1
i
(
t
)
a La
0 ϖ (t ) + 0 Va (t )
(11)
0
0 θ (t )
Tuy nhiên, đối với nhiều động cơ DC, haèng soá thôøi gian ñieän töø cuûa ñoäng cô
(hằng số thời gian của phần ứng) τ a = La / Ra bị bỏ qua nên ta có
G ( s) =
θ (s)
Va ( s )
=
Kb
La
b
−
J
1
−
Km
[ K /( Ra b + K b K m )]
(12)
= m
s[ Ra ( Js + b) + K b K m ]
s (τ 1 s + 1)
trong đó hằng số thời gian tương đương τ 1 = Ra J /( Ra b + K b K m ). , coøn goïi laø
haèng soá thôøi gian ñieän cô cuûa ñoäng cô.Chú ý là Km bằng Kb (Km=Kb=Ce). Sự
bằng nhau này được minh họa bằng cách xem xét hoạt động động cơ ở trạng
thái xác lập và cân bằng công suất khi điện trở rotor bị bỏ qua.
Armature
Va(s)+
Tm(s)
Km
Ra + sLa
-
Td(s)
- TL(s)
+
1
J .s + b
ω
θ
1
.s Vị trí
Vb(s)
Kb
Hình 5.10 : Sơ đồ khối động cơ một chiều được điều khiển bằng phần ứng.
Khi xeùt haøm truyeàn cuûa toác ñoä, ta coù :
G ( s) =
=
ϖ ( s)
Va ( s )
=
Km
[( Ra + La s)( Js + b) + K b K m ]
Km
( s 2 + 2ξϖ n s + ϖ n2 )
(13)
.
vaø khi boû qua τ a = La / Ra thì haøm truyeàn toác ñoä laø:
Hướng dẫn thí nghiệmđiều khiển tự động (bổ sung)-©Huỳnh Minh Ngọc
11
G(s) =
ϖ ( s)
=
Va ( s )
[ K m /( Ra b + K b K m )]
τ 1s + 1
(14)
ñaây laø khaâu quaùn tính baäc nhaát.
Khi bỏ qua phản ứng phần ứng, bỏ qua ma sát (b=0) và giả sử các phần
tử trong hệ thống là tuyến tính, có các phương trình sau:
di
dt
dϖ
− Mc = J
dt
= Cei
U = E + Ri + L
M dc
M dc
(15), (16), (17) vaø (18)
E = C eϖ
trong đ ó:
U : điện áp hai đầu phần ứng.
I : dòng điện qua động cơ.
R,L: điện trở, t ự cảm mạch điện phần ứng.
E, Mdc: s ức điện động, moment quay của động cơ.
J: moment quán tính của các phần quay và Mc là moment cản.
Ce=Km : haèng soá moâmen
Từ phương trình trên , có thể suy ra hàm truyền động cơ như hình sau , cho
Mc=0 :
U
1R
1 + sL / R
-
Mc
Mdc -
I
Ce
1
J .s
ω
E
Ce
Hình5.11 : Sơ đồ khối động cơ một chiều khi từ thông không đổi.
Haøm truyeàn toác ñoä :
G ( s) =
ϖ ( s)
Va ( s )
=
Ce
La Js + ( Ra J ) s + Ce 2
2
(19)
Haøm truyeàn vò trí :
G ( s) =
θ (s)
Va ( s )
=
Ce
La Js + ( Ra J ) s 2 + Ce 2 .s
3
(20)
3.Đáp ứng nấc hệ hở theo Ziegler-Nichol:
Hướng dẫn thí nghiệmđiều khiển tự động (bổ sung)-©Huỳnh Minh Ngọc
12
Xem lý thuyết ở bài 5 Hiện thực hệ thống điều khiển nhiệt độ.
4.Điều khiển on/off:
Xem lý thuyết ở bài 5 Hiện thực hệ thống điều khiển nhiệt độ.
III. Thí nghiệm
1. Thí nghiệm khảo sát hệ hở :
Mục đích : Xác định thông số hàm truyền động cơ từ đồ thị quá trình quá độ
hệ hở với đầu vào hàm nấc.
Một cách gần đúng, có thể giả thuyết động cơ một chiều có hàm truyền là khâu
bậc nhất có hàm truyền như sau :
Udk
K
Ts + 1
wdco
Trong đó K : hệ số biểu diễn quan hệ vào ra : K=wdco/Udk.
2.Điều khiển tốc độ theo phương pháp on/off vòng kín:
R +
e
Bộ điều khiển
on/off
u
Động cơ DC
-
Trong đó:
R: tốc độ đặt.
C: tốc độ đo được.
E:sai lệch= r-c
Hướng dẫn thí nghiệmđiều khiển tự động (bổ sung)-©Huỳnh Minh Ngọc
c
13
U: tín hiệu điều khiển.
1. Điều khiển vị trí theo phương pháp on/off vòng kín:
Trong đó:
R: vị trí góc đặt.
C: vị trí góc đo được.
E:sai lệch= r-c
U: tín hiệu điều khiển.
IV. Báo cáo kết quả:
Sinh viên nộp báo cáo và giảng viên nhận xét, đánh giá.
Hướng dẫn thí nghiệmđiều khiển tự động (bổ sung)-©Huỳnh Minh Ngọc
- Xem thêm -