Tiểu luận : “Công nghệ tri thức và ứng dụng”
MỤC LỤC
HVTH: Nguyễn Hoàng Sỹ - MSHV: CH 1101037 Trang 1
Tiểu luận : “Công nghệ tri thức và ứng dụng”
LỜI MỞ ĐẦU
Logic mờ là một ngành của logic, xác định mức độ phụ thuộc hay mức độ thành viên
của một đối tượng đối với các tập thay vì xác định đối tượng đó thuộc hay không
thuộc về một tập.
Logic mờ là giải quyết vấn đề kiểm soát hệ thống phương pháp là cho mượn để thực
hiện trong các hệ thống khác nhau, từ đơn giản, nhỏ, nhúng vi điều khiển lớn, máy
tính nối mạng đa kênh, hoặc máy trạm dựa trên thu thập dữ liệu và hệ thống điều
khiển. Nó có thể được thực hiện trong phần mềm, phần cứng, hoặc kết hợp cả hai.
Logic mờ cung cấp một cách đơn giản để đi đến một kết luận xác định dựa trên mơ
hồ, không rõ ràng, không chính xác, thông tin đầu vào ồn ào, hoặc mất tích. Logic mờ
của phương pháp tiếp cận để kiểm soát vấn đề, bắt chước làm thế nào một người sẽ
làm cho các quyết định.
Trong nội dung bài tiểu luận này, tôi xin trình bày khái quát về tồng quan logic mờ
mà thế giới đang hướng đến. Kèm theo đó, tôi cũng xin trình bày ứng dụng logic mờ
trong ý tưởng chạy xe tự động được demo trên matlab.
Tôi chân thành cảm ơn Thầy GS. TSKH Hoàng Văn Kiếm đã truyền đạt những kiến
thức quý báu về cơ sở tri thức và các ứng dụng trong hệ chuyên gia. Đặc biệt là trong
logic mờ được phát triển và áp dụng ngày càng rộng rãi, cung cấp các chức năng
thông minh trong các hệ thống điều khiển của các ngành công nghiệp, trong các thiết
bị đồ dùng gia đình như máy giặt, lò vi sóng, tủ lạnh, …
HVTH: Nguyễn Hoàng Sỹ - MSHV: CH 1101037 Trang 2
Tiểu luận : “Công nghệ tri thức và ứng dụng”
CHƯƠNG I: TỔNG QUAN VỀ LOGIC MỜ
I.1 Khái niệm về Logic mờ - Fuzzy Logic:
Được hình thành bởi Lotfi Zadeh, một giáo sư tại Đại học California tại Berkley, và
A
.
A: u
{0, 1}
µ
A
(x): 0 nếu x
∉
A
1 nếu x
∈
A
HVTH: Nguyễn Hoàng Sỹ - MSHV: CH 1101037 Trang 4
Tiểu luận : “Công nghệ tri thức và ứng dụng”
Lý thuyết về tập mờ làm việc trên các tập mờ được định nghĩa trong một tập vũ trụ.
Một tập mờ có thể được xem một cách tổng quát như một tập hợp thông thường. Với
bao đóng của một tập vũ trụ U cho trước, một tập hợp Mờ F trên U được xác định
bằng một hàm liên thuộc (membership function) ánh xạ từng thành phần trong U trở
thành một đoạn liên tục trong F và có giá trị thường trong đoạn [0, 1] thay vì các giá
trị rời rạc 0, 1 như trong tập hợp thông thường.
F = {(u,
µ
F
(u)) | u
∈
U}
F: u
[0, 1]
f = (
µ
F
(u
1
),
µ
F
(u
2
), …,
µ
F
(u
n
))
c/ Tập cắt alpha (
α
-cut set):
Tập cắt α của một tập mờ F, ký hiệu F
α
là một tập rõ mà trong đó chứa tất cả các u ∈
U sao cho
µ
F
(u)
≥
α
.
curve), đường cong S nghịch đảo (z-curve), đường cong Gaussian, tam giác
(triangular) hoặc hình thang.
HVTH: Nguyễn Hoàng Sỹ - MSHV: CH 1101037 Trang 6
Tiểu luận : “Công nghệ tri thức và ứng dụng”
Ví dụ:
Hình dáng của hàm liên thuộc dạng bell (
π
)
Trong phương pháp biểu diễn rời rạc, các giá trị của hàm liên thuộc và tập vũ trụ U
được tổ chức như một vector liệt kê các giá trị có thể có của chúng. Đôi khi, cách
biểu diễn rời rạc có thể tốt hơn so với phương pháp liên tục.
Ví dụ:
Chiều cao = {100, 120, 140, 160, 170, 180} (tập U)
Cao = {0.0, 0.0, 0.0, 0.2, 0.8, 1.0} (tập mờ F)
Từ các đặc điểm trên, ta có thể đưa ra nhận xét như sau: Dạng biểu diễn liên tục đòi
hỏi việc xử lý tính toán CPU nhiều và ít tiêu tốn bộ nhớ hơn so với dạng biểu diễn rời
rạc.
f/ Phép toán trên tập mờ:
Các phép toán trong lý thuyết mờ tương tự với các thao tác trong lý thuyết logic nhị
nguyên. Đối với logic mờ, chân trị của các phát biểu chỉ là các cấp độ. Để có thể
nghĩa được các phép toán trên tập mờ, ta phải tìm ra các phép toán tương ứng mà có
thể bảo toàn các tính chất của các phép toán AND, OR, NOT. Câu trả lời đó chính là
các phép toán min, max, và lấy phần bù. Các phép toán đó được định nghĩa như sau:
[ ]
)(),(max xx
BABA
µµµ
=
∪
[ ]
II.3 Logic Mờ trong điều khiển:
HVTH: Nguyễn Hoàng Sỹ - MSHV: CH 1101037 Trang 8
Rule baseData base
Fuzzy reasoning mechanism
Fuzzification unit Defuzzification unit
Input EOutput U
Tiểu luận : “Công nghệ tri thức và ứng dụng”
a/ Giới thiệu:
Một bộ điều khiển mờ thường có thể xem như một hệ thống điều khiển
vòng lặp khép kín. Hình dưới đây cho ta thấy được các thành phần chính của một bộ
điều khiển mờ bao gồm: bộ suy diễn mờ, bộ cơ sở tri thức, bộ mờ hóa dữ liệu và bộ
rõ hóa kết quả. Tùy thuộc vào các mục đích khác nhau mà ta có thể xây dựng các bộ
điều khiển mờ khác nhau, tuy nhiên về bản chất, chúng cũng đều cấu thành từ các
thành phần chính đã nêu.
Bộ cơ sở tri thức bao gồm 2 loại tri thức chính: một cơ sở dữ liệu định nghĩa các hàm
liên thuộc của tập mờ cũng như giá trị của các biến hệ thống; một cơ sở dữ liệu luật
ánh xạ các dữ liệu mờ thành các kết quả mờ, phần này bao gồm hàng loạt các luật
dạng IF… THEN… . Các biến hệ thống cũng bao gồm 2 loại, các biến hệ thống đầu
vào (E) và các biến hệ thống kết quả (U). Các dữ liệu đầu vào sẽ được mờ qua bộ
Fuzzification unit và được làm rõ qua bộ Defuzzification unit. Bộ suy diễn mờ sẽ tiến
hành suy diễn các dữ liệu mờ đầu vào bằng cơ sở tri thức mà nó có để tạo ra các kết
quả mờ, sau đó các kết quả này sẽ được làm rõ qua bộ Defuzzification. Ta có thể biểu
diễn toàn bộ quá trình trên như sau:
HVTH: Nguyễn Hoàng Sỹ - MSHV: CH 1101037 Trang 9
Mô hình chung của bộ điều khiển mờ
Fuzzification Implication DefuzzificationInput Output
Tiểu luận : “Công nghệ tri thức và ứng dụng”
Tóm
tắt quá trình điều khiển mờ
b/ Phương pháp mờ hóa (fuzznification):
min
, X
max
]. L là mức độ mờ hóa dữ liệu.
HVTH: Nguyễn Hoàng Sỹ - MSHV: CH 1101037 Trang 10
min
A1 B1 C1
A2 B2 C2
u v w
u v w
C
w
A1
A2
B1 C1
C2B2
x0 y0
Tiểu luận : “Công nghệ tri thức và ứng dụng”
c/ Xây dựng luật mờ:
Có 5 phương pháp chung để có thể tạo ra các luật mờ như sau:
- Dựa vào kinh nghiệm điều khiển của các chuyên gia.
- Mô hình hóa các thao tác điều khiển.
- Xây dựng mô hình mờ của toàn bộ tiến trình.
- Tự tổ chức/tự học.
- Dùng các phương pháp heuristics.
- …
d/ Các kỹ thuật suy diễn mờ:
Có nhiều cách để các dữ liệu quan sát được dùng để xác định các luật nào sẽ được sử
dụng trong quá trình suy diễn. Trong phạm vi báo cáo này, ta sẽ xem qua hai phương
pháp được dùng rộng rãi nhất hiện nay:
α
i
có thể được xác định như sau:
α
1
=
µ
A1
(x
0
)
∧
µ
B1
(y
0
)
α
2
=
µ
A2
(x
0
)
∧
µ
B2
(w))
Phương pháp MAX-DOT:
Trong phương pháp này, luật tích vô hướng (dot-product) Larsen thường được áp
dụng như là một hàm suy diễn mờ kết hợp với các toán tử max/min. Và luồng điều
khiển thứ i sẽ được chọn bởi công thức sau
α
i
⋅
µ
Ci
(w). Và do đó, hàm liên thuộc cho
quá trình suy diễn sẽ như sau:
µ
C
(w)=(
α
1
⋅
µ
C1
(w))
∨
(
α
2
⋅
µ
Nếu số luật suy diễn là n, độ cao cực đại các hàm liên thuộc trong tập mờ của luật thứ
i là trị H
i
, giá trị tương ứng của luật mờ thứ i trong tập rõ là W
i
và độ kích hoạt luật
thứ i là
α
i
, ta có thể giải mờ được giá trị W của tất cả các W
i
theo công thức sau:
HVTH: Nguyễn Hoàng Sỹ - MSHV: CH 1101037 Trang 13
Tiểu luận : “Công nghệ tri thức và ứng dụng”
∑
∑
=
=
=
n
i
ii
n
i
iii
W
WH
W
1
1
1
1
α
α
HVTH: Nguyễn Hoàng Sỹ - MSHV: CH 1101037 Trang 14
Tiểu luận : “Công nghệ tri thức và ứng dụng”
CHƯƠNG II: Ứng dụng logic mờ
Ví dụ logic mờ trong mô hình điều khiển tốc độ motor xe chạy tự
động
II.1 Tổng quan:
Có rất nhiều ứng dụng trong logic mờ được phát triển và áp dụng ngày càng rộng rãi,
cung cấp các chức năng thông minh trong các hệ thống điều khiển của các ngành
công nghiệp, trong các thiết bị đồ dùng gia đình như máy giặt, lò vi sóng, tủ lạnh,
quạt gió, máy lạnh…
Trong báo cáo này, tôi xin trình bày ứng dụng “chạy tự động bằng logic mờ” dựa trên
hai yếu tố là kiểm soát tốc độ xe và thay đổi điện áp đầu vào cho tốc độ đó ổn định
với khoảng cách được xác định.
Minh họa ứng dụng này có phần tương tự trên ý tưởng của tác giả Henry Hurdon về
Fuzzy Logic Expert Fan Control trong việc điều khiển tốc độ motor của một quạt hút
bụi bằng logic mờ dựa trên hai yếu tố là độ bụi (ô nhiễm) và độ ẩm của môi trường
xung quanh.
II.2 Yêu cầu:
Kiểm soát tốc độ của động cơ bằng cách thay đổi điện áp đầu vào. Khi một điểm thiết
lập được xác định, nếu vì một số lý do, động cơ chạy nhanh hơn, chúng ta cần phải
làm chậm nó xuống bằng cách giảm điện áp đầu vào. Nếu động cơ làm chậm dưới
HVTH: Nguyễn Hoàng Sỹ - MSHV: CH 1101037 Trang 15
Tiểu luận : “Công nghệ tri thức và ứng dụng”
điểm định sẵn, điện áp đầu vào phải được tăng lên để tốc độ động cơ đạt đến điểm tập
hợp.
Chương trình minh họa bằng phần mềm Matlab R2012a, cho ta thấy được quá trình
HVTH: Nguyễn Hoàng Sỹ - MSHV: CH 1101037 Trang 17
Hình 1: Chức năng thành viên (điện áp, tốc độ vòng quay trên phút)
Tốc độ đo 2437 rpm; cắt tam
giác vuông tại 0,4; cắt tam
giác quá nhanh ở 0,3
Tiểu luận : “Công nghệ tri thức và ứng dụng”
Các điểm giao nhau sẽ là 0,4 và 0,3. Từ hình 1, chúng ta thấy rằng tốc độ này sẽ chỉ
giao nhau hình chữ nhật bao gồm các quy tắc 2 và 3. Bây giờ thay đổi chiều cao của
hình tam giác cho điện áp đầu vào.
Bây giờ, xét vùng tam giác "Không có nhiều thay đổi" là 0,008 và vùng tam giác
"chậm lại" là 0,012.
Đầu ra, như trong hình 3 (ở trên), được xác định bằng cách tính điểm mà tại đó một
điểm tựa cân bằng hai hình tam giác. Vì vậy:
HVTH: Nguyễn Hoàng Sỹ - MSHV: CH 1101037 Trang 18
Hình 2: Tốc độ trên điểm thiết lập
Phía phải
Quá nhanh
Quá
chậm
Bộ điều khiển đầu ra - đầu
vào động cơ ở 2.376 vdc
Không có
nhiều thay đổi
Hình 3: Điện áp động cơ
Ngõ ra
VDC
Chậm lại
Tiểu luận : “Công nghệ tri thức và ứng dụng”
0,008 X D1 = 0,012 X D2 (1)
D1 + D2 = 0,04 (2)
3. IF ( Input1 is mf3) THEN (Output1 is mf1) (1)
(chú thích:
*Input1 mf1: vòng quay chậm, mf2: vòng quay bình thường, mf3: vòng quay nhanh
* Output1 mf3: tăng điện áp, mf2: không thay đổi điện áp, mf3: giảm điện áp)
HVTH: Nguyễn Hoàng Sỹ - MSHV: CH 1101037 Trang 20
Tiểu luận : “Công nghệ tri thức và ứng dụng”
e/ Nhìn tổng quát đầu ra hệ thống mờ:
Chúng ta có thể hình dung bề mặt đầu ra của hệ thống mờ bằng cách sử dụng lệnh
"surfview (FIS)" như sau:
f/ Kiểm chứng trên Matlab:
Export to Workspace và Save với tên là: "one.fis" tại \matlab\R2012a\bin\one.fis;
Bây giờ nhập lệnh tại command prompt để có được những kết quả cho ứng dụng:
>> fis=readfis('one')
HVTH: Nguyễn Hoàng Sỹ - MSHV: CH 1101037 Trang 21
Hình 6: Xây dựng quy luật mờ
Tiểu luận : “Công nghệ tri thức và ứng dụng”
fis =
name: 'one'
type: 'mamdani'
andMethod: 'min'
orMethod: 'max'
defuzzMethod: 'centroid'
impMethod: 'min'
aggMethod: 'max'
input: [1x1 struct]
output: [1x1 struct]
rule: [1x3 struct]
>> out=evalfis(2437.4,fis)
out =
2.3746 (kết quả tương tự chạy bằng tay)