Điều khiển tốc độ động cơ sử dụng pid số
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.
19 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 6130 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Điều khiển tốc độ động cơ sử dụng pid số, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 1
LỜ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 :
► 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.
► Phần IV : Phần mềm.
► Phần V : Tài liệu tham 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
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 2
NHẬN XÉT, ĐÁNH GIÁ CỦA GIÁO VIÊN
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
…………………………………………………………………………………………………………..
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 3
MỤC LỤC
Lời tựa 1
Nhận xét của giáo viên 2
Mục lục 3
Phần I : Giới thiệu hệ thống điều khiển tốc độ động cơ 4
Phần II : Phần cứng 5
1.Cấu trúc tổng quát 5
2.Khối xử lý trung tâm 6
3.Khối hiển thị 8
4.Khối cảm biến 8
5.Khối công suất 9
6.Khối bàn phím 10
7.Khối cấp nguồn 10
Phần III : Giải thuật mờ thiết kế bộ điều khiển PID cho động cơ 12
Phần IV: Phần mềm 17
Phần V : Tài liệu tham khảo 19
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 4
PHẦN I : GIỚI THIỆU HỆ THỐNG ĐIỀU KHIỂN
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 đến trong truyền
động ổ đĩa cứng có chất lượng cao nhất, các ổ CD-ROM hay DVD. Tuy nhiên, các bộ
điều khiển đĩa này có yêu cầu cao hơn các bộ điều khiển tốc độ động cơ. Chúng phải
đảm bảo điều khiển vị trí servo của phần cơ khí đọc (và viết) mà thường là các động
cơ tuyến tính. Điều khiển thích nghi là cần thiết cho các trường hợp này để bù sự thay
đổi nhiệt, sự lão hóa (aging) của đĩa và các lực gia tốc vật lý.
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 5
PHẦ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
tối đa là 10 Watt ,mạch chính gồm 6 khối như sau :
● Khối xử lý trung tâm : sử dụng vi điều khiển 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
24V.
● Khối bàn phím : gồm 4 phím nhấn và 4 công tắc on-off 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 :
:
2.KHỐI XỬ LÍ TRUNG TÂM :
Xử lý
trung tâm
Khối hiển thị
LCD
Khối bàn phím
Khối cảm biến
Khối cấp
nguồn
Khối công suất
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 6
Đó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ủ ATMega16 :
● 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
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 7
Mô tả sơ đồ mạch :
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 8
Vi điều khiển ATMega16 sử dụng thạch anh định tần 4Mhz, một chu kì
lệnh sẽ chiếm thời gian là 1 0.25
4.000.000
sμ= . ATMega16 có 5 nguồn reset, trong
đó 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 :
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 9
Sử 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
timer0 8bit ở chế độ Phase Correct PWM.
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 10
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.
0
OUT_5
0
D8
D1N4007 0
0
J6
24VAC/5A
1
2
Q2SA1302Q2
J7
5V
1
2
U4
LM7812
1
3
2VIN
G
N
D
VOUT
OUT_12
0
0
R7
4.7-2W
D10
D1N4007
C8
2200uF/35V
R10
1k
J9
24V
1
2
C11
2200uF/35V
OUT_24
OUT_24
0
R5
100K
C12
0.1uF
D14
LED
U3
LM7824
1
3
2VIN
G
N
D
VOUT
0
Q1
Q2SA1015
C10
8200uF/50V
0
R11
470
F1
FUSE
D3
LED
D13
D1N4007
D16
LED
U5
LM7805
1
3
2VIN
G
N
D
VOUT
C9
2200uF/35V
R4
560
0
KHOI NGUON
- +
D1
BRIDGE
1
2
3
4
0
00
D12
D1N4007
R6
4.7-2W
0
R3
2.2K
D15
LED
Q2SA1302Q3
J8
12V
1
2
R9
2.2K
OUT_12
0
D9
D1N4007
OUT_5
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 11
PHẦN III : GIẢI THUẬT MỜ THIẾT KẾ
BỘ 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,
Offererin, 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ờ :
Mô hình tính toán của bộ PID :
0
( )( ) ( ) ( )
t
P I D
de tu t K e t K e x dx K
dt
= + +∫
0
1 1 ( )( ) [ ( ) ( ) ]
t
P
I D
de tu t K e t e x dx
T T dt
= + +∫
( )
P
I
PID D
KG s K K s
s
= + +
2
p
I
D
K
K
Kα=
I
D
T
T
α =
BỘ CHỈNH
ĐỊNH MỜ
THIẾT BỊ
CHỈNH ĐỊNH
de
dt
BĐK PID ĐỐI TƯỢNG
y u e x
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 12
Các tham số , ,P I DK K K đuợc chỉnh định theo từng bộ điều khiển mờ riêng biệt
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
Zhao, Tomizuka và Isaka… Nguyên tắc chung là bắt đều với các trị , ,P I DK K K theo
Zeigler-Nichols, sau đó dựa vào đáp ứng và thay đổi dần để tim ra hướng chỉnh định
thích hợp.
Luật chỉnh định PID :
● Lân cận 1a ta cần luật điều khiển mạnh để rút ngắn thời gian lên, do vậy chọn
: PK lớn, DK nhỏ, và α nhỏ.
● Lân cận 1b ta tránh vọt lố lớn nên chọn : PK nhỏ, DK lớn, và α lớn.
● Lân cận 1c và 1d giống như lân cận 1a và 1b
● 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
, ,P IK K α đều có dạng gần đối xứng qua đường chéo chính hoặc trục phụ.
Các buớc thiết kế :
1.Xác định biến ngôn ngữ :
● Đầu vào : 2 biến
+ Sai lệch : ET = Đo – Đặt
+ Tốc độ tăng : ( 1) ( )ET i ET iDET
T
+ −= với T là chu kí lấy mẫu.
● Dầu ra : 3 biến
+ PK hệ số tỉ lệ.
+ IK hệ số tích phân.
+ DK hệ số vi phân.
, , [0,1]P D IK K K ∈
● Số lượng biến ngôn ngữ :
ET = {âm,zero,dương};
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 13
ET = {N,Z,P};
DET = {âm,zero,dương};
ET = {N,Z,P};
/P DK K = {zero,trung bình,lớn}={Z,M,U};
α = {múc 1,mức 2,mức 3}={L1,l2,l3};
● [ 10, 10]ET ∈ − + , [ 10, 10]DET ∈ − +
+10-10
ET
Z PN
0C
μ
DET
μ
0C/s-10 +10
PK
DK
Z M U
0 0.5 1
μ
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 14
2.Luật hợp thành mờ :
* Luật chỉnh định PK :
PK DET
N Z P
N U M Z
Z M Z M
ET
P Z M U
* Luật chỉnh định DK :
DK DET
N Z P
N Z M U
Z M U M
ET
P U M Z
* Luật chỉnh định α :
α DET
N Z P
N L1 L1 L3
Z L2 L3 L2
ET
P L3 L1 L1
3.Chọn luật và giải mờ :
+ Chọn luật hợp thành theo quy tắc Max-Min.
α1 2 3
μ
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 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 :
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.
α
Bộ mờ 1
Bộ mờ 2
Bộ mờ 3
e(t)
( )de t
dt
Bộ điều
khiển PI
PK
DK
du∫
0U
P
du
dt
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 16
PHẦN IV : PHẦN MỀM
Lưu đồ giải thuật :
STAR
OCR0 = 180
toc_do_dat = 160
delay 1s
SW1= = 1
toc_do_do = pulse_new – pulse_old
ET_old = ET_new
ET_new = toc_do_do – toc_do_dat
DET = ET_new – ET_old
ET = = 0
Mờ hóa ET, DET
Tính , ,P DK K α
Tính IK
Điều xung
F
T
T
F
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 17
Giải thích :
Chương trình cho vi điều khiển ATMega16 được viết bằng ngôn ngữ C sau đó
biên dịch sang file hex rồi nạp vào flash rom của ATMega16:
+ Sử dụng timer0 8 bit để điều rộng xung PWM điều khiển tốc độ độ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 :
+ Sử dụng timer1 16 bit để định thời sau mỗi 10ms sẽ thực thi 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 :
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 18
+ 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
biến này đề tính toán tốc độ động cơ.
+ Sau khi đã xác định được ET và DET thì nếu ET == 0 ta sẽ 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
hiện mờ hoá ET và DET thanh các giá trị ( ), ( ) [0,1]ET DETμ μ ∈ bằng cách gọi hàm mờ
hoá.
+ Bước tiếp theo ta tiếp tục gọi hàm Tính PK , Tính DK , Tính α .
+ Sau khi có cá thông số , ,p DK K α ta thực hiện tính KI.
+ 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 độ
rộng xung ở ngỏ ra OC0.
Bộ điều khiển PI : P I
du K DET K ET
dt
= +
Nhận xét : sử dụng bộ điều khiển PI vì bộ điều khiền PI thực hiện 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 .
ĐIỀU KHIỂN ĐỘNG CƠ SỬ DỤNG PID SỐ GVHD:PGS.TS NGUYỄN THỊ PHƯƠNG HÀ
12/2007 SVTH:NGUYỄN QUỐC HUY 19
PHẦN V : TÀI LIỆU THAM KHẢO
[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
Các file đính kèm theo tài liệu này:
- Điều khiểntốc độ động cơ sử dụng pid số,.pdf