Tải bản đầy đủ (.docx) (33 trang)

bài tập thực hành môn điều khiển mờ-nơron

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


BÀI TẬP THỰC HÀNH MÔN ĐIỀU KHIỂN MỜ-NƠRON
PHẦN FUZZY
BÀI 1
HỆ THỐNG SUY LUẬN MỜ (FIS)
1. Liệt kê và vẽ các hàm MF
Hàm trimf
-5 -4 -3 -2 -1 0 1 2 3 4 5
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
trimf P=[-3 0 2]
Hàm Gaussmf
0 1 2 3 4 5 6 7 8 9 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8


0.9
1
gaussmf, P=[2 5]
Hàm Gauss2mf
0 1 2 3 4 5 6 7 8 9 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Hàm trapmf
0 1 2 3 4 5 6 7 8 9 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
trapmf, P=[1 5 7 8]
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 1


Hàm Zmf
0 1 2 3 4 5 6 7 8 9 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
zmf, P=[3 7]
Hàm smf
0 1 2 3 4 5 6 7 8 9 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
smf, P=[1 8]
Hàm Gbellmf

0 1 2 3 4 5 6 7 8 9 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
gbellmf, P=[2 4 6]
Hàm sigmf
0 1 2 3 4 5 6 7 8 9 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
sigmf, P=[2 4]
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 2

Hàm dsigmf

0 1 2 3 4 5 6 7 8 9 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
dsigmf, P=[5 2 5 7]
Hàm psigmf
0 1 2 3 4 5 6 7 8 9 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
psigmf, P=[2 3 -5 8]
Hàm pimf
0 1 2 3 4 5 6 7 8 9 10
0

0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
pimf, P=[1 4 5 10]
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 3

2. Trình bày chi tiết các bước thực hiện bài toán 2 trên Matlab
a. Xác định kiểu và tham số của các hàm MF đầu vào
Vào cửa sổ lệnh Matlab gõ lệnh: >>fuzzy
Kiểu của hàm Membership Function đầu vào là kiểu trimf.
Cụ thể giá trị như sau:
mf1: [-0.25 0 0.25] mf2: [0 0.25 0.5];
mf3: [0.25 0.5 0.75]; mf4: [0.5 0.75 1];
mf5: [0.75 1 1.25];
b. Xác định kiểu và tham số của các hàm MF đầu ra
Kiểu của hàm Membership Function đầu ra là kiểu trimf. Cụ thể giá trị như sau:
mf1:[-0.25 0 0.25]; mf2: [0 0.25 0.5]; mf3: [0.25 0.5 0.75];
mf4:[0.5 0.75 1]; mf5: [0.75 1 1.25];
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 4

c. Xác định luật IF-THEN
Vào Edit


Rules (Ctrl +3)
Chọn lần lượt từng cặp IF-THEN ở đầu vào và đầu ra tương ứng, sau đó nhấn Add
rule
Muốn xóa thì nhấn Delete Rule hoặc thay đổi luật thì dùng Change Rule
Luật IF-THEN có dạng như sau:
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 5

IF Input THEN Output
1 3
2 4
3 5
4 1
5 2
d. Xác định các phép tính Implication, Aggregation
Tại cửa sổ chính của fuzzy:
 Phép tính Implication: min
 Phép tính Aggregation: max
e. Xác định các phép tính giải mờ (Defuzzify)
Tại cửa sổ chính của fuzzy:
 Phép tính giải mờ là: Centroid (Lấy trọng tâm)
f.Vẽ đặc tính vào-ra
Chọn View

Surface (Ctrl +6)
Đặc tính vào ra của hệ mở
3. Trình bày chi tiết các bước thực hiện bài toán 3 trên Matlab
a. Xác định kiểu và tham số của các hàm MF đầu vào
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 6

Kiểu của hàm Membership Function của 2 đầu vào là kiểu trimf.

Cụ thể giá trị như sau:
mf1: [-0.25 0 0.25] mf2: [0 0.25 0.5];
mf3: [0.25 0.5 0.75]; mf4: [0.5 0.75 1];
mf5: [0.75 1 1.25];
b. Xác định kiểu và tham số của các hàm MF đầu ra
Kiểu của hàm Membership Function đầu ra là kiểu gaussmf.
Cụ thể giá trị như sau:
mf1:[-0.25 0 0.25]; mf2: [0 0.25 0.5]; mf3: [0.25 0.5 0.75];
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 7

mf4:[0.5 0.75 1]; mf5: [0.75 1 1.25];
c. Xác định các phép tính logic mờ AND, OR, NOT
Tại cửa sổ chính fuzzy: And method chọn Min
d. Xác định luật IF – THEN
Vào Edit

Rules (Ctrl +3)
Chọn lần lượt từng cặp IF-THEN ờ đầu vào và đầu ra tương ứng, sau đó nhân Add Rule
Muốn xóa thì nhấn Delete Rule hoặc thay đổi luật thì dùng Change Rule
Luật IF-THEN có dạng như sau:
Input 1
1 2 3 4 5
Input 2
1 3 3 3 1 1
2 3 1 1 4 4
3 3 1 4 2 2
4 4 4 2 5 5
5 2 2 5 5 5
e. Xác định các phép tính Implication, Aggregation
Tại cửa sổ chính của fuzzy:

 Phép tính Implication: min
 Phép tính Aggregation: max
f. Xác định các phép tính giải mờ (Defuzzify)
Tại cửa sổ chính của fuzzy:
 Phép tính giải mờ là: Centroid (Lấy trọng tâm)
g. Vẽ đặc tính vào – ra
Chọn View

Surface (Ctrl +6)
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 8

Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 9

BÀI 2
BỘ ĐIỀU KHIỂN MỜ (FUZZY CONTROL)
1. Mô hình lò nhiệt là khâu quán tính bậc 2
a) Mô hình đối tượng:
Do lò nhiệt có đầu ra là nhiệt độ so với đáp ứng đầu vào (ví dụ như: tín hiệu cho không khí
vào; thêm nhiên liệu; …) là chậm, tức lò nhiệt có quán tính cao; nên có thể xem mô hình lò
nhiệt như khâu quán tính bậc 2 với
1 2
0.01; 20; 80K T T= = =
thì:
1 2
0.01
( )
( 1)( 1) (20 1)(80 1)
k
G s
T s T s s s

= =
+ + + +
Sử dụng Simulink để mô tả:
Đáp ứng step (10) của mô hình đối tượng:
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 10

Nhận xét: Đáp ứng bước nhảy của lò nhiệt xác lập trong 300s và chưa đạt giá trị đặt
b) Xác định bộ điều khiển mờ với quan hệ vào ra thể hiện thông qua mô tả (hình 2) và
bảng ma trận luật (hình 3)
Thực hiện xây dựng bộ điều khiển mờ theo các bước sau:
Bước 1: Mờ hóa đầu vào:
INPUT 1 (
e
)
INPUT 2 (
e
&
)
Mf Kiểu Tham số Mf Kiểu Tham số
1 Trimf [-40 40 0] 1 Trimf [-1.2-1.2 0]
2 Trimf [40 0 40] 2 Trimf [-1.2 0 1.2]
3 Trimf [0 40 40] 3 Trimf [0 1.2 1.2]
Bước 2: Mờ hóa đầu ra
OUTPUT
Mf Kiểu Tham số
1 Constant -400
2 Constant 0
3 Constant 400
Bước 3: Xác định các phép toán logic
- Phép AND: PROD (Sử dụng hàm PROD vì ta muốn kết hợp thông tin của cả 2 đầu vào

để xử lý. Điều này khác với phép toán MIN chỉ mang thông tin của 1 tín hiệu vào làm
đặc trưng cho cả 2, do đó, phép toán MIN chỉ dùng chủ yếu khi 2 tín hiệu vào cùng
loại)
• Vì hàm MF đầu ra có dạng xung (không overlap) nên việc chọn phép Implication và
Aggregation ở đây như thế nào thì cũng đều cho kết quả như nhau. Theo mặc định
trong FIS GUI thì chọn Implication là MIN, Aggregation là MAX
• Phép toán giải mờ (Defuzzy): wtaver
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 11

Bước 4: Xác định luật điều khiển
Đường đặc tính vào – ra:

Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 12

Cấu trúc điều khiển mờ xây dựng trên Simulink :
Kết quả mô phỏng:
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 13

2. Xác định đáp ứng của hệ thống điều khiển đối với tín hiệu vào Step (10) và xác định
các chỉ tiêu chất lượng của hệ thống
Chỉ tiêu chất lượng:Đầu ra hệ thống bám giá trị đặt, sai lệch tĩnh bằng 0, thời gian đáp ứng
95s, độ quá điều chỉnh thấp.
3. Giải thích
3.1. Lựa chọn thông số
Bộ điều khiển mờ phía trên với 2 đầu vào và 1 đầu ra đều phải có các hàm MF tương ứng:
• Đạo hàm sai lệch
e
&
: Do đối tượng là lò nhiệt, có quán tính cao và động học chậm, tức
là nhiệt độ đầu ra thay đổi chậm so với đầu vào, nên

e
cũng thay đổi chậm tương ứng.
• Sai lệch
e
: Việc lựa chọn dải giá trị cho
e
quyết định đến chất lượng điều khiển. Nếu
cho dải
e
lớn, thời gian đáp ứng sẽ cao mặc dù độ quá điều chỉnh có thể giảm và có thể
không có dao động. Nếu cho dải
e
nhỏ, thời gian đáp ứng giảm nhưng độ quá điều
chỉnh sẽ cao, thời gian xác lập cũng tăng theo, đồng thời mất nhiều năng lượng hơn cho
tín hiệu điều khiển.
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 14

• Tín hiệu điều khiển
u
&
: Nhận thấy, khi giá trị
u
&
lớn hơn so với cùng sai lệch
e
, thì bộ
điều khiển sẽ cho đáp ứng hệ thống dao động nhiều hơn; tương ứng thời gian xác lập
tăng lên.
• Giải thích việc lựa chọn luật AND
Ta phải căn cứ vào cả hai yếu tố e và tại một thời điểm để đưa ra quyết định điều khiển

chính xác. Do đó, quyết định điều khiển này nhất thiết phải tạo ra từ đóng góp của cả
hai thành phần đầu vào ,vì vậy phép AND ở đây là hoàn toàn hợp lý, và phép AND ở
đây chỉ có thể dùng PROD mà không thể dùng MIN.
3.2. Bảng ma trận luật:
e
e
&
1 2 3
1 1 1 2
2 1 2 3
3 2 3 3
Ta có:
e r y
de dr dy dy
e
dt dt dt dt
r const
= −
= = − = −
=
&
Do hệ thống là môt khâu quán tính nên:
u y
u y
↑⇒ ↑
↓⇒ ↓
Giải thích cụ thể các trường hợp:
1 2
1 1
( ) ( ) ( 1)IF e A AND e A THEN u B= = =

& &
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 15


( ) 0e r y
= − <
, tức là đầu ra y đang lớn hơn giá trị đặt r.

( ) 0e r y y
= − = − <
& & & &
tức là y đang tăng.
Lúc này ta phải điều khiển để y giảm. Vì lò nhiệt ở đây là khâu quán tính nên muốn đầu
ra y giảm thì rõ ràng đầu vào u cũng phải giảm, tức là . Do đó = B1.
Tương tự cho các trường hợp còn lại ta có bảng sau:
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 16

e
e
&
1e mf

2e mf

3e mf→
1e mf

&
0
0

1
e y r
e y
u u mf
< → >


< → ↑

⇒ ↓⇒ →
&
&
40 10
0
1
e y r
e y
u u mf
− < < → ≈


< → ↑

⇒ ↓⇒ →
&
&
0
0
0 2
e y r

e y
u u mf
< → <


< → ↑

⇒ ∆ = ⇒ →
&
&
2e mf

&
0
0.8 0.8 0
1
e y r
e y
u u mf
< → >


− < < → ∆ ≈

⇒ ↓⇒ →
&
&
40 40
0.8 0.8 0
0 2

e y r
e y
u u mf
− < < → ≈


− < < → ∆ ≈

⇒ ∆ = ⇒ →
&
&
0
0.8 0.8 0
3
e y r
e y
u u mf
< → <


− < < → ∆ ≈

⇒ ↑⇒ →
&
&
3e mf→
&
0
0
0 2

e y r
e y
u u mf
< → >


< → ↓

⇒ ∆ = ⇒ →
&
&
40 40
0
3
e y r
e y
u u mf
− < < → ≈


< → ↓

⇒ ↑⇒ →
&
&
0
0
3
e y r
e y

u u mf
< → <


< → ↓

⇒ ↑⇒ →
&
&
4. Thay đổi tham số mô hình và chọn lại bộ điều khiển
Khi chọn
0.01; 1 30; 2 30K T T= = =
thì ta chọn giữ nguyên input 1 và output, chọn lại input 2
có ranger [-1.4 1.4] ta được đáp ứng:
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 17

Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 18

PHẦN MẠNG NƠRON
BÀI 1
MẠNG PERCEPTRON
1.1. Viết chương trình tạo mạng và huấn luyện mạng
%MANG PERCEPTRON
%Tao du lieu huan luyen mang, ve hinh
P=[-1 7 -2 7 13 -3 2 6 7 3
7 9 6 13 8 -1 -5 -2 -3 -8];
T=[1 1 1 1 1 0 0 0 0 0];
plotpv(P,T);grid
pause
%Tao mang perceptron, cau hinh mang

net=perceptron;
net=configure(net,P,T);
%Huan luyen mang
net=train(net,P,T);
%Ve duong phan loai, hien thi iw{1,1}, b{1}
plotpc(net.iw{1,1},net.b{1})
display(net.iw{1,1})
display(net.b{1})
Kết quả W và b:
[ ]
1,1
1
1 6
2
IW
b
=
= −
Sau khi chuyển điểm [7,13] thành [7,-13] thì không thể xác định được đường ranh giới
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 19

1.2. Giải thích kết quả thu được
• Trường hợp ban đầu:
Dữ kiện ban đầu
Kết quả huấn luyện
Net.iw{1,1}=[1 6] Net.b{1}=-2
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 20

• Trường hợp thứ hai (đổi điểm [7;13] thành [7;-13]:
Kết quả ban đầu

Kết quả huấn luyện
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 21

Ta thấy rằng kết quả huấn luyện không cho được khả năng phân loại các loại tín hiệu
trên, tức là không tồn tại một đường thẳng Wp+b=0 để chia hai loại tín hiệu thành hai
nửa riêng biệt.
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 22

BÀI 2
MẠNG LINEAR NETWORK
2.1. Viết chương trình thực hiện các nhiệm vụ yêu cầu
Chương trình:
% Tao 1 he thong ngau nhien
% Ham truyen: H(z) = b0 + b1*z^-1 + + b20*z^-20
% He so bi co gia tri ngau nhien
A = [1 zeros(1,20)];
B = 10*rand(1,21);
H = tf(B,A,-1);
set(H,'variable','z^-1');
display(H)
% Xac dinh dap ung xung cua he thong
[y,t] = impulse(H);
plot(t,y)
pause
% Tao 1 mang neuron de mo phong he thong tren
net = linearlayer(0:20);
net.biases{1}.learnParam.lr = 0;
% Huan luyen mang theo dap ung xung cua he thong
P = zeros(size(t'));
P(1) = 4;

P = con2seq(P);
T = con2seq(y');
net = train(net,P,T);
% Hien thi tham so cua mang
display(net.iw{1,1})
display(net.b{1})
% Kiem tra dap ung xung cua mang va so sanh voi dap ung xung cua he
thong
Y = net(P);
plotresponse(T,Y)
2.2. Trình bày kết quả thu được và giải thích
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 23

Hình 1: Đáp ứng xung của hàm truyền H(z).
Hình 2: Đáp ứng xung của mạng và so sánh với đáp ứng xung của hệ thống.
Tham số hàm:
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 24

1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
16 17 18 19
( ) 8.147 9.058 1,27 9,134 6,324 0.9754 2.785 5.469
9,575 9.649 1.576 9.706 9.572 4.854 8.003 1.419
4.218 9.157 7.922 9.595 6.557
H z z z z z z z z
z z z z z z z z
z z z z z
− − − − − − −
− − − − − − − −
− − − −

= + + + + + + + +
+ + + + + + + + +
+ + + + +
20−
Tham số mạng:
1,1
IW =[8.1469 9.0575 1.2698 9.1334 6.3233 0.9754 2.7849 5.4686
9.5747 9.6485 1.5761 9.7055 9.5713 4.8535 8.0025 1.4188
4.2174 9.1570 7.9217 9.5945 6.5571]
b=0
Giải thích:
Việc xấp xỉ một hệ thống gián đoạn bằng mạng neuron khá dễ dàng với việc sử dụng
mạng “linearlayer”. Trong đó các tham số của mạng chính là các tham số của hàm.
Đáp ứng
( )p k
của một hệ gián đoạn
1 20
0 1 20
( ) H z b b z b z
− −
= + + +
sẽ có dạng
0 1 2 20
( ) ( ) ( 1) ( 2) ( 20)y k b p k b p k b p k b p k= × + × − + × − + + × −
. Như vậy ta sẽ tạo một
mạng neuron như sau:
Trần Đình Thiêm. Lớp KSTN-ĐKTĐ-K55. MSSV: 20100669 Trang 25

×