ĐẠI HỌC CÔNG NGHIỆP TP HCM KHOA CÔNG NGHỆ ĐIỆN KHÓA LUẬN TỐT NGHIỆP TÌM HIỂU BÀI TOÁN PHÂN BỐ CÔNG SUẤT VÀ ÁP DỤNG CHO HỆ THỐNG ĐIỆN MIỀN NAM NĂM 2017 SINH VIÊN NGUYỄN HỮU THÔNG MSSV 14020141 NGUYỄN CHÁNH THÀNH MSSV 14033711 LỚP DHDI10B GVHD TS NGUYỄN TRUNG NHÂN TP HCM, NĂM 2018 Báo cáo tốt nghiệp năm 2018 Nguyễn Hữu Thông Nguyễn Chánh Thành I PHIẾU GIAO ĐỀ TÀI KHÓA LUẬN TỐT NGHIỆP 1 Họ và tên sinh viên nhóm sinh viên được giao đề tài NGUYỄN HỮU THÔNG MSSV 14020141 NGUYỄN CHÁNH THÀNH MSSV 14033.
GUIDE LÀ GÌ?
GUI (Giao diện người dùng đồ họa) là một loại giao diện cho phép người dùng tương tác với chương trình thông qua các thanh công cụ được lập trình sẵn Mỗi chương trình có giao diện riêng, được thiết kế để thực hiện các chức năng cụ thể và hỗ trợ giao tiếp hiệu quả giữa người dùng và phần mềm.
- ứ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++
Giao diện người dùng (GUI) bao gồm các chương trình hỗ trợ thực hiện phép toán logic, mô phỏng không gian 2D và 3D, hiển thị dữ liệu và liên kết đa phương tiện Nó tương tác với người dùng thông qua hình ảnh và các nút nhấn để thực thi các chức năng.
Hầu hết giao diện người dùng đồ họa (GUI) chỉ thực hiện các lệnh từ người dùng thông qua các tương tác của họ với giao diện, cho phép người sử dụng không cần hiểu cấu trúc chương trình mà vẫn có thể thực hiện các tác vụ GUI hoạt động thông qua các hàm CALLBACK, khi người dùng tương tác với giao diện bằng nhiều cách khác nhau, hàm CALLBACK sẽ được kích hoạt để thực thi các lệnh.
BẮT ĐẦU VỚI GUI
- Có 2 phương pháp để lập trình GUI:
Cách đơn giản nhất để lập trình trong Matlab là sử dụng công cụ có sẵn trong giao diện người dùng (GUI) Phương pháp này dễ thực hiện và tự động tạo ra các hàm FUNCTION, giúp người dùng tiết kiệm thời gian và công sức.
Một phương pháp khác để lập trình từ siêu tệp Mfile là sử dụng các hàm FUNCTION do lập trình viên tự viết Phương pháp này mang lại tính tùy biến cao, nhưng cũng đòi hỏi lập trình viên phải có kiến thức sâu và trình độ chuyên môn vững vàng.
Trong bài viết này, chúng ta sẽ thực hiện những bài tập đơn giản về giao diện bằng cách sử dụng các công cụ hỗ trợ sẵn có trong Matlab để lập trình giao diện một cách hiệu quả.
- Khi thao tác trên giao diện chúng ta không thể thay đổi các hàm trong nó.
CÁC BƯỚC CẦN THỰC HIỆN TRƯỚC KHI BẮT ĐẦU
- Trước tiên để bắt đầu lập trình ta cần phải xác định mục đích của chương trình là gì?
- Sau đó tiến hành xác định các bước thực hiện để mô phỏng giao diện người dùng sao cho hợp lí và chính xác
- Bước cuối cùng là viết chương trình và thực thi
- Sơ đồ sau đây mô phỏng trình tự thực hiện với GUI:
Khi bắt đầu với giao diện người dùng đồ họa (GUI), hệ thống tự động tạo mã tập tin được thực thi thông qua các hàm Callback function GUI tương tác với các ký tự mà người dùng nhập, hoạt động tương tự như các lệnh thực thi trong Comment Windows Hình 1.1 minh họa sơ đồ khối mô tả quá trình hoạt động của GUI khi người dùng thao tác trên giao diện.
- Tất cả các hàm callback thực thi những lệnh chứa trong nó
- Chúng ta nên sử dụng chức năng HELP của Matlab để tìm hiểu thêm tất cả cách hàm thực thi trong GUI, cách tạo và thao tác với GUI
THAO TÁC VỚI GUI 3_Toc515878871
- 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 màn hình như sau:
- Ta có các lựa chọn sau:
Blank GUI (Default): Hộp thoại GUI uống không có một điều khiển uicontrol nào cả
GUI with Uicontrols: Hộp thoại GUI với một vài uicontrol như button,…Chương trình có thể chạy ngay
GUI with Axes and Menu: Hộp thoại GUI với một uicontrol axes và button, các menu để hiển thị đồ thị
Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No
Open Exiting GUI: Để mở 1 file có sẵn
- Nhấp Blank GUI (Default) chọn OK để tạo một giao diện bắt đầu với giao diện trống, ta đuợc hình ảnh giao diện trong GUI như sau:
Mô tả chức năng giao diện GUI
- 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
Hình 1.4: Thanh công cụ GUI
- Mô tả chức năng của các công cụ cơ bản :
Bảng 1.1: Mô tả chức năng của các công cụ cơ bản
Biên tập viên bố cục cho phép người dùng chọn các thành phần từ bảng thành phần, trình bày và sắp xếp chúng trong các khu vực bố trí Để tùy chỉnh tên các thành phần, người dùng có thể truy cập vào File => Preferences.
Align Objects Dùng để sắp xếp các đối tượng điều khiển
Menu Editor Tạo menu cho giao diện
Tab Order Editor Thiết lập các tab và sắp xếp thứ tự của các thành phần trong bố trí của bạn
Toolbar Editor Thanh công cụ tạo ra có chứa các nút bấm được xác định trước và tùy chỉnh và chuyển đổi nút
Editor Hiển t h ị , trong trình soạn thảo mặc định của bạn , các tập tin mã kết hợp với giao diện đồ họa M-file editor Mở cửa sổ M-file
Property Inspector cho phép bạn thiết lập các thuộc tính của các đối tượng điều khiển, cung cấp danh sách đầy đủ các thuộc tính có thể điều chỉnh và hiển thị giá trị hiện tại của chúng.
Object Browser Hiển thị một danh sách phân cấp của các đối tượng trong giao diện đồ họa
Run Lưu và chạy giao diện hiện tại
Resize box Tùy chỉnh kích thước giao diện
Position Readouts Liên tục hiển thị vị trí con trỏ chuột và vị trí của các đối tượng được chọn
- 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 để
Radio Button là một loại nút giống như Check Box, nhưng được sử dụng để tạo ra sự lựa chọn duy nhất trong một nhóm Khi người dùng chọn một ô, tất cả các ô khác trong nhóm sẽ tự động bị bỏ chọn.
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 callback hoặc được sử dụng thông thường để ghi nhãn cho các biểu tượng, và người dùng không có khả năng thay đổi nội dung này.
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
Nút Toggle Button là loại nút nhấn có hai trạng thái điều khiển Khi người dùng nhấn chuột, nút sẽ giữ lại và thực thi lệnh Khi nhấn chuột lần thứ hai, nút sẽ nhả ra, đồng nghĩa với việc hủy bỏ lệnh đã thực thi trước đó.
Table : tạo ra một bảng tương tự trong Excel
Axes là giao diện đồ họa hiển thị hình ảnh với nhiều thuộc tính, bao gồm không gian 2D với các trục đứng và ngang, cùng với khả năng 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 nút hoặc các chương trình liên quan đến nhau trong Active.
Giới thiệu hộp thoại INSPECTER
- Một số thuộc tính trong INSPECTOR:
Bảng 1.2: Một số thuộc tính trong INSPECTOR
B ackgroundColor Màu nền của đối tượng
BeingDeleted Đối tượng đã được xóa
BusyAction Callback thường xuyên gián đoạn
ButtonDownFcn Nút nhấn Callback thường xuyên
CData Hình ảnh màu thật hiển thị trên điều khiển
Callback Điều khiển hoạt động
Clipping Thuộc tính này không có tác dụng trên các đối tượng điều khiển
CreateFcn Thường xuyên thực hiện Callback trong quá trình tạo đối tượng
DeleteFcn Thường xuyên thực hiện Callback trong quá trình xóa đối tượng
Enable Kích hoạt hoặc vô hiệu hóa các đối tượng điều khiến
Extent Vị trí hình chữ nhật (chỉ đọc)
FontUnits Đơn vị kích thước font chữ
HandleVisibility Cho dù xử lý có thể truy cập từ dòng lệnh và ảnh minh hoạ
HitTest Lựa chọn bằng cách click chuột Thuộc tính này không có tác dụng trên các đối tượng điều khiển
Horizontal Alignment Căn ngang của chuỗi nhãn
SliderStep Chế độ Callback gián đoạn thường xuyên
KeyPressFcn Nhấn phím Callback thường xuyên
ListboxTop Chỉ số trên hầu hết các chuỗi hiển thị trong hộp danh sách
Max Giá trị lớn nhất (phụ thuộc vào đối tượng điều khiển)
Min Giá trị nhỏ nhất (phụ thuộc vào đối tượng điều khiển)
Position Kích thước và vị trí của đối tưỡng điều khiển
SliderStep Kích thước bước nhảy của thanh trượt
String Nhãn của các đối tượng điều khiển, các mục hộp danh sách, lựa chọn trình đơn pop-up
Style Kiểu của đối tượng điều khiển
Tag Dùng để phân biệt giữa các đối tượng điều khiển
TooltipString Tạo tip cho đối tượng điều khiển
UIContextMenu Kết họp một trình đơn ngữ cảnh với đối tượng điều khiển Units Đơn vị đo lường
UserData Dữ liệu liên kết với đối tượng điều khiển
Value Giá trị hiện thời của đối tượng điều khiển
Visible Điều khiển thuộc tính nhìn thấy của các đối tượng.
Một vài chức năng mở rộng
- Chú ý, để tạo sự thẳng hàng, cột của các hộp thoại cho đẹp mắt ta làm như sau:
Nhấn giữ phím Ctrl và nhập vào các hộp thoại muốn chỉnh sửa, trên Menu chọn Align Objects Hộp thoại Align hiện ra như sau :
Hình 1.6: Hộp thoại Align Objects
Trong hộp thoại, bạn có thể điều chỉnh các nút và nhóm nút để chúng thẳng hàng, thẳng cột và phân bố đều Sau khi hoàn tất việc căn chỉnh, hãy nhấn nút Apply để lưu lại các thay đổi.
- Bây giờ ta thiết lập thuộc tính chung cho giao diện (toàn bộ vùng thiết kế hay nền giao diện) :
Nhấp đúp chuột vào bất kỳ vị trí nào trên nền giao diện để mở hộp thoại Inspector, hoặc bạn có thể chọn từ menu View -> Property Inspector để hiển thị hộp thoại này.
Thiết lập Tag là “exit”
- Tiếp tục tùy chọn nâng cao , vào Menu Tools => GUI Options
Trong hộp thoại Resize behavior, hãy chọn tùy chọn thứ hai (Proportional) để cho phép người dùng thay đổi kích thước giao diện Lựa chọn này sẽ tự động điều chỉnh kích thước của các đối tượng sao cho phù hợp với nền giao diện Nhấn OK để lưu lại các thay đổi.
CÁC PHƯƠNG PHÁP TÍNH PHÂN BỐ TRÀO LƯU CÔNG SUẤT
GIỚI THIỆU
Phân bố trào lưu công suất là quá trình xác định dòng công suất trên các nhánh của mạng điện tại một thời điểm cụ thể Nghiệm của bài toán này là nghiệm gần đúng, đáp ứng các điều kiện sai số đã được xác định Kết quả của phân bố công suất cung cấp thông tin về điện áp và góc pha tại các nút, cường độ dòng điện qua dây dẫn, máy biến áp, cũng như tổn thất công suất trong hệ thống.
Hệ phương trình mô tả hệ thống điện là hệ phi tuyến, nên việc giải quyết yêu cầu dựa vào quá trình lặp Có nhiều phương pháp giải lặp khác nhau, và trong chương này sẽ giới thiệu các phương pháp giải bài toán phân bố trào lưu công suất Tuy nhiên, để bài toán hội tụ, các tham số ban đầu cần phải thỏa mãn các ràng buộc vật lý nhất định Tốc độ hội tụ và thời gian tính lặp của các phương pháp cũng có sự khác biệt.
PHƯƠNG PHÁP GAUSS –ZIEDEL
Phương pháp Gauss-Zeidel là một kỹ thuật lặp được phát triển dựa trên phương trình dòng nút, nhằm tính toán điện áp Phương pháp này áp dụng công thức lặp Gauss kết hợp với hệ số Ziedel để đạt được độ chính xác cao trong các phép tính.
2.2.2 Thành lập công thức tính
Để giải bài toán phân bố công suất bằng phương pháp GAUSS - ZIEDEL, chúng ta cần xem xét các trường hợp thường gặp trong hệ thống điện Trường hợp đầu tiên là các thanh góp độc lập đều là thanh góp PQ Tiếp theo, chúng ta sẽ xem xét loại thanh góp PU Cuối cùng, việc điều chỉnh điện áp tại các nút sẽ được thực hiện bằng cách sử dụng máy biến áp điều chỉnh.
Hệ thống bao gồm n thanh góp PQ được đánh số từ 1 đến n, cùng với một thanh góp cân bằng (nút chuẩn) được đánh số n+1, có điện áp được cung cấp trước Công suất tại nút thứ i được xác định dựa trên các thông số của hệ thống.
(2.1) theo công thức của định luật Ohm ta có :
Ta chọn các giá trị ban đầu U i ( 0 ) , và thay vào công thức (2.4) Sự thay thế điện áp
U được thưc hiện trong mỗi phép lặp, tức các điện áp thay thế ở công thức (2.4) là các giá trị mới nhất của nút tương ứng:
Ta có thể định nghĩa: ii i i i Y jQ
Bây giờ tại bước lặp thứ r+1 :
Quá trình lặp được tiếp tục đến khi sự thay đổi biên độ điện áp đối với tất cả
U i r của các thanh góp giữa hai lần lặp liên tiếp nhỏ hơn một giá trị cho phép nào đó:
U i ( r 1 ) U i ( r 1 ) U i ( r ) i =1, 2, , n (2.8) Ngoài ra ta kiểm tra : max min i i i U U
U i =1, 2, , n Nếu không, ta lấy cố định U i tại một giá trị như sau : i min
U (nếu U i U i min ) hoặc U i max (nếu U i U i max )
Dựa vào yêu cầu của bài toán, ta cũng có thể kiểm tra : nếu i k i k max (i =1, 2, , n; k=1, 2, , n ; i k)
Xét đến thanh góp PU :
Tại nút PU : P và U đã biết còn Q, chưa biết cần xác định Vì vậy, giá trị của
Q và được tính trong mỗi bước lặp thông qua các phương trình nút thích hợp Giả sử nút thứ i là nút PU :
Giá trị Qi mới có được từ công thức trên bằng việc thay thế hầu hết giá trị điện áp mới bên phải Bước lặp r+1 có thể viết :
Giá trị mới của i có được từ công thức (2.7) :
Do các giới hạn vật lý của công suất phản kháng Q, công suất tải tại bất kỳ thanh góp nào phải nằm trong khoảng Qmin đến Qmax Nếu trong quá trình lặp, công suất Q tại bất kỳ thanh góp nào vượt ra ngoài giới hạn này, nó sẽ được giữ cố định.
Qmin hoặc Qmax và điện áp thanh góp bị thay đổi, bây giờ thanh góp được coi như một thanh góp PQ
Tức là : nếu Q i ( r 1 ) Q i min ta cho Q i ( r 1 ) Q i min hoặc nếu Q i ( r 1 ) Q i max ta cho max
Q và xem như thanh góp i là một thanh góp PQ Ta tính A i ( r 1 ) và giá trị điện áp đặt mới U đặt i U i ( r 1 ) từ các công thức (2.7) và (2.13) tương ứng
Hình 2.1: Lưu đồ giải thuật phương pháp Gaus-Zeidel
BẮT ĐẦU Đọc dữ liệu:
2 Thông số nút : P và Q (nút PQ)
3 Độ lệch cho phép epsilon 1 Thành lập Y NÚT
3.Tính A i với nút i là nút PQ Đặt giá trị ban đầu U ( 0 ) Đặt lần thứ r=0 Đặt độ lệch cực đại i