You are on page 1of 35

TRƯỜNG ĐẠI HỌC VINH

VIỆN KỸ THUẬT VÀ CÔNG NGHỆ

TÀI LIỆU HƢỚNG DẪN THÍ NGHIỆM

HỌC PHẦN: ĐIỀU KHIỂN MỜ VÀ MẠNG NƠRON

MÃ HỌC PHẦN: AUT30017

NGHỆ AN - 2021
MỤC LỤC

Trang
NỘI QUY PHÕNG THÍ NGHIỆM ........................................................................

BÀI 1:
THIẾT KẾ HỆ ĐIỀU KHIỂN MỜ BẰNG PHẦN MỀM MATLAB. ................. 1

BÀI 2:
THIẾT LẬP VÀ MÔ PHỎNG MẠNG NƠRON TRONG MATLAB ................. 11

BÀI 3:
SỬ DỤNG GIAO DIỆN ĐỒ HỌA ĐỂ KHẢO SÁT MẠNG NƠRON ................ 16

BÀI 4:
SỬ DỤNG CÔNG CỤ ANFIS TRONG MATLAB ĐỂ THIẾT KẾ HỆ MỜ - 22
NƠRON ......................................................................................................................

BÀI 5:
ỨNG DỤNG ĐIỀU KHIỂN MỜ - NƠRON ĐIỀU CHỈNH NHIỆT ĐỘ LÕ 26
NHIỆT ........................................................................................................................
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC VINH

NỘI QUY
PHÕNG THÍ NGHIỆM, PHÕNG HỌC CÓ THIẾT BỊ ĐIỆN TỬ

Phòng thí nghiệm, Phòng học tiếng, Phòng học máy tính, Phòng Multimedia
thuộc trường Đại học Vinh là nơi học tập, nghiên cứu khoa học của cán bộ và học
sinh, sinh viên nhà trường. Khi đến làm việc, học tập tại đây, mọi người phải thực hiện
đầy đủ nội quy sau đây:
1. Mặc trang phục đúng quy định. Không mang vật dụng dễ gây cháy, nổ, ẩm
ướt, quà bánh vào phòng.
2. Nghiêm chỉnh thực hiện hướng dẫn của giáo viên phụ trách. Tuyệt đối không
được tuỳ tiện điều chỉnh máy, phương tiện thí nghiệm hoặc thao tác không theo quy
trình của bài học. Nếu thấy máy móc, thiết bị thí nghiệm có sự cố thì phải báo cáo
ngay cho cán bộ phụ trách để xử lý.
3. Giữ gìn bảo quản chu đáo, không làm hư hỏng máy móc, thiết bị. Ai làm hư
hỏng, mất mát tài sản không có lý do chính đáng thì phải bồi thường.
4. Không mang tài sản ra khỏi phòng nếu chưa được phép của Nhà trường.
5. Giữ gìn trật tự, không hút thuốc lá nơi làm việc, học tập. Không vẽ viết bậy
lên bàn họ, tường nhà…
6. Phụ tá thí nghiệm, cán bộ kỹ thuật phòng máy chuẩn bị đầy đủ vật tư thiết bị,
máy móc học tập, thí nghiệm, ghi chép nhật ký đúng quy định. Kiểm tra, thu nhận, cất
đặt thiết bị chu đáo. Vất bỏ mẫu thí nghiệm đúng nơi quy định.
7. Khi học xong, giáo viên cần nhắc nhở học sinh, sinh viên và cán bộ phụ trách
đóng máy, lau chùi, thu dọn và tắt điện đúng quy trình.
8. Sau mỗi buổi học, cán bộ phụ tá hoặc kỹ thuật viên phải kiểm tra lại toàn bộ
phòng ốc, đóng cài cửa cẩn thận trước lúc ra về.
9. Nội quy này áp dụng kể từ ngày ký, các quy định trước đây trái với nội quy
này đều bãi bỏ. Ai thực hiện tốt nội quy sẽ được khen thưởng, ai vi phạm sẽ bị xử lý
theo pháp luật hiện hành.
HIỆU TRƢỞNG
(Đã ký)
BÀI 1:
THIẾT KẾ HỆ ĐIỀU KHIỂN MỜ BẰNG PHẦN MỀM MATLAB
1.1. MỤC ĐÍCH
Xác định đặc tính của hệ thống suy luận mờ (Fuzzy Inference System: FIS), xây
dựng các đặc tính tĩnh và thiết kế hệ thống điều khiển mờ.
1.2. CƠ SỞ LÝ THUYẾT
 Định nghĩa tập mờ
Tập mờ B xác định trên tập kinh điển M là một tập mà một phần tử của nó được
biểu diễn bởi một cặp giá trị (x,µB(x)). Trong đó x ∈M và µB(x) là ánh xạ.
Ánh xạ µB(x) được gọi là hàm liên thuộc của tập mờ B. Tập kinh điển M được
gọi là cơ sở của tập mờ B.
 Hàm liên thuộc thông dụng

Hình 1.1 Hàm liên thuộc thông dụng


 Các phép toán trên tập mờ
-Phép hợp hai tập mờ
-Phép giao hai tập mờ
-Phép bù của một tập mờ
 Cấu trúc bộ điều khiển mờ
Một bộ điều khiển mờ bao gồm 3 khối cơ bản: Khối mờ hoá, thiết bị hợp thành và khối
giải mờ. Ngoài ra còn có khối giao diện vào và giao diện ra (hình 1.2).

Hình 1.2. Các khối chức năng của bộ Điều khiển mờ

1
1.3. THIẾT BỊ THỰC HÀNH THÍ NGHIỆM
- Máy tính PC có cài đặt phần mềm MATLAB
1.4. NỘI DUNG THÍ NGHIỆM
1.4.1 Hệ thống suy luận mờ (FIS)
a)Bài tập 1.
1.Tìm hiểu và vẽ các loại hàm liên thuộc (membership function: mf) của các tập
mờ đầu vào và tập mờ đầu ra của hệ thống FIS.
2.Xác định các luật hợp thành If……then……
3.Xác định phương pháp giải mờ (Phương pháp điểm trọng tâm: Centroid).
4.Thiết kế một hệ thống FIS với đặc tính vào ra y=f(x) cho trước. Lấy đặc tính
thực nghiệm và so sánh với tính toán lý thuyết.
b)Bài tập 2:
Thiết kế hệ thống mờ theo mô hình Sugeno. Chọn các tập mờ đầu ra có hàm liên
thuộc dạng Konecker (vị trí hằng số const)
PHỤ LỤC:
 Các hàm liên thuộc (membership function)
trimf Hàm tam giác

trapmf Hàm hình thang

gaussmf Hàm gauss

pimf Hàm dạng pi

smf Hàm dạng chữ s

zmf Hàm dạng chữ z

sigmf Hàm sigmoid


 Các hàm xây dựng FIS

newfis Khai báo một hệ thống FIS mới

addvar Cài đặt các biến số đầu vào và đầu ra

addmf Cài đặt các hàm liên thuộc

addrule Cài đặt các luật hợp thành If…..then…..

plotmf Vẽ hàm liên thuộc

2
plotfis Vẽ hệ thống FIS

showfis In ra tham số của hệ thống FIS

showrule In ra các luật hợp thành If…..then…..

gensurf Vẽ mặt quan hệ vào/ra

 Các cửa sổ Editor của FIS:

fuzzy Editor của hệ thống FIS

mfedit Editor của các hàm liên thuộc

ruleedit Editor của các luật hợp thành


If…..then…..

ruleview Cửa sổ các luật hợp thành

surfview Cửa sổ mặt quan hệ vào ra

zmf Hàm dạng chữ z

sigmf Hàm sigmoid

BÀI MẪU
Echo
a=newfis('myfis');
a=addvar(a,'input','vao1',[0.01 9.99]);
a=addvar(a,'output','ra1',[0 100]);
a=addmf(a,'input',1,'A1','trimf',[0 3 6]);
a=addmf(a,'input',1,'A2','trimf',[3 6 10]);
a=addmf(a,'output',1,'B1','trimf',[0 30 60]);
a=addmf(a,'output',1,'B2','trimf',[30 60 100]);
rule=[1 1 1 1
2 2 1 1];
a=addrule(a,rule);
showfis(a)
pause
showrule(a)
pause
gensurf(a)
pause
plotmf(a,'input',1) ;
pause

3
plotmf(a,'output',1)
pause
plotfis(a)
c)Yêu cầu báo cáo
1.Vẽ sơ đồ của hệ thống FIS 1 vào/ 1 ra
2.Vẽ các bộ hàm liên thuộc mf của đầu vào và đầu ra
3.Viết ma trận luật hợp thành
4.Vẽ đặc tính vào/ra của hệ thống.
1.4.2. Xây dựng các đặc tính tĩnh:
a)Giới thiệu hộp công cụ lôgic mờ
Hộp công cụ Lôgic mờ (The Fuzzy Logic Toolbox) là tổ hợp các hàm được xây
dựng trên nền Matlab giúp cho việc thiết kế, mô phỏng, kiểm tra và hiệu chỉnh bộ
điều khiển mờ một cách dễ dàng. Để thiết kế bộ điều khiển mờ trong hộp công cụ
này, ta có thể thực hiện thông qua dòng lệnh hoặc thông qua giao diện đồ hoạ. Trong
khuôn khổ cuốn sách này chỉ giới thiệu những thao tác cơ bản để thiết kế bộ điều
khiển mờ thông qua giao diện đồ hoạ. Phần thiết kế thông qua dòng lệnh, ta có thể
đọc trong phần “Fuzzy Logic Toolbox” của Malab.
Để vào cửa sổ thiết kế bộ điều khiển mờ, từ cửa sổ lệnh của Matlab ta gõ lệnh:
fuzzy. Trên màn hình hiện ra cửa sổ hình 1.3.

Hình 1.3
Bộ điều khiển này chưa được đặt tên và chỉ có 1 đầu vào có tên là Input1, một đầu ra
có tên là Output1. Muốn có thêm đầu vào ta chọn Menu, và chọn Add Variable, Input
sẽ xuất hiện một đầu vào mới có tên là Input 2 (hình 1.4); Muốn gỡ bỏ biến đầu vào
ta ấn nút Remove Selected Variable hoặc tổ hợp phím Ctrl+x.
Sau khi đã có cấu trúc của bộ điều khiển mờ, ta tiến hành soạn thảo các hàm liên
4
thuộc vào, hàm liên thuộc ra, các luật điều khiển.

Hình 1.4
Kích đúp chuột vào biểu tượng Input1 (hình 1.5) Chọn Edit, và chọn Add MFs
hoặc Add Custom MF thêm hàm liên thuộc, chọn Remov Selcted MF để gỡ bỏ một
hàm liên thuộc nào đó, nếu chọn Remov All MFs sẽ gỡ bỏ tất cả các hàm liên thuộc
của biến đã chọn. Theo mặc định, số hàm liên thuộc là 3 có dạng tam giác, ta có thể
thay đổi.

Hình 1.5
Để thay đổi hình dạng một hàm liên thuộc nào đó, ta kích chuột vào hàm đó, nó sẽ
chuyển sang mầu đỏ, sau đó kích chuột vào hộp thoại như chỉ ra ở hình 1.6 để chọn
hàm liên thuộc mong muốn. Trên ô Range và Display Range ta có nhập

5
Hình 1.6
Trên ô Name /Params (hình 1.7) ta có thể đặt tên và miền xác định cho từng tập mờ.

Hình 1.7
các giá trị về miền xác định và miền hiển thị của biến ngôn ngữ, mặc định của các
miền đó là từ 0 đến 1.

Hình 1.8
Để soạn thảo luật hợp thành, ta ấn Edit, Rules trên màn hình hiện ra cửa sổ hình
6
1.9. Sau mỗi lần soạn xong một luật ta ấn Add rule để xác nhận. Để thay đổi một luật
hợp thành ta ấn Change rule. Để xoá một luật điều khiển ta ấn Delete rules. Muốn
quan sát hoạt động của các luật ta ấn View Rules. Ấn View Surface để quan sát quan
hệ vào-ra của bộ điều khiển (hình 1.9a,b).
Sau khi thiết kế xong bộ điều khiển mờ bằng cửa sổ Edit GUI, ta chuyển về cửa sổ
mô phỏng SIMULINK, mở một file mới với đuôi '.mat', xây dựng mô hình mô phỏng
cho hệ, tiến hành chạy mô phỏng và hiệu chỉnh hệ thống.

Hình 1.9 a,b


b)Nội dung
Cho các đường đặc tính sau, hãy thiết kế tập mờ đầu vào và ra theo đúng yêu cầu

7
Hình 1.10 Đường đặc tính
c)Yêu cầu báo cáo
-Chọn phạm vi đầu vào
-Chọn phạm vi đầu ra
-Xây dựng các tập mờ đầu vào
-Xây dựng các tập mờ đầu ra
-Xây dựng ma trận luật hợp thành
-Vẽ các đặc tính tĩnh y=f(x)
1.4.3. Thiết kế hệ thống điều khiển mờ:
a)Bài tập 1:
Cho các tập mờ đầu vào và đầu ra và các luật hợp thành như sau: Hãy xây dựng bộ
0.01
điều khiển mờ sau đó đưa vào điều khiển đối tượng 1 có hàm truyền W1 s
s 1000s 1

0.01
(hình 1) và đối tượng 2 có hàm truyền W2 s (hình 2). Hãy nhận xét hai
1000s 1
trường hợp.

8
Hình 1.11 Hàm liên
thuộc đầu vào

Hình 1.12 Hàm liên thuộc đầu ra


1. If (input1 is mf1) and (input2 is mf2) then (output1 is mf3) (1)
2. If (input1 is mf2) and (input2 is mf2) then (output1 is mf2) (1)
3. If (input1 is mf3) and (input2 is mf2) then (output1 is mf1) (1)
4. If (input1 is mf1) and (input2 is mf1) then (output1 is mf3) (1)
5. If (input1 is mf2) and (input2 is mf1) then (output1 is mf3) (1)
6. If (input1 is mf3) and (input2 is mf1) then (output1 is mf2) (1)
7. If (input1 is mf1) and (input2 is mf3) then (output1 is mf2) (1)
8. If (input1 is mf2) and (input2 is mf3) then (output1 is mf1) (1)
9. If (input1 is mf3) and (input2 is mf3) then (output1 is mf1) (1)

Hình 1.13 Bộ điều khiển mờ PI

9
Hình 1.14 Bộ điều khiển mờ PD
b)Bài tập 2:
Cho đường đặc tính tĩnh như hình vẽ: Hãy xây dựng tập mờ đầu vào và đầu ra
0.01
để điều khiển đối tượng W2 s ở hình 3. Tăng hệ số khuếch đại lên 4 lần và
1000s 1
sau đó dùng để điều khiển đối tượng. Hãy so sánh hai trường hợp.

Hình 1.15 Bộ điều khiển mờ tỷ lệ


c)Bài tập 3:
Thiết kế bộ điều khiển mờ để điều khiển đối tượng nhiệt độ lò điện trở có hàm
k 6,52 25 s
số truyền là: W  s   e1s  e
Ts  1 150s  1
Biết điện áp cấp cho lò có giá trị định mức là 230 V. Sơ đồ khối của hệ được
chỉ ra trên hình 4.

Hình 1.16 Sơ đồ khối hệ điều khiển nhiệt độ lò điện trở


1.5. CÂU HỎI KIỂM TRA
1. Nêu các phép toán trong logic mờ?
2. Chức năng của các khối trong cấu trúc bộ điều khiển mờ? Đưa ví dụ minh
họa?
10
1.6. TÀI LIỆU THAM KHẢO
1. Nguyễn Như Hiền, Lại Khắc Lãi. “Hệ mờ và nơron trong kỹ thuật điều
khiển”, Nhà xuất bản khoa học tự nhiên và công nghệ, Hà Nội, 2007.
2. Bùi Công Cường, Nguyễn Doãn Phước. “Hệ mờ - mạng nơron & ứng dụng”,
Nhà xuất bản khoa học kỹ thuật, 2001
3. http://www.mathworks.com/help/
BÀI 2:
THIẾT LẬP VÀ MÔ PHỎNG MẠNG NƠRON TRONG MATLAB
2.1. MỤC ĐÍCH
Đưa ra những chỉ dẫn cơ bản của những cấu trúc và luật học mạng nơron điển
hình: Mạng Perceptron, mạng tuyến tính. Đồng thời trình bày cách làm thế nào để xây
dựng mạng nơron và huấn luyện chúng thi hành các chức năng hữu ích: nhận dạng
hình ảnh, phân loại sản phẩm, xử lý giọng nói, điều khiển hệ thống…
2.2. CƠ SỞ LÝ THUYẾT
 Mô hình nơron
a/ Nơron đơn giản: một nơron với một đầu vào vô hướng và không có độ dốc được chỉ
ra trên hình 2.1a,b.

Hình 2.1a,b. Mô hình nơron đơn giản


b/ Nơron với nhiều đầu vào (véc tơ vào)
Nơron với véctơ vào gồm R phần tử được chi ra trên hình 2.2.

Hình 2.2 Ký hiệu nơron với R đầu vào


11
2.3. THIẾT BỊ THỰC HÀNH THÍ NGHIỆM
- Máy tính PC có cài đặt phần mềm MATLAB
2.4. NỘI DUNG THÍ NGHIỆM
Công cụ NNtool MatLab còn cung cấp các hàm để tạo mạng, huấn luyện mạng,
sử dụng cũng như thay đổi đặc tính của mạng nơ-ron.
Để tạo ra mạng nơ-ron và huấn luyện mạng chúng ta cần tạo ra vectơ đầu vào
cũng như vectơ kết quả của mẫu:
 p = [1 3 2;2 4 1];
 t=[2 3 5];
Mạng nơ-ron với giải thuật back-propagation thường được sử dụng. MatLab
cung cấp cho chúng ta hàm newff() để tạo ra mạng:
 net = newff(p, t, 20);
Chúng ta tạo ra mạng nơ-ron net với đầu vào là p, kết quả của mẫu là t. Mạng nơ-
ron có 20 nơ-ron trong lớp ẩn.
Bước tiếp theo chúng ta có thể huấn luyện cho mạng bằng cách sử dụng hàm
train()
 net = train(net,p,t);
Sau khi huấn luyện mạng ta có thể sử dụng chúng bằng cách gọi hàm sim().Ví dụ
sử dụng hàm sim() với vectơ đầu vào p ta sẽ thu được kết quả y là mô phỏng của t.
 y = sim(net, p);
Nếu mạng nơ-ron không cho kết quả chính xác như mong đợi chúng ta có thể
thay đổi các giá trị khởi tạo của mạng và huấn luyện lại mạng. Ngoài ra chúng ta có
thể tăng số nơ-ron trong lớp ẩn lên nhằm tăng độ linh hoạt của mạng.
Ví dụ: sử dụng mạng nơ-ron mô phỏng hàm bậc hai y= b.x2 + ax
Chương trình tạo ra mạng nơ-ron có 10 nơ-ron trong lớp ẩn và sử dụng giải thuật
“TRAINCGF”.
a=1;
b=-23;
x = [0:0.1:1];
y = a*x + b*x.*x;
net = newff(x,y,10,{},'traincgf');
net.divideFcn = '';
net.performFcn;
net.trainParam.show = 10;

12
net.trainParam.lr = 0.05;
net.trainParam.epochs = 6;
net.trainParam.goal = 1e-5;
net=train(net,x,y);
output = sim(net,x);
plot(x,y,'r','LineWidth',1.5);
grid on;
hold on;
plot(x,output,'b','LineWidth',1);
legend('target','simu');

Hình 2.3 Kết quả mô phỏng mạng nơron


Đường màu đỏ là đồ thị của hàm y, đường màu xanh là kết quả sau khi mô phỏng của
mạng nơ-ron.
2.4.1 Mạng Perceptron
Dùng mô hình Perceptron để tạo đường ranh giới để phân loại các điềm sau, vẽ
đường ranh giới đó.
Nhóm 1:
-Các điểm có giá trị 1: (-5,5), ( -3,4), (1,6), (3,8), (0,3)
-Các điểm có giá trị 0: (-5,-3), (-2,-1), (1,-7), (2,1), (6,2)
Nhóm 2:
-Các điểm có giá trị 1: (-6,5), ( -2,1), (1,6), (0,8), (0,-1)
-Các điểm có giá trị 0: (-5,0), (-2,-3), (3,-8), (2,1), (3,2)
Nhóm 3:
-Các điểm có giá trị 1: (-1,5), ( -3,2), (0,6), (3,3), (-1,3)
-Các điểm có giá trị 0: (-5,-3), (-2,-1), (-1,-2), (2,-1), (6,-2)
Nhóm 4:
13
-Các điểm có giá trị 1: (-5,-5), ( -3,-4), (1,6), (3,8), (0,3)
-Các điểm có giá trị 0: (5,-3), (2,-1), (1,-7), (2,1), (6,2)
Nhóm 5:
-Các điểm có giá trị 1: (-5,5), ( -3,4), (1,6), (3,8), (0,3)
-Các điểm có giá trị 0: (-5,-3), (-2,1), (1,-5), (2,3), (6,-1)
2.4.2 Mạng Adaline (Bộ lọc tiên đoán)
Cho hàm target là những hàm sau:
1: T=exp(-0.3*t).*cos(4*pi*t);
2. T=sin(5*pi*t);
3. T=0.5*sin(4*pi*t)./exp(-0.2*t);
4. T=exp(-0.5*t).*sin(5*pi*t)
5. T=2*cos(2*pi*t)./exp(t/5)
Hãy viết chương trình huấn luyện mạng để được giá trị mong muốn với đầu vào
là các hàm cùng tính chất nhưng bị chậm pha hơn so với Target một bước tính
2.4.3 Mạng Backpropagation
1. Cho p=[0 1 2 3 4 5 6 7 8 9]
t=[0 .84 .91 .14 -.77 -.96 -.28 .66 .99 1]
2. Cho p=[0 1 2 3 4 5 6 7 8 9]
t=[0 1 -2 -3 4 2 7 1 -8 6]
3. Cho p=[0 1 2 3 4 5 6 7 8 9]
t=[0 -.84 -.91 .14 -.77 .96 .28 -.66 -.99 1]
4. Cho p=[0 1 2 3 4 5 6 7 8 9]
t=[0 1 -2 3 2 2 -7 -1 8 -6]
5. Cho p=[0 1 2 3 4 5 6 7 8 9]
t=[0 4 -1 -4 -7 6 8 -6 9 1]
Viết chương trình huấn luyện mạng và in ra các giá trị W, b.
2.4.4 Mạng Hopfield (Nhận dạng hình ảnh)

Cho 5
mẫu
như
hình vẽ (Với các giá trị 1 ở ô tô đen và giá trị 0 ở ô trắng)

Hãy viết chương trình huấn luyện mạng hopfield và ghi lại số lần học cho các
trường hợp bị nhiễu tương ứng sau:

14
I. Phụ lục
network/sim Mô phỏng 1 mạng
[y,pf,af]=sim(net,p,pi,ai)
[y,pf,af]=sim(net,{q ts},pi,ai)
y,pf,af]=sim(net,q,pi,ai)
net network
p inputs(cell array or matrix)
pi initial input delay conditions(default=0)
ai initial layer delay conditions(default=0)
y output
pf final input delay conditions
af final layer delay conditions
Q batch size Khi dùng ma trận
TS time steps {Q TS} Khi dùng cell array
Trường hợp dùng cell array thì pi, ai cũng phải là
cell array, TS là số lặp
hardlim Hàm chuyển đổi Hard limit
hardlims Hàm chuyển đổi Symmetric hard limit
purelin Hàm chuyển đổi tuyến tính
logsig Hàm chuyển đổi log sigmoid
tansig Hàm chuyển đổi Hyperbolic tangent sigmoid
satlin Hàm chuyển đổi Saturating linear
satlins Hàm chuyển đổi Symmetric saturating linear
newp Tạo một mạng perceptron mới
sim Mô phỏng mạng nơron
init Khởi tạo mạng nơron
learnp Hàm học perceptron
adapt Huấn luyện mạng sử dụng các đầu vào liên tiếp
newlin Tạo một lớp tuyến tính
newlind Thiết kế một lớp tuyến tính
train Huấn luyện mạng nơron
trainlm Thuật toán Levenberg-Marquardt. Thuật toán huấn
luyện nhanh hơn cho mạng kích cỡ không quá lớn.
Giảm bộ nhớ sử dụng khi tập huấn luyện lớn.
newhop Tạo mạng Hopfield

15
2.5. CÂU HỎI KIỂM TRA
1. Nêu một số thuật toán huấn luyện mạng, câu lệnh sử dụng trong Matlab như
thế nào?
2. Hãy thiết kế mạng perceptron 3 lớp ứng dụng cho trường hợp cụ thể?
2.6. TÀI LIỆU THAM KHẢO
1. Nguyễn Như Hiền, Lại Khắc Lãi. “Hệ mờ và nơron trong kỹ thuật điều
khiển”, Nhà xuất bản khoa học tự nhiên và công nghệ, Hà Nội, 2007.
2. Bùi Công Cường, Nguyễn Doãn Phước. “Hệ mờ - mạng nơron & ứng dụng”,
Nhà xuất bản khoa học kỹ thuật, 2001
3. http://www.mathworks.com/help/
BÀI 3:
SỬ DỤNG GIAO DIỆN ĐỒ HỌA ĐỂ KHẢO SÁT MẠNG NƠRON
3.1. MỤC ĐÍCH
Đưa ra những chỉ dẫn cơ bản của những cấu trúc và luật học mạng nơron điển
hình: Mạng Perceptron, mạng tuyến tính. Đồng thời trình bày cách làm thế nào để xây
dựng mạng nơron và huấn luyện chúng thi hành các chức năng hữu ích: nhận dạng
hình ảnh, phân loại sản phẩm, xử lý giọng nói, điều khiển hệ thống…
3.2. CƠ SỞ LÝ THUYẾT
Giao diện đồ hoạ (Graphical User Interface - GUI) được thiết kế để đơn giản và
thuận tiện cho mgười sử dụng. Cửa sổ giao diện đồ họa có một vùng làm việc của nó
tách rời khỏi các dòng lệnh của vùng làm việc. Vì vậy khi sử dụng GUI ta cần phải
xuất kết quả GUI sang (dòng lệnh) vùng làm việc. Tương tự ta có thể nhận kết quả từ
dòng lệnh làm việc đến GUI.
Mỗi lần Network/Data Manager được đưa ra và chạy, ta có thể thiết lập mạng,
quan sát, huấn luyện. mô phỏng nó và cất kết quả cuối cùng vào vùng làm việc. Tương
tự, ta có thể lấy dữ liệu từ vùng làm việc để sử dụng trong GUI.
3.3. THIẾT BỊ THỰC HÀNH THÍ NGHIỆM
- Máy tính PC có cài đặt phần mềm MATLAB
3.4. NỘI DUNG THÍ NGHIỆM
3.4.1 Mạng Perceptron
Giả thiết cần thiết lập mạng perceptron thực hiện cổng logic AND. Nó có véc tơ
vào:
p = [0 0 1 1; 0 1 0 1] và véc tơ đích là:
t = [0 0 0 1]
Ta gọi mạng là ANDNet. Một lần thiết lập mạng sẽ được huấn luyện. Sau đó ta có thể
cất mạng, đầu ra của nó, v.v…bằng lệnh "exporting" trong cửa sổ dòng lệnh.
16
a/ Thiết lập các giá trị vào - ra
Để bắt đầu ta gõ nntool, xuất hiện cửa sổ hình 3.1.Kích vào help để bắt đầu vào
bài toán mới và để thấy ý nghĩa của các nút.
Trước tiên, để định nghĩa đầu vào mạng ta gọi p, có giá trị cụ thể [0 0 1 0; 0 1 0
1].
Như vậy, mạng có 2 phần tử vào và 4 tập của 2 phần tử véc tơ đó được đưa đến
để huấn luyện. Để định nghĩa dữ liệu này, kích vào new network/data sẽ xuất hiện
cửa sổ Create Network or Data. Đặt tên cho p, giá trị là [0 0 1 1; 0 1 0 -1] và xác
định kiểu dữ liệu (data type) là tập dữ liệu vào (inputs). Cửa sổ thiết lập dữ liệu mới
như hình 3.2. Bây giờ kích Create để thiết lập file đầu vào p. Cửa sổ Network/Data
Manager hiện lên và p chỉ rõ là đầu vào. Tiếp theo ta thiết lập đích của mạng. Kích
new data một lần nữa rồi đưa vào biến t với giá trị [0 0 0 1], sau đó kích target để ấn
định kiểu dữ liệu. Sau đó lại kích Create ta sẽ thấy cửa sổ Network/Data Manager
xuất hiện với t là đích và p là các đầu vào

Hình 3.1

17
Hình 3.2
b/ Thiết lập mạng
Giả thiết ta muốn thiết lập mạng mới có tên là ANDNet. Để làm điều đó ta kích
New Network, cửa sổ Create Network or Data xuất hiện với tên ANDNet trong
khung Network Name (hình 3.2), thiết lập kiểu mạng Network Type là Perceptron, khi
đó kiểu mạng ta mong muốn được thiết lập. Phạm vi đầu vào có thể được cài đặt bằng
con số trong vùng đó, song ta cũng rất dễ dàng nhận được chúng từ 1 đầu dữ liệu riêng
biệt ta cần sử dụng. Để làm điều này ta kích vào mũi tên di xuống ở phần bên phải của
phạm vi đầu vào (Input Range) menu này trải xuống chỉ ra rằng ta có thể có được
phạm vi đầu vào từ file p nếu ta muốn. Nếu kích vào p phạm vi đầu vào sẽ là [0 1; 0
1]. Ta chọn hardlim trong menu hàm chuyển transfer function và learnp trong menu
hàm học learning function Đến đây ta có cửa sổ Create New Network như hình 3.3.Ta
có thể quan sát cấu trúc mạng bằng cách kích vào View (hình 3.2).
Như vậy ta đã thiết lập được một mạng nơron đầu vào đơn (bao gồm 2 phần tử),
hàm chuyển hardlim và 1 đầu ra. Đó là mạng perceptron ta mong muốn.
Bây giờ kích vào Create để gọi ra mạng vừa thiết lập, ta sẽ nhận được cửa sổ
Network/Data Manager. Chú ý rằng ANDNet bây giờ được liệt kê như một mạng
(hình 3.4).

18
Hình 3.3
c/ Huấn luyện mạng
Để huấn luyện mạng ta kích vào ANDNet để mở chúng, sau đó kích vào Train,
xuất hiện cửa sổ mới với nhãn: Network:ANDNet. Ở đây ta có thể nhìn lại mạng bằng
cách kích vào Train. Để kiểm tra điều kiện đầu ta kích vào nhãn Initialize. Bây giờ ấn
vào nhãn Train, định rõ đầu vào, đầu ra bằng cách kích vào nhãn Training Info, chọn P
trong hộp thoại inputs và t trong hộp thoại targets. Khi đó cửa sổ Network:ANDNet
như hình 3.4.

19
Hình 3.4
Chú ý rằng kết quả huấn luyện của các đầu ra và sai số có ở ANDNet gắn vào
chúng. Việc làm này của chúng dễ dàng nhận ra sau khi chúng được đưa ra từ dòng
lệnh.
Sau khi kích vào nhãn Training Parameter, nó cho ta biết các thông số như sô
lần huấn luyện, sai số đích. Ta có thể thay đổi các thông số này nếu ta muốn.
Kích chuột vào Train Network để huấn luyện mạng perceptron, ta được kết quả.
Vậy, mạng đã được huấn luyện để sai lệch bằng 0 ở chu kỳ thứ 4 (chú ý rằng
các dạng mạng khác thường không thể huấn luyện để được sai lệch bằng 0 mà sai lệch
của chúng thường bao hàm trong một phạm vi rộng. Theo bản miêu tả đó chúng ta vẽ
đồ thị sai lệch của chúng trên tọa độ loga đúng hơn trên toạ độ tuyến tính ví dụ nó đã
dùng ở trên cho mạng perceptron).
Ta có thể kiểm tra rằng mạng được huấn luyện cho sai lệch bằng 0 bằng việc sử
dụng đầu vào p và mô phỏng mạng. Để làm điều này, ta vào cửa sổ Network/Data
Manager và kích vào Network Only: Simulate, khi đó xuất hiện cửa sổ
Network:ANDNet kích vào Simulate. Lúc này menu Input pull-down trải xuống chỉ
rõ p là đầu vào và nhãn ra là ANDNet_outputsSim để phân biệt nó từ đầu ra huấn
luyện. Kích vào Simulate Network ở góc dưới bên phải, quan sát Network/Data
Manager ta sẽ thấy giá trị mới của đầu ra: ANDNet_outputsSim. Kích đúp vào nó, một
cửa sổ dữ liệu nhỏ: ANDNet_outputsSim mở ra với trị số [0 0 0 1].
Vậy, mạng thực hiện cổng logic AND các đầu vào, nó cho ra giá trị 1 ở đầu ra
chỉ trong trường hợp cuối cùng, khi cả 2 đầu vào là 1.
d/ Xuất kết quả Perceptron ra vùng làm việc
Để xuất các đầu ra và sai số của mạng ra cửa sổ vùng làm việc của MATLAB,
ta kích vào nút thấp hơn bên trái của cửa sổ Network:ANDNet để đi đến phần sau
Network/Data Manager. Chú ý đầu ra và sai số của ANDNet được liệt kê trong bản liệt
kê các đầu ra và sai số (Outputs and Error) ở phần bên phải. Kích tiếp Export ta được

20
cửa sổ Export hoặc Save from Network/Data Manager. Kích vào ANDNet_outputs và
ANDNet_errors để làm nổi rõ chúng, sau đó kích vào nút Export. Bây giờ 2 biến đó có
thể có ở vùng làm việc dòng lệnh. Để kiểm tra điều này, từ cửa sổ lệnh ta gõ who để
thấy tất cả các biến đã định nghĩa. Kết quả như sau:
who
Các biến là:
ANDNet_errors ANDNet_outputs
Ta có thể gõ ANDNet_outputs và ANDNet_errors để nhận được kết quả sau:
ANDNet_outputs =
0001
and ANDNet_errors =
0 0 0 0.
Ta có thể xuất p, t và ANDNet ra đường mô phỏng. Ta có thể làm điều này và
kiểm tra lại với lệnh who để chắc chắn rằng chúng có ở cửa sổ lệnh. Bây giờ ANDNet
đó được xuất ra ta có thể nhìn được mô tả mạng và khảo sát ma trận trọng của mạng.
Ví dụ:
ANDNet.iw{1,1}
gives ans =
21
Similarly, ANDNet.b{1} yields ans =
-3.
3.4.2 Bài tập
Sử dụng công cụ GUI, dùng mô hình Perceptron để tạo đường ranh giới để phân
loại các điềm sau, vẽ đường ranh giới đó.
Nhóm 1:
-Các điểm có giá trị 1: (-5,5), ( -3,4), (1,6), (3,8), (0,3)
-Các điểm có giá trị 0: (-5,-3), (-2,-1), (1,-7), (2,1), (6,2)
Nhóm 2:
-Các điểm có giá trị 1: (-6,5), ( -2,1), (1,6), (0,8), (0,-1)
-Các điểm có giá trị 0: (-5,0), (-2,-3), (3,-8), (2,1), (3,2)
Nhóm 3:
-Các điểm có giá trị 1: (-1,5), ( -3,2), (0,6), (3,3), (-1,3)
-Các điểm có giá trị 0: (-5,-3), (-2,-1), (-1,-2), (2,-1), (6,-2)
Nhóm 4:
-Các điểm có giá trị 1: (-5,-5), ( -3,-4), (1,6), (3,8), (0,3)
-Các điểm có giá trị 0: (5,-3), (2,-1), (1,-7), (2,1), (6,2)
Nhóm 5:
-Các điểm có giá trị 1: (-5,5), ( -3,4), (1,6), (3,8), (0,3)
21
-Các điểm có giá trị 0: (-5,-3), (-2,1), (1,-5), (2,3), (6,-1)
3.5. CÂU HỎI KIỂM TRA
1. Hãy sử dụng công cụ NNTool để thiết kế mạch logic AND/OR?
3.6. TÀI LIỆU THAM KHẢO
1. Nguyễn Như Hiền, Lại Khắc Lãi. “Hệ mờ và nơron trong kỹ thuật điều
khiển”, Nhà xuất bản khoa học tự nhiên và công nghệ, Hà Nội, 2007.
2. Bùi Công Cường, Nguyễn Doãn Phước. “Hệ mờ - mạng nơron & ứng dụng”,
Nhà xuất bản khoa học kỹ thuật, 2001
3. http://www.mathworks.com/help/

BÀI 4:
SỬ DỤNG CÔNG CỤ ANFIS TRONG MATLAB ĐỂ THIẾT KẾ
HỆ MỜ - NƠRON
4.1. MỤC ĐÍCH
Khảo sát hệ nơron mờ, tìm hiểu cách khai thác bộ soạn thảo hệ mờ - nơron
22
thông qua giao diện đồ họa
4.2. CƠ SỞ LÝ THUYẾT
 Giới thiệu ANFIS GUI
Là công cụ mạnh giúp người dùng có thể thiết kế bộ điều khiển mờ - nơron một
cách dễ dàng, kết quả kiểm chứng thấy rõ sau khi tiến hành mô phỏng
Để khởi động bộ soạn thảo ANFIS GUI, gõ: >>anfisedit.

Hình 4.1 Màn hình soạn thảo ANFIS


4.3. THIẾT BỊ THỰC HÀNH THÍ NGHIỆM
- Máy tính PC có cài đặt phần mềm MATLAB
4.4. NỘI DUNG THÍ NGHIỆM
Bài tập 1: Dữ liệu kiểm tra giúp công nhận giá trị mẫu (Checking Data Helps Model
Validation)
Hướng dẫn:
+Bước 1: Tải tập dữ liệu huấn luyện có tên: (fuzex1trnData and fuzex2trnData) và
tập dữ liệu kiểm tra có tên: (fuzex1chkData and fuzex2chkData) vào vùng làm việc
bộ soạn thảo ANFIS GUI bằng cách gõ:
>> load fuzex1trnData.dat
>> load fuzex2trnData.dat
>> load fuzex1chkData.dat
>> load fuzex2chkData.dat
23
Hình 4.2 Tải tập dữ liệu huấn luyện
+Bước 2: Khởi tạo FIS ban đầu

Hình 4.3 Khởi tạo cấu trúc mạng nơron – mờ

24
+Bước 3: Huấn luyện ANFIS

Hình 4.4 Huấn luyện mạng


+Bước 4: Kiểm tra

25
Hình 4.5 Kết quả kiểm tra
Bài tập 2: Dữ liệu kiểm tra không hợp với mô hình
>> load fuzex2trnData
>> load fuzex2chkData
4.5. CÂU HỎI KIỂM TRA
1. Cách tạo tập dữ liệu huẩn luyến như thế nào, câu lệnh trong Matlab là gì?
2. Lựa chọn thuật toán huấn luyện ở đâu trên màn hình ANFIS Editor?
4.6. TÀI LIỆU THAM KHẢO
1. Nguyễn Như Hiền, Lại Khắc Lãi. “Hệ mờ và nơron trong kỹ thuật điều
khiển”, Nhà xuất bản khoa học tự nhiên và công nghệ, Hà Nội, 2007.
2. Bùi Công Cường, Nguyễn Doãn Phước. “Hệ mờ - mạng nơron & ứng dụng”,
Nhà xuất bản khoa học kỹ thuật, 2001
3. http://www.mathworks.com/help/

26
BÀI 5:
ỨNG DỤNG ĐIỀU KHIỂN MỜ VÀ MẠNG NƠ RON ĐIỀU CHỈNH NHIỆT ĐỘ
LÕ NHIỆT
5.1. MỤC ĐÍCH
Khảo sát hệ nơron mờ, tìm hiểu cách khai thác bộ soạn thảo hệ mờ - nơron
thông qua giao diện đồ họa, công cụ ANFIS và ứng dụng vào đối tượng cụ thể lò nhiệt.
5.2. CƠ SỞ LÝ THUYẾT
Nếu kết hợp logic mờ và mạng nơron, ta sẽ có một hệ lai với ưu điểm của cả
hai: logic mờ cho phép thiết kế hệ dễ dàng, tường minh trong khi mạng nơron cho
phép học những gì mà ta yêu cầu về bộ điều khiển. Nó sửa đổi các hàm phụ thuộc về
hình dạng, vị trí và sự kết hợp,... hoàn toàn tự động. Điều này làm giảm bớt thời gian
cũng như giảm bớt chi phí khi phát triển hệ (hình 5.1).

Hình 5.1. Mô hình hệ mờ - nơron


5.3. THIẾT BỊ THỰC HÀNH THÍ NGHIỆM
- Máy tính PC có cài đặt phần mềm MATLAB
5.4. NỘI DUNG THÍ NGHIỆM
Bài tập: Thiết kế bộ điều khiển mờ - nơron để điều khiển đối tượng nhiệt độ lò điện
k 6,52 25 s
trở có hàm số truyền là: W  s   e1s  e . Biết điện áp cấp cho lò có
Ts  1 150s  1
giá trị định mức là 230 V. Sơ đồ khối của hệ được chỉ ra trên hình 5.2

Hình 5.2 Sơ đồ khối hệ điều khiển nhiệt độ lò điện trở


27
Hướng dẫn:

Hình 5.3 Sơ đồ mô phỏng trên SIMULINK


Bước 1: Thiết kế bộ điều khiển kinh điển PID cho đối tượng lò điện trở
Bước 2: Xây dựng tập dữ liệu huẩn luyện, lưu vào file excel pi.xlsx  lưu dữ liệu vào
workspace (Sử dụng lệnh: a=xlsread('Bookpi.xlsx'))
Bước 3: Mở công cụ ANFIS >>anfisedit
Bước 4: Tải dữ liệu lên (Load data)

Hình 5.4 Tải tập dữ liệu huẩn luyện


Bước 5: Tạo cấu trúc mang (Generate FIS)

28
Hình 5.5 Cấu trúc mạng
Bước 6: Huấn luyện mạng (Train FIS)

Hình 5.6 Huấn luyện mạng


Bước 7: Kiểm tra (Test FIS)
5.5. CÂU HỎI KIỂM TRA
1. Cách tạo tập dữ liệu từ sơ đồ thiết kế bộ điều khiển PID như thế nào?
2. So sánh kết quả đạt được của hai bộ điều khiển PID và mờ nơron?
5.6. TÀI LIỆU THAM KHẢO
1. Nguyễn Như Hiền, Lại Khắc Lãi. “Hệ mờ và nơron trong kỹ thuật điều
khiển”, Nhà xuất bản khoa học tự nhiên và công nghệ, Hà Nội, 2007.
2. Bùi Công Cường, Nguyễn Doãn Phước. “Hệ mờ - mạng nơron & ứng dụng”,
Nhà xuất bản khoa học kỹ thuật, 2001
3. http://www.mathworks.com/help/

29

You might also like