- μ(A ∪ B) ∪ C(x )= μA ∪ (B ∪ C)(x)
2.3.2. Xây dựng hệ điều khiển mờ với Fuzzy Logic Toolbox của Matlab
Matlab cung cấp một giao diện đồ họa giúp xây dựng bộ điều khiển mờ bằng hộp công cụ Fuzzy Logic Toolbox. Mặc dù ta vẫn có thể xây dựng bộ điều khiển mờ bằng cách viết lệnh cho Matlab, tuy nhiên việc sử dụng đồ họa giúp ta sử lý mọi việc đơn giản hơn. Giao diện xây dựng bộ điều khiển mờ gồm 5 phần như hình sau:
Hình 2.68. Các giao diện xây dựng bộ điều khiển mờ cho Matlab
+ FIS Editor: có nhiệm vụ giải quyết các vấn đề ở mức độ cao cho hệ thống với các việc: xác định số lượng và tên cho các đầu vào, ra.
+ Membership Function Editor: có nhiệm vụ xác định hình dạng cho các hàm thuộc MF liên quan đến mỗi biến.
+ Rule Editor: cho phép xây dựng các luật để các định đáp ứng của hệ thống.
+ Ruler Viewer và Surface Viewer: cung cấp cho người lập trình cái nhìn về các luật mờ và kết quả sẽ thu được từ các luật đã xây dựng.
Bây giờ, ta sẽ bắt đầu với một ví dụ đơn giản là xác định tiền boa với 2 đầu vào là chất lượng phục vụ, chất lượng thức ăn và 1 đầu ra là tiền boa.
Vấn đề đặt ra: Giả sử chất lượng phục vụ và chất lượng thức ăn của nhà hàng được đại diện bởi một giá trị từ 0 đến 10 (10 là tốt nhất). Và luật xác định tiền boa như sau:
1. Nếu chất lượng phục vụ kém và thức ăn dở thì tiền boa ít. 2. Nếu chất lượng phục vụ bình thường thì tiền boa bình thường 3. Nếu chất lượng phục vụ tốt và thức ăn ngon thì tiền boa nhiều.
Giả sử tiền boa cho nhân viên sẽ là một giá trị nằm trong khoảng 5 – 25% của tổng khoản tiền cần thành toán. Và thông thường, lượng tiền boa sẽ thay đổi theo đồ thị như hình dưới đây.
Hình 2.69. Hình dạng thay đổi của lượng tiền boa
Bây giờ, ta sẽ đi xây dựng bộ điều khiển mờ. Để tạo ra bộ điều khiển mờ tại của sổ lệnh ta gõ:
>> fuzzy
Khi đó, giao diện FIS sẽ mở ra và cho phép ta khai báo những khai báo đầu tiên cho bộ điều khiển mờ. Mặc định, FIS sẽ sử dụng giải mờ theo phương pháp Madami. Giao diện này bao gồm các phần sau:
1. Manu bar bao gồm: file, edit, view 2. Tín hiệu đầu vào
3. Luật hợp thành 4. Tín hiệu đầu ra
6. Bảng danh sách kéo thả để lựa chọn luật cho các tín hiệu vào/ra 7. Thanh hiển thị một số thông tin cơ bản của hệ
Hình 2.70. Giao diện FIS
Do đây là một hệ thống với hai tín hiệu vào và một tín hiệu ra, nên trước hết ta thêm vào một tín hiệu vào nữa qua Edit \ Add variable \ Input. Sau khi thêm tín hiệu vào và đặt tên cho các đầu vào, lựa chọn các luật mờ ta sẽ đi xây hàm thuộc cho từng tín hiệu vào.
Tiếp đó, ta sẽ xây dựng các hàm thuộc với Membership Function Editor bằng các cách sau:
- chọn View \ Edit Membershop Functions…
- kích đôi vào các đầu vào hoặc đầu ra
Hình 2.71. Giao diện xây dựng hàm thuộc Membership Function Editor Giao diện này bao gồm các phần chính như sau:
1. Menu bar
2. Lựa chọn tín hiệu vào, ra 3. Dạng đồ thị của hàm thuộc 4. Ô đặt tên cho hàm thộc
5. Pop-up chọn dạng hàm thuộc
6. Giá trị tương ứng của từng dạng hàm
7. Giải giá trị hiển thị và giá trị làm việc của tín hiệu vào
Ta xây dựng các hàm thuộc MF cho hai đầu vào là Service, Food và đầu ra tiền boa Tip như sau:
- Thêm các MF bằng cách chọn : Edit / Add MFs…
- Lựa chọn dạng của MF ở danh sách kéo thả
- Thay đổi tên, dải giá trị và chỉnh sửa lại các hình dạng của đồ thị trên đồ thị
Ta xây dựng các MF cho các đầu vào, ra như sau:
Hình 2.73. Hàm thuộc MF của đầu vào thức ăn
Hình 2.74. Hàm thuộc MF của đầu ra tiền boa + Rule Editor:
Hình 2.75. Giao diện Rule Editor
Xây dựng luật mờ. Cho phép xây dựng các luật mờ để xác định đầu ra từ các tín hiệu đầu vào bằng giao diện đồ họa. Trong đó, các luật mờ được lựa chọn trên các hộp tín hiệu vào, ra được lựa chọn trên các hộp thoại tương ứng cùng với luật mờ.
Giao diện này bao gồm các phần sau: 1. Menu bar
2. Danh sách các luật đã xây dựng 3. Các tín hiệu vào là biến ngôn ngữ 4. phép logic
5. Nút điều khiển 6. Tín hiệu ra
Ta xây dựng luật mờ như đã đề cập ra ở phần trước với 3 luật xác định cho chất lượng phục vụ và chất lượng đồ ăn.
Hình 2.76. Thiết lập luật mờ cho tiền boa
Bên cạnh đó, sau khi xây dựng luật mờ và Matlab cho phép ta xem lại và kiểm chứng các luật mờ với hai giao diện Surface view và Rule view.
+ Surface viewer: hiển thị dạng đồ thị của tín hiệu ra với các tín hiệu vào bằng đồ thị.
+ Rule viewer: hiển thị giao diện đồ thị 2D, cho phép người dùng thay đổi giá trị của tín hiệu vào và thấy được giá trị đầu ra dựa trên luật mờ đã lựa chọn.
Hình 2.77. Surface viewer
Khi ta save một hệ thống mờ vào đĩad cững (disk), thì các file text FIS sẽ được đại diện với đuôi .fis. Khi ta save hệ thống mờ vào Workspace, ta sẽ tạo ra các biến sẽ có cấu trúc của Matlab dùng cho các hệ thống mờ FIS.