Dự báo cho các giờ trong ngày : Nghiên cứu sự diễn tiến của điện năng theo các giờ ở TP HCM của những năm gần đây ta nhận thấy điện năng tiêu thụ trong các giờ không những phụ thuộc vào
Trang 1Chương 3:
THIẾT KẾ CHƯƠNG TRÌNH DỰ BÁO PHỤ TẢI BẰNG
MẠNG NEURAL
I LỰA CHỌN VÀ PHÂN TÍCH DỮ LIỆU ĐẦU VÀO
Như đã giới thiệu ở phần một, mạng Neural được ứng dụng vào nhiều lĩnh vực khác nhau, nhưng trong nội dung luận văn này chỉ ứng dụng vào việc dự báo phụ tải ngắn hạn, dài hạn theo hai phương pháp : Chuỗi thời gian và Tương quan
I.1 Phương pháp chuỗi thời gian :
Trong phương pháp này dữ liệu ta chỉ cần đến số liệu đã có trong quá khứ, từ đó ta tìm một quy luật và kéo dài quy luật đó vào tương lai để dự báo Số liệu này được chia làm hai phần: Phần để huấn luyện và phần để kiểm tra
Trong lĩnh vực điện năng, số liệu thường được thể hiện dưới những dạng sau đây
a Dự báo cho các giờ trong ngày :
Nghiên cứu sự diễn tiến của điện năng theo các giờ ở TP HCM của những năm gần đây ta nhận thấy điện năng tiêu thụ trong các giờ không những phụ thuộc vào các giờ trong ngày mà còn phụ thuộc vào rất nhiều yếu tố khác như các ngày trong tuần ( ngày làm việc, ngày nghỉ,…), các tháng trong năm, các mùa ( quý ) trong năm, các năm,… Do đó việc xây dựng một quy luật tổng quát cho sự diễn tiến điện năng theo giờ là hết sức khó khăn và rất phức tạp Trong trường hợp này, để ứng dụng trong dự báo ngắn hạn ta chỉ xây dựng một quy luật trong một khoảng thời
gian xác định nào đó mà thôi Dữ liệu được cho ở dạng bảng như ở bảng 1 - phụ lục
2 đồ thị dạng dữ liệu như hình 3.1
Hình 3.1: Đồ thị dạng dữ liệu
Từ bảng số liệu và đồ thị dạng dữ liệu trên ta nhận thấy:
Dữ liệu là một dạng đường điều hòa, trạng thái sẽ gần như lặp lại ở 7 ngày ( 1 tuần) sau đó, tất nhiên lúc này nó sẽ khác đi Để nâng cao tính chính xác ta xét sự biến đổi sự biến đổi trạng thái của giờ thứ t của ngày quan sát so với các giờ thứ t của những ngày trước đó Như vậy để dự báo giờ thứ t của ngày n ( kí hiệu X (n, t) )
ta cần các số liệu X (n-1, t), X(n-2, t), …X (n-7, t) để tính Mặt khác để cho kết quả chính xác ta cập nhật thêm thông tin của ngày hôm đó bằng cách thêm số liệu của
Trang 2các giờ trước đó như: X(n, t-1), X(n, t-2),… Khi đó số Neural lớp đầu vào có thể là
9, 10, 11, 12, 13…, 30
b Dự báo theo ngày trong tuần : Dữ liệu cũng được cho ở dạng bảng như ở
bảng 3.2
Bảng 3.2: Dữ liệu của các ngày trong tuần
(Số liệu tổng hợp từ tháng 8/2003 – 12/2003 điện lực TPHCM)
Tương tự như số liệu của các giờ trong ngày nhưng trạng thái lặp lại là sau 4 tuần ( 1 tháng) do đó để dự báo cho 1 tuần nào đó thì ta cần số liệu của 4 tuần trước đó Số tuần cần để học ≥ 10 và số noron trong lớp đầu vào sẽ là 5, 6, 7, 8,…, 10
c Dự báo theo các tháng trong năm :
Dữ liệu được trình bày theo mẫu ở bảng 3.3
Trang 3Bảng 3.3: Mẫu số liệu của các tháng trong năm
Các tháng trong năm còn phụ thuộc vào yếu tố mùa, năm Do đó ta xét sự thay đổi của tháng t năm quan sát so với tháng t của những năm trước đó Để dự báo cho các tháng ở năm thứ n, ta chỉ cần số liệu của 3 năm trước đó, số năm cần để học ≥ 5 ,số noron lớp đầu vào là 4, 5, 6, 7, …, 14
dDự báo theo các quý trong năm :
Mẫu dữ liệu trình bày như bảng 3.4
Bảng 3.4: Mẫu dữ liệu của các quý trong một năm
Trường hợp này tương tự như các tháng trong năm
e Dự báo theo năm, quý :
Dữ liệu được cho ở dạng cột như ở bảng 3.5
Bảng 3.5: Số liệu điện của các năm Năm Điện Năng(Mw)
Trang 41998 239636
Để dự báo cho năm thứ t có nhiều cách, thông thường ta lấy thông số của 3 năm trước đó Đối với các quý ta sẽ lấy thông số của 4 quý trước để dự báo cho quý thứ 5 Số mẫu cần để học ≥ 10
I.2 Phương pháp tương quan:
Trong mô hình dự báo tương quan thông số được cho ở bảng 1 Đây là thông số
cơ bản để dự báo phụ tải theo phương pháp dài hạn
Bảng 3.6: Số liệu tương quan
Trang 5Trong đó:
S: Sản lượng điện năng tiêu thụ
GSP: Tốc độ tăng trưởng kinh tế
CPI: Chỉ số giá hàng tiêu dùng
C: Giá điện năng
Đây chỉ là những thông số cơ sở Để có thể đưa vào mạng Neural ta phải qua biến đổi số liệu
Giả sử ta chọn mạng Neural 12 đầu vào X1, X2, X3,…,X12 thì thông số đầu vào có thể được tính như sau:
X1= St là năng lượng tiêu thụ của năm t X2= St-1 là năng lượng tiêu thụ của năm t-1 X3= GSPt tốc độ tăng trưởng kinh tế năm t X4= (GSPt/ (GSPt-1)-1) chỉ số gia tăng tăng trưởng kinh tế năm t so
với năm t-1
X5= CPIt chỉ số giá của hàng tiêu dùng năm t X6= CPIt/(CPIt-1) chỉ số gia tăng của hàng tiêu dùng năm t so với
năm t-1 X7=Ct là giá điện năm t X8= Ct/(Ct-1) chỉ số gia tăng giá điện năm t so với năm t-1 X9=GSP2 * Cos(3.14*GSP)
X10=GSP * C * Cos(3.14*GSP*C) X11=C2 * Cos(3.14*C)
X12=(St-1)2 * Cos(3.14*(St-1))
Yt trị số điện năng năm t Sau khi tính toán ta có được bản sau: Bảng 3.7
Bảng 3.7: Số liệu dự báo tương quan ( đã biến đổi)
Năm Y X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12
1981 4900 0.047 0.042 0.11620 0.0162 0.10870 0.0087 0.11600 0.016 0.01348 0.01347 0.01257 0.00218
1982 5000 0.049 0.047 0.12724 0.0095 0.12077 0.0111 0.13282 0.015 0.01618 0.01688 0.01613 0.00237
1983 5200 0.05 0.049 0.14683 0.0154 0.13333 0.0104 0.15141 0.014 0.02153 0.02218 0.02038 0.00247
1984 5300 0.052 0.05 0.15829 0.0078 0.14266 0.0070 0.15717 0.004 0.02505 0.02480 0.02175 0.00267
1985 6000 0.053 0.052 0.18393 0.0162 0.14801 0.0038 0.16314 0.004 0.03379 0.02987 0.02320 0.00277
1986 6400 0.06 0.053 0.20324 0.0105 0.15985 0.0080 0.18272 0.012 0.04128 0.03688 0.02804 0.00354
1987 6850 0.064 0.06 0.22966 0.0130 0.17583 0.0100 0.19276 0.005 0.05270 0.04384 0.03055 0.00401
1988 7500 0.0685 0.064 0.26411 0.0150 0.18832 0.0071 0.19278 0.000 0.06968 0.05027 0.03056 0.00458
1989 8400 0.075 0.0685 0.30162 0.0142 0.20244 0.0075 0.20626 0.007 0.09088 0.06103 0.03393 0.00547
1990 9200 0.084 0.075 0.33329 0.0105 0.21969 0.0085 0.22276 0.008 0.11102 0.07224 0.03797 0.00681
Trang 61991 9560 0.092 0.084 0.36162 0.0085 0.23063 0.0050 0.22722 0.002 0.13072 0.07945 0.03904 0.00811
1992 9700 0.0956 0.092 0.37861 0.0047 0.23248 0.0008 0.22722 0.000 0.14333 0.08291 0.03904 0.00873
1993 9950 0.097 0.0956 0.39565 0.0045 0.23294 0.0002 0.22722 0.000 0.15652 0.08634 0.03904 0.00898
1994 10500 0.0995 0.097 0.42651 0.0078 0.23783 0.0021 0.22722 0.000 0.18186 0.09246 0.03904 0.00942
1995 11000 0.105 0.0995 0.45722 0.0072 0.24616 0.0035 0.22722 0.000 0.20900 0.09841 0.03904 0.01043
1996 11600 0.11 0.105 0.49380 0.0080 0.25600 0.0040 0.22722 0.000 0.24376 0.10531 0.03904 0.01139
1997 11700 0.116 0.11 0.50861 0.0030 0.25908 0.0012 0.23585 0.004 0.25867 0.11155 0.04106 0.01257
1998 11750 0.117 0.116 0.54930 0.0080 0.26011 0.0004 0.23585 0.000 0.30163 0.11898 0.04106 0.01278
1999 12300 0.1175 0.117 0.56468 0.0028 0.26479 0.0018 0.23585 0.000 0.31885 0.12170 0.04106 0.01288
2000 12800 0.123 0.1175 0.61098 0.0082 0.27088 0.0023 0.23585 0.000 0.37318 0.12960 0.04106 0.01401
II MẠNG NEURAL VÀ GIẢI THUẬT BACKPROPAGATION
II.1 Mạng neural:
Từ những số liệu trên chúng ta sẽ xây dựng mạng Neural ứng dụng dự báo phụ tải Có nhiều mạng khác nhau nhưng ở đây chỉ sử dụng mạng Mutilayer Perceptron Cấu trúc mạng bao gồm ba phần: Input layer (lớp đầu vào), Hidden layer (lớp ẩn) và Output layer (lớp đầu ra), hàm truyền mặc định trong các lớp là hàm tansig, còn lớp đầu ra là hàm Purelin Trong quá trình huấn luyện ta có thể thay đổi sự mặc định này Trong lớp ẩn ta có thể có nhiều lớp và trong mỗi lớp có nhiều phần tử như hình 3.2
Cấu trúc mạng tùy thuộc vào mục đích và số liệu dùng để huấn luyện Trong những trường hợp khác nhau cấu trúc mạng cũng hoàn toàn khác nhau Cấu trúc mạng đôi khi cũng phản ánh tích chính xác của mô hình Do vậy lựa chọn đúng cấu trúc mạng là cần thiết Hiện nay chưa có lí thuyết trong việc lựa chọn cấu trúc mạng cho phù hợp với dữ liệu đầu vào Vì vậy việc lựa chọn chỉ mang tính kinh nghiệm
Hình 3.2
Lớp đầu vào ẩn 1 ẩn 2 ẩn 3 Lớp đầu ra
Y
X 1
X n
Trang 7II.2 Giải thuật Backpropagation:
Đây là giải thuật khá tổng quát trong việc huấn luyện mạng Neural nhiều lớp Giải thuật này hoạt động dựa trên phương pháp cực tiểu hóa sai số Sau mỗi mẫu sai số được truyền ngược về để hiệu chỉnh tập trọng số, Bias sao cho tổng bình phương sai số là cực tiểu
p ,
p , ) N ( p
y
2
1
) N ( p , y đầu ra thực tế của mạng có j neuron và N lớp dj,p đầu ra mong muốn
Các bước thực hiện:
1 Tính các giá trị đầu ra khi đưa các giá trị đầu vào :
neti(n) =∑ − ( n )
ij ) n (
i w
+ Bi (3.7) Trong đó M – Số neuron trong lớp n-1, yi(n-1) = Xij(n) đầu vào thứ i
neuron thứ j lớp thứ n
yi(n) = f(neti(n))(3.8) Trong đó f là hàm truyền
2 Tính δ (N) cho lớp cuối :
δj(N) = (yj(N) - dj) j
j dnet
dy
(3.9) Tính gia số của trọng số lớp N theo công thức, trong đó η là tốc độ dạy 0<η<1:
∆Wij(n) = -η.δj(n) yi(n-1) (3.10) 3.Tính δ(n) , ∆W(n) cho các lớp còn lại n=N-1,…,1
δj(n) =
W k
) n ( jk ) n (
δ∑ + 1 + 1
j
j dnet
dy
(3.11)
∆Wij(n) =-η.δj(n) yi(n-1) (3.12) 4.Hiệu chỉnh giá trị trọng số ,bias
Wij(n) (t) = Wij(n) (t-1) + ∆Wij(n) (t), Bi=Bi+η.δj(n) (3.13)
5 Nếu sai số lớn thì quay về bước 1 Ngược lại thì kết thúc
Thuật toán:
Bước 1 :Nhập các thông số đầu vào :chọn mạng Neural, X, η, Bias, N, W
đầu ra mong muốn D, chọn hàm truyền cho từng lớp
Bước 2 :Dạy mạng
1 Tính Yi
2 Tính sai số E=1/2(Di-Yi)2
3 Tính delta δi=1/2(Di-Yi)*∂f/∂yi
4 Cập nhật trọng số,bias mới
Trang 8∆Wij=η.δi.Yi Wij=Wi + ∆Wij Bij=Bij+η.δij
5 So sánh E và e nếu E > e quay lại 1
6 Lặp lại 1 -> 5 nếu i < N Bước 3 : Dự báo
Nhập các đầu vào để dự báo Bước 4 : Dừng khi không còn dự báo
Trong đó:
Xi các giá trị đầu vào
N Số mẫu cần cho việc huấn luyện
W Bộ trong số, B bộ Bias
n Tốc độ dạy
D Đầu ra mong muốn
e Sai số cho phép huấn luyện
E Sai số tính được
δ(delta) Hệ số hiệu chỉnh W, B
yi Đầu ra của Neural i
Tốc độ dạy n: Lựa chọn đúng tốc độ dạy là việc làm rất quan trọng Khi tốc độ
dạy lớn thì kết quả đạt được nhanh nhưng có thể xảy ra trường hợp cực trị tìm được không phải là cực trị toàn cục mà là cực trị cuc bộ và dẫn đến đi sai hướng Mặt khác khi tốc độ dạy quá nhỏ thì dễ tìm đươc cực trị toàn cục nhưng thời gian tính toán lớn Vì thế ta lựa chọn tốc độ dạy vừa phải trong khoảng từ (0.1->1) Trên thực tế việc lựa chọn tốc độ dạy phụ thuộc vào từng bài toán cụ thể và được lựa chọn bằng kinh nghiệm Ngoài ra để tránh việc rơi vào cực tiểu cục bộ, khi chúng ta có được bộ giá trị trọng số, Bias ứng với một sai số nào đó thì có thể tăng tốc độ dạy để gradient bắt đầu tìm điểm mới ta lặp đi lặp lại quá trình này mà mạng đều về cùng một trạng thái thì có thể nói rằng đã tìm thấy cực tiểu toàn cục
Hàm truyền: Đây cũng là thông số rất quan trọng và việc lựa chọn hàm truyền
cũng mang tính kinh nghiệm Lựa chọn hàm truyền phù hợp với dữ liệu, cấu trúc
mạng sẽ làm cho quá trình lặp nhanh đi đến kết quả mong muốn
Sai số cho phép e: Trên lý thuyết, quá trình lặp sẽ ngừng khi sai số bằng 0 khi
đó số lần lặp sẽ tiến đến vô cùng Thông số này cho phép quá trình lặp sẽ ngừng khi đạt đến một giá trị nào đó
Quá trình dự báo: Sau khi đã tính toán tìm ra ma trận trọng số với sai số đạt yêu cầu, chúng ta tiến hành quá trình dự báo Dự báo là quá trình dựa vào các thông số tìm được (ma trận trọng số , bias) để từ đầu vào X ta tìm các giá trị đầu ra Y tương ứng
Trang 9III TRÌNH TỰ THIẾT KẾ:
- Lựa chọn và phân tích dữ liệu đầu vào
- Lựa chọn cấu trúc mạng: bao gồm lựa chọn số lớp Neural, số Neural trong lớp, phụ thuộc vào dữ liệu đầu vào, đầu ra mong muốn, hàm truyền, Bias
- Dạy mạng Neural
- Kiểm tra xem mạng Neural đã học được chưa
- Ứng dụng kết quả thu được vào dự báo
Sơ đồ giải thuật và sơ đồ khối thiết kế
Sơ đồ giải thuật
Trang 10ecp : sai số cho phép X: Dữ liệu đầu vào D: Đầu ra thực tế
η :tốc độ dạy N: Số mẫu dữ liệu W: Trọng số
n : Số lần đã lặp E: Sai số đạt được
Sơ đồ khối:
Nhập X, D, 0 , e cp , N, W, B,N cp Chọn hàm truyền huấn luyện
Tính đầu ra Y i =f(net i )
Tính tổng sai số:
E = E + 1/2( Di – Yi)2
Tính δo, δi : δo = (Di – Yi).∂(yi)/∂(neti)
δn,i = (Σδn+1,k.Wn+1,j,k) ∂(yn,k)/ ∂(netn,k)
Cập nhật trọng số,Bias
∆Wn,i,j = η.δn,i.Yn,i
Wn,i,j = Wn,i,j + ∆Wn,i,j Bn,i = Bn,i + η.δn,i
End E< ecp
i =N
False False
n > Ncp
False
Trang 11Lựa chọn và phân tích dữ liệu huấn luyện
Lựa chọn phương pháp
dự báo
Nhập thông số mạng,Dữ liệu huấn luyện
Huấn luyện mạng
Kiểm tra mạng Dự báo
Xuất kết quả
Kết thúc
Nhập thông số
dự báo Lưu thông số
huấn luyện