Ưu, nhược điểm của phương pháp và hướng khắc phục

Một phần của tài liệu Điều khiển dự báo cho hệ mimo trên cơ sở hệ logic mờ (Trang 42)

3.2.2.1. Ưu nhược điểm của phương pháp.

Qua phân tích nguyên lý của phương pháp Branch and Bound, ta có thể

thấy rõ một sốưu điểm như sau:

1. Lời giải tối ưu luôn tìm được (bản chất của phương pháp B&B). Đây là

ưu điểm quan trọng của thuật toán, nó đảm bảo cho bộđiều khiển luôn tìm

được lời giải tối ưu trong không gian rời rạc của tín hiệu điều khiển mà không phải giả thiết về dạng của phiếm hàm mục tiêu.

2. Thuật toán không cần dựđoán các giá trị khởi tạo, do đó phép lặp không bị ảnh hưởng bởi sự kiện “xấu”.

điều khiện ràng buộc càng chặt làm cho không gian tìm kiếm càng thu hẹp, càng nhanh chóng thu được lời giải tối ưu.

Tuy nhiên, thuật toán này cũng thể hiện một số nhược điểm:

1. Khối lượng tính toán là rất lớn. Nó tăng theo quan hệ hàm mũ với phạm vi dự báo điều khiển và số điểm rời rạc trong không gian tìm kiếm. Ví dụ đối với hệ 2×2 MIMO, Hc = 5, rời rạc giải tín hiệu vào là n= 10 mức, số khả

năng phải xét là ( (5))2 10

10 = 10 trường hợp. Điều này có nghĩa là phương pháp B&B thường không thích hợp đối với hệ lớn (nhiều tín hiệu vào, dải

đầu vào lớn…) kết hợp với phạm vi dự báo điều khiển lớn.

2. Các khả năng của tín hiệu điều khiển bị hạn chế bởi tập giá trị rời rạc của nó. Nếu chia không gian tìm kiếm thành nhiều mức thì việc xấp xỉ là tốt, tuy nhiên việc tìm kiếm là rất chậm, nếu chia ít mức độ thì độ chính xác của lời giải bị giảm đi. Hiện tượng thường xảy ra đó là hệ thống tồn tại dao

động nhỏ khi tiến gần đến giá trị đặt do tín hiệu điều khiển dao động xung quanh hai mức rời rạc liên tiếp của nó.

3.2.2.2. Phương pháp khắc phục các nhược điểm.

Bài luận văn xin đề xuất phương án khắc phục nhược điểm của Branch and Buond là phương pháp lưới chia động như sau:

Phương pháp lưới chia động được Joao Migel Costa de Sousa đề xuất dựa trên phương pháp lọc kích thước lưới lặp. Tư tưởng chính của phương pháp này là: Thu hẹp không gian tìm kiếm khi hệ thống tiến dần tới giá trị đặt trước,

tức là khi hệ thống tiến dần đến trạng thái xác lập thì tín hiệu đièu khiển không cần thay đổi manh, do đó không cần thiết phải tìm kiếm trong cả không gian rời rạc của tín hiệu điều khiển.

Nội dung của phương pháp gồm hai phần là tập giá trị thích nghi của tín hiệu điều khiển và hệ số tỉ lệ g.

Tại thời điểm thứ (k- 1): u k( - 1)Î U = [umin,umax] (3.10) Tại thời điểm k: u k( )= u k( - 1)+ Du k( ) (3.11) Giá trị trặn trên và dưới của biến thiên tín hiệu điều khiển sẽ là:

uk+ = umax- u k( - 1),uk- = umin - u k( - 1) (3.12) l1 có thể thay đổi chứ không cố định (thong thường là tuyến tính hoặc theo quy luật hàm mũ). Như vậy, thay vì chọn Dutrong tập giá trị cốđịnh như

trên thì ởđây, tập W* luôn thay đổi theo giá trị của tín hiệu điều khiển ở chu ký trước. Tham số l xác định số khả năng thay đổi của tín hiệu điều khiển. Với các đối tượng nhanh thì chọn l nhỏ, thậmchí một số trường hợp có thể chọn

đơn giản l=1, tức là tín hiệu điều khiển chỉ có thể tăng, giữ nguyên, hoặc là giảm.

b) Hệ số tỉ lệ g

Để thu hẹp miền tìm kiếm, tập giá trị thích nghi của biến thiên tín hiệu

điều khiển ( )Du một lần nữa được chỉnh định để có thể “nén” không gian tìm kiếm, tăng khả năng làm “trơn” tín hiệu điều khiển cũng như khả năng phản

ứng của hệ thống:

W( )k = g( )k W*( )k (3.14) Có nhiều cách để chỉnh hệ số g. Đơn giản là g suy giảm theo hàm mũ. Hoặc ( )g k được xác định tại mỗi thời điểm k dựa vào sai lêch dự báo

ˆ( )

e k+ Hp và biến thiên của sai lệch De k( )= e k( )- e k( - 1) theo nguyên tắc: - khi De k( ) nhỏ và e kˆ( + Hp)cũng nhỏ, tức là hệ gần tới trạng thái xác

lập, do dó tín hiệu điều khiển cần thay đổi chậm, tức là ( )g k ® 0.

- Khi De k( ) lớn và e kˆ( + Hp) cũng lớn - hệ chưa tới trạng thái xác lập, do đó tín hiệu điều khiển cần thay đổi mạnh, tức là ( )g k ® 1.

CHƯƠNG IV.

ỨNG DỤNG BỘĐIỀU KHIỂN MPC CHO ĐỐI TƯỢNG MIMO

4.1 Đối tượng mô phỏng.

Để minh hoạ cho những phân tích ở trên, ta chọn một đối tượng điển hình trong công nghiệp để mô phỏng là Bình trộn chất lỏng (Watertank). Mô hình simulink của đối tượng được xây dựng như dưới đây.

Hình 4.1 Mô hình bình trộn chất lỏng.

4.2 Xây dựng mô hình mờ dự báo cho đối tượng MIMO.

Mô hình dự báo của đối tượng được xây dựng là một mô hình mờ với

đầu vào là một vector hồi quy được lựa chọn từ tập dữ liệu vào ra trong quá khứ của đối tượng điều khiển.

$

y(t | )q = f ( (t), )j q

q là vector tham số của mô hình mờ (vị trí và hình dạng của tập mờ, hệ luật, việc kết hợp luật).

Để thu được mô hình mờ dự báo của đối tượng, ta cần xác định ba yếu tố sau: 1. Xác định các phần tử hồi quy thích hợp từ tập các giá trị vào ra trong

quá khứ j (t)

2. Xác định cấu trúc của mô hình mờ.

3. Xác định các tham số thích hợp cho mô hình mờ ( )q .

Với đối tượng là mô hình MIMO, ta sẽ sử dụng phương pháp tách kênh để

thay vì mô hình 2vào/2ra ta sẽ xây dựng 2 mô hình mờ Takagi-Sugeno ứng với 2 đầu ra của đối tượng.

4.2.1 Xác định các phần tử hồi quy thích hợp.

- Do đối tượng MIMO 2 vào/2 ra nên ta sẽ chọn vector hồi quy ứng với mỗi mô hình mờ dựa trên kinh nghiệm như sau:

- Với đầu ra y1 ta chọn vector hồi quy như sau:

{y (t 1), y (t 2), y (t 3), y (t 4), u (t 1), u (t 2), u (t 3), u (t 4), u (t 1), u (t 2), u (t 3), u (t 4)1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 2 - 2 - 2 - 2 - }

- Với đầu ra y2 ta chọn vector hồi quy như sau:

{y (t 1), y (t 2), y (t 3), y (t 4), u (t 1), u (t 2), u (t 3), u (t 4), u (t 1), u (t 2), u (t 3), u (t 4)2 - 2 - 2 - 2 - 1 - 1 - 1 - 1 - 2 - 2 - 2 - 2 - }

Việc lựa chọn được thực hiện theo phương pháp tìm kiếm tuân tự theo cấu trúc cây. Quá trình tìm kiếm bằng Matlab ta sử dụng câu lệnh sau:

[input_index elapsed_time)=seqrch (num_input, trn_data, chk_data, input_name);

Trong đó:

num_input: số lượng các phần tử hồi quy lựa chọn làm đầu vào cho hệ mờ (ở đây ta chọn là 3 phần tử)

input_name: tên của các phần tử trong tập dữ liệu quá khứ mà ta sẽ chọn ra trong đó thành phần hồi quy thích hợp:

{y (t 1), y (t 2), y (t 3), y (t 4), u (t 1), u (t 2), u (t 3), u (t 4), u (t 1), u (t 2), u (t 3), u (t 4)1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 2 - 2 - 2 - 2 - } {y (t 1), y (t 2), y (t 3), y (t 4), u (t 1), u (t 2), u (t 3), u (t 4), u (t 1), u (t 2), u (t 3), u (t 4)2 - 2 - 2 - 2 - 1 - 1 - 1 - 1 - 2 - 2 - 2 - 2 - }

input_index: thứ tự của phần tử lựa chọn được trong tập trên.

elapsed_time: thời gian tính toán

4..2.2 Xác định cấu trúc của mô hình mờ.

Nhưđã nói ở trên, ta sẽ xây dựng 2 mô hình mờ theo cấu trúc mô hình mờ dạng Takagi-Sugeno. Việc khởi tạo cấu trúc này được thực hiện trong Matlab bằng lệnh sau:

in_fismat=genfis1(trn_data, numMFs, inmftype, outmftype);

Trong đó:

trn_data: tập dữ liệu vào ra để huấn luyện. Tập này gồm 1500 mẫu, mỗi mẫu có 3 giá trịđầo vào đã lựa chọn được ở trên và 1 giá trịđầu ra.

numMFs: số lượng hàm membership ứng với mỗi đầu vào đã lựa chọn

inmftype: kiểu hàm membership đầu vào

outmftype: kiểu hàm membership đầu ra

in_fismat: mô hình mờ kiểu Tagaki-Sugeno được khởi tạo.

4.2.3 Xác định các tham số thích hợp chô mô hình mờ.

Nhưđã trình bầy ở trên, việc huấn luyện để xác định các tham số thích hợp cho mô hình mờ dự báo của đối tượng được thực hiện bằng hai phương pháp:

1. Phương pháp bình phương cực tiểu: Nhằm chỉnh định các thông số của hàm tuyến tính xác định đầu ra bằng cách kết hợp các đầu vào:

( l i l i l)

1 1x ... pxp 0

q + + q + q

2. Phương pháp chuyển động ngược hướng gradient: Nhằm xác định vị trí của các hàm membership đầu vào.

- Quá trình huấn luyện mạng được matlab hỗ trợ bằng lệnh sau: [trn_out_fismat trn_error step_size chk_out_fismat chk_error] = anfis (trn_data,in_fismat,[1 nan ss ss_dec_rate ss_inc_rate], nan,chk_data,1);

Trong đó:

trn_data: tập dữ liệu vào ra để huấn luyện.

in_fismat: mô hình mờ Tagaki-Sugeno đã được khởi tạo

[1 nan ss ss_dec_rate ss_inc_rate]: các lựa chọn cho việc huấn luyện

(training epoch number, training error goal – ta chọn như mặc định là 0, initial step size, step size decrease rate, step size increase rate)

nan: lựa chọn hiển thị - ta chọn như mặc định

chk_data: tập dữ liệu kiểm chứng (1000 mẫu)

1: Phương pháp huấn luyện - ta lựa chọn kết hợp hai phương pháp bình phương cực tiểu và phương pháp chuyển động ngược hướng gradient

trn_out_fismat: mô hình mờ sau khi được huấn luyện.

trn_error: sai số sau khi huấn luyện

chk_out_fismat: mô hình mờ sau khi được chỉnh định lại nhờ tập dữ liệu kiểm chứng (kết quả cuối cùng).

chk_error: sai số sau khi kiểm chứng

4.2.4 Thực thi thuật toán xây dựng mô hình mờ dự báo.

Thuật toán xây dựng mô hình mờ dự báo của đối tượng được thực thi bởi hàm sau:

myfis = NL_iden(model, Ts, num_input, range_u, step);

Xem chương trình ở phần PHỤ LỤC

Chu kỳ trích mẫu là 3s

Thời gian thu thập dữ liệu là 7500s

Đầu vào ra của mô hình Watertank 2Input 2Output:

Đầu vào/ra để nhận dạng với mô hình 1.

Đầu vào/ra để nhận dạng với mô hình 2.

Hình 4.3. Kết quả thu thập dữ liệu từđối tượng của mô hình 2.

2. Kết quả lựa chọn vector hồi quy làm đầu vào cho mô hình mờ dự báo:

Kết quả chọn vector hồi quy 1 là:

Selecting input 1 ...

ANFIS model 1: y1(k-1) --> trn=0.0470, chk=0.0516 ANFIS model 2: y1(k-2) --> trn=0.0897, chk=0.0989

ANFIS model 6: u1(k-4) --> trn=0.6806, chk=0.6558 ANFIS model 7: u2(k-1) --> trn=0.3324, chk=0.3370 ANFIS model 8: u2(k-2) --> trn=0.2999, chk=0.3031 ANFIS model 9: u2(k-3) --> trn=0.2736, chk=0.2767 ANFIS model 10: u2(k-4) --> trn=0.2537, chk=0.2586 Currently selected inputs: y1(k-1)

Selecting input 2 ...

ANFIS model 11: y1(k-1) y1(k-2) --> trn=0.0259, chk=0.0276 ANFIS model 12: y1(k-1) u1(k-1) --> trn=0.0457, chk=0.0538 ANFIS model 13: y1(k-1) u1(k-2) --> trn=0.0457, chk=0.0538 ANFIS model 14: y1(k-1) u1(k-3) --> trn=0.0455, chk=0.0541 ANFIS model 15: y1(k-1) u1(k-4) --> trn=0.0453, chk=0.0543 ANFIS model 16: y1(k-1) u2(k-1) --> trn=0.0201, chk=0.0227 ANFIS model 17: y1(k-1) u2(k-2) --> trn=0.0279, chk=0.0321 ANFIS model 18: y1(k-1) u2(k-3) --> trn=0.0350, chk=0.0405 ANFIS model 19: y1(k-1) u2(k-4) --> trn=0.0397, chk=0.0458 Currently selected inputs: y1(k-1) u2(k-1)

Selecting input 3 ...

ANFIS model 20: y1(k-1) u2(k-1) y1(k-2) --> trn=0.0165, chk=0.0183 ANFIS model 21: y1(k-1) u2(k-1) u1(k-1) --> trn=0.0130, chk=0.0139 ANFIS model 22: y1(k-1) u2(k-1) u1(k-2) --> trn=0.0133, chk=0.0147 ANFIS model 23: y1(k-1) u2(k-1) u1(k-3) --> trn=0.0140, chk=0.0157 ANFIS model 24: y1(k-1) u2(k-1) u1(k-4) --> trn=0.0146, chk=0.0163 ANFIS model 25: y1(k-1) u2(k-1) u2(k-2) --> trn=0.0196, chk=0.0223 ANFIS model 26: y1(k-1) u2(k-1) u2(k-3) --> trn=0.0194, chk=0.0219 ANFIS model 27: y1(k-1) u2(k-1) u2(k-4) --> trn=0.0191, chk=0.0217 Currently selected inputs: y1(k-1) u1(k-1) u2(k-1)

Kết quả lựa chọn vector hồi quy 2:

Selecting input 1 ...

ANFIS model 1: y2(k-1) --> trn=0.0242, chk=0.0199 ANFIS model 2: y2(k-2) --> trn=0.0461, chk=0.0374 ANFIS model 3: u1(k-1) --> trn=0.1346, chk=0.1360 ANFIS model 4: u1(k-2) --> trn=0.1189, chk=0.1265 ANFIS model 5: u1(k-3) --> trn=0.1076, chk=0.1202 ANFIS model 6: u1(k-4) --> trn=0.1009, chk=0.1172 ANFIS model 7: u2(k-1) --> trn=0.2911, chk=0.2368 ANFIS model 8: u2(k-2) --> trn=0.2912, chk=0.2347 ANFIS model 9: u2(k-3) --> trn=0.2913, chk=0.2333 ANFIS model 10: u2(k-4) --> trn=0.2913, chk=0.2324 Currently selected inputs: y2(k-1)

Selecting input 2 ...

ANFIS model 11: y2(k-1) y2(k-2) --> trn=0.0134, chk=0.0128 ANFIS model 12: y2(k-1) u1(k-1) --> trn=0.0107, chk=0.0145 ANFIS model 13: y2(k-1) u1(k-2) --> trn=0.0151, chk=0.0169 ANFIS model 14: y2(k-1) u1(k-3) --> trn=0.0193, chk=0.0186 ANFIS model 15: y2(k-1) u1(k-4) --> trn=0.0217, chk=0.0197 ANFIS model 16: y2(k-1) u2(k-1) --> trn=0.0240, chk=0.0197 ANFIS model 17: y2(k-1) u2(k-2) --> trn=0.0241, chk=0.0198 ANFIS model 18: y2(k-1) u2(k-3) --> trn=0.0241, chk=0.0199 ANFIS model 19: y2(k-1) u2(k-4) --> trn=0.0241, chk=0.0200 Currently selected inputs: y2(k-1) u1(k-1)

ANFIS model 23: y2(k-1) u1(k-1) u1(k-4) --> trn=0.0103, chk=0.0136 ANFIS model 24: y2(k-1) u1(k-1) u2(k-1) --> trn=0.0065, chk=0.0064 ANFIS model 25: y2(k-1) u1(k-1) u2(k-2) --> trn=0.0070, chk=0.0074 ANFIS model 26: y2(k-1) u1(k-1) u2(k-3) --> trn=0.0078, chk=0.0086 ANFIS model 27: y2(k-1) u1(k-1) u2(k-4) --> trn=0.0082, chk=0.0096 Currently selected inputs: y2(k-1) u1(k-1) u2(k-1)

Elapsed time1=1.766000

3. Huấn luyện để chỉnh định tham số của mô hình mờ dự báo:

Kết quả huấn luyện tham số của mô hình mờ dự báo: Mô hình 1 ứng với đầu ra y1 như sau:

Kết quảứng với mô hình mờ 2 như sau:

Hình 4.5. Kết quả nhận dạng của mô hình 2.

Nhận xét: Giá trị dự báo của mô hình mờ xây dựng bám rất sát giá trị tín hiệu thực. Như vậy kết quả nhận dạng đạt yêu cầu.

4. Mô hình mờ dự báo.

Sau khi huấn luyện và kiểm chứng, ta thu được mô hình mờ dự báo của đối tượng gồm 3 đầu vào, 1 đầu ra như sau:

Mô hình mờ của đầu vào y1: ANFIS info:

Total number of parameters: 56 Number of training data pairs: 2000

Number of checking data pairs: 500 Number of fuzzy rules: 8

Hình 4.6. Mô hình mờ dự báo của đối tượng ứng với đầu ra y1.

Hệ luật như sau:

Mô hình mờ của đầu ra y2: ANFIS info:

Number of nodes: 34

Number of linear parameters: 32 Number of nonlinear parameters: 24 Total number of parameters: 56 Number of training data pairs: 2000

Number of checking data pairs: 500 Number of fuzzy rules: 8

Hình 4.11. Hàm membership ứng với đầu ra y2(k-1).

Các luật mờ:

4.3 Xây dựng bộđiều khiển cho mô hình mờ dự báo. 4.3.1. Khởi tạo quần thể ban đầu. 4.3.1. Khởi tạo quần thể ban đầu.

Ta xây dựng hàm con để khởi tạo quần thể như sau:

generation=genbin(num_chro, num_bit);

Trong đó:

num_chro: là số nhiễm sắc thể trong quần thể.

num_bit: là số bit mã hoá cho mỗi nhiễm sắc thể

Generation: là quần thể mới được khởi tạo

4.3.2. Giải mã nhiễm sắc thể.

Để tính độ thích nghi của mỗi nhiễm sắc thể, ta cần giải mã nhiễm sắc thể

bằng cách xây dựng hàm con sau:

val=bin2real(chro, range);

Trong đó:

chro: là nhiễm sắc thể cần giải mã

range: là dải giá trị của tín hiệu thực

4.3.3. Tái sinh.

Hàm con tái sinh sẽ tính toán độ thích nghi của các nhiễm sắc thể và từđó tái sinh các nhiễm sắc thể có độ thích nghi thích hợp và tạo ra một quần thể mới.

newgen=selectmin(gen, myfis1, myfis2, lamda, TDLy, TDLu, range_du1, range_du2, Hp, ref1, ref2, y1, y2, u1, u2, t)

Trong đó:

gen: là quần thể lúc trước được tái sinh

myfis: là mô hình mờ dự báo của đối tượng điều khiển

lamda: là trọng số của phiếm hàm mục tiêu

TDLy, TDLu: là đường dây trễ y, đường dây trễ u

range_du1: là dải biến thiên tín hiệu vào

ref: là tín hiệu đặt

y, u: tín hiệu ra, tín hiệu vào

t: thời gian

newgen: quần thể mới được tái sinh

4.3.4. Lai ghép

Quá trình lai ghép được thực hiện bởi hàm con sau

newgen=mate(gen, ma, n_point)

Trong đó:

gen: là quần thể trước khi lai ghép

ma: là xác suất lai ghép

n_point: là sốđiểm lai ghép

newgen: là quần thể mới sau khi được lai ghép.

4.3.5. Đột biến

Quá trình đột biến được thực hiện bởi hàm con sau:

newgen=matate(gen, mu);

Trong đó:

gen: là quần thể trước khi có đột biến

mu: là xác suất đột biến

newgen: là quần thể mới sau khi có đột biến

4.3.6. Thực thi bộđiều khiển GA.

Bộđiều khiển GA được xây dựng bởi hàm sau

Một phần của tài liệu Điều khiển dự báo cho hệ mimo trên cơ sở hệ logic mờ (Trang 42)

Tải bản đầy đủ (PDF)

(96 trang)