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 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ẫnTh.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àinày.
Đặc biệt, em xin cảm ơn quý Thầy / Cô trong hội đồng đã dành thời giannhậ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ốtquá 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ánPID Độ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ụngthuậ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 5MỤ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
DANH SÁCH CÁC CHỮ VIẾT TẮT
Trang 7PID: Proportional–Integral–Derivative controller
PIC: Programable intelligent Computer
OTP: One Time Programable
RISC: Reduced Intruction Set Computer
EEPROM: Electrically Erasable Programmable Read-Only MemoryRAM: Random Access Memory
CMOS: Complementary Metal-Oxide-Semiconducto
SFRs: Special Function Registers
GPR: General Purpose RAM
PSP: Parallel Slave Port
MSSP Master Synchronous Serial Port
ROM: Read-Only Memory
VĐK: Vi điều khiển
DANH SÁCH CÁC HÌNH
Trang 8Hì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
DANH 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
Trang 9Bả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 10Trong đ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ànhkhoa học này Từ điều khiển ON – OFF, điều khiển tỉ lệ, điều khiển PID, điềukhiể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 đượcxem 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áttriể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, quenthuộ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ý khixâ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ềukhiể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ậntố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ốithiể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ể quansá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ằngngô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ếtbằ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 namchâ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ớiviệ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
2.1 Tổng quan điều khiển động cơ
Đ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ôngsuấ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 Tổng quan về 16F877A
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 intelligentComputer) 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ácsả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
• 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, chophép ghi/xóa nhiều lần bắng các mạch điện thông thường
• Loại thứ nhất là dòng PIC cơ bản (Base-Line), gồm các PIC 12Cxxx, có độ dàilệ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 đặttrong 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àngloạt các mô-đun ngoại vi tích hợp sẵn (như SART, PWM, ADC ), với bộ nhớ chươngtŕ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.
• 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ệmnă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ềubiế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)
• 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ếpvớ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ươngtrì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ớiPIC 16F877A được chia ra làm 4 bank Mỗi bank có dung lượng 128 byte, bao gồmthanh 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 clockcủ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ạpchương trình cho vi điều khiển với các chế độ nạp khác nhau PORTB còn liênquan đế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ấutrúc của Timer0 cho phép lựa chọn xung clock tác động và cạnh tích cực củaxung 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ôngcho 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 cungcấ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:
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:
ngắt TMR2
Trang 20PWM Capture Hoạt động độc lập
Bảng 2.1 Các trường hợp hoạt động của Timer1 và Timer2Khi hoạt động ở chế độ PWM (Pulse Width Modulation _ khối điều chế độ rộngxung), tín hiệu sau khi điều chế sẽ được đưa ra các pin của khối CCP (cần ấn định các pinnày là output) Để sử dụng chức năng điều chế này trước tiên ta cần tiến hành các bước càiđặt sau:
a 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 đưagiá 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 ghiCCPRxL 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 thanhghi TRISC
d Thiết lập giá trị bộ chia tần số prescaler của Timer2 và cho phép Timer2 hoạt độngbằ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 PWMTrong đó giá trị 1 chu kì (period) của xung điều chế được tính bằng công thức:
PWM period = [(PR2)+1]*4*TOSC*(giá trị bộ chia tần số của TMR2)
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ạiTimer2 để 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:
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:
PWM duty cycle = (CCPRxL:CCPxCON<5:4>)*TOSC*(giá trị bộ chia tần số TMR2)
Như vậy 2 bit CCPxCON<5:4> sẽ chứa 2 bit LSB Thanh ghi CCPRxL chứa bytecao của giá trị quyết định độ rộng xung Thanh ghi CCPRxH đóng vai trò là buffer cho khốiPWM Khi giá trị trong thanh ghi CCPRxH bằng với giá trị trong thanh ghi TMR2 và haibit 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ốiPWM như hình dưới
Trang 22Hình 2.8 Sơ đồ khối CCP (Compare mode).
Một số điểm cần chú ý khi sử dụng khối PWM:
không được sử dụng trong quá trình điều chế độ rộng xung của khối PWM
tiếp tục được giữ ở mức cao sau khi giá trị PR2 bằng với giá trị TMR2
2.3 Tổng quan về động cơ
Đ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 servonhư động cơ một chiều, động cơ bước, động cơ xoay chiều ba pha, xi lanh thủy… ở đâykhô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
Đặ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ừ.
Trang 23Hì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 mangcuộ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đ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ếunố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ềudò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:
Trang 24Ua : đ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à đảochiều dòng điện cấp vào cuộn cảm
cấp cho rotor được chuyển cho nhiệt điện trở Toàn bộ động năng và điện năng đượctiêu thụ trên nhiệt điện trở
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 khikhẩ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ầnthay 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
2.4 Tổng quan về encoder
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
Trang 25Hình 2.10 Cấu tạo các thành phần bên trong của EncoderCấ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ếpcá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ếnquang học, các nguồn sáng tương ứng và một bộ điều khiển.
Khi 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
Trang 26Đường trong (pha Z) chỉ có một khe trong suốt và tạo ra một xung trong mỗi vòngquay Z được dùng để xác định vị trí gốc ( Z: đầu không) hoặc báo hiệu đã quay hếtmột vòng.
2.5 Tổng quan về phần mềm Visual C++
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ôitrườ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ếtcho 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ênthực hiện rất nhiều công việc, hỗ trợ về coding, thiết kế giao diện,… Trong VC++, 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
6 Viết code
Trang 277 Kiểm tra lỗi.
CCSC là trình biên dịch lập trình ngôn ngữ C cho Vi Điều Khiển PIC của hãng Microchip.Chương trình là sự tích hợp của 3 trình biên dịch cho 3 dòng PIC khác nhau đó là:
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ìn
h 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:
3 Viết code điều khiển
4 Kiểm tra lỗi
5 Biên dịch sang file có đuôi *.hex
Trang 286 Đóng chương trình.
2.7 Tổng quan về phần mềm nạp PIC Burn-E Programmer.
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ốihợ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ể đượcthự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ệnchú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 dunghiệ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 filetrước mỗi lần nạp
Để 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éothả, 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ệnphầ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ữngCombo Box và Check Box
2.8 Giới thiệu về TeeChart
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ộtComponent 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
Trang 29toàn với môi trường Visual Studio Nó hỗ trợ vẽ từ dữ liệu nhập vào trực tiếphoặ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ênbả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.
3 Chọn thành phần TChart (hình ) trong bộ Steema của Toolbox rồi ké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
đang hiện có
cánh tay Robot có sẳn
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
+, Phần mềm CCSC, phần mềm nạp cho PIC Burn-E-Programmer
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àibắ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ữngthô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ảiquyế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
trong công nghiệp Sử dụng bộ điều khiển PID để điều chỉnh sai lệch giữagiá trị đo được của hệ thống (process variable) với giá trị đặt (setpoint) bằngcá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ị
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ểnPID để 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ọccủ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ánthiế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ựcnghiệ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 đượcqua 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
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êngiớ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ạncho 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ềukhiển, ngay cả mô hình xấp xỉ gần đúng
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ànhphầ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