Trong toán học, việc khảo sát một hàm truyền với một tập xác định và một tập với giá trị kinh điển, nhưng một hàm phụ thuộc thì không thể ánh xạ tất cả các phần tử trong tập hợp mờ hay t
Trang 1TRƯỜNG CAO ĐẲNG NGHỀ NINH THUẬN
Ban hành kèm theo Quyết định số: ngày tháng năm của
Trường cao đẳng nghề Ninh Thuận
Năm 2019
Trang 2TUYÊN BỐ BẢN QUYỀN
Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể được phép
dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm
Trang 3LỜI GIỚI THIỆU
Để thực hiện biên soạn giáo trình đào tạo nghề Cơ điện tử ở trình độ Cao Đẳng Nghề và Trung Cấp Nghề, giáo trình Bài tập tổng hợp cơ điện tử là một trong những giáo trình môn học đào tạo chuyên ngành được biên soạn theo nội dung chương trình khung được Bộ Lao động Thương binh Xã hội và Tổng cục Dạy Nghề phê duyệt Nội dung biên soạn ngắn gọn, dễ hiểu, tích hợp kiến thức và kỹ năng chặt chẽ với nhau, logíc
Khi biên soạn, nhóm biên soạn đã cố gắng cập nhật những kiến thức mới có liên quan đến nội dung chương trình đào tạo và phù hợp với mục tiêu đào tạo, nội dung lý thuyết và thực hành được biên soạn gắn với nhu cầu thực tế trong sản xuất đồng thời có tính thực tiển cao
Nội dung giáo trình được biên soạn với dung lượng thời gian đào tạo 60 giờ gồm có:
Bài MH39-01: Lý thuyết mờ
Bài MH39-02: Ứng dụng logic mờ trong điều khiển
Bài MH39-03: Bộ điều khiển tỷ lệ PID
Trong quá trình sử dụng giáo trình, tuỳ theo yêu cầu cũng như khoa học và công nghệ phát triển có thể điều chỉnh thời gian và bổ sung những kiên thức mới cho phù hợp Trong giáo trình, chúng tôi có đề ra nội dung thực tập của từng bài để người học cũng cố và áp dụng kiến thức phù hợp với kỹ năng
Ninh Thuận, ngày tháng năm 2017
Tham gia biên soạn
1 Nguyễn Thái Thuận
2 Trần Văn Linh
Trang 4Mục lục
Nội dung
TUYÊN BỐ BẢN QUYỀN 1
LỜI GIỚI THIỆU 2
Bài 1: LÝ THUYẾT MỜ 5
1.1 Một số khái niệm cơ bản 5
1.1.1 Định nghĩa tập mờ 6
1.1.2 Logic mờ 8
2.1 Thiết kế hệ thống mờ 9
2.1.1 Các yếu tố xây dựng mô hình Logic mờ 9
2.1.2 Các phép toán của logic mờ 10
2.1.3 Cấu trúc bên trong một bộ điều khiển mờ có dạng 11
Bài 2 ỨNG DỤNG LOGIC MỜ TRONG ĐIỀU KHIỂN 13
2.1 Thiết kế ứng dụng 13
1 Bài tập 1: Xe tránh vật cản dùng sóng siêu âm 13
2 Bài tập 2: điều khiển robot bám line 19
2.2 Thực hành lắp ráp 23
2.2.1 Lắp ráp phần cứng 23
2.2.2 Code xử lý robot tránh vật cản sử dụng cơ sở logic mờ 24
Bài 3 BỘ ĐIỀU KHIỂN TỶ LỆ PID 29
3.1 Giải thuật PID 29
3.1.1 Propotional (tỉ lệ) 29
3.1.2 Derivative (đạo hàm) 30
3.1.3 Integral (tích phân) 31
3.2 Thực hành lắp ráp 32
Step 1: Chuẩn bị vật tư 32
Step 2: Lắp motor servo 32
Step 3: lắp ráp xe 34
Step 4: lắp modul Bluetooth 35
Step 5: Lắp cảm biến dò line 35
Trang 5Step 6: Implementing the IR Sensor Logic 36
Step 7: Hướng điều khiển (Điều khiển theo tỷ lệ - P) 39
Step 8: PID Control (optional) 40
Step 9: Lập code 42
Phụ lục: Code PID cho mạch arduino UNO 45
Tài liệu tham khảo 60
Trang 6Bài 1: LÝ THUYẾT MỜ
MH39-01
Giới thiệu
Lý thuyết mờ được giáo sư L.A Zadeh công bố lần đầu tiên tại Mỹ năm
1965, tại trường đại học Berkelay, bang Califormia, Mỹ Từ đó lý thuyết mờ đã có nhiều phát triển và ứng dụng rộng rãi trong lĩnh vực điều khiển tự động hóa
Tại Nhật, Logic mờ được ứng dụng vào nhà máy nước của hang Fuji Electronic năm 1983, hệ thống xe điện ngầm của Hitachi năm 1987
Ưu điểm của điều khiển mờ so với các phương pháp điều khiển kinh điển là
có thể tổng hợp được bộ điều khiển mà không cần biết trước đặc tính của đối tượng phức tạp mà ta chưa biết rõ hàm truyền
Tuy nhiên, nhược điểm của nó đến bây giờ vẫn chưa có các nguyên tắc chuẩn mực cho việc thiết kế cũng như chưa có thể khảo sát tính ổn định, bền vững, chất lượng, quá trình quá độ cũng như quá trình ảnh hưởng của nhiễu… cho các bộ điều khiển mờ điểm yếu của lý thuyết mờ là những vấn đề về độ phi tuyến của hệ, những kết luận tổng quát cho hệ thống phi tuyến hầu như khó đạt được
Trong toán học, việc khảo sát một hàm truyền với một tập xác định và một tập với giá trị kinh điển, nhưng một hàm phụ thuộc thì không thể ánh xạ tất cả các phần tử trong tập hợp mờ hay trong thực tế chúng ta không thể giải quyết tất cả các trường hợp của một vấn đề Cho nên với một tập mờ thì số lượng hàm phụ thuộc là không xác định và điều này nó cho phép những hệ thống mờ có được tiện ích tối
đa trong một tình huấn cho trước
Như vậy, khái niệm tập hợp và ánh xạ trong lý thuyết mờ rất rộng nên đủ khả năng để mô hình hóa các vấn đề thực tế phức tạp một cách đơn giản dễ hiểu, với biến ngôn ngữ làm cho các vấn để kỹ thuật có dữ liệu mơ hồ trở nên chính xác,
dễ kiểm tra Từ đó Logic mờ giúp chúng ta có hệ thống điều khiển ổn định
Những lĩnh vực mà Logic mờ được ứng dụng và có nhiều thành tựu:
- Điều khiển
- Định dạng mô hình mẫu
- Phân tích định lượng (nghiên cứu khoa học, quản lý)
- Suy luận (giao diên thông minh, robot, kỹ thuật mềm)
- Phục hồi thông tin (dữ liệu)
Mục tiêu: sau khi học xong bài này sinh viên có thể
- Hiểu được lý thuyết Logic mờ
- Tính toán các giá trị trong logic mờ
- Chạy mô phỏng trong matlab
1.1 Một số khái niệm cơ bản
Trang 7Các tập mờ hay tập hợp mờ (Fuzzy set) là một mở rộng của lý thuyết tập
hợp cổ điển và được dùng trong logic mờ Trong lý thuyết tập hợp cổ điển, quan hệ thành viên của các phần tử trong một tập hợp được đánh giá theo kiểu nhị phân theo một điều kiện rõ ràng, một phần tử hoặc thuộc hoặc không thuộc về tập hợp Ngược lại, lý thuyết tập mờ cho phép đánh giá về quan hệ giữa một phần tử và một
tập hợp; quan hệ này được mô tả bằng một hàm liên thuộc (membership function) μ [0, 1]
1.1.1 Định nghĩa tập mờ
Tập hợp mờ là tập hợp mà mỗi thành phần là một bộ số (x, μ(x)) Như vậy,
ta nói F là một tập mờ nếu F có biểu diễn
μ A là hàm liên thuộc ( membership function)
μ A (x) là độ liên thuộc của x vào tập mờ A
Ví dụ 1: Cách biểu diễn hàm phụ thuộc như trên sẽ không phù hợp với những tập được mô tả mờ như tập B gồm các số thực gần bằng 5:
Khi đó ta không thể khẳng định chắc chắn số 4 có thuộc B hay không ? mà
ta chỉ có thể nói nó thuộc B bao nhiêu phần trăm Ta phải xem hàm phụ thuộc μ B (x)
có giá trị trong khoảng 0 đến 1 tức là 0 ≤ μ B (x) ≤ 1
Hình 1: hàm phụ thuộc μ B (x) của tập mờ B
Định nghĩa: tập mờ B xác định trên tập kinh điển M là một tập mà một phần
tử của nó được biểu diễn bởi cặp giá trị (x, μ B (x)) Trong đó x ϵ M và μ B (x) là ánh
xạ Ánh xạ μ B (x) gọi là hàm liên thuộc của tập mờ B Tập kinh điển M được gọi là
tập cơ sở của tập mờ B
Ví dụ 2: Một tập mờ F với các số tự nhiên nhỏ hơn 5 được mô tả bằng hàm
thành viên μ B có đồ thị sau:
Trang 8Hình 2: Đồ thị hàm thành viên
Ta có tập mờ A = {(1,1), (2,1), (3, 0.95), (4, 0.17)}
Số tự nhiên 1 và 2 có độ phụ thuộc là 1
Số tự nhiên 3 và 4 có độ phụ thuộc thấp hơn 1
Các số không liệt kê có độ phụ thuộc là 0
Các thông số đặc trưng cho tập mờ là độ cao, miền xác định và miền tin cậy + Độ cao của tập mờ B (được định nghĩa trên cơ sở X) là giá trị lớn nhất trong các giá trị của hàm liên thuộc:
H = supxϵX[μB(x)] (sup gọi là cận trên đúng)
Một tập mờ có ít nhất một phần tử có độ phụ thuộc bằng 1 được gọi là tập
mờ chính tắc (H = 1) Ngược lại, một tập mờ với H < 1 gọi là tập mờ không xác định
Hình 3: Độ cao, miền xác định, miền tin cậy của tập mờ + Miền xác định của tập mờ B (được định nghĩa trên cơ sở X) là tập con của
X có giá trị hàm liên thuộc khác không;
Trang 9Định nghĩa: Cho A và B là hai tập mờ trên không gian nền X, có các hàm
liên thuộc μ A và μ B
1.1.2 Logic mờ
Logic mờ (Fuzzy logic) được phát triển từ lý thuyết tập mờ để thực hiện lập
luận một cách xấp xỉ thay vì lập luận chính xác theo logic vị từ cổ điển Logic mờ
có thể được coi là mặt ứng dụng của lý thuyết tập mờ để xử lý các giá trị trong thế giới thực cho các bài toán phức tạp (Klir 1997)
Người ta hay nhầm lẫn mức độ đúng với xác suất Tuy nhiên, hai khái niệm này khác hẳn nhau; độ đúng đắn của logic mờ biểu diễn độ liên thuộc với các tập được định nghĩa không rõ ràng, chứ không phải khả năng xảy ra một biến cố hay điều kiện nào đó Để minh họa sự khác biệt, xét tình huống sau: Bảo đang đứng trong một ngôi nhà có hai phòng thông nhau: phòng bếp và phòng ăn Trong nhiều trường hợp, trạng thái của Bảo trong tập hợp gồm những thứ "ở trong bếp" hoàn toàn đơn giản: hoặc là anh ta "trong bếp" hoặc "không ở trong bếp" Nhưng nếu Bảo đứng tại cửa nối giữa hai phòng thì sao? Anh ta có thể được coi là "có phần ở trong bếp" Việc định lượng trạng thái "một phần" này cho ra một quan hệ liên thuộc đối với một tập mờ Chẳng hạn, nếu Bảo chỉ thò một ngón chân cái vào phòng ăn, ta có thể nói rằng Bảo ở "trong bếp" đến 99% và ở trong phòng ăn 1% Một khi anh ta còn đứng ở cửa thì không có một biến cố nào (ví dụ một đồng xu được tung lên) quyết định rằng Bảo hoàn toàn "ở trong bếp" hay hoàn toàn "không
ở trong bếp" Các tập mờ được đặt cơ sở trên các định nghĩa mờ về các tập hợp chứ không phải dựa trên sự ngẫu nhiên
Logic mờ cho phép độ liên thuộc có giá trị trong khoảng đóng 0 và 1, và ở hình thức ngôn từ, các khái niệm không chính xác như "hơi hơi", "gần như", "khá là" và "rất" Cụ thể, nó cho phép quan hệ thành viên không đầy đủ giữa thành viên
và tập hợp Tính chất này có liên quan đến tập mờ và lý thuyết xác suất Logic mờ
Trang 10đã được đưa ra lần đầu vào năm 1965 bởi GS Lotfi Zadeh tại Đại học California,
Berkeley
Biến ngôn ngữ
Khái niệm biến ngôn ngữ đã được Zadeh đưa ra năm 1973 như sau: Một biến ngôn ngữ được xác định bởi bộ (x, T, U, M)
trong đó: x là tên biến như “nhiệt độ”, “tốc độ”, “độ ẩm” …
T là tập các từ là giá trị ngôn ngữ tự nhiên mà x có thể nhận
2.1.1 Các yếu tố xây dựng mô hình Logic mờ
Hình 4: Cấu trúc và quy trình hoạt động của mô hình Một mô hình Logic mờ bao gồm các yếu tố sau: dữ liệu (đầu vào và đầu ra), các hàm chuyển chuyển đổi, các phép toán logic và các biến ngôn ngữ
Trang 11Hình 5: Các mô hình được sử dụng trong hệ thống logic mờ
2.1.2 Các phép toán của logic mờ
Logic mờ cũng giống logic thông thường đều quy định về các phép toán như giao, hợp, loại trừ, cộng, phủ định … Tuy nhiên, cách tính ra giá trị mỗi phép toán lại khác so với logic thông thường
(not –A) = 1-t(A)
Các phép toán này ảnh hưởng rất nhiều đến một thành phần quan trọng của
hệ Fuzzy là định khoảng giá trị Đây cũng là cơ sở cho việc thiết lập các luật trong
hệ logic mờ
Biến ngôn ngữ
Một biến ngôn ngữ quy định đến trường nào đó có giá trị nào đó, hay nói cách khác nó chỉ đến một khoảng giá trị trong hệ thống fuzzy logic Giá trị biến ngôn ngữ cũng là dạng từ ngữ thông thường, người ta gắn các khoảng giá trị số cho m một từ ngữ nào đó thể hiện cho nó Ta xét ví dụ sau
- Biến ngô ngữ: nhiệt độ
- Các khoảng giá trị : cold, warm, hot
Trang 12Hình 6: Mô hình minh họa biến ngôn ngữ trong việc đoán nhiệt độ
Trong ví dụ trên, người ta thấy những con số chỉ nhiệt độ bằng biến ngôn ngữ là nhiệt độ, còn giá trị của biến này là “cold”, “warm”, và “hot” Giá trị “cold” gắn với khoảng giá trị thực từ 0 đến 20 độ, giá trị “warm” gắn với khoảng giá trị thực từ 20 đến 60 độ, giá trị “hot” gắn với khoảng giá trị thực từ 60 đến 100 độ Các biến ngôn ngữ này phục vụ cho việc thiết lập các luật tương ứng và phù hợp với thực tế
Các luật trong mô hình logic mờ
Các luật là thành phần điều khiển của một hệ thống logic mờ Các luật được thực hiện dựa trên câu lệnh IF …… THEN và một số phép toán logic khác như AND, OR, NOT … trong hệ thống, nếu luật càng chính xác thì hiệu quả của hệ thống càng cao
Mô tả ví dụ: một lò sưởi tự động nhận hai giá trị đầu vào là giá dầu đốt và nhiệt độ phòng, tùy mức độ nhiệt hiện tại nóng hay lạnh và giá dầu đôt đắt hay rẻ
để nó cung cấp nhiệt trong phòng một cách phù hợp sao cho không bị lạnh mà cũng không lãng phí quá
Bảng dưới đây chỉ ra cụ thể luật làm việc của sơ đồ trên
Nhiệt
độ
Giá dầu
2.1.3 Cấu trúc bên trong một bộ điều khiển mờ có dạng
Nếu nhiệt độ là lạnh và giá dầu là rẻ thì nhiệt xả ra là cao
Biến ngôn ngữ Giá trị biến ngôn ngữ
Trang 13Hình 7: Bộ điều khiển logic mờ
Bộ điều khiển mờ gồm ba khâu
+ Mờ hóa tín hiệu vào
+ Thực hiện luật hợp thành
+ Giải mờ
Khối mờ hoá (Fuzzification) thực hiện chức năng biến đổi các tín hiệu đầu
vào thành một miền giá trị mờ với hàm đặc trưng đã chọn và ứng với biến ngôn ngữ đầu vào đã được định nghĩa Trong các dây chuyền sản xuất, những tín hiệu phản hồi thu được từ môi trường bằng quan sát, thông qua các tín hiệu phản hồi hoặc thông qua biến ngôn ngữ đều mang tính chất xấp xỉ, không chính xác, những mệnh đề này sẽ được mờ hoá Đây là quá trình biến đổi những giá trị xє U thành một tập mờ A’ trên U Tập mờ này sẽ là dữ liệu quan trọng cho bộ suy luận mờ
Khối hợp thành (Fuzzy logic) có nhiệm vụ biến đổi các giá trị mờ hoá của
biến ngôn ngữ đầu vào thành các giá trị mờ của biến ngôn ngữ đầu ra theo các luật
mờ do người thiết kế thiết lập
Khối luật mờ (Fuzzy base) gồm tập hợp các luật suy luận mờ - “Nếu… thì ”
dựa vào các luật mờ cơ sở được người kỹ sư thiết kế, xây dựng thích hợp với mỗi biến và giá trị của các biến ngôn ngữ theo quan hệ mờ Đây là tập hợp các tri thức chuyên gia được xây dựng thành các luật cho suy luận theo mô hình các luật suy luận mờ
Khối khử mờ(Defuzzyfication) có chức năng biến đổi các giá trị mờ đầu ra
thành các giá trị rõ để đưa ra tín hiệu điều khiển đối tượng Để thực hiện chức năng này, khối khử mờ phải tìm ra một điểm rõ y є U làm đại diện tốt nhất cho tập mờ A’, tức là tìm ra giá trị hàm đặc trưng ứng với x trên tập mờ A’ Như vậy, khử mờ
là tìm ra những giá trị gần nhân của tập mờ, mà ở đó hàm đặc trưng nhận giá trị cực đại bằng 1
Trang 14Bài 2 ỨNG DỤNG LOGIC MỜ TRONG ĐIỀU KHIỂN
MH39-02
Mục tiêu: sau khi học xong bài này sinh viên có thể
- Ứng dụng lý thuyết Logic mờ để thiết kế bộ điều khiển
- Tính toán các giá trị trong logic mờ
- Chạy mô phỏng trong matlab
- Lắp ráp và lập trình bộ Arduino điều khiển xe tự hành
2.1 Thiết kế ứng dụng
1 Bài tập 1: Xe tránh vật cản dùng sóng siêu âm
Hình 8: Mô hình xe tránh vật cản dùng sóng siêu âm
Hệ thống điều khiển mờ được thiết kế gồm:
- Giá trị đầu vào: khoảng cách đến vật cản
- Bộ mờ hóa
- Các luật điều khiển tốc độ xe
- Bộ suy diễn
- Bộ giải mờ
- Giá trị đầu ra là tốc độ của xe
Phân tích thuật toán xây dựng hệ thống điều khiển mờ
- Định nghĩa biến ngôn ngữ và các thuật ngôn ngữ
Trang 15- Xây dựng các hàm phụ thuộc
- Xây dựng các luật mờ
- Làm mờ các dữ liệu đầu vào thành các giá trị mờ sử dụng các hàm phụ thuộc
- Đánh giá các luật trong tập luật
- Kết nối các kết quả trong mỗi luật
- Giải mờ các dữ liệu đầu ra
B1: Xây dựng biến ngôn ngữ
Với biến ngôn ngữ khoảng cách (Distance) ta có tập mờ sau:
Distance: {small, safe, big}
Với biến ngôn ngữ tốc độ (Speed) ta có tập mờ sau:
Speed: {fast, averge, slow}
B2: xây dựng hàm liên thuộc (membership function)
Hình 9: Các dạng hàm phụ thuộc (membership function) phổ biến
Trang 16Các hàm phụ thuộc khoảng cách Distance
Hình 10: Ngõ vào tín hiệu của fuzzy logic toolbox trong matlab
if 0 20 20
x small x
x
x x
Trang 17x safe x
x
x x
x slow z
x
x x
x averge z
x
x x
Trang 180 if 180 180
210 180
x x
Thiết lập các luật điều khiển theo khoản cách robot phát hiện được, gồm 3 mức small, safe, big Trong mỗi động cơ được FLC đưa ra 3 mức slow, averge, fast
- Xây dựng các luật và tối ưu luật mờ (fuzzy rules)
Dựa vào bảng trên chúng ta có thể xây dựng các luật mờ sau:
(R1) IF (Distance is big) THEN (Rm is fast) and (Lm is fast)
* Làm mờ dữ liệu đầu vào (Fuzzyfication)
Với dữ liệu đầu vào là 57cm, tính tốc độ an toàn của xe (speed = ?)
Dựa vào các hàm phụ thuộc của Distance ta có:
if 0 20 20
x small x
x
x x
Trang 190 if 30 30
if 30 50
50 30 ( )
x safe x
x
x x
Chọn phương pháp suy diễn là phương pháp Mandani
- Sử dụng toán tử suy diễn min
Luật 3: IF (nearest) THEN (Rm is slow) and (Lm is averge)
small(Distance) => averge(speedL)
Với 37cm => safe = 0.35
slow(speedR) Với 37cm => slow = 0.15
* Quy tắc Max-Min
Sử dụng quy tắc Max-min cho luật 2, luật 3 ta có:
37 0.35
0.15
Trang 20Max[Min(average(SpeedL), average(SpeedR)), Min(average(SpeedL),
slow(SpeedL))] = Max[Min(0.35,0.35), Min(0.35,0.15)] = 0.35
B4: Giải mờ
Phương pháp trọng tâm (center)
Điểm y’ được xác định là hoành độ của điểm trọng tâm được bao bởi trục
hoành và đường μ B (y)
Công thức xác định:
Trong đó S là miền xác định của tập mờ B’
Giải sử có m luật điều khiển được triễn khai, các giá trị mờ đầu ra của luật
điều khiển thứ k là μ B’k (y) thì với quy tắc Sum-Min hàm phụ thuộc sẽ là
2 Bài tập 2: điều khiển robot bám line
Giả sử cho robot chạy theo một đường có khoảng cách cố định so với tường
là Xđ Khi robot di chuyển nó sẽ lệch khỏi đường đó, lúc đó sẽ có sự sai lệch về vị trí và tư thế của nó so với yêu cầu bộ điều khiển có nhiệm vụ xử lý tín hiệu báo về
Trang 21từ cảm biến để xác ddingj các sai lệch, từ đó đưa ra các tín hiệu điều khiển 2 động
cơ để đưa robot về quỹ đạo ban đầu bộ điều khiển mờ được thiết kế sẽ có các tín hiệu sai lệch vị trí ∆ex(bao gồm sai lệch âm, sai lệch dương), sai lệch về góc ∆et
Bộ điều khiển sẽ có hai tín hiệu đầu vào là sai lệch góc ∆et sai lệch khoảng cách ∆ex hai đầu ra là hai tín hiệu điều khiển 2 động cơ chủ động
Giá trị sai lệch góc định hướng θ là ∆et sẽ nằm trong khoảng từ -0,3 đến 0,3 radian Các giá trị sai lệch về khoảng cách ∆ex trong khoảng -100mm đến 100mm
Giá trị đầu ra của bộ điều khiển mờ sẽ là các giá trị vận tốc góc bánh phải ωR, bánh trái ωL nằm trong khoảng -3 đến 3 rad/s
Hệ thống điều khiển mờ được thiết kế gồm:
- Giá trị đầu vào:
Tín hiệu sai lệch góc -0,3 ≤ ∆et ≤ 0,3 radian
Sai lệch khoảng cách -100 ≤ ∆ex ≤ 100 mm
-4 ≤ ∆ex ≤ 4 inch
- Giá trị đầu ra: bánh phải -3 ≤ ωR ≤ 3 ,
bánh trái -3 ≤ ωL ≤ 3
B1: Xây dựng biến ngôn ngữ
Với biến ngôn ngữ sai lệch khoảng cách ta có tập mờ sau:
∆ex: {neva, no, posi}
Với biến ngôn ngữ sai lệch góc ta có tập mờ sau:
∆et: {nevab, nob, posib}
Với biến ngôn ngữ tốc độ (Speed) ta có tập mờ sau:
ωR: {fast, averge, slow}; ωL: {fast, averge, slow}
B2: xây dựng hàm liên thuộc (membership function)
Trang 22Hàm liên thuộc của sai lệch khoảng cách (theo inch) ∆ex μx(x) và được rời rạc hóa tại 5 điểm
X ϵ{-4, -2, 0, 2, 4}
Hàm liên thuộc của sai lệch góc ∆et là μt(t) và được rời rạc hóa tại 5 điểm
X ϵ{-0.3, -0.15, 0, 0.15, 0.3}
Trang 23Hàm liên thuộc đầu ra ωR, ωL là μω(ω) và được rời rạc hóa tại 5 điểm
X ϵ{-3, -15, 0, 15, 3}
B3: xây dựng các luật mờ
Dựa vào các yếu tố đầu vào với biến ngôn ngữ sai lệch khoảng cách ∆ex: {neva,
no, posi} Và với biến ngôn ngữ sai lệch góc ∆et: {nevab, nob, posib} để xây dựng
ma trận luật quyết định tốc độ của xe Với đầu ra trong mỗi động cơ được FLC đưa
ra 3 mức slow, averge, fast
- Luật điều khiển cho vận tốc bánh phải ωR
- Luật điều khiển cho vận tốc bánh phải ωL
- Xây dựng các luật và tối ưu luật mờ (fuzzy rules)
Dựa vào bảng trên chúng ta có thể xây dựng các luật mờ sau:
(R1) IF (∆ex là neva) và (∆et là nevab) THEN (ωR là slow) và (ωL là slow) (R2) IF (∆ex là neva) và (∆et là nob) THEN (ωR là slow) và (ωL là averge) (R3) IF (∆ex là neva) và (∆et là nob) THEN (ωR là slow) và (ωL là averge) (R4) IF (∆ex là no) và (∆et là nevab) THEN (ωR là slow) và (ωL là averge) (R5) IF (∆ex là no) và (∆et là nob) THEN (ωR là fast) và (ωL là fast)
(R6) IF (∆ex là no) và (∆et là posib) THEN (ωR là averge) và (ωL là slow) (R7) IF (∆ex là posi) và (∆et là nevab) THEN (ωR là slow) và (ωL là slow) (R8) IF (∆ex là posi) và (∆et là nob) THEN (ωR là averge) và (ωL là slow)
Trang 24(R9) IF (∆ex là posi) và (∆et là posib) THEN (ωR là fast) và (ωL là slow)
* Làm mờ dữ liệu đầu vào (Fuzzyfication)
Một động cơ servo được điều khiển bằng cách gửi một loạt các xung qua đường tín hiệu Tần số của tín hiệu điều khiển phải là 50Hz hoặc một chu kỳ xung là 20ms
Độ rộng của xung xác định vị trí góc của servo và các loại servo này thường có thể xoay 180 độ (chúng có giới hạn vật lý khi di chuyển)
2.2 Thực hành lắp ráp
2.2.1 Lắp ráp phần cứng
- Động cơ servo
- Sản phẩm sau khi lắp hoàn thiện
- Sơ đồ kết nối mạch arduino
Trang 252.2.2 Code xử lý robot tránh vật cản sử dụng cơ sở logic mờ
const int numOfReadings = 10;
// number of readings to take/ items in the array
// stores the pulse in Micro Seconds
unsigned long pulseTime = 0;
// variable for storing the distance (cm)
unsigned long dist = 0;
// creat fuzzy logic new
Fuzzy* fuzzy = new Fuzzy();
int ENA = 5; //M1 Speed Control
int ENB = 6; //M2 Speed Control
int IN1=2;//connected to Arduino's port 2
int IN2=3;//connected to Arduino's port 3
int IN3=4;//connected to Arduino's port 4
int IN4=7;
void setup(){
Serial.begin(9600);
Trang 26
// create array loop to iterate over every item in the array
for (int thisReading = 0; thisReading < numOfReadings; thisReading++)
{ readings[thisReading] = 0; }
// Criando o FuzzyInput distancia
FuzzyInput* distance = new FuzzyInput(1);
// Criando os FuzzySet que compoem o FuzzyInput distancia
FuzzySet* small = new FuzzySet(0, 20, 20, 40); // Distancia pequena
distance->addFuzzySet(small); // Adicionando o FuzzySet small em distance FuzzySet* safe = new FuzzySet(30, 50, 50, 70); // Distancia segura
distance->addFuzzySet(safe); // Adicionando o FuzzySet safe em distance FuzzySet* big = new FuzzySet(60, 80, 80, 80); // Distancia grande
distance->addFuzzySet(big); // Adicionando o FuzzySet big em distance
FuzzySet* slow = new FuzzySet(0, 60, 60, 60);
velocitya->addFuzzySet(slow); // Adicionando o FuzzySet slow em velocity FuzzySet* average = new FuzzySet(72, 150, 150, 210);
velocitya->addFuzzySet(average);
FuzzySet* fast = new FuzzySet(180, 240, 240, 240);
velocitya->addFuzzySet(fast);
Trang 28
// subtract the last distance
total = total - readings[arrayIndex];
// add distance reading to array
readings[arrayIndex] = dist;
// add the reading to the total
total = total + readings[arrayIndex];
arrayIndex = arrayIndex + 1;
// go to the next item in the array
// At the end of the array (10 items) then start again
// calculate the average distance
averageDistance = total / numOfReadings;
// print out the average distance to the debugger
Trang 29
fuzzy->setInput(1, averageDistance);
fuzzy->fuzzify();
float output1 = fuzzy->defuzzify(1);
float output2 = fuzzy->defuzzify(2);
Trang 30Bài 3 BỘ ĐIỀU KHIỂN TỶ LỆ PID
MH39-03
Giới thiệu
PID – bộ điều khiển vi phân, tích phân tỉ lệ (PID – Proportional Integral Derivative) viết tắt của 3 từ Propotional (tỉ lệ), Integral (tích phân) và Derivative (đạo hàm) Là một cơ chế phản hồi vòng điều khiển (bộ điều khiển) tổng quát được
sử dụng rộng rãi trong các hệ thống điều khiển công nghiệp – bộ điều khiển PID là
bộ điều khiển được sử dụng nhiều nhất trong các bộ điều khiển phản hồi Bộ điều khiển PID sẽ tính toán giá trị “sai số” là hiệu số giữa giá trị đo thông số biến đổi và giá trị đặt mong muốn Bộ điều khiển sẽ thực hiện giảm tối đa sai số bằng cách điều chỉnh giá trị điều khiển đầu vào
Mục tiêu: sau khi học xong bài này sinh viên có thể
- Ứng dụng lý thuyết PID để thiết kế bộ điều khiển
- Tính toán các giá trị trong PID
- Chạy mô phỏng trong matlab
- Lắp ráp và lập trình bộ Arduino điều khiển xe tự hành
3.1 Giải thuật PID
Bài toán: Điều khiển chiếc xe ô tô từ vị trí A đến vị trí B với thời gian ngắn nhất,
độ chính xác cao nhất!
Trong hình ảnh dưới mình lấy Chất Điểm chuyển động là một hình tròn đỏ
có dấu X làm tâm của xe
Trong trường hợp này thì PID sẽ chia bài giải thành 3 khâu Propotional (tỉ lệ), Integral (tích phân) và Derivative (đạo hàm)