L ời cả mơ n
b) Thuật toỏn PID số
3.1.1. Thụng số kĩ thuậ t
Hỡnh 3.1 Động cơ sủ dụng trong đồ ỏn
Chỳng ta sử dụng Servo Motor với cỏc thụng số cơ bản như sau: - Điện ỏp nguồntối đa là 24V.
- Tốc độ tối đa là 3000 vũng/phỳt.
- Cú gắn liền Encoder quang tương đối 100xung . - Cụng suất 30-50w.
3.1.2. Nhận dạng mụ hỡnh động học của động cơđiện một chiều
Cấu trỳc mụhỡnh động học của đọng cơ điện được đề suất tài liệu tham khảo [3], [4], [6] cú mụ hỡnh dạng: 2 DT ) ( * 2 1 ) ( W Ts Ts K s + + = η (3-1)
Cỏc tham số mụ hỡnh động cơ điện một chiều sẽ được nhận dạng từ thực nghiệm và giới thiệu trong phần tiếp theo.
3.1.3. Thu thập dừ liệu vào/ra của động cơđiện một chiều từ thựcnghiệm
Chỳng ta sử dụng kit điều khiển để thu thập dữ liệu nhận dạng động cơ điện một chiều theo mụ hỡnh :
Hỡnh 3.2 Đặc tớnh thu thập dữ liệu nhận dạng
Trong giao điện phần mềm giỏm sỏt hệ thống chỳng ta cú thể lấy trực tiếp dữ liệu vào/ra xuất ra file định dạng Exel. Như vậy chỳng ta cú tập dữ liệu đối tưọng lưu trờn file: ’C:\data.xls’. Chỳng ta hồn tồn cú thể chuyển dữ liệu dạng khỏc để sử dụng nhạn dạng như file ‘.mat’, ‘.dat’… Matlab vẫn hỗ trợ cỏc dữ liệu định dạng này.
Khi thu thập dữ liệu đối tượng ta cho điện ỏp dầu vào động cơ là 9V, thời gian trớch mầu 5ms .
3.1.4. Nhận dạng động cơ điờn một chiều bằng Toolbox Identification cảu Matlab
Sau khi thu thập dữ liệu vào ra của động cơ ta tiến hành nhận dạng đối tượng sử dụng toolbox của Matlab (System Identification toolbox) . Khi nhận dạng đối tượng sử dụng dữ liệu trong miền thời gian Time – Domain Data. Cỏc bước tiến hành nhận dạng trờn Matlab túm lược như sau :
Cỏc cõu lệnh để tiến hành nhận dạng dữ liệu trong cửa sổ Matlab: >> X=xlsread('D:\data.xls',1) // Đọc dữ liệu lưu trong data1.xls >> u1=X(:,1) // Đầu vào điện ỏp bước nhảy >> y1=X(:,2) // đầu ra tốc độ y1
>> save identdata u1 y1 // lưu file dữ liệu dưới dạng identdata.mat >> ident // mở của sổ nhận dạng
Hỡnh 3.3Chọn đầu vào và mụ hỡnh nhận dạng của đối tượng
Hỡnh 3.4Phương thức nhận dạng và đỏnh giỏ mụ hỡnh thu được
Sau khi tiến hành nhận dạng chỳng ta thu được mụ hỡnh của đối tượng vúi hàm
truyền: DT 2 ) ( * 2 1 ) ( W Ts Ts K s + + = η Với η=0.31528 ,T=0.0057876 , K=138.67
Hỡnh 3.5 Đặc tớnh quỏ độđối tượng sau khi nhận dang 3.1.5. Đỏnh giỏ chất lượng mụ hỡnh
Cũng trong Toolbox này Matlab cũn cho ta thấy sai lệch tương đối giữa đối tượng nhận dạng và tập dừ liệu ban đầu thu thập được.
Hỡnh 3.6 Sai lệch mụ hỡnh nhận dạng
Cú thể đỏnh giỏ sai lệch mụ hỡnh thực đối tượng là khoảng 5.5% làcú thể chấp nhận được. Mụ hỡnh đố tượng động cơ điện một chiều chỳng ta nhận dạng được là khỏ chớnh xỏc.
3.2 Thiết kế luật điều khiển PID
3.2.1. Phương phỏp Ziegler-Nichols1
Để thiết kế bộ điều khiển PID ta dựng phương phỏp Ziegler – Nichols thứ nhất dựa trờn cơ sở đặc tớnh của đối tượng .
Từ hỡnh vẽ trờn ta cú L = 0,00375 ; T = 0,041và hệ số k = 71.2 Kp= 0.16
Ti = 0.0075 Td = 0.0019
3.2.2. Phương phỏp IMC
Phương phỏp này cú ưu điểm là thiết kế tớnh toỏn cỏc tham số bộ điều khiển PID cho từng loại mụ hỡnh đối tượng khỏc nahu qua một số biểu thức trung gian. Chỳng ta sử dụng phương phỏp này cho đối tượng động cơ một chiều là vỡ nú đĩ cú sẵn luật thiết kế .Đối tượng động cơ điện một chiều cú mụ hỡnh :
2 DT ) ( * 2 1 ) ( W Ts Ts K s + + = η Với η=0.31528 ,T=0.0057876 , K=138.67 Ta cú : Chon tc=0.06 Kp=Ti/(tc*K)= 0.0004 Ti=2*η*T=0.00365=>Ki=0.12 Td=T/(2*η)=0.092=>Kd=0.000037
3.2.3. Mụ phỏng và đỏnh giỏ chất lượng bộ điều khiển
Mụ hỡnh Simulink:
Hỡnh 3.7 Mụ phỏng trờn Simulink cỏc phương phỏp điều khiển
Hỡnh 3.9 Đặc tớnh mụ phỏng
Rừ dàng hai phương phỏp đều cho đặc tớnh hệ thống sai lệch và đoọ quỏ điều chỉnh bằng khụng nhưng IMC cho ta thời gian quỏ độ Tqd=140ms, cũn Ziegler- Nichols cho Tqd=230ms. Như vậy phương phỏp IMC cho ta kết quả tốt hơn.
3.3 Thiết bị chấp hành(IC L298)
Đảm nhiệm vai trũ thiết bị chấp hành trong hệ thống điều khiển thực thi thuật toỏn điều khiển là mạch cụng suất L298.L298 là một Driver tớch hợp sẵn 2 mạch cầu H bờn trong với chuẩn điều khiển TTL, khụng cú Diode nội bảo vệ Mosfet. Chịu tải tối đa trờn mỗi cầu là 2A, điện ỏp 40VDC. Logic “0” ở ngừ vào lờn tới 1.5V ( khả năng khử nhiễu cao). Sử dụng dạng đúng gúi Multiwatt15.
Một số đặc điểm của mạch cụng suất L298: Điện ỏp cấp lờn đến 46V
• Tổng dũng DC chịu đựng lờn đến 4A • Chức năng bảo vệ quỏ nhiệt
Hỡnh 3.10 Sơđồ chõn L298
Chức năng cỏc chõn :
MW.15 Power SO Tờn Chức năng 1.15 2;19 Sense A
sense B
Nối chõn này qua điện trở cảm ứng dũng xuống GND để điều khiển dũng tải .
2;3 4;5 Out1 Out2
Ngừ ra của cầu A . Dũng của tải mắc giữa 2 chõn này được qui định bởi chõn 1.
4 6 Vs Chõn cấp nguồn cho tầng cụng suất. Cần cú một tụ điện khụng cảm khỏng 100nF nối giữa chõn này và chõn GND
5;7 7;9 Input1 Input2
Chõn ngừ vào của cầu A, tương thớch chuẩn TTL
6;11 8;14 EnableA EnableB
Chõn ngừ vào enable (cho phộp) tương thớch chuẩn TTL. Mức thấp ở chõn này sẽ cấm (disable) ngừ ra cầu A (đối với chõn EnableA) và/hoặc cầu B ( đối với chõn EnableB)
8 1;10;11;20 GND Chõn đất (Ground)
9 12 VSS Chõn cấp nguồn cho khối logic. Cần cú tụ điện 100nF nối giữa chõn này với GND
10;12 13;15 Input3 Input4
Cỏc chõn logic ngừ vào của cầu B
13;14 16;17 Output3
Output4 Ngừ ra của cầu B. Dũng của tải mắc giữa hai chõn này được qui định bởi chõn 15. - 3;18 N.C Khụng kết nối .
Hỡnh 3.11: Cỏc chếđộ của L298
Hai chõn C,D của L298 để điều khiển chiều động cơ, phanh động cơ. Chõn Enable của L298 dựng làm đầu vào băm xung PWM cho động cơ để cú thể điều khiển tốc độ động cơ.
Bảng chế độ của trong quỏ trỡnh điều khiển động cơ :
Đầu vào Chức năng
M1A=1; M1B=0 Tiến động cơ M1A=0; M1B=1 Lựi động cơ M1E=1
M1A=M1B Dừng khẩn cấp (phanh)
M1E=0 M1A=X; M1B=X Dừng khụng phanh
Trong thực tế ứng dụng này, động cơ DC chỉ cú dũng tải 200mA khi hoạt động bỡnh thường, và lờn đến tối đa 2A khi quỏ tải. Tuy nhiờn cũng cần thiết kế một bộ điều khiển mở cú thể sử dụng cho cỏc động cơ lờn đến 4A.
Việc hạn chế dũng cho động cơ là rất cần thiết, cú nhiều tỡnh huống khụng mong đợi xảy ra, vỡ vậy cần phải cú chế độ hạn dũng bằng phần mềm.
Trong cỏc trường hợp nguy hiểm như ngắn mạch do va chạm, hoặc tuột dõy nối, cần cú mạch bảo vệ chống ngắn mạch bằng phần cứng để đỏp ứng kịp thời.
Cần điều khiển PWM ở tần số cao để trỏnh tiếng ồn do động cơ tạo ra, nhất là những tiếng kờu nghe rất rừ ở khoảng tần số 1KHz đến 3KHz. Bộ điều khiển PWM thụng thường được điều khiển ở 5KHz.Nối song song hai cầu H để điều khiển động cơ lờn đến 4A.
Hỡnh 3.12 : Sơđồ giải phỏp
L298 khụng cú Diode nội bảo vệ, do đú cần cú 4 Diode ngồi bảo vệ. Để đảm bảo điều khiển PWM ở tần số cao, cần dựng Diode nhanh cú điện trở thấp. Diode chuyờn dụng để điều khiển động cơ là cỏc Diode “fast recovery Schottky”. Nhưng ở tần số khoảng 5KHz vẫn cú thể dựng loại 1N4007.
Lưu ý rằng, khi hoạt động L298 rất núng, do vậy cần cần phải lắp miếng tản nhiệt.
Hai chõn RC0 và RC1 để điều khiển chiều quay của động cơ: + ) RC0 = 1 và RC1 = 0 quay thuận
+ ) RC0 = 0 và RC1 = 1 quay nghịch
+ ) RC0 = RC1 = 0 hoặc RC0 = RC1 = 1 động cơ dừng quay
Chõn PWM được đưa vào chõn Enable của L298, do vậy chỉ cần điều chỉnh độ lớn của Dutycycle của PWM ta cú thể điều chỉnh được điện ỏp đầu ra của L298 đưa vào động cơ ( 0V : 12V ).
3.4 Cảm biến (Encoder)
Nguyẽn lyự hoát ủoọng cuỷa caỷm bieỏn encoder : coự nhiều loái encoder khaực nhau như : Encoder tieỏp xuực, Encoder tửứ trửụứng, Encoder quang (Encoder quang tửụng ủoỏi vaứ Encoder quang tuyeọt ủoỏi). Moĩi loái lái coự moọt nguyẽn lyự hoát ủoọng khaực nhau, trong khuõn khoồ baựo caựo ủồ aựn chổ trỡnh baứy phần nguyẽn lyự loái encoder sửỷ dúng laứ Encoder quang tửụng ủoỏi ( incremental encoder).
Mõ hỡnh thửự 1
Incremental encoder về cụ baỷn laứ moọt ủúa troứn quay quanh moọt trúc ủửụùc ủúc loĩ nhử hỡnh trẽn.
Hỡnh 3.14 : Phương thức hoạt động Encoder quang tương đối
ễÛ 2 bẽn maởt cuỷa caựi ủúa troứn ủoự, seừ coự moọt boọ thu phaựt quang. Trong quaự trỡnh encoder quay quanh trúc, neỏu gaởp loĩ roỏng thỡ aựnh saựng chieỏu qua ủửụùc, neỏu gaởp maừnh chaộn thỡ tia saựng khõng chieỏu quaự ủửụùc. Do ủoự tớn hieọu nhaọn ủửụùc tửứ sensor quang laứ moọt chuoồi xung. Moĩi encoder ủửụùc cheỏ táo seừ bieỏt saỹn soỏ xung trẽn moọt voứng. Do ủoự ta coự theồ duứng vi ủiều khieồn ủeỏm soỏ xung ủoự trong moọt ủụn vũ thụứi gian vaứ tớnh ra toỏc ủoọ ủoọng cụ.
Caựi encoder maứ em sửỷ dúng trong ủồ aựn cuỷa mỡnh, hoaứn toaứn gioỏng vụựi mõ hỡnh ụỷ trẽn. Tuy nhiẽn, mõ hỡnh trẽn coự nhửụùc ủieồm lụựn laứ : ta khõng theồ xaực ủũnh ủửụùc ủoọng cụ quay traựi hay quay phaỷi, vỡ coự quay theo chiều naứo ủi nửừa thỡ chổ coự moọt dáng xung ủửa ra. Ngoaứi ra ủieồm baột ủầu cuỷa ủoọng cụ, ta cuừng khõng theồ naứo bieỏt ủửụùc.
Caỷi tieỏn mõ hỡnh 1 baống mõ hỡnh 2 nhử sau:
Mõ hỡnh thửự 2
Trong mõ hỡnh naứy, ngửụứi ta ủúc taỏt caỷ laứ 2 voứng loĩ. Voứng ngoaứi cuứng gioỏng nhử mõ hỡnh 1, voứng giửừa pha so vụựi voứng ngoaứi laứ 90 ủoọ. Khi ủoự, dáng xung ra tửứ 2 voứng trẽn nhử sau :
Hỡnh 3.16 : Sơđồ xung của En coder quang tương đối(mụ hỡnh 2)
Hai xung ủửa ra tửứ 2 voứng leọch nhau 90 ủoọ, neỏu voứng ngoaứi nhanh pha hụn voứng trong thỡ chaộc chaộn ủoọng cụ quay tửứ traựi sang phaỷi vaứ ngửụùc lái.
Moọt loĩ ụỷ voứng trong cuứng duứng ủeồ phaựt hieọn ủieồm baột ủầu cuỷa ủoọng cụ. Coự theồ vieỏt chửụng trỡnh cho vi ủiều khieồn nhaọn bieỏt : neỏu coự moọt xung phaựt ra tửứ voứng trong cuứng naứy, tửực laứ ủoọng cụ ủaừ quay ủuựng moọt voứng.
Vụựi nhửừng ủaởc tớnh trẽn, encoder duứng raỏt phoồ bieỏn trong vieọc xaực ủũnh vũ trớ goực cuỷa ủoọng cụ…..
Vaỏn ủề quan tróng trong vieọc tỡm mua nhửừng loái ủoọng cụ coự gaộn encoder nhử theỏ naứy ủeồ laứm ủồ aựn ủoỏi vụựi sinh viẽn laứ : caởp maột quang 2 bẽn encoder ủeồ táo xung thửụứng bũ cheỏt vaứ khõng coự ủồ thay theỏ.
Moọt loái encoder thửự 2 cuừng phoồ bieỏn hieọn nay, ủoự laứ :absolute encoder. Mõ hỡnh ủúa quang cuỷa loái naứy nhử sau:
Cỏch tớnh tốc độđộng sơ sử dụng trong đồ ỏn
Ở đồ ỏn động cơ được gắn Encoder 100 xung/vũng.
Hai kờnh xung A và B được đưa vào hai chõn ngắt của VĐK là INT1 , INT2. Ta thiết lập khi cú sườn xuống thỡ tạo ngắt. Do vậy tổng số xung trờn 1 vũng sẽ được nhõn đụi lờn thành 200 xung.
Cỏch tớnh tốc độ : Tốc độ = (Counter*60)/(200*T) Ở đõy:
T : là chu kỳ trớch mẫu
Counter : là số xung đếm được trong khoảng thời gian T Trong đồ ỏn sử dụng T = 0.02 s nờn : Tốc độ = Counter * 15
3.5 Hệ thống điều khiển
Trờn cơ sỏ thiết kế bộ điều khiển PID số chương 2 chỳng ta cú thể khỏi quỏt hệ thống điều khiển động cơ điện một chiều cú dạng:
Hỡnh 3.17 Sơđồ hệ thốngđiều khiển động cơ
Cơ sở nguyờn lý thực hiện sơ đồ điều khiển tốc độ động cơ :
- Thực hiện điều khiển động cơ bằng bộ điều khiển thiết kế cài dặt trờn vi điều khiển.
- Sử dụng encoder quang tương đối dựng dể phản hồi tốc độ động cơ.
- Giao tiếp mỏy tớnh qua chuẩn RS232 thụng qua modul trờn mcạh điều khiển hiển thị đặc tớnh hệ thống theo phương phỏp điều chế độ rộng xung PWM. - Trờn mạch cú khối hiển thị LCD hiển thị cỏc chế độ hoạt động động cơ cựng
như cỏc thụng số: tốc độ , điện ỏp điều khiển…
3.6 Một số hỡnh ảnh về Kit điều khiển động cơ sử dụng vi điều khiển PIC khiển PIC
3.7 :Kết quả thực nghiệm
Bộđiều khiển PI
Hỡnh 3.20 Đặc tớnh với bộđiều khiển PI Bộđiều khiển PID
Hỡnh 3.22 Hệ thống khi cú nhiễu
Hỡnh 3.23 Đặc tớnh khi hệ thống cú thay đỏi giỏ trịđặt
3.8 So sỏnh kết quả mụ phỏng và thực tế
Dựa trờn kết quả mụ phỏng trờn Matlab và trờn giao diện chương trỡnh ta cú thể đỏnh giỏ:
- Đặc tớnh hệ thống sau thực hiện bộ điều khiển là tương đối tốt đỏp ứng chỉ tiờu chất lượng : độ quỏ điều chỉnh nhỏ, thũi gian qua độ nhỏ khồn 200-600ms - Trờn giao diện chương trỡnh vẫn thấy rừ sai lệch so mụ phỏng Matlab: đặc tớnh
chưa thật mịn, và vẫn tồn tại sai số so với tốc độ đặt khoảng sai số dao động từ 2% tới 10%.
Kết luận
Cỏc kết quảđạt được
Trờn cơ sở thiết kế phần cứng và phần mềm khi thực hiện đồ ỏn đĩ đạt được một số kết quả sau:
- Về phần cứng: Tỡm hiểu về vi điều khiển Pic
- Đi sõu tỡm hiểu một số thuật toỏn điều khiển như bộ điều khiển PID, bộ điều khiển mờ…
- Nhận dạng và mụ phỏng đối tượng điều khiển (động cơ một chiốu kớch từ độc lập) trờn Matlab.
- Thiết kế kit phần cứng cho vi điều khiển Pic 18F4520 cú khả năng điều khiển nhiều đối tượng (động cơ một chiều. lũ nhiệt…). với cỏc thuật toỏn điều khiển khỏc nhau
- Tạo được giao diện và giao tiếp được PC và vi điều khiển trung tõm
Một sốđiểm hạn chế
Trong gian đoạn làm đồ ỏn, chỳng em đĩ rất cố gắng nghiờn cứu, thiết kế để cú được những kết quả đĩ nờu trờn. Tuy nhiờn do thời gian và kiến thức của chỳng em cú hạn, mặt khỏc một số điều kiện về thiết bị khụng cho phộp nờn trong đồ ỏn cũn những hạn chế :
- Sử dụng Encoder cú độ phõn giải chưa cao nờn vẫn gõy ra nhiều sai số trong quỏ trỡnh tớnh toỏn.
- Pic 18F4520 là dũng vi điều khiển 8 bits cú tốc độ tớnh toỏn và bộ nhớ chương trỡnh khụng lớn nờn khú ỏp dụng cho những bộ điều khiển cần nhiều bộ nhớ như : bộ điều khiển mờ...
- Kết quả thu được vẫn cú sai số so với mụ hỡnh lý tưởng thiết kế trờn Matlab. - Một số modul trờn Kit chưa được khai thỏc.
Hướng khắc phục cỏc điểm hạn chế
Dựa trờn cơ sỏ hạn chế chỳng ta cú hướng khắc phục :
- Cú thể sử dụng động cơ cú encoder 500 xung/vũng hoặc 1000 xung/vũng để khắc phục sai số .
- Sử dụng dũng Pic 16 bits, 32 bits...
Hướng phỏt triển đề tài
- Thiết kế bộ điều khiển thớch nghi PID, bộ điều khiển mờ học theo mụ hỡnh mẫu : FMRLC, hoặc bộ điều khiển ứng dụng mạng Nơron.
- Mở rộng thờm cỏc đối tượng thực mà Kit cú thể làm việc được như lũ nhiệt, bỡnh mức…
Do lớ do về thời gian những lớ do khỏch quan khỏc nờn đồ ỏn được thực hiện vẫn cũn nhiều khiếm khuyết. Chỳng em rất mong nhận được nhũng ý kiến đúng gúp quý bỏu của cỏc thầy cụ.