Sử dụng Matlab, Guide và ANN toolbox mô phỏng mạng

Một phần của tài liệu Ứng dụng mạng nơron nhân tạo dự báo đồ thị phụ tải ngắn hạn hệ thống (Trang 49)

2.4.1 Khái niệm về Matlab

Matlab là một ngôn ngữ lập trình thực hành bậc cao được sử dụng để giải các bài toán về kỹ thuật. Matlab tích hợp được việc tính toán, thể hiện kết quả, cho phép lập trình, giao diện làm việc rất dễ dàng cho người sử dụng. Dữ liệu cùng với thư viện được lập trình sẵn cho phép người sử dụng có thể có được những ứng dụng sau đây. • Sử dụng các hàm có sẵn trong thư viện, các phép tính toán học thông thường • Cho phép lập trình tạo ra những ứng dụng mới.

• Cho phép mô phỏng các mô hình thực tế. • Phân tích, khảo sát và hiển thị dữ liệu. • Với phần mềm đồ hoạ cực mạnh

• Cho phép phát triển, giao tiếp với một số phần mềm khác như C++, Fortran. Matlab là một hệ thống tương giao,các phần tử dữ liệu là một mảng( mảng này không đòi hỏi về kích thước). Chúng cho phép giải quyết các vấn đề liên quan đến lập trình bằng máy tính, đặc biệt sử dụng các phép tính về ma trận hay véc tơ và có thể sử dụng ngôn ngữ C hoặc Fortran lập trình rồi thực hiện ứng dụng lập trình đă bằng các câu lệnh gõ từ MATLAB .MATLAB được viết tắt từ chữ matrix laboratory tức là thư viện về ma trận, từ đó phần mềm MATLAB được viết nhằm cung cấp cho việc truy cập vào phần mềm ma trận một cách dễ dàng, phần mềm ma trận này được phát triển bởi các công trình Linpack và Eispack . Ngày nay MATLAB được phát triển bởi Lapack và Artpack tạo nên một nghệ thuật phần mềm cho ma trận.

a. Dữ liệu

Dữ liệu của MATLAB thể hiện dưới dạng ma trận (hoặc mảng -tổng quát), và có các kiểu dữ liệu được liệt kê sau đây:

• Kiểu đơn single , kiểu này có lợi về bộ nhớ dữ liệu vì nó đòi hỏi ít byte nhớ hơn, kiểu dữ liệu này không được sử dụng trong các phép tính toán học, độ chính xác kém hơn

• Kiểu double kiểu này là kiểu thông dụng nhất của các biến trong MATLAB • Kiểu Sparse.

- 50 - • Kiểu int8, uint8, int16 . . .

• Kiểu char ví dụ „Hello‟ • Kiểu cell.

• Kiểu Structure.

Trong MATLAB kiểu dữ liệu double là kiểu mặc định sử dụng trong các phép tính số học.

b. Ứng dụng

MATLAB tạo điều kiện thuận lợi cho: • Các khoá học về toán học

• Các kỹ sư, các nhà nghiên cứu khoa học

• Dùng MATLAB để tính toán, nghiên cứu tạo ra các sản phẩm tốt nhất trong sản xuất.

c. Toolbox là một công cụ quan trọng trong Matlab

Công cụ này được MATLAB cung cấp cho phép bạn ứng dụng các kỹ thuật để phân tích, thiết kế , mô phỏng các mô hình .

Ta có thể tìm thấy toolbox ở trong môi trường làm việc của: • Mạng nơron

• Logic mờ • Simulink

2.4.2 Sơ lƣợc về Matlab GUIDE

- GUI (Graphical User Interface) là giao diện đồ họa có điều khiển bởi nhiều thanh công cụ được người lập trình tạo sẵn, cho tương tác giữa người dùng là giao diện chương trình, Mỗi chương trình được người lập trình tạp sẵn giao diện thực hiện một vài chức năng được người lập trình tạo sẵn và giao tiếp với người sử dụng. - Ứng dụng của Matlab lập trình giao diện rất mạnh và dễ thực hiện, nó có thể tạo ra giao diện người dùng tương tự VBB, C++…GUI bao gồm đầy đủ các chương trình hỗ trợ như thực hiện phép toán LOGIC, mô phỏng không gian 2D, 3D, đọc hiển thị dữ liệu, liên kết đa phương tiện. Giao tiếp với người dùng thông qua hình ảnh, các nút nhấn thực thi ...

- 51 -

- Hầu hết GUI chỉ thực hiện (trả lời) lệnh người dùng thông qua các tác động của người dùng lên giao diện, người sử dụng không cần biết cấu trúc chương trình vẫn có thể thực hiện được. GUI được thực hiện thông qua các hàm CALLBACK. Khi người dùng tác động lên giao diện bằng các cách khác nhau, hàm CALLBACK sẽ được gọi để thực thi.

- Thực hiện khởi động Matlab đến GUI theo hình sau: + Khởi động Matlab từ biểu tượng Matlab trên màn hình desktop

+ Trong cửa sổ Comment Windowns gõ lệnh “guide” và enter: ta được giao diện như Hình 2.1

- 52 -

- Trong giao diện trên chúng ta có thể thao tác để tùy biến các thanh công cụ phù hợp với mục đích sử dụng.

Mô tả chức năng các công cụ cơ bản:

1) Nhấp chuột vào để thay đổi độ rộng của giao diện 2) Là nơi để cân chỉnh các nút, biểu tượng trên giao diện. 3) Là nơi để tạo giao diện con liên kết với giao diện chính. 4) Nút Play (Run) để thực thi chương t nh.

- Phía bên trái là nhóm các biểu tượng được Matlab GUI hỗ trỡ sẵn:

+ Push Button: là nút nhấn, khi nhấn vào sẽ thực thi lệnh trong cấu trúc hàm callback của nó.

+ Slider: là thanh trượt cho phép người dùng di chuyển thanh trượt để thực thi lệnh. + Radio Button: Nó giống như Check Box nhưng thường được sử dụng để tạo sự lựa chọn duy nhất, tức là 1 lần chỉ được chọn 1 trong số các nhóm nhiều nút. Khi một ô được chọn thì các ô còn lại trong nhóm bị bỏ chọn.

- 53 -

+ Check box: Sử dụng để đánh dấu tích (thực thi) vào và có thể check nhiều ô để thực thi.

+ Edit Text: là nơi các kí tự được nhập vào từ người dùng, người dùng có thể thay đổi được

+ Static Text: Là các kí tự được hiển thị thông qua các callback, hoặc thông thường để viết nhăn cho các biểu tượng, người dùng không thể thay đổi nội dung.

+ Pop-up Menu: mở ra danh sách các lực chọn khi người dùng nhấp chuột vào. Chỉ chọn được 1 mục trong danh sách các mục.

+ List Box: hộp thoại danh sách cách mục, cho phép người dùng chọn một hoặc nhiều mục.

+ Toggle Button: là nút nhấn có 2 điều khiển, khi nhấp chuột và nhả ra, nút nhấn được giữ và lệnh thực thi, khi nhấp chuột vào lần thứ 2, nút nhấn nhả ra, hủy bỏ lệnh vừa thực thi. + Table: tạo ra một bảng tương tự trong Excel.

+ Axes: Đây là giao diện đồ họa hiển thị hìnhnh ảnh, nó có nhiều thuộc tính bao gồm: không gian 2D (theo trục đứng và trục ngang), 3D (hiển thị không gian 3 chiều)

+ Panel: Tạo ra một mảng nhóm các biểu tượng lại với nhau giúp ta dễ kiểm soát và thao tác khi di chuyển

+ Button Group: quản lí sự lựa chọn của nút Radio Button.

+ Active Control: Quản lí một nhóm các bút hoặc các chương trình liên quan với nhau trong Active.

2.4.3 Công cụ Matlab ANN Toolbox (Neural Network Toolbox)

Neural Network Toolbox là một công cụ rất tiện ích trong Matlab. Công cụ

này chứa rất nhiều những lệnh để mô phỏng mạng nơ ron nhân tạo. Trong thời đại hiện nay việc ứng dụng mạng nơron nhân tạo trong rất nhiều các lĩnh vực khác nhau đòi hỏi phải có nhưng công cụ mô phỏng mạng hữu dụng và ANN Toolbox là một sự lựa chọn hàng đầu.

- 54 -

Hiện tại trong Matlab 7.0 trở lên để sử dụng ANN Toolbox mô phỏng mạng nơron ta có thể nhập trực tiếp các dòng lệnh từ cửa sổ Command line hoặc sử dụng giao diện đồ họa có sẵn.

2.4.3.1 Các lệnh mô phỏng mạng nơron nhân tạo

Để tạo một mạng nơron lan truyền sai số ngược nhiều lớp ta sử dụng lệnh sau: Net=newff(PR,[S1,S2….,SN1],{TF1,TF2,…,TFN1}, BTF}

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

- PR là ma trận có R hàng mỗi hàng có hai phần tử là max và min của mỗi phần tử trong R mẫu vào.

- 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í du : P=[72.0 73.2 74.3 75.5 76.6 77.6 78.7 79.7 80.9 82.0 83.1 84.1 85.2 86.2 87.2 88.2;11.7 12.7 13.6 14.8 15.6 16.1 16.5 17.1 18.2 19.7 21.4 22.9 24.8 30.5 32.6 36.4]; T=[11.2 13.4 15.3 17.7 19.6 22.4 25.7 30.2 34.9 39.7 44.9 51.4 58.4 65.7 74.2 84.4];

net=newff(minmax(P),T,3, {'logsig' 'purelin'},'trainlm'); net.performFcn='mse'; net.trainParam.show = 25; net.trainParam.goal = 1e-5; net.trainParam.epochs = 1000; [net,tr]=train(net,P,T); y=sim(net,P); gensim(net);

- 55 - T là ma trận tập học mạng

+ net=newff(minmax(P),T,3, {'logsig' 'purelin'},'trainlm'); Là lệnh tạo mạng

nơron net với tập đầu vào P và đầu ra là T, số nơ ron lớp ẩn là 3, hàm truyền giữa lớp đầu vào và lớp ẩn là logsig, hàm truyền giữa lớp ẩn và lớp đầu ra là purelin, thuật toán huấn luyện là trainlm.

+ net.performFcn='mse'; - Chọn đánh giá sai số theo tiêu chuẩn MSE (Mean Sum Erorr)

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

+ net.trainParam.goal = 1e-5; Đặt sai số cho quá trình huấn luyện 10-5 , khi

đạt sai số này thì quá trình huấn luyện kết thúc.

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

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

+ y=sim(net,P); - Tính toán đầu ra mạng với tập đầu vào P. + gensim(net); - Xem lại cấu trúc mạng.

2.4.3.2 Mô phỏng mạng nơron nhân tạo bằng giao diện đồ họa ANN toolbox

Từ của sổ Command Window của Matlab ta nhập lệnh nntool, sau khi nhập lệnh thì giao diện đồ họa nntool sẽ xuất hiện :

- 56 -

+ Nút Import (1) : Nhập các tập đầu vào, tập đích, mạng Nơron đã tạo sẵn. + Nút New (2) : Tạo mạng nơron mới, khi ấn nút New ta sẽ có giao diện sau:

Trong đó :

+ Name : Tên của mạng khởi tạo

+ Network Type : Chọn kiểu mạng, chúng ta có thể chọn nhiều loại hình mạng khác nhau như mạng Hopfield, mạng Elman, hay là mạng lan truyền sai số ngược Feed- forward backpro như trong hình .

+ Input Data : chọn tập đầu vào P. + Target Data : chọn tập đầu ra đích T.

3

- 57 -

+ Training function: Chọn hàm huấn luyện cho mạng ( trong hình ta chọn hàm huấn luyện trainlm).

+ Adaption learning function: Chọn hàm học cho mạng ( trong hình ta chọn hàm huấn học learngdm).

+ Ferfromance function: Chọn đánh giá sai số theo tiêu chuẩn MSE. + Number of layer : chọn số lớp ẩn.

+ Number of neurons: Chọn số nơron cho lớp ẩn. + Tranfer function: Chọn hàm truyền đạt.

- Sau khi chọn được hết các thông số của mạng ta ấn nút Creat(3) để tạo mạng với thông số đã chọn.

+ Để tiến hành huấn luyện mạng ta ấn menu Train(5) trên hình 2.

Từ menu huấn luyện mạng hình 2. ta chọn các thông số huấn luyện sau đó ấn nút Train Network ( 7) để huấn luyện mạng:

- 58 -

Hình 2.6 Menu huấn luyện mạng

- 59 -

+ Kết thúc quá trình huấn luyện mạng tử giao diện chính ấn nút Export(8) rồi ấn nút Save(9) để lưu lại mạng đã tạo.

Kết luận Chƣơng 2: Để xuất sử dụng mạng nơron nhiều lớp lan truyền ngược sai

số để dự báo phụ tải điện ngắn hạn hệ thống điện. Đưa ra các mô hình mạng dự báo phụ tải. Sử dụng Matlab và các công cụ Matlab GUIDE, ANN toolbox để mô phỏng mạng. Chương trình phần mềm và các kết quả mô phỏng được trình bày cụ thể trong Chương 3.

- 60 -

CHƢƠNG 3: XÂY DỰNG PHẦN MỀM MÔ PHỎNG MẠNG NƠ RON NHÂN TẠO DỰ BÁO PHỤ TẢI

ÁP DỤNG CHO THÀNH PHỐ HÀ NỘI Nội dung chƣơng 3:

- Các bƣớc xây dựng phần mềm, sử dụng và các mã lệnh chính của phần mềm dự báo

- Kết quả của các mô hình mạng cho bài toán dự báo đồ thị phụ tải ngày. - Các biện pháp nâng cao hiệu quả cho các mô hình dự báo

3.1 XÂY DỰNG PHẦN MỀM 3.1.1 Cơ sở dữ liệu 3.1.1 Cơ sở dữ liệu

Trong luận văn này tôi tiến hành áp dụng phương pháp dự báo phụ tải ngắn hạn cho hệ thống điện thành phố Hà Nội. Qua sự tìm hiểu trên mạng internet cũng như sự giúp đỡ của các anh chị trong Công ty mua bán điện và Trung tâm điều độ điện Hà Nội (B1) tôi đã thu thập được những số liệu phục vụ cho luận văn:

- Phụ tải điện 24h thành phố Hà Nội (bao gồm cả Hà Tây cũ) từ ngày 01/01/2011 đến ngày 31/03/2013( Chi tiết tham khảo tại mục 3 Phụ lục).

- Nhiệt độ cao nhất, thấp nhất, trung bình từ ngày 01/01/2011 đến ngày 31/03/2013( Chi tiết tham khảo tại mục 3 Phụ lục).

3.1.2 Lƣu đồ thuật toán

Để giải quyết một vấn đề cụ thể, có ba bước, trong quá trình huấn luyện cho mạng học lan truyền ngược có giám sát :

- Lựa chọn đầu vào dữ liệu cho mạng - Lựa chọn kiến trúc của mạng

- Huấn luyện mạng

Mô phỏng mạng để có được những đáp ứng đối với các đầu vào mới. Trong bối cảnh này, chúng tôi sẽ đề xuất một phương pháp để dự báo phụ tải từ cấu trúc trong Neural Networks Toolbox của Matlab.

- 61 -

3.1.3 Phần mềm dự báo phụ tải ngày Thành phố Hà Nội

Phần mềm được viết trền nền Matlab và sử dụng công cụ giao diện người dùng Matlab Guide và các lệnh của ANN Toolbox.

Sử dụng phần mềm:

+ Trong của sổ Command Window của Matlab nhập lệnh Giaodienchinh:

Thông số lựa chọn

Chuẩn hóa dữ liệu

Xây dựng cấu trúc mạng Huấn luyện mạng Lƣu trữ mạng Thông số đầu vào Dự báo

Lƣu trữ kết quả dự báo

- 62 -

Sau đó giao diện chính của phần mềm sẽ xuất hiện như Hình 3.3:

Hình 3.2 Khởi động phần mềm

- 63 -

+ Tại giao diện chính ấn nút START để bắt đầu khởi tạo mạng Nơron như Hình 3.4

- Trong đó các nút:

+ Mo du lieu : Mở các dữ liệu đầu vào và hiển thị trên của sổ bên cạnh. + Mo mang: Mở những mạng nơ ron đã tạo sẵn.

+ Huấn luyện: Thực hiện huấn luyện mạng theo các thông số đặt sẵn. + Luu: Lưu trữ lại mạng đã huấn luyện xong.

+ Du bao: Tiến hành dự báo đối với mô hình đã lưu. Khi ấn nút dự báo ta có giao diện dữ liệu đầu vào như hình 3.5

- 64 -

+ Các cột NGAY THANG NAM để chúng ta chọn ngày cần dự báo.

+ Sau khi chọn ngày dự báo các thông số đầu vào như kiểu ngày, nhiệt độ của ngày dự báo, hay nhiệt độ, phụ tải 24h ngày trước ngày dự báo.( Hình 3.6)

+ Tiếp theo ấn vào nút “ Ket qua” để có được kết quả dự báo như Hình 3.7

Hình 3.5 Giao diện dữ liệu đầu vào

- 65 - Trong đó:

+ Đường gạch đứt màu đỏ là đồ thị phụ tải thực tế ngày dự báo + Đường nét liền màu xanh là đồ thị phụ tải dự báo

+ Trong phần kết quả ta có kết quả phụ tải 24h dự báo và phụ tải 24h thực tế, sai số APE cho từng giờ và sai số trung bình MAPE cho 24h.

+ Khi ấn nút “Dang bang” sẽ cho ra kết quả theo dạng bảng như Hình 3.8

- 66 -

3.1.4 Các mã lệnh khởi tạo mạng nơron

Để xây dựng phần mềm trong luận văn này tôi sử dụng công cụ Matlab GUIDE cùng các lệnh để mô phỏng mạng nơ ron:

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

Vì các thông số tôi thu thập được lưu vào trong file excel nên từ Matlab ta phải dùng lệnh :

Num=xlsread(filename,sheet,‟range‟) Trong đó: Num là mảng dữ liệu cần tạo

+ Filename là tên file excel chứa dữ liệu ( tên file viết liền không dấu)

Một phần của tài liệu Ứng dụng mạng nơron nhân tạo dự báo đồ thị phụ tải ngắn hạn hệ thống (Trang 49)