Thông thường động cơ điện một chiều chỉ chạy ở một tốc độ duy nhất khi nối với nguồn điện, tuy nhiên vẫn có thể điều khiển tốc độ và chiều quay của động cơ với sự hỗ trợ của các mạch điệ
Trang 1Thực tập nhận thức Trần Hoàng Quân 09T4 – Nhóm 10
Trang 1
I Giới thiệu về động cơ một chiều
Động cơ điện một chiều là động cơ điện hoạt động với dòng điện một chiều Động
cơ điện một chiều ứng dụng rộng rãi trong các ứng dụng dân dụng cũng như công
nghiệp Thông thường động cơ điện một chiều chỉ chạy ở một tốc độ duy nhất khi
nối với nguồn điện, tuy nhiên vẫn có thể điều khiển tốc độ và chiều quay của động
cơ với sự hỗ trợ của các mạch điện tử cùng phương pháp PWM
Động cơ điện một chiều trong dân dụng thường là các dạng động cơ hoạt động với
điện áp thấp, dùng với những tải nhỏ Trong công nghiệp, động cơ điện một chiều
được sử dụng ở những nơi yêu cầu moment mở máy lớn hoặc yêu cầu thay đổi tốc
độ trong phạm vi rộng
Một phần quan trọng của động cơ điện một chiều là bộ phận chỉnh lưu, nó có
nhiệm vụ là đổi chiều dòng điện trong cuộn rotor trong khi chuyển động quay của
rotor là liên tục Thông thường bộ phận này là bộ phận gồm có một bộ cổ góp và
một bộ chổi than tiếp xúc với cổ góp Đây cũng chính là nhược điểm chính của
động cơ điện một chiều: cổ góp làm cho cấu tạo phức tạp, đắt tiền, kém tin cậy và
nguy hiểm trong môi trường dễ nổ, khi sử dụng phải có nguồn điện một chiều kèm
theo hoặc bộ chỉnh lưu
Phần chính gồm Stato(phần đứng yên) với các cực từ (bằng nam châm vĩnh cửu
hoặc nam châm điện), Roto với các cuộn dây quấn, cổ góp cùng chổi điện
Động cơ DC sử dụng trong dân dụng thường chỉ hoạt động ở điện áp 24V trở lại
Một trong những phương pháp để điều khiển mô tơ là sử dụng mạch điều chế độ
rộng xung (PWM circuit – Pulse Wide Modulation)
II Giới thiệu về PWM
Trang 21 Phương pháp điều chế xung PWM là gì?
Phương pháp điều chế PWM có tên tiếng anh là Pulse Width Modulation là
phương pháp điều chỉnh điện áp ra tải hay nói cách khác là phương pháp
điều chế dựa trên sự thay đổi độ rộng của chuỗi xung vuông dẫn đến sự
thay đổi điện áp ra
Các PWM khi biến đổi thì có cùng 1 tần số và khác nhau về độ rộng của
sườn dương hay hoặc là sườn âm
Trên là đồ thị dạng xung khi điều khiển bằng PWM Với độ rộngxung đầu
ra tương ứng và được tính bằng % Tùy thích do chúng ta điều khiển
2 Nguyên lý xung PWM
Đây là phương pháp được thực hiện theo nguyên tắc đóng ngắtnguồn cới tải
và một cách có chu kì theo luật điều chỉnh thời gianđóng cắt Phần tử thực
hiện nhiện vụ đó trong mạch các van bándẫn.Xét hoạt động đóng cắt của
một van bán dẫn Dùng van đóng cắt bằng Mosfet
Trang 3Thực tập nhận thức Trần Hoàng Quân 09T4 – Nhóm 10
Trang 3
Trên là mạch nguyên lý điều khiển tải bằng PWM và giản đồ xungcủa chân
điều khiển và dạng điện áp đầu ra khi dùng PWM
Nguyên lý : Trong khoảng thời gian 0 - to ta cho van G mỏ toàn bộ điện áp
nguồn Ud được đưa ra tải Còn trong khoảng thời gian to -T cho van G
khóa, cắt nguồn cung cấp cho tải Vì vậy với to thay đổi từ 0 cho đến T ta
sẽ cung cấp toàn bộ , một phần hay khóa hoàn toàn điện áp cung cấp cho
tải
+ Công thức tính giá trị trung bình của điện áp ra tải :Gọi t1 là thời gian
xung ở sườn dương (khóa mở ) còn T là thời gian của cả sườn âm và
Trang 4dương, Umax là điện áp nguồn cung cấp cho tải.==> Ud = Umax.( t1/T) (V)hay Ud = Umax.D
Với D = t1/T là hệ số điều chỉnh và được tính bằng % tức là PWM Như vậy ta nhìn trên hình đồ thị dạng điều chế xung thì ta có : Điện áp trùng bình trên tải sẽ
là : + Ud = 12.20% = 2.4V ( với D = 20%) + Ud = 12.40% = 4.8V (Vói D = 40%) + Ud = 12.90% = 10.8V (Với D = 90%)
Để tạo được ra PWM thì hiện nay có hai cách thông dụng : Bằng phần cứng
và bằng phần mềm Trong phần cứng có thể tạo bằng phương pháp so sánh hay là từ trực tiếp từ các IC dao động tạo xung vuông như : 555, LM556 Trong phần mềm được tạo bằng các chip có thể lập trình được
Tạo bằng phần mềm thì độ chính xác cao hơn là tạo bằng phần cứng, nên người ta hay sử dụng phần mềm để tạo PWM Đây là cách tối ưu trong các cách để tạo được xung vuông Với tạo bằng phần mền cho độ chính xác cao
về tần số và PWM Với lại mạch của chúng ta đơn giản đi rất nhiều Xung này được tạo dựa trên xung nhịp của CPU.Trong phạm vi yêu cầu của đề tài thực tập nên em sử dụng cách 2 đó là lập trình cho 8051 để điều khiển PWM
III Ứng dụng PWM điều khiển tốc độ động cơ bằng 8051
1 Nguyên lý:
Đối với điều khiển tốc độ động cơ DC trong robot, phương pháp được sử dụng phổ biến nhất là điều chế độ rộng xung (Pulse WidthModulation) hay được gọi tắt là điều xung, băm xung hoặc PWM.Nguyên lý của phương pháp này là bật tắt nhanh nguồn điện cấp vào động cơ tạo ra một tín hiệu xung Khi việc bật tắt ở tần số đủ lớn (thường sử dụng từ 1kHz đến 20kHz), động cơ sẽ chạy với 1 tốc độ ổn định nhờ moment quay.Thời gian cấp nguồn cho động cơ là T-on, thời gian tắt nguồn động cơ là T-off Việc thay đổi thời gian T-on và T-off làm thay đổi điện áp hiệu dụng cấp cho động
cơ Đối với động cơ DC, tốc độ động cơ tương đối tỉ lệ thuận với điện áp cấp cho động cơ Vì vậy, bằng cách thay đổi độ rộng của xung, ta đã thay đổi được tốc độ của động cơ DC.Đại lượng biểu diễn mối quan hệ giữa
T-on và T-off được gọi là dutycycle:duty_cycle = TT-on / ( TT-on + Toff )Ví dụ:
Ta cấp nguồn động cơ trong 0.8ms, sau đó tắt 0.2ms.Như vậy: T-on = 0.8ms; T-off = 1ms Tần số PWM là:
f = 1 / ( Ton + Toff ) = 1 / ( 0.8ms + 0.2ms ) = 1/1ms = 1KHz duty_cycle = Ton / ( Ton + Toff ) = 0.8 / ( 0.8 + 0.2 ) = 0.8 = 80%
Vì tốc độ động cơ DC tỉ lệ với duty cycle nên tốc độ động cơ đạt tương đương 80% tốc độ tối đa
Trang 5Thực tập nhận thức Trần Hoàng Quân 09T4 – Nhóm 10
Trang 5
2 Sử dụng hàm tạo độ trễ để tạo xung PWM
Đây là cách đơn giản nhất để tạo ra PWM
Sơ đồ thuật toán
Bắt đầu
Bật động
cơ
Delay T_on
Delay T_off Tắt động
cơ
Trang 6Tuy nhiên phương pháp này có nhược điểm là : khó điều chỉnh độ rộng
xung theo ý muốn, cả chương trình trong vi điều khiển chỉ nhằm mục đích
điều chỉnh xung PWM
3 Sử dụng Timer để tạo xung PWM
Bằng cách sử dụng Timer ta có thể điều khiển tốc độ động cơ theo ý muốn
Hơn thế nữa có thể điều chỉnh Timer mà không làm ảnh hưởng tới toàn bộ
chương trình Mỗi lần chạy Timer nạp vào 200, với 100 lần như vậy ta
được 20ms Giá trị của PWM từ 0-> 100 Đây là khoảng thời gian phù hợp
cho việc điều chinh tốc độ động cơ
Trang 7Thực tập nhận thức Trần Hoàng Quân 09T4 – Nhóm 10
Trang 7
S
Đ
Đ
S
Đ
Nạp lại giá trị Timer Bật Timer
Bắt đầu
PWM_VALUE <> 0
Tăng DEM
Bật động
cơ
DEM<PWM_VALUE?
Tắt động
cơ
DEM=100?
DEM=0
Kết thúc
S
Trang 8Ví dụ: Chương trình điều khiển tốc độ động cơ 12V DC dùng xung PWM
Sử dụng chip 8051 để lập trình tạo PWM bằng Timer Có hiển thị % tốc độ
động cơ ra led 7 đoạn
;PHAN KHAI BAO CAC BIT NGO VAO
LED_CHUC BIT P3.0
LED_DONVI BIT P3.1
;PHAN KHAI BAO BIEN
PWM_VALUE EQU 35H
;KHAI BAO CAC VECTOR NGAT
ORG 0000H
Trang 9Thực tập nhận thức Trần Hoàng Quân 09T4 – Nhóm 10
Trang 9
CAP NGUON
ORG 000BH
RONG XUNG
ORG 1BH ;TIMER 1 INTERRUPT
LJMP HIENTHI_T1
ORG 0030H
SETUP:
MOV LEDDATA,#0 SETB KT
SETB ET1
MOV TMOD,#11H MOV TH0,#HIGH(-200) ;\ ;TA 12MHZ => 200us x 100% = 20000us = 20ms
MOV TH1,#27H MOV TL1,#10H CLR TF1
= 0
TIMER
SETB TR1 ; CHO CHAY TIEP MAIN:
JB UP,CHECK_DOWN ;NEU PHIM UP = '1' THI KIEM TRA PHIM DOWN
LCALL DELAY50MS ;NEU PHIM UP = '0' THI CHO CHONG XUNG NAY
INC PWM_VALUE ;TANG GIA TRI PWM MOV A,PWM_VALUE
CJNE A,#101,EXIT_UP ;CHUA TOI NGUONG TREN THI THOAT THU TUC NHAN PHIM
MOV PWM_VALUE,#100 ;DO DAY XUNG DAT 100%
EXIT_UP:
JMP MAIN CHECK_DOWN:
LCALL DELAY50MS DEC PWM_VALUE MOV A,PWM_VALUE CJNE A,#-1,EXIT_DOWN ;CHUA TOI NGUONG DUOI THI THOAT THU TUC NHAN PHIM
EXIT_DOWN:
Trang 10JMP MAIN
XUNG
PUSH ACC MOV 7FH,C CLR TR0 MOV TH0,#HIGH(-200) MOV TL0,#LOW(-200) SETB TR0
MOV A,PWM_VALUE CJNE A,#0,EN_PWM ;DO DAY XUNG <> 0 THI CHO DIEU XUNG
JMP EXIT_ISR ;DO DAY XUNG = 0 THI THOAT KHOI THU TUC NGAT
EN_PWM:
MOV A,R7 CJNE A,PWM_VALUE,OFF_PULSE ;DU THOI GIAN DAY XUNG THI TAT THIET BI
OFF_PULSE:
CJNE A,#99,EXIT_ISR ;CHUA HET CHU KY DIEU XUNG THI THOAT NGAT
EXIT_ISR:
MOV C,7FH POP ACC RETI
;HAM DELAY 1 MS
DELAY_MS:
MOV 30H,#00H
LOOP_MS:
INC 30H
MOV A,30H
CJNE A,#0FAH,LOOP_MS
RET
;HAM DELAY 50 MS
DELAY50MS:
MOV 31H,#250
LOOP_50MS:
ACALL DELAY_MS
ACALL DELAY_MS
DJNZ 31H,LOOP_50MS
RET
;HAM DELAY 200 MS
DELAY200MS:
LCALL DELAY50MS LCALL DELAY50MS LCALL DELAY50MS LCALL DELAY50MS
Trang 11Thực tập nhận thức Trần Hoàng Quân 09T4 – Nhóm 10
Trang 11
RET
;HAM HIEN THI THONG SO KY THUAT
HIENTHI_T1:
MOV TH1,#27H MOV TL1,#10H CLR TF1 SETB TR1 ; CHO CHAY TIEP
PUSH ACC MOV A,PWM_VALUE MOV B,#10
DIV AB JNB KT,HT_DONVI HT_CHUC:
SETB LED_DONVI ACALL DOI_MA_LED MOV LEDDATA,A CLR LED_CHUC CLR KT
JMP KETTHUC_HIENTHI HT_DONVI:
SETB LED_CHUC MOV A,B
ACALL DOI_MA_LED MOV LEDDATA,A CLR LED_DONVI SETB KT
KETTHUC_HIENTHI:
POP ACC RETI
; -
DOI_MA_LED:
INC A
MOVC A,@A+PC
RET
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
; -
END
Trang 12Kết quả: