CHƯƠNG 4 : THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM
4.3 Phần mềm cho vi điều khiển
4.3.3 Giải thuật Fuzzy Logic
4.3.3.1 Tổng quan thiết kế hệ thống mờ.
Hình 4.39 Sơ đồ thiết kế giải thuật Fuzzy Logic.
Bước 1: Mờ hóa ngõ vào (Fuzzification).
Q trình mờ hóa ngõ vào nhằm giúp chuyển đổi những biến giá trị vật lý đầu vào thành những điều kiện được thể hiện dưới dạng ngôn ngữ và ánh xạ chúng với tập hợp các hàm liên thuộc.
Hàm liên thuộc là mức độ của một giá trị vật lý thỏa mãn một khái niệm ngôn ngữ được gọi là hàm liên thuộc. Đối với biến liên tục, mức độ này được biểu diễn bởi một hàm gọi là hàm liên thuộc. Hàm này ánh xạ tập các giá trị vật lýthành tập các giá trị phụ thuộc đối với các giá trị ngôn ngữ. Biến vật lý được gọi là biến nền và tập các giá trị vật lý được gọi là tập nền.Thông thường người ta vẽ nhiều hàm liên thuộc trên cùng một biểu đồ dựa trên tập nền đã qui định.
Bước 2 : Hình thành luật mờ (Fuzzy Inference)
Tập hợp những luật mờ được thể hiện dưới dạng sau: Nếu < điều kiện ngõ vào > Thì < trạng thái ngõ ra > Số luật có được tn theo cơng thức sau:
N= P1 x P2 x P3 x……..xPn Trong đó:
o N là tổng tồn bộ những luật có được khi phân tích một hệ thống mờ.
o Pn là số mức trạng thái được thể hiện dưới dạng ngôn ngữ của ngõ vào.
Bước 3: Giải mờ ngõ ra (Defuzzification)
Quá trình giải mờ là phương pháp chuyển đổi những luật mờ được lựa chọn thành một giá trị cụ thể ở ngõ ra.
Để giải mờ các biến ngõ vào đã được mờ hóa ta có nhiều phương pháp khác nhau như: Centroid Method(Center of area, Center of gravity), Max-membership principal, Weighted average method, Mean-max membership, Center of sums… Nhưng trong nội dung này ta sử dụng phương pháp Centroid.
4.3.3.2 Thiết kế giải thuật mờ cho hệ thống tưới nước.
Hình 4.40 Mơ hình tổng qt điều khiển van tưới nước tự độn áp dụng giải thuật Fuzzy logic.
a. Thiết kế:
Bước 1: Mờ hóa ngõ vào
Dựa vào mơ hình tổng quát trên ta thấy hệ thống gồm 2 ngõ vào đó chính là nhiệt độ mơi trường và độ ẩm đất, việc mà ta cần làm ngay bây giờ chính là phân tích vùng giá trị tồn tại của chúng , phân chia vùng giá trị đó thành các mức độ khác nhau tùy theo mong muốn của người thiết kế và cuối cùng là đặt tên cho các mức giá trị đó.
Nhiệt độ :
o Vùng giá trị tồn tại : từ 0oC đến 45oC
o 3 mức : lạnh , ấm , nóng. Độ ẩm:
o Vùng giá trị tồn tại : từ 0% đến 100%
o 3 mức : khơ, vừa ,ướt.
Bước 2: Hình thành luật mờ
Để hình thành luật mờ trước tiên ta cần phải xác định được tổng số luật mờ có được từ các mức trạng thái khác nhau của ngõ vào.Sau đó dựa vào các luật mờ có được người thiết kế sẽ quyết định ngõ ra của hệ thống dựa vào kinh nghiệm và hiểu biết của họ về hệ thống. Do ngõ vào nhiệt độ có 3 mức , độ ẩm có 3 mức. Nên tổng số luật mờ được tính theo luật sau:
N= P1 x P2 = 3 x 3 =9 luật mờ
o Vùng giá trị tồn tại : từ 0 đến 1.
o 2 mức : on,off.
Bảng 4.11 Bảng luật mờ điều khiển van tưới nước. Luật
mờ Nếu Nhiệt độ Và Độ ẩm Thì Máy bơm
1 Nếu Lạnh Và Khơ Thì Bật 2 Nếu Lạnh Và Vừa Thì Tắt 3 Nếu Lạnh Và Ướt Thì Tắt 4 Nếu Ấm Và Khơ Thì Bật 5 Nếu Ấm Và Vừa Thì Tắt 6 Nếu Ấm Và Ướt Thì Tắt 7 Nếu Nóng Và Khơ Thì Bật 8 Nếu Nóng Và Vừa Thì Bật 9 Nếu Nóng Và Ướt Thì Tắt Hình 4.41 Hàm liên thuộc độ ẩm đất.
Hình 4.42 Hàm liên thuộc nhiệt độ môi trường.
Bước 3: Giải mờ ngõ ra
b. Mô phỏng:
Để mô phỏng giải thuật điều khiển này ta sử dụng công cụ Fuzzy Tool Box trong Matlab.
Bước 1: Mở chương trình Mathlab, trong command window ta gõ fuzzy.
Bước 2:Trong cửa sổ FIS Editor, Chọn Edit - > Add Variable -> Input/Output để thêm
Hình 4.43 Thiết lập hệ thống sử dụng giải thuật fuzzy điều khiển van nước.
Bước 3: Thiết lập các thơng số ngõ vào và ngõ ra.
Hình 4.45 Thiết lập thơng số độ ẩm ngõ vào.
Hình 4.46 Thiết lập thông số điều khiển ngõ ra.
Bước 4:Trong cửa sổ Membership Function Editor chọn View -> Rule để xem kết quả
Hình 4.47 Mơ phỏng hệ thống ngõ ra khi máy bơm tắt.
Hình 4.48 Mơ phỏng hệ thống khi máy bơm bật.
Hình 4.49 Giải thuật lập trình điều khiển máy bơm bằng giải thuật Fuzzy logic. 4.3.3.3 Thiết kế giải thuật mờ cho hệ thống đèn dây tóc.
a. Thiết kế.
Hình 4.50 Mơ hình tổng qt hệ thống bật tắt đèn dây tóc tự động sử dụng giải thuật Fuzzy logic.
Bước 1: Mờ hóa ngõ vào
Dựa vào mơ hình tổng qt trên ta thấy hệ thống gồm 2 ngõ vào đó chính là cường độ ánh sáng và nhiệt độ môi trường, việc mà ta cần làm ngay bây giờ chính là phân tích vùng giá trị tồn tại của chúng , phân chia vùng giá trị đó thành các mức độ khác nhau tùy theo mong muốn của người thiết kế và cuối cùng là đặt tên cho các mức giá trị đó.
Ánh sáng:
o Vùng giá trị tồn tại : từ 0 lux đến trên 500 lux.
o 3 mức : Tối, râm, sáng. Nhiệt độ :
o Vùng giá trị tồn tại : từ 0oC đến 45oC
o 3 mức : lạnh , ấm , nóng.
Bước 2: Hình thành luật mờ
Để hình thành luật mờ trước tiên ta cần phải xác định được tổng số luật mờ có được từ các mức trạng thái khác nhau của ngõ vào.Sau đó dựa vào các luật mờ có được người thiết kế sẽ quyết định ngõ ra của hệ thống dựa vào kinh nghiệm và hiểu biết của họ về hệ thống. Do ngõ vào nhiệt độ có 3 mức , độ ẩm có 3 mức. Nên tổng số luật mờ được tính theo luật sau:
N= P1 x P2 = 3 x 3 =9 luật mờ
Do yều cầu của hệ thống chỉ cần điều khiển bật tắt máy bơm nên ngõ ra Máy bơm ở mơ hình tổng qt trên được mô tả như sau:
Hệ thống đèn:
Bảng 4.12 Bảng luật mờ của giải thuật Fuzzy điều khiển đèn. Luật mờ Nếu Ánh Sáng Và Nhiệt Độ Thì Đèn 1 Nếu Tối Và Lạnh Thì Bật 2 Nếu Tối Và Ấm Thì Bật 3 Nếu Tối Và Nóng Thì Tắt 4 Nếu Râm Và Lạnh Thì Bật 5 Nếu Râm Và Ấm Thì Tắt 6 Nếu Râm Và Nóng Thì Tắt 7 Nếu Sáng Và Lạnh Thì Tắt 8 Nếu Sáng Và Ấm Thì Tắt 9 Nếu Sáng Và Nóng Thì Tắt
Hình 4.51 Hàm liên thuộc nhiệt độ ngõ vào.
Hình 4.52 Hàm liên thuộc cường độ ánh sáng ngõ vào.
a. Mô phỏng:
Để mô phỏng giải thuật điều khiển này ta sử dụng công cụ Fuzzy Tool Box trong Matlab.
Bước 1: Mở chương trình Mathlab, trong command window ta gõ fuzzy.
Bước 2:Trong cửa sổ FIS Editor, Chọn Edit - > Add Variable -> Input/Output để thêm
các ngõ vào và ngõ ra .
Hình 4.53 Thiết lập hệ thống điều khiển tự động hệ thống đèn áp dụng giải thuật fuzzy logic.
Hình 4.54 Thiết lập thơng số cường độ ánh sáng.
Hình 4.55 Thiết lập thông số ngõ ra điều khiển hệ thống đèn.
Bước 4:Trong cửa sổ Membership Function Editor chọn View -> Rule để xem kết quả