Hỡnh 3. 10. Sơ đồ mụ phỏng với bộ điều khiển HAC
Với mụ hỡnh mờ trờn, bộ điều khiển theo tiếp cận ĐSGT đƣợc thiết kế nhƣ sau:
- Bƣớ ến vào – ra và miề ế :
x1 = [-0.05, 0.05]
x2 = [-0.05, 0.05]
u = [-3000, 3000]
Trong đú:
- Bƣớc 2: Chọn bộ tham số ĐSGT cho cỏc biến đầu vào – ra:
G = {Negative (N), Positive (P)}; v(W) = 0.5 = ;
Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnu.edu.vn/
57
fm(N) = = 0.5; fm(P) = 1- = 0.5;
Mối quan hệ dấu của cỏc gia tử đối với cỏc gia tử khỏc và cỏc phần tử sinh đƣợc xỏc định nhƣ trong Bảng 3. 2. Mối quan hệ dấu của cỏc gia tử và cỏc phần tử sinh sau:
Bảng 3. 2. Mối quan hệ dấu của cỏc gia tử và cỏc phần tử sinh
V L P N
V + - + -
L - + - +
Độ đo tớnh mờ của cỏc gia tử đƣợc lựa chọn (lựa chọn theo thực nghiệm, phương phỏp “thử - sai”) nhƣ trong Bảng 3. 3. Cỏc gia tử và độ đo tớnh mở của chỳng:
Bảng 3. 3. Cỏc gia tử và độ đo tớnh mở của chỳng
Input1: x1s Input2: x2s Output: us
fm(s) 0.5 0.5 0.5
α = μ(L) 0.47 0.36 0.68
β = μ(V) 0.53 0.64 0.32
Tƣơng ứng với cỏc nhón ngụn ngữ trong mụ hỡnh mờ nhƣ sau:
Bảng 3. 4. Cỏc giỏ trị ngụn ngữ
Hedge Algebra Fuzzy
Very Negative VN Negative Big NB
Little Negative LN Negative Small NS
Neural W Zero ZE
Little Positive LP Positive Small PS
Very Positive VP Positive Big PB
- Bƣớc 3: Chuyển bảng FAM sang bảng luậ ớ
Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnu.edu.vn/ 58 Bảng 3. 5.Bảng luậ ớ N Z P VN VP P LP LN P LP Z Z LP Z LN LP Z LN N VP LN N VN
- Bƣớc 4: Tớnh giỏ trị định lƣợng ngữ nghĩa cho cỏc biến ngụn ngữ (ngữ nghĩa hoỏ), xõy dựng bảng SAM – (Semantization Associative Memory) từ bảng luật điều khiển ứng với cỏc nhón ngụn ngữ trong ĐSGT.
Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnu.edu.vn/
59
Với vào x2s:
Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnu.edu.vn/
60
Tớnh toỏn tƣơng tự với cỏc nhón ngụn ngữ khỏc của cỏc biến vào – ra, ta xỏc định đƣợc cỏc giỏ trị của bảng SAM nhƣ Bảng 3. 6.Bảng SAM.
Bảng 3. 6.Bảng SAM 0.3200 0.5000 0.6800 0.1405 0.9488 0.8400 0.7312 0.3896 0.8400 0.7312 0.5000 0.5000 0.7312 0.5000 0.2688 0.6104 0.5000 0.2688 0.1600 0.8596 0.2688 0.1600 0.0512
Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnu.edu.vn/
61
Hỡnh 3. 11. Mặt quan hệ vào – ra theo hệ luật điều khiển trong đại số gia tử
- Bƣớc 6: Giải bài toỏn lập luận xấp xỉ bằng cỏch nội suy trờn mặt cong ngữ
nghĩa định lƣợng và xỏc định giỏ trị điều khiển thực (giải ngữ nghĩa). Cỏc hàm tớnh toỏn đó đƣợc cài trong mụi trƣờng Matlab.
Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnu.edu.vn/
62
Hỡnh 3. 12. Thuật toỏn thực hiện của bộ điều khiển HAC
Sự thực hiện của HAC
- Bƣớc 1: Gọi hàm Setup()
+ Thiết lập số đầu vào, đầu ra của HACs (2 đầu vào, 1 đầu ra).
+ Khởi tạo cỏc biến toàn cục cho HACs.
+ Xỏc định miền giỏ trị làm việc cho cỏc biến của HACs.
+ Khởi tạo bộ tham số cho ĐSGT vừ tớnh toỏn cỏc giỏ trị định lƣợng ngữ nghĩa cho cỏc nhón ngụn ngữ của cỏc biến vào và biến ra (hàm v()).
+ Tạo cỏc mặt cong quan hệ vào-ra (hàm rules()).
- Bƣớc 2: Vào vũng lặp mụ phỏng: gọi hàm Output()
+ Đọc dữ liệu từ cỏc đầu vào của bộ điều khiển.
+ Ngữ nghĩa húa.
+ Nội suy tuyến tớnh trờn mặt quan hệ vào – ra.
Start -Khởi tạo cấu trỳc s-function block. -Khởi tạo cỏc tập mờ cho cỏc biến vào, ra. -Khởi tạo bảng luật.
Đọc cỏc giỏ trị đầu vào của block Ngữ nghĩa húa
Nội suy tuyến tớnh trờn mặt cong quan hệ vào – ra.
Gửi giỏ trị điều khiển tới đầu ra của block
Kết thỳc mụ phỏng (terminate)
End
Read inputs
Semantization
Desemantization
Write the values to output install() rules() mdlTerminate() Giải ngữ nghĩa interpolate
Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnu.edu.vn/
63
+ Giải ngữ nghĩa.
+ Ghi giỏ trị điều khiển tới đầu ra của bộ điều khiển.
Phần mó nguồn của một bộ điều khiển:
%beginfunction
function HACs(block) setup(block);
%endfunction
function setup(block)
%% Register number of input and output ports
block.NumInputPorts = 2; block.NumOutputPorts = 1;
%% Setup functional port properties to dynamically %% inherited.
block.SetPreCompInpPortInfoToDynamic; block.SetPreCompOutPortInfoToDynamic;
block.InputPort(1).DirectFeedthrough = true;
%% Set block sample time to inherited
block.SampleTimes = [-1 0];
%% Run accelerator on TLC
block.SetAccelRunOnTLC(true);
%Critical range of input/output variables global I1 I2 O
global X Y Z
Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnu.edu.vn/
64
[E, DE, U] = install();
%Create a curved surface and input/output relation
[X, Y, Z] = rules(E, DE, U);
%% Register methods
block.RegBlockMethod('Outputs', @Output);
%endfunction
function Output(block)
global I1 I2 O
global X Y Z
%Read the real values from inputs P and D
In1 = block.InputPort(1).Data; In2 = block.InputPort(2).Data;
%Turn to the value of semantic quantity (semantization)
Es = (In1-I1(1))/(I1(2)-I1(1)); DEs = (In2-I2(1))/(I2(2)-I2(1));
%Interpolate the quantitatively semantic curved surface
Os = interpolate2(X, Y, Z, DEs, Es);
if Os>1 Os = 1;
elseif Os<0 Os = 0;
end
%Turn to real value (desemantization)
Out = Os*(O(2)-O(1))+O(1);
Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnu.edu.vn/
65
block.OutputPort(1).Data = Out;
%endfunction