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
Trang 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
off on
on on
T T
T T
T
PWM
+
=
=
P89C664
Động cơ
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
Động cơ chạy Ngược chiều
Tốc độ 1
Tốc độ 2
Ngược chiều
Mạch lái động cơ
Nút nhấn 1
Nút nhấn 2
Nút nhấn 3
Trang 2Hì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
Trang 3Hì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
Trang 4Bà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
Trang 5CLR 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
Trang 6Bà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 Ziegler-Nichols.
Đ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
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
Khối máy tính
Khối Vi điều khiển PIC
Khối động cơ
DC
Khối Encoder
Khối công suất (cầu H)
Trang 7Khố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:
Trang 8Hì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:
f
f i
K
=
φ (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)
) ( ) ( )
(
K
T m = φ a = f f a (2)
hay T m(t) =K m.i a(t)
trong đó K 1 là hằng số tỉ lệ
Sức phản điện động: V b =K1φ ω
Hay ( ) ( ) K (t)
dt
t d K t
V b = b θ = bω
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à
) ( ) ( )
(s T s T s
T m = L + d (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 (thể hiện mômen ma sát tải như là ma sát Coulomb)
Trang 9) ( )
( ) (
)
(s K1K I I s K I s
T m = f f a = m a (4)
với K m =K1φ : hằng số mômen
Khi từ trường khơng đổi được dung, ta cĩ
) ( )
(s K I s
T m = m a
Mơ men tải cho quán tính quay được viết như sau:
) ( ) ( ) ( )
( )
2
t T t T dt
t d b dt
t d J t
T L = θ + θ = m − d
) ( ) ( ) ( ) ( )
(s Js2 s bs s T s T s
T L = θ + θ = m − d (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) ( gọi là U):
) ( ) ( )
( )
dt
t di L t i R t
a a
a
) ( ) ( )
( )
(s R I s L sI s V s
V a = a a + a a + b (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) (gọi là E) là điện áp điện động ngược (sức phản điện động phần ứng) và tỉ lệ với tốc độ động cơ
) ( )
(s K s
V b = bϖ (6)
và dịng điện phần ứng
) (
) ( )
( )
(
s L R
s K s V s
I
a a
b a
a
+
−
(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:
) 2
(
] )
)(
[(
) (
) ( )
(
2 2
n n m
m b a
a
m a
s s
s
K
K K b Js s L R s
K s
V
s s
G
ϖ ξϖ
θ
+ +
=
+ + +
=
=
(9)
hay
s b R K K s bL J R Js L
K s
V
s s
G
a m b a
a a
m
) ( )
+ +
+ +
=
= θ
Phương trình trạng thái: khi có nhiễu Td(t)
) ( 0
1
0 ) ( 0 0 1
) (
) (
) (
0 1 0
0
0 )
(
t T J t
V L t t
t i J
b J
K
L
K L
R
dt
d
dt
d
dt
t
di
d a
a a
m
a b a
a a
− +
+
−
−
−
=
θ
ϖ θ
ϖ
(10)
Trang 10trong đó Td(t) được xem là ngõ vào thứ hai trong phương trình trạng thái
Khi không có nhiễu Td(t), Phương trình trạng thái:
) ( 0 0 1
) (
) (
) (
0 1 0
0
0 )
(
t V L t t
t i J
b J
K
L
K L
R
dt
d
dt
d
dt
t
di
a a a
m
a b a
a a
+
−
−
−
=
θ
ϖ θ
ϖ
(11)
Tuy nhiên, đối với nhiều động cơ DC, hằng số thời gian điện từ của động cơ
(hằng số thời gian của phần ứng) τa =L a/R a bị bỏ qua nên ta cĩ
) 1 (
)]
/(
[ ] )
( [ ) (
) ( )
(
+
= +
+
=
=
s s
K K b R K K
K b Js R s
K s
V
s s
m b a
m
θ
(12)
trong đĩ hằng số thời gian tương đương τ1= R a J/(R a b+K b K m)., còn gọi là hằng số thời gian điện cơ của độ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 Td(s)
Va(s)+ Tm(s) - TL(s) ω θ
- + Vị trí
Vb(s)
Hình 5.10 : Sơ đồ khối động cơ một chiều được điều khiển bằng phần ứng
Khi xét hàm truyền của tốc độ, ta có :
) 2
(
] )
)(
[(
) (
) ( )
(
2 2
n n m
m b a
a
m a
s s
K
K K b Js s L R
K s
V
s s
G
ϖ ξϖ
ϖ
+ +
=
+ + +
=
=
(13)
và khi bỏ qua τa = L a/R a thì hàm truyền tốc độ là:
a a
m
sL R
K
1
K b
s
1
Trang 11)]
/(
[ ) (
) ( )
(
+
=
=
s
K K b R K s V
s s
ϖ
(14) đây là khâu quán tính bậc nhấ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:
ϖ
ϖ
e
e
dc
c
dc
C
E
i
C
M
dt
d J
M
M
dt
di L
Ri
E
U
=
=
=
−
+
+
=
(15), (16), (17) và (18)
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 : hằng số mô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 :
Mc
U I Mdc - ω
-
E
Hình5.11 : Sơ đồ khối động cơ một chiều khi từ thơng khơng đổi
Hàm truyền tốc độ :
2 2
) ( )
(
)
(
)
(
Ce s J R Js L
Ce s
V
s
s
G
a a
= ϖ
(19) Hàm truyền vị trí :
s Ce s J R Js L
Ce s
V
s
s
G
a a
)
(
)
+ +
=
= θ
(20)
3.Đáp ứng nấc hệ hở theo Ziegler-Nichol:
R sL
R
/ 1
1
1
Ce