NGHIÊN CỨU THIẾT KẾ CHẾ TẠO MÔ HÌNH ĐIỀU KHIỂN VỊ TRÍ VÀ VẬN TỐC ĐỘNG CƠ ỨNG DỤNG TRÊN MÔ HÌNH CÁNH TAY ROBOT Sinh viên thực hiện PHAN THIÊN HOÀNG Khóa luận được đệ trình đề để đáp ứng y
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH
KHOÁ LUẬN TỐT NGHIỆP
NGHIÊN CỨU THIẾT KẾ CHẾ TẠO MÔ HÌNH ĐIỀU KHIỂN VỊ TRÍ
VÀ VẬN TỐC ĐỘNG CƠ ỨNG DỤNG TRÊN MÔ HÌNH CÁNH TAY
Trang 2NGHIÊN CỨU THIẾT KẾ CHẾ TẠO MÔ HÌNH ĐIỀU KHIỂN VỊ TRÍ VÀ VẬN TỐC ĐỘNG CƠ ỨNG DỤNG TRÊN MÔ HÌNH CÁNH TAY ROBOT
Sinh viên thực hiện
PHAN THIÊN HOÀNG
Khóa luận được đệ trình đề để đáp ứng yêu cầu cấp bằng kỹ sư ngành Cơ Điện Tử
Giáo viên hướng dẫn Th.S TRẦN THỊ KIM NGÀ
Ks Huỳnh Xuân Dũng
Tháng 6 năm 2011
Trang 3Anh Ks Huỳnh Xuân Dũng, kĩ sư ngành Điều Khiển Tự Động, đã có những chỉ bảo, giúp đỡ cho em về mặt kinh nghiệm để hoàn thành tốt đề tài này
Đặc biệt, em xin cảm ơn quý Thầy / Cô trong hội đồng đã dành thời gian nhận xét góp ý để luận văn của em hoàn thiện hơn
Cuối cùng, em xin gởi lời cảm ơn đến những người thân cũng như bạn
bè đã động viên, ủng hộ và luôn tạo cho em mọi điều kiện thuận lợi trong suốt quá trình hoàn thành đề tài
Thành Phố Hồ Chí Minh, ngày tháng năm 2011
Sinh viên thực hiện
Phan Thiên Hoàng
Trang 4TÓM TẮT
Đề tài: “Nghiên cứu thiết kế chế tạo mô hình điều khiển vị trí và vận tốc ứng dụng trên mô hình cánh tay robot có sẵn” Được tiến hành tại bộ môn cơ điện tử
trường Đại Nông Lâm TP.HCM, năm 2011
Mục đích điều khiển vị trí và vận tốc của động cơ Servo ứng dụng thuật toán PID Động cơ Servo được điều khiển vị trí và vận tốc thông qua mạch điều khiển sử dụng vi điều khiển PIC và giao diện giám sát được viết bằng Visual C++
Một mô hình khảo nghiệm độ chính xác của việc điều khiển vị trí và tốc độ của động cơ Servo được thiết kế và chế tạo để kiểm tra kết quả của chương trình sử dụng thuật toán PID và giao diện hiển thị
Kết quả này được ứng dụng điều khiển cho mô hình cánh tay Robot có được vị trí và vận tốc của 3 khớp cánh tay Robot
Trang 5
MỤC LỤC
TRANG Trang tựa
Lời cảm ơn ii
Tóm tắt iii
Mục lục iv
Danh sách các chử viết tắt vi
Danh sác các hình vii
Danh sách các bảng viii
Chương 1 i
MỞ ĐẦU 1
1.1 Đặt vấn đề 1
1.2 Mục đích của đề tài 1
1.3 Giới hạn của đề tài 2
Chương 2 3
TỔNG QUAN 3
2.1 Tổng quan điều khiển động cơ 3
2.2 Tổng quan về 16F877A 3
2.2.1 Giới thiệu về PIC 16F877A 3
2.2.2 Tổ chức bộ nhớ 6
2.2.3 Các cổng xuất nhập của PIC16F877A 7
2.2.4 CCP 10
2.3 Tổng quan về động cơ 14
2.4 Tổng quan về encoder 16
2.5 Tổng quan về phần mềm Visual C++ 17
2.5.1 Giới thiệu phần mềm 17
2.5.2 Các bước tạo để tạo một dự án trên Visual C++ 18
2.6 Phần mềm trình biên dịch PCWH sử dụng ngôn ngữ lập trình C (CCSC) 18
2.6.1 Giới thiệu 18
2.6.2 Các bước tạo dự án trên CCSC 18
2.7 Tổng quan về phần mềm nạp PIC Burn-E Programmer 19
2.8 Giới thiệu về TeeChart 20
2.8.1 Giới thiệu 20
2.8.2 Các bước tạo 1 dự án 20
Chương 3 22
NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 22
3.1 Nội dung nghiên cứu 22
3.2 Linh kiện và thiết bị được sử dụng trong thiết kế và điều khiển 22
3.3 Phương pháp nghiên cứu 23
Trang 63.3.1 Phương pháp nghiên cứu được sử dụng bao gồm: 23
3.3.2 Phương tiện nghiên cứu 23
3.4 Phương pháp nghiên cứu điều khiển và ảnh hưởng của bộ điều khiển PID: 23
3.4.1 Phương pháp nghiên cứu điều khiển 23
3.4.2 Ảnh hưởng của bộ điều khiển PID 27
3.4.3 Điều khiển động cơ servo bằng ngôn ngữ Visual C++ 27
3.4.4 Điều khiển động cơ bằng phương pháp điều chế độ rộng xung (PWM) 28 Chương 4 30
KẾT QUẢ VÀ THẢO LUẬN 30
4.1 Sơ đồ khối 30
4.2 Thuật toán PID 30
4.3 Giao diện giám sát và điều khiển: 32
4.4 Mô hình thực nghiệm 33
4.5 Mô hình robot có sẵn 34
4.5.1 Giới thiệu động cơ trên robot: 34
4.5.2 Cách thức điều khiển 35
4.5.3 Sơ đồ nguyên lý của PIC 35
4.5.4 Khối nguồn điều khiển 36
4.3.4 Mạch cầu H 37
4.4 Kết quả 41
4.5 Kết quả thực nghiệm 41
Chương 5 45
KẾT LUẬN VÀ ĐỀ NGHỊ 45
5.1 Kết luận 45
5.2 Đề nghị 45
TÀI LIỆU THAM KHẢO 46
Phục lục 45
Phục lục 1: Chương trình vi điều khiển PIC 45
Phục lục 2: Chương trình giám sát hệ thống 52
Trang 7DANH SÁCH CÁC CHỮ VIẾT TẮT
PID: Proportional–Integral–Derivative controller
PIC: Programable intelligent Computer
OTP: One Time Programable
RISC: Reduced Intruction Set Computer
EEPROM: Electrically Erasable Programmable Read-Only Memory RAM: Random Access Memory
ICSPTM : In-Circuit Serial Programing
CMOS: Complementary Metal-Oxide-Semiconducto
SFRs: Special Function Registers
GPR: General Purpose RAM
PWM: Pulse-width modulation
PSP: Parallel Slave Port
MSSP Master Synchronous Serial Port
ROM:Read-Only Memory
VĐK: Vi điều khiển
Trang 8DANH SÁCH CÁC HÌNH
Hình 2.1 Sơ đồ chân của PIC16FxxxA 4
Hình 2.2 Sơ đồ khối của PIC16F877A 6
Hình 2.3 Sơ đồ khối của Timer0 8
Hình 2.4 Sơ đồ khối của Timer1 9
Hình 2.5 Sơ đồ khối của Timer2 10
Hình 2.6 Sơ đồ khối CCP (PWM mode) 12
Hình 2.7 Các tham số của PWM 12
Hình 2.8 Sơ đồ khối CCP (Compare mode) 13
Hình 2.9 Cấu tạo bên trong động cơ DC 14
Hình 2.10 Cấu tạo các thành phần bên trong của Encoder 17
Hình 3.1 Mô hình điều khiển với Kgh 24
Hình 3.2 Xác định hệ số khuếch đại tới hạn 24
Hình 3.3 Dạng xung PWM 27
Hình 3.4 Phương pháp PWM không thay đổi tần số 28
Hình 3.5 Phương pháp thay đổi tần số 28
Hình 4.1 Sơ đồ khối điều khiển 30
Hình 4.2 Lưu đồ giải thuật PID 30
Hình 4.3 Biểu đồ vị trí theo PID 30
Hình 4.4 Giao diện giám sát 31
Hình 4.5 Lưu đồ giải thuật PID 32
Hình 4.6 Mô hình điều khiển 33
Hình 4.9 Mô hình robot 34
Hình 4.10 Sơ đồ nguyên lý của PIC 36
Hình 4.11 Khối nguồn điều khiển 35
Hình 4.12 Môdun điều khiển PIC 36
Hình 4.13 Khối cách ly mạch điều khiển 37
Hình 4.4 Biểu đồ trạng thái của 74HC74 38
Hình 4.14 Sơ đồ nguyên lý mạch cầu H 38
Hình 4.15 Mô hình thi công 39
Hình 4.16 Lưu đồ giải thuật VĐK 40
Trang 9DANH SÁCH CÁC BẢNG
Bảng 2.1 Các trường hợp hoạt động của Timer1 và Timer2 11
Bảng 3.1 Thông số bộ điều khiển theo thực nghiệm 24
Bảng 3.2 Một số ảnh hưởng của các hệ số trên đáp ứng hệ kín 26
Bảng 4.2 Chọn thông số PID theo Ziegler-Nichols 29
Bảng 4.3 Trạng thái hoạt động của 74HC74 37
Trang 10Chương 1
MỞ ĐẦU 1.1 Đặt vấn đề
Điều khiển học là một ngành khoa học đã có từ lâu đời Trải qua thời kỳ dài của lịch sử, ngành khoa học này đã có những bước tiến mạnh mẽ, từ những mô hình điều khiển đơn giản đến những giải thuật điều khiển thông minh Có thể nói, điều khiển học đã có vai trò rất lớn trong quá trình phát triển của các ngành công nghiệp nói riêng và xã hội loài người nói chung
Trong điều khiển học, các phương pháp điều khiển là cốt lõi nhất của ngành khoa học này Từ điều khiển ON – OFF, điều khiển tỉ lệ, điều khiển PID, điều khiển mờ, điều khiển thích nghi,… tất cả các phương pháp điều khiển này đều có những ứng dụng hữu ích trong lĩnh vực điều khiển
Trong các phương pháp điều khiển kể trên, phương pháp điều khiển PID được xem là một phương pháp điều khiển mang tính kinh điển Đây là một phương pháp điều khiển đã có từ lâu, nhưng hiện nay nó vẫn được sử dụng và có những phát triển rộng rãi Chọn lựa PID là chọn lựa phương pháp điều khiển thông dụng, quen thuộc và đơn giản PID dễ hiểu đối với người sử dụng và có giá thành hợp lý khi xây dựng hệ thống điều khiển
Từ những đặc điểm như trên, em quyết định chọn nghiên cứu về phương pháp điều khiển PID, và đề tài nghiên cứu là: “Nghiên cứu điều khiển vị trí tốc độ và ứng dụng điều khiển trên robot có sẵn” với giải thuật chính là PID
1.2 Mục đích của đề tài
Mục tiêu của đề tài này là thiết kế bộ điều khiển bàn máy sử dụng thuật toán PID
Bộ điều khiển này dùng vi điều khiển PIC của hãng MICROCHIP, cụ thể là vi điều khiển PIC 16F877A Bộ điều khiển có thể điều khiển chính xác vị trí gốc quay và vận tốc của động cơ không tải Thuật toán PID được thiết lập để có thể điều khiển hệ thống đạt được các giá trị mong muốn một cách nhanh chóng, giảm độ vọt lố đến mức tối thiểu, hệ thống hoạt động ổn định và sai số ở mức tối thiểu Đồng thời, quá trình hoạt
Trang 11động của hệ thống cũng được giám sát qua máy tính để người điều khiển có thể quan sát cũng như có những quyết định điều khiển thuận tiện và hợp lý
Để thực hiện được mục tiêu đó, em dùng vi điều khiển PIC để thực hiện quá trình điều khiển với thuật toán PID Chương trình của vi điều khiển được lập trình bằng ngôn ngữ C qua phần mềm CCSC Chương trình giám sát trên máy tính được viết bằng Visual C++ và chương trình này có thể lấy dữ liệu nhận được để vẽ thành đồ thị giúp người giám sát có thể phân tích hoạt động của hệ thống một cách dễ dàng và nhanh chóng
Đồng thời có thể tạo ra một sản phẩm giúp ích cho việc nghiên cứu phương pháp điều khiển PID cho sinh viên
1.3 Giới hạn của đề tài
Điều khiển động cơ Servo DC, loại động cơ Dc kích từ độc lập hoặc dùng nam châm vĩnh cửu, có công suất P < 60W, cụ thể là động cơ Servo DC 12V – 50W
- Điều khiển động cơ Servo DC bằng phương pháp điều chế độ rộng xung kết hợp với việc dùng vi điều khiển PIC16F877A
- Đảm bảo ổn định được vị trí bằng vòng phản hồi vị trí dùng encoder
Trang 12Chương 2
TỔNG QUAN
Điều khiển động cơ DC (DC Motor) là một ứng dụng thuộc dạng cơ bản nhất của điều khiển tự động vì DC Motor là cơ cấu chấp hành (actuator) được dùng nhiều nhất trong các hệ thống tự động (ví dụ robot) Điều khiển được DC Motor là bạn đã có thể
tự xây dựng được cho mình rất nhiều hệ thống tự động Khái niệm Servo mà em dùng trong đề tài này để chỉ một hệ thống hồi tiếp kín DC servo motor là động cơ DC có bộ điều khiển hồi tiếp
Đề tài này nó bao gồm tổng hợp nhiều vấn đề ứng dụng PIC như nhận dữ liệu từ người dùng, điều khiển motor, đọc encoder, cả giải thuật điều khiển PID và mạch công suất cho Motor… Có 2 phương pháp điều khiển động cơ DC là analog và digital Ngoài ra, khi nói đến điều khiển động cơ DC có 2 đại lượng điều khiển chính là vị trí (số vòng quay) và vận tốc
2.2.1 Giới thiệu về PIC 16F877A
PIC là tên viết tắt của Máy tính khả trình thông minh (Programable intelligent Computer) do hăng General Instrument đặt tên, con vi điều khiển đầu tiên của họ là PIC1650 Hãng Microchip tiếp tục phát triển các ḍng sản phẩm này Cho đến nay, các sản phẩm vi điều khiển PIC của Microchip đă gần 100 loại, từ họ 10Fxxx đến các họ 12Cxxx, 17Cxx, 16Fxx, 16Fxxx, 16FxxxA, 16LFxxxA, 18Fxxx 18LFxxx,
Trang 13Hình 2.1 Sơ đồ chân của PIC16FxxxA
Phân loại PIC theo ký tự:
• Nhóm thứ nhất có ký tự C, họ PIC xxCxxx được đưa vào một nhóm, gọi là OTP (One Time Programable) chỉ có thể lập tŕnh một lần duy nhất
• Nhóm thứ hai có ký tự F, LF, họ PIC xxFxxx, xxFxxx, gọi là Flash, cho phép ghi/xóa nhiều lần bắng các mạch điện thông thường
Phân loại PIC theo kí số:
• Loại thứ nhất là dòng PIC cơ bản (Base-Line), gồm các PIC 12Cxxx, có độ dài lệnh là 12 bit
• Loại thứ hai là các ḍòng PIC 10F, 12F, và 16F, gọi là dòng phổ thông Range), có độ dài lệnh là 14 bit
(Mid-• Loại thứ ba là dòng PIC 18F (High-End), có độ dài lệnh là 16 bit
PIC là một vi điều khiển với kiến trúc RISC, sử dụng microcode đơn giản đặt trong ROM, chạy một lệnh một chu kỳ máy (4 chu kỳ của bộ dao động) PIC nhờ có EEPROM nên tạo thành 1 bộ điều khiển vào ra khả trình, có rất nhiều ḍng PIC với hàng loạt các mô-đun ngoại vi tích hợp sẵn (như SART, PWM, ADC ), với bộ nhớ chương tŕnh từ 512 Word đến 32K Word PIC16F877A là ḍng PIC phổ biến nhất, đủ mạnh về
Trang 14tính năng, 40 chân, bộ nhớ đủ lớn cho hầu hết các ứng dụng thông thuờng
Cấu trúc tổng quát PIC16F877A gồm:
• 8 K Flash ROM
• 368 bytes RAM
• 256 bytes EEPROM
• 5 Port I/O (A, B, C, D, E), ngơ vào/ra với tín hiệu điều khiển độc lập
• 2 bộ định thời 8 bit Timer 0 và Timer 2
• 1 bộ định thời 16 bit Timer 1, có thể hoạt động trong cả chế độ tiết kiệm năng lượng (Sleep Mode) với nguồn xung clock ngoài
• 2 bộ CCP, Capture/Compare/PWM - tạm gọi là: Bắt giữ / So sánh / Điều biến xung
• 1 bộ biến đổi tương tự - số (ADC) 10 bit, 8 ngơ vào
• 2 bộ so sánh tương tự (Comparator)
• 1 bộ định thời giám sát (WDT - Watch Dog Timer)
• 1 cổng song song (Parallel Port) 8 bit với các tín hiệu điều khiển
• 1 cổng nối tiếp (Serial Port)
• 15 nguồn ngắt (Interrupt)
• Chế độ tiết kiệm năng lượng (Sleep Mode)
• Nạp chương tŕnh bằng cổng nối tiếp ICSPTM (In-Circuit Serial Programing)
• Nguồn dao động lập tŕnh được tạo bằng công nghệ CMOS
Trang 15một đường xuất/nhập (I/O) độc lập hoặc là một chức năng đặc biệt dùng để giao tiếp với các thiết bị ngoại vi
Hình 2.2 Sơ đồ khối của PIC16F877A
2.2.2 Tổ chức bộ nhớ
Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình (Program Memory) và bộ nhớ dữ liệu (Data Memory)
a Bộ nhớ chương trình
Trang 16Bộ nhớ chương trình của PIC16F877A là bộ nhớ flash, dung lượng bộ nhớ 8K word (1word=14bit) và được phân thành 3 page (page0 đến page3)
Để mã hóa được địa chỉ của 8K word bộ nhớ chương trình, bộ nhớ chương trình phải có dung lượng 13bit
Bộ nhớ chương trình không bao gồm bộ nhớ stack và không được địa chỉ bởi
bộ đếm chương trình
b Bộ nhớ dữ liệu
Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank Đối với PIC 16F877A được chia ra làm 4 bank Mỗi bank có dung lượng 128 byte, bao gồm thanh ghi có chức năng đặt biệt SFG (Special Function Register) nằm ở vùng địa chỉ thấp và các thanh ghi mục đích chung GPR (General Purpose Register) nằm ở vùng địa chỉ còn lại trong bank
2.2.3 Các cổng xuất nhập của PIC16F877A
Vi điều khiển PIC16F877A có 5 cổng xuất nhập bao gồm PORTA, PORTB, PORTC, PORTD, PORTE
a Port A
Port A gồm có 6 pin I/O Đây là các chân xuất và nhập dữ liệu bên cạnh đó PORTA còn là ngỏ ra của bộ ADC, so sánh, ngõ vào analog ngõ vào xung clock của Timer0 và ngõ vào của giao tiếp MSSP (Master Synchronous Serial Port)
b Port B
- Port B gồm có 8 pin I/O Bên cạnh đó PORTB còn sử dụng cho quá trình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau PORTB còn liên quan đến ngắt ngoại vi và bộ Timer0
- Timer0 là bộ đếm 8 bit được kết nối với bộ chia tần số (prescaler) 8 bit Cấu trúc của Timer0 cho phép lựa chọn xung clock tác động và cạnh tích cực của xung clock Ngắt Timer0 sẽ xuất hiện khi Timer0 sẽ bị tràn Bit TMR0IE là bit
Trang 17điều khiển Timer0 TMR0IE=1 cho phép Timer0 tác động, TMR0IE=0 không cho phép ngắt Timer0
Hình 2.3 Sơ đồ khối của Timer0
Trang 18Hình 2.4 Sơ đồ khối của Timer1
Trang 19Hình 2.5 Sơ đồ khối của Timer2
2.2.4 CCP
CCP (Capture/Compare/PWM) bao gồm các thao tác trên các xung đếm cung cấp bởi các bộ đếm Timer1 và Timer2 PIC16F877A được tích hợp sẵn hai khối CCP : CCP1 và CCP2 Mỗi CCP có một thanh ghi 16 bit (CCPR1H:CCPR1L và CCPR2H:CCPR2L), pin điều khiển dùng cho khối CCPx là RC2/CCP1 và RC1/T1OSI/CCP2 Các chức năng của CCP bao gồm:
Capture
So sánh (Compare)
Điều chế độ rộng xung PWM (Pulse Width Modulation)
Cả CCP1 và CCP2 về nguyên tắc hoạt động đều giống nhau và chức năng của từng khối là khá độc lập Tuy nhiên trong một số trường hợp ngoại lệ CCP1 và CCP2 có khả năng phối hợp với nhau để để tạo ra các hiện tượng đặc biệt (Special event trigger) hoặc các tác động lên Timer1 và Timer2 Các trường hợp này được liệt kê trong bảng sau:
CCPx CCPy Tác động
Capture Capture Dùng chung nguồn xung clock từ TMR1
Capture Compare Tạo ra hiện tượng đặc biệt làm xóa TMR1
Compare Compare Tạo ra hiện tượng đặc biệt làm xóa TMR1
PWM PWM Dùng chung tần số xung clock vàcùng chịu tác động của
Trang 20a Thiết lập thời gian của 1 chu kì của xung điều chế cho PWM (period) bằng cách đưa giá trị thích hợp vào thanh ghi PR2
b Thiết lập độ rộng xung cần điều chế (duty cycle) bằng cách đưa giá trị vào thanh ghi CCPRxL và các bit CCP1CON<5:4>
c Điều khiển các pin của CCP là output bằng cách clear các bit tương ứng trong thanh ghi TRISC
d Thiết lập giá trị bộ chia tần số prescaler của Timer2 và cho phép Timer2 hoạt động bằng cách đưa giá trị thích hợp vào thanh ghi T2CON
e Cho phép CCP hoạt động ở chế độ PWM
Trang 21Hình 2.6 Sơ đồ khối CCP (PWM mode)
Hình 2.7 Các tham số của PWM Trong đó giá trị 1 chu kì (period) của xung điều chế được tính bằng công thức:
Bộ chia tần số prescaler của Timer2 chỉ có thể nhận các giá trị 1,4 hoặc 16 (xem lại Timer2 để biết thêm chi tiết) Khi giá trị thanh ghi PR2 bằng với giá trị thanh ghi TMR2 thì quá trình sau xảy ra:
PWM period = [(PR2)+1]*4*TOSC*(giá trị bộ chia tần số của TMR2)
Trang 22 Thanh ghi TMR2 tự động được xóa
Pin của khối CCP được set
Giá trị thanh ghi CCPR1L (chứa giá trị ấn định độ rộng xung điều chế duty cycle) được đưa vào thanh ghi CCPRxH
Độ rộng của xung điều chế (duty cycle) được tính theo công thức:
Như vậy 2 bit CCPxCON<5:4> sẽ chứa 2 bit LSB Thanh ghi CCPRxL chứa byte cao của giá trị quyết định độ rộng xung Thanh ghi CCPRxH đóng vai trò là buffer cho khối PWM Khi giá trị trong thanh ghi CCPRxH bằng với giá trị trong thanh ghi TMR2 và hai bit CCPxCON<5:4> bằng với giá trị 2 bit của bộ chia tần số prescaler, pin của khối CCP lại được đưa về mức thấp, như vậy ta có được hình ảnh của xung điều chế tại ngõ ra của khối PWM như hình dưới
Hình 2.8 Sơ đồ khối CCP (Compare mode)
Một số điểm cần chú ý khi sử dụng khối PWM:
Timer2 có hai bộ chia tần số prescaler và postscaler Tuy nhiên bộ postscaler không được sử dụng trong quá trình điều chế độ rộng xung của khối PWM
Nếu thời gian duty cycle dài hơn thời gian chu kì xung period thì xung ngõ ra PWM duty cycle = (CCPRxL:CCPxCON<5:4>)*TOSC*(giá trị bộ chia tần số TMR2)
Trang 23tiếp tục được giữ ở mức cao sau khi giá trị PR2 bằng với giá trị TMR2
Điều khiển vị trí của một bộ phận cơ khí thực hiện thông qua động cơ chấp hành servo như động cơ một chiều, động cơ bước, động cơ xoay chiều ba pha, xi lanh thủy… ở đây không đi sâu vào cấu tạo mà đi chi tiết vào điều khiển động cơ được sử dụng trong đồ án
Động cơ một chiều (DC):
Đặc điểm chính của động cơ một chiều là nguồn điện cấp cho động cơ là nguồn điện một chiều Động cơ một chiều chia làm hai loại: động cơ từ trường vĩnh cửu và động cơ từ trường khuyết một chiều kích từ
Hình 2.9 Cấu tạo bên trong động cơ DC
a Động cơ một chiều từ trường vĩnh cửu:
Loại động cơ này có nguồn điện một chiều tác động lên cuộn ứng qua cổ góp Cường độ từ trường không thay đổi Tốc độ động cơ chỉ có thể điều khiển thông qua điều khiển dòng rotor Có thể đảo chiều động cơ bằng cách đảo chiều của dòng điện đặt vào rotor
b Động cơ một chiều kích từ:
Loại động cơ này có stator là một nam châm điện (phần cảm) và rotor mang cuộn ứng Có 3 loại động cơ từ trường khuyết: động cơ nối tiếp, động cơ song song và động cơ hỗn hợp
- Động cơ nối tiếp: có cuộn ứng và cuộn cảm nối tiếp với nhau, do đó dòng diện
đi qua cuộn cảm cũng đi qua cả cuộn ứng và cổ góp Việc điều khiển loại động cơ này
là rất khó, vì khi giảm dòng qua cuộn ứng để giảm tốc độ thì cũng giảm luôn dòng
Trang 24điện qua cuộn cảm, tức là giảm cường độ từ trường và do đó tốc độ lại tăng lên Khi đảo chiều dòng điện thì chiều chuyển động của động cơ cũng không đổi
- Động cơ song song: có cuộn ứng và cuộn cảm mắc song song với nhau Nếu nối với hai nguồn khác nhau thì việc điều khiển dòng điện qua hai cuộn là độc lập Vì thế việc điều khiển tốc độ cũng dễ dàng hơn so với loại nối tiếp Nếu thay đổi chiều dòng điện của một trong hai cuộn dây thì động cơ sẽ đổi chiều chuyển động
- Điều khiển tốc độ động cơ một chiều:
Để điều khiển tốc độ động cơ, ta cần dựa vào phương trình cơ bản của động cơ điện Phương trình vận tốc:
( ) = U a I a R a
n
Trong đó: n: tốc độ động cơ (vòng/phút)
Ua : điện áp qua rotor (V)
Ia : dòng điện qua cuộn cảm (A)
Ra : điện trở của cuộn cảm (Ω)
: cường độ từ trường (Wb)
Như vậy, giảm điện áp hoặc tăng điện trở trên cuộn cảm sẽ làm giảm tốc độ động cơ Ngược lại giảm cường độ từ trường sẽ tăng tốc độ động cơ
- Dừng động cơ điện một chiều:
Để dừng động cơ phải tăng tốc nó theo chiều ngược lại với chiều chuyển động
Có hai phương pháp thường dùng để dừng động cơ một chiều: phanh động lực và đảo chiều dòng điện cấp vào cuộn cảm
o Phanh động lực: Từ trường của động cơ được giữ nguyên Nguồn cung cấp cho rotor được chuyển cho nhiệt điện trở Toàn bộ động năng và điện năng được tiêu thụ trên nhiệt điện trở
Trang 25o Đảo chiều dòng điện cấp vào cuộn cảm: dừng động cơ kiêu này nhanh nhưng dòng qua cuộn cảm cao sẽ gây tổn hại cho cuộn cảm Kiểu này chỉ dùng khi khẩn cấp
Dùng phương pháp điện không thể dừng động cơ tại vị trí chính xác Khi đó, cần thay thế bằng phanh cơ khí hoặc sử dụng hệ thống servo
Động cơ sử dụng trong đề tài này là động cơ DC của nhà sản xuất Sanyo Denky
có gắn liền bộ encoder incremental để hợp thành động cơ DC servo
Encoder là cảm biến để đo vị trí góc của trục động cơ, máy công cụ, băng tải,… Encoder có hai loại chính: loại tương đối (loại tăng dần – incremental) và loại tuyệt đối (absolute) Encoder được sử dụng trong đề tài là loại tăng dần nên phần này chỉ
đề cập đến loại encoder này
Hình 2.10 Cấu tạo các thành phần bên trong của Encoder Cấu tạo của encoder incremental: gồm hai đĩa, một đĩa đứng yên và một đĩa quay Đĩa quay gồm ba đường, hai đường ngoài chia làm n khoảng góc bằng nhau liên tiếp các tiết diện mờ và trong suốt, đường thứ ba chỉ có một rãnh nhỏ Có ba cảm biến quang học, các nguồn sáng tương ứng và một bộ điều khiển
Trang 26Khi trục quay một vòng thì tia sáng bị ngắt n lần và gửi tín hiệu dạng xung (A và B) vuông góc nhau
Bộ điều khiển phải xác định được chiều quay của trục bằng cách xác định sự lệch pha điện giữa hai tín hiệu A và B:
- A vượt trước B: quay thuận
- B vượt trước A: quay nghịch
Đường trong (pha Z) chỉ có một khe trong suốt và tạo ra một xung trong mỗi vòng quay Z được dùng để xác định vị trí gốc ( Z: đầu không) hoặc báo hiệu đã quay hết một vòng
2.5.1 Giới thiệu phần mềm
Visual C++ là một phần mềm IDE (Integrated Develop Environment - Môi trường phát triển tích hợp) của hãng Microsoft, được tích hợp trong bộ công cụ Visual Studio, sử dụng cho các ngôn ngữ C, C++ và C++/CLI Nó có các công
cụ hỗ trợ việc phát triển và gỡ lỗi mã nguồn C++, đặc biệt là các mã nguồn viết cho Microsoft Windows API, DirectX API và Microsoft.NET Framework
Visual C++ là môi trường lập trình đa năng dành cho ngôn ngữ C/C++ Vì
là môi trường lập trình trên nền Windows nên VC++ cho phép lập trình viên thực hiện rất nhiều công việc, hỗ trợ về coding, thiết kế giao diện,… Trong
Trang 27VC++, lập trình viên có thể tạo ra nhiều thứ: ứng dụng trên Windows, ActiveX, thư viện liên kết động DLL…
2.5.2 Các bước tạo để tạo một dự án trên Visual C++
Để tạo một dự án trên Visual C++, bạn phải tiến hành các bước sau:
1 Khởi động Visual C++
2 Tạo một Project mới
3 Tạo cổng nối tiếp (Serial Port) vào các Component của Toolbox, Để
sử dụng, người lập trình sẽ nhấn chọn biểu tượng SerialPort kéo thả vào cửa sổ soạn thảo Form
4 Thiết lập thuộc tính của Serial Port
5 Tạo các nút Button, Text, Lable… Hiệu chỉnh kích thước của chúng
PCB cho dòng PIC 12-bit opcodes
PCM cho dòng PIC 14-pic opcodes
PCH cho dòng PIC 16 và 18-bit
Tất cả 3 trình biên dich này đuợc tích hợp lại vào trong một chương trình bao gồm cả trình soạn thảo và biên dịch là CCS, phiên bản mới nhất là PCWH Compiler Ver 4.104)
2.6.2 Các bước tạo dự án trên CCSC
Để tạo một dự án trên CCSC, cần phải làm theo các bước sau:
Trang 283 Viết code điều khiển
4 Kiểm tra lỗi
5 Biên dịch sang file có đuôi *.hex
6 Đóng chương trình
Mạch nạp Burn-E được cấu thành bởi 3 yếu tố gắn bó mật thiết với nhau:
Hardware, Firmware và Software Các yếu tố này được Pduytech phát triển và phối hợp ưu điểm từ tính tiện lợi, dễ dàng nâng cấp của PICKit 2
Một khi phần mềm detect được PIC, các thao tác trên PIC hoàn toàn có thể được thực hiện:
Program All - Nạp nội dung lấy từ file xuống PIC
Read All - Đọc flash, eeprom và config của PIC lên máy tính và thể hiện chúng trên bảng dữ liệu của software
Verify All - Đối chiếu Flash, EEPROM và Config của PIC với nội dung hiện có trên bảng dữ liệu của software
Erase - Xóa Flash, EEPROM và Config của PIC
Mở file *.hex bằng cách click Open và chỉ đến file cần nạp, đường dẫn của file này
sẽ được lưu lại để bạn tiện làm việc sau này Một khi bạn đã mở file *.hex thành công, bạn không cần thực hiện thao tác này mỗi khi nạp Phần mềm có chức năng reload file trước mỗi lần nạp
Trang 29Để tiết kiệm thời gian, từ phiên bản 1.00.28 trở lên phần mềm thêm chức năng kéo thả, bạn mở file *.hex bằng thao tác đơn giản là kéo và thả file vào giao diện Sử dụng
tổ phím hợp phím nóng Ctrl+F5 để nạp cho Chip khi đang làm việc trên giao diện phần mềm khác (MPLAB IDE)
Trên giao diện chính cho phép bạn cấu hình config một cách dễ dàng bởi những
Combo Box và Check Box
2.8.1 Giới thiệu
TeeChart là một công cụ hỗ trợ vẽ đồ thị được phát triển thành một Component của bộ phần mềm Visual Studio Đây là một công cụ mạnh, hỗ trợ hầu hết các loại đồ thị mà người sử dụng cần có Phần mềm tương thích hoàn toàn với môi trường Visual Studio Nó hỗ trợ vẽ từ dữ liệu nhập vào trực tiếp hoặc từ nguồn dữ liệu database
Đây là một phần mềm phát triển cho bộ phần mềm Visual Studio Nó không tích hợp sẵn, người sử dụng muốn làm việc thì phải cài đặt vào Phiên bản demo của chương trình được cung cấp miễn phí tại trang chủ Steema Cách thức cài đặt của chương trình hoàn toàn giống như các chương trình ứng dụng khác của Windows
Khi đã cài đặt xong, mở chương trình Visual C++ lên, trong hộp Toolbox
sẽ có hiển thị thành phần Steema
2.8.2 Các bước tạo 1 dự án
Để tạo 1 biểu đồ trong Visual C++, cần phải làm các bước sau:
1 Mở chương trình Visual C++
2 Trong hộp Toolbox Add phần ứng dụng TeeChart vào
thả vào cửa sổ soạn thảo Form
4 Chọn biểu đồ muốn vẽ và hiệu chỉnh các thuộc tính của biểu đồ
5 Soạn thảo code cho chương trình
Trang 31Chương 3
NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
3.1 Nội dung nghiên cứu
Khảo sát các hệ thống điều khiển vị trí và vận tốc sử dụng bằng động cơ servo đang hiện có
Nghiên cứu, thiết kế và ứng dụng toàn bộ trong quá trình điều khiển vị trí và cánh tay Robot có sẳn
Sử dụng bộ điều khiển được kết nối với phần mềm giám sát trên máy tính phù hợp với yêu cầu giám sát từ xa
3.2 Linh kiện và thiết bị được sử dụng trong thiết kế và điều khiển
Mô hình cánh tay Robot
Trang 323.3 Phương pháp nghiên cứu
3.3.1 Phương pháp nghiên cứu được sử dụng bao gồm:
- Tham khảo tài liệu: phương pháp chủ đạo trong quá trình thực hiện đề tài Kiến thức xã hội loài người giờ đây đã tích lũy thành số lượng khổng
lồ Tài liệu tham khảo được thu thập qua sách vở và từ Internet
- Tự nghiên cứu: từ nguồn tài liệu thu thập được, quá trình thực hiện đề tài bắt buộc phải trải qua việc nghiên cứu nguồn tài liệu, chắt lọc những thông tin có giá trị, đồng thời tự suy nghĩ tìm ra cách giải quyết vấn đề
- Thực tế làm việc: quá trình thực hiện nảy sinh những vấn đề khó khăn
mà người nghiên cứu phải trực tiếp giải quyết mới có thể tìm ra cách giải quyết đúng đắn
3.3.2 Phương tiện nghiên cứu
Các phương tiện phục vụ cho quá trình nghiên cứu bao gồm:
- Giáo trình, sách tham khảo, tài liệu thu thập từ Internet,…
- Dụng cụ, thiết bị cơ khí, điện tử, máy tính
3.4 Phương pháp nghiên cứu điều khiển và ảnh hưởng của bộ điều khiển PID: 3.4.1 Phương pháp nghiên cứu điều khiển
Trên động cơ servo các thông số cần điều khiển bao gồm: vị trí và vận tốc, thông
số PID
- Bộ điều khiển PID là một bộ điều khiển vòng kín được sử dụng rộng rãi trong công nghiệp Sử dụng bộ điều khiển PID để điều chỉnh sai lệch giữa giá trị đo được của hệ thống (process variable) với giá trị đặt (setpoint) bằng cách tính toán và điều chỉnh giá trị điều khiển ở ngõ ra Tín hiệu được lấy từ encoder hồi tiếp về VĐK, VĐK chuyển giá trị hiệu chỉnh lên đồ thị
- Điều khiển vận tốc,vị trí của động cơ: dùng encoder để xác định được vận tốc của động cơ, lấy giá trị hồi tiếp về VĐK đem so sánh với giá trị đặt.Nếu giá trị encoder lớn hơn (nhỏ hơn) giá trị đặt thì dùng bộ điều khiển PID để hiệu chỉnh sao cho gần với giá trị đặt cho tới vận tốc ổn định
Trang 33Phương pháp xác định thông số PID:
Luật điều khiển thường được chọn trên cơ sở đã xác định được mô hình toán học của đối tượng phải phù hợp với đối tượng cũng như thỏa mãn yêu cầu của bài toán thiết kế
Trong trường hợp không thể xác định được mô hình toán học của đối tượng, có thể tìm luật điều khiển cũng như các tham số của bộ điều khiển thông qua thực nghiệm
Ziegler và Nichols đã đưa ra phương pháp xác định thông số tối ưu của bộ PID
là dựa trên đồ thị hàm quá độ của đối tượng hoặc dựa trên các giá trị tới hạn thu được qua thực nghiệm Trong đề tài tôi chọn phương pháp dựa trên các giá trị giới hạn thu được qua thực nghiệm nên tôi chỉ giới thiệu về phương pháp này
Sử dụng các giá trị tới hạn thu được từ thực nghiệm:
Trong trường hợp không thể xây dựng phương pháp mô hình cho đối tượng thì phương pháp thiết kế thích hợp là phương pháp thực nghiệm Thực nghiệm chỉ có thể tiến hành nếu hệ thống đảm bảo điều kiện: khi đưa trạng thái làm việc của hệ đến biên giới ổn định thì mọi giá trị của tín hiệu trong hệ thống điều phải nằm trong giới hạn cho phép
Phương pháp này còn có tên là phương pháp thứ hai của Ziegler – Nichols Điều đặc biệt là phương pháp này không sử dụng mô hình toán học của đối tượng điều khiển, ngay cả mô hình xấp xỉ gần đúng
Các bước tiến hành như sau :
Trước tiên, sử dụng bộ P lắp vào hệ kín (hoặc dùng bộ PID và chỉnh các thành phần KI và KD về giá trị 0) Khởi động quá trình với hệ số khuếch đại KP thấp, sau đó tăng dần KP tới giá trị tới hạn Kgh để hệ kín ở chế độ giới hạn ổn định, tức là tín hiệu
ra h(t) có dạng dao động điều hòa Xác định chu kỳ tới hạn Tgh của dao động