Anfis và ứng dụng nhận dạng vị trí con lắc ngược.
Trang 1ANFIS VÀ ỨNG DỤNG NHẬN DẠNG VỊ TRÍ CON LẮC NGƯỢC
Phạm Hữu Đức Dục *
Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên
TÓM TẮT
ANFIS (Adaptive Network-based Fuzzy Inference System) là mạng nơron mờ nổi
tiếng, hiện đang được các nhà khoa học quan tâm trong các lĩnh vực nhận dạng và điều khiển đối tượng phi tuyến Bài báo này đề xuất các luật cập nhật thông số điều chỉnh đối với các biến ngôn ngữ mờ ở đầu vào và các hệ số của hàm tuyến tính của đầu ra khi ANFIS sử dụng hàm liên thuộc dạng Gauss và ứng dụng chúng trong bài toán nhận dạng vị trí con lắc ngược
Từ khoá: ANFIS, hàm liên thuộc Gauss, nhận dạng, con lắc ngược
•
*Phạm Hữu Đức Dục, Tel:0913238632,
Email: phdduc.uneti@moet.edu.vn
1 MỞ ĐẦU
Nhận dạng đối tượng phi tuyến thông
thường là bài toán rất phức tạp Để nâng
cao tính thông minh cho thiết bị nhận
dạng thường ứng dụng các giải pháp sử
dụng mạng nơron, hệ mờ, mạng nơron
mờ ANFIS (Adaptive Network-based
Fuzzy Inference System) là một mạng
nơron mờ nổi tiếng, hiện đang được các
nhà khoa học quan tâm trong các lĩnh v ực
nhận dạng và điều khiển đối tượng phi
tuyến
Bài báo này giới thiệu ANFIS, sau đó đề
xuất các luật học cập nhật thông số điều
chỉnh cho các biến ngôn ngữ mờ ở đầu
vào và các hệ số của hàm tuyến tính của
đầu ra khi mạng nơron mờ này sử dụng
hàm liên thuộc dạng Gauss Để minh
chứng cho tính đúng đắn của các luật điều
chỉnh vừa được đề xuất, bài báo này thực
hiện ứng dụng chúng trong bài toán nhận
dạng một đối tượng phi tuyến mạnh đó là
vị trí con lắc ngược
2 ANFIS
ANFIS là mạng nơron mờ được [1], [2]
giới thiệu Luật học dạng TSK (Takasi, Sugeno và Kang) thứ j có dạng:
j
R : IF u1 is A AND 1j u 2 is A AND 2j
n
u is A THEN nj f ( p n p u )
1
j i
j 0 j
=
+ µ
với ui, y tương ứng là các biến đầu vào, đầu ra; Aj( ui)
i là các biến ngôn ngữ mờ; R
p1j∈ là hệ số của hàm tuyến tính fj(i =
1, 2, , n; j = 1, 2, , M )
Cấu trúc của ANFIS gồm 6 lớp như sau:
tín hiệu vào ui
liên thuộc j( ui)
i A
hiện một luật thứ j: ∏
= µ
=
1
j i
j ( u )
hiện phép tính:
Trang 2= µ
µ
= µ
M 1
j j
j
j
) u p p
(
1
j i
j 0 j
=
+ µ
tính giá trị đầu ra:
∑
∑
∑
=
=
µ
µ
1
M 1
M 1
f
f
Sai lệch trung bình bình phương giữa vị
trí mong muốn yd
và vị trí y:
2
M 1 j
n 1
M 1
n 1
d 2
d
f y
2
1 )
y
y
(
2
1
E
µ
µ
−
=
−
=
∑
∑
Để E cực tiểu (hay y bám theo được d
y ) cần tìm đư ợc luật cập nhật bộ thông số điều
chỉnh gồm: thông số của hàm liên thuộc ở
n
j i
j
2
j
1
j
0,p ,p , ,p , ,p
Phần sau đây đề xuất các luật điều chỉnh
cập nhật giá trị của các bộ thông số điều
chỉnh nói trên khi ANFIS sử dụng hàm
liên thuộc Gauss, sau đó ứng dụng các
luật đó trong nhận dạng vị trí con lắc
ngược
3 LUẬT ĐIỀU CHỈNH CỦA ANFIS VÀ
ỨNG DỤNG ANFIS NHẬN DẠNG VỊ
TRÍ CON LẮC NGƯỢC
3.1 Lu ật điều chỉnh của ANFIS
Vấn đề đặt ra là cần tìm các luật cập nhật
bộ các thông số điều chỉnh ở các lớp
2 và 5 cho ANFIS khi sử dụng hàm liên
thuộc Gauss thực hiện theo phương pháp
hạ gradient để tìm các luật điều chỉnh các
thông số nói trên Do khuôn khổ bài báo
có hạn nên không trình bày phần chứng minh, chỉ cung cấp kết quả của các luật này
- Luật cập nhật thông số điều chỉnh ở lớp 5:
j i p
j i
j i
p
E )
k ( p ) 1 k ( p
∂
∂ η
−
=
với:
∑
µ
−
=
∂
∂
M 1
j i d j
i
u ) y y ( p
- Luật cập nhật bộ thông số điều chỉnh ở lớp 2:
2 )
j i (
2
2 ) j i c i u (
i j i
−
−
=
j i c
E c
j i
j
i ( k 1 ) c ( k )
c
∂
∂
η
−
=
với:
∑
= µ δ
µ
−
−
−
=
∂
∂
M 1
j j
2 i
j i
j i
j i i j
d j
)) u ( a u )(
y f ) y y ( c
j i
j i
j i
E )
k ( )
1 k (
δ
∂
∂ η
− δ
= +
với:
∑
δ
µ
−
−
−
= δ
∂
M 1
3 i j i
j 2 i j i i j d j
)) u ( a u )(
y f ) y y (
trong đó: ηp,ηc, ηδ là các hệ số học
3.2 Ứng dụng ANFIS nhận dạng vị trí con l ắc ngược
3.2.1 Động học hệ xe goòng-con lắc ngược
Trang 3Hình 1 mô tả hệ xe goòng-con lắc ngược
[3] Phương trình động học có dạng:
2
x = ;
Hình 1 Mô hình hệ xe goòng-con lắc
ngược
Hình 2 Sơ đồ ứng dụng mạng nơron
Elman nhận dạng vị trí con lắc ngược
) x ( cos aml l 3 4
f x cos(
a 2 / ) x sin(
amlx )
x
sin(
g
x
1 2
1 1
2 2 1
2
−
−
−
=
với: x 1 và x2 tương ứng là vị trí (rad) và
tốc độ góc (rad/s) của con lắc ngược; m
và M tương ứng là khối lượng con lắc
ngược (kg) và khối lượng xe goòng (kg); l
là một nửa chiều dài của con lắc
ngược(m); f là lực đẩy tác động vào xe (N); g là gia tốc trọng trường và
M m
1 a +
3.2.2 Thiết lập thiết bị nhận dạng
Sử dụng sơ đồ nhận dạng song song [4] ứng dụng ANFIS nhận dạng vị trí con lắc ngược x1(k) trình bày ở hình 2 Hình 3 là
sơ đồ mô phỏng số liệu vào/ra của con lắc ngược trên Matlab/ Simulink Hình 4 mô
tả sơ đồ cấu trúc của ANFIS nhận dạng vị trí con lắc ngược Vị trí con lắc ngược tại
thời điểm k là x1(k)không những chỉ phụ thuộc vào lực tác dụng f(k) mà còn phụ thuộc các giá trị quá khứ x1(k-1), mặt khác cần thoả mãn yêu cầu về cấu trúc
của thiết bị nhận dạng không quá phức
tạp Từ đó chọn số đầu vào của ANFIS là
2, với các tín hiệu vào tương ứng là f(k),
x1(k-1) và có 1 đầu ra là x 1 ( k )
∧
Chọn số hàm liên thuộc cho mỗi biến đầu vào là
2 Như vậy lớp 3 của ANFIS có 4 luật
học tương ứng từ R1 đến R4
và ở lớp 5
thực hiện tính toán các hàm tuyến tính:
) u p p
(
1
j i
j 0 j
=
+ µ
(với j=1, 2, 3, 4) Quá trình nhận dạng được tiến hành trong hai giai đoạn: học và kiểm tra sau đây
Trang 4Hình 3 Sơ đồ tính toán số liệu vào/ra vị trí con lắc ngược trên Matlab/Simulink
Hình 4 Sơ đồ cấu trúc của ANFIS nhận dạng vị trí con lắc ngược
Trang 5- Giai đoạn học
Thực hiện quá trình tính toán số liệu
vào/ra của vị trí con lắc ngược Thông số
sử dụng trong quá trình mô phỏng: m =
0.1 (kg); M = 10(kg); g = 9.8 (m/s2); l
= 4(m) với lực tác dụng f ở dạng ngẫu
nhiên trong khoảng [-1, 1] (hình 5)
Thực hiện chạy mô hình tính toán thông
số vào-ra trên Matlab/Simulink (hình 3)
được đồ thị biểu diễn vị trí thực x1 của
con lắc ngược của giai đoạn học trên đồ
thị hình 8 (đư ờng nét liền) Thực hiện giai đoạn học trên Matlab với các luật
cập nhật thông số như sau
j i p
j i
j i
p
E )
t ( p ) 1 t ( p
∂
∂ η
−
=
với:
∑
=
∧
µ
µ
−
=
∂
∂
4 1
j i 1 1 j
i
u ) x x ( p E
Hình 5 Đồ thị lực tác dụng
f(k) trong giai đoạn học
Hình 6 Bộ hàm liên thuộc ban đầu của đầu vào f(k)
Hình 7 Bộ hàm liên thuộc ban đầu của đầu vào
x1(k-1)
Hình 8 Đồ thị x1(k)(nét
liền), x ∧ 1
(k) (nét đứt) giai
đoạn học
Hình 9 Bộ hàm liên thuộc sau khi học của đầu vào
f(k)
Hình 10 Bộ hàm liên thuộc sau khi học của đầu
vàox1(k-1)
Hình 11 Đồ thị 3 chiều
quan hệ f(k), x1(k-1), x ∧1 Hình 12 Đồ thị lực tác
dụng f(k) giai đoạn kiểm
Hình 13 Đồ thị x1(k) (nét
liền), x 1
∧ (k) (nét đứt) kiểm
0 10 20 30 40 50 60 70 80 90
-1
-0.8
-0.4
0
0.2
0.6
1
0 10 20 30 40 50 60 70 80 0
0.2 0.4 0.6 0.8 1
0 10 20 30 40 50 60 70 80 0
0.1 0.3 0.5 0.7 0.9 1
0 10 20 30 40 50 60 70 80 90
-0.5
0
0.5
1
1.5
2
2.5
0 10 20 30 40 50 60 70 80 0
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0 10 20 30 40 50 60 70 80 0
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-1 -0.5 0 0.5 1
0
0.5
1
1.5
2
0.5
1
1.5
2
30 35 40 45 50 55 60 65 70 -1
-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
0 10 20 30 40 50 60 70 80 0
0.5 1 1.5 2
Trang 6(k) giai đoạn học tra tra
2 ) j i (
2
2 ) j i c i u (
i j
i
−
−
=
j i c
E c
j i
j
i ( k 1 ) c ( k )
c
∂
∂
η
−
=
∑
=
∧
∧
µ δ
µ
−
−
−
=
∂
∂
4 1 j j 2 i
j i
j i
j i i 1 j 1 1
j
)) u ( a u )(
x f ) x
x
(
c
j i
j i
j
i
E )
k ( ) 1 k (
δ
∂ η
− δ
= +
với:
∑
=
∧
∧
µ δ
µ
−
−
−
=
δ
∂
4 1
j j
3 i
j i
j
2 i
j i i 1 j 1 1
j
)) u ( a u )(
x f ) x x
(
∑
=
∧
−
1 k
2 1
1 ( k ) x ( k )) x
( 2
1
với: i = 1, 2; j = 1, 2, 3, 4; p là ma trận
hệ số kích
Hình 14 Đồ thị 3 chiều quan hệ
thước (3x4); u(k)=[f(k) x1(k-1)]T; f=[f1 f2 f3
f4]T
Thực hiện mô phỏng trên Matlab cho giai
đoạn học trong 1.000 chu kỳ Kết quả mô
phỏng được trình bày trên các đ ồ thị từ
hình 5 đ ến hình 11, số liệu tính toán của
bộ thông số điều chỉnh của ANFIS ở lớp 5 như sau:
p1=[0.0008 0.4591 0.0139];
p2=[0.0004 0.1260 -0.0497];
p3=[0.0071 -0.3223 -0.0234];
p4=[0.0144 0.0608 0.0650]
với sai lệch: E=1.53604.10-4
* Giai đoạn kiểm tra
Thực hiện tính toán bộ tín hiệu vào/ra giai đoạn kiểm tra bằng cách cho trước lực tác
dụng f (hình 12) với vai trò là tín hiệu vào
của sơ đồ mô phỏng trên Matlab/Simulink (hình 3) Thực hiện chạy mô phỏng để tính toán dữ liệu vào/ra trong giai đoạn
kiểm tra, được đồ thị tín hiệu ra biểu diễn
vị trí x1 của con lắc ngược của giai đoạn
kiểm tra trên đồ thị hình 13 (đư ờng nét
liền)
Căn cứ vào kết quả thông số điều chỉnh tìm được của ANFIS trong giai đoạn học, đưa bộ dữ liệu vào/ra giai đoạn kiểm tra nói trên vào ANFIS, được các đồ thị kết
quả của giai đoạn kiểm tra từ hình 12 đ ến hình 14 Từ các kết quả mô phỏng trên đây của Matlab, thấy được rằng các tín
hiệu tính toán nhận dạng x 1 ( k )
∧
ở đầu ra
của ANFIS luôn bám rất sát theo được tín
hiệu vị trí thực của con lắc ngược x1(k) trong cả hai giai đoạn học và kiểm tra (trên các đồ thị hình 8 và 13)
Do đó chứng tỏ được rằng ứng dụng thiết
bị nhận dạng ANFIS (hình 4) cùng với các luật điều chỉnh cập nhật cho bộ thông
số ở các lớp 2 và 5 đã nh ận dạng được vị trí con lắc ngược với sai lệch của giai đoạn học trong phạm vi cho phép Mặt khác cũng cần thấy rằng với cấu trúc của thiết bị nhận dạng (hình 4) không phức
tạp (chỉ có hai đầu vào ứng với hai tín
hiệu f(k), x1(k-1); mỗi đầu vào chỉ có hai hàm liên thuộc dạng Gauss; cùng bốn luật
học Rj (với j = 1, 2, 3, 4) ANFIS đã nh ận
dạng được đối tượng có mức độ phi tuyến mạnh đó là vị trí con lắc ngược Từ
đó khẳng định được ứng dụng ANFIS
-1 -0.5 0 0.5 1 0
0.5 1
1.5
2
0.5
1
1.5
2
Trang 7ới các luật điều chỉnh được đề xuất
trên đây là một giải pháp có nhiều ưu
điểm, nâng cao được độ thông minh của
thiết bị nhận dạng vị trí con lắc ngược nói
riêng và có thể áp dụng cho nhận dạng đối
tượng phi tuyến nói chung
IV KẾT LUẬN
Kết quả mô phỏng trên đây đã ch ỉ ra rằng
các luật điều chỉnh được đề xuất cho
ANFIS khi sử dụng hàm liên thuộc dạng
Gauss là đúng đắn Để giải quyết bài toán
nhận dạng vị trí con lắc ngược là phần tử
phi tuyến mạnh, chỉ cần sử dụng thiết bị
nhận dạng ứng dụng ANFIS với cấu trúc
và bộ các thông số điều chỉnh ở các lớp 2
và 5 không quá phức tạp, đã đạt được sai
lệch có thể chấp nhận được Điều này góp
phần khẳng định được ANFIS là một
mạng nơron mờ có nhiều ưu điểm, không
những có thể ứng dụng nó trong bài toán
nhận dạng đối tượng phi tuyến mà còn có
thể ứng dụng nó trong trường hợp điều
khiển các đối tượng phi tuyến có độ phức
tạp cao
TÀI LIỆU THAM KHẢO
[1] C.T Lin, C.S George Lee, (1996),
Neural fuzzy systems, Prentice Hall
Internatinal, Inc
[2] J.S.R Jang, (May/June 1993), “ANFIS:
Adaptive-Network-Basec fuzzy inference
systems”, IEEE Transactions on Systems,
Man, and cybernetics, 665-685, Vol 23,
No 3
[3] L K Wong, Frank H F Leung, Peter
K S Tam, (1998),”
Lyapunov-Function-Based Design of FuzzyLogic Controllers
and Its Application on Combining
Controllers”, IEEE Transactions on
Industrial Electronics, 502-509, Vol 45,
No 3
[4] Narendra, Parthasarathy, (1990),
“Identification and control of dynamical
systems using Neural Networks”, IEEE
Trans on Neural Networks, No.1, 4-27,
[5] http://www.mathworks.com, (1996),
Matlab-The Language of Technical Computing; The MatthWorks
Trang 8SUMMARY
ANFIS AND APPLYING TO IDENTIFY THE POSITION OF THE INVERTED
PENDULUM
Pham Huu Duc Duc *
University of Economics and Business Admnistration, University of Technology
•
ANFIS (Adaptive Network-based Fuzzy Inference System) is the modern fuzzy-neural network, which is used by scientists to identify and control a nonlinear objects This paper proposes an update parameters learning rule for the Gaussian membership fuction of the fuzzy linguistics variable in inputs and coefficients of the linear function in the output of ANFIS and applying to identify the position of the inverted pendulum
Key words: ANFIS, the Gaussian membership fuction, identification, the inverted pendulum