Tóm tắt Khóa luận tốt nghiệp: Động cơ một chiều là một trong những thành phần rất quan trọng trong các hệ thốngcông nghiệp, các hệ thống cơ khí, các robot thông minh và các sản phẩm gia
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Văn Long
ĐIỀU KHIỂN TỐC ĐỘ VÀ VỊ TRÍ
MOTOR ĐIỆN MỘT CHIỀU
QUA VI ĐIỀU KHIỂN VÀ VI TÍNH
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ kỹ thuật Cơ điện tử
HÀ NỘI - 2013
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Văn Long
ĐIỀU KHIỂN TỐC ĐỘ VÀ VỊ TRÍ MOTOR ĐIỆN MỘT CHIỀU QUA VI ĐIỀU KHIỂN VÀ VI TÍNH
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ kỹ thuật cơ điện tử
Cán bộ hướng dẫn: PGS.TS Trần Quang Vinh
Trang 3VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY
Nguyen Van Long
SPEED AND POSITION CONTROL DC MOTOR USING MICROCONTROLER AND COMPUTER
Major: Mechatronics Engineering
Supervisor: Assoc Prof Dr Tran Quang Vinh
HA NOI – 2013
Trang 4ĐIỀU KHIỂN TỐC ĐỘ VÀ VỊ TRÍ MOTOR ĐIỆN MỘT CHIỀU
QUA VI ĐIỀU KHIỂN VÀ VI TÍNH
Nguyễn Văn Long
Khóa QH-2009-I/CQ , ngành Công nghệ Kỹ thuật cơ điện tử.
Tóm tắt Khóa luận tốt nghiệp:
Động cơ một chiều là một trong những thành phần rất quan trọng trong các hệ thốngcông nghiệp, các hệ thống cơ khí, các robot thông minh và các sản phẩm gia dụng… Với sựphát triển của khoa học kỹ thuật nhất là ngành điện tử học điều khiển, công nghệ vi xử lý đãtạo điều kiện cho việc điều khiển động cơ trở nên thuận tiện hơn song cũng đặt ra vấn đề làđòi hỏi phải nghiên cứu hoàn thiện các hệ điều khiển, đáp ứng yêu cầu ngày càng cao củathực tế cuộc sống và phù hợp với xu thế phát triển khoa học công nghệ
Đã có nhiều công trình nghiên cứu về động cơ một chiều cũng như phương pháp, thuậttoán điều khiển để làm sao cho quá trình điều khiển được đơn giản hơn cũng như tốc độ đápứng được nhanh hơn, tối ưu được độ chính xác của hệ thống và sự tiêu tốn năng lượng Làmột đề tài khá phổ biến và “điều khiển động cơ một chiều” cũng bao hàm rất nhiều xử lí chitiết trong lĩnh vực tự động hóa như đo lường, điều khiển, truyền thông… nên việc nghiêncứu về đề tài này sẽ giúp chúng ta cũng cố được kiến thức chuyên ngành của mình cũngnhư áp dụng những kiến thức đã học vào trong thực tế
Khóa luận “Điều khiển tốc độ và vị trí motor điện một chiều qua vi điều khiển và
vi tính” là sự tổng hợp những kiến thức liên quan đến động cơ một chiều và các phương
pháp điều khiển thích nghi Thông qua việc mô phỏng trên matlab cũng như thiết kế lắp rápmạch điện thực tế sẽ giúp hiểu rõ hơn về cấu tạo, nguyên lí hoạt động và phương pháp điềukhiển động cơ một chiều qua đó cho phép có thể phát triển những ứng dụng phù hợp vớicác yêu cầu cụ thể trong thực tiễn
Từ khóa: động cơ một chiều, thuật toán PID
Trang 5LỜI CAM ĐOAN
Tôi xin cam đoan bản khóa luận tốt nghiệp này là công trình nghiên cứu thực sựcủa cá nhân tôi, nội dung trong bài được thực hiện dựa trên cơ sở nghiên cứu lý thuyết,thực tiễn dưới sự hướng dẫn của PGS.TS Trần Quang Vinh Các số liệu và kết quảtrong đề tài là hoàn toàn trung thực
Hà nội, ngày 15 tháng 5 năm 2013
Sinh viên thực hiện
Nguyễn Văn Long
Trang 6LỜI CẢM ƠN
Lời đầu tiên cho phép em gửi lời cảm ơn tới nhà trường, khoa cơ học kĩ thuật và
tự động hóa, các thầy cô đã dạy dỗ và dìu dắt em trong suôt những năm học vừa quatruyền thụ cho em những kiến thức về chuyên ngành cũng như các lĩnh vực liên quan
để sau này khi ra đời em có thể làm việc, đóng góp cho xã hội
Trong thời gian qua em đã cố gắng rất nhiều để hoàn thành đề tài của minh, vìhạn chế về mặt kiến thức và nội dung nghiên cứu khá rộng nên chắc chắn sẽ có nhiềuthiếu sót Em xin chân thành cảm ơn PGS.TS Trần Quang Vinh đã giúp đở và tư vấncho em rất nhiều trong quá trình thực hiện đề tài Sự hướng dẫn của thầy là một yếu tốquan trọng để em có được khóa luận tốt nghiệp này
Cuối cùng em xin gửi lời cảm ơn tới gia đinh, bạn bè cũng như các thành viêntrong lớp QH-2009-I/CQ-M đã luôn sát cánh và hỗ trợ em trong quá trình thực hiện
đề tài
Em xin chân thành cảm ơn
Hà nội, ngày 15 tháng 5 năm 2013
Sinh viên thực hiện
Nguyễn Văn Long
Trang 7MỤC LỤC
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu của đề tài 1
3 Phương hướng thực hiện đề tài 1
4 Bố cục khóa luận 2
CHƯƠNG 1 MÔ HÌNH HỆ THỐNG ĐỘNG CƠ MỘT CHIỀU 3
1.1 Khái quát về động cơ điện một chiều 3
1.1.1 Nguyên lí, cấu tạo động cơ điện một chiều 3
1.1.2 Phân loại động cơ điện một chiều 4
1.1.3 Điều chỉnh tốc độ động cơ điện một chiều 5
1.2 Mô hình hệ thống động cơ điện một chiều 5
1.2.1 Thiết lập vật lý 5
1.2.2 Phương trình hệ thống 6
CHƯƠNG 2 PHƯƠNG PHÁP ĐIỀU KHIỂN ĐỘNG CƠ MỘT CHIỀU BẰNG THUẬT TOÁN PID VÀ KẾT QUẢ MÔ PHỎNG 8
2.1 Phương pháp điều khiển PID 8
2.2.1 Điều khiển vận tốc 10
2.2.2 Điều khiển vị trí 15
CHƯƠNG 3 THIẾT KẾ VÀ XÂY DỰNG HỆ GIÁM SÁT VÀ ĐIỀU KHIỂN ĐỘNG CƠ MỘT CHIỀU 25
3.1 Giới thiệu linh kiện 25
3.1.1 Vi điều khiển 16F877A 25
3.1.2 Mạch cầu H ( H-Bridge Circuit ) 30
3.1.3 Text LCD 33
Trang 83.1.4 Cổng com và IC max 232 36
3.1.5 IC cổng logic AND 74HC08 39
3.1.6 Bộ lập mã quang (Optical Encoder) 42
3.2 Thiết kế mạch 44
3.2.1 Mạch nguyên lí 44
3.2.1.2 Khối điều khiển 44
3.2.2 Sản phẩm thực tế 48
3.3 Sơ đồ thuật toán và lập trình 50
3.3.1 Sơ đồ thuật toán 50
3.2.3 Lập trình giao diện giám sát và điều khiển trên máy tính 54
3.4 Kết quả đo đạc trên mô hình thực tế 55
KẾT LUẬN 58
1 Kết quả đạt được và hạn chế của đề tài 58
2 Hướng phát triển 58
TÀI LIỆU THAM KHẢO 79
Trang 9MỤC LỤC HÌNH
Hình 1 1 Mặt cắt ngang trục động cơ điện một chiều 3
Hình 1 2 Các loại động cơ điện một chiều 4
Hình 1 3 Sơ đồ mạch điện động cơ một chiều 5
YHình 2 1 Hệ thống điều khiển phản hồi kiểu vòng kín 8
Hình 2 2 Mô hình điều khiển có phản hồi 9
Hình 2 4 Kết quả mô phỏng với Kp=100 12
Hình 2 5 Kết quả mô phỏng với kp=75, Ki=1, Kd=1 13
Hình 2 6 Kết quả mô phỏng với Kp=100, Ki=200, Kd=1 14
Hình 2 7 Kết quả mô phỏng với Kp=100, Ki=200, Kd=10 15
Hình 2 8 Mô hình điều khiển vị trí có phản hồi 16
Hình 2 9 Kết quả mô phỏng với Kp trong khoảng 1 đến 21 18
Hình 2 10 Kết quả mô phỏng với Kp trong khoảng 1 đến 21 có phản hồi 19
Hình 2 11 Kết quả mô phỏng với Kp=21, Kp=100 20
Hình 2 12 Kết quả mô phỏng với các giá trị Ki= 100, 300, 500 21
Hình 2 13 Kết quả mô phỏng với các giá trị Kd= 0.05, 0.15, 0.25 22
Hình 2 14 Kết quả mô phỏng vơi Kd=0.05, 0.15, 0.25 có phản hồi 23
YHình 3 1 Sơ đồ khối mô hình điều khiển động cơ một chiều bằng máy tính và vi điều khiển 25
Hình 3 2 Vi điều khiển 16F877A 26
Hình 3 3 Sơ đồ chân vi điều khiển 16F877A 26
Hình 3 4 Đồ thị dạng xung điều chế PWM 28
Hình 3 5 Mô hình điều khiển sử dụng PWM và tín hiệu ra 28
Trang 10Hình 3 6 Sơ đồ khối CCP (PWMmode)(trái) Các tham số của PWM (phải) 30
Hình 3 7 Khảo sát hoạt động của mạch cầu H 31
Hình 3 8 Nguyên lí hoạt động của mạch cầu H 31
Hình 3 9 Sơ đồ chân của IC L298D (phải) IC L298D (trái) 32
Hình 3 10 Sơ đồ nguyên lí của IC L298D 32
Hình 3 11 Ảnh thực tế text LCD 16x2 33
Hình 3 12 Sơ đồ kết nối LCD 34
Hình 3 13 Cab kết nối cổng com 36
Hình 3 14 Sơ đồ chân cổng com 25 chân và 9 chân 37
Hình 3 15 Dạng tín hệu khi truyền kí tự A qua cổng Com 38
Hình 3 16 IC Max 232 39
Hình 3 17 Sơ đồ kết nối IC max 232 39
Hình 3 18 Sơ đồ chân, sơ đồ nguyên lí IC max 232 40
Hình 3 19 sơ đồ chân và nguyên lí 74ls14 41
Hình 3 20 Optical Encoder 42
Hình 3 21 Nguyên lí hoạt động và dạng tín hiệu ra của Encoder 43
Hình 3 22 Sơ đồ mạch nguyên lí 44
Hình 3 23 Khối điều khiển 45
Hình 3 24 Khối hiển thị 45
Hình 3 25 Khối nguồn 46
Trang 11Hình 3 26 Khối công suất 46
Hình 3 27 Khối giao tiếp với máy tính 47
Hình 3 28 Sơ đồ mạch in 48
Hình 3 29 sơ đồ các khối trong mạch điện 48
Hình 3 30 Sản phẩm đầy đủ 49
Hình 3 31 Giao diện điều khiển 55
Hình 3 32 Kết quả thử nghiệm với Kp=3, Ki=0, Kd=0 56
Hình 3 33 Kết quả thử nghiệm với Kp=4, Ki=2, Kd=0 56
Hình 3 34 Kết quả thử nghiệm với Kp=6, Ki=0.9, Kd=0 57
Trang 12CÁC KÍ HIỆU SỬ DỤNG
góc quay của trục động cơ
b hằng số ma sát nhớt của motor
e suất điện động phản hồi
J moment quán tính của rotor
Kt hằng số moment xoắn của động cơ
s biến trong miền Laplace
T moment xoắn của trục động cơ
V điện áp vào
Trang 13CÁC KÝ HIỆU VIẾT TẮT
DC Direct Current
PID Poportional Integral Derivative
PWM Pulse Width Modulation
PIC Programmable Interface Controller
ADC Analo-to digital Converter
CCP Capture/Compare/PWM
I/O Input/Output
Trang 14MỞ ĐẦU
1 Lý do chọn đề tài
Trong giai đoạn hiện nay nền khoa học kĩ thuật đã có những bước pháttriển đột phá nhất là trong lĩnh vực tự động hóa Trước đòi hỏi ngày càng caocủa nhu cầu cuộc sống hiện nay việc điều khiển không chỉ đơn thần chỉ là đápứng được những yêu cầu con người đặt ra mà còn đòi hỏi hệ thống phải có khảnăng thích nghi và hiểu được con người
Là một sinh viên trong ngành đo lường điều khiển, việc nắm bắt được cáckiến thức liên quan đến lĩnh vực điều khiển tự động là rất quan trọng, điều đóđòi hỏi sinh viên không những phải nắm chắc kiến thức chuyên ngành mà cònphải tiếp cận với thực tế, nghiên cứu áp dụng những kiến thức mình đã họcđược để trau dồi kĩ năng và kiến thức của mình Chính vì thế em đã chọn chomình đề tài điều khiển động cơ như là một cách để tìm hiểu và tiếp cận đến lĩnhvực đo lường điều khiển Mặc dù đây không phải là một đề tài mới song lượngkiến thức bao hàm ở đây rất nhiều việc nghiên cứu và tìm hiểu về động cơ DC
và cách điều khiển nó không những giúp em củng cố được kiến thức mà qua đó
có thể làm sáng tỏ hơn những vần đề liên quan đến việc điều khiển động cơ Từ
đó sẽ có những cải tiến giúp cho các cơ cấu sử dụng động cơ DC sẽ trở nênthông minh và linh hoạt hơn Việc nghiên cứu đề tài này cũng góp phần đưa ranhững hướng đi mới trong việc điều khiển động cơ, và tăng thêm khả năng ứngdụng của động cơ DC trong thực tế
Qua đề tài này em muốn hệ thống lại các kiến thức liên quan đến động cơđiện một chiều, đồng thời làm sáng tỏ vấn đề này qua việc mô phỏng trênmatlab, để mọi người có thể dễ dàng hơn trong việc tìm hiểu và tiếp cận vấn đềnày
2 Mục tiêu của đề tài
Nghiên cứu và xây dựng mô hình điều khiển động cơ một chiều dựa trênthuật toán PID qua máy tính và vi điều khiển
3 Phương hướng thực hiện đề tài
Đề tài được xây dựng dựa trên các kiến thức về động cơ điện một chiều và
lí thuyết điều khiển kết hợp với mô phỏng và thực tế theo trình tự sau
Trang 15- Tìm hiều và nghiên cứu về cấu tạo , nguyên lí hoạt động của động cơ điệnmột chiều, xây dựng các phương trình động học của động cơ điện mộtchiều.
- Tìm hiểu về thuật toán PID, cách thức điều khiển động cơ điện một chiềubằng thuật toán PID
- Mô phỏng bằng matlab về phương pháp điều khiển động cơ điện một chiềubằng thuật toán PID từ đó lựa chọn các thông số phù hợp cho mô hình thựctế
- Triển khai xây dựng mô hình điều khiển động cơ bằng vi điều khiển PIC16F877A
4 Bố cục khóa luận
Nội dung bản khóa luận được phân thành các chương sau:
Chương 1 Mô hình hệ thống động cơ điện một chiều
Chương 2 Phương pháp điều khiển động cơ điện một chiều bằng thuật toánPID và kết quả mô phỏng
Chương 3 Thiết kế và xây dựng hệ giám sát và điều khiển động cơ điệnmột chiều
Trang 16CHƯƠNG 1 MÔ HÌNH HỆ THỐNG ĐỘNG CƠ MỘT CHIỀU
1.1 Khái quát về động cơ điện một chiều
Hiện nay động cơ điện một chiều được dùng rất phổ biến trong các hệ thốngtruyền động điện chất lượng cao, dải công suất động cơ một chiều từ vài watt đếnhàng mê-ga watt Đây là loại động cơ đa dạng và linh hoạt, có thể đáp ứng yêucầu mômen, tăng tốc, và hãm với tải trọng nặng Động cơ điện một chiều cũng
dễ dàng đáp ứng với các truyền động trong khoảng điều khiển tốc độ rộng và đảochiều nhanh với nhiều đặc tuyến quan hệ mômen – tốc độ
Trong động cơ điện một chiều, bộ biến đổi điện chính là các mạch chỉnhlưu điều khiển Chỉnh lưu được dùng làm nguồn điều chỉnh điện áp phần ứngđộng cơ Chỉnh lưu ở đây thường sử dụng chỉnh lưu cầu 3 pha
1.1.1 Nguyên lí, cấu tạo động cơ điện một chiều
Giống như các loại động cơ điện khác, động cơ điện một chiều cũng gồm
có stator và rotor Động cơ điện một chiều gồm có stator, rotor, cổ góp và chổiđiện như trình bày trên hình 1.1 sau
Hình 1 1 Mặt cắt ngang trục động cơ điện một chiềuStator: còn gọi là phần cảm, gồm dây quấn kích thích được quấn tập trungtrên các cực từ stator Các cực từ stator được ghép cách điện từ các lá thép kỹthuật điện được dập định hình sẵn có bề dày 0,5-1mm, và được gắn trên gông từbằng thép đúc, cũng chính là vỏ máy
Rotor: còn được gọi là phần ứng, gồm lõi thép phần ứng và dây quấn phầnứng lõi thép phần ứng có hình trụ, được ghép từ các lá thép kỹ thuật điện ghépcách điện với nhau Dây quấn phần ứng gồm nhiều phần tử, được đặt vào các
Trang 17rãnh trên lõi thép rotor Các phần tử dây quấn rotor được nối tiếp nhau thông quacác lá góp trên cổ góp Lõi thép phần ứng và cổ góp được cố định trên trục rotor.
Cổ góp và chổi điện: làm nhiệm vụ đảo chiều dòng điện trong dây quấnphần ứng
1.1.2 Phân loại động cơ điện một chiều
Dựa vào hình thức kích từ, người ta chia động cơ điện một chiều thành các loại sau:
Động cơ điện một chiều kích từ độc lập: Dòng điện kích từ được lấy từ nguồn
riêng biệt so với phần ứng Trường hợp đặc biệt, khi từ thông kích từ được tạo ra bằng nam châm vĩnh cữu, người ta gọi là động cơ điện một chiều kích thích vĩnh cửu
Động cơ điện một chiều kích từ song song: Dây quấn kích từ được nối song song
với mạch phần ứng
Động cơ điện một chiều kích từ nối tiếp: Dây quấn kích từ được mắc nối tiếp với
mạch phần ứng
Động cơ điện một chiều kích từ hỗn hợp: Dây quấn kích từ có hai cuộn, dây quấn
kích từ song song và dây quấn kích từ nối tiếp Trong đó, cuộn kích từ song song thường là cuộn chủ đạo Hình 1.2 trình bày các loại động cơ điện một chiều
Hình 1 2 Các loại động cơ điện một chiềua) Động cơ điện một chiều kích từ độc lập
b) Động cơ điện một chiều kích từ song song
c) Động cơ điện một chiều kích từ nối tiếp
d) Động cơ điện một chiều kích từ hỗn hợp
Trang 181.1.3 Điều chỉnh tốc độ động cơ điện một chiều
Ưu điểm cơ bản của động cơ điện một chiều so với các loại động cơ điệnkhác là khả năng điều chỉnh tốc độ dễ dàng, các bộ điều chỉnh tốc độ đơn giản,
dễ chế tạo Do đó, trong điều kiện bình thường, đối với các cơ cấu có yêu cầuchất lượng điều chỉnh tốc độ cao, phạm vi điều chỉnh tốc độ rộng, người tathường sử dụng động cơ điện một chiều
Đối với các hệ thống truyền động điện một chiều có yêu cầu điều chỉnh tốc
độ cao thường sử dụng động cơ điện một chiều kích từ độc lập Trong phạm vikhóa luận này này, xét khả năng điều chỉnh tốc độ động cơ điện một chiều kích
Hình 1 3 Sơ đồ mạch điện động cơ một chiềuTrong ví dụ này, chúng ta giả sử đầu vào của hệ thống là nguồn điện áp (V)
áp dụng cho phần ứng của động cơ, đầu ra là tốc độ quay của trục d ( theta ) / dt.Roto và trục coi như cố định với nhau Giả thiết rằng đây là mô hình ma sát nhớt,mô-men xoắn của lực ma sát ma sát tỉ lệ với vận tốc góc của trục
Trang 19Các thông số vật lý trong ví dụ này là:
(J) moment quán tính của rotor 0,01 kg.m ^ 2(b) hằng số ma sát nhớt của motor 0,1 NMS(Ke) hằng số suất điện động 0,01 V / rad / giây(Kt) hằng số mô-men xoắn của động cơ 0,01 Nm / Amp(R) điện trở 1 Ohm
Từ hình trên, chúng ta có thể lấy đạo hàm các phương trình điều khiển sauđây dựa trên định luật 2 Newton và định luật Kirchhoff về điện thế
Trang 20s (Js+b )θ ( s)=KI (s )
( Ls+ R ) I (s )=V (s )−Ksθ ( s)
Bằng cách loại bỏ I (s ) từ hai phương trình trên chúng ta có được hàmtruyền vòng hở sau, trong đó tốc độ quay được coi là đầu ra và điện áp phần ứngđược coi là đầu vào
P (s)= θ(s)´
V (s)=
K ( Js+ b) ( Ls+ R)+ K2(
rad /sec
Trong trường hợp điều khiển vị trí thì vị trí trục động cơ được coi là đầu ra,chúng ta có thể có được ví trí bằng cách tích phân tốc độ, vì thế chúng ta chỉ cầnchia hàm truyền trên cho s
Ở dạng không gian trạng thái, các phương trình điều khiển trên có thể đượcthể hiện bằng cách chọn tốc độ quay và dòng điện như các biến trạng thái Mộtlần nữa, điện áp phần ứng được coi là đầu vào và tốc độ quay được chọn là đầura
d
dt[´θ i]=[ −J b
K J
−K L
−R
L ] [´θ i]+[01
L]V
y=[1 0][´θ i]
Tương tự với trường hợp điều khiển vị trí, chọn vị trí động cơ, tốc độ quay
và dòng điện là các biến trạng thái ta có
(1.6)
(1.7)
(1.8)
(1.9)
Trang 21CHƯƠNG 2 PHƯƠNG PHÁP ĐIỀU KHIỂN ĐỘNG CƠ MỘT CHIỀU BẰNG
THUẬT TOÁN PID VÀ KẾT QUẢ MÔ PHỎNG
Mô hình tổng quát của một hệ điều khiển vòng kín có phản hồi như hình 2.1
Bộ điều khiển
Mô hình hệ thống
- u tín hiệu điều khiển
- e là sai lệch giữa điểm đặt và tín hiệu ra
Với động cơ một chiều, có 2 loại điều khiển cần quan tâm:
- Điều khiển tốc độ trục quay motor tới một giá trị đặt trước (settingspeed)
- Điều khiển vị trí góc quay trục motor tới một giá trị đặt trước (settingposition/rotation angle)
Có nhiều phương pháp để điều khiển nhằm đảm bảo hệ thống đạt tới giá trịđặt trước (điểm đặt) một cách tối ưu, ổn định: nghĩa là có thời gian đáp ứngnhanh nhất và không quá lố… Bản khóa luận này chỉ quan tâm tới phương phápđiều khiển PID là một phương pháp được sử dụng rất có hiệu quả hiện nay.Dưới đây mô tả phương pháp điều khiển PID và kết quả mô phỏng trênphần mềm matlab
2.1 Phương pháp điều khiển PID
Xét một hệ điều khiển phản hồi như hình sau
Trang 22Hình 2 2 Mô hình điều khiển có phản hồiTrong mô hình này:
r là giá trị tốc độ quay của motor cần đặt
θ và ´θ là góc quay và vận tốc góc của motor
u là năng lượng (điện thế, dòng điện,…) đặt vào motor
Ở đây lối ra của bộ điều khiển C(s) là lối vào u của mô hình hệ thống P(s) trongmiền thời gian nếu tín hiệu điều khiển u(t) phụ thuộc vào sai lệch e(t) theo luật sau thì
bộ điều khiển được gọi là điều khiển PID:
u (t )=K p e (t )+K i∫e (t )dt +K p de
dt
Ở đây Kp, Ki, Kd lần lượt là các hệ số tỉ lệ, tích phân và vi phân
Tín hiệu điều khiển u(t) được cấp tới mô hình hệ thống và một giá trị lối ra mới ´θ
nhận được tín hiệu này sau đó được phản hồi trở lại và so sánh với giá trị đặt r để cóđược một giá trị sai lệch mới bộ điều khiển lại dung tín hiệu sai lệch mới này để tínhgiá trị u một lần nữa và cứ như vậy
Hàm truyền của bộ điều khiển PID được thiết lập bằng việc chuyển đổi Laplacephương trình kể trên:
K p+Ki
s +K d s= Kd s
2
+K p s+ Ki s
Trong Matlab có một hàm thực hiện luật điều khiển PID là : pid(kp,ki,kd)
(2.1)
(2.2)
Trang 23Giải thuật điều khiển PID được dùng cho hầu hết các vòng điều khiển động cơtrong công nghiệp cũng như những ứng dụng khác Để cho vòng điều khiển làm việcmột cách tối ưu, các hệ số Kp,Ki, Kd phải được điều chỉnh một cách thích hợp Cómột vài cách chỉnh các hệ số này trong đó phương pháp Ziegler – Nichols là khá phổbiến [6] Các bước điều chỉnh được thực hiện như sau:
1 Chọn điểm đặt mong muốn, đặt Ki, Kd bằng không; sau đó tăng Kp đến cực đạiđến khi xảy ra dao động
2 Nếu hệ dao động, chia Kp cho 2
3 Tăng dần Kd và quan sát đáp ứng của hệ Chọn Kd sao cho đáp ứng được làmnhụt nhanh
4 Tăng từ từ Ki cho đến khi xảy ra dao động Chọn giá trị bằng 12 hoặc 13 giá trịnày
Với một điểm đặt vận tốc 1 rad/sec, yêu cầu thiết kế đặt ra là:
- Thời gian đáp ứng ít hơn 2 giây
- Độ vọt lố ít hơn 5%
- Sai lệch tĩnh e(t) nhỏ hơn 1%
(2.3)
Trang 24Chúng ta tạo m-file với các câu lệnh sau
Đầu tiên chúng ta thử với bộ điều khiển tỉ lệ với hệ số khuếch đại là 100,nghĩa là C(s)=100, để biết chức năng của hàm truyền vòng kín chúng ta sử dụngcâu lệnh ‘feedback’, chúng ta thêm đoạn mã sau vào cuối m-file
Trang 25Hình 2 3 Kết quả mô phỏng với Kp=100
Từ đồ thị trên ta thấy sai lệch tĩnh và độ vọt lố quá lớn, chúng ta có thểgiảm sai lệch này bằng cách tăng hệ số khuếch đại Kp, tuy nhiên việc tăng giá trịcủa Kp thường dẫn tới việc tăng độ vọt lố, vì thế có vẻ như không phải tất cả cácyêu cầu thiết kế có thể đáp ứng được đáp ứng với một bộ điều khiển tỉ lệ đơngiản
Thực tế này có thể được xác nhận bằng cách thử nghiệm với các giả trị kháccủa Kp, tuy nhiên ta có thể sử dụng bộ công cụ thiết kế SISO bằng cách nhập
lệnh ‘sisotool(P_motor)’ sau đó theo dõi từng bước giá trị trả về qua đồ thị từ tab
‘Analysis Plots’ của cửa sổ ‘Control and Estimation Tools Manager’ Kết hợpvới việc kiểm tra hộp thoại ‘Real-Time Update’, ta có thể thay đổi được thông sôđiều khiển trong tab ‘Compensator Editor’ và xem kết quả ảnh hưởng qua giá trị
Trang 26trả về của bộ điều khiển vòng kín Qua đó thấy được điều khiển tỉ lệ không đủ đểđáp ứng yêu cẩu điều khiển, cần phải thêm các thành phần tích phân và vi phânvào bộ điều khiển.
2.2.1.2 Điều khiển PID
Với bộ điều khiển PID thành phần tích phân sẽ giúp loại bỏ sai lệch tĩnh, vàthành phần vi phân sẽ làm giảm độ vọt lố Chúng ta sẽ thử với bộ điều khiểm PID
có hệ số Ki và Kd nhỏ, chỉnh sửa m-file với các giá trị như sau, sau đó chạy vàđưa ra đồ thị bên dưới
title('PID Control with Small Ki and Small Kd')
Hình 2 4 Kết quả mô phỏng với kp=75, Ki=1, Kd=1
Từ đồ thị trên cho thấy sai lệch tĩnh đã thực sự dần về 0, tuy nhiên thời gian
để đạt được trạng thái ổn định là quá lớn so với yêu cẩu thiết kế là 2s
2.2.1.3 Điều chỉnh độ vọt lố.
Trang 27Trong trường hợp này phần đuôi dài trên đồ thị bước đáp ứng là kết quả củaviệc chọn hệ số tích phân nhỏ dẫn tới việc tốn nhiều thời gian cho việc loại bỏ sailệch tĩnh Quá trình này có thể được tăng tốc bằng cách tăng hệ số Ki Quay lạivới m-file thay đổi giá trị Ki lên 200, chạy lại và ta có được đồ thị bên dưới.
title('PID Control with Large Ki and Small Kd')
Hình 2 5 Kết quả mô phỏng với Kp=100, Ki=200, Kd=1
Như mong muốn, sai lệch tĩnh đã được loại bỏ một cách nhanh chóng, tuynhiên Ki lớn đã làm cho độ vọt lố tăng lên rất nhiều Hãy tăng Kd trong giới hạn
có thể để giảm độ vọt lố Quay lại m-file thay đổi Kd lên 10, chạy và ta có được
đồ thị trả về như sau
Kp = 100;
Trang 28title('PID Control with Large Ki and Large Kd')
Hình 2 6 Kết quả mô phỏng với Kp=100, Ki=200, Kd=10Như đã hi vọng việc tăng Kd đã làm giảm độ vọt lố, bây giờ chúng ta biếtnếu sử dụng bộ điều khiển PID với các thông số
Kp=100, Ki=200, và Kd=10 tất cả các yêu cầu thiết kế sẽ được đáp ứng
2.2.2 Điều khiển vị trí
Các nội dung mô phỏng của phần này bao gồm:
- Điều khiển tỉ lệ
Trang 29- Điều khiển PI
- Điều khiển PID
Hàm truyền của hệ thống điều khiển vòng hở của động cơ một chiều trong trườnghợp này là:
Cấu trúc của hệ thống điều khiển vị trí được mô tả như hình dưới
Hình 2 7 Mô hình điều khiển vị trí có phản hồiVới điểm đặt góc quay là 1 radian, yêu cầu thiết kế của bộ điều khiển là:
- Thời gian xác lập nhỏ hơn 0,040 giây
- Độ vọt lố ít hơn 16%
- Không có sai lệch tĩnh, ngay cả tín hiệu đầu vào bị nhiễu
Tạo bộ điều khiển PID thêm vào hệ thống, tạo m file với các câu lệnh bên dưới
Trang 30C ( s)=K p+K i
s +K d s= K d s
2
+K p s+ K i s
2.2.2.1Điều khiển tỉ lệ
Trước tiên ta thử với bộ điều khiển tỉ lệ có hệ số khuếch đại trong khoảng 1đến 21 Một mảng của mô hình LTI, với mỗi tỉ lệ khuếch đại khác nhau có thể sửdụng cho một vòng lặp Hàm truyền vòng kín có thể được tạo ra bằng cách sửdụng câu lệnh ‘feedback’ Thêm đoạn mã sau vào sau m-file và thực thi nó
step(sys_cl(:,:,1), sys_cl(:,:,2), sys_cl(:,:,3), t)
ylabel('Position, \theta (radians)')
title('Response to a Step Reference with Different Values of K_p')
legend('K_p = 1', 'K_p = 11', 'K_p = 21')
Trang 31Hình 2 8 Kết quả mô phỏng với Kp trong khoảng 1 đến 21
Chúng ta sẽ xét đến đáp ứng của hệ thống cho mỗi bậc nhiễu, trong trườnghợp này giả sử mức tham chiếu bằng không và xem đáp ứng của hệ thống nhưthế nào với nhiễu của chính nó Hàm ‘feedback’ có thể vẫn được dùng để tạo rahàm truyền vòng lặp kín ở những nơi có phản hồi tiêu cực, tuy nhiên bây giờ chỉcòn hàm truyền P(s) là có tín hiệu ra và bộ điều khiển C(s) được coi như là mộtthành phần phản hồi Quay lại sơ đồ khối trên để xem lại sơ đồ hệ thống Thêmcác câu lệnh sau mào m-file và thực thi nó để có được kết quả bên dưới
dist_cl = feedback(P_motor,C);
step(dist_cl(:,:,1), dist_cl(:,:,2), dist_cl(:,:,3), t)
ylabel('Position, \theta (radians)')
title('Response to a Step Disturbance with Different Values of K_p')
legend('K_p = 1', 'K_p = 11','K_p = 21')
Trang 32Hình 2 9 Kết quả mô phỏng với Kp trong khoảng 1 đến 21 có phản hồi
Từ đồ thị cho thấy hệ thống không có sai lệch tĩnh đối với bậc tham chiếucủa nó, với bất kì lựa chọn nào của giả trị Kp Điều này là do hệ thống có thànhphần tích phân, đó là hệ thống loại 1 Tuy nhiên hệ thống có sai lệch tĩnh đáng kểkhi tăng thêm nhiễu Cụ thể là đáp ứng của hệ thống do tham chiếu và nhiễu ápdụng đồng thời là tổng của hai đồ thị trên
2.2.2.2 Điều khiển PI
Lựa chọn bộ điều khiển PI để có thể loại bỏ sai lệch tĩnh Ta đặt Kp = 21 và
hệ số tích phân Ki trong khoảng 100 đến 500 Thay đổi m-file như sau và thực thi
để có được kết quả bên dưới
Kp = 21;
Trang 33step(sys_cl(:,:,1), sys_cl(:,:,2), sys_cl(:,:,3), t)
ylabel('Position, \theta (radians)')
title('Response to a Step Reference with K_p = 21 and Different Values of K_i')legend('K_i = 100', 'K_i = 300', 'K_i = 500')
Hình 2 10 Kết quả mô phỏng với Kp=21, Kp=100Bây giờ hãy quan sát những gì xảy ra với các bước đáp ứng nhiễu Thay đổicác câu lệnh dưới đây trong m-file và thực thi lại ta có thể có được đồ thị như bêndưới
dist_cl = feedback(P_motor,C);
step(dist_cl(:,:,1), dist_cl(:,:,2), dist_cl(:,:,3), t)
Trang 34ylabel('Position, \theta (radians)')
title('Response to a Step Disturbance with K_p = 21 and Different Values ofK_i')
legend('K_i = 100', 'K_i = 300', 'K_i = 500')
Hình 2 11 Kết quả mô phỏng với các giá trị Ki= 100, 300, 500
Điều khiển tích phân đã làm giảm sai lệch tĩnh về 0, ngay cả khi xảy ra bậcnhiễu, đó là mục tiêu của việc thêm thành phần tích phân Đối với đáp ứng vớicác mức tham chiếu, số lượng các dao động tăng nhẹ khi Ki lớn hơn Tuy nhiênđáp ứng do nhiễu thay đổi đáng kể khi Ki thay đổi Cụ thể là với giá trị Ki lớnhơn sai lệch giảm về không nhanh hơn Ta chọn Ki = 500 vì sai lệch bởi nhiễu vềkhông nhanh mặc dù đáp ứng đến giá trị tham chiếu còn lâu hơn thời gian thiếtđặt và vọt lố khá cao Chúng ta sẽ cố gắng để giảm thời gian đáp ứng và độ vọt lốbằng cách thêm thành phần vi phân vào bộ điều khiển
2.2.2.3 Điều khiển PID
Thêm thành phần vi phân vào cho bộ điều khiển nghĩa là chúng ta có tất cả
3 thành phần của bộ điều khiên PID Chúng ta sẽ khảo sát với giá trị Kd trong
Trang 35khoảng từ 0,05 đến 0,025 Quay lại với m-file và thêm vào các câu lệnh sau, sau
đó thực thi ta sẽ có kết quả như hình dưới
step(sys_cl(:,:,1), sys_cl(:,:,2), sys_cl(:,:,3), t)
ylabel('Position, \theta (radians)')
title('Response to a Step Reference with K_p = 21, K_i = 500 and DifferentValues of K_d')
legend('K_d = 0.05', 'K_d = 0.15', 'K_d = 0.25')
Trang 36Hình 2 12 Kết quả mô phỏng với các giá trị Kd= 0.05, 0.15, 0.25
Hãy quan sát những gì xảy ra ở các bước đáp ứng nhiễu, thay đổi dòng lệnhdưới đây ở m-file và chạy ở chế độ dòng lệnh
dist_cl = feedback(P_motor,C);
t = 0:0.001:0.2;
step(dist_cl(:,:,1), dist_cl(:,:,2), dist_cl(:,:,3), t)
ylabel('Position, \theta (radians)')
title('Response to a Step Disturbance with K_p = 21, K_i = 500 and Differentvalues of K_d')
legend('K_d = 0.05', 'K_d = 0.15', 'K_d = 0.25')
Trang 37Hình 2 13 Kết quả mô phỏng vơi Kd=0.05, 0.15, 0.25 có phản hồi
Có vẻ như với Kd =0.15, chúng có thể đáp ứng những yêu cầu thiết kế đãđặt ra Để xác định chính xác đặc điểm của từng bước đáp ứng có thể sử dụngmenu chuột phải của đồ thị bước đáp ứng, hoặc có thể sử dụng câu lệnh
‘stepinfo’ với cấu trúc như bên dưới
Trang 38Từ những điều trên, chúng ta thấy rằng đáp ứng của các mức tham chiếu cóthời gian đáp ứng khoảng 34ms(<40ms), độ vọt lố 12% (<16%) và không có sailệch tĩnh Ngoài ra các đáp ứng khi có can nhiễu cũng không gây ra sai lệch tĩnh.
Vì vậy nếu chúng ta sử dụng bộ điều khiển PID với các hệ số:
Kp=21, Ki =500 và Kd =0,15
thì tất cả những yêu cầu thiết kế đặt ra sẽ được đáp ứng
Trang 39CHƯƠNG 3 THIẾT KẾ VÀ XÂY DỰNG HỆ GIÁM SÁT VÀ ĐIỀU
KHIỂN ĐỘNG CƠ MỘT CHIỀU
Một sơ đồ khối điều khiển động cơ một chiều DC dựa trên vi xử lý và máy vitính đã được thiết kế và xây dựng như trình bày trên hình 3.1 Đây là một nền tảng tốt
để có thể nghiên cứu phát triển các giải thuật điều khiển tiên tiến như giải thuật PID
Hình 3 1 Sơ đồ khối mô hình điều khiển động cơ một chiều
bằng máy tính và vi điều khiểnCăn cứ vào giá trị đặt (tốc độ/góc quay motor) được nhập vào từ bàn phím, vi điềukhiển sẽ so sánh, tính toán với tốc độ/góc quay thực tế thu được qua encoder để xuất racác lệnh điều khiển phù hợp (ví dụ theo luật PID) tới mạch công suất điều khiểnmotor Đồng thời các giá trị tốc độ/góc quay thực tế cũng được truyền tới cổng COMcủa máy vi tính để dùng làm dữ liệu lối vào cho chương trình kiểm tra, hiển thị trênmáy tính được viết trong môi trường Visual C++
3.1 Giới thiệu linh kiện
3.1.1 Vi điều khiển 16F877A
3.1.1.1 Khái quát về vi điều khiển 16F877A
Trang 40Hình 3 2 Vi điều khiển 16F877A
Hình 3 3 Sơ đồ chân vi điều khiển 16F877A
- Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14bít.Mỗi lệnh đều được thực thi trong một chu kỳ xung clock.Tốc độ hoạt độngtối đa cho phép là 20MHz với một chu kỳ lệnh là 200ns.Bộ nhớ chương trình8Kx14 bít, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM vớidung lượng 256x8 byte.Số PORT I/O là 5 với 33 pin I/O
- Các đặc tính ngoại vi bao gồm các khối chức năng sau:
+ Timer0: bộ đếm 8 bít với bộ chia tần số 8 bít
+ Timer1: bộ đếm 16 bít với bộ chia tần số, có thể thực hiện chức năngđếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế
độ sleep
+ Timer2: bộ đếm 8 bít với bộ chia tần số, bộ postcaler
+ Hai bộ Capture/ so sánh/ điều chế độ rộng xung
+ Các chuẩn giao tiếp nối tiếp SSP, SPI và I2C