ƯỜ

Ộ 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: DSE38BE27­001

ệ ấ ộ ơ Đ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 7­12V 6­20V 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  (steady­state 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