Đề tài Viết chương trình MATLAB tính phân bố công suất và điện áp cho mạng điện phân phối

MỤC LỤC

A. MỞ ĐẦU 1

1. Giới thiệu chung 2

2. Mục đích và phạm vi nghiên cứu 3

3. Kết cấu đề tài 3

B. NỘI DUNG 4

CHƯƠNG 1. TỔNG QUAN MATLAB 5

1.1. Giao diện của chương trình 6

1.2. Các phép toán – tên biến – các hàm cơ bản 7

1.2.1. Các phép toán 7

1.2.2. Cách đặt tên biến 7

1.2.3. Điều khiển vào ra 8

1.2.4. Một số hàm toán học cơ bản 8

1.3. Số phức trong Matlab 8

1.3.1. Nhập số phức 8

1.3.2. Các phép toán cơ bản với số phức 8

1.4. Ma trận và ứng dụng 9

1.4.1. Ma trận 9

1.4.2. Các phép toán với ma trận trong Matlab 10

1.4.3. Ứng dụng ma trận vào giải hệ phương trình 10

1.5. Cấu trúc điều kiện 13

1.5.1. Cấu trúc if - end 13

1.5.2. Cấu trúc if - elseif - else - end 14

1.6. Cấu trúc lặp 15

1.6.1. Cấu trúc for - end 15

1.6.2. Cấu trúc while - end 16

1.6.3. Cấu trúc switch case 17

1.7. Đồ họa 2D trong Matlab 17

1.7.1. Lệnh vẽ 17

1.7.2. Đặt tả kiểu đường vẽ 17

1.7.3. Đặt tả kích thước, màu của đường vẽ, điểm 18

1.7.4. Thêm đường vẽ vào đồ thị 18

1.7.5. Đặt tả các thông số trục 18

1.8. Giao diện đồ họa GUIDE trong MATLAB 19

1.9. Liên kết giữa MATLAB và MICROSORT EXCEl 22

1.9.1. Các tiện ích của liên kết 23

1.9.2. Chuyển dữ liệu từ Excel sang Matlab 23

1.9.3. Chuyển dữ liệu từ Matlab sang Excel 25

CHƯƠNG 2: PHƯƠNG PHÁP TÍNH PHÂN BỐ CÔNG SUẤT CHO

MẠNG ĐIỆN PHÂN PHỐI 27

2.1. Mô hình nút của lưới điện 28

2.2. Các phương pháp giải tích lưới điện 33

2.2.1. Phương pháp lặp GAUSS - SEIDEL (GS) 33

2.2.1.1. Giải ph.trình bằng phương pháp lặp GS 33

2.2.1.2. Giải hệ ph.trình bằng phương pháp lặp GS 34

2.2.1.3. Áp dụng GS vào giải tích lưới điện 35

2.2.1.4. Mô hình hóa phương pháp GS giải tích lưới điện 39

2.2.2. Phương pháp lặp NEWTON-RAPSHON (NR) 40

2.2.1.1. Giải ph.trình bằng phương pháp lặp NR 40

2.2.1.2. Giải hệ ph.trình bằng phương pháp lặp NR 41

2.2.1.3. Áp dụng NR vào giải tích lưới điện 43

2.2.1.4. Mô hình hóa phương pháp NR giải tích lưới điện. 47

CHƯƠNG 3. VIẾT CHƯƠNG TRÌNH MATLAB TÍNH PHÂN BỐ

CÔNG SUẤT VÀ ĐIỆN ÁP CHO MẠNG ĐIỆN PHÂN PHỐI 48

3.1. Giới thiệu khái quát về chương trình 49

3.2. Chương trình con tính phân bố công suất và điện áp cho mạng điện

phân phối viết theo phương pháp GS 54

3.2.1. Giới thiệu khái quát về chương trình con viết theo phương pháp GS 54

3.2.2. Các chương trình con trong chương trình tính phân bố công suất và điện áp viết theo phương pháp GS 55

3.2.2.1. Chương trình con tạo ma trận Ybus 55

3.2.2.2. Chương trình con tính điện áp các nút tải 56

3.2.2.3. Chương trình con tính CSPK và điện áp nút PV 57

3.3. Chương trình con tính phân bố công suất và điện áp cho mạng điện

phân phối viết theo phương pháp NR 58

3.3.1. Giới thiệu khái quát về chương trình con viết theo phương pháp NR 58

3.3.2. Các chương trình con trong chương trình tính phân bố công suất và điện áp viết theo phương pháp NR 59

3.3.2.1. Chương trình con xác nhận dấu của công suất tại các nút PQ và các nút PV 59

3.3.2.2. Chương trình con tính độ lệch công suất 60

3.3.2.3. Chương trình con thành lập ma trận Jacobi 61

3.4. Chương trình con chứa giao diện điều khiển 67

3.5. Xuất kết quả tính toán PBCS và điện áp từ MATLAB sang EXCEL 67

3.6. Sử dụng chương trình tính phân bố công suất và điện áp cho mạng

điện phân phối có 21 nút 69

3.7. Đặc điểm phương pháp và áp dụng cho bài toán giải tích lưới điện 73

CHƯƠNG 4. ỨNG DỤNG CHƯƠNG TRÌNH ĐỂ TÍNH PHÂN BỐ

CÔNG SUẤT VÀ ĐIỆN ÁP CHO MẠNG ĐIỆN THỰC TẾ 74

4.1. Tổng quan về mạng điện tính toán 75

4.2. Nhận xét kết quả tính toán 76

4.3. Nhận xét phương pháp tính toán 77

C. KẾT LUẬN 79

Tài liệu tham khảo 82

Phụ lục 83

 

 

doc21 trang | Chia sẻ: lethao | Lượt xem: 5862 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đề tài Viết chương trình MATLAB tính phân bố công suất và điện áp cho mạng điện phân phối, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 1 TỔNG QUAN MATLAB Matlab (Matrix laboratory) là chương trình lập trình ứng dụng được sử dụng trong nhiều lĩnh vực như điện, điện tử, điều khiển tự động…Matlab có thể giải quyết được nhiều bài toán đặt biệt là các bài toán về ma trận. 1.1. GIAO DIỆN CỦA CHƯƠNG TRÌNH Các cửa sổ làm việc chính của Matlab gồm có: Help – Demo Cửa sổ Current Directory Mfile Cửa sổ Command History Cửa sổ Command Windown Hình 1.1. Các cửa sổ làm việc chính của Matlab Command windown: cửa sổ để nhập các lệnh và dữ liệu, đồng thời là nơi xuất các kết quả tính toán. Command history: cửa sổ lưu trữ các lệnh đã thực thi cùng với thời gian sử dụng. Current directory: cho biết các thư mục đang lưu trữ. Help (demo): trợ giúp thông tin về phần mềm. Mfile: cửa sổ để viết các lệnh lập trình, có phần mở rộng là file.m. Hình 1.2. Cửa sổ Mfile 1.2. CÁC PHÉP TOÁN – TÊN BIẾN – CÁC HÀM CƠ BẢN 1.2.1.Các phép toán Các phép toán đại số: +, -, *,^, /, \ (chia trái), ' phép chuyển vị ma trận hay liên hợp phức. Các toán tử quan hệ: , >=, == (bằng) , =~ (khác). Các toán tử logic: & (and), | (or), ~ (not). Các hằng: pi, j, inf (vô cùng), NaN (không xác định). 1.2.2. Cách đặt tên biến Matlab có những quy định về tên biến: tên biến phải bắt đầu bằng chữ và không chứa các kí tự đặt biệt như @, %, /,…Ngoài ra Matlab còn phân biệt chữ hoa với chữ thường. 1.2.3. Điều khiển vào ra Các lệnh sau dùng để đưa số liệu vào và ra: Nhập dữ liệu : input (cú pháp: tên biến = input(‘chuổi hiển thị’)). Hiển thị nội dung của mảng hay chuổi : disp (cú pháp disp(tên biến hoặc tên chuổi cần hiển thị). Điều khiển xuất kết quả tính toán : format Lưu dữ liệu : save (cú pháp: save ‘tên file’ ‘tên biến’ ‘kiểu định dạng’). 1.2.4. Một số hàm toán học cơ bản Hàm căn bậc hai của x :sqrt(x) Hàm sin của x :sin(x) Hàm cos của x :cos(x) Hàm chuyển từ chuổi sang số : str2num(x) Hàm chuyển từ số sang chuổi : num2str(x) Trong các hàm lượng giác trên thì biến x có đơn vị là radian nếu x có đơn vị là độ thì ta phải đổi sang radian. 1.3. SỐ PHỨC TRONG MATLAB 1.3.1. Nhập số phức Để nhập số phức z=3+j4 ta có thể nhập từ của sổ Command Windown hoặc từ Mfile: Nhập dưới dạng đại số: >> z=3+j*4 Nhập dưới dạng cực: >> z=5*exp(j*45*pi/180) 1.3.2. Các phép toán cơ bản với số phức Lấy môđun số phức z :abs(z) Lấy acgumen số phức z :angle(z) Lấy phần thực số phức z :real(z) Lấy phần ảo số phức z :imag(z) Số phức liên hợp :conj(z) Các phép toán khác như +, -, *, / cũng giống như số thực. 1.4. MA TRẬN VÀ ỨNG DỤNG 1.4.1. Ma trận Ma trận là một mảng các số liệu gồm có m hàng và n cột: Có các cách nhập ma trận: . Nhập ma trận từ bàn phím (liệt kê). . Nhập từ file dữ liệu. . Tạo ma trận từ các hàm có sẵn, các hàm tự tạo. Nhập ma trận A theo kiểu liệt kê: >> A=[1 2 3 4; 5 6 7 8 9]; Nhập ma trận nhờ các hàm tự tạo: >>A=zeros(m,n) (ma trận A gồm toàn các phần tử 0, có m hàng n cột). >>A=ones(m,n) (ma trận A gồm toàn các phần tử 1) Địa chỉ mảng: Để truy xuất đến phần tử nằm ở hàng i cột j của ma trận A ta dùng lệnh: >>A(i,j) >>A(:,i) (Truy xuất tất cả các phần tử của cột i) >>A(i,:) (Truy xuất tất cả các phần tử của hàng i) 1.4.2 Các phép toán với ma trận trong Matlab Phép cộng trừ hai ma trận: >>X=A+B (X=A-B). Các ma trận A, B phải cùng kích thước. Phép nhân hai ma trận: >>X=A*B. Số cột của A phải bằng với số hàng của B. Nhân theo mảng: >>X=A.*B. Khi nhân theo mảng thì A, B phải cùng kích thước. Với phép nhân này thì các phần tử của hai ma trận này được nhân tương ứng với nhau. Phép chia ma trận: Nếu X*B=A thì X=A/B Nếu A*X=B thì X=A\B (phép chia trái). Chia theo mảng: >>X=A./B Phép lũy thừa ma trận: >>X=A^p (p là một số nguyên dương) . Ma trận X có được bằng cách nhân các ma trận A với nhau p lần. >>X=A.^B Phép nghịch đảo ma trận: >>X=inv(A) 1.4.3. Ứng dụng ma trận vào giải hệ phương trình Nghiệm của hệ phương trình tuyến tính có thể xác định thông qua các phép toán ma trận. Xét hệ: (1.1) Hệ (1.1) biểu diển dưới dạng ma trận: hay A.X=B (1.2) Với A là ma trận hệ số, B và X là các vectơ cột. Nhân cả hai vế của hệ (1.2) với A-1 ta được: A-1.A.X = A-1.B hay X = A-1.B Lúc này ta sử dụng hàm: inv(A) để xác định ma trận nghịch đảo A-1 , như vậy nghiệm của hệ là: >>X=inv(A)*B Tuy nhiên khi det(A)=0 việc xác định ma trận nghịch đảo A-1 không chính xác. Khi đó Matlab sẽ giải hệ (1.2) bằng một hàm được lập trình sẵn và cho kết quả tin cậy hơn: >>X=A\B Giải hệ phương trình tuyến tính còn được ứng dụng để giải mạch điện thông qua phương pháp xây dựng ma trận tổng dẫn nút: Y. U=J Y là ma trận tổng dẫn của mạch điện, có dạng: Yii: tổng dẫn riêng của nút i, bằng tổng các tổng dẫn nối vào nút i. Yij: tổng dẫn tương hổ giữa nút i và j, bằng tổng các tổng dẫn nối giữa hai nút i và j nhưng ngược dấu, n = (số nút) -1. Trong đó điện thế của một nút bất kì được chọn làm chuẩn. U là vectơ điện thế tại các nút. Trừ thế của nút chọn làm chuẩn, có dạng: J là vec tơ dòng điện bơm vào nút. Trừ dòng bơm vào nút chọn làm chuẩn, có dạng: Giải hệ phương trình Y.U=J ta sẽ tìm được điện thế các nút, khi đã xác định được điện thế các nút ta sẽ tính được dòng điện và công suất chảy qua các nhánh. Việc giải hệ này rất đơn giản với Matlab, ta sử dụng lệnh: >> U=Y\J Hoặc: >> U=inv(Y)*J 1.5. CẤU TRÚC ĐIỀU KIỆN Cấu trúc điều kiện là một cấu trúc cơ bản trong lập trình. 1.5.1. Cấu trúc if-end Cú pháp: if lệnh 1; lệnh 2; ……… lệnh n; end Sơ đồ khối của cấu trúc if – end như hình 1.3: Begin Điều kiện Khối lệnh End đúng Sai Hình 1.3. Sơ đồ khối cấu trúc if-end Khi biểu thức điều kiện đúng thì Matlab thực thi lệnh. Nếu sai thì thực thi các lệnh phía sau end. 1.5.2. Cấu trúc if-elseif-else-end Cú pháp: if ; elseif ; else ; end Sơ đồ khối của cấu trúc if-elseif-else-end như hình 1.4: Begin Điều kiện 1 Điều kiện 2 Khối lệnh 1 Khối lệnh 2 Khối lệnh 3 End Đúng Đúng Sai Sai Hình 1.4. Sơ đồ khối cấu trúc if-elseif-end Nếu điều kiện 1 đúng thì thực hiện khối lệnh 1, nếu sai Matlab sẽ kiểm tra biểu thức điều kiện 2. Nếu điều kiện 2 sai thì Matlab sẽ thực hiện các lệnh nằm trong khối lệnh 3. 1.6. CẤU TRÚC LẶP 1.6.1. Cấu trúc for-end Cú pháp: for =:: ; end Sơ đồ khối của cấu trúc for-end như hình 1.5: Begin k:=csđầu k<=cs cuối Khối lệnh k:=k+bướctăng End đúng sai Hình 1.5. Sơ đồ khối cấu trúc for-end Bước tăng có thể được mặc định bằng 1 hoặc có giá trị dương hay âm nhưng phải phù hợp với giá trị của chỉ số đầu và chỉ số cuối. Phát biểu for-end khi số vòng lặp đã xác định. 1.6.2. Cấu trúc while-end Cú pháp: While ; end Sơ đồ khối như hình 1.6: Begin Điều kiện Khối lệnh End đúng Sai Hình 1.6. Sơ đồ khối cấu trúc while-end Phát biểu while-end khi chưa xác định rõ số vòng lặp, quá trình lặp chỉ kết thúc cùng với điều kiện đi kèm. Nếu điều kiện kiểm tra không rõ ràng thì chương trình có thể không thoát ra được. Trong trường hợp này nhấn tổ hợp phím Ctrl+C để dừng chương trình. 1.6.3. Cấu trúc switch-case Cú pháp: switch case case . . . . . . . . . . . . case otherwise end Nếu giá trị của biểu thức đứng sau switch trùng với giá trị thử i thì Matlab sẽ thực hiện khối lệnh i rồi chuyển sang các lệnh đứng sau end. Trong trường hợp giá trị của biểu thức đứng sau switch không trùng với giá trị thử nào thì Matlab sẽ thực thi các lệnh đứng sau otherwise. 1.7. ĐỒ HỌA 2D TRONG MATLAB 1.7.1. Lệnh vẽ Đồ họa 2D ta dùng lệnh: plot. 1.7.2. Đặc tả kiểu đường vẽ Ta có thể dùng các kiểu đường vẽ khác nhau khi vẽ hình. Ví dụ: vẽ hàm y=x^2. Nguyên tắc : vẽ từng điểm và nối chúng lại với nhau. Lệnh vẽ : >> x=[-4 -3 -2 -1 0 1 2 3 4] %tạo ra mảng x >>y=x.^2 %tạo ra mảng y >>plot(x,y,'--' ) %vẽ bằng đường nét đứt. Các kiểu đường vẽ xác định như sau: Đường liền : - Đường nét đứt : -- Đường chấm chấm: : Đường chấm gạch : -. 1.7.3. Đặc tả kích thước, màu của đường vẽ và kiểu đánh dấu của điểm Kích thước đường vẽ được xác định bằng các hàm: Độ rộng đường thẳng :LineWidth Màu của khối đánh dấu :MarkerFaceColor Màu các cạnh của khối đánh dấu :MarkerEdgeColor Kích thước khối đánh dấu :MarkerSize Màu của đường vẽ xác định bằng các tham số: Red :r Green :g Blule :b Cyan :c Mangeta :m Yellow :y Black :k White :w Kiểu của điểm xác định bằng các tham số: Vòng tròn : o Hình vuông : s Dấu sao : * Điểm : . Ngũ giác : p Chữ thập : x 1.7.4. Thêm đường vẽ vào đồ thị Để thêm đường vẽ vào đồ thị mà vẫn giữu nguyên đồ thị cũ ta dùng lệnh hold on. 1.7.5. Đặt các thông số cho trục Ta có thể quy định giá trị của các trục theo ý riêng. Để thực hiện ta dùng lệnh axis. Cú pháp:axis ([ xmin , xmax , ymin , ymax]) 1.8. GIAO DIỆN ĐỒ HỌA GUIDE TRONG MATLAB GUI cung cấp các công cụ có khả năng liên kết các môi trường tính toán và đồ họa làm tăng tính trực quan và sinh động của vấn đề. Để khởi động GUI, từ của sổ Command Windown ta gõ lệnh guide, khi đó cửa sổ GUI xuất hiện: Hình 1.7. Cửa sổ GUIDE – MATLAB Muốn tạo một GUI ta chọn hộp ‘Create New GUI’. Không gian làm việc xuất hiện: Xem thuộc tính. RUN Các công cụ (đối tượng GUI). Vùng không gian thiết kế. Hình 1.8. Vùng không gian làm việc của GUI. Một số công cụ (đối tượng) của GUI như: . Push button: tạo nút ấn. . Edit text : tạo khung, tại khung này cho phép truy xuất dữ liệu. . Static text : cho phép hiển thị chuổi văn bản. . Popup menu: tạo menu đổ xuống. . Axes: tạo hệ trụ tọa độ, cho phép hiển thị các hình vẽ…. Để xây dựng GUI ta click chuột và kéo các đối tượng cần sử dụng vào vùng không gian thiết kế. Mỗi đối tượng GUI có hai thuộc tính quan trọng: Thuộc tính String: hiển thị một chuổi kiểu văn bản‘text’ ngay trên vị trí đặt đối tượng. Thuộc tính Tag: tên của đối tượng, tên Tag do người lập trình đặt. Sau khi đã xác định thuộc tính cho các đối tượng, ta click RUN để kiểm tra kết quả. Lúc này Matlab sẽ tự động tạo hai file có phần mở rộng là file.m và file.fig. File.m chứa các chương trình con ‘callback’ mà người lập trình sẽ yêu cầu Matlab thực hiện khi click vào đối tượng. File.fig chứa giao diện của GUI vừa tạo ra. Hình 1.9. File.m do chương trình Matlab tạo ra. Hình 1.10. File.fig do người dùng thiết kế 1.9 LIÊN KẾT GIỮA MATLAB VÀ MICROSORFT EXCEL Matlab có khả năng liên kết với các phần mềm: Microsoft Office, C++, Visual Basic... Với Microsoft Ofice 2003, Malab có thể liên kết với Excel thông qua tính năng Excel Link do đó có thể trao đổi dữ liệu (dạng ma trận) qua lại giữ hai phần mềm. Để sử dụng tính năng này cần thiết lập cấu hình Excel Link của phần mềm Excel. Với Matlab tính năng Excel Link chứa trong hộp công cụ Tool Box. Các bước hướng dẫn thiết lập được trình bày khá cụ thể trong thư mục Help (Excel Link) của Matlab. Hình 1.11: Hướng dẫn thiết lập Excel Link tại thư mục HELP của MATLAB 1.9.1. Các tiện ích của liên kết Sau khi thiết lập liên kết, trên thanh công cụ (Tool bars) của Excel xuất hiện các tiện ích. Hình1.12: Các tiện ích của Excel Link – Matlab. Chức năng như sau: . Startmatlab : khởi động Matlab từ Excel. . Putmatrix : đưa ma trận từ bảng tính của Excel vào Matlab. Ma trận đưa vào Matlab phải được đặt tên biến (variable). . Getmatrix : lấy ma trận từ Matlab ra bảng tính Excel. Ma trận lấy ra từ Matlab phải được khai báo đúng tên biến. . Evalstring : chạy các lệnh Matlab. 1.9.2. Chuyển dữ liệu từ Excel sang Matlab: Từ bảng tính Excel ta có các dữ liệu (dạng ma trận) như hình 1.13: Hình 1.13 : Ma trận dữ liệu từ bảng tính Excel. Để đưa dữ liệu vào Matlab trước hết ta đánh dấu (bôi đen) phần dữ liệu cần thực thi, click ‘startmatlab’ để khởi động Matlab, tiếp theo click ‘putmatrix’. Lúc này chương trình yêu cầu ta đặt tên biến cho các dữ liệu này, hộp hội thoại như sau xuất hiện: Hình 1.14: Yêu cầu đặt tên biến (tên ma trận) khi đưa dữ liệu vào Matlab. Ta đặt tên biến là ‘KHOALUAN’ sau đó click OK. Lúc này tại cửa sổ Command Windown của Matlab ta gõ lệnh ‘KHOALUAN’ thì các dữ liệu này sẽ hiện ra màn hình. Hình 1.15: Kết quả chuyển dữ liệu từ bảng tính Excel vào Matlab. 1.9.3. Chuyển dữ liệu từ Matlab sang Excel: Muốn chuyển dữ liệu sang Excel thì biến cần đưa ra phải tồn tại trong Matlab. Chẳng hạn tại Matlab ta có biến ‘DONGDIEN’: Hình 1.16: Dữ liệu ma trận tại phần mềm Matlab Để lấy biến này ra bảng tính Excel ta click vào ‘getmatrix’ trên thanh công cụ của Excel , lúc này chương trình yêu cầu nhập tên biến cần lấy ra bảng tính Excel. Hình 1.17: Yêu cầu khai báo tên biến (tên ma trận) lấy ra từ Matlab Ta nhập vào ‘DONGDIEN’. Và chọn OK, lúc này trên bảng tính Excel sẽ xuất hiện dữ liệu của biến ‘DONGDIEN’ chuyển từ Matlab ra Excel. Hình 1.18: Kết quả chuyển dữ liệu từ Matlab ra bảng tính Excel. Các dữ liệu chuyển ra nằm tại cột C và bắt đầu từ hàng 6 của bảng tính Excel.

Các file đính kèm theo tài liệu này:

  • docCHUONG 1.doc
  • docCHUONG 2.doc
  • docCHUONG 3.doc
  • docCHUONG 4.doc
  • docKET LUAN.doc
  • docMO DAU.doc
  • docMUC LUC.doc
  • docPHU LUC.doc