You are on page 1of 28

TRƯỜNG ĐẠI HỌC SAO ĐỎ

KHOA ĐIỆN

BÀI TẬP LỚN


HỆ THỐNG ĐIỀU KHIỂN THÔNG MINH

ĐỀ SỐ 3

Sinh viên thực hiện : Bùi Minh Hiếu


Lớp : DK10D1
Ngành : Công nghệ kỹ thuật điện, điện tử
Giảng viên hướng : Nguyễn Thị Quyên
dẫn

Hải Dương, năm 2022

MỤC LỤC

1
Contents
Câu 01 (2,0 điểm):...............................................................................................................3
1.1.Cấu trúc Bộ điều khiển mờ......................................................................................3
1.2.Để tổng hợp được các bộ Điều khiển mờ và cho nó hoạt động một cách hoàn
thiện ta cần thực hiện qua các bước sau:....................................................................4
1.3.Phân tích suy luận mờ và luật hợp thành.............................................................5
Câu 02 (3,0 điểm):...............................................................................................................6
2.1.Phân tích các bước huấn luyện mạng nơron perceptron.....................................6
2.2.Lập trình huấn luyện bằng phần mềm Matlab....................................................7
2.3. Sử dụng giao diện đồ họa ( Graphical User Interface – GUI ) để khảo sát và
phân tích.......................................................................................................................10
Câu 03 (5,0 điểm):.............................................................................................................13
3.1. Xây dựng mạng nơ ron...............................................................................................13
3.1.1. Thực hiện lập trình trên phần mềm Matlab...................................................13
3.2. Thiết kế bộ điều khiển mờ điều khiển nhiệt độ phòng...............................................20
3.2.1.Giới thiệu tổng quan về matlab-công cụ để thiết kế bộ điều khiển mờ.........20
3.2.2. Các bước thiết kế bộ điều khiển mờ trên Simulink:......................................21
3.2.3. Mô phỏng bộ điều khiển mờ.............................................................................24

2
Câu 01 (2,0 điểm):
Trình bày các thành phần cơ bản của bộ điều khiển mờ? Phân tích suy luận mờ và luật
hợp thành?
Yêu cầu đạt được:
- Trình bày được các thành phần trong bộ điều khiển mờ?
- Phân tích suy luận mờ và luật hợp thành?
Bài làm
1.1.Cấu trúc Bộ điều khiển mờ
Hoạt động của một bộ điều khiển mờ phụ thuộc vào kinh nghiệm và
phương pháp rút ra kết luận theo tư duy của con người sau đó được cài đặt vào
máy tính trên cơ sở logic 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

Giao diện Mờ Thiết bị hợp Giao diện


vào hóa thành Giải mờ
ra

1 .Các khối chức năng của bộ điều khiển mờ


-Khối mờ hoá có chức năng chuyển mỗi giá tri rõ của biến ngôn ngữ đầu vào
thành véctơ μ có số phần tử bằng số tập mờ đầu vào.
-Thiết bị hợp thành mà bản chất của nó sự triển khai luật hợp thành R được
xây dựng trên cơ sở luật điều khiển.
- Khối giải mờ có nhiệm vụ chuyển tập mờ đầu ra thành giá trị rõ y0 (ứng với
mỗi giá tri rõ x0 đề điều khiển đối tượng).
- Giao diện đầu vào thực hiện việc tông hợp và chuyển đổi tin hiệu vào (từ
tương tự sang số), ngoài ra còn có thể có thểm các khâu phụ trợ đê thực hiện bài
toán động như tích phân, vi phân....
- Giao diện đầu ra thực hiện chuyển đổi tín hiệu ra (từ số sang tương tự) để
điều khiển đối tượng.
Nguyên tắc tổng hợp một bộ điều khiển mờ hoàn toàn dựa vào những
phương pháp toán học trên cơ sở định nghĩa các biến ngôn ngữ vào/ra và sự lựa
chọn những luật điều khiển. Do các bộ điều khiển mờ có khả năng xử lý các giá trị
vào/ra biểu diễn dưới dạng dấu phẩy động với độ chính xác cao nên chúng hoàn
3
toàn đáp ứng được các yêu cầu của một bài toán điều khiển "rõ ràng" và "chính
xác" .
1.2.Để tổng hợp được các bộ Điều khiển mờ và cho nó hoạt động một cách hoàn
thiện ta cần thực hiện qua các bước sau:
1- Khảo sát đối tượng, từ đó định nghĩa tất cả các biến ngôn ngữ vào, ra và miền
xác định của chúng. Trong bước này chúng ta cần chú ý một số đặc điểm cơ
bản của đối tượng điều khiển như: Đối tượng biến đổi nhanh hay chậm? có trễ
hay không? tính phi tuyến nhiều hay ít ?, ... Đây là những thông tin rất quan
trọng để quyết định miền xác định của các biến ngôn ngữ đầu vào, nhất là các
biến động học (vận tốc, gia tốc,...). Đối với tín hiệu biến thiên nhanh cần chọn
miền xác định của vận tốc và gia tốc lớn và ngược lại.
2- Mờ hoá các biến ngôn ngữ vào/ra: Trong bước này chúng ta cần xác định số
lượng tập mờ và hình dạng các hàm liên thuộc cho mỗi biến ngôn ngữ. Số
lượng các tập mờ cho mỗi biến ngôn ngữ được chọn tuỳ ý. Tuy nhiên nếu chọn
ít quá thì việc điều chỉnh sẽ không mịn, chọn nhiều quá sẽ khó khăn khi cài đặt
luật hợp thành, quá trình tính toán lâu, hệ thống dễ mất ổn định. Hình dạng các
hàm liên thuộc có thể chọn hình tam giác, hình thang, hàm Gaus,...
3- Xây dựng các luật điều khiển (mệnh đề hợp thành): Đây là bước quan trọng
nhất và khó khăn nhất trong quá trình thiết kế bộ điều khiển mờ. Việc xây
dựng luật điều khiển phụ thuộc rất nhiều vào tri thức và kinh nghiệm vận hành
hệ thống của các chuyên gia. Hiện nay ta thường sử dụng một vài nguyên tắc
xây dựng luật hợp thành 29 đủ để hệ thống làm việc, sau đó mô phỏng vả
chỉnh định dần các luật hoặc áp dụng một số thuật toán tối ưu (được trình bày
ở phần sau).
4- Chọn thiết bị hợp thành (MAX-MIN hoặc MAX-PROD hoặc SUMMIN hoặc
SUM-PRROD) và chọn nguyên tắc giải mờ (Trung bình, cận trái, cận phải,
điểm trọng tâm, độ cao).
5- Tối ưu hệ thống: Sau khi thiết kế xong bộ điều khiển mờ, ta cần mô hình hoá
và mô phỏng hệ thống để kiểm tra kết quả, đồng thời chỉnh định lại một số
tham số để có chế độ làm việc tối ưu. Các tham số có thể điều chỉnh trong
bước này là: Thêm, bớt luật điều khiển; thay đổi trọng số các luật; thay đổi
hình dạng và miền xác định của các hàm liên thuộc.

4
- Cụ thể ta sẽ làm theo 6 bước sau:
B1. Xác định giá trị vào ra
B2. Mờ hóa
B3. Luật điều khiển
B4. Simulink: mô phỏng
B5. Fuzzy: Thiết kế bộ điều khiển mờ
B6. Đánh giá
1.3.Phân tích suy luận mờ và luật hợp thành

 Suy luận mờ cũng thường được gọi là suy luận xấp xỉ ( Fuzzy reasoning or
approximate reasoning ) là thủ tục suy luận để suy diễn ra kết quả từ các tập
các quy tắc nếu…thì.. theo một hay nhiều điều kiện. Trước tiên ta giới thiệu
về luật hợp thành để mô tả sự hợp lý thực chất của suy luận mờ.
 Luật hợp thành là sự khái quát hóa các khái niệm tương tự sau đây: Giả thiết
ta có đường cong y=(fx), đó là quan hệ điều kiện giữa x và y. Khi cho x = a
thì suy ra y = b (a). Tổng quát nếu bây giờ ta cho a một khoảng và f(x) là
hàm của khoảng giá trị. Để tìm khoảng kết quả y=b tương tự với khoảng
x=a, trước tiên ta mở rộng vùng a theo kiểu hình trụ từ X sang vùng X*Y và
tìm vùng l là giao của khoảng giá trị a và hàm của khoảng giá trị f(x), sau đó
lấy hình chiếu của l lên trục Y ta tìm được y = b
 Trong bộ điều khiển mờ luật điều khiển mờ là bộ não của nó, người thiết kế
phải dựa vào kinh nghiệm của mình mà phát biểu xây dựng cho được tập mờ
dạng này làm cơ sở cho việc chiển khai thiết kế tiếp theo.

Câu 02 (3,0 điểm):


Huấn luyện mạng nơ ron theo cổng AND và NAND hai ngõ vào biết các giá trị khởi tạo:
w1 = 0,1 x n;
w2 = 0,2 x n;
b = - 0,1 x n;
n = 1 ÷ 10 (n: chỉ số nhóm)

5
Yêu cầu đạt được:
a. Phân tích các bước huấn luyện mạng nơ ron perceptron.
b. Lập trình huấn luyện bằng phần mềm Matlab.
c. Sử dụng giao diện đồ họa (Graphical User Interface - GUI) để khảo sát và phân tích.
2.1.Phân tích các bước huấn luyện mạng nơron perceptron
B1. Xác định, phân tích đầu vào ra với
P: là đầu vào; t là mục tiêu mong muốn
Ví dụ:
Biết:
p = [[2;2] [1;-2] [-2;2] [-1;1]]
Mục tiêu:
t = [0 1 0 1]
Phân tích
Mục tiêu:
Nếu x1=2, x2 = 2 thì y=0
Nếu x1=1, x2 = -2 thì y=1
Nếu x1=-2, x2 = 2 thì y=0
Nếu x1=-1, x2 = 1 thì y=1
>>>%Code
p = [[2;2] [1;-2] [-2;2] [-1;1]] % Nhập bộ dữ liệu đầu vào
t = [0 1 0 1] % Nhập mục tiêu (mong muốn)
B2. Tạo một Perceptron:
1. Tạo một mạng Perceptron bằng lệnh newp.
MÃ:
net = newp(PR,S);
Trong đó:

 PR là một ma trận với 2 phần tử mỗi hàng là giá trị min và max của 1 đầu
vào trong R đầu vào.
 S là số nơ-ron có trong mạng.

6
Thông thường hàm truyền hardlim được sử dụng cho Perceptron, nên nó là mặc
định khi tạo.
Ví dụ trên sẽ có kết quả
net = newp([-2 2;-2 2],1);
B3. Nhập lệnh cho mạng học theo 30 chu kỳ:
Với ví dụ trên câu lệnh:
net.trainParam.epochs = 30;

B4. Nhập lệnh huấn luyện mạng với câu lệnh:


net = train(net,p,t);
B5. Kiểm tra trọng số với 2 lệnh:
net.IW{1,1}
net.b{1}

2.2.Lập trình huấn luyện bằng phần mềm Matlab


 Đầu vào và đầu ra của cổng AND và NAND
NAN
IN1 IN2 AND
D
0 0 0 1
0 1 0 1
1 0 0 1
1 1 1 0
w1 = 0,1x3 = 0,3 ( nhóm 3 )
w2 = 0,2x3 = 0,6
b = -0,1x3 = - 0 ,3
Chương trình đầu ra cổng AND
>> %Thiết lập giá trị trọng số và bias
>> net.IW{1,1} = [0.3 0.6];
>> net.b{1} = -0.3;
>> p = [[0;0] [0;1] [1;0] [1;1]]% Nhập bộ dữ liệu đầu vào

p=

7
0 0 1 1
0 1 0 1

>> t = [0 0 0 1]% Nhập mục tiêu (mong muốn)

t=

0 0 0 1

>> net =newp([0 1;0 1],1);% Xây dựng nowrowrron perceptron


>> net.trainParam.epochs = 30;% cho mạng học trong khoảng 30 chu kỳ
>> net = train(net,p,t); % Huấn luyện mạng
Kết quả:

Chương trình đầu ra với cổng NAND


>> %Thiết lập giá trị trọng số và bias
>> net.IW{1,1} = [0.3 0.8];
>> net.b{1} = -0.3;
>> p = [[0;0] [0;1] [1;0] [1;1]]% Nhập bộ dữ liệu đầu vào

p=

0 0 1 1
0 1 0 1

>> t = [1 1 1 0]% Nhập mục tiêu (mong muốn)


8
t=

1 1 1 0

>> net =newp([0 1;0 1],1);% Xây dựng nowrowrron perceptron


>> net.trainParam.epochs = 30;% cho mạng học trong khoảng 30 chu kỳ
>> net = train(net,p,t); % Huấn luyện mạng

Kết quả

2.3. Sử dụng giao diện đồ họa ( Graphical User Interface – GUI ) để khảo sát
và phân tích.
Bước 1 : gõ nntool để hiện ra giao diện thiết lập đầu vào ra -> Chọn
New create

9
Phần network chọn tên và type là perceptron

Nhập số liệu đầu vào và mục tiêu ở phần Inputs và Tagers và ấn Create ở phần data

- Nhấn đúp vào network ‘AND’ để mở:

10
Chọn sang phần Train -> Train Network để chạy hệ thống mạng

- Cửa sổ mới hiện ra:

11
- Biểu diễn trên đồ thị Performance:

12
Câu 03 (5,0 điểm):
a. Cho bộ tín hiệu vào ra P, T

[ 0 1 2 3 4 5 4 3 2 1 1]
P= 0 1 2 3 4 5 4 3 2 1 1

T= [ 4 3 2 1 0 1 2 3 4 3 2 ]
0 1 23 4 3 2 1 2 3 2

Thiết kế mạng nơ ron 3 lớp 2 x (7 +n ) x 2, với n = 1 ÷ 10 (n: chỉ số nhóm).


Thực hiện quá trình training lan truyền ngược và phân tích kết quả.
Biết hàm kích hoạt lần lượt của các lớp là: tansig, tansig, purelin.
Yêu cầu đạt được:
Training mạng bằng hai cách:
- Lập trình trên phần mềm Matlab.
- Sử dụng giao diện đồ họa (Graphical User Interface - GUI) để khảo sát.
b. Thiết kế bộ điều khiển mờ điều khiển nhiệt độ phòng, biết:
Nhiệt độ đặt (150C + n) ÷ (300C + n); Nhiệt độ phòng: 180C ÷ 450C. Điện áp cấp cho
driver của máy lạnh là 0V (dừng), đến 24VDC (max).
Yêu cầu đạt được:
- Giới thiệu tổng quan về Matlab
- công cụ để thiết kế bộ điều khiển mờ.
- Thiết kế, mô phỏng bộ điều khiển mờ.
- Phân tích hệ thống tại đầu vào e = 7 + n; với n = 1 ÷ 10 (n: chỉ số nhóm).
Bài làm
3.1. Xây dựng mạng nơ ron.
3.1.1. Thực hiện lập trình trên phần mềm Matlab.
a) Ta thực hiện viết code trên matlab:
%Tao ma tran P T1
P1 = [0 1 2 3 4 5 6 7 8 9 10];
P2 = [0 1 2 3 4 5 6 7 8 9 10];
P = [P1;P2];
13
T1 = [0 1 2 3 4 3 2 1 2 3 4];
T2 = [5 3 2 1 0 1 2 3 4 3 2];
T= [T1; T2];
a1 = min(P(1,:)), a2 = max(P(1,:)),
a3 = min(P(2,:)), a4 = max(P(2,:)),
% Ham newff tao mang truyen thang 3 lop, ham chuyen doi là tansig
net = newff([a1 a2; a3 a4], [2 7 2], {'tansig' 'tansig' 'purelin'});
%tao mo hinh simulink cho mang noron
gensim(net);
net.trainParam.epochs = 1500;
% Thuc hien hoc theo luat lan truyen nguoc voi ham train
net = train(net,P,T);
%go bat ky phim nao de dung phim pause;
% Ki?m tra ham sim
Y=sim(net,P);
Y1=Y(1,:);
Y2=Y(2,:);
%subplot và plot v? do thi vào ra
subplot(2,1,1); plot(P1,T1,'-',P1,Y1,'o'),
subplot(2,1,2); plot(P2,T2,'-',P2,Y2,'o'),
%Tim bo ma tran trong so và bias
w11=net.IW{1,1}, % tìm ma tran w1
w21=net.IW{2,1}, % tìm ma tran tu lop vao den lop an w21
w31=net.IW{3,1}, % tìm ma tran tu lop anden lop ra w31
b1=net.b{1}
b2=net.b{2}
b3=net.b{3}

14
>> %Tao ma tran P T
P1 = [0 1 2 3 4 5 4 3 2 1 1];
P2 = [0 1 2 3 4 5 4 3 2 1 1];
P = [P1;P2];
T1 = [0 1 2 3 4 3 2 1 2 3 2];
T2 = [4 3 2 1 0 1 2 3 4 3 2];
T= [T1; T2];
a1 = min(P(1,:)), a2 = max(P(1,:)),
a3 = min(P(2,:)), a4 = max(P(2,:)),
% Ham newff tao mang truyen thang 3 lop, ham chuyen doi là tansig
net = newff([a1 a2; a3 a4], [2 10 2], {'tansig' 'tansig' 'purelin'});
%tao mo hinh simulink cho mang noron
gensim(net);
net.trainParam.epochs = 1500;
% Thuc hien hoc theo luat lan truyen nguoc voi ham train
net = train(net,P,T);
%go bat ky phim nao de dung phim
pause;
% Kiem tra ham sim
Y=sim(net,P);
Y1=Y(1,:);
Y2=Y(2,:);
%subplot và plot ve do thi vào ra
subplot(2,1,1); plot(P1,T1,'-',P1,Y1,'o'),
subplot(2,1,2); plot(P2,T2,'-',P2,Y2,'o'),
%Tim bo ma tran trong so và bias
w11=net.IW{1,1}, % tìm ma tran w1

15
w21=net.IW{2,1}, % tìm ma tran tu lop vao den lop an w21
w31=net.IW{3,1}, % tìm ma tran tu lop anden lop ra w31
b1=net.b{1}
b2=net.b{2}
b3=net.b{3}
Kết quả thu được
a1 =
0
a2 =
5
a3 =
0
a4 =
5
w11 =
-0.8610 0.2590
-0.3145 -0.4521
w21 =
[]
w31 =
[]
b1 =
2.2446
0.9262
b2 =
-4.4508
-3.4630

16
-2.2255
1.3487
0.5590
-0.2785
1.7959
-2.3648
3.4440
4.4272
b3 =
0.4054
0.4008
b) Simulink

c) Training mạng nơ ron 3 lớp 2 x 8 x 2

17
d) Biểu diễn đồ thị Perfomance.

e) Biểu diễn đồ thị Training State.


18
f) Biểu diễn đồ thị Regression.

g) Biểu thị đồ thị trên Figure

19
3.2. Thiết kế bộ điều khiển mờ điều khiển nhiệt độ phòng.
3.2.1.Giới thiệu tổng quan về matlab-công cụ để thiết kế bộ điều khiển mờ.
a) Ngôn ngữ Matlab.
Là một ngôn ngữ lập trình bậc cao (Scritp) với các lệnh điều khiển, chức năng, cấu
chúc dữ liệu, đầu vào/ đầu ra và khả năng lập trinh hướng đối tượng. Cho phép bạn nhanh
chóng tạo và phá hủy phần mềm trong “ lập trinh quy mô nhỏ ” hoặc tạo các chương trinh
lớn và phức tạp trong “lập trình quy mô lớn”
b) Tính năng Matlab.
- Matlab là một ngôn ngữ lập trinh cao cấp để tinh toan số và phát triển ứng dụng.
- Cung cấp một môi trường tương tác để điều tra, thiết kế và gaiir quyết các vấn
đề.
- Nó cung cấp môi trường thư viện lớn các hàm toan học để gaiir các hàm số tuyến
tính, thống kê, phân tích Fourier, lọc, tối ưu hóa, tích phân và phương trinh vi phân bình
thường.
- Matlab cung cấp các biểu đồ tích hợp để trực quan hóa dữ liệu và các công cụ để
tạo biểu đồ tùy chỉnh.
- Cung cấp các công cụ phát triển để tăng khả năng bảo trì chất lượng mã và tối đa
hóa hiệu suất.

20
- Cung cấp các công cụ để xây dựng ứng dụng bằng giao diện đồ họa tùy chỉnh.
- Các chức năng để tích hợp các thuật toan dựa trên Matlab với các ứng dụng bên
ngoai và các ngôn ngữ C, Java, NET và Microsoft Excel.
*Các ứng dụng của Matlab gồm :
- Toán học và tính toán
- Phát triển các thuật toán
- Thu thập dữ liệu
- Mô hình hóa, mô phỏng
- Phân tích dữ liệu, thăm dò và trực quan hóa
- Đồ họa khoa học và kỹ thuật
- Phát triển các ứng dụng, xây dựng các giao diện người dùng
*Đặc trưng của Matlab:
Nét đặc trưng của MatLab là nó cung cấp một họ các Toolboxes , cho phép người
dùng có thể học và áp dụng trong các kỹ thuật chuyên ngành. Toolboxes là tập hợp của
các hàm (”M-files") cho phép mở rộng môi trường MatLab để giải một lớp các bài toán
như trong : Xử lý tín hiệu (signal processing) ,Các hệ điều khiển (control systems) ,Mạng
nơ-ron (neural networks) ,Logic mờ (fuzzy logic) ,Sóng nhỏ (wavelets), Mô phỏng
(simulation).
3.2.2. Các bước thiết kế bộ điều khiển mờ trên Simulink:
Bước 1: Khởi động chương trình:

21
Bước 2: Trên cửa sổ lệnh: nhập lệnh Fuzzy, xuất hiện hộp thoại:

Hình 3.2.2 Hộp thoại thiếu kế bộ điều khiển mờ.


Bước 3: Mờ hóa ngõ vào:
- Đặt tên cho tập mờ ngõ vào: Chọn input1, nhập tên thư mục : name.
- Nhấn kép vào biểu tượng ”input1”, xuất hiện hộp thoại.
- Chọn tập mờ cần thiết kế.

Hình 3.2.3.Hộp thoại thiết lập mờ ngõ vào .


Thiết kế các thông số bằng cách nhập vào hộp thoại như hình.

22
Bước 4: Giải mờ ngõ ra.

Hình 3.2.4.Giải mờ ngõ ra .


Tương tự như ngõ vào, nhập các thông số bài toán như hình.
Bước 5: Xây dựng luật mờ hợp thành.
Nhấn kép vào biểu tượng untitled xuất hiện hộp thoại.

Hình 3.2.5. Xây dựng luật hợp thành

23
Chọn luật hợp thành “if” ở input… “then” ở output theo bài toán. Chọn Add rule để chon
luật hợp thành.
Tiếp tục chọn luật tiếp theo và chọn addrule cho đến hết.
Sau khi xây dựng xong lưu bộ điều khiển:
Từ menu File: Export/to file… và chọn thư mục cần lưu.

Hình 3.2.6. Lưu bộ điều khiển đã thiết kế

3.2.3. Mô phỏng bộ điều khiển mờ.


Bước 1: Xác định giới hạn vào ra:
Nhiệt độ ngoài trời: 160C ÷ 310C
Nhiệt độ phòng: 180C ÷ 450C
Điện áp: 0 V ÷ 24 VDC
Bước 2: Mờ hóa:
Input:
phòng:

24
180C: lạnh
320C: mát
450C: nóng
trời:
160C: lạnh
240C: mát
310C: nóng
Output:
điện áp:
0 V: chậm
12V: vừa
24V: nhanh
- Khai báo đầu vào nhiệt độ phòng:

25
- Khai báo đầu vào nhiệt độ ngoài trời:

- Khai báo đầu ra điện áp:

26
Bước 3: Xây dựng luật điều khiển:

- Simulink:

- Đồ thị scope:

27
28

You might also like