GIỚI THIỆU VỀ MATLAB VÀ GUIDE

Một phần của tài liệu Đồ án tốt nghiệp ngành hệ thống điện nguyễn quốc thắng (Trang 89)

1.3.1. Giới thiệu về Matlab

Matlab là một chƣơng trình viết cho máy tính PC nhằm hỗ trợ cho các tính toán khoa học và kỹ thuật với các phần tử cơ bản là ma trận trên máy tính cá nhân do công ty "The MATHWORKS" viết ra. Thuật ngữ Matlab có đƣợc là do hai từ MATRIX và LABORATORY ghép lại.Matlab ngày càng trở thành công cụ rất đắc lực trong việc mô phỏng, tính toán, thiết kế, xây dựng các ứng dụng trong nhiều lĩnh vực khác nhau nhƣ điện, điện tử, xử lý tín hiệu, trí tuệ nhân tạo, tài chính…

Matlab đƣợc điều khiển bởi các tập lệnh, tác động qua bàn phím. Nó cũng cho phép một khả năng lập trình với cú pháp thông dịch lệnh - còn gọi là Script file các hàm. Các lệnh hay bộ lệnh của MATLAB lên đến số hàng ngàn và ngày càng đƣợc mở rộng bởi các phần Toolbox hay thông qua các hàm ứng dụng đƣợc xây dựng từ ngƣời sử dụng. Các lệnh của Matlab rất mạnh và hiệu quả, nó cho phép giải các loại hình toán khác nhau và đặc biệt hữu dụng cho các hệ phƣơng trình tuyến tính hay các bài toán ma trận. Ở Matlab 7.0 đã có hơn 20 Toolbox các loại. Hiện tại và trong tƣơng lai Matlab sẽ cho ta một sự lựa chọn hoàn chỉnh và phong phú các công cụ trợ giúp đắc lực cho những lĩnh vực nghiên cứu chuyên môn khác nhau. Trong luận văn này, tôi đã sử dụng các Toolbox chính sau của Matlab: Neural Network, GUIDE, các lệnh tạo đồ thị và một số hàm có sẵn trong Matlab.

1.3.2. Giới thiệu về Neural Network Toolbox

Neural Network Toolbox là một thƣ viện chứa các hàm mô phỏng về mạng Nơtron rất mạnh. Do sự ứng dụng mạnh mẽ của mạng Nơtron trong xử lý dữ liệu ở các lĩnh vực nghiên cứu khoa học và đời sống thì sự phát triển này là tất yếu. Mạng Nơtron đã đƣợc ứng dụng rộng rãi trong nhiều lĩnh vực và nó đã cho thấy sức mạnh của mình.Matlab đã tạo ra giao diện đồ họa cho phép ngƣời sử dụng tạo mạng, nhập dữ liệu, khởi động mạng, luyện mạng và mô phỏng mạng

1.3.3. Giới thiệu về GUIDE

GUIDE (the MATLAB Graphical User Interface Development Environment), cung cấp một tập công cụ để xây dựng giao diện đồ họa giữa ngƣời sử dụng và Matlab (GUIs –graphical user interfaces). Những công cụ này rất tiện dụng và hữu ích để đơn giản hóa quá trình thiết kế và xây dựng GUIs. Ta có thể sử dụng các công cụ của GUIDE để thiết kế các giao diện trong các chƣơng trình Matlab. GUIDE có trình soạn thảo (the GUIDE Layout Editor) để định dạng GUI một cách dễ dàng bằng cách kích và kéo các bảng (panels), nút (buttons), vùng văn bản (text fields), thanh trƣợt (sliders), menu, … tới vùng trình bày.

Ta cũng có thể lập trình GUI để đáp ứng các yêu cầu thao tác của ngƣời sử dụng thông qua các giao diện chuẩn nhƣ chuột, bàn phím. Các thao tác này thƣờng đƣợc lƣu giữ dƣới dạng các „Callback funtions‟ của GUI. Để lƣu giữ các thông tin về một GUI, thƣ viện GUIDE của Matlab sẽ tự động tạo một M-file chung cho tất cả các phần tử của một giao diện. Việc chạy M-file sẽ tƣơng đƣơng với việc khởi động GUI và hiển thị ra một khung làm việc (famework) cho các hàm (Callback) của GUI - những lệnh thực thi khi ngƣời sử dụng tác động vào một bộ phận của GUI.

Muốn thêm các chức năng khác, ta thêm mã vào sau các gọi hàm (callback) bằng cách sử dụng trình soạn thảo M-file.

Các phần tử thường dùng trong giao diện GUI

Nút nhấn (Push botton)

Nút nhấn tạo ra các hoạt động sau khi bị kích chuột vào. Khi ta kích chuột, nút sẽ chìm lún xuống và khi thả ra nút sẽ nổi lên và hàm callback đã đƣợc lập trình trƣớc tƣơng ứng với nút sẽ đƣợc thực thi.

Edit Text

Edit Text điều khiển các trƣờng cho phép ngƣời sử dụng nhập hoặc sửa đổi các câu ký tự dạng văn bản. Chuỗi văn bản sẽ đƣợc đọc vào với lệnh “get (hObject,'string')”

Axes

Axes cho phép GUI hiển thị đồ họa (ví dụ: Đồ họa và hình ảnh), nó cho phép chúng ta điều khiển sự hiển thị của đồ họa.

Panels

Panels dùng để nhóm các thành phần của GUI, tạo ra một giao diện sử dụng điều khiển dễ hiểu, những thành phần liên quan với nhau đƣợc cho vào một nhóm.

Table

Table cho phép tạo ra các bảng số liệu trong giao diện của GUI.

Kết luận:

Từ khi xuất hiện, mạng Nơ ron nhân tạo là một công cụ rất mạnh cho các bài toán dự báo. Nhờ tính linh hoạt và khả năng tự học của mạng, việc áp dụng mạng Nơ ron nhân tạo trong dự báo ngắn hạn phụ tải điện sẽ mang lại nhiều thành công.

CHƢƠNG 2

MẠNG NƠRON MPL TRONG DỰ BÁO NGẮN HẠN PHỤ TẢI ĐIỆN 2.1. MÔ HÌNH MẠNG NƠ RON MLP

2.1.1. Phƣơn pháp luận lựa chọn mạn Nơ ron

Căn cứ vào đặc thù của luận văn, em đã chọn mạng nơ ron MLP có một lớp ẩn, bởi vì mạng MLP có một số ƣu điểm trong yêu cầu của bài toán dự báo phụ tải giờ của biểu đồ phụ tải sau đây:

 Mô hình này đã đƣợc sử dụng rộng rãi, chất lƣợng đã đƣợc khẳng định.

 Do tính kinh điển của mình mà mạng MLP có rất nhiều chƣơng trình mô phỏng khác nhau.Việc sử dụng thƣ viện của Matlab cho phép viết chƣơng trình mô phỏng một cách dễ dàng, thuận tiện,việc hiển thị kết quả tính toán cũng nhanh và chính xác.

 Các thuật toán tƣơng đối phức tạp nếu muốn độ chính xác và hội tụ cao.

 Khó xây dựng đƣợc bộ mẫu học để có thể loại bỏ đƣợc dƣ thừa mẫu học.

2.1.2. Cấu trúc mạn MLP

Theo lý thuyết về mạng Nơ ron, ngƣời ta chỉ cần tối đa 2 lớp ẩn cho một bài toán xác định.Tuy nhiên trong nhiều ứng dụng thực tế, để đơn giản ngƣời ta thƣờng sử dụng mạng có một lớp ẩn. Σ Σ Σ p1 p2 p3 pn t1 t3 tm t2 y1 y2 yn wij wjk Lớp vào Lớp ra Lớp ẩn Hình 2.1. Mạng Nơ ron một lớp ẩn

Mạng Nơ ron trong hình 2.1 gồm:

- Lớp vào (input): là các Nơ ron nhận các biến vào Pi với i=1† n

- Lớp ẩn (hidden layer): là các Nơ ron ở giữa yj , j=1† n. Các Nơ ron lớp ẩn nhận tín hiệu từ các Nơ ron lớp vào qua hệ số trọng lƣợng Wij.

- Lớp ra (output layer): là các Nơ ron đƣa những giá trị ra Tk, k = 1† m.Các Nơ ron lớp ra nhận tín hiệu từ các Nơ ron lớp ẩn qua hệ số trọng lƣợng Wkj.

Phƣơng pháp làm việc của mạng Nơ ron nhân tạo có thể phân chia làm hai giai đoạn: giai đoạn huấn luyện và giai đoạn tự tái diễn lại. Khi xuất hiện các kích thích đầu vào của mạng nhƣ nhau ở các thời điểm khác nhau thì đáp ứng đầu ra của mạng ở các thời điểm tƣơng ứng cũng hoàn toàn giống nhau. Quá trình làm việc nhƣ vậy của mạng Nơ ron là quá trình tự tái diễn lại. Khi có thông tin vào mạng Nơ ron sẽ có đáp ứng đầu ra tƣơng ứng với đầu vào theo sự nhận biết của mạng đƣợc hình thành trong quá trình huấn luyện.

Cũng nhƣ con ngƣời, khi mới hình thành mạng Nơ ron chƣa có tri thức, tri thức của mạng Nơ ron hình thành dần sau một quá trình học. Mạng Nơ ron đƣợc dạy bằng cách đƣa vào những kích thích mẫu và hiệu chỉnh dần các hệ số trọng lƣợng để đáp ứng ở lớp đầu ra sẽ phù hợp với những giá trị mà ta mong muốn. Quá trình này gọi là quá trình huấn luyện.

2.1.3. Huấn luyện mạn

Trong ứng dụng hộp công cụ Neural Network toolbox của Matlab đã có sẵn những thuật toán dùng để huấn luyện cho mạng MLP nhƣ sau :

1)Thuật toán Backpropagation

- Huấn luyện incremental (ADAPT)

- Hàm gradient descent (LEARNGD)

- Hàm gradient descent có quán tính (LEARNGD)

- Huấn luyện batch (TRAIN)

- Batch gradient descent với momentum (TRAINGDM)

2) Huấn luyện nhanh

- Giải thuật tốc độ thay đổi ( TRAINDA, TRAINDX) - Giải thuật phục hồi mạng backpropagation ( TRAINRP) - Giải thuật conjugate_gradient

- Giải thuật cập nhật Fletcher-Reeves (TRAINCGF)

- Giải thuật cập nhật Polak – Ribiére (TRAIN CGP)

- Giải thuật khởi động lại Powell – Beale (TRAINCGB)

Các thuật toán quasi- newton

- Giải thuật BFGS (TRAINBFG)

- Giải thuật One Step Secant (TRAINOSS) - Giải thuật Levenberg – Marquardt (TRAINLM)

- Giải thuật Levenberg- Marquardt giảm bộ nhớ (TRAINLM)

3) So sánh bộ nhớ và tốc độ

Mỗi thuật toán có đặc điểm về độ hội tụ khác nhau nhƣng thông thƣờng đầu tiên chúng ta nên dùng giải thuật Levenberg - Marquardt. Nếu giải thuật này không đủ bộ nhớ, thì thử dùng giải thuật BFGS, hay các phƣơng pháp conjugate gradient.

2.2. XÂY DỰNG MÔ HÌNH MẠNG MLP CHO BÀI TOÁN

DỰ BÁO NGẮN HẠN PHỤ TẢI ĐIỆN 2.2.1. Các thôn số đầu vào và đầu ra cho mô hình

1)Xác định các thông số đầu ra: Giá trị phụ tải 24h của ngày cần dự báo

2)Xác định số lớp ẩn và số Nơ ron lớp ẩn:Ta chọn mạng MLP có 1lớp ẩn.

3)Xác định các thông số đầu vào: Các giá trị phụ tải trong tƣơng lai đƣợc dự báo dựa trên các thông số phụ tải trong quá khứ. Do đó các thông số đầu vào có thể lựa chọn nhƣ sau:

a) Các thông số phụ tải 24h của ngày trước đó

b) Các thông số phụ tải 24h của ngày trước đó cùng với thông số phụ tải cách đó 7 ngày.

2.2.2. Ứn dụn chƣơn trình Matlab để xây dựn mạn MLP

Để tạo mạng Nơ ron lan truyền ngƣợc nhiều lớp và luyện mạng ta dùng các lệnh sau: net = newff(PR,[S1, S2,..., SN1],{TF1, TF2,...,TFN1},BTF)

Đây là lệnh khởi tạo mạng, trong đó:

L24(i-1) L24(i)

L24(i) L24(i-1)

- Si là số nơ ron trong lớp i của mạng.

- TFi là hàm truyền giữa Nơ ron lớp i và Nơ ron lớp i+1. - BTF là hàm huấn luyện lan truyền ngƣợc của mạng

Ví dụ: p=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]; t=[0 0.1 0.2 0.3 0.4 0.3 0.2 0.1 0.2 0.3] net=newff(minmax(p),[3,1],{'tansig','purelin'},'traingd'); net.trainParam.show = 50; net.trainParam.epochs = 300; net.trainParam.goal = 1e-5; net=train(net,p,t); a = sim(net,p) Trong đó:

+ net.trainParam.show = 50; - sau 50 lần học kết quả sẽ hiển thị một lần

+ net.trainParam.epochs =700; - đặt số vòng cho một quá trính luyện mạng ,khi đạt đƣợc 700 vòng lặp thì vòng lặp kết thúc.

+ net.traimParam.goal =1e-5; - đặt sai số cho quá trình luyện mạng là 10-5 khi đạt sai số này thì quá trình luyện kết thúc.

+ net=train(net,p,t); - huấn luyện mạng đã tạo với tập đầu vào dùng để học p ,tập đầu ra dùng để học t.

+ a=sim(net,p); - tính toán đầu ra của mạng.

Hình 2.2. Đầu ra của mạng Nơ ron và tập học trước khi huấn luyện

Trong đồ thị trên, đƣờng nét liền là đƣờng biểu thị các giá trị của tập học , đƣờng gồm các khoanh tròn „o‟ là đƣờng biểu thị các giá trị đầu ra khi tính toán đầu vào theo mạng vừa đƣợc tạo. Ta thấy sai số giữa lớp đầu ra so với tập học là rất lớn.

Đồ thị thể hiện sự biến thiên của sai số theo các vòng lặp khi học, ta thấy khi học càng nhiều thì sai số đầu ra càng giảm, điều này phù hợp với việc học nói chung và đối với mạng nói riêng. Sau khi học xong, sự chênh lệch giữa đầu ra và tập học không đáng kể, trong đồ thị này đƣờng nét liền là đƣờng biểu thị các giá trị của tập học, đƣờng gồm các khoanh tròn „o‟ là đƣờng biểu thị các giá trị đầu ra khi tính toán đầu vào theo mạng vừa huấn luyện xong.

Hình 2.4. Đầu ra của mạng Nơ ron sau khi huấn luyện xong

Kết luận: Bằng những phân tích về mạng MLP cùng với số liệu hiện có, ta đã xây dựng đƣợc các mô hình mạng MLP trong bài toán dự báo ngắn hạn phụ tải điện.

Chƣơn 3

ỨNG DỤNG MẠNG MPL

DỰ BÁO NGẮN HẠN PHỤ TẢI ĐIỆN MIỀN BẮC 3.1. XÂY DỰNG PHẦN MỀM

3.1.1. Sơ đồ thuật toán

Hình 3.1. Sơ đồ thuật toán

3.1.2. Xây dựn phần mềm

1)Giao diện phần mềm bao gồm

- Nút nạp dữ liệu đầu vào: Data Open - Nút đào tạo mạng: Train MLP - Nút lƣu trữ mạng: Save MLP - Nút dự báo kết quả: Forecast - Bảng số liệu đầu vào

- Bảng hiển thị kết quả

- Đồ thị biểu diễn kết quả dự báo.

2)Mã lệnh cho phần mềm

 Đọc dữ liệu từ file excel:

num = xlsread(filename, sheet, 'range'). Trong đó:

 num là mảng lƣu giữ giá trị của bản excel đọc đƣợc. Ghi kết quả ra file

Dự báo kết quả Đọc số liệu đầu

vào

Xử lý số liệu: Chia tập số liệu, chuẩn hóa…

Tạo mạng MLP

Đƣa các thông số đào tạo

Đào tạo mạng

 filename là tên file ta cần đọc.

 Sheet là bảng giá trị cần đọc.

 Range: Phạm vi của bảng cần đọc

 Chuẩn hóa dữ liệu:

[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t)

Trong đó:

 pn, tn: Véc tơ đầu vào và đầu ra mạng Nơ ron đã đƣợc chuẩn hóa.

 minp, maxp, mint, maxt: Giá trị lớn nhất và nhỏ nhất của các phần tử trong véc tơ đầu vào và đầu ra mạng Nơ ron.

 P, t: véc tơ đầu vào và đầu ra mạng Nơ ron.

 Tạo mạng:

net= newff( minmax(pn), [10 24], {„tansig‟, „tansig‟},„trainlm‟).

Trong đó:

 Net: Là mạng Nơ ron ta đã tạo

 [10 24]: Số Nơ ron lớp ẩn và số Nơ ron đầu ra.

 {„tansig‟, „tansig‟}: Các hàm kích hoạt.

 „trainlm: Thuật toán huấn luyện mạng.

 Đặt các thông số huấn luyện mạng:

 net.trainParam.show = 50; -sau 50 lần học kết quả sẽ hiển thị 1 lần

 net.trainParam.epochs =900; - đặt số vòng cho một quá trính luyện mạng ,khi đạt đƣợc 900 vòng lặp thì vòng lặp kết thúc.

 net.traimParam.goal =1e-5; - đặt sai số cho quá trình luyện mạng là 10-5 khi đạt sai số này thì quá trình luyện kết thúc.

 Huấn luyện mạng:

[net,tr]=train(net,pn,tn,[],[],val,test)

 Pn, tn: Các véc tơ đầu vào và đầu ta mạng đã đƣợc chuẩn hóa.

 Lƣu trữ mạng: Save MLP

 Dự báo kết quả: an=sim(MLP,pn)

Trong đó:

 MLP: Mạng Nơ ron ta đã lƣu

 Pn: Véc tơ đầu vào đã chuẩn hóa

 Chuyển kết quả chuẩn hóa về kết quả thực: A= postmnmx(an, mint, maxt)

Trong đó:

 an: Giá trị véc tơ dự báo đã chuẩn hóa

 mint,maxt:Giá trị lớn nhất và nhỏ nhất của các phần tử trong véctơđầu ra

 Ghi kết quả dự báo ra file:

[status msg]= xlswrite(filename, a(iiforecast))

Trong đó:

 Filename: Tên file ghi kết quả dự báo

Hình 3.3. Hình ảnh quá trình đào tạo của mạng MPL

3.2. DỰ BÁO PHỤ TẢI NGÀY VỚI THÔNG SỐ ĐẦU VÀO LÀ PHỤ TẢI 24H CỦA NGÀY TRƢỚC ĐÓ VÀ THÔNG SỐ ĐẦU RA

LÀ PHỤ TẢI 24H CỦA NGÀY CẦN DỰ BÁO 3.2.1. Các số liệu thu thập đƣợc

Chạy phần mềm, dự báo với số liệu có đƣợc ta tiến hành thay đổi các thông số của hàm kích hoạt, thuật toán đào tạo(sử dụng mã lệnh phần mềm ở trong phần phụ lục). Từ kết quả các lần dự báo lấy sai số trung bình để tìm ra hàm kích hoạt và thuật toán đào tạo tối ƣu cho bài toán.

3.2.2. Xác định hàm kích hoạt

Các thông số của hàm kích hoạt đƣợc sử dụng chủ yếu là „tansig‟, „purelin‟, „logsig‟. Ta lần lƣợt thay đổi các thông số và dự báo kết quả cho ngày 08 tháng 06 năm 2012 ta đƣợc bảng sau:

Bảng 3.1. Bảng sai số trung bình khi thay đổi các hàm kích hoạt

TT Hàm kích hoạt Sai số trung bình

1 tansig-purelin 6,45 2 purelin-tansig 4.26 3 tansig-tansig 3.55 4 purelin-purelin 4.01 5 logsig-logsig 17.2 6 purelin-logsig 15.6 7 logsig-purelin 5.8 8 logsig-tansig 4.94 9 tansig-logsig 13.6

Từ bảng trên ta thấy chọn cặp hàm kích hoạt „tansig‟-„tansig‟ sẽ cho sai số nhỏ nhất.

3.2.3. Xác định thuật toán

Các thuật toán thƣờng đƣợc sử dụng để đào tạo mạng MLP là: „traingda‟, „trainrp‟,„traincgf‟,„traincgp‟,„traincgb‟,„traínscg‟,„trainbfg‟,„trainoss‟, „trainlm‟.

Bảng 3.2. Bảng kết quả dự báo theo thuật toán đào tạo

TT Thuật toán đào tạo Sai số trung bình(%)

1 Traingda 5,35 2 Trainrp 4,12 3 Traincgf 6,01 4 Traincgp 7,30 5 Traincgb 5,90 6 Trainscg 5,76 7 Trainbfg 5.46 8 Trainoss 5.23 9 Trainlm 3.25

Một phần của tài liệu Đồ án tốt nghiệp ngành hệ thống điện nguyễn quốc thắng (Trang 89)

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

(130 trang)