Trang 2 --- Nguyễn Văn CườngNGHIÊN CỨU ỨNG DỤNG MẠNG NƠRON-MỜ NHẬN DẠNG HỆ PHI TUYẾNChuyên ngành: Tự động hoáLUẬN VĂN THẠC SĨ: TỰ ĐỘNG HOÁ NGƯỜI HƯỚNG DẪN KHOA HỌC:PGS.TS Nguyễn Trọng Th
TỔNG QUAN
Mở đầu
Khoảng hai mươi năm trước, nghiên cứu và điều khiển các hệ tuyến tính đã đạt được sự hoàn hảo, nhưng việc tiếp cận các hệ phi tuyến vẫn gặp nhiều khó khăn Mặc dù các nhà khoa học đã nỗ lực phát triển nhiều phương pháp khác nhau, nhưng hầu hết chỉ áp dụng cho một số hệ phi tuyến đặc biệt với bậc thấp Do đó, việc tìm kiếm các phương pháp phân tích và điều khiển cho các hệ phi tuyến bậc cao vẫn là một lĩnh vực nghiên cứu quan trọng cho đến ngày nay.
Ngày nay, sự phát triển của khoa học và công nghệ, đặc biệt là công nghệ máy tính số, đã mang đến nhiều phương pháp hiệu quả trong việc tiếp cận các hệ phi tuyến Ba trong số các phương pháp mới và nổi bật nhất bao gồm:
- Phương pháp sử dụng hệ suy diễn mờ
- Phương pháp sử dụng mạng Nơron
- Phương pháp sử dụng mạng Nơron-mờ
Các phương pháp này có khả năng mô phỏng tư duy con người, cho phép áp dụng hiệu quả cho nhiều hệ phi tuyến phức tạp Phương pháp suy diễn mờ nổi bật với việc sử dụng kiến thức chuyên gia qua các phát biểu ngôn ngữ Trong khi đó, mạng nơron tự học từ mẫu và đạt độ chính xác cao Mạng nơron mờ kết hợp ưu điểm của cả hai phương pháp, mang lại hiệu quả vượt trội trong việc xử lý thông tin.
Các hệ thống thực tế trong mọi lĩnh vực của đời sống xã hội thường là các hệ phi tuyến Do đó, việc nhận dạng các hệ phi tuyến trở nên vô cùng quan trọng và có ý nghĩa thiết thực.
Mục đích, đối tượng và phạm vi nghiên cứu, ý nghĩa khoa học và thực tiễn của đề tài
1.2.1 Mục đích, đối tượng và phạm vi nghiên cứu
Nghiên cứu bài toán nhận dạng hệ phi tuyến bằng công cụ hiện đại là mạng nơron mờ
Xây dựng một mạng nơron mờ có khả năng nhận dạng hệ phi tuyến bất - kỳ
Ứng dụng mạng nơron mờ để nhận dạng một đối tượng cụ- thể
1.2.2 Ý nghĩa khoa học và thực tiễn của đề tài
Bài viết trình bày một phương pháp mới, đơn giản và hiệu quả để nhận diện hệ phi tuyến, phục vụ cho nhiều mục đích như điều khiển, phân tích, mô phỏng và dự đoán hệ thống.
Tình hình nghiên cứu trong và ngoài nước
1.3.1 Tình hình nghiên cứu ngoài nước
Bài báo đầu tiên về nơron mờ được Ed Lee phát hành vào năm 1975, nhưng hoạt động nghiên cứu trong lĩnh vực này rất hạn chế cho đến năm 1988 khi H Takagi và I Hayashi phát minh ra các hệ thống kết hợp giữa logic mờ và mạng nơron, mở ra cơ hội phát triển đa dạng cho nơron mờ Hiện nay, nơron mờ đã trở thành một lĩnh vực nghiên cứu phong phú với nhiều tài liệu và ứng dụng rộng rãi, đặc biệt trong ngành sản phẩm tiêu dùng Sự quan tâm đến nơron mờ đặt ra câu hỏi về khả năng của nó trong việc thực hiện những nhiệm vụ mà các hệ thống khác không thể làm được.
Hệ thống nơron mờ là sự kết hợp giữa tính toán nơron và logic mờ, kết hợp các công nghệ học máy và xấp xỉ Chúng sử dụng phân tích ngôn ngữ, các luật suy luận mờ “nếu-thì”, và kiến thức chuyên gia để xử lý thông tin.
Hệ nơron mờ, được phát triển bởi Arabshahi, sử dụng thuật toán lan truyền ngược và cải thiện khả năng thông qua các luật mờ “nếu thì” để điều chỉnh các thông số Tư tưởng cốt lõi của phương pháp này có thể áp dụng cho nhiều loại thuật toán khác nhau, trong đó hiểu biết và kinh nghiệm của con người đóng vai trò quan trọng trong việc xác định giá trị các thông số và điều khiển các biến hệ thống Trong các ứng dụng này, các luật mờ “nếu-thì” được sử dụng như ngôn ngữ để diễn đạt sự hiểu biết và kinh nghiệm của con người.
Vào đầu những năm 90, hệ suy luận mờ Takagi Sugeno được xem như một mạng nơron nhiều lớp, mở ra một hướng nghiên cứu quan trọng Việc điều chỉnh thông số trong các hệ thống này được thực hiện bằng kỹ thuật gradient Hệ ANFIS, do Roger Jang phát triển, là một ví dụ tiêu biểu cho hướng đi này.
Một hướng quan trọng khác nữa được thực hiện bởi G Bortolan liên quan tới mờ hoá nhiều lớp, mạng nơron truyền thẳng, kết hợp trong một mạng nơron mờ
Mạng nơron mờ, một thành phần chính trong tính toán mềm, là một hệ thống thông minh với khả năng điều chỉnh thích nghi và xử lý thông tin hiệu quả Vào giữa những năm 1970, Lee S C và Lee E T đã đề xuất các nơron mờ, cùng với những kết quả hệ thống về mạng nơron mờ được phát triển từ việc mờ hoá các nơron McCulloch Pitts Tuy nhiên, do sự giảm sút quan tâm đối với mạng nơron vào thời điểm đó, các công trình này đã không được chú ý Đến năm 1987, Kosko đã khôi phục lại sự quan tâm đối với lĩnh vực này.
B đã phát triển bộ nhớ kết hợp mờ FAM (fuzzy associative memory) nhằm giải quyết bài toán thông tin thông minh thông qua việc tích hợp các toán tử mờ vào mạng nhớ Vào đầu những năm 1980, nghiên cứu về mạng nơron bùng nổ nhờ vào công trình của Hopfield J J., từ đó mạng nơron mờ thu hút sự quan tâm của nhiều học giả Nhiều nội dung mới như cấu trúc, luật huấn luyện và mô hình mạng nơron mờ đã được phát triển Mạng nơron mờ đã chứng tỏ hiệu quả trong nhiều lĩnh vực ứng dụng như mô hình hoá hệ thống, phân tích độ tin cậy, nhận dạng mẫu, điều khiển gián tiếp, mô phỏng và dự đoán.
Dựa trên quá trình mờ hóa của mạng nơron mờ phát triển từ cuối những năm 1980, các mô hình mạng nơron mờ được phân chia thành ba loại chính.
- Dựa trên các toán tử mờ:
- Các mạng nơron được mờ hoá:
+ Mạng nơron mờ chính tắc
+ Mạng nơron mờ cải tiến
- Các mạng suy luận mờ:
+ Kiểu Tổng quát hoá o Danh mục các công trình nghiên cứu ngoài nước có liên quan đến luận văn
[1] Hung T Nguyen, Nadipuram R Prasad, Carol L Walker, Elbert A
Walker: A first course in fuzzy and neural control Công trình đã đưa ra các khái niệm cơ bản về logic mờ, mạng nơron, mạng nơron mờ
[2] Jairo Espinosa, Joos Vandewalle and Vincent Wertz: Fuzzy Logic,
Nhận dạng và điều khiển dự báo là hai khái niệm quan trọng trong nghiên cứu Bài viết trình bày các phương pháp cơ bản để phát triển một hệ thống suy luận mờ, nhằm ứng dụng hiệu quả trong lĩnh vực này Hệ thống này không chỉ giúp cải thiện khả năng nhận diện mà còn tối ưu hóa quy trình điều khiển dự báo.
[3] Hongxing, C.L Philip Chen, Han Pang Huang: Fuzzy Neural, -
Intelligent Systems Công trình đưa ra khái niệm mạng nơron mờ được xây dựng từ mạng nơron bằng cách thêm vào các toán tử mờ
[4] Puyin Liu, Hongxing Li: Fuzzy Neural Network Theory and
[5] Adedejib, John Y.Cheung: Fuzzy Engineering Expert Systems with
[6] Martin T.Hagan, Howard B.Demuth, Mark Beale: Neural Network
1.3.2 Tình hình nghiên cứu trong nước
Trong bối cảnh phát triển của khoa học công nghệ toàn cầu, các nhà khoa học Việt Nam đã tích cực nghiên cứu và phát triển các phương pháp mới, đặc biệt là ứng dụng mạng nơron, logic mờ và mạng nơron mờ Những thành công này đã góp phần quan trọng vào các công trình nghiên cứu liên quan đến luận văn.
Cuốn sách “Điều khiển logic và ứng dụng” của PGS, TS Nguyễn Trọng Thuần, xuất bản năm 2000, trình bày những khái niệm cơ bản về logic mờ và hệ suy diễn mờ Tác phẩm cũng nêu bật một số ứng dụng thiết thực của hệ suy diễn mờ, bao gồm điều khiển máy điều hòa không khí, máy giặt, tốc độ động cơ một chiều, vị trí, và lò nung clinker trong sản xuất xi măng.
Trong cuốn sách "Lý thuyết điều khiển mờ" do Nhà xuất bản Khoa học và Kỹ thuật phát hành năm 2004, các tác giả Phan Xuân Minh và Nguyễn Doãn Phước đã trình bày những khái niệm cơ bản về mạng nơron và lôgic mờ.
- “Hệ mờ mạng nơron và ứng dụng” Nhà xuất bản khoa học và kỹ thuật -
Vào năm 2006, Bùi Công Cường và Nguyễn Doãn Phước đã chủ biên một công trình nghiên cứu về ứng dụng của logic mờ và mạng nơron trong nhiều lĩnh vực khác nhau, bao gồm điều khiển, toán học, công nghệ thông tin, kinh tế và ngân hàng.
- “Hệ thống chuẩn đoán lỗi ứng dụng mạng nơron mờ” –VICA 5 của PGS,TS Nguyễn Công Hiền
- “Nhận dạng hệ phi tuyến dùng logic mờ” VICA 5 của Huỳnh Thái Hoàng, - Nguyễn Thị Phương Hà, Nguyễn Thúc Loan
- “Ứng dụng bộ đièu khiển nơron mờ điều khiển thích nghi vị trí động cơ - một chiều”- VICA 6 của Phạm Đức Dục, Nguyễn Công Hiền
- “Nghiên Cứu ứng dụng mạng nơron mờ điều khiển thích nghi rôbốt hai - khâu”-VICA 6 của Phạm Đức Dục, Nguyễn Công Hiền.
MẠNG NƠRON MỜ
Logic mờ và hệ suy diễn mờ
Trước khi tìm hiểu về logic mờ, cần nắm rõ khái niệm logic, được định nghĩa là tập hợp các quy tắc tư duy chặt chẽ, chính xác và phù hợp với thực tiễn khách quan Logic rõ, hay còn gọi là logic hai trạng thái, chỉ sử dụng hai giá trị đúng (1) và sai (0), và đã có vai trò quan trọng trong nhiều lĩnh vực của đời sống xã hội, mang lại nhiều thành công Tuy nhiên, logic rõ cũng tồn tại một số hạn chế cơ bản.
- Suy luận cứng nhắc, nhiều khi không đúng với thực tế
- Quá trình tư duy là gián đoạn
- Nhiều tổ hợp không đúng với thực tế
Khi đánh giá một bài luận văn thạc sĩ, khái niệm "xuất sắc" có thể được xác định rõ ràng bằng điểm số (trên 9 điểm), giúp việc áp dụng logic rõ ràng trở nên khả thi Ví dụ, một bài luận văn đạt 10 điểm được xem là xuất sắc, trong khi bài có 8 điểm không thể được đánh giá là xuất sắc Tuy nhiên, khi khái niệm xuất sắc thiếu thông tin quy định về điểm số, việc sử dụng logic rõ ràng trở nên khó khăn, vì không thể xác định liệu một bài luận văn 8 điểm có thực sự xuất sắc hay không Do đó, cần thiết phải phát triển một khái niệm logic mới, gọi là logic mờ, để khắc phục những hạn chế của logic rõ.
Theo G.Cantor, tập hợp là sự tổ chức các đối tượng có chung một tính chất, được gọi là phần tử của tập hợp Mỗi vật hoặc đối tượng chỉ có hai khả năng: hoặc là phần tử của tập hợp đang xem xét, hoặc không phải là phần tử của nó.
Có nhiều cách để biểu diễn một tập hợp, thông thường một tập hợp được biểu diễn bằng một trong hai cách đó là:
- Liệt kê các phần tử của tập hợp: A = { 0; 1; 2; 3; 4; 5; 6; 7; 8; 9}
- Biểu diễn thông qua tính chất tổng quát của các phần tử:
A = { x | x là số nguyên không âm và x1 và M = 1.
Tập huấn luyện bao gồm các cặp giá trị vào-ra (A i , B i ) cho:
- Một hệ thống MIMO với tập huấn luyện dưới dạng:
- Một hệ thống MISO với tập huấn luyện dưới dạng:
- Một hệ thống SISO với tập huấn luyện:
Chúng ta cũng cần kết hợp các hoạt động giải mờ vào trong mạng nơron, thực hiện ở mức cuối cùng của mạng nơron
2.3.2 Phương pháp xây dựng mạng nơron mờ
Có hai cách tiếp cận chính để thực hiện các luật mờ “Nếu … thì …” bằng mạng chuẩn lan truyền ngược sai lệch Phương pháp đầu tiên được Umano và Ezawa giới thiệu vào năm 1991, sau đó được Uehara và Fujise cải biên vào năm 1992, sử dụng một số hữu hạn các tập để biểu diễn các số mờ Năm 1993, Jang đã mở rộng phương pháp này để phát triển mạng nơron thích nghi mờ ANFIS, đây là mạng mà luận văn sẽ nghiên cứu sâu.
Trong phương pháp của Umano và Ezawa, một tập mờ được biểu diễn bằng một số hữu hạn các giá trị hàm thuộc Giả sử chúng ta có một tập hợp các luật mờ được trình bày dưới dạng:
Nếu x là Ai thì y là Bi, với Ai và Bi là các tập mờ xác định trên các khoảng [a1, a2] và [b1, b2] Giả sử các cặp giá trị xj và yk được xác định bởi công thức xj = a1 + ( ).
− (2.125) với N ≥ 2, M 2 và 1 j N, 1 k M Khi đó chúng ta sẽ có các mẫu huấn ≥ ≤ ≤ ≤ ≤ luyện rời rạc bao gồm các cặp giá trị vào ra như sau:-
Mạng nơron mờ được định nghĩa là Ai(x) và Bi(y), trong đó Ai(x) gồm N đầu vào và Bi(y) gồm M đầu ra Mạng này có khả năng được huấn luyện theo các quy tắc luyện tập mạng nơron thông thường.
Xét một tập luật mờ gồm ba luật sau:
R1: Nếu x là nhỏ thì y là âm
R2: Nếu x là trung bình thì y là gần không
R3: Nếu x là lớn thì y là dương với các hàm thuộc được định nghĩa như sau: lấy M = N = 5 và
Hình 2.19 Các hàm thuộc vào ra xj= (j 1)/4, 1≤- 5 j ≤ yk= (k 3)/2, 1≤- k ≤ 5.
Do đó ta có: x = (x1, x2, x3, x4, x5) = (0,0.25,0.5,0.75,1) y= (y1, y2, y3, y4, y5) = (- -1, 0.5,0,0.5,1) tập các mẫu để luyện mạng sẽ là:
Bây giờ ta xét mô hình Sugeno Takagi vớ- i hai mệnh đề:
R1: Nếu x1 là A1 và x2 là B1 thì y = f1(x) (2.127)
R2: Nếu x1 là A2 và x2 là B2 thì y = f2(x)
Trong đó A1, A2, B1, B2 là những tập mờ và f1(x) = z11x1 + z12x2 + z13 (2.128) f2(x) = z21x1 + z22x2 + z23 Vậy với x = (x1, x2) thì kết quả ra sẽ là: y = ( ) ( ) ( ) ( )
Mạng nơron mờ của mô hình được thiết kế như hình 2.20 Các đầu vào (x1, x2) được coi là lớp 0 của mạng (lớp đầu vào) Đầu ra của lớp 1 sẽ là:
(O11, O12, O13, O14) = (A1(x1), A2(x1), B1(x2), B2(x2)) (2.130) với các hàm thuộc của Ai, Bi, i=1.2 có thể là các hàm tam giác, sigmoid hay gaussian
Lớp 2 bao gồm các nơron mờ với hoạt động kết hợp là các mệnh đề t- norm (sử dụng phép nhân) Giá trị đầu ra của lớp 2 là:
Các nơron ở lớp 4 có giá trị ra:
Cuối cùng đầu ra của mạng sẽ là: y= O41+O42 y
Lớp 0 Lớp 1 Lớp 2 Lớp 3 Lớp 4 Lớp ra
Hình 2.20 Cấu trúc mạng nơron mờ với hai giá trị vào.
Bài viết này trình bày phương pháp xây dựng mạng nơron mờ cho mô hình Sugeno-Takagi với hai mệnh đề, đồng thời nhấn mạnh khả năng mở rộng cho các mô hình có số luật tùy ý và ứng dụng cho các mô hình khác.
2.3.3 Thuật toán học của mạng nơron mờ
Trong mạng nơron, thuật toán lan truyền ngược là phương pháp phổ biến nhất được sử dụng để học và điều chỉnh các trọng số của nơron dựa trên các mẫu huấn luyện đầu vào và đầu ra.
NHẬN DẠNG HỆ PHI TUYẾN SỬ DỤNG MẠNG NƠRON MỜ VÀ ỨNG DỤNG
Nhận dạng hệ phi tuyến sử dụng mạng nơron-mờ
Việc áp dụng mạng nơron mờ kết hợp ưu điểm của mạng nơron và hệ logic mờ, mang lại khả năng học hỏi và sử dụng kiến thức chuyên gia dưới dạng ngôn ngữ Phương pháp nhận diện hệ phi tuyến bằng mạng nơron mờ là giải pháp khả thi, có khả năng xấp xỉ vạn năng với độ chính xác tùy ý cho nhiều quá trình khác nhau.
Hệ phi tuyến bất kỳ có dạng y = f(u,t) trong đó y là tín hiệu ra và u là vectơ tín hiệu vào Việc xác định hàm f phụ thuộc vào kinh nghiệm của nhà thiết kế hệ thống và các yêu cầu hội tụ Để ứng dụng mạng nơron mờ cho nhận dạng, chúng ta sử dụng vectơ tín hiệu vào u và sai lệch giữa tín hiệu ra thực tế y và tín hiệu ra ước lượng yˆ để điều chỉnh vectơ thông số của mạng Tập giá trị yêu cầu m của tín hiệu học vào-ra (ui,yi) coi như tập các giá trị huấn luyện mạng, từ đó phục vụ cho nhận dạng hệ thống Các bước cơ bản của bài toán nhận dạng hệ thống sử dụng mạng nơron mờ bao gồm các quy trình cụ thể để tối ưu hóa và cải thiện độ chính xác của mô hình.
1) Thực hiện khảo sát, và thu thập tập dữ liệu vào ra của hệ để huấn luyện mạng
2) Chia tập dữ liệu thu được thành 2 tập, một tập để huấn luyện, một tập để kiểm tra
3) Lựa chọn cấu trúc mạng, các tín hiệu vào ra phù hợp cho quá trình - nhận dạng
4) Thực hiện nhận dạng hệ thống thông qua các mẫu huấn luyện của mạng
5) Thực hiện kiểm tra đánh giá mạng thu được sau khi huấn luyện bằng tập dữ liệu kiểm tra
6) Kết thúc quá trình và đánh giá kết quả
Trong quá trình học, các thông số của hàm thuộc được điều chỉnh để hệ suy diễn mờ phù hợp với dữ liệu huấn luyện, tương tự như mạng nơron Các thông số như độ rộng và tâm được tối ưu hóa nhằm tối thiểu hóa hàm tổng bình phương sai lệch Quá trình nhận dạng diễn ra khi dữ liệu huấn luyện vào-ra tạo ra cấu trúc hệ suy diễn mờ, từ đó các thông số hàm thuộc được điều chỉnh thông qua thuật toán học của mạng Điều này dẫn đến việc hình thành một mạng nơron nhân tạo, cho phép ánh xạ dữ liệu vào và tạo ra dữ liệu ra thông qua hàm thuộc Trong quá trình học, các thông số hàm thuộc sẽ thay đổi, nhưng khi dữ liệu huấn luyện bị nhiễu, chúng có thể không phản ánh đúng bản chất của hệ Do đó, cần có một mô hình kiểm chứng để kiểm tra và dự báo các dữ liệu đầu ra của hệ.
Trong bài viết này, tác giả áp dụng mạng nơron mờ thích nghi ANFIS để nhận diện hệ phi tuyến Hệ thống (3.1) được mô hình hóa thông qua phương pháp suy luận mờ Sugeno-Takagi.
Ri : Nếu x1 là A1 i và x2 là A2 i và…và xn là An i thì yi là fi(x) (3.2)
Trong đó: fi(x) = a0 i +a1 ix1+a2 ix2+…+an ixn i = 1 m.
Sử dụng phép nhân thay cho phép AND, t-norm cho phép OR và áp dụng giải mờ theo phương pháp trung bình trọng tâm, cấu trúc mạng nơron mờ tương ứng với hệ (3.2) được thể hiện trong hình 3.1.
Lớp 1: Trong lớp này, mỗi nơron tương ứng là một nơron thích nghi, giá trị đầu ra của nơron thứ i trong lớp cho bởi công thức:
Trong đú x là tớn hiệu vào, Ai(x) là tập mờ tương ứng, àAi (x) là hàm thuộc của
Ai Cỏc thụng số xỏc định àAi (x) cú thể được hiệu chỉnh trong quỏ trỡnh học của mạng
Lớp 2: Mỗi nơron trong lớp ha là một nơron cố định, giá trị ra của nơron thứ i lớp này là tích của các tín hiệu vào nơron đó thể hiện phép AND mờ, được xác định theo công thức:
Lớp 3: Cũng giống như lớp 2, mỗi nơron thuộc lớp 3 cũng là một nơron cố định với giá trị ra được xác định theo công thức:
Lớp 4: Mỗi nơron trong lớp 4 là một nơron thích nghi với giá trị ra của nơron thứ i trong lớp xác định theo công thức:
O4i = ( n ) i n i i i i i i f w a a x a x a x w ˆ = ˆ 0 + 1 1 + 2 2 + + (3.6) Các thông số a0 i, a1 i, a2 i,…,an i có thể được ước lượng, hiệu chỉnh trong quá trình học của mạng
Lớp ra của mạng nơron bao gồm các nơron cố định, trong đó giá trị đầu ra của nơron thứ i được tính bằng tổng các giá trị đầu vào của nó Công thức tính toán này được thể hiện như sau: yˆ i = ∑ = ∑ ∑ i i i i i i i w f f w w ˆ (3.7).
Mạng sẽ được huấn luyện để tối ưu hàm mục tiêu là tổng bình phương sai lệch giữa giá trị ra ước lượng và giá trị ra mong muốn:
E (3.8) trong đó k là số mẫu huấn luyện
Các thông số trong mạng đóng vai trò như trọng số, xác định hàm thuộc cho các tập mờ vào và ra Những thông số này sẽ được cập nhật bằng phương pháp giảm dốc nhanh nhất Cụ thể, nếu θi là thông số thứ i cần ước lượng, thì θi sẽ được cập nhật theo công thức: θi(k+1) = θi(k) + ∆θi.
∆ (3.10) trong đó là hệ số học của mạng, lấy giá trị trong khoảng (0;1).η η
Sử dụng mạng nơron mờ để nhận dạng hệ phi tuyến tĩnh
Trong phần này, luận văn sẽ minh họa khả năng nhận dạng các hệ phi tuyến tĩnh của mạng nơron mờ thông qua hai ví dụ cụ thể Đầu tiên, mạng nơron mờ sẽ được sử dụng để nhận dạng hàm y = x^2, sau đó là hàm y = sinx + cosx.
3.2.1 Sử dụng mạng nơron mờ nhận dạng hàm y = x 2
Giả sử ta thu được tập các giá trị vào-ra của hàm y=x 2 như sau: x (k) = {0.5;0.6;0.7;0.8;0.9;1;2;3;4;5;6;7;8;9;10} y (k) = {0.25;0.36;0.49;0.64;0.81;1;4;9;16;25;36;49;64;81;100}
Thực hiện mô hình hoá hệ bằng hệ suy luận mờ sau:
R1: Nếu x là gần không (A1) thì y là a 1 0 + a 1 1 x
R2: Nếu x là nhỏ (A2) thì y là a 0 2 + a 1 2 x
R3: Nếu x là vừa (A3) thì y là a a 1 3 x
R4: Nếu x là lớn (A4) thì y là a 0 4 + a 1 4 x
R5: Nếu x là khá lớn (A5) thì y là a 0 5 + a 1 5 x
Các hàm thuộc của các tập mờ “gần không”, “nhỏ”, “vừa”, “lớn”, “khá lớn” (A1, ,A5) là các hàm Gauss xác định theo công thức:
Các thông số đóng vai trò là các trọng số của mạng cần hiệu chỉnh trong quá trình học là:
- Các thông số xác định hình dạng của các hàm thuộc: c1, σ1, c2, σ2, c3, σ3, c4, σ4, c5, σ5
Các thông số xác định giá trị ra bao gồm a0 1, a1 1, a0 2, a1 2, a0 3, a1 3, a0 4, a1 4, a0 5, và a1 5 Để biết thêm chi tiết, người dùng có thể tham khảo phần phụ lục của phần mềm chương trình huấn luyện mạng Dưới đây là một số kết quả đạt được sau khi huấn luyện mạng.
Thông số ước lượng Giá trị khởi tạo ban đầu Giá trị thu được sau huấn luyện c1 0.5000 1.0689 c2 2.8800 2.5573 c5 5.2500 3.9151 c 4 7.6250 7.0305 c 5 10.0000 9.3241
Hình 3.2a: Các hàm thuộc ban đầu Hình3.2b: Các hàm thuộc đã huấn luyện σ1 1.0090 1.2322 σ2 1.0090 1.4953 σ3 1.0090 -2.0437 σ4 1.0090 2.9932 σ5 1.0090 3.4964 a0 1 0 -0.4960 a1 1 1 0.4574 a0 2 1 0.8629 a1 2 1 1.1910 a0 3 1 1.4894 a1 3 1 3.8739 a0 4 0 0.2200 a1 4 1 3.7373 a0 5 1 2.0590 a1 5 1 12.2147 k y (k) y ˆ ( k )
Từ đồ thị hình 3.2c ta thấy giá trị ra ước lượng của mạng hầu như trùng khớp với giá trị ra mong muốn
3.2.2 Sử dụng mạng nơron mờ để nhận dạng hàm y = sinx+cosx
Mạng nơron mờ được ứng dụng để nhận dạng hàm phi tuyến tĩnh y = sinx + cosx Khi x nhận các giá trị rời rạc trong khoảng (0÷π), ta thu được tập mẫu huấn luyện với các giá trị x (k) như: {0; 0.2; 0.4; 0.6; 0.8; 1; 1.2; 1.4; 1.6; 1.8; 2; 2.2; 2.4; 2.6; 2.8; 3; 3.2; 3.4; 3.6; 3.8; 4; 4.2; 4.4; 4.6; 4.8; 5; 5.2; 5.4; 5.6; 5.8; 6; 6.2} Tương ứng, giá trị y (k) được tính toán là: {1; 1.1787; 1.3105; 1.3900; 1.4141; 1.3818; 1.2944; 1.1554; 0.9704; 0.7466; 0.4932; 0.2200; -0.0619; 0.3414; 0.6072; 0.8489; 1.0567; 1.2223; - - - - 1.3393; 1.4028; 1.4104; 1.3618; 1.2589; 1.1058; 0.9087; 0.6753; 0.4149; - - - - 0.1381; 0.1443; 0.4209; 0.6808; 0.9135}.
Vẫn áp dụng mạng nơron mờ với cấu trúc đã đề cập trong mục 3.2.1 để thực hiện nhận dạng hệ thống Thông tin chi tiết về phần mềm huấn luyện mạng có thể được tìm thấy trong phụ lục Kết quả thu được sau quá trình huấn luyện như sau:
Thông số ước lượng Giá trị khởi tạo ban đầu Giá trị thu được sau huấn luyện c1 0 0.1241 c2 1.55 1.3988 c5 3.1 2.3661 c4 4.65 4.6208 c5 6.2 5.9633 σ1 0.6582 0.8871 σ2 0.6582 0.9165 σ3 0.6582 0.9173 σ4 0.6582 1.3268 σ5 0.6582 1.2368 a0 1 0 1.0208 a1 1 1 1.0633 a0 2 1 0.7684 a1 2 1 0.4564 a0 3 1 0.5456 a1 3 1 -0.4768 a0 4 0 -0.3803 a1 4 1 -0.3264 a0 5 1 0.8320
Hình 3.3c: Đồ thị giá trị ra mong muốn và giá trị ra ước lượng
Sai lệch giữa giá trị ước lượng và giá trị mong muốn rất nhỏ, dưới 0.015, cho thấy sự tương đồng gần như hoàn hảo giữa hai đường trên đồ thị.
Sử dụng mạng nơron mờ để nhận dạng hệ phi tuyến động
Trong mục 3.2, các ứng dụng của mạng nơron mờ đã được trình bày để nhận dạng các hệ phi tuyến tĩnh Tiếp theo, luận văn sẽ áp dụng mạng nơron mờ để nhận dạng các hệ phi tuyến động Đối tượng nghiên cứu là một hệ phi tuyến động được mô tả bởi phương trình sai phân rời rạc.
( u u k k e e k y k u k k y y (3.11) trong đó u(k), y(k) tương ứng là hiệu vào và ra của hệ
Dữ liệu huấn luyện được thu thập bằng cách đưa tín hiệu vào u, lấy 1000 giá trị ngẫu nhiên rời rạc trong khoảng (0;1), và sau đó tác động vào hệ thống Quá trình thu thập dữ liệu được thực hiện thông qua một đoạn chương trình cụ thể.
>> for i=2:1000 y(i+1)= (y(i)*u(i))/(1+((abs(y(i-1)))^0.3))-(1 exp( u(i)))/(1+exp( u(i)));- - -Hình 3.3d: Đồ thị sai lệch giữa giá trị ra mong muốn và giá trị ra ước lượng end
Để đảm bảo hệ động hoạt động hiệu quả, việc xác định các giá trị đầu vào phù hợp với tín hiệu ra là rất cần thiết Quá trình này có thể được thực hiện thông qua đoạn chương trình: input = [[0; y(1:1000)]
[0; 0; 0; 0; 0; 0; u(1:995)]]; data = [input y]; data(1:6, :) = []; input_name = str2mat('y(k-1)','y(k 2)','y(k 3)','y(k 4)','u(k 1)','u(k 2)','u(k- - - - 3)','u(k 4)','u(k 5)','u(k 6)');- - - trn_data = data(1:300, :); chk_data = data(301:600, :);
Chương trình sử dụng hàm seqsrch để tìm kiếm ba đầu vào phù hợp nhất là y(k-1), u(k-1) và u(k-2) với thông số RMSE là 0.0024 Thời gian thực hiện được ghi lại là [elapsed_time].
Hệ (3.3) được mô hình hoá bởi hệ suy luận mờ sau:
Ri : Nếu u(k-2) là Ajvà u(k 1) là B- k và y(k 1) là C- s
Thì y(k) là a0 i + a1 iu(k-2) + a2 iu(k-1) + a3 iy(k 1).- với i = 1, ,27, j = 1, 3, k = 1, ,3, s = 1,…,3 các tập mờ Aj, Bk, Cs, có các hàm liên thuộc dạng hàm Gauss
Sử dụng mạng nơron mờ có cấu trúc như hình 3.1 để nhận dạng hệ, thu được kết quả như sau:
Hình 3.4: Đồ thị tín hiệu vào ra hệ phi tuyến (3.11).-
Nhận dạng chuyển động của hệ cầu trục sử dụng mạng nơron mờ
3.4.1 Phương trình động học hệ cầu trục
Cầu trục là thiết bị thiết yếu trong việc vận chuyển hàng hóa, vật liệu và thiết bị, được ứng dụng rộng rãi trong nhiều lĩnh vực như bốc xếp hàng hóa tại
Hình 3.7 minh họa mô hình động lực học của cầu trục, trong đó xe được coi là một chất điểm có khối lượng M tập trung tại tâm Cả tải trọng và móc đều được xem xét trong mô hình này.
Hình 3.6 minh họa đồ thị tín hiệu ra kiểm tra và tín hiệu ra ước lượng của một chất điểm khối lượng m, được kéo bởi động cơ truyền động một chiều với lực kéo F trên đường ray Các bánh xe giả thiết lăn không trượt với hệ số ma sát lăn k Các ngoại lực tác động lên hệ bao gồm trọng lực P lên tải trọng, trọng lực G lên xe, lực ma sát Fims, các phản lực Ni (i=1 4) trên các bánh xe, và lực kéo xe F từ động cơ Hệ tọa độ được chọn là góc lệch α của cáp treo so với phương thẳng đứng và quãng đường dịch chuyển x theo phương ngang.
Phương trình động lực học của hệ được xây dựng dựa trên phương trình lagơrăng II có dạng: d q i
Hình 3.7: Mô hình động lực học hệ cầu trục.
Trong hệ thống cơ học, T đại diện cho hàm động năng, trong khi ∏ là hàm thế năng Các tọa độ suy rộng của hệ được ký hiệu là qi (bao gồm α và x), và Qi là các lực suy rộng từ các lực hoạt động không thế.
Trước tiên ta tính động năng của hệ
Trong đó T1 là động năng của xe, T2 là động năng của tải trọng
Vì xe chuyển động tịnh tiến theo phương ngang nên:
Tải trọng chuyển động trong mặt phẳng (oxy) nên:
2 m x y mv = + (3.15) trong đó: x2= x lsinα- ; x 2 = x − l cos α α y2= lcosα; y 2 = − l sin α α l là chiều dài cáp treo.
x l l m l x l x m − + − = + − Động năng của cơ hệ sẽ là:
1 M + m x 2 + ml 2 2 − ml x (3.16) Tính các biểu thức đạo hàm của hàm động năng:
Tiếp theo ta tính thế năng của hệ Thế năng của hệ xác định duy nhất bởi trọng lực P Vậy ta có: α cos
Cuối cùng tính các lực suy rộng của các lực không thế Qx và Qα:
- Để tính Qx ta cho hệ một di chuyển khả dĩ δ x ≠ 0 và δα = 0 trong di chuyển này xe di chuyển theo phương ngang nên: δ A = ( F − F ms ) δ x do đó
F ims là lực ma sát tổng tác dụng lên xe
- Để tính Qα ta cho hệ một di chuyển khả dĩ δ x = 0và δα ≠ 0trong di chuyển này xe không di chuyển nên: δ A = ( F − F ms ) δ x= 0 do đó
Qα= = 0 δα δ A (3.21) Áp dụng phương trình lagơrăng II (3.12) và sau khi rút gọn ta thu được hệ phương trình động học của cơ hệ như sau:
( + − α α + α 2 α = − + Điện áp phần ừng động cơ và lực F có mối quan hệ sau:
Trong công thức, km đại diện cho hệ số mômen của động cơ, ki là hệ số truyền của hệ bánh răng truyền động, r là bán kính của bánh xe cầu trục, và R là điện trở của phần ứng động cơ truyền động.
Thay (3.23) vào (3.22) ta được hệ:
Phương trình động học của cầu trục được mô tả qua quan hệ giữa góc lệch α và độ dịch chuyển x là một hệ phương trình vi phân phi tuyến, khiến việc điều khiển cầu trục theo chỉ tiêu góc mong muốn trở nên phức tạp và kém hiệu quả khi sử dụng các phương pháp truyền thống Để cải thiện điều này, một trong những phương pháp hiện đại là áp dụng mạng nơron hoặc nơron mờ nhằm điều khiển hệ thống một cách trực tiếp hoặc gián tiếp Trong phương pháp điều khiển gián tiếp, nhận dạng là một bước quan trọng và cần thiết Bài viết tiếp theo sẽ trình bày ứng dụng của mạng nơron mờ trong việc nhận dạng góc lệch dựa trên các tham số chuyển động của cầu trục.
3.4.2 Nhận dạng góc lệch hệ cầu trục sử dụng mạng nơron mờ.ααααα
Trong quá trình di chuyển và nâng hạ hàng hoá của cầu trục, góc dao động α giữa tải trọng và cáp treo với phương thẳng đứng là một chỉ số quan trọng ảnh hưởng đến năng suất và độ chính xác của hệ điều khiển tự động Góc dao động quá lớn có thể dẫn đến tai nạn lao động như đứt cáp, rơi vãi hàng hoá, và ảnh hưởng đến độ chính xác khi lắp đặt thiết bị, gây nguy hiểm cho tính mạng con người nếu α vượt quá giới hạn cho phép Việc nhận diện góc dao động không chỉ hỗ trợ cho việc điều khiển hệ cầu trục mà còn phục vụ cho phân tích hệ thống Luận văn này sẽ áp dụng mạng nơron mờ để nhận dạng góc dao động, một thông số quan trọng trong việc điều khiển hệ cầu trục.
Hệ thống (3.24) được mô phỏng trong Simulink của phần mềm Matlab, như thể hiện trong sơ đồ hình 3.8 Giá trị đầu vào duy nhất của hệ là điện áp U cung cấp cho động cơ truyền động hệ cầu trục Với các thông số đã cho trong hình 3.8, giá trị đầu ra của hệ là góc dao động.
Tập giá trị vào-ra được thu thập bằng đoạn chương trình trong Matlab:
>> [t,x,u,y]=sim('MP1'); giá trị vào ra được thể hiện như hình 3.9
Hình 3.8: Sơ đồ mô phỏng hệ cầu trục (3.24)
Thực hiện lựa chọn các tín hiệu vào phù hợp cho nhận dạng hệ thống, quá trình này được thực hiện bằng đoạn chương trình sau: input = [[0; y(1:1000)]
[0; 0; 0; 0; 0; 0; u(1:995)]]; data = [input y]; data(1:6, :) = []; input_name = str2mat('y(k-1)','y(k 2)','y(k 3)','y(k 4)','u(k 1)','u(k 2)',…- - - - -
'u(k 3)','u(k 4)','u(k 5)','u(k 6)');- - - - trn_data = data(1:300, :); chk_data = data(301:600, :);
[input_index, elapsed_time]=seqsrch(3, trn_data, chk_data, input_name); fprintf('\nElapsed time = %f n', elapsed_time); \ winH1 = gcf;
Các đầu vào phù hợp nhất cho nhận dạng góc lệch α là: y(k 1), y(k 2), u(k-1) với giá trị RMSE = 0.004
Thực hiện mô hình hoá hệ bằng hệ suy luận mờ sau:
Ri : Nếu y(k-1) là Ajvà y(k 2) là B- k và u(k 1) là C- s
Hàm y(k) được biểu diễn dưới dạng a0 i + a1 iy(k-2) + a2 iy(k-1) + a3 iu(k 1), với i = 1, ,27, j = 1, 3, k = 1, ,3, s = 1,…,3, trong đó các tập mờ Aj, Bk, Cs có các hàm liên thuộc dạng hàm Gauss Để nhận dạng hệ thống, chúng tôi sử dụng mạng nơron mờ có cấu trúc như hình 3.1 Tổng số thông số cần ước lượng của mạng là 108 thông số trong 27 mệnh đề kết luận “thì” của hệ suy luận mờ Các công thức (3.3) và (3.10) được áp dụng để luyện mạng, và phần mềm huấn luyện có thể tham khảo trong phụ lục Kết quả thu được sau 100 lần học cho thấy hiệu quả của phương pháp này.
Hình 3.9: Đồ thị tín hiệu vào (điện áp U) và tín hiệu ra (góc lệch)
Kết luận, hệ cầu trục (3.24) có tính phi tuyến mạnh dẫn đến sự sai khác trong các đồ thị hình 3.10 và 3.11 Tuy nhiên, sai số này là nhỏ và có thể chấp nhận được Để giảm sai số, có thể áp dụng nhiều phương pháp như tăng số lần học cho mạng, tăng số tập mờ cho tín hiệu đầu vào, điều chỉnh hệ số học, hoặc sử dụng phương pháp huấn luyện khác Do đó, mạng nơron mờ đã thành công trong việc nhận dạng thông số góc lệch α của hệ cầu trục.
Mô hình góc dao động phi tuyến α phức tạp như hệ (3.14) có thể được nhận dạng nhanh chóng thông qua hệ nơron mờ Độ chính xác của kết quả nhận dạng có thể đạt mức tùy ý bằng cách tăng số lần học, số tập mờ và lựa chọn bước học tối ưu Trong thực tế, với một độ dao động α cho phép, có thể xác định số lần học tối thiểu để thời gian học phù hợp với thời gian điều khiển thực Những kết quả nhận dạng này có thể được áp dụng để phát triển các hệ điều khiển cầu trục hiện đại.
Một số kết luận và đề xuất hướng phát triển tiếp theo
Luận văn đã đạt được mục tiêu nghiên cứu nhận dạng hệ phi tuyến bằng mạng nơron mờ hiện đại Đã xây dựng thành công mạng nơron mờ với khả năng nhận dạng các hệ phi tuyến, bao gồm hệ tĩnh y = x² và y = sinx + cosx, cũng như hệ phi tuyến động và hệ cầu trục phức tạp Tuy nhiên, tác giả nhận thấy vẫn còn một số vấn đề cần giải quyết và hướng phát triển tiếp theo cho nghiên cứu.
- Vấn đề lựa chọn bước học η phù hợp để đạt được tốc độ học tối ưu
- Vấn đề lựa chọn cấu trúc mạng tối ưu cho một lớp rộng các hệ phi tuyến
Cần phát triển các phương pháp huấn luyện riêng biệt cho mạng nơron mờ, bên cạnh việc áp dụng các phương pháp học hiện có từ mạng nơron Việc này sẽ giúp tối ưu hóa hiệu quả và khả năng hoạt động của mạng nơron mờ trong các ứng dụng thực tiễn.
- Mạng nơron mờ còn có thể được sử dụng để điều khiển, phân tích, dự báo một đối tượng phi tuyến bất kỳ
Phụ lục 1 Mã nguồn chương trình huấn luyện mạng nơron mờ nhận dạng hàm y = x 2 function main()
%TAP DU LIEU VAO RA MAU - u=[0.5;0.6;0.7;0.8;0.9;1;2;3;4;5;6;7;8;9;10]; y=[0.25;0.36;0.49;0.64;0.81;1;4;9;16;25;36;49;64;81;100]; ul=[];
%KHOI TAO CAC THONG SO CO VAI TRO LA TRONG SO CUA
MANG c=[0.5 2.88 5.25 7.625 10]; % Cac thong so xac dinh ham thuoc x=[1.009 1.009 1.009 1.009 1.009]; a0=0; % Cac thong so xac dinh gia tri menh de "thi" a1=1; b0=1; b1=1; d0=1; d1=1; e0=0; e1=1; f0=1; f1=1;
%CAC THONG SO XAC DINH DIEU KIEN DUNG THUAT TOAN et=0.003; ett00000; maxt000; ep=0.001; bl=0; e; t=0; g=0;
% VE CAC HAM THUOC KHOI TAO BAN DAU figure(1); ve_mf(u,c,x);
%BAT DAU QUA TRINH LUYEN MANG while (blep) e=0;
Để tính giá trị ước lượng và sai số tổng bình phương, ta thực hiện vòng lặp từ i=1 đến 15, trong đó giá trị ước lượng ul(i) được tính thông qua hàm giatri_uocluong với các tham số đầu vào cụ thể Tổng sai số e được cập nhật bằng cách cộng thêm nửa bình phương của hiệu giữa giá trị thực y(i) và giá trị ước lượng ul(i) Sau khi hoàn thành vòng lặp, các biến điều chỉnh del_a0, del_a1, del_b0, del_b1, del_d0, del_d1, del_e0, del_e1, del_f0, del_f1 được khởi tạo bằng 0, và các biến del_c và del_x cũng được khởi tạo bằng mảng chứa toàn số 0.
The algorithm iteratively updates parameters for a neural network using gradient descent For each of the 15 iterations, it calculates the gradients for various coefficients (a0, a1, b0, b1, c0, c1, d0, d1, e0, e1, f0, f1) based on the input data The updates are performed using a learning rate (et) that adjusts dynamically based on the error (e) compared to a threshold (ett) If the error improves, the learning rate decreases; if it worsens, the learning rate increases The process continues until convergence, ensuring all parameters are optimized effectively.
%IN CAC GIA TRI MAU VA GIA TRI UOC LUONG fprintf('gia tri ra mau gia tri ra uoc luong\n');
%IN CAC TRONG SO DA DUOC HUAN LUYEN fprintf('cac trong so sau huan luyen\n');
%VE CAC HAM THUOC SAU KHI HUAN LUYEN hold off; figure(2); ve_mf(u,c,x); hold off;
The code provided demonstrates the process of plotting functions based on given input values It begins by defining a function for generating a plot of data points, where the variable 'u' is used alongside the parameters 'c' and 'x' The code calculates the minimum and maximum values of 'u' to create an array 'a' with increments of 0.1 It then iterates through each element in 'c', computing an exponential function for each corresponding value in 'a' and storing the results in 'y' Finally, it generates a plot of 'a' against 'y', allowing for multiple plots to be displayed simultaneously.
%title('\bfDang Ham Thuoc Ban Dau'); end
%TINH GIA TRI HAM GAUSS function [a]=gauss(u,c,x)
%XAC DINH GIA TRI MAU SO CUA BIEU THUC TINH GIA TRI RA UOC LUONG function [a]= mau_value(u,c1,x1,c2,x2,c3,x3,c4,x4,c5,x5) a= exp(-((u-c1)/x1)^2)+ exp(-((u-c2)/x2)^2)+exp(-((u-c3)/x3)^2)+exp(-((u- c4)/x4)^2)+exp( ((u c5)/x5)^2);- - end
%XAC DINH GIA TRI TU SO CUA BIEU THUC TINH GIA TRI RA UOC LUONG function [b] tu_value(u,c1,x1,a0,a1,c2,x2,b0,b1,c3,x3,d0,d1,c4,x4,e0,e1,c5,x5,f0,f1) b=exp( ((u c1)/x1)^2)*(a0+a1*u)+exp(- - -((u-c2)/x2)^2)*(b0+b1*u)+exp(-((u- c3)/x3)^2)*(d0+d1*u)+ exp(-((u c4)/x4)^2)*(e0+e1*u)+exp( ((u c5)/x5)^2)*(f0+f1*u);- - - end
The article discusses the implementation of functions for gradient calculations in a mathematical model The `grad_a0` function computes the gradient based on the difference between two values, `y` and `y1`, utilizing an exponential decay function influenced by parameters `u`, `c1`, and `x1` The `grad_a1` function further refines this gradient by multiplying the result of `grad_a0` by the variable `u` Additionally, the `grad_c` function incorporates multiple parameters to derive a complex gradient, factoring in the influence of `et`, `y`, and other constants This approach ensures precise updates to the model's parameters, enhancing the overall accuracy of the calculations.
[a]=grad_x(et,u,c1,x1,y,y1,a0,a1,c2,x2,b0,b1,c3,x3,d0,d1,c4,x4,e0,e1,c5,x5,f0,f1 ) b=(2*(u c1)^2)/(x1^3);- c=exp( ((u- -c1)/x1)^2); d=(a0+a1*u)*mau_value(u,c1,x1,c2,x2,c3,x3,c4,x4,c5,x5); a=(et*(y-y1)*b*c*(d- tu_value(u,c1,x1,a0,a1,c2,x2,b0,b1,c3,x3,d0,d1,c4,x4,e0,e1,c5,x5,f0,f1)))/ (mau_value(u,c1,x1,c2,x2,c3,x3,c4,x4,c5,x5)^2); end
%TINH GIA TRI RA UOC LUONG CUA MANG function
1) a=tu_value(u,c1,x1,a0,a1,c2,x2,b0,b1,c3,x3,d0,d1,c4,x4,e0,e1,c5,x5,f0,f1)/ mau_value(u,c1,x1,c2,x2,c3,x3,c4,x4,c5,x5); end
Phụ lục 2 Mã nguồn chương trình huấn luyện mạng nơron mờ nhận dạng hàm y = sinx+cosx function main()
%THU THAP TAP DU LIEU VAO RA HE u=0:0.2:2*pi; y=sin(u)+cos(u); ul=[];
%KHOI TAO CAC TRONG SO CUA MANG c=[0 1.55 3.1 4.65 6.2]; x=[0.6582 0.6582 0.6582 0.6582 0.6582]; a0=0; a1=1; b0=1; b1=1; d0=1; d1=1; e0=0; e1=1; f0=1; f1=1;
%CAC YEU CAU DUNG THUAT TOAN et=0.003; ett00000; maxt000; ep=0.001; bl=0; e; t=0; g=0;
%VE HAM THUOC KHOI TAO BAN DAU figure(1); ve_mf(u,c,x);
%BAT DAU QUA TRINH HUAN LUYEN MANG while (blep) e=0;
%TINH CAC GIA TRI RA UOC LUONG VA SAI SO TONG BINH
PHUONG for i=1:32 ul(i)=giatri_uocluong(u(i),c(1),x(1),a0,a1,c(2),x(2),b0,b1,c(3),x(3), d0,d1,c(4),x(4),e0,e1,c(5),x(5),f0,f1); e=e+0.5*(y(i)-ul(i))^2; end bl=bl+1; del_a0=0; del_a1=0; del_b0=0; del_b1=0; del_d0=0; del_d1=0; del_e0=0; del_e1=0; del_f0=0; del_f1=0; del_c=[0 0 0 0 0]; del_x=[0 0 0 0 0];
The algorithm iteratively updates parameters a0, a1, b0, b1, d0, d1, e0, e1, f0, and f1 using gradients calculated from the inputs y(i), ul(i), and u(i) across five categories (c1 to c5) and their corresponding x values Each parameter's update is influenced by a learning rate (et) and the gradients derived from the respective functions grad_a0, grad_a1, and grad_c The process continues until a convergence criterion is met, adjusting the learning rate dynamically based on the error (e) compared to a threshold (ett) If the error decreases, the learning rate is reduced, while an increase in error prompts a potential increase in the learning rate, ensuring adaptive learning throughout the iterations.
%IN CAC KET QUA HUAN LUYEN fprintf('gia tri ra mau gia tri ra uoc luong\n');
[y',ul'] fprintf('cac trong so sau huan luyen\n');
%VE CAC HAM THUOC SAU KHI HUAN LUYEN hold off; figure(2); ve_mf(u,c,x) hold off;
%VE DO THI GIA TRI RA UOC LUONG VA GIA TRI RA MAU figure(3); plot(u,y); hold all; plot(u,ul); sl=[]; for i=1:length(u) sl(i)=y(i)-ul(i); end
%VE SAI SO GIUA GIA TRI RA UOC LUONG VA GIA TRI RA MAU hold off figure(4); plot(u,sl); end
%VE HAM THUOC function ve_mf(u,c,x) n=length(c); a=min(u):0.1:max(u); m=length(a); y=[]; for i=1:n for k=1:m y(k)=exp(-((a(k) c(i))/x(i))^2); - end plot(a,y); hold all; end end
%TINH GIA TRI HAM THUOC function [a]=gauss(u,c,x)
%TINH GIA TRI MAU SO BIEU THUC XAC DINH GIA TRI RA UOC
LUONG function [a]= mau_value(u,c1,x1,c2,x2,c3,x3,c4,x4,c5,x5) a= exp(-((u-c1)/x1)^2)+ exp(-((u-c2)/x2)^2)+exp(-((u-c3)/x3)^2)+exp(-((u- c4)/x4)^2)+exp( ((u c5)/x5)^2);- - end
%TINH GIA TRI TU SO BIEU THUC XAC DINH GIA TRI RA UOC LUONG function [b] tu_value(u,c1,x1,a0,a1,c2,x2,b0,b1,c3,x3,d0,d1,c4,x4,e0,e1,c5,x5,f0,f1) b=exp( ((u c1)/x1)^2)*(a0+a1*u)+exp(- - -((u-c2)/x2)^2)*(b0+b1*u)+exp(-((u- c3)/x3)^2)*(d0+d1*u)+ exp(-((u c4)/x4)^2)*(e0+e1*u)+exp(- -((u-c5)/x5)^2)*(f0+f1*u); end
Hàm `grad_a0` tính giá trị sai lệch trong số cần cập nhật bằng cách sử dụng công thức dựa trên sự khác biệt giữa hai giá trị `y` và `y1`, kết hợp với hàm mũ để điều chỉnh theo các tham số `u`, `c1`, `x1`, và các biến khác Hàm `grad_a1` mở rộng hàm `grad_a0` bằng cách nhân kết quả với `u`, cho phép tính toán chính xác hơn Hàm `grad_c` thực hiện tính toán phức tạp hơn, bao gồm việc tính toán các biến trung gian như `b`, `c`, và `d`, kết hợp với giá trị sai lệch và các tham số khác để tối ưu hóa kết quả Tất cả các hàm này đều đóng vai trò quan trọng trong việc cập nhật và điều chỉnh giá trị cần thiết trong các mô hình toán học.
[a]=grad_x(et,u,c1,x1,y,y1,a0,a1,c2,x2,b0,b1,c3,x3,d0,d1,c4,x4,e0,e1,c5,x5,f0,f1 ) b=(2*(u c1)^2)/(x1^3);- c=exp( ((u- -c1)/x1)^2); d=(a0+a1*u)*mau_value(u,c1,x1,c2,x2,c3,x3,c4,x4,c5,x5); a=(et*(y-y1)*b*c*(d- tu_value(u,c1,x1,a0,a1,c2,x2,b0,b1,c3,x3,d0,d1,c4,x4,e0,e1,c5,x5,f0,f1)))/ (mau_value(u,c1,x1,c2,x2,c3,x3,c4,x4,c5,x5)^2); end
%TINH GIA TRI UOC LUONG function
1) a=tu_value(u,c1,x1,a0,a1,c2,x2,b0,b1,c3,x3,d0,d1,c4,x4,e0,e1,c5,x5,f0,f1)/ mau_value(u,c1,x1,c2,x2,c3,x3,c4,x4,c5,x5); end
Phụ lục 3 Mã nguồn chương trình huấn luyện mạng nơron mờ nhận dạng hệ phi tuyến động function main()
%THU THAP TAP DU LIEU VAO/RA CUA HE u=rand(1000,1); y=[]; y(1)=0; y(2)=0; for i=2:1000 y(i+1)= (y(i)*u(i))/(1+((abs(y(i-1)))^0.3)) (1- -exp(-u(i)))/(1+exp( u(i)));- end y=y';
%LUA CHON TIN HIEU VAO PHU HOP input = [[0; y(1:1000)]
[0; 0; 0; 0; 0; 0; u(1:995)]]; data = [input y]; data(1:6, :) = []; input_name = str2mat('y(k-1)','y(k 2)'- ,'y(k 3)'- ,'y(k-4)','u(k 1)','u(k 2)', - - 'u(k 3)'- ,'u(k-4)','u(k-5)' 'u(k-6)');, trn_data = data(1:300, :); chk_data = data(301:600, :);
The code snippet demonstrates a data processing routine where the `seqsrch` function is used to obtain the elapsed time and input index from training and checking datasets It then displays the elapsed time and retrieves the current figure handle The training data is sliced to extract specific columns for the first 300 entries, while the checking data is similarly processed for the next 300 entries Variables are assigned to various columns of the training and checking datasets, setting the stage for further analysis.
%KHOI TAO CAC GIA TRI TRONG SO for i=1:27 a0(i)=0; a1(i)=0; a2(i)=0; a3(i)=0; dt_a0(i)=0; dt_a1(i)=0; dt_a2(i)=0; dt_a3(i)=0; end c1=[-0.8103 0.4071 0.003876]; - - x1=[0.1712 0.1712 0.1712]; c2=[0.004634 0.5004 0.9961]; x2=[0.2105 0.2105 0.2105]; c3=[0.004634 0.5004 0.9961]; x3=[0.2105 0.2105 0.2105];
%CAC DIEU KIEN DUNG THUAT TOAN ett00000; t=0; g=0; e0; bl=0; blmax0; ep=0.001; eta=0.055;
%THUC HIEN HUAN LUYEN MANG while (e>ep)&&(blep)&&(bl