3.4.1 Cấu trúc hệ điều khiển
Hầu hết các hệ thống hiện nay đều là hệ thống điều khiển vòng hở hoặc vòng kín. Bất cứ một hệ thống tự động điều chỉnh nào cũng đòi hỏi đại lượng điều chỉnh phải bám chính xác tín hiệu điều khiển trong chế độ xác lập, tựa xác lập và quá độ.
Đối với hệ thống điều khiển vòng hở thì tín hiệu đầu ra không bám theo tín hiệu đặt, nói một cách khác là sai lệch điều khiển lớn, do vậy hệ có chất lượng điều khiển không tốt, nhưng hệ hở đơn giản và dễ điều khiển.
Để tăng chất lượng điều khiển thì các hệ điều khiển vòng kín được sử dụng rộng rãi, tín hiệu ra được phản hồi để so sánh với tín hiệu đặt, để khử sai lệch sao cho tín hiệu ra bám theo tín hiệu đặt.
Hình 3.16: Sơ đồ khối hệ điều khiển vòng kín
Hàm truyền của bộ điều khiển PID có dạng:
2 I P I D P D K K s K K s K K s s s + + + + =
Hàm truyền của beam-ball được xác định từ công thức
2 2 ( ) 1 ( ) ( ) P s mgd G s I s L m s r = = − Θ + ÷
3.4.2 Thiết kế bộ điều khiển PID cho bài toán beam and ball
53
Hình3.17. Mô hình beam and ball
Bảng 3.5: Thông số kỹ thuật của hệ beam-ball
Stt Tên thông số Ký hiệu Đơn vị Ghi chú
1 Trọng lượng quả bóng m 0.14kg
2 Bán kính quả bóng r 0.016m
3 Mômen quán tính của quả bóng I 1.43.e-5
Kg.m2
4 Chiều dài cách tay đòn (beam) L 0.9 m
5 Khoảng cách giữa tâm hộp số và vị trí gắn cách tay nâng
d 0.04 m
6 Góc giữa tay đòn và mặt ngang α rad
7 Góc của vị trí khớp gắn cách tay nâng và hộp số động cơ
θ rad
3.3.2.1 Chọn phương pháp tổng hợp
Qua phân tích các phương pháp tổng hợp bộ PID và yêu cầu bài toán ta thấy. bộ điều khiển cần tổng hợp là bộ PID số. Hệ thống có hàm truyền xác định.
Tuy nhiên hàm truyền của hệ thống có dạng ko ổn định và không có dạng chữ S như yêu cầu của phương pháp Takahashi xác định từ hàm quá độ của đối tượng. Vì vậy ta xác định bộ PID số này bằng phương pháp dao động.
3.3.2.2 Xác định từ thực ngiệm
Hình 3.18: sơ đồ khối hệ thống điều khiển beam-ball
Ta sẽ phân tích từng thành phần của hệ thống:
- Bộ điều khiển PID: ở đây là bộ PID số. với đầu vào là tín hiệu xđ là giá trị mà ta đặt cho quả bóng với mong muốn quả bóng về vị trí đó.
- GZOH(s) thành phần biến đổi Tương tự- số.
- Kdc là một khâu khuếch đại rút gọn của độn cơ Rc servo. Với đầu vào là độ rộng xung D tương ứng với đầu ra là 1 góc θ.
- G(s) là hàm truyền hệ thống beam-ball nhận đầu vào là góc θ và đầu ra là vị trí x của quả bóng
Trong hệ thống này chúng ta có hàm truyền đạt của S(s) kdc và GZOH(s) tuy nhiên với phương pháp này chúng ta không cần quan tâm đến hàm truyền hệ thống. Đối tượng ở đây là 1 hệ thống gồm bộ chuyển đổi tương tự- số, động cơ, hệ beam-ball. Còn bộ điều khiển PID được thay bằng một bộ khuếch đại.
Đây là phương pháp xác định giá trị tới hạn của Takahashi . Chúng ta thay bộ điều khiển PID trong hệ kín thành một bộ khuếch đại k và thực hiện thay đổi giá trị k này cho đến khi đạt giá trị tới hạn kth . Khi đó hệ kín dao động điều hòa. Ở mô hình này viên bi sẽ di chuyển qua lại quanh điểm đặt xd với biên độ dao
55
động không đổi theo thời gian. Và có thể coi là dao động điều hòa. Khi đó ta chọn được giá trị kth qua đó xác định được bộ tham số PID như sau
- Nếu chỉ sử dụng bộ P số: kp =0.5 kth
- Nếu dử dụng bộ PI số : kp=0.45kth và TI =0.83 Tth
- Nếu sử dụng bộ PID số thì : kp= 0.6 kth ,TI= 0.83Tth và TD=0.125 Tth
3.3.2.3 Xác định từ mathematical laborary
Hàm truyền của bộ điều khiển PID có dạng:
2 I P I D s P D K K s K K s C K K s s s + + = + + =
Hàm truyền trên được viết về dạng s (laplace) . Để sử dụng bộ điều khiển PID số ta cần chuyển về dạng Z 2 2 ( ) ( 2 ) 1 1 p i d p d d z p i d K K K z K K z K z z C K K K z z z z + + − + + − = + + = − − Hệ thống của chúng ta như hình 3.19 Hình 3.19: Sơ đồ khối hệ thống
Bộ điều khiển PID. Hàm trích mẫu GOH vớiGOH 1 e Ts s
−
−
= trong đó T là thời gian lấy mẫu. Động cơ RC Servo với hàm truyền là Gdc ở đây động cơ được biểu thị bằng hệ số kdc coi động cơ như 1 khâu khuếch đại với hệ số khuếch đại là kdc
vậy bây giờ ta tổng hợp bộ điều khiển PID cho Gh =GOH.G Gdc. s
2 2 1 1 . .[ ] Ts h dc e mgd G k I s L m s r − − = − + ÷
3 2 1 1 . . [ ] h dc z mgd G k I z L m s r ς − = − + ÷
Để chuyển từ hàm liên tục sang rời rạc ta dung chức năng C2D trong matlap. Để sử dụng chức năng này ta cần xác định 3 thông số. hàm truyền hệ thống, thời gian lấy mẫu và phương pháp. ở đây ta chọn tần số lấy mẫu là 50Hz tức chu kỳ lấy mẫu là 1/50s. phương pháp dung là zero-order hold (‘zoh’) . Ta
sử dụng C2D cho phần 3 2 1 mgd I s L m r − + ÷
Tạo 1 m-file trong matlap và gõ lệnh như sau
m = 0.14; // khối lượng quả bóng R = 0.016; // bán kính quả bóng g = -9.8; // gia tốc trọng trường L = 0.9; // chiều dài thanh dầm d = 0.04; // chiều dài khâu 4
I = 1.43e-5; //mo men quan tính của quả bóng s = tf('s');
P_ball = -m*g*d/L/(I/R^2+m)/s^3; // hàm truyền hệ beam ball
Ts = 1/50; // thời gian lấy mẫu ball_d = c2d(P_ball,Ts,'zoh') // biến đổi z
Kết quả ta được hàm chuyển đổi sang hệ z là
4.151e-007 z^2 + 1.66e-006 z + 4.151e-007
--- z^3 - 3 z^2 + 3 z - 1 Vậy 7 2 3 2 1. .10 (4.151. 16.6. 4.151) 3 3 1 h dc z z z G k z z z z − − + + = − + −
57 7 3 2 4 3 2 10 (4.151. 12.499. 12.499 4.151) . 3 3 h dc z z z G k z z z z − + − − = − + −
Động cơ là 1 thành phần khuếch đại. với độ rộng xung là t=1ms thì góc của động cơ là –π/2 với độ rộng xung là 1,5ms thì góc quay của động cơ là 0 và với độ rộng xung 2ms thì góc quay của động cơ là π/2 dễ dàng nhận thấy hàm tuyền động cơ là π.(t-1.5)=θ vậy kdc= π
Để xem đáp ứng của quả bóng ta thêm vào m-file đoạn lệnh sau
numDz = pi* 0.0000001*[4.15112.499 -12.499 -4.151]; denDz = [1 -33 -1 0]; Ts = 1/50; ball_d = tf(numDz,denDz,Ts); [x,t] = step(0.25*ball_d,5); stairs(t,x)// đáp ứng của hệ thống Hình 3.20: Đáp ứng của hệ hở Ta nhận xét rằng hệ thống không ổn định.
Bây giờ chúng ta sẽ thêm khâu điều khiển tỉ lệ (Kp) vào hệ thống và xem đáp ứng của hệ thống . chọn Kp= 100 . Nhập các lệnh sau đây vào một m-file và chạy nó trong cửa sổ lệnh.
Ts = 1/50; z = tf('z',Ts);
dP_ball = pi*0.0000001*(4.151*z^3 +12.499*z^2 -12.499*z -4.151)/(z^4 - 3*z^3 + 3*z^2-z);
Kp=100; //chọn Kp=100 sys_cl = feedback(Kp*dP_ball,1); //hệ kín với Kp
[x,t] = step(0.25*sys_cl,20); stairs(t,x)
Hình 3.21: Đáp ứng của hệ thống với Kp=100
Như vậy: việc thêm bộ điều khiển P với Kp= 100 vào vẫn không làm cho hệ thống ổn định. Biên độ dao động ngày càng rộng ra vậy ta cần chọn Kp nhỏ hơn. Thử với Kp=10 ta có đáp ứng như sau
59
Hình 3.22: Đáp ứng của hệ thống với Kp=10
Vẫn chưa có dao động điều hòa ta cần giảm Kp thêm nữa lần này ta chọn Kp=3. Đáp ứng của hệ thống như sau
Hình 3.23: Đáp ứng hệ thống với Kp=3
Như vậy với Kp=3 ta có hệ thống dao động điều hòa có nghĩa là Kth=3 xét trên đồ thị ta thấy Tth=25(s) vậy theo công thức của Ziegler-Nichol2 chọn
Bảng 3.4: Các công thức xác định theo phương pháp Ziegler-Nichols 2 Bộ điều khiển Kc Ti Td P 0.5Kth ... …. PI 0.4Kth 0.8Tth …. PID 0.6Kth 0.5Tth 0.125Tth Vậy ta có thể chọn Kp=0.6*3= 1.8 TI= 0.5 Tth= 0.5*25=12.5 TD= 0.125 Tth= 0.125*25=3.13 Vậy ta có Kp=1.8, TI=12.5, TD=3.13. Hay Kp=1.8, KI=1.8/12.5=0.144 , KD=3.13*1.8=5.634 Để kiểm tra tham số vừa chọn có phù hợp hay không ta gõ dòng lệnh sau vào trong matlap và chạy nó m = 0.14; R = 0.016; g = -9.8; L = 0.9; d = 0.04; I = 1.43e-5; s = tf('s');
P_ball = -m*g*d/L/(I/R^2+m)/s^2; // hàm truyền theo phương pháp tương tự Kp=1.8; Ki=0.144; Kd=5.634; contr=tf([Kd Kp Ki],[1 0]); sys_cl=feedback(contr*P_ball,1); step(sys_cl)
61
Hình 3.24: Đáp ứng của hệ thống khi thay bộ PID đã chọn
Nhận xét: Hệ thống đáp ứng điều kiện ổn định với độ quá điều chỉnh là 4.78%, thời gian xác lập là 4.5 s
Vậy bộ tham số Hay Kp=1.8, KI=0.144 , KD=5.634 đã chọn là phù hợp
CHƯƠNG IV. THIẾT KẾ VÀ CHẾ TẠO BỘ ĐIỀU KHIỂN THỬ NGHIỆM
4.1 Thiết kế bộ điều khiển
Bộ điều khiển gồm 4 thành phần cơ bản gồm bộ Vi điều khiển, động cơ RC servo, beam-ball, và cảm biến
Hình 4.1: Sơ đồ khối bộ điều khiển.
4.1.1 Bộ vi điều khiển.
Vi điều khiển là bộ phận trung tâm xử lý tín hiêu. Ở bài toán này bộ Vi điều khiển có nhiện vụ nhận các tham số của bộ PID. Chu kỳ lấy mẫu T, nhận giá trị Xđ và giá trị Xph từ cảm biến báo về. Sau đó hiển thị lên LCD và xuất xung PWM điều khiển động cơ servo. Để làm việc này ta có thể sử dụng vi điều khiển họ AVR và cụ thể ở đây ta dung chip AVR ATMEGA32. Chúng ta cùng tìm hiểu về họ vi điều khiển AVR
4.1.1.1 Giới thiệu qua về vi điều khiển AVR
AVR là họ vi điều khiển khá mạnh, tích hợp tính năng cao theo công nghệ RISC (Reduced Instroduction Set Computer).
Những đặc điểm nổi trội của AVR đso là tốc độ xử lý nhanh, nhiều tính năng, giao tiếp đơn giản, khả năng chống nhiễu tốt.
Những ưu điểm của AVR:
1 .Kiến trúc RISC với hầu hết các lệnh có chiều dài cố định, truy cập bộ nhớ nạp lưu dữ liệu và 32 thanh ghi đa năng.
2 .Kiến trúc đường ống lệnh kiểu 2 tầng làm tăng tốc độ thực thi lệnh.
3 .Có chứa nhiều bộ phận ngoại vi: giao tiếp SPI đồng bộ, các đường dẫn vào/ra (I/) lập trình được, giao tiếp I2C, bộ biến đổi ADC 10 bit, các kênh băm
63
xung PWM, chế độ sleep, standby, 1 bộ định thời watchdog, 3 bộ timer/counter 8 bit, 1 bộ timer/counter 16 bit, 1 bộ so sánh tương tự (analog)…
4 .Hầu hết các lệnh đều được thực hiện trong 1 chu kỳ xung nhịp.
5 .Hoạt động với tốc độ đồng hồ lên 16MHz, có thể đạt khả năng xử lý đến 16MPIS (16 triệu lệnh trong 1 giây).
6 .Bộ nhớ chương trình và dữ liệu tích hợp ngày trên chip. AVR có 3 công nghệ bộ nhớ khác nhau: EPROM (luôn lập trình mới được) xóa được kiểu flash, EEPROM xóa được bằng tín hiệu xung điện nhưng nội dung bộ nhớ vẫn giữ nguyên khi mất điện áp nguồn, RAM dùng cho các biến thông thường.
7 .Khả năng lập trình được trong hệ thống, do các thiết kế và công nghệ bộ nhớ có thể lập trình ngày trong khi đang được cấp nguồn trên mạch, không cần phải tháo chip ra như các vi điều khiển khác.
8 .Hỗ trợ lập trình bằng ngôn ngữ lập trình C.
9 .Điện áp làm việc thay đổi trong khoảng rộng từ 2.7V đến 6V.
4.1.1.2 Kiến trúc AVR
−Cổng vào ra: tất cả các bộ điều khiển AVR đều có một lượng lớn các cổng vào ra năm trong khoảng từ 3 bit đến 48 bit. Tất cả các cổng ra có thể cấp dòng khá lớn lên đến 20mA.
Tất cả các cổng vào ra đều có 3 địa chỉ vào ra đi kèm bao gồm DDRx, PORTx và PINx. Nếu DDRx=0 thì PORTx là ngõ nhập và PINx là thanh ghi dữ liệu nhận về. Nếu DDRx=1 thì PORTx là ngõ xuất.
−Bộ định thời trong vi điều khiển AVR có chức năng giống như một bộ định thời để đinh ra một khoảng thời gian nhất định hoặc hoạt động như một bộ đếm sự kiện.
−Bộ giao tiếp UART: được điều khiển bằng 2 chân RXD và TXD của AVR. Các tiêu chuẩn truyền cần tuân thủ trong khi truyền thông nối tiếp không đồng bộ:
• Khung truyền (Frame): bao gồm các quy định như số bit trong mỗi lần truyền, các bít “báo” Start và Stop, bit kiểm tra Parity và số lượng bit trong một data.
• Start bit: là bit đầu tiên được truyền trong một frame có chức năng báo rằng có một gói dữ liệu sắp được truyền đến.
• Data: là thông tin chính cần gửi và nhận, số lượng bit của data có thể là 5,6,7,8 hoặc 9.
• Parity bit: là bit kiểm tra dữ liệu truyền có đúng không (một cách tương đối)
• Stop bit: là một hoặc các bit báo rằng một gói dữ liệu đã được truyền xong.
−Cấu trúc ngắt: AVR có rất nhiều cấu trúc ngắt. Các sự kiện có thể xảy ra khi một ngắt xuất hiện là:
• Thiết bị ngoại vi ngắt bộ xử lý.
• Việc thực thi lệnh hiện tại được hoàn thành.
• Địa chỉ của lệnh tiếp theo được lưu trữ trên ngăn xếp.
• Địa chỉ của ISR (đoạn chương trình ngắt) được nạp vào bộ đếm chương trình.
• Bộ xử lý thực thi ISR.
• Việc hoàn thành các thao tác thực thi ISR được chỉ báo bằng lệnh RETI (trả lại từ ngắt).
• Bộ xử lý nạp bộ đếm chương trình với giá trị được lưu trữ trên ngăn xếp và việc thực thi chương trình bình thường lại được tiếp tục.
Ngoài ra, vi điều khiển AVR còn có các module khác như bộ so sánh Analog, bộ biến đổi A/D bên trong, bộ định thời Watchdog bên trong, chế độ hoạt động tiết kiệm năng lượng.
4.1.2 Động cơ RC Servo
Động cơ nhận tín hiệu là độ rộng xung với tần số khoảng 50hz ứng với mỗi độ rộng xung (thỏa mãn với loại động cơ) thì đầu ra trục động cơ quay
65
tương ứng với 1 góc θ. Động cơ chúng ta chọn là động cơ MG995 của hãng TOWERPRO mọi chi tiết về động cơ được trình bày cụ thể trong mục 2.3.2.2 chọn động cơ
4.1.3 Khối beam-ball
Khối beam-ball nhận tín hiệu là góc quay θ của động cơ từ đó điều khiển vị trí x của quả bóngmục 2.3.2 giới thiệu chi tiết thiết kế và chế tạo khối beam- ball này
4.1.4 Cảm biến
Cảm biến sự dụng là cảm biến điện trở thanh. Giá trị điện trở được phân bố đều trên chiều dài của thanh điện trở . Điện trở được gắn dọc theo thanh dầm. một đầu điện trở nối với điện áp 5V đầu kia nối đất hiệu điện thế trên toàn thanh điện trở là 5V và không đổi. Khi viên bi ở vị trí x tùy thuộc vào tỷ lệ khoảng cách từ nó đến 2 đầu điện trở mà nó có một giá trị điện thế xác định. Quả cầu dẫn điện nên ta lấy điện áp từ quả cầu đưa vào đầu ADC để đọc giá trị hiệu điện thế. Qua giá trị hiệu điện thế này mà xác định được vị trí quả bóng
Hình 4.3: Lấy gia trị hiệu điện thế đưa vào ADC xác định vị trí