Tải bản đầy đủ (.pdf) (14 trang)

Chương 2 fuzzy

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (819.87 KB, 14 trang )

Chương 2
ỨNG DỤNG FUZZY LOGIC ĐIỀU KHIỂN HỘP SỐ TỰ ĐỘNG
1. Cơ bản về Fuzzy Logic
1.1 Các khái niệm
Cách thức con người suy nghĩ và ra quyết định không phải luôn luôn có ranh giới rạch
ròi giữa đúng và sai [1]. Thế giới và sự vật luôn thay đổi, con người nhận thức về thế giới
cũng thay đổi nên việc định nghĩa đúng - sai, có - không gặp nhiều khó khăn. Bạn hãy
cầm một quả cóc, nó thuộc tập hợp những quả cóc, được định nghĩa bằng tính chất, kích
thước, hình dạng của nó. Bây giờ bạn hãy cắn một miếng, nó còn là quả cóc chứ? Nếu
đúng vậy, nó vẫn thuộc tập hợp những quả cóc. Sau khi cắn một vài miếng, bạn chỉ còn
lại hạt cóc, nó thuộc tập hợp những hạt cóc. Tại thời điểm nào trái cóc chuyển sang hạt
cóc?

Hình 1: Quả cóc và hạt cóc
Định nghĩa tập hợp quả cóc và hạt cóc quá nghiêm ngặt khi chúng ta nhìn quá trình cắn
quả cóc. Những quả cóc bị cắn 2 hoặc 3 miếng thuộc tập hợp nào? Nếu chúng ta muốn
đặt chúng vào các tập hợp quả cóc hoặc/và hạt cóc, chúng ta phải định nghĩa lại tập hợp
quả cóc và hạt cóc như là những tập hợp fuzzy (mờ).
Tập hợp fuzzy cho phép các thành viên của nó nhận các mức độ tính thành viên
(membership) khác nhau. Đối tượng nhận giá trị 1 nếu nó nằm hoàn toàn bên trong tập
hợp, giá trị 0 nếu nằm hoàn toàn bên ngoài. Đối tượng nằm một phần trong tập hợp nhận
giá trị từ 0 đến 1. Con số gắn với đối tượng gọi là mức độ tính thành viên. Quả cóc bị cắn
1 miếng có thể nhận mức độ tính thành viên 0.9 trong tập hợp quả cóc. Điều đó không
nhất thiết nhận giá trị 0.1 trong tập hợp hạt cóc. Tuy nhiên khi quả cóc bị cắn nó mất bớt
tính thành viên trong tập hợp fuzzy quả cóc và nhận thêm tính thành viên trong tập hợp
fuzzy hạt cóc.

1


1.2 Định nghĩa tập fuzzy


Trong toán học, tập hợp được định nghĩa là bao gồm tất cả những đối tượng thỏa mãn
tính chất nào đó. Bất kỳ đối tượng nào đều phải thuộc hoặc không thuộc tập đó. Để làm
rõ hơn, chúng ta xét một ví dụ khác, tập hợp những người cao. Chúng ta có thể phát biểu
rằng tập những người cao là những người có chiều cao bằng hoặc hơn 1,75 m. Tập hợp
này có thể biểu diễn hình tượng như hình dưới.

1.0
Mức độ tính
thành viên

cao ( = 1.0)

Dạng của
hàm tính
thành viên

không cao ( = 0.0)

0.0
Chiều cao

Hình 2. Định nghĩa tập truyền thống
Đồ thị trên mô tả hàm thành viên (membership function) của tập người cao. Bạn chỉ có
thể thuộc hoặc không thuộc tập người cao. Dạng đồ thị trên thích hợp trong toán học và
phép toán nhị phân nhưng nó không mô tả hoàn hảo trong thế giới thực. Hàm thành viên
trên không tách biệt được người có chiều cao 1,76 m và 2 m, trong thực tế hai người này
có chiều cao rất chênh lệch nhưng được liệt kê chung là cao. Về phía ngược lại, người có
chiều cao 1,75 m được xếp là cao trong khi người có chiều cao 1,74 m lại được xếp vào
loại không cao. Trên thực tế, người 1,74 m thấp hơn người 1,75 m chỉ 1 cm.
Tập fuzzy mô tả tốt hơn về tính cao của một người. Hàm tính thành viên xác định tập

fuzzy được mô tả như hình bên dưới. Trục nằm ngang là chiều cao. Trục thẳng đứng là
mức độ thành viên của chiều cao trong tập fuzzy, có giá trị từ 0 đến 1.

1.0
Mức độ tính
thành viên, 

Rõ ràng cao
( = 0.95)

Dạng của
hàm tính
thành viên

Không cao lắm
( = 0.30)

0.0
Chiều cao

Hình 3. Định nghĩa tập fuzzy
2


Cho 2 người có chiều cao như trong hình vẽ. Người thứ nhất có tính thành viên là 0.3 vì
vậy không cao lắm. Người thứ 2 có tính thành viên là 0.95 vì vậy rõ ràng là cao. Tuy
nhiên anh ta không thuộc tập người cao theo định nghĩa tập hợp truyền thống.
Hàm thành viên của tập fuzzy được thiết lập bằng nhiều cách khác nhau miễn là nó tuân
thủ theo một định nghĩa được cho trước. Việc chọn dạng hàm thành viên phụ thuộc vào
mục đích và phải thể hiện hợp lý tính chất của sự vật. Một số hàm thành viên thông dụng

được mô tả trong hình sau.

Hình 4. Hàm tính thành viên
1.3 Phép toán fuzzy
Logic truyền thống sử dụng các phép toán nhị phân AND, OR và NOT để thực hiện phép
giao, hợp và bù. Bảng 1 mô tả các giá trị đầu vào và kết quả các phép toán logic.
Bảng 1: Phép toán logic truyền thống
x
0
0
1
1

y
0
1
0
1

x AND y
0
0
0
1

x OR y
0
1
1
1


NOT x
1
1
0
0

Nếu x, y thuộc tập hợp fuzzy, chúng nhận số lượng các giá trị không giới hạn trong [0, 1].
Vì vậy việc lập bảng như logic nhị phân là không khả thi. Các phép toán cần phải định
nghĩa lại như là các hàm số cho tất cả các giá trị trong [0, 1]. Thực ra logic nhị phân là
tập con của fuzzy logic vì fuzzy logic bao gồm giá trị 0, 1 và tất cả giá trị thực trong (0,
1). Các phép toán fuzzy logic có dạng tổng quát như trong Bảng 2.

3


Bảng 2: Phép toán fuzzy logic
x AND y
x OR y
NOT x

min(x, y)
max(x, y)
1-x

Áp dụng định nghĩa trên, ta có thể lập bảng giá trị như sau.
Bảng 3: Ví dụ về phép toán fuzzy logic
x
0
0

1
1
0.1
0.5
0.7

y
0
1
0
1
0.6
0.8
0.7

min(x, y)
0
0
0
1
0.1
0.5
0.7

max(x, y)
0
1
1
1
0.6

0.8
0.7

1-x
1
1
0
0
0.9
0.5
0.3

1.4 Ra quyết định bằng fuzzy
Các quyết định của chúng ta thường ở dạng logic. Chúng ta xem xét tình huống rồi dựa
vào tình huống để ra quyết định. Quyết định như vậy có dạng:
Nếu P thì Q. (If P then Q).
Điều kiện logic này khá khắt khe. Q chỉ xảy ra nếu P xảy ra. Fuzzy logic nới lỏng sự khắt
khe này bằng phát biểu:
Nếu phần lớn P thì phần lớn Q. (If mostly P then mostly Q).
Trong đó P, Q là các số fuzzy. Các luật này là những phát biểu bằng lời dùng để liên hệ
các tập fuzzy khác nhau. Dạng tổng quát của phát biểu là:
“Nếu x là A thì y là B”. (If x is A then y is B).
Trong đó x, y là các số fuzzy thuộc các tập fuzzy A và B tương ứng. Các tập fuzzy này
được định nghĩa bằng các hàm thành viên.
Chúng ta hãy khảo sát một hệ thống có hai hàm thành viên đầu vào (A1, A2) và hai hàm
thành viên đầu ra (B1, B2). Các hàm thành viên cho như hình bên dưới xác định 2 tập
fuzzy A và B. Nếu giá trị đầu vào có tính thành viên trong một hàm, thì bất cứ luật nào
sử dụng hàm thành viên này được gọi là kích hoạt và sản sinh ra một kết quả.

4



Hình 5. Hàm thành viên tập fuzzy A, B
Kết quả tổng cộng đầu ra là:
[A1(x)  B1(y)]  [A2 (x)  B2(y)]
Lấy một giá trị đầu vào x = 1.25, có hàm thành viên trong A1 và A2. Điều này làm cho 2
luật đều kích hoạt. Giá trị 1.25 có tính thành viên 0.75 trong A1 và 0.25 trong A2. Sử
dụng công thức tính trên ta được đầu ra tổng cộng như hình sau.

Hình 6. Đầu ra của fuzzy logic
Hàm thành viên tổng là kết quả của quá trình ra quyết định dựa vào phát biểu luật. Để có
một con số cụ thể ở đầu ra, ta phải thực hiện phương pháp lượng hóa (defuzzification).
Lượng hóa cho ta một con số thể hiện tốt nhất tập fuzzy đầu ra. Có nhiều cách để tính giá
trị này. Một cách phổ biến là lấy trọng tâm của tập fuzzy. Ví dụ lượng hóa tập fuzzy
trong Hình 6 bằng phương pháp trọng tâm cho giá trị 7.319.
2. Matlab Fuzzy logic Toolbox
Trong phần này chúng ta tìm hiểu công cụ fuzzy logic trong Matlab. Sử dụng fuzzy logic
để điều khiển mực nước trong thùng như Hình 7. Có 1 đường nước vào thùng và 1 đường
5


nước tháo ra khỏi thùng. Đường nước ra có tiết diện không đổi, tuy nhiên lưu lượng qua
đường này phụ thuộc vào nhu cầu sử dụng, có lúc nhiều nhưng cũng có lúc ít. Valve điều
khiển đường nước vào có thể điều chỉnh được để thay đổi lưu lượng. Chúng ta đi thiết
lập bộ điều khiển fuzzy logic để duy trì mực nước trong bình là 1 m.

Hình 7. Điều khiển mực nước trong thùng
Khởi động fuzzy logic trong Matlab bằng lệnh:
>> fuzzy


Hình 8. Giao diện fuzzy logic
Trong cửa sổ fuzzy logic có 3 khối chính: đầu vào (input), đầu ra (output) và luật (rule).
Double click vào từng khối cho phép ta thay đổi các thông số trong khối đó. Gọi khối
input là Level để chỉ mực nước trong thùng, khối output là Valve để chỉ độ mở của
valve điều khiển lưu lượng nước vào. Mở khối Level ta có giao diện như Hình 9, trong
đó mặc định có 3 hàm tính thành viên dạng trimf. Click vào từng đường để đổi tên thành
Low, Middle và High để chỉ mực nước thấp, trung bình và cao. Đây là 3 tập fuzzy thể
hiện độ cao của mực nước. Hàm tính thành viên Low có giá trị cao nhất ở 0 m và thấp
6


nhất ở 0.4 m có nghĩa là khi mực nước tăng từ 0 đến 4 m, tính thành viên của mực nước
trong tập fuzzy Low sẽ giảm xuống từ 1 đến 0.

Hình 9. Giao diện khối Level
Mở khối Valve ta có giao diện như Hình 10. Click vào từng hàm tính thành viên để đổi
tên thành Closed, Average và Opened để chỉ valve đóng hoàn toàn, mở trung bình và mở
hoàn toàn.

Hình 10. Giao diện khối Valve
7


Mở khối luật ở giữa để định nghĩa luật cho hệ thống như Hình 11. Ta thiết lập 3 luật:
If (Level is Low) then (Valve is Opened)
Nếu mực nước thấp, valve mở hoàn toàn.
If (Level is Middle) then (Valve is Average)
Nếu mực nước trung bình, valve mở trung bình.
If (Level is High) then (Valve is Closed)
Nếu mực nước cao, valve đóng.


Hình 11. Giao diện khối luật
Vào View > Rule để xem kết quả tập fuzzy tổng đầu ra. Dịch chuyển thanh trượt để quan
sát kết quả thu được bên phải. Như trong Hình 12, với mực nước là 0.284 m, độ mở của
valve là 56%.

Hình 13. Kết quả tập fuzzy đầu ra.
8


3. Điều khiển hộp số tự động bằng fuzzy logic
Trong Chương 5 về hộp số tự động, ECU ECT sang số dựa vào bản đồ sang số như Hình
14. Thời điểm sang số phụ thuộc vào 2 thông số là tốc độ xe và độ mở cánh bướm ga.
Các giá trị này được lưu trong bộ nhớ ECU, đóng vai trò như các bảng tra (look-up
table). ECU có thể điều khiển sang số dựa vào các câu lệnh điều kiện. Dựa vào bản đồ
sang số ta có thể phát biểu 1 câu điều kiện như sau
Nếu độ mở cánh bướm ga là 50% và tốc độ nhỏ hơn 1500 vòng/phút
thì vị trí là số 1
nếu không độ mở cánh bướm ga là 50% và tốc độ nhỏ hơn 2500 vòng/phút
thì vị trí là số 2
nếu không độ mở cánh bướm ga là 50% và tốc độ nhỏ hơn 4000 vòng/phút
thì vị trí là số 3
nếu không
thì vị trí là số OD
Phát biểu cú pháp dạng Matlab như sau
If alpha = 0.5 and n < 1500
p = 1
elseif alpha = 0.5 and n < 2500
p = 2
elseif alpha = 0.5 and n < 4000

p = 3
else
p = 4
end

Phát biểu như trên chỉ cho 1 vị trí cánh bướm ga. Để phát biểu bao trùm hết bản đồ sang
số, cần rất nhiều câu như vậy. Trong lập trình, việc điều khiển dòng thông tin thông suốt
và đi đúng hướng sẽ gặp nhiều khó khăn.

Hình 14: Bản đồ sang số

9


Đối với các hệ thống phức hợp và phi tuyến như việc điều khiển sang số, fuzzy logic sẽ
phát huy tác dụng. Chúng ta hãy thiết lập bộ điều khiển fuzzy logic để có thể tính toán
được thời điểm sang số một cách đơn giản và hiệu quả.
Trước hết, bộ điều khiển sử dụng 2 tín hiệu đầu vào là độ mở cánh bướm ga và tốc độ xe
chứ không phải chỉ một tín hiệu đầu vào như trong ví dụ trước.
Bằng cách Edit > Add variable ... > Input ta sẽ thêm được tín hiệu đầu vào
thứ 2 như Hình 15.

Hình 15. Bộ điều khiển sang số bằng fuzzy logic
Mở khối độ mở cánh bướm ga Alpha, điều chỉnh các thông số như Hình 16. Trong đó,
khoảng giá trị [0, 1] ứng với % độ mở cánh bướm ga. 3 hàm tính thành viên xác định 3
tập fuzzy thể hiện 3 vị trí: đóng hoàn toàn (Closed), mở trung bình (Middle), mở hoàn
toàn (Opened). 3 hàm tính thành viên này dạng trimf

Hình 16. Khối hàm tính thành viên Alpha
10



Mở khối tốc độ Speed và điều chỉnh các thông số như Hình 16. Trong đó khoảng giá trị
[0, 300] thể hiện dải tốc độ xe có thể đạt được. 3 hàm tính thành viên cũng dạng trimf.
Click vào từng đường để thay đổi tên, kéo và thả để di chuyển các đỉnh.

Hình 17. Hàm tính thành viên Speed
Mở và điều chỉnh khối tín hiệu sang số Gear như Hình 18. Vị trí tay số được xếp vào 3
tập fuzzy: Low (thấp), Middle (trung bình), High (cao). Low ứng với vị trí tay số thấp (số
1, 2); Middle ứng với tay số trung bình (số 2, 3); High ứng với tay số cao (số 3, OD).
Khoảng giá trị lấy từ 0 đến 4 ứng với 4 số trong hộp số tự động thông thường.

Hình 18. Hàm tính thành viên Gear
11


Mở khối rule để thiết lập điều kiện như Hình 19. Trong đó có 3 luật:
If (Alpha is Closed) and (Speed is Low) then (Gear is Low)
Nếu cánh bướm ga đóng, tốc độ thấp thì tay số thấp.
If (Alpha is Middle) and (Speed is Average) then (Gear is Middle)
Nếu cánh bướm ga mở trung bình, tốc độ trung bình thì tay số trung bình.
If (Alpha is Opened) and (Speed is High) then (Gear is High)
Nếu cánh bướm ga mở hoàn toàn, tốc độ cao thì tay số cao.

Hình 19. Thiết lập điều kiện
Kết quả tính toán bằng các luật trên các tập fuzzy cho như Hình 20. Di chuyển các thanh
trượt để xem các kết quả khác nhau ứng với các tín hiệu đầu vào khác nhau. Ví dụ một vị
trí trong hình, độ mở cánh bướm ga 0.729, tốc độ xe 105, kết quả vị trí tay số là 2.73. Dĩ
nhiên chúng ta không thể đặt vị trí số ở giá trị này vì hộp số tự động của ta đang đề cập là
hộp số có cấp, chỉ có các vị trí số 1, 2, 3 và OD (4). Để dùng kết quả này điều khiển hộp

số, chúng ta có thể dùng điều kiện:
Nếu Gear < 1, số 1
Nếu Gear < 2, số 2
Nếu Gear < 3, số 3
Nếu Gear < 4, số 4

12


Hình 20. Kết quả đầu ra

13


TÀI LIỆU THAM KHẢO
1. />
14



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×