Ọ
ƯỜ
Ộ NG Đ I
Ạ Ụ B GIÁO D C ĐÀO T O Ố Ế Ồ Ạ H C QU C T H NG BÀNG
TR
Ệ Ử Ự Ộ KHOA ĐI N T T Đ NG HÓA
Ơ Ở Ề
Ậ Ớ BÁO CÁO BÀI T P L N Ể Ự Ộ C S ĐI U KHI N T Đ NG
ơ ằ
ề
ề
ể ố ộ ộ Đ tài: Đi u khi n t c đ đ ng c b ng PID
ả
ễ
ng d n ệ
ẫ : TS. Nguy n Tr ng Tài ị
ướ Gi ng viên h ự Sinh viên th c hi n
ọ 141103007
ạ ầ
141102044
: Ph m Th Vân : Tr n Chánh Phát : DT14DH – DT1
L pớ
TP.HCM 06/2016
Ụ
Ụ
M C L C
3
ƯƠ
CH
NG 1
Ổ
T NG QUAN
ộ
ơ
1.1. Đ ng c DC
ộ ơ 1.1.1. Đ ng c DC Servo
ơ ệ ệ ể ể ộ ổ ượ ệ Đ ng c đi n là máy đi n dùng đ chuy n đ i năng l ng đi n sang năng
ầ ứ ủ ộ ơ ệ ạ ộ ầ ắ ơ ồ ượ l ng c . Nguyên t c ho t đ ng: ph n chính c a đ ng c đi n g m ph n đ ng yên
ể ầ ộ ượ ề ấ ẫ (stator) và ph n chuy n đ ng (rotor) đ c qu n nhi u vòng dây d n hay có nam
ử ộ ượ ố ớ ệ châm vĩnh c u. Khi cu n dây trên rotor và stator đ ồ c n i v i ngu n đi n, xung
ồ ạ ự ươ ủ ạ quanh nó t n t i các t ừ ườ tr ng, s t ng tác t ừ ườ tr ng c a rotor và stator t o ra
ủ ụ ể ộ chuy n đ ng quay c a rotor quanh tr c hay 1 mômen.
ố ộ ề ơ Thông s đ ng c DC Servo dùng làm đ tài:
ể Ki u: DSE38BE27001
ệ ấ ộ ơ Đi n áp c p cho đ ng c : 24VDC
ố ộ T c đ : 4400 vòng/phút
ệ ấ Đi n áp c p cho encoder: 5VDC
o
Encoder: 108 xung/vòng
ặ ệ ố S encoder: 2 encoder đ t l ch 90
ể ơ ệ ệ ả ậ ử ụ * Ghi chú: Đ đ n gi n và thu n ti n trong vi c làm mô hình, trong bài này s d ng
ộ ử ệ ệ ệ ằ ấ ị ệ ử ụ đi n áp c p cho DC Servo là 12V. Vi c s d ng đi n áp b ng m t n a đi n áp đ nh
ứ ủ ủ ả ả ộ ơ ố ộ ộ ơ ố ộ ử m c c a đ ng c làm gi m t c đ quay c a đ ng c xu ng kho ng còn m t n a
ớ ố ử ụ ệ ị (2200 vòng/phút) so v i s vòng quay khi s d ng đúng đi n áp quy đ nh (4400
vòng/phút).
ể ố ộ ộ ề ơ 1.1.2. Đi u khi n t c đ đ ng c
ườ ố ộ ơ ệ ủ ộ Thông th ộ ộ ng, t c đ quay c a m t đ ng c đi n m t chi u t ề ỷ ệ ớ l ệ v i đi n áp
ẫ ự ỷ ệ ớ ẫ ự ệ ấ ớ ặ đ t vào nó và ng u l c quay t ộ v i dòng đi n, ng u l c quay l n nh t khi đ ng l
ơ ắ ầ ơ ẽ ầ ở ộ ộ ộ ơ c kh i đ ng (nghĩa là khi đ ng c b t đ u quay) khi đó đ ng c s c n 1 dòng
4
ệ ớ ở ộ ể ố ơ ằ ộ ộ ể ề ổ ị ệ đi n l n đ kh i đ ng. Đi u khi n t c đ đ ng c b ng cách thay đ i giá tr đi n
ộ ơ áp và dòng vào đ ng c .
ươ
ề
1.2. Ph
ng pháp đi u xung PWM (Pulse Width Modulation)
ươ ề ươ Ph ng pháp đi u xung PWM (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. PWM đ ượ ứ c ng
ề ề ể ể ấ ườ ụ d ng nhi u trong đi u khi n. Đi n hình nh t mà chúng ta th ề ặ ng hay g p là đi u
ử ụ ể ề ề ể ộ ơ ộ ộ khi n đ ng c và các b xung áp, đi u áp... S d ng PWM đi u khi n đ nhanh
ữ ủ ậ ơ ộ ơ ượ ể ự ổ ể ề ị ch m c a đ ng c hay cao h n n a, nó còn đ c dùng đ đi u khi n s n đ nh
ơ ố ộ ộ t c đ đ ng c .
ươ ượ ự ệ ắ ồ Đây là ph ng pháp đ ắ c th c hi n theo nguyên t c đóng ng t ngu n v i t ớ ả i
ầ ử ự ề ắ ậ ộ ờ ỉ m t cách có chu kì theo lu t đi u ch nh th i gian đóng ng t. Ph n t ệ th c hi n
ụ ệ nhi m v đó trong bài báo cáo này là Module L298N.
ậ ố ỹ Thông s k thu t:
ạ ầ ợ Driver: Tích h p 2 m ch c u H
ệ ề ộ ơ ể Đi n áp đi u khi n đ ng c : 5 ~ 12V
ố Dòng t ỗ ầ i đa qua m i c u H: 2A
ệ ệ ề ể Đi n áp tín hi u đi u khi n: 5 ~ 7V
ệ ề ể Dòng tín hi u đi u khi n: 0 ~ 36mA
ể ạ ượ ầ ứ ụ ệ ằ Đ 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:
(cid:0) ầ ứ ể ạ ằ ươ ự ế Trong ph n c ng có th t o b ng ph ng pháp so sánh hay là tr c ti p
ư ạ ộ ừ t các IC dao đ ng t o xung vuông nh : 555, LM556...
(cid:0) ề ượ ạ ể ậ ằ ượ ầ Trong ph n m n đ c t o b ng các chip có th l p trình đ ạ c. T o
ầ ứ ề ạ ằ ầ ộ ơ ằ b ng ph n m n thì đ chính xác cao h n là t o b ng ph n c ng.
5
ớ
ệ ề
1.3. Gi
i thi u v Arduino
1.3.1. Arduino là gì?
ộ ề ả ở ượ ử ụ ự ể ồ Arduino là m t n n t ng mã ngu n m đ ứ c s d ng đ xây d ng các ng
ệ ử ể ậ ạ ồ ượ ườ ụ d ng đi n t . Arduino g m có board m ch có th l p trình đ c (th ọ ng g i là vi
ề ể ề ầ ỗ ợ ể đi u khi n) và các ph n m m h tr ợ phát tri n tích h p IDE (Integrated
ả ạ ị ươ ể ạ Development Environment) dùng đ so n th o, biên d ch code và n p ch ng trình
cho board.
ổ ế ữ ấ ườ ớ ắ ầ ể Arduino ngày nay r t ph bi n cho nh ng ng i m i b t đ u tìm hi u v ề
ệ ử ễ ế ư ệ ả ạ ả ơ ố đi n t ề ậ vì nó đ n gi n, hi u qu và d ti p c n. Không gi ng nh các lo i vi đi u
ụ ể ả ầ ệ ể khi n khác, Arduino không c n ph i có các công c chuyên bi ụ ụ ệ t đ ph v vi c
ụ ể ạ ố ớ ả ầ ấ ơ ạ n p code, ví d đ n p code cho PIC c n ph i có Pic Kit. Đ i v i Arduino r t đ n
ể ế ố ớ ệ ậ ằ ả gi n, ta có th k t n i v i máy tính b ng cáp USB. Thêm vào đó vi c l p trình cho
ấ ễ ử ụ ả ả ơ ị Arduino r t d dàng, trình biên d ch Arduino IDE s d ng phiên b n đ n gi n hóa
ữ ủ c a ngôn ng C++.
1.3.2. Board Arduino Uno
ụ ữ ộ ượ ử ụ ề M t trong nh ng board thông d ng, đ ấ c s d ng nhi u nh t là board Arduino
ể ớ ế ệ ứ ọ ớ Uno. Dòng này đã phát tri n t i th h th 3 v i tên g i là Arduino Uno Revision 3
Hình .1: Board Arduino Uno R3
(Arduino Uno R3).
ề ọ ể Vi đi u khi n ATmega328P (h 8 bit)
6
ớ ạ ệ ệ ệ i h n
ả ộ i 10 bit)
5V 712V 620V 14 (trong đó 6 chân PWM) 6 6 (đ phân gi 20 mA
ườ ườ ỗ ỗ 50 mA ạ ộ Đi n áp ho t đ ng Đi n áp vào khuyên dùng Đi n áp vào gi Digital I/O pin PWM Digital I/O Pins Analog Input Pins ệ ộ C ng đ dòng đi n trên m i I/O pin ệ ộ C ng đ dòng đi n trên m i 3.3V pin
ở ượ ử ụ Flash Memory c s d ng b i
ị
ố ơ ả
ả
B ng .1: Thông s c b n trên board Arduino Uno R3
SRAM EEPROM ố ộ T c đ xung nh p ề Chi u dài ề ộ Chi u r ng ượ ọ Tr ng l ng 32 KB (ATmega328P) 0.5 KB đ bootloader 2 KB (ATmega328P) 1 KB (ATmega328P) 16 MHz 68.6 mm 53.4 mm 25 g
7
ƯƠ
CH
NG 2
Ế Ệ Ố
Ế
Ề
Ể
THI T K H TH NG ĐI U KHI N
Ố Ộ Ộ
Ơ Ằ
T C Đ Đ NG C B NG PID
2.1. PID
ớ 2.1.1 Gi ệ i thi u PID
ộ ề ể ộ ề B đi u khi n PID (A proportional integral derivative controller) là b đi u
ể ử ụ ụ ể ề ể ề ậ ặ ậ ỹ ỹ khi n s d ng k thu t đi u khi n theo vòng l p d ng k thu t đi u khi n theo
ồ ế ượ ử ụ ệ ố ể ự ộ ề ặ ộ vòng l p có h i ti p đ c s d ng r ng rãi trong các h th ng đi u khi n t đ ng.
ộ ộ ề ố ắ ữ ệ ệ ể ệ ỉ M t b đi u khi n PID c g ng hi u ch nh sai l ch gi a tín hi u ngõ ra và ngõ vào
ể ề ư ệ ề ộ ộ ợ ỉ ể sau đó đ a ra m t m t tín hi u đi u khi n đ đi u ch nh quá trình cho phù h p.
ộ ề ể ể ượ ử ụ ể ề ộ B đi u khi n kinh đi n PID đã và đang đ ể c s d ng r ng rãi đ đi u khi n
ố ượ ả ề ấ ủ ả ẫ ở ơ các đ i t ng SISO b i vì tính đ n gi n c a nó c v c u trúc l n nguyên lý làm
ệ ấ ố ộ ề ệ ỉ ệ ố ớ vi c. B đi u ch nh này làm vi c r t t t trong các h th ng có quán tính l n nh ư
ệ ề ể ố ứ ề ề ể ể ế ộ đi u khi n t c đ , đi u khi n m c,... và trong các h đi u khi n tuy n tính hay có
ứ ộ ế ấ m c đ phi tuy n th p.
ế ổ ể ữ ề ể ấ ộ PID là m t trong nh ng lý thuy t c đi n và cũ nh t dùng cho đi u khi n tuy
ẫ ứ ụ ế ộ nhiên nó v n ng d ng r ng rãi cho đ n ngày nay.
ố ủ ộ ề ơ ồ ể S đ kh i c a b đi u khi n PID:
8
2.1.2. Hàm truy nề
ộ ề ể ầ ồ B đi u khi n g m có 3 thành ph n:
ệ ố ỷ ệ KP: h s t l
ệ ố KI : h s tích phân
ệ ố KD: h s vi phân
ệ ố ơ ồ ư ố Xét 1 h th ng có s đ kh i nh sau:
ộ ệ ố ố ủ ơ ồ Hình 2.2 S đ kh i c a m t h th ng
ố ượ ầ Plant: đ i t ể ề ng c n đi u khi n
ố ượ ư ể ệ ề ượ ế ế ể ệ ố Controller: đ a tín hi u đi u khi n đ i t ng, đ c thi ạ t k đ h th ng đ t
ứ ố đáp ng mong mu n .
ữ ệ ệ ệ ế ầ ố ị Bi n e là thành ph n sai l ch, là hi u gi a giá tr tín hi u vào mong mu n và
ự ế ệ ẽ ư ớ ộ ể ệ tín hi u ra th c t ệ . Tín hi u sai l ch (e) s đ a t ộ ề i b PID, và b đi u khi n tính
ủ ộ ề ủ ệ ẫ ả ầ ể toán c thành ph n tích phân l n vi phân c a (e). Tín hi u ra (u) c a b đi u khi n
b ng:ằ
ố ượ ề ể ệ ệ Lúc này đ i t ng đi u khi n có tín hi u vào là (u), và tín hi u ra là (Y). (Y)
ộ ề ề ằ ế ệ ả ượ ồ ế đ ể ể ế ụ c h i ti p v b ng các c m bi n đ ti p t c tính sai l ch (e). Và b đi u khi n
ư ạ ế ụ l i ti p t c nh trên.
ộ ề ể ặ 2.1.3. Đ c tính b đi u khi n PID
ầ ỉ ệ ụ ứ ủ ệ ộ Thành ph n t l ố (Kp) có tác d ng làm tăng t c đ đáp ng c a h , và làm
ả ệ ậ ủ ệ ố ứ gi m ch không tri t tiêu sai s xác l p c a h (steadystate error).
ụ ầ ệ ư ậ ố Thành ph n tích phân (Ki) có tác d ng tri t tiêu sai s xác l p nh ng có th ể
ố ộ ứ ả ủ ệ làm gi m t c đ đáp ng c a h .
9
ộ ọ ố ệ ố ộ ổ ả ầ ị Thành ph n vi phân (Kd) làm tăng đ n đ nh h th ng, gi m đ v t l và
ệ ố ộ ứ ủ ệ ả c i thi n t c đ đáp ng c a h .
Ả ưở ố ớ ệ ủ ầ ượ ắ nh h ng c a các thành ph n Kp, Ki, Kd đ i v i h kín đ c tóm t t trong
ả b ng sau:
ờ
ỏ Đáp ngứ vòng kín KP ờ Th i gian lên Gi mả V tọ lố Tăng Th i gian xác l pậ Thay đ i nhổ
KI Gi mả Tăng Tăng
KD Gi mả Gi mả Thay đ iổ nhỏ Sai s xácố l pậ Gi mả Thay đ iổ nhỏ Thay đ iổ nhỏ
ệ ố ư ệ ả ằ L u ý r ng quan h này không ph i chính xác tuy t đ i vì Kp, Ki và Kd còn
ự ế ụ ộ ể ả ầ ộ ổ ưở ph thu c vào nhau. Trên th c t , thay đ i m t thành ph n có th nh h ế ng đ n
ầ ạ ả ả ậ ọ ỉ hai thành ph n còn l ụ i. Vì v y b ng trên ch có tác d ng tham kh o khi ch n Kp, Ki,
Kd.
10
ơ ồ ố ệ ố
2.2. S đ kh i h th ng
ộ ệ ạ ủ ậ ố ử ề ặ ơ ộ ị ể i c a đ ng c . Và đi u khi n PC: G i giá tr cài đ t và nh n t c đ hi n t
ạ ủ ệ ố ừ ạ ặ ch y ho c ng ng ch y c a h th ng.
ộ ề ể ớ ả ậ ị ặ ậ i thu t PID, nh n giá tr cài đ t Arduino Uno: B đi u khi n trung tâm v i gi
ề ể ộ ơ ừ t máy tính. Đi u khi n đ ng c qua L298N, thông qua encoder l y t c đ hi n t ấ ố ộ ệ ạ i
ể ị ử g i cho máy tính và hi n th lên LCD.
ụ ứ ệ ệ ề ể ệ ậ L298N: có nhi m v nh n tín hi u xung PWM, đi u khi n m c đi n áp vào
ơ ộ đ ng c .
ự ứ ấ ộ ơ ộ ệ DC Servo, Encoder: D a vào m c đi n áp mà L298N c p vào đ ng c , đ ng
ể ấ ố ạ ộ ớ ố ộ ề ộ ố ơ c ho t đ ng v i t c đ mong mu n. Encoder dùng đ l y t c đ v cho Arduino
Uno.
11
ư ồ ả
2.3. L u đ gi
ậ i thu t
12
ể
ề
ệ
ầ
ề 2.4 Giao di n ph n m m đi u khi n trên PC
13