Điều khiển tốc độ động cơ sử dụng giải thuật Fuzzy (mờ) và PID. Tài liệu giải thích cặn kẽ thế nào là giải thuật Fuzzy và PID. Nhận dạng hàm truyền động cơ 1 chiều. Đồ án sử dụng board STM32F4. Lập trình bằng matlab 2012.
Trang 1ĐỒ ÁN VI XỬ LÝ THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ
DC SỬ DỤNG BỘ ĐIỀU KHIỂN PID VÀ FUZZY
SVTH: Nguyễn Văn Học – 15151153
Đỗ Phú Lộc – 15151177
GVHD: ThS Tạ Văn Phương
TP HỒ CHÍ MINH, THÁNG 6 NĂM 2018
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA: ĐIỆN – ĐIỆN TỬ
BỘ MÔN: ĐIỀU KHIỂN TỰ ĐỘNG
Trang 2MỤC LỤC
Trang
Mở đầu 1
Chương I: TỔNG QUAN VỀ HỆ THỐNG .2
1.1 Giới thiệu về đề tài 2
1.1.1 Thiết bị sử dụng 2
1.1.2 Sơ đồ kết nối dây thiết bị 4
1.2 Các nghiên cứu liên quan đến vấn đề này 5
Chương II: MÔ TẢ PHƯƠNG TRÌNH ĐỘNG HỌC CỦA HỆ THỐNG VÀ ĐIỀU KHIỂN DỰA VÀO PHƯƠNG PHÁP CỔ ĐIỂN (PID) 6
2.1 Phương trình động học của hệ thống 6
2.1.1 Chương trình nạp và chương trình điều khiển lấy mẫu 6
2.1.2 Cách thu thập mẫu và nhận dạng hàm truyền 8
2.2 Điều khiển sử dụng PID 12
2.2.1 Giới thiệu chung về bộ điều khiển PID 12
2.2.2 Chương trình nạp và chương trình điều khiển PID 19
2.2.3 Cách điều chỉnh thông số PID để đạt kết quả tốt 19
Chương III: ĐIỀU KHIỂN HỆ THỐNG SỬ DỤNG BỘ ĐIỀU KHIỂN FUZZY 21
3.1 Giới thiệu về điều khiển mờ 21
3.2 Cấu trúc bộ điều khiển mờ 21
3.3 Chương trình nạp và chương trình điều khiển fuzzy 23
Chương IV: KẾT QUẢ ĐẠT ĐƯỢC 27
4.1 Phương trình động học mô tả hệ thống 27
4.2 Điều khiển hệ thống sử dụng PID 27
4.3 Điều khiển hệ thống sử dụng Fuzzy 27
Chương V: KẾT LUẬN 28
Trang 3MỞ ĐẦU
1 Đặt vấn đề:
Trong công nghiệp, động cơ điện là một thiết bị rất phổ biến được sử dụngtrong các dây chuyền sản xuất, các máy móc, các loại xe,… và trong nhiều trường hợpcác dây chuyền, máy móc và xe đó sẽ vận hành với những tốc độ khác nhau để đápứng các nhu cầu công việc, điều kiện làm việc khác nhau
Trong các loại động cơ thì động cơ điện một chiều là loại động cơ không nhữngcó khả năng điều chỉnh tốc độ dễ dàng mà cấu trúc mạch động lực, mạch điều khiểncũng đơn giản hơn những loại động cơ khác, chất lượng điều chỉnh cao trong dải điềuchỉnh rộng Do đó, nhóm chúng em xin được chọn đề tài “Điều chỉnh tốc độ động cơđiện một chiều” để tiếp cận nghiên cứu về vấn đề trên
2 Mục tiêu đề tài:
Mục tiêu của đề tài là hiểu và vận dụng được nguyên lý hoạt động cũng nhưcách điều chỉnh tốc độ của động cơ điện một chiều, biết cách ứng dụng được các thuậttoán điều khiển tự động vào một vấn đề tự động hoá
3 Nội dung của đề tài:
Nội dung của đề tài trình bày về cách xây dựng một mô hình điều chỉnh tốc độđộng cơ điện một chiều, từ phần cứng đến phần mềm Ứng dụng thuật toán điều khiểnPID và thuật toán Fuzzy để tối ưu hoá một vấn đề điều khiển tự động
5 Ý nghĩa khoa học và thực tiễn của đề tài:
Điều chỉnh động cơ điện một chiều là một mô hình đơn giản và dễ thực hiện,có thể được ứng dụng để là mô hình học tập hoặc nghiên cứu ở nhiều trường học hoặcphòng thí nghiệm Trong thực tế, việc điều chỉnh tốc độ động cơ cũng có ý nghĩa vôcùng quan trọng, đặc biệt là đối với các loại động cơ có công suất lớn trong sản xuất
Trang 4CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG
1.1 Giới thiệu về đề tài
1.1.1 Thiết bị sử dụng
Dựa trên yêu cầu điều khiển của hệ thống, nhóm sử dụng các linh kiện như sau:
Vi điều khiển STM32F407VG
• Vi điều khiển STM32F407VGT6 có lõi32-bit ARM Cortex-M4F, Flash 1MB,RAM 192KB trong một gói LQFP100
• On-board ST-LINK/V2 với chuyển đổichế độ lựa chọn để sử dụng bộ như là mộtđộc lập STLINK/V2 (với kết nối SWD đểlập trình và gỡ lỗi)
• Board cấp điện: thông qua bus USB hoặctừ một điện áp cung cấp 5V bên ngoài
• Nguồn ứng dụng bên ngoài: 3V và 5VLIS302DL, cảm biến chuyển động STMEMS, đầu ra gia tốc số 3 trụcMP45DT02, bộ cảm biến âm thanh STMEMS, micro kỹ thuật số đa hướngCS43L22, âm thanh DAC với trình điềukhiển loa lớp D tích hợp
• Tám LED: Hai nút nhấn (người dùng vàđặt lại)
• USB OTG FS với đầu nối vi-AB
• Tiêu đề mở rộng cho tất cả các I / OLQFP100 để kết nối nhanh với bảng mạchvà dễ dàng thăm dò
Động cơ DC Servo giảm tốc
• Đĩa Encoder 11 xung, hai kênh A-B
• Tỷ số truyền khi qua hộp giảm tốc: 1:34
• Số xung khi qua hộp giảm tốc: 374 xung
• Đường kính động cơ: 25mm
Trang 5• Đường kính trục : 4mm
• Tốc độ không tải : 320 rpm
• Dòng không tải : 80mA
• Tốc độ có tải : 284 rpm
• Dòng khi có tải : 600mA
• Mômen : 1.88 kgf.cm
• Công suất định mức : 13.2W
• Dòng khi động cơ bị giữ : 2.29A
• Mô men khi bị giữ : 7.96 kgf.cm
Mạch cầu H L298 • Driver: L298N tích hợp hai mạch cầu H
• Điện áp đầu vào: 5 - 30 VDC
• Dòng tối đa cho mỗi cầu H: 2A
• Điện áp của tín hiệu điều khiển: 5 - 7 VDC
• Dòng của tín hiệu điều khiển: 0 – 36 mA
• Công suất hao phí: 20W (khi nhiệt độ T =
Trang 6Hình ảnh thực tế mô hình
1.2 Các nghiên cứu liên quan đến vấn đề này
Trang 7Đã có nhiều sinh viên thực hiện đề tài này trong các đồ án môn học, tuy nhiên họ sửdụng bộ điều khiển PID là chủ yếu, bộ điều khiển Fuzzy ít được sử dụng hơn Mặtkhác, các nghiên cứu đó là mô phỏng chứ không phải làm thực tế.
CHƯƠNG 2: MÔ TẢ PHƯƠNG TRÌNH ĐỘNG HỌC CỦA HỆ THỐNG VÀ
ĐIỀU KHIỂN DỰA VÀO PHƯƠNG PHÁP CỔ ĐIỂN (PID)
2.1 Phương trình động học của hệ thống.
Nhận dạng hệ thống là một trong những công việc đầu tiên phải thực hiện khi giảiquyết một bài toán Điều khiển Tự động Lý do đơn giản chỉ là vì không thể phân tích,tổng hợp hệ thống khi không có mô hình toán học mô tả hệ thống Trong quá trình xâydựng mô hình hệ thống trên phương diện lý thuyết người ta thường không thể khảo sátđược mọi ảnh hưởng của môi trường đến tính động học của hệ thống cũng như nhữngtác động qua lại bên trong hệ thống một cách chính xác tuyệt đối Rất nhiều yếu tố đãbị bỏ qua hoặc chỉ được xem xét đến như một tác động ngẫu nhiên Bởi vậy, nếu nóimột cách chặt chẽ thì những hiểu biết lý thuyết ban đầu về hệ thống mới chỉ có thểgiúp người ta khoanh được vùng lớp các mô hình thích hợp Để có thể có được một
mô hình cụ thể có chất lượng phù hợp với bài toán điều khiển đặt ra trong lớp các môhình thích hợp đó thì phải sử dụng phương pháp nhận dạng
2.1.1 Chương trình nạp và chương trình điều khiển lấy mẫu
Chương trình nạp cho STM32:
Trang 8Giải thích chức năng của các khối:
-Target Setup: Setup cấu hình, thời gian lấy mẫu
-UART Setup: Setup để truyền nhận dữ liệu theo chuẩn UART
-UART Rx1: Nhận dữ liệu là độ rộng xung PWM từ khối Tx
-UART Tx: Truyền dữ liệu là tốc độ hiện tại cho khối Rx
-Encoder Read: Đọc xung encoder
-Basic PWM: Tạo ra xung PWM với độ rộng xung tương ứng truyền vào.Chương trình điều khiển và thu thập dữ liệu trên máy tính:
Trang 9Tín hiệu điều khiển được điều khiển bằng tay thông qua việc chỉnh Slider Gain Chỉnhtay nên số lượng giá trị ngõ vào sẽ nhiều
Giải thích chức năng của các khối:
-To Workspace: Lưu dữ liệu vào workspace để xử lý sau này
-Slider Gain: Thay đổi độ rộng xung để cấp vào driver điều khiển động cơ
2.1.2 Cách thu thập mẫu và nhận dạng hàm truyền
- Cách thu thập mẫu:
+ Nạp chương trình cho STM
+ Mở chương trình điều khiển( lưu ý thời gian lấy mẫu cho 2 khối Toworkspace là 0.01, thời gian này cũng chính là thời gian lấy mẫu để phục vụcho việc nhận dạng)
+ Chạy chương trình điều khiển với thời gian vô hạn, chúng ta tiến hành điềuchỉnh slider gain từ 20 đến 40, tương ứng từ 20 đến 40% xung Vì sau nhiều lầnnhận dạng rút ra được là chỉ nhận dạng được đúng trong khoảng phần trămxung này
+ Canh chỉnh thời gian và thay đổi giá trị slider gain, khi đã đạt được số lượngmẫu mong đợi ta tiến hành dừng chương trình
Trang 10+ Ở Workspace của Matlab có sẵn 2 biến in3 và out3, 2 biến này chính là đầuvào và đầu ra của hệ thống để chúng ta nhận dạng Đầu vào là phần trăm xung,đầu ra là tốc độ của động cơ Chúng ta tiến hành mở 2 biến này và xóa đinhững giá trị đầu tiên để đảm bảo quá trình nhận dạng tốt do những giá trị banđầu động cơ chạy bất thường và có nhiều vọt lố và không ổn định Đây là bướcxử lý mẫu
- Cách nhận dạng hàm truyền:
+ Trong cửa sổ command window ta gõ ident và nhấn Enter, sau đó sẽ xuấthiện hộp thoại System Identification Tool
+ Trong cửa số System Identification Tool chọn Import data> Time domaindata xuất hiện cửa số Import data
Trang 11+ Nhập vào cửa số Import data: ở ô input nhập tên biến đầu vào mà chúng talấy mẫu đã lưu ở workspace, ở ô output nhận tên biến đầu ra mà chúng ra lấylẫu đã lưu ở workspace.
+ Nhập xong, ta bấm import, và chọn Time plot để quan sát đồ thị tín hiệu vàovà tín hiệu ra
Trang 12+ Trong cửa số System Identification Tool chọn Estimate>chọn TransferFuntion Models xuất hiện cửa số Transfer Function.
+ Nhập và chọn Estimate , sau đó chờ kết quả
+ Sau đó chọn Model output để quan sát bestfit, sau đó ta chọn tf1 để quan sáthàm truyền
Trang 13Hàm truyền của động cơ tìm được là:
Độ chính xác của hàm truyền nhận dạng so với tín hiệu vào là 70.59%
2.2 Điều khiển sử dụng PID (các thông số của PID chỉnh bằng phương pháp thử sai), nêu hạn chế của phương pháp này.
2.2.1 Giới thiệu chung về bộ điều khiển PID
Bộ điều khiển PID có lẽ là thiết kế điều khiển hồi tiếp được sử dụng nhiềunhất PID là từ viết tắt của Proportional-Integral-Derivative (có nghĩa là tỉ lệ-tíchphân-vi phân), đề cập đến 3 khâu hoạt động trên tín hiệu sai số để tạo ra một tín hiệuđiều khiển Nếu u(t) là tín hiệu điều khiển gửi tới hệ thống, y(t) là đầu ra đo đượcvà r(t) là đầu ra mong muốn, và sai số theo dõi e(t)=r(t)-y(t) (hoặc e(t)= y(t)-r(t)), mộtbộ điều khiển PID có dạng tổng quát như sau:
Trang 14• Xấp xỉ công thức của bộ điều khiển PID để thuận tiện cho việc điều khiển:
Thành phần tích phân được xấp xỉ bằng diện tích vùng giới hạn bởi hàm đường biểudiễn của e và trục thời gian Do việc tính toán tích phân không cần quá chính xác,chúng ta có thể dùng phương pháp xấp xỉ đơn giản nhất là xấp xỉ hình chữ nhật (sai sốcủa phương pháp này cũng lớn nhất) Ý tưởng được trình bày trong hình dưới
Trang 15Tích phân của biến e được tính bằng tổng diện tích các hình chữ nhật tại mỗi thờiđiểm đang xét Mỗi hình chữ nhật có chiều rộng bằng thời gian lấy mẫu h và chiều caolà giá trị sai số e tại thời điểm đang xét Tổng quát:
0 0
• Ảnh hưởng của sự tăng các thông số Kp, Ki, Kd độc lập:
2.2.2 Chương trình nạp và chương trình điều khiển PID
Chương trình điều khiển nạp cho STM32:
Trang 16Chương trình điều khiển và giám sát chạy trên máy tính:
2.2.3 Cách điều chỉnh thông số PID để đạt kết quả tốt:
Chỉnh thông số PID lần lượt theo các bước sau:
- Ban đầu chọn ngầu nhiên ba thông số Kp, Ki, Kd Vừa chỉnh vừa quan sát sự thay đổi của ngõ ra, chập nhận Kd sao cho thời gian đáp ứng đủ nhanh, chấp nhận sai số xác lập và overshot nhỏ
- Tăng dần Kd để giảm vọt lố, tăng Kd từ từ, thử nghiệm và chọn giá trị thích hợp Chấp nhận sai số xác lập
- Thêm thành phần I để giảm sai số xác lập Nên tăng Ki từ bé đến lớn để giảm đồng thời tránh để cho vọt lố nhiều
Trang 17Kết quả điều khiển sử dụng PID
Nhận xét: Hệ chạy tương đối ổn định với tốc độ thay đổi từ 40 đến 250 rpm khi ta đặt
Kp = 0.13, Ki = 0.001, Kd=0.073736 Nhưng với hệ điều khiển PID này dộ vọt lố và thời gian quá độ còn cao, tuy nhiên hệ hoạt động trong một khoảng thời gian dài thì hệthống có thể đáp ứng ổn định
CHƯƠNG 3: ĐIỀU KHIỂN HỆ THỐNG SỬ DỤNG BỘ ĐIỀU KHIỂN FUZZY 3.1 Giới thiệu về điều khiển mờ
• Điều khiển mờ được thực hiện dựa trên lý thuyết logic mờ gọi là điều khiển mờ
• Hệ điều khiển mờ cho phép đưa các kinh nghiệm điều khiển của chuyên gia vàothuật toán điều khiển
• Chất lượng điều khiển mờ phụ thuộc rất nhiều vào kinh nghiệm của người thiết kế
• Điều khiển mờ có thế mạnh trong các hệ thống sau:
− Hệ thống điều khiển phi tuyến
− Hệ thống điều khiển mà các thông tin đầu vào/ đầu ra không đủ hoặc không chínhxác
− Hệ thống điều khiển khó xác định hoặc không xác định được mô hình đối tượng
Trang 18• Sơ đồ điều khiển có nhiều dạng khác nhau Dưới đây là một sơ đồ điều khiển đơn
giản thường gặp, trong đó bộ điều khiển mờ được dùng thay cho bộ điều khiển kinh
điển
3.2 Cấu trúc bộ điều khiển mờ
• Bộ điều khiển mờ cơ bản gồm 4 khối: mờ hoá, hệ luật mờ, thiết bị hợp thành, giảimờ
• Khi ghép bộ điều khiển mờ vào hệ thống, thường ta cần thêm hai khối tiền xử lý vàhậu xử lý
• Mờ hoá: biến giá trị rõ đầu vào thành giá trị mờ
• Hệ luật mờ: Tập các luật “if-then” Đây là “bộ não” của bộ điều khiển mờ Luật mờ
“if-then” có 2 dạng: Luật mờ Mamdani và luật mờ Sugeno
• Thiết bị hợp thành: biến đổi các giá trị đã được mờ hoá ở đầu vào thành các giá trị đầu ra theo các luật hợp thành nào đó
• Giải mờ: biến giá trị đầu ra của khối thiết bị hợp thành thành giá trị rõ
• Tiền xử lý: xử lý tín hiệu trước khi đi vào bộ điều khiển mờ cơ bản
− Lượng tử hóa hoặc làm tròn giá trị đo
− Chuẩn hóa hoặc chuyển tỉ lệ giá trị đo vào tầm giá trị chuẩn
− Lọc nhiễu
− Lấy vi phân hay tích phân
• Hậu xử lý: xử lý tín hiệu ngõ ra của bộ điều khiển mờ cơ bản
− Chuyển tỉ lệ giá trị ngõ ra của bộ điều khiển mờ cơ bản (trong trường hợp ngõ ra định nghĩa trên tập cơ sở chuẩn) thành giá trị vật lý
− Đôi khi có khâu tích phân
VD: Về bộ điều khiển mờ theo luật PD(Fuzzy-PD)
Trang 19Đây cũng chính là bộ điều khiển mờ mà ta sử dụng trong việc điều khiển tốc độ động
cơ Bộ điều khiển fuzzy cơ bản có 1 ngõ vào và 1 ngõ ra Tuy nhiên, để tăng chấtlượng điều khiển, ở đây bộ điều khiển gồm có 2 ngõ vào và một ngõ ra, trong đó mộtngõ vào là giá trị sai số của hệ thống so với giá trị setpoint đầu vào (error), và một ngõvào khác là vi phân của sai số (derror) để xét tốc độ thay đổi của sai số, từ đó đưa ragiá trị ngõ ra phù hợp nhằm làm giảm độ vọt lố, giảm thời gian đáp ứng của hệ thống,tăng chất lượng điều khiển
3.3 Chương trình nạp và chương trình điều khiển fuzzy
-Chương trình nạp cho STM
Cấu trúc bộ mờ và các hàm thuộc