4.2.1 Thiết kế khối xử lý trung tâm
Khối xử lý trung tâm bao gồm vi điều khiển (VĐK) AVR Atmega32, màn hình hiển thị LCD 16x02.
Hình 4.5 Khối vxl trung tâm và LCD
+ VĐK kết nối với LCD qua PORTC.
+ Được cấp xung bằng thạch anh 8MH.
+ Chân reset được nối với công tắc reset.
+ Chân điều khiển động cơ PWM được kết nối tới khối logic.
+ Các chân PORTB được kết nối tới khối phím bấm và nạp chíp.
+ Các chân PORTA gồm PA0 và PA1 dùng làm đầu vào ADC được kết nối với mạch ngoài.
+ Chân RXD và TXĐ được kết nối tới khối giao tiếp PC.
+ Chân PD6 được nối ra để phục vụ 1 đèn led
+ Các chân của LCD được nối nhu hình
4.2.2 Thiết kế khối giao tiếp với máy tính
Khối giao tiếp máy tính sử dụng IC MAX 232 làm bộ đệm chuyển đổi mức tín hiệu từ +12V và -12V của cổng com máy tính về dạng xung TTL có điện áp 5V.
69
Hình 4.5:Khối giao tiếp máy tính
Sơ đồ khối của khối này như sau
Hình 4.6: Sơ đồ kết nối máy tính
Mục tiêu thiết kế khối này là để xác định Kp bằng phương pháp thực nghiệm ta có thể truyền giá trị Kp từ máy tĩnh xuống VDK cho đến khi hệ thống dao động điều hòa
4.2.3 Thiết kế đầu vào ADC
Khối này nhận vị trí của quả bóng. được kết nối tới các kênh ADC của bộ ADC trên AVR.
Hình 4.7: Khối kết nối vào ADC
4.2.4 Mạch điều khiển sau khi hoàn thành
71
4.3 Tổng hợp và thử nghiệm bộ PID4.3.1 Kết cấu sơ đồ. 4.3.1 Kết cấu sơ đồ.
Hình 4.8: Sơ đồ thử nghiệm
- Giá trị Xđ được đưa vào từ biến trở quan chân PA0 của VDK - Giá trị Xph được đưa vào chân PA1 của VDK
- Kp được điều chỉnh từ biến trở để chọn giá trị phù hợp - Màn hình LCD kết nối với port C
- Truyền thông máy tính qua 2 chân Rx Và Tx Quy trình thực hiên như sau.
Đặt giá trị Xđ bằng biến trở, giá trị Xđ được hiển thị lên LCD
Thực hiện điều chỉnh Kp thông qua 1 biến trở khác giá trị Kp này cũng được hiển thị lên LCD
Điều chỉnh giá trị Kp cho đến khi hệ đạt trạng thái tới hạn khi đó quả bóng sẽ di chuyển qua lại quanh điểm Xđ với biện độ không đổi. lúc đó xem màn hình hiển thị xem giá trị Kp bằng bao nhiêu thì đó chính là giá trị Kth
Tiếp tục với giá trị Xđ khác
4.3.2 Thuật toán.
Sử dụng bộ timer 1 của VDK AVR Atmega32 và chân PD5 làm bộ phát xung điều khiển động cơ nguyên tắc lấy như sau
Động cơ sử dụng xung điều khiển có tần số 50Hz và độ rộng xung từ 1ms đến 2ms. Ta cần tạo được một xung ra chân PD5 có tần số 50Hz và độ rộng xung
điều chỉnh được. Về bộ timer 1, đây là bộ timer 16 bít. Vì vậy nó sẽ đọc từ 0 đến 65525 theo tần số xung nhịp. Có 2 chế độ phát xung đó là Phase correct PWM(PWM với pha chính xác) và Fast PWM (PWM tần số cao)ở đây ta sử
dụng chế độ phát xung PWM với pha chính xác và giá trị top đặt tại ICR1
Hình 4.10: Khai báo timer 1 để xuất xung 50hz
Để lấy xung với độ rộng tùy theo ý muốn ta đặt OCR1A= x với x tỷ lệ với độ rộng xung cần đặt. ở bài toán này x được điều khiển theo PID. Tuy nhiên độ rộng xung không thể <0 cũng như không thể lớn hơn chu kỳ 20ms . vậy nên phải đặt. nếu x<0 thì đặt luôn x=0, còn nếu x >4e2 (giá trị chu kỳ của xung) thì phải đặt x=4e2
Dùng timer 0 tạo ra 1 bộ timer sau 100ms đọc ADC và hiển thị LCD 1 lần Timer 0 là bộ timer 8 bit. Do vậy nó sẽ đếm từ 0 đến 255 theo tần số xung nhịp và sau mỗi lần như vậy sẽ có 1 tín hiệu ngắt. với tần số lựa chọn là
73
125.000Khz thì mỗi 1 giây nó sẽ đếm được a=125000:256= 488 (vòng) để số vòng này chẵn ta gán 1 giá trị vào thanh ghi TCNT0 giả sử giá trị đó là x. khi đó thay vì đếm từ 0 đên 255 thì timer 0 sẽ đếm từ x đến 255. Để đếm được hết 1 vòng ta cần
255-x+1 xung nhịp
Vậy để có giá trị chẵn ta phải có 125000
255− +x 1 chẵn
Giả sử 125000 500 255 x 1=
− + ta chọn được x=6 Vậy giá trị cần ghi vào TCNT0=6
Khi TCNT0=6 thì mỗi giây bộ timer 0 của ta sẽ thực hiện được 500 vòng đếm vậy nếu ta cần 100ms thì trong thời gian đó bộ timer đếm được 50 vòng.
Để lấy đươc thời gian lấy mẫu là 100ms thuật toán ta thưc hiện như sau.Ta khai báo 2 biến tg và h và đặt tg=0 ,h=0 Mỗi khi bộ timer đếm hết 1 vòng sẽ có 1 tín hiệu ngắt. lúc đó ta tăng tg lên 1 đơn vị. tg=tg++;
Nếu tg<50 thì vẫn tiếp tục đếm. ngược lại nếu không thỏa mãn thì đặt lại tg=0 và đặt h=1
Khi h đã =1 ta thực hiện đọc ADC và hiển thị LCD sau khi thực hiện xong ta lại đặt h=0 vòng lặp quay lại. vậy là ta đã có thể lấy thồi gian lấy mẫu là 100ms, cứ mỗi sau 100ms thì lại đọc và hiển thị LCD 1 lần
Điều khiển PID độ rộng xung.
Qua phương pháp dao động ta đã tìm được các thông số Kp, Ki, Kd bây giờ ta thực hiện điều khiển PID độ rộng xung từ đó xuất xung điều khiển động cơ servo 1 1 0 ( ) [ a k D k k ] k p k i i i a T T e e u k e e T T − − = − = + ∑ +
Đối với e k h ek = xd −xph Thành phần tích phân 1 0 k p a k I i i i k T u e T − = = ∑ sau mỗi vòng lặp cần đặt 1 k k I I k u =u − +e và sau đó gán trở lại uIk =uIk−1 , ek =ek−1
Thành phần vi phân cũng vậy. sau mỗi vòng lặp phải gán lại ek =ek−1
Lưu đồ thuật toán
75
4.4 Kết luận về sản phẩm
Mặt đã làm được
- Đọc được giá trị ADC
- Hiển thị được vị trí x đặt và vị trí hiện tại của quả bóng lên LCD - Xuất được xung PWM điều khiển động cơ
- Điều khiển độ rộng xung theo PID Chưa làm được
- Hệ thống hoạt động không ổn định.
CHƯƠNG V: KẾT QUẢ THỰC HIỆN VÀ ĐÁNH GIÁ KẾT QUẢ THỬ NGHIỆM
5.1 Kết quả thực hiện
5.1.1 Về nghiên cứu lý thuyết
- Tìm hiểu cơ sở khoa học tính toán được các thông số của hệ thống xác đinh hàm truyền của hệ thống
- Tìm hiểu được về hệ thống beam-ball trong thực tế
- Củng cố và bổ sung các kiến thức về cơ khí, điện tử, điều khiển và máy tính
5.1.2 Về mặt thực hành.
- Thiết kế chế tạo được mô hình Beam-Ball kiểu cơ cấu 4 khâu - Thiết kế chế tạo được mạch điều khiển cho mô hình
- Viết được chương trình điều khiển cho mô hình
5.2 Những hạn chế
- Mô hình cơ khí chưa thực sự hoàn thiện còn sai số trong chế tạo nhiều - Chương trình điều khiển chưa tối ưu, vẫn còn nhiều hạn chế. Vẫn chưa thử nghiệm thực tế nhiều nên chưa chọn được bộ tham số PID thật phù hợp
- Chương trình chạy chưa ổn định
- Quả bóng vẫn chưa về vị trí mong muốn
5.3 Hướng phát triển
Chế tạo mô hình hoàn thiện hơn
77
TÀI LIỆU THAM KHẢO
1. Nguyễn Doãn Phước , Lý thuyết điều khiển tuyến tính , Nhà xuất bản khoa học và kỹ thuật ,Hà Nội 2005
2. Nguyễn Thương Ngô , Lý thuyết điều khiển tự động thông thường và hiện đại quyển 1 Hệ tuyến tính , Nhà xuất bản khoa học và kỹ thuật ,Hà Nội 2006
3. Nguyễn Thương Ngô , Lý thuyết điều khiển tự động thông thường và hiện đại quyển 2 Hệ xung số , Nhà xuất bản khoa học và kỹ thuật ,Hà Nội 2006 4. Ngô Diên Tập, Kỹ thuật vi điều khiển với AVR nhà xuất bản khoa học kỹ
thuật
5. http://www.hocavr.com/
6. http://ctms.engin.umich.edu/CTMS/index.php?aux=Home
7. http://tme.vn