intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

ANFIS và ứng dụng nhận dạng vị trí con lắc ngược

Chia sẻ: Thi Thi | Ngày: | Loại File: PDF | Số trang:8

41
lượt xem
6
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: ANFIS và ứng dụng nhận dạng vị trí con lắc ngược

Phạm Hữu Đức Dục<br /> <br /> Tạp chí KHOA HỌC & CÔNG NGHỆ<br /> <br /> 57(9): 57 – 62<br /> <br /> ANFIS VÀ ỨNG DỤNG NHẬN DẠNG VỊ TRÍ CON LẮC NGƯỢC<br /> Phạm Hữu Đức Dục*<br /> Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên<br /> <br /> TÓM TẮT<br /> ANFIS (Adaptive Network-based Fuzzy Inference System) là mạng nơron mờ nổi<br /> 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à<br /> đ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ố<br /> đ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<br /> 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<br /> trong bài toán nhận dạng vị trí con lắc ngược.<br /> Từ khoá: ANFIS, hàm liên thuộc Gauss, nhận dạng, con lắc ngược.<br /> •<br /> <br /> 1. MỞ ĐẦU<br /> Nhận dạng đối tượng phi tuyến thông<br /> thường là bài toán rất phức tạp. Để nâng<br /> cao tính thông minh cho thiết bị nhận<br /> dạng thường ứng dụng các giải pháp sử<br /> dụng mạng nơron, hệ mờ, mạng nơron<br /> mờ.... ANFIS (Adaptive Network-based<br /> Fuzzy Inference System) là một mạng<br /> nơron mờ nổi tiếng, hiện đang được các<br /> nhà khoa học quan tâm trong các lĩnh v ực<br /> nhận dạng và điều khiển đối tượng phi<br /> tuyến.<br /> Bài báo này giới thiệu ANFIS, sau đó đề<br /> xuất các luật học cập nhật thông số điều<br /> chỉnh cho các biến ngôn ngữ mờ ở đầu<br /> vào và các hệ số của hàm tuyến tính của<br /> đầu ra khi mạng nơron mờ này sử dụng<br /> hàm liên thuộc dạng Gauss. Để minh<br /> chứng cho tính đúng đắn của các luật điều<br /> chỉnh vừa được đề xuất, bài báo này thực<br /> hiện ứng dụng chúng trong bài toán nhận<br /> dạng một đối tượng phi tuyến mạnh đó là<br /> vị trí con lắc ngược.<br /> 2. ANFIS<br /> <br /> ANFIS là mạng nơron mờ được [1], [2]<br /> giới thiệu. Luật học dạng TSK (Takasi,<br /> Sugeno và Kang) thứ j có dạng:<br /> R j : IF u1 is A1 AND u 2 is A 2j .... AND<br /> j<br /> <br /> j<br /> <br /> n<br /> <br /> j<br /> <br /> u n is A nj THEN f j = µ j (p 0 + ∑ p i u i ) ;<br /> i =1<br /> <br /> với u i , y tương ứng là các biến đầu vào,<br /> đầu ra; A ij (u i ) là các biến ngôn ngữ mờ;<br /> p1j ∈ R là hệ số của hàm tuyến tính f j (i =<br /> 1, 2,..., n;<br /> j = 1, 2, ..., M ).<br /> Cấu trúc của ANFIS gồm 6 lớp như sau:<br /> Lớp 1: Là lớp đầu vào, mỗi nút thứ i có<br /> tín hiệu vào u i .<br /> Lớp 2: Mỗi phần tử tương ứng là một hàm<br /> liên thuộc µ j (u i ) .<br /> A<br /> <br /> i<br /> <br /> Lớp 3: Mỗi phần tử R j tương ứng thực<br /> n<br /> <br /> hiện một luật thứ j: µ j = ∏ µ ij (u i ) .<br /> i =1<br /> <br /> Lớp 4: Mỗi phần tử N tương ứng thực<br /> hiện phép tính:<br /> *Phạm Hữu Đức Dục, Tel:0913238632,<br /> Email: phdduc.uneti@moet.edu.vn<br /> <br /> Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br /> <br /> http://www.lrc-tnu.edu.vn<br /> <br /> Phạm Hữu Đức Dục<br /> <br /> Tạp chí KHOA HỌC & CÔNG NGHỆ<br /> <br /> µj<br /> <br /> 57(9): 57 – 62<br /> <br /> µj<br /> <br /> thông số nói trên. Do khuôn khổ bài báo<br /> có hạn nên không trình bày phần chứng<br /> minh, chỉ cung cấp kết quả của các luật<br /> này.<br /> <br /> Lớp 5: Mỗi phần tử j thực hiện phép tính:<br /> <br /> - Luật cập nhật thông số điều chỉnh ở lớp<br /> 5:<br /> <br /> µj =<br /> <br /> M<br /> ∑<br /> <br /> j=1<br /> <br /> .<br /> <br /> n<br /> <br /> j<br /> <br /> j<br /> <br /> f j = µ j (p 0 + ∑ p i u i ) .<br /> i =1<br /> <br /> j<br /> <br /> Lớp 6: Có một phần tử thực hiện phép<br /> tính giá trị đầu ra:<br /> <br /> với:<br /> ∂E<br /> <br /> M<br /> ∑<br /> <br /> µ jf j<br /> <br /> j=1<br /> y=<br /> M<br /> ∑<br /> <br /> j=1<br /> <br /> µj<br /> <br /> j<br /> ∂p i<br /> <br /> M<br /> <br /> = ∑ µ jf j ,<br /> <br /> u iµ j<br /> M<br /> ∑ µj<br /> j=1<br /> <br /> ;<br /> <br /> j<br /> −( u i −ci ) 2<br /> j<br /> 2.( δi ) 2<br /> ;<br /> (<br /> u<br /> )<br /> e<br /> µ<br /> =<br /> j<br /> i<br /> Ai<br /> <br /> Sai lệch trung bình bình phương giữa vị<br /> trí mong muốn yd và vị trí y:<br /> 2<br /> <br /> Để E cực tiểu (hay y bám theo được y d ) cần<br /> tìm đư ợc luật cập nhật bộ thông số điều<br /> chỉnh gồm: thông số của hàm liên thuộc ở<br /> lớp<br /> 2<br /> và<br /> bộ<br /> thông<br /> số<br /> p 0j , p1j , p 2j ,..., p ij ,..., p nj ở lớp 5.<br /> Phần sau đây đề xuất các luật điều chỉnh<br /> cập nhật giá trị của các bộ thông số điều<br /> chỉnh nói trên khi ANFIS sử dụng hàm<br /> liên thuộc Gauss, sau đó ứng dụng các<br /> luật đó trong nhận dạng vị trí con lắc<br /> ngược.<br /> <br /> {<br /> <br /> = (y − y d )<br /> <br /> - Luật cập nhật bộ thông số điều chỉnh ở lớp<br /> 2:<br /> <br /> j=1<br /> <br /> <br />  <br /> M n<br /> f <br /> <br /> ∑  ∏µ j<br />  i =1 A ( u i )  j <br /> <br /> j<br /> 1<br /> =<br /> 1 d<br /> 1<br /> i<br /> <br /> <br /> E = ( y − y) 2 =  y d −<br /> <br /> 2<br /> 2<br />  <br /> M n<br /> <br /> <br /> ∑ ∏µ j<br /> <br /> <br />  <br /> j=1  i =1 Ai ( u i )  <br /> <br /> <br /> ∂E ;<br /> j<br /> ∂p i<br /> <br /> j<br /> <br /> p i ( k + 1) = p i ( k ) − η p<br /> <br /> j<br /> j<br /> c i ( k + 1) = c i ( k ) − η c ∂E ;<br /> j<br /> ∂c<br /> i<br /> <br /> với:<br /> ∂E<br /> j<br /> <br /> ∂c i<br /> <br /> }<br /> <br /> 3. LUẬT ĐIỀU CHỈNH CỦA ANFIS VÀ<br /> ỨNG DỤNG ANFIS NHẬN DẠNG VỊ<br /> TRÍ CON LẮC NGƯỢC<br /> 3.1. Luật điều chỉnh của ANFIS<br /> Vấn đề đặt ra là cần tìm các luật cập nhật<br /> bộ các thông số điều chỉnh ở các lớp<br /> 2 và 5 cho ANFIS khi sử dụng hàm liên<br /> thuộc Gauss thực hiện theo phương pháp<br /> hạ gradient để tìm các luật điều chỉnh các<br /> <br /> j<br /> <br /> = (y − y d )<br /> <br /> (f j − y)(u i − a i ( u i ))µ j<br /> ;<br /> j<br /> <br /> M<br /> <br /> δ i (u i ) 2 ∑ µ j<br /> j=1<br /> <br /> j<br /> <br /> j<br /> <br /> δ i ( k + 1) = δ i ( k ) − η δ<br /> <br /> ∂E<br /> <br /> ;<br /> <br /> j<br /> ∂δ i<br /> <br /> với:<br /> ∂E<br /> ∂δij<br /> <br /> = ( y − yd )<br /> <br /> (f j − y)(u i − a ij ( u i ))2 µ j<br /> <br /> ;<br /> <br /> M<br /> δij ( u i )3 ∑ µ j<br /> j=1<br /> <br /> trong đó: η p, η c , η δ là các hệ số học.<br /> 3.2. Ứng dụng ANFIS nhận dạng vị trí<br /> con lắc ngược<br /> 3.2.1. Động học hệ xe goòng-con lắc<br /> ngược<br /> <br /> Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br /> <br /> http://www.lrc-tnu.edu.vn<br /> <br /> Phạm Hữu Đức Dục<br /> <br /> Tạp chí KHOA HỌC & CÔNG NGHỆ<br /> <br /> Hình 1 mô tả hệ xe goòng-con lắc ngược<br /> [3]. Phương trình động học có dạng:<br /> x 1 = x 2 ;<br /> <br /> 57(9): 57 – 62<br /> <br /> ngược(m); f là lực đẩy tác động vào xe<br /> (N); g là gia tốc trọng trường và<br /> a=<br /> <br /> 1<br /> .<br /> m+M<br /> <br /> 3.2.2. Thiết lập thiết bị nhận dạng<br /> <br /> Hình 1. Mô hình hệ xe goòng-con lắc<br /> ngược<br /> <br /> Hình 2. Sơ đồ ứng dụng mạng nơron<br /> Elman nhận dạng vị trí con lắc ngược<br /> x 2 =<br /> <br /> g sin( x 1 ) − amlx 22 sin(2x 1 ) / 2 − a cos( x 1 )f<br /> 4<br /> l − aml cos 2 ( x 1 )<br /> 3<br /> <br /> với: x 1 và x 2 tương ứng là vị trí (rad) và<br /> tốc độ góc (rad/s) của con lắc ngược; m<br /> và M tương ứng là khối lượng con lắc<br /> ngược (kg) và khối lượng xe goòng (kg); l<br /> là một nửa chiều dài của con lắc<br /> <br /> Sử dụng sơ đồ nhận dạng song song [4]<br /> ứng dụng ANFIS nhận dạng vị trí con lắc<br /> ngược x1(k) trình bày ở hình 2. Hình 3 là<br /> sơ đồ mô phỏng số liệu vào/ra của con lắc<br /> ngược trên Matlab/ Simulink. Hình 4 mô<br /> tả sơ đồ cấu trúc của ANFIS nhận dạng vị<br /> trí con lắc ngược. Vị trí con lắc ngược tại<br /> thời điểm k là x1(k) không những chỉ phụ<br /> thuộc vào lực tác dụng f(k) mà còn phụ<br /> thuộc các giá trị quá khứ x1(k-1), mặt<br /> khác cần thoả mãn yêu cầu về cấu trúc<br /> của thiết bị nhận dạng không quá phức<br /> tạp. Từ đó chọn số đầu vào của ANFIS là<br /> 2, với các tín hiệu vào tương ứng là f(k),<br /> ∧<br /> x1(k-1) và có 1 đầu ra là x1 (k ) . Chọn số<br /> hàm liên thuộc cho mỗi biến đầu vào là<br /> 2. Như vậy lớp 3 của ANFIS có 4 luật<br /> học tương ứng từ R1 đến R4 và ở lớp 5<br /> thực hiện tính toán các hàm tuyến tính:<br /> j<br /> <br /> 2<br /> <br /> j<br /> <br /> f j = µ j (p 0 + ∑ p i u i )<br /> i =1<br /> <br /> (với j=1, 2, 3, 4)<br /> Quá trình nhận dạng được tiến hành trong<br /> hai giai đoạn: học và kiểm tra sau đây.<br /> <br /> Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br /> <br /> http://www.lrc-tnu.edu.vn<br /> <br /> Phạm Hữu Đức Dục<br /> <br /> Tạp chí KHOA HỌC & CÔNG NGHỆ<br /> <br /> 57(9): 57 – 62<br /> <br /> Hình 3. Sơ đồ tính toán số liệu vào/ra vị trí con lắc ngược trên Matlab/Simulink.<br /> <br /> Hình 4. Sơ đồ cấu trúc của ANFIS nhận dạng vị trí con lắc ngược.<br /> <br /> Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br /> <br /> http://www.lrc-tnu.edu.vn<br /> <br /> Phạm Hữu Đức Dục<br /> <br /> Tạp chí KHOA HỌC & CÔNG NGHỆ<br /> <br /> - Giai đoạn học<br /> Thực hiện quá trình tính toán số liệu<br /> vào/ra của vị trí con lắc ngược. Thông số<br /> sử dụng trong quá trình mô phỏng: m =<br /> 0.1 (kg); M = 10(kg); g = 9.8 (m/s2); l<br /> = 4(m). với lực tác dụng f ở dạng ngẫu<br /> nhiên trong khoảng [-1, 1] (hình 5).<br /> Thực hiện chạy mô hình tính toán thông<br /> số vào-ra trên Matlab/Simulink (hình 3)<br /> được đồ thị biểu diễn vị trí thực x1 của<br /> con lắc ngược của giai đoạn học trên đồ<br /> <br /> 57(9): 57 – 62<br /> <br /> thị hình 8 đ( ư ờng nét liền). Thực hiện<br /> giai đoạn học trên Matlab với các luật<br /> cập nhật thông số như sau.<br /> ∂p ij<br /> <br /> ;<br /> <br /> với:<br /> u iµ j<br /> ∧<br /> = ( x1 − x1 )<br /> j<br /> 4<br /> ∂p i<br /> ∑ µj<br /> ∂E<br /> <br /> j =1<br /> <br /> 1<br /> <br /> 1<br /> <br /> ∂E<br /> <br /> p ij ( t + 1) = p ij ( t ) − ηp<br /> <br /> 1<br /> 0.9<br /> <br /> 0.8<br /> <br /> 0.8<br /> <br /> 0.6<br /> <br /> 0.8<br /> 0.7<br /> <br /> 0.4<br /> <br /> 0.6<br /> <br /> 0.6<br /> <br /> 0.2<br /> <br /> 0.5<br /> <br /> 0<br /> 0.4<br /> <br /> 0.4<br /> <br /> -0.2<br /> <br /> 0.3<br /> <br /> -0.4<br /> <br /> 0.2<br /> <br /> 0.2<br /> <br /> -0.6<br /> <br /> 0.1<br /> <br /> -0.8<br /> -1<br /> <br /> 0<br /> 0<br /> <br /> 10<br /> <br /> 20<br /> <br /> 30<br /> <br /> 40<br /> <br /> 50<br /> <br /> 60<br /> <br /> 70<br /> <br /> 80<br /> <br /> 90<br /> <br /> Hình 5. Đồ thị lực tác dụng<br /> f(k) trong giai đoạn học<br /> 2.5<br /> <br /> 2<br /> <br /> 1.5<br /> <br /> 1<br /> <br /> 0.5<br /> <br /> 0<br /> <br /> 0<br /> <br /> 0<br /> <br /> 10<br /> <br /> 20<br /> <br /> 30<br /> <br /> 40<br /> <br /> 50<br /> <br /> 60<br /> <br /> 70<br /> <br /> 0<br /> <br /> 10<br /> <br /> 20<br /> <br /> 30<br /> <br /> 40<br /> <br /> 50<br /> <br /> 60<br /> <br /> 70<br /> <br /> 80<br /> <br /> 90<br /> <br /> 10<br /> <br /> 20<br /> <br /> 30<br /> <br /> 40<br /> <br /> 50<br /> <br /> 60<br /> <br /> 70<br /> <br /> 80<br /> <br /> Hình 6. Bộ hàm liên thuộc Hình 7. Bộ hàm liên thuộc<br /> ban đầu của đầu vào<br /> ban đầu của đầu vào f(k)<br /> x1(k-1)<br /> 1<br /> <br /> 1<br /> <br /> 0.9<br /> <br /> 0.9<br /> <br /> 0.8<br /> <br /> 0.8<br /> <br /> 0.7<br /> <br /> 0.7<br /> <br /> 0.6<br /> <br /> 0.6<br /> <br /> 0.5<br /> <br /> 0.5<br /> <br /> 0.4<br /> <br /> 0.4<br /> <br /> 0.3<br /> <br /> 0.3<br /> <br /> 0.2<br /> <br /> 0.2<br /> <br /> 0.1<br /> -0.5<br /> <br /> 0<br /> <br /> 80<br /> <br /> 0<br /> <br /> 0.1<br /> <br /> 0<br /> <br /> 10<br /> <br /> 20<br /> <br /> 30<br /> <br /> 40<br /> <br /> 50<br /> <br /> 60<br /> <br /> 70<br /> <br /> 80<br /> <br /> Hình 8. Đồ thị x1(k)(nét<br /> liền), ∧x1 (k) (nét đứt) giai Hình 9. Bộ hàm liên thuộc<br /> sau khi học của đầu vào<br /> đoạn học<br /> f(k)<br /> <br /> 0<br /> <br /> 0<br /> <br /> 10<br /> <br /> 20<br /> <br /> 30<br /> <br /> 40<br /> <br /> 50<br /> <br /> 60<br /> <br /> 70<br /> <br /> 80<br /> <br /> Hình 10. Bộ hàm liên<br /> thuộc sau khi học của đầu<br /> vàox1(k-1)<br /> <br /> 1<br /> 2<br /> <br /> 0.8<br /> 2<br /> <br /> 0.6<br /> 1.5<br /> <br /> 1.5<br /> <br /> 0.4<br /> 0.2<br /> <br /> 1<br /> <br /> 0<br /> <br /> 1<br /> <br /> 0.5<br /> <br /> -0.2<br /> 0<br /> 2<br /> <br /> -0.4<br /> 1.5<br /> <br /> 1<br /> 0.5<br /> <br /> 1<br /> <br /> 0<br /> <br /> 0.5<br /> <br /> -0.8<br /> <br /> -0.5<br /> 0<br /> <br /> 0<br /> <br /> -1<br /> <br /> -1<br /> <br /> Hình 11 . Đồ thị 3 chiều<br /> quan hệ<br /> <br /> 0.5<br /> <br /> -0.6<br /> <br /> f(k), x1(k-1),<br /> <br /> ∧<br /> <br /> x1<br /> <br /> 30<br /> <br /> 35<br /> <br /> 40<br /> <br /> 45<br /> <br /> 50<br /> <br /> 55<br /> <br /> 60<br /> <br /> 65<br /> <br /> Hình 12 . Đồ thị lực tác<br /> dụng f(k) giai đoạn kiểm<br /> <br /> Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên<br /> <br /> 0<br /> <br /> 10<br /> <br /> 20<br /> <br /> 30<br /> <br /> 40<br /> <br /> 50<br /> <br /> 60<br /> <br /> 70<br /> <br /> 80<br /> <br /> 70<br /> <br /> Hình 13. Đồ thị x1(k) (nét<br /> liền),<br /> <br /> ∧<br /> <br /> x 1 (k)<br /> <br /> (nét đứt) kiểm<br /> <br /> http://www.lrc-tnu.edu.vn<br /> <br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2