LỜI TỰAMục đích đề tài là ĐIỀU KHIỂNTỐC ĐỘ ĐỘNG CƠ SỬ DỤNG PID SỐ, tuy đây là một đề tài khá quen thuộc nhưng điển khác biệt so với những đề tài trước là sử dụng là sử dụng ngôn ngữ lập
Trang 1LỜI TỰA
Mục đích đề tài là ĐIỀU KHIỂNTỐC ĐỘ ĐỘNG CƠ SỬ DỤNG PID SỐ,
tuy đây là một đề tài khá quen thuộc nhưng điển khác biệt so với những đề tài trước là
sử dụng là sử dụng ngôn ngữ lập trình là C thông qua chương trình CodevisionAVR
C compiler để lập trình cho vi xử lý ATMega16 nhằm mục đích tối ưu hóa những khả
năng của ATMega16
Đồ án thực hiện đề tài gồm 5
►
►
Phần I: giới thiệu hệ thống điều khiển tốc độ động cơ Phần II : Phần cứng
Phần III : Thiết kế khối hiệu chỉnh PID bằng giải thuật phần
mềm
►
khảo
Xin chân thành cảm ơn cô Nguyễn Thị Phương Hà, người đã gợi
ý và hướng
dẫn tôi thực hiện đề tài này
Dù đã cố gắng rất nhiều nhưng trong quá trình thực hiện không thể tránh có sai
sót, tôi mong được sự góp ý để có thể hoàn thiện tốt hơn
Người thực hiện
Nguyễn Quốc Huy
Trang 2ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID
NH
Ậ N XÉT, Đ ÁNH GIÁ C Ủ A GIÁO VIÊN
…
…
…
………
………
………
… … … ………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 3MỤC LỤC
Lời tựa
Nhận xét của giáo
viên
Mục lục
1 2 3 Phần I : Giới thiệu hệ thống điều khiển tốc độ
động cơ
Phần II : Phần cứng
4 5 1
2 3 4 5 6 7
.Cấu trúc tổng quát
.Khối xử lý trung tâm
.Khối hiển thị Khối cảm biến Khối công suất Khối bàn phím Khối cấp nguồn
5 6 8 8 9 10 10 12 17 19
Phần III : Giải thuật mờ thiết kế bộ điều khiển PID
cho động cơ
Phần IV: Phần mềm
Phần V : Tài liệu tham khảo
Trang 4ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID
TỐC ĐỘ ĐỘNG CƠ DC
Độ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
Hiện nay có một số xu hướng trong điều khiển động cơ Trong một số trường
hợp, vấn đề cần quan tâm chỉ đơn giản là điều khiển tốc độ, gia tốc, mômen hoặc các
thuộc tính khác của động cơ trên cơ sở tín hiệu điều khiển đầu vào là
từ phía con
người, chẳng hạn như qua bảng điều khiển Việc điều khiển bằng tay như vậy thuộc về
phạm trù điều khiển vòng hở Trong một số trường hợp khác, động cơ phải tự động
đưa ra các đáp ứng với các tác động thời gian thực Các đáp ứng đối với các tác động
này được quan sát và các điều chỉnh cần thiết được tự động tạo ra Vì vậy, nó tạo ra
một môi trường điều khiển kín Các điều khiển vòng lặp kín như vậy được gọi là hệ
tùy động servo, hay chỉ đơn giản là servo
Điều khiển servo là một quá trình xử lý tín hiệu liên quan đến điều khiển động
cơ trên cơ sở động học của các tín hiệu vào như vị trí, tốc độ hay
mômen Trong quá
khứ người ta sử dụng các mạch tương tự để thực hiện điều khiển servo, nhưng khả
năng thích nghi của các bộ vi xử lý tín hiệu số (DSP) đã tạo ra một công nghệ cho sự
lựa chọn trong nhiều ứng dụng Khi dải thông cho điều khiển tốc độ và mômen đơn
giản là hẹp một cách tương đối nếu so sánh với mã hóa tiếng nói, MCUs thường đủ
nhanh các việc xử lý DSP nhỏ nhặt Trong một số trường hợp, mặc dù chúng phải dựa
vào các bảng tra (look-up tables) để cho các kết quả xấp xỉ, nhưng MCUs không có
tốc độ để thực hiện những thuật toán điều khiển nâng cao được cần
Trang 5PHẦN II : PHẦN CỨNG
1.CẤU TRÚC TỔNG QUÁT :
Board điều khiển được thiết kế nhằm mục đích diều khiển động
cơ có công suất
ATMega16
●Khối hiển thị : sử dụng LCD 16x2 giao tiếp với PORTA của
vi xử
lý
●Khối cảm biến : Encoder nối trực tiếp vào trục Motor để xác định
tốc độ
Khối công suất : có khả năng điều khiển Motor dùng nguồn DC
4V
● 2
●Khối bàn phím : gồm 4 phím nhấn và 4 công tắc on-of dùng để
điều khiển và thiết lập các thông số cho bộ điều khiển tốc
độ Chức năng của từng phím được thiết lập bằng phần mềm
●Khối cấp nguồn : nguồn chính cung cấp điền áp 5V,12V,
và 24V
dùng để cung cấp cho mạch điều khiển và mạch công suất
Sơ đồ mô tả
mạch :
Khối hiển thị LCD
Khối cấp
Xử lý trung tâm
Khối công
:
2.KHỐI XỬ LÍ TRUNG TÂM :
Trang 6ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID
Đóng vai trò bộ điều khiển trung tâm, chịu trách nhiệm về tất cả các họat động
của mạch Board mạch chủ với bộ xử lí trung tâm là ATMega16 cung cấp mộ công cụ
có thể thực hiện điều khiển theo bất kì phương pháp nào, chỉ cần có giải thuật và
chuyển đổi thành chương trình nạp vào bộ nhớ của ATMega16
Vi điều khiển ATMega16 được chọn vì MCU này có những ưu điểm trong việc
điều khiển động cơ, cụ thể là bộ 2 timer 8 bit và 1 timer 16 bit tất cả đều có bộ chia tần
và PWM (Pulse Width Modulation)
Tổng quan về ATMega16:
ATMega16 là một vi điều khiển 8 bit do hãng ATMEL sản xuất, được chế tạo
theo công nghệ low-power CMOS, khả năng tiêu thụ công suất thấp,
xử lý nhanh với
16KB Flash(In-System Self-Programmable Flash) Thiết bị này được chế tạo bằng
cách sử dụng kĩ thuật bộ nhớ không bốc hơi mật độ cao của ATMEL Flash In-System
cho phép bộ nhớ được lập trình bởi một lập trình viên bình thường Bằng cách kết nối
một CPU 8 bit với một bộ nhớ Flash 16KB trên một chip đơn,
ATMega16 là một
MCU mạnh, cung cấp một bộ điều khiển với sự linh động cao và giá thành cạnh tranh
đối với nhiều ứng dụng dùnh MCU 8 bit
Sơ đồ chân và các đặc điểm chủ yếu củ
●
●
●
●
●
●
●
●
16KB Flash Rom có khả năng ghi/xóa 10.000 lần
In-System Programming sử dụng On-chip Boot Program
2 timer 8bit và 1 timer 16bit tất cả đều có bộ chia tần
4 kênh PWM (Pulse Width Modulation)
8 kênh biến đổi ADC 10bit
6 chế độ tiết kiệm nguồn
21 nguồn ngắt cho phép lập trình linh hoạt
32 đường I/O lập trình được (4 Port)
Tần số hoạt động từ : 0 Hz đến 16MHz
Trang 7Mô tả sơ đồ mạch
:
Trang 8ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID
Vi điều khiển ATMega16 sử dụng thạch anh định tần 4Mhz,
lệnh sẽ chiếm thời
đó có nguồn Power-on reset và External reset dùng
nút nhấn SW1
3.KHỐI HIỂN THỊ :
Sử dụng LCD 16x2 giao tiếp với vi xử lý qua PORTA và gaio tiếp
ở chế độ 4
bit vì vậy chỉ sử dụng 7 chân I/O của vi xử lý nhưng vẫn có khả năng hiển thị tốc độ
động cơ cũng như các thông số khác liên quan đến việc điều chỉnh hay cài đặt ban đầu
cho bộ điều khiển
4.KHỐI CẢM BIẾN :
Trang 9Sử dụng 1 Encoder loại Incremental encoder 100 xung trên một vòng gắn trực
tiếp vào trục động cơ, tín hiệu ngỏ ra của encoder là dạng xung vuông
mà ứng với mỗi
lần động cơ quay đủ một còng thì số xung xuất ra là 100 Ngỏ ra của encoder sẽ được
nối vào chân INT0 của MCU ATMega16
5.KHỐI CÔNG SUẤT :
Dùng OPTO(PC817)-MOSFET(IRF540) để đảm bảo hai yêu cầu là cách ly về
điện và đáp ứng tần số cao trong đóng ngắt
Sử dụng cặp Transistor bù D468 và B562 là mạch điều khiển điện áp ở chân G
của MOSFET đảm bảo ép MOSFET có thể đóng ngắt đúng như tín hiệu điều khiển
Nguồn cấp cho mạch công suất là 12VDC nhưng nguồn cấp cho động
cơ là 24VDC
OPTO được nối vào chân OC0(PB3) của ATMega16, OC0 là chân
chuyên dụng của
Trang 10ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID
6.KHỐI BÀN PHÍM :
Gồm 4 phím nhấn và 4 switch được kết nối trực tiếp vào PORTC như hình vẽ :
Các nút nhấn và switch được sử dụng để cài đặt các thông số cần thiết cho bộ
điều khiển tốc độ động cơ, đồng thờ cũng được dùng để ra lệnh hiển thị trạng thái của
các thông số PID thay đổi khi thực hiện điều khiển
7.KHỐI CẤP NGUỒN :
Khối cấp nguồn cung cấp nguồn DC 5V cho mạch điều khiển và 12V, 24V cho
mạch công suất Khối cấp nguồn sử dụng 3 loại IC ổn áp là LM7824, LM7812, và
LM7805 cùng với Transistor kéo dòng là Q2SA1302
KHOI NGUON
J9 1 OUT_24
24V
J8 OUT_12
D9
12V D1
BRIDGE
D1N4007
0
C10
4.7-2W
C9
2200uF/35V
C12 0.1uF
0 D8
D1N4007 D1N4007D12 0 8200uF/50V C8
560
Q1
Q2SA1015
2.2K
0
2.2K LED
LED LED
0
0
Trang 11BỘ HIỆU CHỈNH PID CHO ĐỘNG CƠ
Sơ lượt về bộ PID mờ
:Có thể nói trong lĩnh vực điều khiển, bộ PID được xem như một giải pháp đa
năng cho các ứng dụng điều khiển Analog cũng như Digital Theo một nghiên cứu cho
thấy có khoảng hơn 90% các bộ điều khiển được sử dụng hiện nay
là bộ điều khiển
PID Bộ điều khiển PID được thiết kế tốt có khả năng điều khiển hệ thống với chất
lượng quá độ tốt (đáp ứng nhanh, độ vọt lố thấp) và triệt tiêu được sai
số xác lập
Việc thiết kế bộ PID kinh điển thường dựa trên phương pháp Zeigler-Nichols,
Ofererin, reinish… Tuy nhiên nếu đối tượng điều khiển là phi tuyến thì
bộ điều khiển
PID kinh điển không thẻ đảm bảo chất lượng điều khiển tại mọi thời điểm làm việc
Do đó để điều khiển các đối tượng phi tuyến này nay người ta
thướng ùng kĩ thuật
hiệu chỉnh PID mềm (dựa trên phần mềm), đây chính là cơ sở cuủa thiết kế PID mờ
hay PID thích nghi
Sơ đồ điều khiển dùng PID
mờ :
BỘ CHỈNH ĐỊNH MỜ
de dt
THIẾT BỊ CHỈNH ĐỊNH
Mô hình tính toán của bộ
PID :
∫
u(t) = K e(t) + K e(x)dx
t
1 1 de(t)
∫
u(t) = K P [e(t) +
e(x)dx +
]
T I 0 T D dt
K
I s
G PID (s) = K + + KP D s
I
T D
K I =α p α =
K D
Trang 12ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID
dựa tr7en sai lệch e(t) và đạo hàm de(t) Có nhiều phương pháp khác nhau để hcỉnh
định bộ PID như à dựa trên phiếm hàm mục tiêu, chỉnh định trực tiếp, chỉnh định theo
, K , K theo
P I D
Zeigler-Nichols, sau đó dựa vào đáp ứng và thay đổi dần để tim ra hướng chỉnh định
:
lên, do vậy chọn
●
●
a và b
1
Khi giá trị tuyệt đối của sai lệch lớn ta cần có tín hiệu điều khiển mạnh để đưa
nhanh sai lệch về 0 Dựa theo nguyên tắc này ta có ma trện
quan hệ chỉnh định
K , K ,α đều có dạng gần đối xứng qua đường chéo chính hoặc
trục phụ
P I
Các buớc thiết kế :
.Xác định biến ngôn
ngữ :
Đầu vào : 2 biến
1
●
+Sai lệch : ET = Đo –
ET(i)
=
với T là chu kí lấy mẫu
T
●Dầu ra : 3
biến+
+ +
phân
K , K , K
∈[0,1]P D I
●Số lượng biến ngôn
ngữ :
ET =
{âm,zero,dương};
Trang 13DET =
{âm,zero,dương};
3}={L1,l2,l3};
●ET ∈[−10,+10], DET
∈[−10,+10]
μ
ET
0 C
μ
DET
μ
1
Trang 14ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID
μ
2
:
N U M Z
Z M Z
P Z M U
Z
:
DET
N Z M U
Z M U
P U M Z
Z
:
α
Z P
L1 L2 L3
L1 L3 L1
L3 L2 L1 3.Chọn luật và giải
mờ :
+Chọn luật hợp thành theo quy tắc
Max-Min
Trang 15+Giải mờ theo phương pháp
độ cao
Mô hình bộ điều khiển PID sử dụng giải thuật phần
mềm :
du
Bộ điều
Bộ mờ 2
Bộ mờ 3
K
D
de(t)
dt
α
Nhận xét : sau khi tiến hành thực nghiệm với hệ thống thực thì ta thấy thuật
toán mờ tính toán các thông số PID cho kết quả khá tốt, khi áp dụng cho bộ điều khiển
PI thì độ vọt lố tối đa là 15% và thời gian xác lập tốc đa là 1.5s Vì bộ nhớ và khả năng
tính toán của vi điều khiển ATMEga16 còn hạn chế nên luật hợp thành
mờ chỉ có 3x3
và tầm điều khiển là: ET[-10;+10], DET[-10;+10]; nếu ta tăng luật hợp thành mờ lên
5x5 hoăc 7x7 thì tầm điều khiển sẽ được mở rộng và chất lượng hệ thống sẽ tăng lên
Trang 16ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID
PHẦN IV : PHẦN MỀM
Lưu đồ giải thuật :
STAR
OCR0 = 180 toc_do_dat = 160
delay 1s
F SW1= = 1
T toc_do_do = pulse_new – pulse_old
ET_old = ET_new ET_new = toc_do_do – toc_do_dat
DET = ET_new – ET_old
T
ET = = 0 F
Mờ hóa ET, DET
Tính K , K ,αP D
Tính K I
Điều xung
Trang 17thích :
Chương trình cho vi điều khiển ATMega16 được viết bằng ngôn ngữ C sau đó
độ động cơ,
trong đó timer0 được thiết lập ở mode Phase Correct PWM và giá trị thanh ghi
OCR0 sẽ được cập nhật để điều chỉnh tốc độ động cơ Xung ngỏ ra OC0 sẽ có tần số
được tính theo công thức :
chương trình
ngắt, trong đó timer0 được thiết lập ở mode CTC(Clear Time on
Compare match) và
ngắt Output compare A match đuợc thực thi mỗi khi giá trị của thanh ghi TCNT1 bằng
giá trị thanh ghi OCR1A Ta sẽ thiết lập sao cho thời gian ngắt là 10ms,
cứ sau mỗi
10ms chương trình ngắt sẽ thực thi và tính toán ET và DET Tần số ngắt có thể tính
theo công
thức :
Trang 18ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID
+Sử dụng ngắt INT0(external interupt) để nhận tín hiệu từ
encoder trả về sau
đó tăng dần biến đếm pulse, cứ sau mỗi 10ms chương trình ngắt
timer1 sẽ truy cập vào
quay trởi lại và
chờ kết thúc 10ms rồi tiếp tục xác định lại tốc độ động cơ.Nếu ET khác
0 thì ta sẽ thực
gọi hàm mờ
+
Sau đó ta sẽ thực hiện tính toán giá trị điện áp U ngỏ ra thông qua giải thuật
bộ điều khiển PI cập nhật vào thanh ghi OCR0 của timer0 và từ đó
sẽ quyết định độ
một cách khá
dễ dàng và cho kết quả khá tốt, tuy bộ điều khiển PID sẽ cho kết quả tốt hơn nhưng do
khả năng của Vi xử lí ATMega16 bị hạn chế trong khi đó giải thuật thực hiện bộ PID
số khá phức tạp đò hỏi phải có bộ nhớ lập trình lớn và khả năng xử lý mạnh vì vậy nên
tôi lựa chọn bộ diều khiển PI vì giải thuật lập trình không quá phức tạp phù hợp với
ATMega16.Tuy bộ điều khiển PI cho độ vọt lố khoảng 15% khi sai số ET lớn và thời
gian xác lập khá lớn nhưng vẫn đảm bảo yêu cầu chất lượng và ổn định của hệ thống
Trang 19[1] Nguyễn Thị Phương Hà, Lý thuyết điều khiển hiện đại, Nhà xuất bản Đại
Học Quốc Gia Thành Phố Hồ Chí Minh, 2007
2] Hugh Jack, Automating Munufacturing Systems, GNU Free Documentation
License, 2007
[
[3] Karl Johan Astrom and Bjorn Wittenmark, Adaptive
Control,
Addision-Wesley Publishing Company,
1989[4] Frank L.Lewis and Vassilis L.Syrmos, Optimal Control, Jonh
Wiley &
Sons,Inc ,
1995[5] Tống Văn On, Thíết kế hệ thống với họ 8051, Nhà xuất bản
Phương Đông,
2005
[6] J.Harris, Fuzzy Logic Applications in Engineering Science, Published by
Springer,
2006[7] Michael A.Johnson and Mohammad H.Moradi, PID Control,
Springer, 2005