˘ ˇˇ optimal power flow in electrical power system

122
Optimal Power Flow in Electrical Power System 2551

Upload: others

Post on 20-Jan-2022

12 views

Category:

Documents


0 download

TRANSCRIPT

������������� �������������������������������� ��� Optimal Power Flow in Electrical Power System

.��/0� ����1�23 2/4��563 ���721��

��7����7.�83�9:��;���1���<=������2<�5�>������?>���7���1721����2��>���6@7> 4�A17B�1721��������� A6�1721����2��>�3

���17C�����?�.� �D���2<�5� 2551

Optimal Power Flow in Electrical Power System

PORNSUDA ARANWONG

SUPALUK KAMOLLERTWARA

A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF REQUIREMENT

FOR THE DEGREE OF BACHELOR OF ENGINEERING

DEPARTMENT OF ELECTRICAL ENGINEERING

BURAPHA UNIVERSITY 2008

i

���������� ��� ����� ��������������������� ����������������������

!� �����"���#!� ����"�$

�����"$#%���&' ������$"��

��(���)*+��,�&� -./0�"�$��1��(��� !�.'�$ 3#�#��( �$�

��(��� !�. �"�) ��$��1�

(���"� 74 �/�

�6���$,�&� 2551

%�3"�0�"�$"��������� 3'�"�$"����$��1� � �"�)������.��� ��#��1������������*:��;�

��"� �,+�������$,�&�1�� ����.1�������"�$����$��1���'<�1 ����"�0�"�$"���������

...................................................�������������������������

(��(�����'<� (�11�#%��)

...................................................��������������������

(��(���'�?��� @�����1�)

...................................................��(���)*+��,�&�

(-./0�"�$��1��(��� !�.'�$ 3#�#��( �$�)

...................................................��(���)*+��,�&�

(��(��� !�. �"�) ��$��1�)

................................................... �" �/�%�3"�0�"�$"���������

(-./0�"�$��1��(��� !�.'�$ 3#�#��( �$�)

ii

��������

�����������*: ��;�����������"�*���3���"' ����� ��������������������� ����� A,+��*

�B:�?��(�����"��3��� ���� ��������������� !�$,�&�3"�����������3��)*+��*+�"�/��������

����������� ��B+������ ��.�C��������(��������������)*+!*)*+�#! �����0�"��!1/�)#�"�*���3B�����!3��

3"���.���*� (Loss) )*+���!%��������� /1+��)*+�#! A,+�(�0�"����+������)�%����������(��������������

!���$������*��"�*�0��1�"��� (Numerical Method) A,+�(����!"�*���C�����S�"���1�� (Non-heuristic

approach) (,��!/���"�*��������"1��-������ ���0/�����3���"'���� ��������������� A,+����C�/��

��� �!������"��*��"�� ��� ����� ��������������������� ����� (Optimal power flow : OPF) ��

��������������� !����������)*+������0/)!����!/�����������@��*�����������C��C��������

((���"� 5 ���) ����;�1�"�������� ������3���"'3��:��*: !��0/���3���"')��3����"�1�������

)!������� A,+��*������ ��C�������#�1)��3'�1$��1� MATLAB ���0/3���"'���� ����

����������� ��B+�$,�&� ���/�)��������(��������������)*+� �����)*+�#!C������ C�����-����)*+�!/��

���*���)*����� ��C��� PowerWolrd A,+���;� ��C���)*+����������0/�����"��3��� ���� ����

�������������B+����*���)*��3��3"�����/�3*�����3��1��)*+�!/

3�����3��: ���� ��������������������� �����, ��"1�� b ������, ������������.���*�, ��"�"���"���,

C�)C��

iii

Abstract

This thesis presents the calculation method of the optimal power flow. This is based on

the analyzing of electrical power flow by the research of the relation between the divisions of the

electrical power system. For the research of the Best way to flow the electrical power, which will

prevent the loss of the production cost and the loss of electrical power to the minimal. This

thesis will help increasing the capacity and quantity to flow the electrical power by using

numerical method ,Which is limited the Non-heuristic approach. Therefore, Newton-Raphson

method used calculation power flow to solve the optimal power flow. This is called the optimal

power flow (OPF) in power system. The power system in Bangsean b Bangphra power plant

and 5 bus test system for this calculation. This thesis by using the computer program applied

way mathematics by MATLAB to use calculate flowing of the electric power, The research is for

finding the best way to flow the electrical power and the compare the output with a program

PowerWolrd, which is the most popular program to analyze the electrical power flow for the

comparing of how similar the output will be given

Keywords: Power flow, Newton-Raphson, Power loss, PowerWorld, MATLAB

iv

���������������

����������k����*:�����l(�#��"����!/!/"�!* !/"�3��C����� 0�"�� �B�C��3����,�&�(��

-./0�"�$��1��(��� !�.'�$ 3#�#��( �$� ��C�")�������*�� ��C��� ��(��� !�. �"�) ��$��1�

��� ���C�")�����$,�&���������������� A,+���(���)�:����)�����;���(���)*+��,�&������������*:

C���!/���3"��0�"�� �B�C���/�3�!� l�1���m �� !�1��! �/���(/��./�,�A��A,:� C����������3#'��

3"����#�3��� (��3'���������������������)*+�!/� /3��C�����1���m

��������3#')�����(���)#�)�����%�3"�0�"�$"��������� 3'�"�$"����$��1�

� �"�)������.��� )*+�!/� /"�0�3"���./3"����/��(����"��/���(/�

�#!)/���*:�����3#' ��!� ���!� 3���3��" C����B+��m ����"��/���(/� )*+�!/� /�������(

C��� /���������#�����B+��1���m )��� /�����)������������k����*:�����l(�#��"����!/!/"�!*

v

������

��� �������������������������������������������. ii Abstract�������������������������������������.. iii ������������������������������������������������.. iv �������������������������������������������� v ������� �������������������������������������... vii ����������!�����������������������������������. ix ���������#��$%&'#��(�������������������������������. x ���)* 1 ��,(������������������������������������. 1

1.1 ��,(����������������������������������. 1 1.2 .��/0����!�&������������������������������.. 3 1.3 2�32�2!����(�!�,4��!!�,���������������������.� 4 1.4 '6,����(�3,�,!�,���������������������������.. 4 1.5 ���4�8,&�)*���.�9�:�;���������������������������.. 6

���)* 2 �=$>)'#�!�,.�9���)*3�)*�.2;!����������������������.���. 7 2.1 �=$>)���������������������������������. 7

2.1.1 ���.�3����@&���:@#2!�(�#�!:AAB�������������������. 7 2.1.2 ���9(�',�8,��2!��������������������������� 9 2.1.3 ����(�9��'��3���& (Gauss Elimination Method)������������.. 12 2.1.4 �>2!3��3��& (CramerRs Rule)�������������������. 12 2.1.5 ��3�)��.�T)����(�UV(� (Iterative Method)������������.����. 14 2.1.6 �������0��&X8;��3�)��.�T)2!3���&:U3�# (The Gauss Z Seidel Method)��. 16

3\]*@�6#3^#�2!�����3\�3.�&4A#.&.......................................................... 16

2.1.7 ��3�)��.�T)2!,�.��,-��A��, (Newton-Raphson method)�..�������. 16 2.1.8 ���@�6#3^#�2!���������:�38�!3�;,�;.�.�T),�.��,-��A��,������� 17

vi

������ (� �)

��� ���)* 3 ��3�)��.�9���������������������������������... 19

3.1 @#�����',.���X,����'�����������������������.. 19 3.2 ��.��!X,�����#!�������������������������.. 21 3.3 �=$>)���:�U&3\�3.�&4A#.&X,�����(�#�!:AAB��������������.. 31

���)* 4 6#����(�,.%������������������������������.. 35 4.1 ���X8;.�T),�.��,-��A��, 3\]*'�;@�6#3^#����������:�38�!3�;,�������. 35 4.2 ��� Simulation 2! 3ZBus X,�����(�#�!:AAB���������������. 37 4.3 �����#!�e�$�9��2;� #9��!2!���:AAB��.,f ��f����!'�,������� 41 4.4 ������:�U&3\�3.�&4A#.&X,�����(�#�!:AAB���������������. 48

���)* 5 ��0�6#�����#!����������������������������� 61 5.1 ��0�6#�����#!��������������������������� 61 5.2 �g�@�'#�0�������������������������������� 62 5.3 ',.��!���\�h,�'#��������0��&X8;!�,�����������������. 62

3����;�!�!����������������������������������. 63

f��6,.������������������������������������.. 65 f��6,.� � 6#���3��)��3�)����@.�!4��'��� MATLAB ��� PowerWorld���.. 66

f��6,.� 2 6#����(�,.%�����������������������..... 71 f��6,.� 2 2;� #9�����:AAB����������������������..... 72

vii

���������

������ ��� 2.1 ���.�3����@&���:@#2!�(�#�!:AAB�9��!'#��(�#�!:AAB�����l��������.�.. 11 3.1 '6,f�\3�;,3�)*�. (single-line diagram)������������������... 21 3.2 Admittance Diagram���������������������������. 23 3.3 �(�@,�����(�!�,2! switch������������������������ 32 4.1 ���A����� ��� � ��� � 4 '#� e � �� � 1....................................................... 32 4.2 '��! one-line diagram 2!�����(�#�!:AAB� 3 �����������������. 34 4.3 �����(�#�!AB� 3 ���4��4��'��� PowerWorld����������������. 35 4.4 '��!���:@#2!�(�#�!:AAB� 2%��(������,X,4��'��� PowerWorld�����..� 36 4.5 '��!�����'����'�,U&�������������������������.. 36 4.6 '��!��9�4�3�)�,U&���������������������������.. 36 4.7 '��!��4@#�............................................................................................................. 37 4.8 ��0�6#�����#!�)*:�;9��4��'��� PowerWorld���������������. 37 4.9 '��! One-line diagram 2!�����(�#�!:AAB� 5 �����������������. 39 4.10 '��!����!��0��(���2!��� 1����������������������.. 40 4.11 '��!����!��0��(���2!��� 2����������������������.. 40 4.12 '��!����!��0��(���2!��� 3����������������������.. 41 4.13 '��!����!��0��(���2!��� 4����������������������.. 41 4.14 '��!����!��0��(���2!��� 5����������������������.. 42 4.15 4��'��� PowerWorld X8;.�T)���2! Newton X,����(�,.%����������.. 42 4.16 '��!����!��4@#��)*:�;�������������������������� 43 4.17 '��!����!��0���� Simulate�����������������������.. 43 4.18 '��!����! Y-Bus (Bus Admittance Matrix)�����������������. 44 4.19 '��!����! Power Flow Jacobian���������������������.. 44 4.20 3�;,��!����!9����V! 38 ��%)�����������������������.. 49 4.21 ���A'��!�� Minimum Power Loss 9����������#3\�3.�&4A#.&������� 56 4.22 @,;���!'��!6#���6 ;X8; GUI������������������������ 57 4.23 4��'��� OPTIMAL POWER FLOW Ue*!�(������,'��!��6##�\T&�)*:�;������. 58

viii

��������� (� �)

������ ��� 4.24 '��!�����(�#�!:AAB� 5 ��� �)*:�;9��4��'��� PowerWorld����������.. 59 4.25 '��!6##�\T&�)*:�;9��4��'��� PowerWorld�����������������. 59

ix

�����������

�������� ���

1.1 '6,����(�3,�,!�,.............................................................................................. 5 2.1 ��0�����(�,.%�g�@����:@#2!�(�#�!:AAB���������������... 11 3.1 2;� #����,\0� (Bus input data)�������������������.� 25 3.2 2;� #�,\0�2!����! (Line input data)�������������.. ��� 25 3.3 2;� #�,\0�2!@�;'�#! (Transformer input data)�����������. 26 3.4 2;� #��0��,\0�2!@�;'�#! (Transformer input data)���������.. 26 3.5 \]V,v�,���@�9�4�3�)�,3�����U&��������������������. 28 3.6 2;� #��3��&\0��)*��� (bus output data)����������������.. 30 3.7 2;� #��3��&\0��)*����! (line output data)���������������. 31 3.8 2;� #��3��&\0��)*@�;'�#! (transformer output data)����������. 31 3.9 3!]*,:2X,����(�!�,2!�����(�#�!:AAB� 5 ��� �����������..��.. 33 4.1 ��0�6#���3��)��3�)��6##�\T&�)*:�;9��4��'��� MATLAB '#� PowerWorld�. 41 4.2 2;� #�/�,):AAB� ���!�,��0����9(�3�],�0#��� 2551����������.. 42 4.3 '��!�� coefficient �(�@���,(�:�@��� � ����������������.. 54 4.4 2;� #9��!2!���:AAB� �(�@�������(�,.%X,@,;���! GUI���������. 57

x

���������������������� �

��������� �� � ����!"���

Z ohm ��\)'�,U& ���� - '����'�,U&3�����U& (Bus admittance matrix) ����� ohm 2,��'����'�,U&�)*��� i /e!��� j �� Radian �0�'����'�,U&�)*��� i

|��| kV 2,��'�!��,:AAB��)*��� i �� Degree �0�3A�2!'�!��,:AAB��)*��� i ��� Degree 6#��!��@.�!�0�2!'�!��,:AAB��)*��� i '#���� j �� A ���'��)*��� i �� MW �(�#�!:AAB�'��)A(real power) �)*9��32;�� �����)*��� i �� MVAR �(�#�!:AAB��)'��)A(reactive power) �)*9��32;�� �����)*��� i ��,��� MW �(�#�!!�,:AAB�9��!�)*�(�@,�:.;X@;:@#32;�� �����)*��� i ��,��� MVAR �(�#�!!�,:AAB�3��],�)*�(�@,�:.;X@;:@#32;�� �����)*��� i �� MW �(�#�!:AAB��)*9��32;�� ����4��3��]*!�(�3,��:AAB� (power generation) ��� MW �(�#�!!�,:AAB��)*9��32;�� ����4��3��]*!�(�3,��:AAB��)*��� i ��� MVAR �(�#�!!�,:AAB�3��],�)*9��32;�� ����4��3��]*!�(�3,��:AAB��)*��� i � !" MVAR \�����(�#�!!�,:AAB�3��],2!3��]*!�(�3,��:AAB��)*��� i � !�# MVAR �(�#�!!�,:AAB��*(��0�2!3��]*!�(�3,��:AAB��)*��� i �$� MW �.���;!����(�#�!!�,:AAB�9��!�)*��� i �$� MVAR �.���;!����(�#�!!�,:AAB�3��],�)*��� i

P MW 6#��!��@.�!6#�.�3^\��2!���(�#�!:AAB� (total specified) S MVA �(�#�!:AAB��)*:@#6�,X,����!@�]@�;'�#! � MW �(�#�!!�,:AAB�9��!� �3�)���V!@��X,���� � MVAR �(�#�!!�,:AAB�3��],� �3�)���V!@��X,���� NB - 9(�,.,���X,����

xi

N - 9(�,.,�����V!@�� N& - 9(�,.,����)*����'@#!9�� J - 3�����U&2!,0\�,T&�� Ue*!3�)��.�9�4�3�)�,3�����U& (Jacobian matrix) R ohm �.���;�,��,X,����! X ohm �)'�'�,�&X,����! G - �.,9��!2!'����'�,U&3�)��.� Conductance B - �.,9�,�f�\2!'����'�,U& 3�)��.� Susceptance '() - �� ' * +,-../+/-01 X,�(�#�!:AAB�9��!� �3�)� 2() - �� 2 * +,-../+/-01 X,�(�#�!:AAB�9��!� �3�)� +() - �� + * +,-../+/-01 X,�(�#�!:AAB�9��!� �3�)� 3() - �� 3 * +,-../+/-01 X,�(�#�!:AAB�9��!� �3�)�

1

บทที่ 1

บทนํา

1.1 บทนํา

ระบบไฟฟากําลัง (Power Systems) เปนโครงสรางพื้นฐานที่สําคัญและมีความจําเปนตอชีวิต

ความเปนอยูของประชาชน ความกาวหนาทางเศรษฐกิจ อุตสาหกรรมและการพาณิชยในภาพรวมของทั้ง

ประเทศ สําหรับประเทศไทย การจัดการระบบไฟฟาถูกแบงความรับผิดชอบออกเปนสามฝายหลักๆ คือ

ระบบผลิต (Generation system) ระบบสง (Transmission system) และระบบจําหนาย (Distribution

system) แตละระบบจะมีหนาที่ของแตละสวนแตกตางกันไป โดยระบบผลิตทําหนาที่ในการผลิตไฟฟาให

มีเพียงพอตอความตองการของผูใชไฟฟา รวมถึงการออกแบบวางแผนขยายกําลังการผลิตเพื่อรองรับตอ

ปริมาณการใชไฟฟาที่เพิ่มขึ้นในอนาคต ระบบสงมีหนาที่ในการจัดสงกําลังไฟฟาจากระบบผลิตไปสู

สถานีจายไฟฟาตนทางใหเหมาะสม สวนระบบจําหนายมีหนาที่จายกําลังไฟฟาจากสถานีจายไฟฟาตน

ทางไปยังสถานีจายไฟฟายอยเพื่อทําการจําหนายไฟฟาไปยังผูใชไฟฟาตางๆที่อยูในระบบไดอยางมี

ประสิทธิภาพและมีคุณภาพไฟฟาในราคาที่เหมาะสม

ระบบสงในที่นี้จะทําการพิจารณาคาในสายสง โดยอางอิงจากระบบสงของการไฟฟาฝายผลิต

และระบบสงยอยของการไฟฟานครหลวงและการไฟฟาสวนภูมิภาค ระบบสงเริ่มตนจากการรับไฟฟา

จากการไฟฟาฝายผลิตและโรงไฟฟาเอกชนกอนที่จะทําการแปลงระดับแรงดันโดยหมอแปลงเพื่อสงที่

ระดับแรงดัน 500 หรือ230 kV ไปยังสถานีจายไฟฟาตนทางของระบบจําหนายของการไฟฟานครหลวง

และการไฟฟาสวนภูมิภาคซึ่งจะลดระดับแรงดันลงเปน 69 หรือ 115 kV ซึ่งจะเปนในสวนของระบบสง

ยอย (Sub-transmission system) จากนั้นจะสงตอไปที่สถานีจายไฟฟายอย (Distribution substation)

จากนั้นจะถูกแปลงระดับแรงดันโดยหมอแปลงสถานีจายไฟฟายอย (Substation transformer) ใหมีขนาด

แรงดันลดลงเปน 12, 24 หรือ 33 kV กอนสงไปยังบริเวณตางๆโดยสายปอน แลวจึงแปลงแรงดันให

ตํ่าลงเหลือ 220/380 หรือ 240/400 V โดยหมอแปลงจําหนาย (Distribution transformer) จากนั้นจึง

เดินสายแรงตํ่าไปสูผูใชไฟฟา

ในการติดต้ังองคประกอบที่ใชในการผลิตและจายไฟฟาไดแก โรงไฟฟา สายสง สายจําหนาย

สถานีไฟฟา จําเปนตองคํานึงถึงปจจัยตางๆ เชน ตําแหนงของผูใชไฟฟาและความตองการการใชไฟฟา

หรอืสายไฟในสายสง , แหลงตนกําลังที่ใชในการผลิตไฟฟาและความเหมาะสมทางสภาพแวดลอม เปน

ตน ซึ่งปจจัยดังกลาวทําใหองคประกอบตางๆ ของระบบกระจายอยูทุกภูมิภาคของประเทศ ยิ่งไปกวานั้น

ในการผลิตไฟฟามีลักษณะที่แตกตางไปจากการผลิตในอุตสาหกรรมประเภทอื่นคือ พลังงานไฟฟาไมมี

2

ความเหมาะสมที่จะผลิตไวกอนลวงหนา หรือเกินความตองการที่ไดจริงในแตละเวลา แตควรผลิตเพื่อใช

งานพอดีกับความตองการใชไฟฟาในขณะนั้น ดังนั้นการควบคุมปริมาณการผลิต การควบคุมพลังงาน

ไฟฟาที่ผานสายสง การประสานงานเพื่อการจายไฟฟาอยางมีประสิทธิภาพ รวมทั้งการแกไขสถานการณ

ความบกพรองของระบบตองทําอยางรวดเร็วทันตอเหตุการณ

โดยทั่วไปกําลังไฟฟาสูญเสียในสายสง ไดจากการวิเคราะหการไหลของกําลังไฟฟานั้นเปนสวน

หนึ่งของความสูญเสียทางเทคนิค ( Technical loss) ที่เกิดขึ้น เนื่องจากคา Technical loss ในสวนอืน่ๆ

อาทิเชนกําลังไฟฟาสูญเสียบริเวณจุดตอ (Junction loss) หรือกําลังไฟฟาสูญเสียที่เกิดจากการดิสชารจ

(discharge) ของอุปกรณที่ไมสมบูรณ เปนตนนั้น ไมสามารถคํานวณไดจากแบบจําลองที่ใชสําหรับการ

วิเคราะหการไหลของกําลังไฟฟาโดยทั่วไป อยางไรก็ตามคากําลังไฟฟาสูญเสียดังกลาวโดยทั่วไปมี

สัดสวนนอยมากเมื่อเทียบกับคากําลังไฟฟาสูญเสียในสายสงหรือหมอแปลงไฟฟาซึ่งสามารถคํานวณได

จากการวิเคราะหการไหลของกําลังไฟฟา จะเห็นไดวาผลการคํานวณที่ไดจากการวิเคราะหการไหลของ

กําลังไฟฟาจะมีความละเอียดและแมนยําซึ่งทําใหการไฟฟาสามารถประเมินและแยกแยะพลังงานไฟฟา

สูญเสียไดอยางชัดเจน ทําใหทราบสาเหตุของพลังงานไฟฟาสูญเสียที่เกิดขึ้นวามาจากสวนใดมากนอย

เพียงใด อันจะทําใหการไฟฟาสามารถกําหนดแนวทางการลดพลังงานไฟฟาสูญเสียในระบบไดอยางมี

ประสิทธิภาพยิ่งขึ้น จึงทําใหทราบแนวทางในการหาเสนทางที่ดีที่สุดใน การสงจายพลังงานไฟฟาใหมี

ประสิทธิภาพสูงสุดโดยการจัดปริมาณกําลังไฟฟาที่ผลิตไดและควบคุมการสงจายกําลังไฟฟาในลักษณะ

ที่กอใหเกิดความสูญเสียทางไฟฟาในระบบสงตํ่าที่สุด

การควบคุมระบบไฟฟากําลัง คือ การควบคุมใหระบบไฟฟากําลังสามารถจายโหลดไดอยาง

เพียงพอและระบบสามารถดําเนินการอยูภายในขอบเขตที่ปลอดภัยโดยมีตนทุนการผลิตตํ่าที่สุด ใน

ปจจุบันไดมีแนวความคิดที่จะจายโหลดอยางประหยัดซึ่งรวมขอจํากัดหลายอยางในระบบไฟฟา โดย

อาศัยเทคนิคการหาคาเหมาะที่สุดเพื่อใหไดตนทุนการผลิตรวมของระบบตํ่าที่สุด ซึ่งวิธีการแบบนี้เรียกวา

“ ออปติไมซเพาเวอรโฟลว ” ออปติไมซเพาเวอรโฟลวเปนรูปแบบปญหาการหาคาเหมาะที่สุดแบบไม

เชิงเสนที่คํานวณหาคาที่เหมาะสมของตัวแปรตาง ๆ ในระบบไฟฟาเพื่อใหตนทุนการผลิตรวมตํ่าที่สุด

และระบบยังดําเนินการอยูในขอบเขตที่กําหนด การพัฒนาวิธีการแกปญหาออปติไมเซชันที่เหมาะสมทํา

ใหการแกปญหาออปติไมซเพาเวอรโฟลวมีประสิทธิภาพยิ่งขึ้น

โครงงานนี้จะนําเสนอการแกปญหาการไหลของกําลังไฟฟาอยางเหมาะสมเพื่อหารูปแบบการ

จายกําลังไฟฟาในระบบไฟฟาดังนี้ ระบบสงจะประมาณคากําลังไฟฟาสูญเสียโดยอาศัยทฤษฎีนิวตัน-ราฟ

สันและการคํานวณการไหลของกําลังไฟฟา เพื่อคิดผลจากความไมแนนอนในสวนของขอมูล อาทิเชนคา

ความตองการใชไฟฟา คากําลังการผลิตไฟฟาจากเครื่องกําเนิดไฟฟาหรือคาขนาดแรงดันไฟฟาที่บัส

ควบคุมแรงดันเปนตน

เปนที่ทราบกันดีวา ในปจจุบันปญหาเศรษฐกิจตกตํ่า สงผลกระทบตอราคาของสาธารณูปโภค

ทุกชนิด ไมวาจะเปน สินคาอุปโภคบริโภค สินคาบริการ รวมทั้งพลังงาน อันไดแก น้ํามัน กาซธรรมชาติ

และไฟฟา โดยเฉพาะอยางยิ่ง ราคาตนทุนน้ํามันที่มากขึ้น อาจทําใหราคาของไฟฟาเพิ่มสูงขึ้นดวย

3

อยางไรก็ดี รัฐบาลมักจะใชนโยบายควบคุมราคาไฟฟาทําใหผูผลิตตองแบกรับภาระคาใชจายเนื่องจาก

ราคาตนที่เพิ่มมากขึ้น จากสาเหตุนี้ ผูผลิตไฟฟาจึงจําเปนตองคนหามาตรการในการลดตนทุนใหมาก

ที่สุด วิธีการลดตนทุนที่มีประสิทธิภาพมากวิธีหนึ่งก็คือ การลดการสูญเสีย ( Loss) ในกระบวนการผลิต

และสงจายกระแสไฟฟา ซึ่งจากการศึกษาพบวา การลดการสูญเสียในระบบสงจายกระแสไฟฟา รวมถึง

วิธีในการเลือกเสนทางจายกระแสไฟฟาจะสามารถชวยลดตนทุนไดเปนอันมาก ผูจัดทําโครงงานมีความ

สนใจที่จะศึกษาวิธีการคนหาเสนทางการจายกระแสไฟฟาที่เหมาะสม หรือเปนที่ทราบกันโดยทั่วไปวา

ปญหาการไหลของกําลังไฟฟาอยางเหมาะสม (Optimal power flow : OPF) ในระบบไฟฟากําลัง

(Electrical power system)

ปญหาการไหลของกําลังไฟฟาอยางเหมาะสม (Optimal power flow : OPF) คือ รูปแบบการ

จายกําลังไฟฟาที่เหมาะสมที่สุด หรืออาจกลาวไดวา เปนการคนหาความสัมพันธระหวางบัสตางๆ ที่

เหมาะสมที่สุด ในการจายกําลังไฟฟาจากจุดหนึ่งไปยังอีกจุดหนึ่ง โดยวิเคราะหการไหลของกําลังไฟฟา

และกระแส ณ จุดตางๆ ในระบบไฟฟากําลังในสภาวะการทํางานปกติ ขนาดและมุมของศักดาทางไฟฟา

ที่บัส (Bus) ตางๆ ในระบบ กระแสที่ไหลตามสายสงทุกเสน กระแสจากเครื่องกําเนิดไฟฟา และที่จายให

โหลด กําลังไฟฟาจริงและกําลังไฟฟาปรากฏจากเครื่องกําเนิดไฟฟา ในสายสงและโหลด โดยอาศัย

แนวคิดเบื้องตน คือ การหาวิธีการสงจายกําลังไฟฟาที่ดีที่สุด เพื่อใหไดคาใชจายที่ตํ่าที่สุด ทั้งนี้เนื่องจาก

จากโรงจักรไฟฟาแตละโรงมีระยะทางถึงโหลดตางกันรวมทั้งตนทุนการผลิตกําลังไฟฟาของแตละโรงก็

ตางกัน ดังนั้นหากเราทราบเงื่อนไขที่ดีที่สุดในการเชื่อมตอที่จะทําใหตนทุนในการผลิตตํ่าที่สุด เราก็จะ

สามารถวางแผนการเดินเครื่องโรงจักรไฟฟาใหสอดคลองกับความตองการโหลด

1.2 วัตถุประสงค

1. เพื่อศึกษาปญหาการไหลของกําลังไฟฟาอยางเหมาะสม (Optimal Power Flow ) ในระบบ

ไฟฟากําลัง

2. เพื่อศึกษาการหาคําตอบของปญหาการไหลของกําลังไฟฟาในระบบไฟฟากําลังดวย

ระเบียบวิธีเชิงตัวเลข (Numerical Method)

3. เพื่อศึกษาการหาวิธีการจายกระแสไฟฟาที่เหมาะสมโดยใชการคํานวณดวยคอมพิวเตอร

4. เพื่อทดสอบ และประเมินผลการแกปญหาการไหลของกําลังไฟฟาที่เหมาะสม

4

1.3 ขอบเขตของการทําโครงงาน

1. โครงงานนี้จะจํากัดวิธีการในการหาคําตอบของปญหาการไหลของกําลังไฟฟาที่เหมาะสม

ดวยวิธีไมฮิวริสติก (Non-heuristic approach) เทานั้น วิธีการฮิวริสติกนั้นเปนการ

แกปญหาที่มีโครงสรางไมดีนัก และสามารถใชในการหาทางแกปญหาที่ซับซอนหรือ

ปญหาที่มีโครงสราง ไดเร็วกวาและถูกกวาการใชอัลกอริธึม ปญหาที่เกิดขึ้นในการใช ฮิวริ

สติกก็คือ เปนวิธีการที่ไมเปนที่รูจักอยางแพรหลายเทากับการใชอัลกอริธึม อีกปญหาหนึ่ง

ก็คือทางแกปญหาที่ไดจากการใชฮิวริสติกอาจไมใชทางแกปญหาที่ดีที่สุดเหมือนการใช

อัลกอริธึมอื่น การใชฮิวริสติกสามารถจะเกิดการผิดพลาดไดเพราะวิธีเหลานั้นไมมี

ขอกําหนดตายตัว คือไมมีขอจํากัดวาจะตองเริ่มตนที่จุดไหน ลําดับขั้นตอนการทํางานตอง

เปนอยางไร ไมเจาะจงดานขอจํากัดของการแกปญหา ทางเลือกของเกณฑที่ใชในการระบุ

กระบวนการทํางาน ระดับของคาใชจายที่ใชในการหาวาผลลัพธสุดทายที่ไดเปนผลลัพธที่

ดีที่สุดจริงๆ ผลลัพธเปนพฤติกรรมที่ไมมีจุดมุงหมายแนชัดและไมสามารถคาดเดาได

ผลลัพธอาจดีในการนําไปใชกับระบบงานหนึ่งแตอาจไมดีในการนําไปใชกับอีกระบบงาน

อื่นก็ได ดังนั้นในโครงงานนี้จึงเลือกวิธีการไมฮิวริสติก เพื่อทําการหาคําตอบที่เหมาะสม

ที่สุดในการแกปญหาการไหลของกําลังไฟฟาอยางเหมาะสม เพื่อลดขอผิดพลาดและ

ปญหาใหนอยที่สุด

2. โครงงานนี้จะใชโปรแกรม MATLAB ในการคํานวณคาที่ไดโดยระเบียบวิธีนิวตัน – ราฟสัน

เพื่อหาผลที่ไดมาเปรียบเทียบกับโปรแกรม PowerWorld

3. โครงงานนี้จะใชโปรแกรม PowerWorld ในการจําลองระบบกําลังไฟฟาดวยคอมพิวเตอร

เพื่อเปรียบเทียบผลการคํานวณที่ได

1.4 แผนการดําเนินงาน

แผนการดําเนินงาน ประกอบดวยขั้นตอนดังนี ้

1. ศึกษาเกี่ยวกับ ปญหาการไหลของกําลังไฟฟาอยางเหมาะสม

2. ศึกษาการหาคําตอบของปญหาการไหลของกําลังไฟฟาในระบบไฟฟากําลังดวยระเบียบวิธี

เชิงตัวเลข (Numerical Method)

3. ศึกษาหาวิธีการสงจายกําลังไฟฟาอยางเหมาะสม โดยคอมพิวเตอร

4. ทดสอบโปรแกรมที่จําลองดวยคอมพิวเตอร

5. วิเคราะหและประเมินผลการทดลองของการแกปญหาการไหลของกําลังไฟฟาที่เหมาะสม

5

เดือน มิถุนายน กรกฎาคม สิงหาคม กนัยายน ตุลาคม พฤศจิกายน ธันวาคม มกราคม กุมภาพันธ มีนาคม

ขอ/ป 2551 2551 2551 2551 2551 2551 2551 2552 2552 2552

1

2

3

4

5

ตารางที่ 1.1 แผนการดําเนินงาน ตั้งแตเดือน มิถุนายน พ.ศ. 2551 ถึง มีนาคม พ.ศ. 2552

6

1.5 ประโยชนที่คาดวาจะไดรับ

1.5.1 ไดรับความรูเกี่ยวกับการ วิเคราะห ปญหาการไหลของกําลังไฟฟาอยางเหมาะสม

รวมทั้งวิธีการหาคําตอบของการแกปญหาดวย ระเบียบวิธีการเชิงตัวเลข

(Numerical Method)

1.5.2 ทราบวิธีลดตนทุนในการสงจายไฟฟา และมีประสบการณในการออกแบบเสนทาง

ในการสงจายกําลังไฟฟาที่ดีที่สุด

7

บทที่ 2

ทฤษฎีและงานวิจัยที่เก่ียวของ

2.1 ทฤษฎ ี

ปจจุบันมีการศึกษาคนควาเกี่ยวกับทฤษฎีที่เกี่ยวของกับการวิเคราะหการไหลของ

กําลังไฟฟาในระบบกําลังไฟฟา ซึ่งสามารถจําแนกไดดังนี้

2.1.1 การวิเคราะหการไหลของกําลังไฟฟา

การวิเคราะหการไหลของกําลังไฟฟาเริ่มตนจากการพิจารณาขอมูลที่เกี่ยวของ เชน

แผนภาพเสนเด่ียว (Single line diagram) ของระบบไฟฟากําลัง ขอมูลที่จําเปนในการวิเคราะหการ

ไหลของกําลังไฟฟาก็คือขอมูลประจําสายสงแตละเสน ซึ่งสามารถแทนวงจรตอเฟสไดดวยวงจรแบบ

โดยขอมูลที่ใชประกอบดวยคาอิมพีแดนซ (Z) และแอตมติแตนซอดัประจุ (Line-charging

admittance) ( ) คาตางๆเหลานี้จําเปนตองใชเพื่อคํานวณคาสมาชิกตางๆของแอตมิตแตนซ

เมตริกซ (Bus admittance matrix) สําหรับระบบไฟฟาขนาด N บัสนั้น เราสามารถเขียนคาสมาชิก

เหลานี้ในรูปทั่วไปไดดวย ซึ่งกําหนดโดยสมการ (2.1)

นอกจากนี้ขอมูลที่ตองใชในการวิเคราะหการไหลของกําลังไฟฟายังรวมถึงคาอิมพีแดนซและ

คาพิกัดของหมอแปลงไฟฟากําลัง คาพิกัดของตัวเก็บประจุตอขนาน(Shunt capacitor) และการต้ังคา

ของแท็ปหมอแปลงเปนตน นอกจากนั้นในการวิเคราะหการไหลของกําลังไฟฟาจําเปนตองกําหนดคา

ของแรงดันประจําบัสและกําลังไฟฟาที่จายเขาสูบัสสําหรับบัสบางประเภทจึงจะทําใหสามารถ

คาํนวณหาคาํตอบได

เริ่มขั้นตอนในการพิจารณาปญหาไดโดยอาศัยพิกัดเชิงขั้วในการกําหนดคาแรงดันที่บัสใดๆ

ในระบบไฟฟาไดสมการดังนี้

8

กระแสไฟฟาสุทธิที่จายเขาสูระบบ ณ บัส ในพจนของสมาชิกของแอตมิตแตนซเมตริกซ

สามารถคาํนวณไดดงันี้

กําหนดให และ แทนกําลังไฟฟาแอกทีฟและรีแอกทีฟสุทธิที่จายเขาสูระบบ ณ บัส i

ซึ่งสามารถเขียนในรูปทั่วไปไดวา ดังนั้นเมื่ออาศัยสมการที่ (2.2) และ (2.3) จะได

คาสังยุคเชิงซอน (Complex conjugate) ของกําลังไฟฟาที่จายเขาบัส i คือ

ซึ่งสามารถแทนคาไดจากสมการ (2.1) และ (2.2) เปนดังนี้

เมื่อทําการกระจายสมการที่ (2.5) และแยกสมการสวนจริงและสวนจินตภาพจะได

สมการที่ (2.6) และ (2.7) คือสมการเพาเวอรโฟลว (power flow equation) ซึ่งเปนสมการที่

ใชหากําลังไฟฟาแอกทีฟและรีแอกทีฟตามลําดับ โดยที่สมการเพาเวอรโฟลวทั้งสองสมการนั้นมี

ลักษณะเปนสมการไมเชิงเสน (nonlinear equation) ดังนั้นตองใชวิธีการแกสมการไมเชิงเสนเพื่อหา

ผลเฉลยของสมการ วิธีการที่เหมาะสมสําหรับการแกสมการไมเชิงเสนโดยอาศัยคอมพิวเตอรชวยใน

การคํานวณคือ ระเบียบวิธีเชิงตัวเลข (Numerical analysis method) ดวยกระบวนการทําซ้ํา

(Iterative method) ซึ่งมีดวยกันหลายวิธีเชน วิธีของเกาส (Gauss method) วิธีของเกาส-ไซเดล

(Gauss-Seidei method) และวิธขีองนวิตัน-ราฟสัน (Newton-Raphson method) เปนตน วิธีที่นิยม

นํามาใชในการหาผลเฉลยของสมการเพาเวอรโฟลวมากที่สุดคือวิธีของนิวตัน -ราฟสัน เนื่องจากมี

ขอดีคือมีคุณสมบัติการลูเขาหาคําตอบที่รวดเร็วแบบกําลังสอง (Quadratic convergence) ใชเวลาใน

การคํานวณทั้งหมดนอยกวาวิธีอื่นและจํานวนรอบของการคํานวณซ้ําไมขึ้นอยูกับขนาดของระบบ

ไฟฟากําลัง

9

ปญหากําลังไฟฟา สามารถคํานวณไดจากคาขนาดแรงดัน ( voltage magnitude, )และมุม

เฟส (phase angle ) ในระบบกําลังไฟฟาภายใตเงื่อนไขสามเฟสสมดุล ( balanced three-phase

steady -state) โดยการคํานวณหาคากําลังไฟฟาแอกทีฟ ( real power)และกําลังไฟฟารีแอกทีฟ

(reactive power) ที่ไหลในสายสง (transmission lines) และหมอแปลง (transformer) รวมทั้งความ

สูญเสียของกําลังไฟฟาในอุปกรณ (equipment losses) ซึ่งสามารถหาไดจากการคํานวณ

2.1.2 การจําแนกชนิดของบัส

ในการวิเคราะหการไหลของกําลังไฟฟา จะจําแนกบัสออกไดเปน 3 ประเภท ดังนี ้

1. บัสอางอิง (Slack bus)

บัสอางอิงเปนบัสที่มีเครื่องกําเนิดไฟฟาตออยูบัสหนึ่งในระบบซึ่งทําหนาที่ชดเชยคา

กําลังไฟฟาสูญเสียทั้งแอกทีฟและรีแอกทีฟ เพื่อใหระบบเกิดความสมดุลของกําลังไฟฟา ณ บัสอางอิง

นี้จะทําการกําหนดขนาดและมุมของแรงดันไฟฟาใหมีคาคงที่ และใชเปนคาอางอิงสําหรับการคํานวณ

โดยที่ยังไมสามารถระบุคากําลังไฟฟาแอกทีฟและรีแอกทีฟได ทําใหไมตองทําการคํานวณหาแรงดัน

ที่บัสนี้ ทําใหจํานวนบัสที่ตองคํานวณลดลง 1 บัส ดังนั้น สําหรับระบบ k บัส จะมีสมการแรงดันที่ตอง

หาคําตอบเพียง k-1 บัส เทานั้น

บัสอางอิงใชขนาดแรงดัน ( voltage angle, ) โดยทั่วไปตัวอางอิง จะกําหนดใหเปน

เปอรยูนิต สําหรับขนาดแรงดันที่บัสอื่นๆ โดยปกติจะกําหนดใหมุมเฟสเทากับศูนย ( )

และ คาผิดพลาด ( mismatch) จะไมถูกกําหนดชัดเจน สวนกําลังไฟฟาแอกทีฟและรีแอกทีฟจะไม

สามารถระบุหาคาไดกอน ดังนั้นที่บัสอางอิงจึงไมจําเปนตองคํานวณหาคา สมการสมดุลของ

กําลังไฟฟา (power –balance equations)

ในปญหาการไหลของกําลังไฟฟา จึงกําหนดใหมีบัสอางอิง โดยที่จะไมกําหนดหรือระบุคา

กําลังไฟฟาที่จายเขาสูระบบโดยเครื่องกําเนิดไฟฟา ( power generation , ) ไวกอนแตอยางใด

และหลังจากที่ไดแกปญหาการไหลของกําลังไฟฟาแลว ผลตางระหวางผลรวมเฉพาะของคา

กําลังไฟฟา ( total specified ,P) ที่ ไหลเขาสูระบบที่บัสอื่นกับ ผลรวมของเอาทพุต (total output

) จะถูกโอนถายกับบัสอางอิงดวยเหตุนี้จึงเลือกใหบัสที่ตอเขากับเครื่องกําเนิดไฟฟา

(generator bus) เปนบัสอางอิง

2. โหลดบัส (PQ Bus)

โหลดบัสเปนบัสในระบบที่ไมตอเชื่อมอยูกับเครื่องกําเนิดไฟฟา ณ โหลดบัสจะทราบคาความ

ตองการกําลังไฟฟาแอกทีฟและรีแอกทีฟ สวนคาขนาดและมุมของแรงดันไฟฟาในบัสนี้จะเปนตัวแปร

สถานะ (State variable) ของระบบซึ่งไมทราบคา ดังนั้นกําลังไฟฟาที่จายเขาสูระบบโดยเครื่อง

10

กําเนิดไฟฟาและกําลังไฟฟาเสมือนที่จายเขาสูระบบโดยเครื่องกําเนิดไฟฟาจะมีคาเทากับศูนย ซึ่งจะ

ทราบคาความตองการกําลังงานไฟฟาจริง และความตองการกําลังไฟฟาเสมือนไดจากคาที่บันทึกไว

หรือโหลดแฟกเตอร (Load factor) หรือจากการวัด หรืออาจจะคํานวณคาความตองการกําลังไฟฟา

เสมือน ไดจากเพาเวอรแฟกเตอร (power factor)

3. บัสควบคุมแรงดัน (PV Bus)

บัสทุกบัสในระบบที่ตออยูกับเครื่องกําเนิดไฟฟาเปนบัสควบคุมแรงดันยกเวนบัสอางอิง โดย

บัสควบคุมแรงดันเปนบัสที่สามารถกําหนดการผลิตกําลังไฟฟาแอกทีฟและคาขนาดแรงดันไฟฟาได

โดยขนาดแรงดันไฟฟาจะกําหนดใหมีคาคงที่ได สวนคากําลังไฟฟารีแอกทีฟจะเปนตัวแปรอิสระและ

มุมของแรงดันไฟฟาจะเปนตัวแปรสถานะ (State variable) ของบัสที่ตองการคํานวณหาคา

ถาบัสที่ตอกับโหลดบัสไมไดตออยูกับเครื่องกําเนิดไฟฟา คากําลังไฟฟาในบัสนั้นจะมีคา

ตรงกันขามกับคากําลังไฟฟาจริงสูญเสียทั้งหมดในระบบ คาที่ไดจะเปนลบกับคากําลังไฟฟาแอกทีฟ

ที่จายเขาไปสูบัสใน การเหนี่ยวนําของโหลด ( load Inductive) คากําลังไฟฟาเสมือนในบัสนั้นจะมี

คาตรงกันขามกับคากําลังไฟฟาเสมือนสูญเสียทั้งหมดในระบบ จะคาเปนลบ

สายสง (Transmission Line): ขอมูลอินพุตในสายสงจะประกอบไปดวยวงจรแบบ ซึ่งประกอบไป

ดวยอิมพิแดนซที่ตอแบบอนุกรม (Z) และ แอตมิตแตนซที่ตอแบบขนาน (Y) ซึ่งตอเชื่อมระหวาง 2

บัส และยังเปนตัวกําหนดคาพิกัดกําลังไฟฟาสูงสุด (maximum MVA rating)

หมอแปลง (Transformer) : ขอมูลอินพุตบางตัวในหมอแปลงประกอบดวยอิมพีแดนซในขดลวด

และแอตมิตแตนซในขดลวดที่เหนี่ยวนําตัวเอง ซึ่งที่บัสจะเชื่อมดวยขดลวดและพิกัดกําลังไฟฟาสูงสุด

วิธีการหา bus admittance matrix ( )

Diagomal element ของ คือ เปนคา self admittance ของ node ที่ i มีคาเปน

ผลรวมของแอตมิตแตนซของ branch ที่ตอกับ node i

Off-Diagomal element ของ คือ เปนคา mutual admittance ระหวาง

node ที่ i และ node ที่ j มีคาเปน –(ผลรวมของแอตมิตแตนซ ของ branch ที่ตอเชื่อมระหวาง node

i กับ node j)

ดังนั้นสามารถทําการหาคาแอตมิตแตนซแตละบัส ไดจากตารางที่ 2.1 ดังนี้

11

Bus type No. of bus Quantities

specified

No. of available

equations

No. of ,

State variable

Slack :

Voltage controlled

Load

,

,

,

0

0

Totals

ตารางที่ 2.1 สรุปการคํานวณปญหาการไหลของกําลังไฟฟา

รูปที่ 2.1 การวิเคราะหการไหลของกําลังไฟฟาจริงและกําลังไฟฟาปรากฏ

: กําลังงานไฟฟาจริงที่จายเขาสูระบบที่บัส i (MW)

: กําลังงานไฟฟาเสมือนที่จายเขาสูระบบที่บัส i (MVAR)

: กําลังงานไฟฟาจริงที่กําหนดไวใหไหลเขาสูระบบที่บัส i (MW)

: กําลังงานไฟฟาเสมือนที่กําหนดไวใหไหลเขาสูระบบที่บัส i (MVAR)

: กําลังงานไฟฟาที่จายเขาสูระบบโดยเครื่องกําเนิดไฟฟาที่บัส i (MW)

: กําลังงานไฟฟาเสมือนที่จายเขาสูระบบโดยเครื่องกําเนิดไฟฟาที่บัส i (MVAR)

: ความตองการกําลังงานไฟฟาจริงที่บัส i (MW)

: ความตองการกําลังงานไฟฟาเสมือนที่บัส i (MVA)

12

2.1.3 การกําจัดแบบเกาส (Gauss Elimination Method)

การหาคา x ที่สอดคลองกับสมการ ซึ่งจะพิจารณาหาคา x1, x2, x3, …, xn ที่

สอดคลองกับเซตของสมการ (2.8)

โดยที่ระบบสมการอาจเปนเชิงเสนหรือไมเชิงเสนก็ได ถาพิจารณาเปนระบบสมการเชิงเสน ซึ่งระบบ

จะอยูในรูปแบบ

โดยที่ เปนคาคงที่ เมื่อ i, j = 1, 2, 3, …, n

2.1.4 กฎของเครเมอร (Cramer’s Rule)

เปนเทคนิคในการหาคําตอบเหมาะสมที่สุดสําหรับระบบที่มีจํานวนสมการเล็กๆ ซึ่งสามารถ

เขียนอยูในรูปของเมตริก

โดย เปนเมตริกสัมประสิทธของตัวไมทราบคา (Coefficient matrix)

เปนเมตริกของตัวไมทราบคา (Variable matrix)

เปนโหลดเมตริก (Load matrix)

(2.8)

(2.9)

(2.10)

(2.11)

13

โดยกฎของเครเมอรมีวา ตัวไมทราบคาแตละตัวในระบบของสมการพีช สามารถเขียนแทน

ไดดวยสวนของ 2 ดีเทอมิแนนท โดยตัวสวน D เปนดีเทอมิแนนท (Determinant) ของเมตริก A และ

ตัวเศษเปนดีเทอรมิแนนทที่เกิดจากการเอาคาคงที่ทางขวามือของสมการแทนที่สัมประสิทธ์ิของตัวไม

ทราบคาในคอลัมนที่ตรงกับตัวไมทราบคาที่ตองการหา จะได

วิธีการหาคาดีเทอมิแนนท ที่แทนดวยสมการ (2.10) ,(2.11) และ (2.12) ทําไดดังนี้

วิธีการกําจัดแบบเกาส (Gauss Elimination) มีวิธีการทํา 2 ขั้นตอนใหญๆ ดังนี้คือ

1. การกําจัดตัวแปรแบบไปขางหนา (Forward elimination) เปนการกําจัดตัวแปรที่ไม

ทราบคาออกไปทีละตัว เมื่อเสร็จส้ินขั้นตอนการกําจัดแลว เราจะไดวาสมการสุดทายมี

ตัวแปรที่ไมทราบคาเหลืออยูเพียงหนึ่งตัวเทานั้น ซึ่งทําใหไดเมตริกสามเหลี่ยมบน

(upper triangular matrix)

2. การแทนคายอนกลับเพื่อหาตัวแปรทั้งหมด (Back substitution) เปนการแกสมการเพื่อ

ตัวแปรที่ไมทราบคาที่ปรากฎในระบบสมการ โดยเริ่มแกสมการจากสมการสุดทาย แลว

ยอนขึ้นมาจนในที่สุดแกสมการที่หนึ่งเพื่อตัวแปรที่ไมทราบคาตัวที่หนึ่ง ทําใหไดคาผล

เฉลยที่ตองการของระบบสมการ

(2.12)

(2.13)

(2.14)

(2.15)

14

2.1.5 ระเบียบวิธีการทําซ้ํา (Iterative Method)

ระเบียบวิธีการกําจัดแบบเกาส สามารถควบคุมคาคลาดเคลื่อนจากการปดเศษได เนื่องจาก

มีขั้นตอนการดําเนินการที่จํากัด และใชไดดีในกรณีที่ระบบสมการมีขนาดเล็กหรือมีจํานวนสมการ

นอย การคํานวณจะมีความยุงยากซับซอนยิ่งขึ้น เมื่อมีจํานวนสมการมากขึ้นและทําใหเสียเวลาไม

สะดวกในการใชงาน จึงมีการนําระเบียบวิธีเชิงตัวเลขมาชวยในการหาผลเฉลยของระบบสมการเพื่อ

ความสะดวก ซึ่งไมไดมีการกําหนดจํานวนขั้นตอนการดําเนินการเปนจํานวนจํากัด และแตละขั้นตอน

มีการดําเนินการที่เหมือนกัน ดวยเหตุนี้จึงเรียกระเบียบวิธีนี้วาระเบียบวิธีการทําซ้ํา ที่นิยมกันมีอยู

สองระเบียบวิธี คือ

1. ระเบียบวิธีการทําซ้ําของจาโคบี (Jacobi Iterative Method)

2. ระเบียบวิธีการทําซ้ําของเกาส-ไซเดล (Gauss-Seidel Iterative Method)

โดยตองใชภายใตเงื่อนไขที่วาตัวกําหนด (Determinant) ของเมตริกสัมประสิทธจะตองไมเปนศูนย

1. ระเบียบวิธีการทําซ้ําของจาโคบี (Jacobi Iterative Method)

จากเง่ือนไขท่ีวาตัวกําหนดของเมตริกสัมประสิทธิ์ไมเปนศูนย ดังนั้นจึงไมมีคอลัมนใดท่ีเปนศูนย จึง

สามารถเขียนเมตริกใหอยูในรูปท่ีไมมีสมาชิกในแนวทแยงมุมเปนศูนย สําหรับเมตริกจัตุรัส

เมื่อ สําหรับ รูปแบบการทําซ้ําของจาโคบี (Jacobi Iterative Form) มีดังนี้

(2.16)

(2.17)

(2.18)

(2.19)

(2.20)

15

เมื่อ และมีการกําหนดคาเริ่มตน มาให และทําซ้ําไปเรื่อยๆ จนกระทั่งลู

เขาสูคาแมนตรง หรือมีการกําหนดเงื่อนไขการลูเขา บางครั้งเรียกวาเงื่อนไขในการหยุดการทําซ้ํา

(Stopping criterion) ใชสัญลักษณ นั่นคือ

เมื่อ คือคาคลาดเคลื่อนสัมพัทธของตัวแปร สําหรับ

2. ระเบียบวิธีการทําซ้ําของเกาส-ไซเดล (Gauss-Seidel Iterative Method)

ระเบียบวิธีนี้ตางจากระเบียบวิธีการทําซ้ําของจาโคบีตรงที่เราใชคาประมาณของ ใน

การทําซ้ํารอบที่ แทนในสูตรของ เมื่อ สําหรับ ซึ่งเปนผลทําให

ระเบียบวิธีการทําซ้ําของเกาส-ไซเดลลูเขาสูผลเฉลยแมนตรงเร็วกวาระเบียบวิธีการทําซ้ําของจาโคบี

รูปแบบการทําซ้ําของเกาส-ไซเดล (Gauss-Seidel Iterative Form) มีดังนี้

เมื่อ

(2.21)

(2.22)

(2.23)

(2.24)

16

2.1.6 การประยุกตใชระเบียบวิธีของเกาสไซเดล (The Gauss – Seidel Method) เพ่ือหา

ผลเฉลยของสมการเพาเวอรโฟลว

ระเบียบวิธีของเกาสไซเดล ใชในการแกสมการการไหลของกําลังไฟฟา ที่อยูในรูปพิกัดฉาก

(2Rectangular Form

การหาคาของตัวแปรของสมการการไหลของกําลังไฟฟา มีขอมูลที่แตกตางและชนิดของบัส

ที่ไมเหมือนกัน ทําใหเกิดความยุงยากซับซอนดังนั้นจึงใชวิธีของระเบียบวิธีเชิงตัวเลขเขามาชวยใน

การคํานวณ และวิธีแรกในการหาเปนวิธีพื้นฐานการหาแบบไมเชิงเสน ( Nonlinear equation) คือ

The Gauss – Seidel method และใชกระบวนการการทําซ้ํา (Iterative Procedure) ในการแกปญหา

ดังกลาว

) ซึ่งเปนตัวแปรเชิงซอน (Complex variables) คาแตกตางของแรงดันที่บัส ได

จากการทําซ้ํา (iteration) กอนหนานั้น คาที่ไดจากการทําซ้ําครั้งตอไปจะมีคานอยลง

สมการทั่วไปในการหาคาของสมการการไหลของกําลังไฟฟา แบบเกาสไซเดล สําหรับโหลด

บัส (Load bus) ที่มีจํานวน n บัส คือ

โดย k เปน Number of iteration

สําหรับ Voltage Control บัส จะไมมีคากําลังไฟฟาเสมือน (Reactive Power; Q) ดังนั้น

จะตองหาคา Q จากการกระบวนการทําซ้ํา (Iteration) จาก

2.1.7 ระเบียบวิธีของนิวตัน-ราฟสัน (Newton-Raphson method)

ระเบียบวิธีของนิวตัน -ราฟสัน ใชในการแกสมการการไหลของกําลังไฟฟาที่อยูในรูปเชิงขั้ว

( Polar form) วิธีการแกสมการไมเชิงเสนเพื่อหาผลเฉลยของสมการ วิธีการที่เหมาะสมสําหรับการแก

สมการไมเชิงเสนโดยอาศัยคอมพิวเตอรชวยในการคํานวณคือวิธีการวิเคราะหเชิงเลข (Numerical

analysis method) ดวยกระบวนการทําซ้ํา (Iterative method)

(2.25)

(2.26)

17

วิธีที่นิยมนํามาใชในการหาผลเฉลยของสมการเพาเวอรโฟลวมากที่สุดคือวิธีของนิวตัน -ราฟ

สันเนื่องจากมีขอดีคือ มีคุณสมบัติการลูเขาหาคําตอบที่รวดเร็วแบบกําลังสอง (Quadratic

convergence)ใชเวลาในการคํานวณทั้งหมดนอยกวาวิธีอื่นและจํานวนรอบของการคํานวณซ้ําไม

ขึ้นอยูกับจํานวนบัส แตอยางไรก็ตามการใช Jacobian matrix ในการคํานวณจะใชเวลามาก ทําให

เวลาในการ iteration (ในแตละรอบ) ของ นิวตัน-ราฟสัน จะใชเวลานานกวาวิธีของเกาส

2.1.8 การหาผลเฉลยของระบบสมการไมเชิงเสนดวยวิธีนิวตัน-ราฟสัน

ในการหาผลเฉลยของระบบสมการไมเชิงเสนจํานวน N สมการและจํานวนตัวแปรที่ไมทราบ

คา N ตัวแปรดังสมการ (2.8)

โดยที่ คือ ตัวแปรที่ไมทราบคา

คือ ตัวแปรที่ทราบคา เปนคาคงที ่

ถาเริ่มรอบการคํานวณดวยคาประมาณ สําหรับตัวแปรที่ไมทราบคา และถา

เปนคาปรับแตง (Correction) ใชสําหรับปรับคาตัวแปรที่ไมทราบคาเพื่อใหผล

เฉลยลูเขาสูคําตอบจะได

ใชอนุกรมเทยเลอรประมาณฟงกชันในสมการที ่(2.9) โดยพิจารณาถึงพจนที่มีอันดับอนุพันธเทากับ

หนึ่งและเมื่อ i = 1,2,...,N จะได

จากสมการที่ (2.28) และ (2.29) จะไดเซตของสมการเชิงเสนในรูปของเมตริกซดังนี้

(2.27) :

(2.28) :

(2.29)

18

หรือ

∆𝑓𝑓 = 𝐽𝐽∆𝑥𝑥

โดยที่ J คือ เมตริกซของอนุพันธยอย ซึ่งเรียกวาจาโกเบียนเมตริกซ (Jacobian matrix)

การหาผลเฉลยของระบบสมการไมเชิงเสนดวยวิธีของนิวตัน -ราฟสัน จะอาศัยกระบวนการ

ทําซ้ํา (Iterative Method)โดยการสมมติคาคําตอบในตอนเริ่มตนแลว จึงคํานวณหาคาผิดพลาด

(Mismatch) เพื่อนําไปปรับเปลี่ยนคาเพื่อนําไปปรับคาคําตอบในรอบถัดไป การปรับแตงจะกําหนด

โดยสมการที่ (2.32)

𝑋𝑋𝑖𝑖(𝑘𝑘+1) = 𝑋𝑋𝑖𝑖𝑘𝑘 + ∆𝑋𝑋𝑖𝑖

(𝑘𝑘)

(2.30)

(2.31)

(2.32)

19

บทที่ 3

ระเบียบวิธีวิจัย

2.1 หลักการแนวคิดในการออกแบบ

ในโครงงานนี้จะใชระเบียบวิธีของนิวตัน -ราฟสัน ในการแกปญหาการไหลของกําลังไฟฟา

จากสมการเพาเวอรโฟลว ทําใหทราบวากําลังไฟฟาแอกทีฟและรีแอกทีฟที่แตละบัสเปนฟงกชันใน

เทอมของขนาดและมุมเฟสของแรงดันของทุกบัส เมื่อระบุคากําลังไฟฟาแอกทีฟและรีแอกทีฟในแต

ละบัสดวยตัวยก Sch สามารถเขียนสมการเพาเวอรโฟลวไดดังนี้

ในสมการเชิงเสนในรูปของเมตริกซ สามารถแสดงสมการที่ (3.1) ในรูปเมตริกซไดเปน

20

โดยที่

สมการที่ (3.2) สามารถเขียนใหอยูในรูปอยางงายไดดังสมการที่ (3.4)

ดังนั้นในทุกๆ รอบของการคํานวณจะไดคาปรับแตง (Correction) ของขนาดและมุมเฟสของ

แรงดันในแตละบัสดังนี้

จากสมการที่ (2.32) และ (3.5) จะไดวา

สามารถสรุปขั้นตอนการแกสมการเพาเวอรโฟลวดังนี้

1. ขั้นตอนแรกทําการอานขอมูลของบัส สายสง หมอแปลง และอุปกรณอื่นๆ ในระบบ

2. คํานวณแอตมิตแตนซเมตริกซ

3. กําหนดคาขนาดและมุมเฟสเริ่มตนของแรงดันในแตละบัส

4. สรางเวกเตอรกําลังไฟฟาแอกทีฟและรีแอกทีฟของแตละบัสและบันทึกคาความคลาดเคลื่อน

สูงสุด

21

5. คํานวณจาโกเบียนเมตริกซโดยใชสมการ (3.3)

6. ดูคําตอบที่ไดมีความคลาดเคลื่อนไมเกินคาที่กําหนดหรือไม

7. ถาเกินทําการปรับขนาดและมุมเฟสของแรงดันในแตละบัสโดยใชสมการ (3.6) และ (3.7)

8. ถาคําตอบที่ไดไมเกินคาที่กําหนดไว ก็จะไดคาขนาดและมุมเฟสของแรงดันในแตละบัสและ

คํานวณกําลังไฟฟาสูญเสีย ตอไป

3.2 ตัวอยางในการทดลอง

ดังตัวอยางที่จะยกตอไปนี้ ในการแกปญหาการไหลของกําลังไฟฟาในระบบซึ่งมี 5 บัส โดยอางอิงมา

จากตัวอยางใน [4]

ตัวอยาง : จากรูป แผนภาพเสนเด่ียว (single-line diagram) ซึ่งมี 5 บัสตอในระบบ จาก

ตารางขอมูลอินพุต 3.1 , 3.2 และ 3.3 ในตารางที่ 3.1 บัสที่ 1 ซึ่งเปนบัสที่ตออยูกับเครื่องกําเนิด

ไฟฟา เรากําหนดใหเปนบัสอางอิง (swing bus) แลบัสที่ 3 ซึ่งเปนบัสที่มีเครื่องกําเนิดไฟฟาและ

โหลดตออยู ซึ่งกําหนดใหเปนบัสควบคุมแรงดัน (voltage-controlled bus) สวนบัสที 2, 4 และ 5 ให

เปนโหลดบัส โดยบัสที่ 2 และ 3 เปนบัสที่มีการเหนี่ยวนํา ทําใหกําลังไฟฟารีแอกทีฟที่บัส 2 มีคา

ตรงกันขามกับกําลังไฟฟารีแอกทีฟในสายสงของบัส 2 ซึ่งมีคาเทากับ -0.7 และ

กําลังไฟฟารีแอกทีฟในสายสงของบัส 3 มีคาเทากับ -0.1

รูปที่ 3.1 แผนภาพเสนเด่ียว (single-line diagram)

22

กําหนดใหบัสที่ k คาํนวณหาคาตัวแปรดังนี ้

คาขนาดแรงดันไฟฟาที่บัส k ( )

คามุมเฟสที่บัส k ( )

คากําลังไฟฟาแอกทีฟที่บัส k ( )

คากําลังไฟฟารีแอกทีฟที่บัส k ( )

คาอินพุตที่ไมทราบคา สามารถคํานวณหาคาตางๆ โดยอาศัยพื้นฐานของ

แกปญหา

บัสที่ 1 เปนบัสอางอิง ตัวแปรที่ไมทราบคาคือกําลังไฟฟาแอกทีฟและกําลังไฟฟารี

แอกทีฟ

: ในขอมูลอินพุต และตัวแปรที่ไมทราบคา ในตารางที่ 3.4 ดังนี้

บัสที่ 3 เปนบัสควบคุมแรงดัน ตัวแปรที่ไมทราบคาคือคากําลังไฟฟารีแอกทีฟและ

มุมเฟส

สวนบัสที่ 2 ,4 และ 5 เปนโหลดบัส ตัวแปรที่ไมทราบคาคือขนาดแรงดันและมุม

เฟส

บัสที่ 1 และ 3 ไมไดตอเชื่อมกันโดยตรงกับบัสที่ 2 ในการคาํนวณดวย

ดังนั้นคา แอตมิตแตนซที่บัส 2 ไปบสั 1 และ ที่บัส 2 ไปบสั 3 มีคาเทากับศูนย

เงื่อนไขเริ่มตน

บัสอางอิง : กําหนดเปนบัสที่ 1 มุมเฟสของแรงดันไฟฟามีคาเปน 0

บัสควบคุมแรงดัน : ขนาดของแรงดันไฟฟาถูกกําหนดเปนคาจําเพาะและมุมเฟสขอ ง

แรงดันไฟฟามีคาเปน 0

โหลดบัส : ขนาดของแรงดันไฟฟามีคา 1.0 p.u. และมุมเฟสของแรงดันไฟฟามีคา

เปน 0

ขั้นตอนการคํานวณเพาเวอรโฟลว

1. กําหนดแรงดันที่บัสอางอิง ใหเปน 1.0 p.u. และมุมเฟสเปน 0 องศา

2. คํานวณคากําลังไฟฟาเชิงซอนและผลตางของกําลังไฟฟาที่บัสตางๆ

3. คาํนวณ Jacobian matrix

4. แกระบบสมการเชิงเสน

23

5. นําคาการเปลี่ยนเฟสและขนาดแรงดันไปแกไขคาเดิม

จากแผนภาพเสนเด่ียว (Single line Diagram) นํามาเขียนในรูป Admittance Diagram ไดดังนี้

รูปที่ 3.2 Admittance Diagram

1. เปลี่ยนแหลงกําเนิดจากแหลงกําเนิดแรงดัน (Voltage) เปนแหลงกําเนิดกระแส

(Current)

การเขียน Admittance diagram

2. มองวาหมอแปลงไฟฟา (Transformer) เปนสายสงจากบัส 1 5

3. จากโหลดที่ตออยูกับบัส 2 และบัส 3 ใหเปลี่ยนเปนS และตอกับกราวน (Ground)

4. ในสายสง (Transmission Line) จะเปนแอดมิตแตนซ (Admittance) เชื่อมตอระหวางบัส

หนึ่งกับอีกบัสหนึ่ง

(3.8)

(3.9)

(3.10)

24

5. เปลี่ยนบัสใหเปนโหนด (Node)

ถาพิจารณาที่ Node 1;

Node 2;

Node 3;

Node 4;

Node 5;

ที่บัส 1 และบัส 3 ไมไดตอโดยตรงกับบัส 2 ดังนั้น

จาก

ใช เราสามารถใชสมการโนเดล (Nodal Equation) สําหรับระบบไฟฟากําลังคือ

(3.11)

(3.12)

25

นํามาเขียนในรูปเมตริกแลวจะเรียกวา Nodal Admittance ดังนี ้

จากการคํานวณหาแอตมิตแตนซเมตริกซบัสจะไดคําตอบในรูปแบบเชิงขั้ว ดังนี ้

12.47 85.71 0 0 0 12.47 94.30 7.15 84.63 0 2.49 95.17 4.98 95.170 0 24.93 85.71 24.93 94.31 00 2.49 95.17 24.93 94.31 37.11 85.37 9.96 95.17

12.47 94.3 4.98 95.17 0 9.96 95.17 27.24 85.2

∠− ° ∠ ° ∠− ° ∠ ° ∠ ° ∠− ° ∠ ° ∠ ° ∠ ° ∠− ° ∠ ° ∠ ° ∠ ° ∠ ° ∠− °

ตารางที่ 3.1 ขอมูลบัสอินพุต (Bus input data)

Bus Type

V Δ P QG PG QL QL QGmax Gmin

Per

unit Degrees

Per

unit

Per

unit

Per

unit

Per

unit

Per

unit

Per

unit

1

2

3

4

5

Swing

Load

Constant

Voltage

Load

Load

1.0

-

1.05

-

-

0

-

-

-

-

-

0

1.3

0

0

-

0

-

0

0

0

2.0

0.2

0

0

0

0.7

0.1

0

0

-

-

1.0

-

-

-

-

-0.7

-

-

ตารางที่ 3.2 ขอมูลอินพุตของสายสง (Line input data)

Bus to Bus R’ X’ G’ B’ Maximum MVA

Per unit Per unit Per unit Per unit Per unit

2-4

2-5

4-5

0.036

0.018

0.009

0.4

0.2

0.1

0

0

0

0.43

0.22

0.11

3.0

3.0

3.0

(3.13)

26

ตารางที่ 3.3 ขอมูลอินพุตของหมอแปลง (Transformer input data)

Bus to

Bus

R X G Bc Maximum

MVA m Tap

Setting

Per unit Per unit Per unit Per unit Per unit Per unit

1-5

3-4

0.006

0.003

0.08

0.04

0

0

0

0

1.5

2.5

-

-

ตารางที่ 3.4 ขอมูลสรปุอินพุตของหมอแปลง (Transformer input data)

Bus Input Data Unknowns

1

2

3

4

5

V1 = 1.0, δ1

P

= 0

2 = PG2 – PL2

Q

= -2

2 = QG2 – QL2

V

= -0.7

3

P

= 1.05

3 = PG3 – PL3

P

= 1.1

4 = 0, Q4

P

= 0

5 = 0, Q5

P

= 0

1, Q

V

1

2, δ

2

Q3, δ

3

V4, δV

4

5, δ5

จากสมการ

𝑦𝑦𝑘𝑘 = 𝑃𝑃𝑘𝑘 = 𝑃𝑃𝑘𝑘(𝑥𝑥) = 𝑉𝑉𝑘𝑘 ∑ YknNn=1 𝑉𝑉𝑛𝑛 𝐜𝐜𝐜𝐜𝐜𝐜(𝛿𝛿𝑘𝑘 − 𝛿𝛿𝑛𝑛 − 𝜃𝜃𝑘𝑘𝑛𝑛 )

𝑦𝑦𝑘𝑘+𝑁𝑁 = 𝑄𝑄𝑘𝑘 = 𝑘𝑘(𝑥𝑥) = 𝑉𝑉𝑘𝑘 ∑ YknNn=1 𝑉𝑉𝑛𝑛 𝐜𝐜𝐬𝐬𝐬𝐬(𝛿𝛿𝑘𝑘 − 𝛿𝛿𝑛𝑛 − 𝜃𝜃𝑘𝑘𝑛𝑛 )

k = 2, 3 ,…, N

จากขั้นตอนที่ 1 และสมการ (3.14)

(3.14)

(3.15)

27

คํานวณผลตางกําลังไฟฟา

K

2

3

4

-1.9964

0.9996

0.1975

-0.3754

-

1.497

5 0.000345 0.1654

คาํนวณ Jacobian matrix จาก

J1 J2

J3 J4

(3.16)

28

ตารางที่ 3.5 พื้นฐานการหาจาโกเบียนเมตริกซ

จํานวนบัสในระบบมีทั้ง ส้ิน N=5 บัส จากสมการ (3.14) และ (3.15) ประกอบดวย 2(N - 1)

= 8 สมการ โดย จาโกเบียนเมตริกซ J(i) มีขนาด 8x8 เมตริกซ

พิจารณาที่บัสควบคุมแรงดันที่บัส 3 จะไดคาขนาดแรงดันที่บัส 3 , ถูกกําหนดใหมี

คาคงที่จึงทําใหการปรับแตงคาแรงดัน (Voltage Correction) ในเทอม มีผลทําให

คอลัมนที่ 8 ของจาโกเบียนเมตริกซถูกคูณดวยศูนย ทําใหสามารถกําจัดคอลัมนที่ 8 ออกไปได และ

กําลังไฟฟารีแอกทีฟที่บัส 3 [ ] จะไมถูกกําหนด ดังนั้น ไมสามารถกําหนดได จึงทํา

ใหแถวที่ 8 ของจาโกเบียนเมตริกซ ถูกกําจัดจนเหลือเพียง 7x7 เมตริกซ ซึ่งคากําลังไฟฟารีแอกทีฟ

ที่บัสควบคุมแรงดันสามารถคํานวณหาไดในภายหลัง

เนื่องจากบัสที่ 1 เปน swing busและบัสที่ 3 เปน PV bus ดังนั้นสามารถเขียนจาโคเบียน

เมตริกซไดขนาด 7x7 ดังนี้

29

จะไดคําตอบของจาโคเบียนเมตริกซดังนี้

7.4398 0 2.4799 4.9599 0.6696 0.2232 0.4464

0 26.1033 26.1033 0 0 1.9577 02.4799 26.1033 38.5032 9.9197 0.2232 2.8872 0.89284.9599 0 9.9197 27.3096 0.4464 0.8928 2.27140.6696 0 0.2232 0.4464 6.7897 2.4799 4.9598

0.

− − − −− −

− − − − −− − − −− − −

2232 1.9577 2.8872 0.8928 2.4799 35.4767 9.91970.4464 0 0.8928 2.2714 4.9598 9.9197 26.9796

− − − − − −

ทําการแกปญหาการไหลของกําลังไฟฟา ดวยระเบียบวิธีนิวตัน-ราฟสัน 4 ขั้นตอนโดย

เริ่มตนการทําซ้ํา (iteration ) ของ

ขั้นตอนที่ 1

∆𝑦𝑦(𝑖𝑖) = �∆𝑃𝑃(𝑖𝑖)∆𝑄𝑄(𝑖𝑖)� = �𝑃𝑃 − 𝑃𝑃[𝑥𝑥(𝑖𝑖)]

𝑄𝑄 − 𝑄𝑄[𝑥𝑥(𝑖𝑖)]�

ใชสมการที่ (3.14) และ (3.15) ไปคาํนวณได

ขั้นตอนที่ 2 ใชสมการในตารางที่ 3.5 คํานวณหาจาโกเบียนเมตริกซ

ขั้นตอนที่ 3

�𝐽𝐽1(𝑖𝑖) 𝐽𝐽2(𝑖𝑖)

𝐽𝐽3(𝑖𝑖) 𝐽𝐽4(𝑖𝑖)� �∆𝛿𝛿(𝑖𝑖)∆𝑉𝑉(𝑖𝑖)� = �∆𝑃𝑃(𝑖𝑖)

∆𝑄𝑄(𝑖𝑖)�

ใชสมการ (3.20) ในการแกสมการ

(3.17)

(3.18)

(3.19)

(3.20)

30

คํานวณผลตางของแรงดันและมุมไฟฟาจะได

ขั้นตอนที่ 4

𝑋𝑋(𝑖𝑖 + 1) �𝛿𝛿(𝑖𝑖 + 1)𝑉𝑉(𝑖𝑖 + 1)� = �𝛿𝛿(𝑖𝑖)

𝑉𝑉(𝑖𝑖)� + �∆𝛿𝛿(𝑖𝑖)∆𝑉𝑉(𝑖𝑖)�

และทําการคํานวณหาคา

คาํนวณหาแรงดันและมุมไฟฟาจะได

จากการแกปญหาการไหลของกําลังไฟฟาในบัส สายสงและหมอแปลง คาเอาทพุตที่ไดดังตารางที่

3.5, 3.6 และ 3.7 สวนบัสที่ 2 ขนาดของแรงดันจะตํ่ามีคาเทากับ 0.834 เปอรยูนิต

ตารางที่ 3.6 ขอมูลคาเอาทพุตที่บัส (bus output data)

GENERATION LOAD

0.95>V>1.05 VOLTAGE

MAGNITUDE

PHASE

ANGLE

PG

QG

PL

QL

bus# per unit degrees per unit per unit per

unit

per

unit

1

2

3

4

5

1.000

0.834

1.050

1.019

0.974

0.000

-22.407

-0.597

-2.834

-4.548

0.987

0.000

1.300

0.000

0.000

0.286

0.000

0.844

0.000

0.000

0.000

2.000

0.200

0.000

0.000

0.000

0.700

0.100

0.000

0.000

***

TOTAL 2.287 1.129 2.200 0.800

(3.21)

31

ตารางที่ 3.7 ขอมูลคาเอาทพุตที่สายสง (line output data)

LINE# BUS TO

BUS

P Q S RATING EXCEEDED

1

2

3

2 4

4 2

2 5

5 2

4 5

5 4

-0.730

0.759

-1.270

1.314

0.336

-0.333

-0.348

0.304

-0.352

0.658

0.376

-0.456

0.808

0.818

1.318

1.469

0.504

0.565

***

ตารางที่ 3.8 ขอมูลคาเอาทพุตที่หมอแปลง (transformer output data)

TRAN.# BUS TO

BUS

P Q S RATING EXCEEDED

1

2

1 5

5 1

3 4

4 3

0.987

-0.981

1.100

-1.095

0.286

-0.201

0.744

-0.680

1.028

1.001

1.328

1.289

****

สรุป จากตัวอยางของระบบกําลังไฟฟา 5 บัส ซึ่งประกอบดวยบัสที่เปนเครื่องกําเนิดไฟฟาหรือบัส

อางอิง บัสควบคุมแรงดัน และโหลดบัส ซึ่งไดทําการนําวิธีนิวตัน -ราฟสัน (Newton-Raphson

Method) มาแกปญหาซึ่งสามารถแกปญหาการไหลของกําลังไฟฟา (Optimal Power Flow) เพื่อนํา

ผลลัพธที่ไดไปทําการวิเคราะหระบบกําลังไฟฟาตอไปในการทําใหระบบดีที่สุด โดยวิธีการออปติไมเซ

ชัน (Optimization) นั่นเอง

3.3 ทฤษฎีออปติไมซเพาเวอรโฟลวในระบบกําลังไฟฟา

ในหัวขอนี้จะทําการออปติไมซเพาเวอรโฟลวของระบบกําลังไฟฟา 5 บัส ซึ่งจากหัวขอที่ผาน

มาเรานําขอมูลจริงจากการไฟฟามาศึกษาอางอิงเพื่อที่จะทําการหาเสนทางการสงจายของระบบ

กําลังไฟฟาที่ใหคาความสูญเสียนอยที่สุด (loss) จากการที่ไดมีโอกาสไปดูการทํางานของหนวยงาน

การไฟฟาสวนภูมิภาคชลบุรี และบางแสน ทําใหไดแนวคิดในการวิเคราะหการไหลของกําลังไฟฟาได

32

ชัดเจนขึ้น โดยเริ่มตนทําใหทราบถึงระบบการทํางานของการไฟฟาซึ่งนํามาประยุกตใชกับโครงงานนี้

ได

ในการสงจายกําลังไฟฟาทั่วไปจะแบงออกเปนแบบ 2 แบบ คือ แบบ Radial สําหรับแบบนี้

จะมีแหลงจายเพียงแหลงเดียวและกระแสไฟฟาจะไหลไปในทิศทางเดียว สวนแบบ Network นั้นจะมี

แหลงจายต้ังแต 2 แหลงขึ้นไป มีกระแสอาจไหลได 2 ทิศทาง ซึ่งขอดีของระบบแบบนี้คือมีความ

ยืดหยุนในการจายพลังงานไฟฟาสูงหากแหลงจายไฟอันหนึ่งไมสามารถจายพลังไฟฟาได แหลงจาย

ไฟฟาแหลงอื่นๆ ก็สามารถจายพลังงานไฟฟาทดแทน จึงไมทําระบบไฟฟาทั้งหมดหยุดการทํางาน

และถาแหลงจายหรือสายสงเสนใดเสนหนึ่ง หลุดออกจากระบบไฟฟา จะสงผลกระทบตอระบบ

โดยรวมนอยมากทําใหมีความเชื่อถือไดของระบบสูง ซึ่งในมุมมองของการไฟฟาการสงจาย

กําลังไฟฟาที่ดีตองขึ้นอยูกับความนาเชื่อถือของระบบ และคาความสูญเสียที่นอยที่สุด ซึ่งในโครงงาน

นี้เราจะวิเคราะหโดยมองจากการสงจายกําลังไฟฟาเปนแบบวงปด ( open loop) คือเปนการสงจาย

กําลังไฟฟาที่มีการทํางานแบบกระแสไหลไดสองทิศทาง ในการออปติ ไมซเราจะสรางเงื่อนไขใหกับ

ระบบกําลังไฟฟา 5 บัส โดยมีการกําหนดใหทุกบัสมีการตอเชื่อมถึงกันหมด โดยมีการปดเปด

(on/off) ของเบรกเกอรซึ่งเราจะมองเปนการทํางานของ swich จะเปนตัวควบคุมการทํางานของการ

ไหลของกระแสไฟฟา ในการสรางขอบเขตใหระบบจะเปนการทําใหหาเสนทางการสงจายกําลังไฟฟา

ที่เหมาะสมที่สุดตามเงื่อนไขที่กําหนดไดเร็วขึ้น

วิธีการออปติไมซเพาเวอรโฟลว ในที่นี้เราจะใช วิธีการ Brute Force มาชวยในการแกปญหา

โดยสําหรับวิธีการ Brute Force นั้นคือ วิธีการแกปญหาโดยการส่ังใหคอมพิวเตอรทํางานไปเรื่อยๆ

จนกวาจะหาคําตอบจากความเปนไปไดทั้งหมดของปญหา และแทนคาทุกอยางเทาที่จะเปนไปได ซึ่ง

วิธีนี้แบบนี้ ขอดีของวิธีนี้คือ เปนวิธีการแกปญหาที่งายๆ ตาม common sense เมื่อเรามีปญหา

วิธีการแกปญหาแบบนี้จะเปนวิธีแรกที่คนจะนึกออก ซึ่งจะชวยใหเราแกปญหาไดงายขึ้น สําหรับวิธีนี้

เราไดนําไปประยุกตใชกับโปรแกรม MATLAB ในการแกปญหา ดังนี ้

1. สายสงจายกําลังไฟฟาของทุกบัสถูกเชื่อมตอถึงกันหมด และมีเบรกเกอรทําหนาที่ปดเปด

การทํางานในการสงจาย ซึ่งจะมองวามี switch ในแตละเสนเรากําหนดใหเปน

ดังรูป

รูปที่ 3.3 กําหนดการทํางานของ switch

33

2. สรางเงื่อนไขในการทํางานโดยกําหนดใหทุกเสนทางของการสงจายตองมีการเชื่อมตอกับ

แหลงจาย (generator) , กําหนดวา switch ตองทํางานสูงสุดทั้งหมดกี่ตัว , ในการทาํงาน

ของสวิตซอยางนอย 1 ตัวตองเชื่อมตออยูกับแหลงจาย จากเงื่อนไขขางตนทําใหไดเงื่อนไข

ดังนี้

ตารางที่ 3.9 เงื่อนไขในการทํางานของระบบกําลังไฟฟา 5 บัส

ครั้งที ่

กรณีการทํางานของ Switch

กรณีที่ไมถูกนํามาคิด

1 Switch ตองทํางานอยางนอย 3 ตัว 22 กรณี

2 ทํางานอยางนอย 1 ตัว 1 กรณี

3 ทํางานอยางนอย 1 ตัว 1 กรณี

4 ทํางานอยางนอย 1 ตัว 1 กรณี

5 ทํางานอยางนอย 1 ตัว 1 กรณี

3. กําหนดการทํางานของสวิตซในเปนสถานะลอจิก โดยถาสวิตซทํางานแบบเปดจะกําหนด

เปน 1 และถาสวิตซทํางานแบบปดกําหนดใหสถานะเปน 0

4. จากกรณีที่เปนไปไดทั้งหมดโดยคิดแบบวิธี Brute Force จะไดทั้งหมด 64 กรณี เมื่อเรา

สรางเงื่อนไขกําหนดขึ้น และทําการพิจารณาจะเหลือ 38 กรณี

5. จากกรณีทั้ง 38 กรณีที่ไดเรานํามาวิเคราะหกับระบบกําลังไฟฟา 5 บัสของเรา จะไดการ

เชื่อมตอเสนทางการสงจายของแตละบัส

6. ทําการนําเสนทางเหลานี้มาคิดคาความสูญเสียของกําลังไฟฟา (Power losses) ในแตละ

กรณี จากสมการ (3.22) และ (3.23) คากําลังไฟฟาความสูญเสียทั่วไปคือ

𝑃𝑃𝐿𝐿 = ���𝑎𝑎𝑖𝑖𝑖𝑖 �𝑃𝑃𝑖𝑖𝑃𝑃𝑖𝑖 + 𝑄𝑄𝑖𝑖𝑄𝑄𝑖𝑖 � + 𝑏𝑏𝑖𝑖𝑖𝑖 �𝑄𝑄𝑖𝑖𝑃𝑃𝑖𝑖 − 𝑃𝑃𝑖𝑖𝑄𝑄𝑖𝑖 ��𝑁𝑁𝑁𝑁

𝑖𝑖=1

𝑁𝑁𝑁𝑁

𝑖𝑖=1

(3.22)

𝑄𝑄𝐿𝐿 = ���𝑐𝑐𝑖𝑖𝑖𝑖 �𝑃𝑃𝑖𝑖𝑃𝑃𝑖𝑖 + 𝑄𝑄𝑖𝑖𝑄𝑄𝑖𝑖 � + 𝑑𝑑𝑖𝑖𝑖𝑖 �𝑄𝑄𝑖𝑖𝑃𝑃𝑖𝑖 − 𝑃𝑃𝑖𝑖𝑄𝑄𝑖𝑖 ��𝑁𝑁𝑁𝑁

𝑖𝑖=1

𝑁𝑁𝑁𝑁

𝑖𝑖=1

(3.23)

โดยที่ และ คือ กําลังไฟฟาจริงที่เขาสูบัส และ ตามลําดับ

และ คือ กําลังไฟฟารีแอคทีฟที่เขาสูบัส และ ตามลําดับ

และ คือ กําลังไฟฟาจริงและกําลังไฟฟารีแอคทีฟที่โหลดตองการที่บัส และ

ตามลําดับ

34

และ คือ กําลังไฟฟาจริงและกําลังไฟฟารีแอคทีฟที่ไหลเขาสูบัส และ

ตามลําดับ

NB คือ จํานวนบัสในระบบ

(สวนประกอบในอิมพิแดนซเมตริกซ)

และ (3.24)

(3.25)

(3.26)

(3.27)

;

35

รูปที่ 4.1 กราฟสมการ และ

บทที่ 4

ผลการคาํนวณ

4.1 การใชวิธีนิวตัน-ราฟสัน (Newton-Raphson) เพ่ือแกหาผลเฉลยระบบสมการไมเชิงเสน

ในที่นี้เราจะทําการใชวิธีนิวตัน-ราฟสัน เพื่อแกหาผลเฉลยของระบบสมการไมเชิงเสน โดยจะ

ยกตัวอยาง จากสมการ และ ดังรูป ใหหาคาํตอบ ที่ทําให

ระบบสมการเปนจริง

เริ่มตนการหาระบบสมการโดยวิธีนิวตัน-ราฟสัน โดยการกําหนดใหฟงกชัน

จากนั้นใชจาโคเบียนเมตริกซ (Jacobian matrix) เขามาชวย จะได

1

2

3

0

-1

-2

-3

-3 -1 -2 0 1 2 3

(4.1)

(4.2)

36

ทําการเขียนโคดคําส่ัง nonlinear.m ในโปรแกรม MATLAB จะไดคําตอบจากการคํานวณดวย

โปรแกรม MATLAB ดังนี้

Iteration Variable Jacobian matrix x

1 𝒙𝒙𝟏𝟏 2.7500 1.0000 -2.0000 0.8034 1.3034 𝒙𝒙𝟐𝟐 0.3513 1.6487 1.0000 -0.9733 -1.9733

2 𝒙𝒙𝟏𝟏 -1.5928 2.6068 -3.9466 -0.2561 1.0473 𝒙𝒙𝟐𝟐 -0.7085 3.6818 1.0000 0.2344 -1.7389

3 𝒙𝒙𝟏𝟏 -0.1205 2.0946 -3.4778 -0.0422 1.0051 𝒙𝒙𝟐𝟐 -0.1111 2.8499 1.0000 0.0092 -1.7296

4 𝒙𝒙𝟏𝟏 -0.0019 2.0102 -3.4593 -0.0009 1.0042 𝒙𝒙𝟐𝟐 -0.0025 2.7321 1.0000 0.0000 -1.7296

5 𝒙𝒙𝟏𝟏 -0.0000 2.0083 -3.4593 -0.0000 1.0042 𝒙𝒙𝟐𝟐 -0.0000 2.7296 1.0000 -0.0000 -1.7296

ทําการ iterations 5 ครั้ง จึงไดคา และ โดยในที่นี้จะ

พิจารณาคาความถูกตองของทศนิยม 4 ตําแหนง ซึ่งคาที่ได มีคาไมเปนตามที่กําหนดคือมีคา

เกินคาสูงสุดที่ต้ังไวคือ 1 นั่นเอง จึงทําการ iterations ใหมอีกครั้งโดยกําหนดคาเริ่มตนใหมคือ [-

0.5;1] ซึ่งจะไดคําตอบที่เปนที่ยอมรับได คือ และ โปรแกรมจึงหยุด

การคํานวณดังนี้

สรปุ เมื่อนําคา และ ที่ไดจากการคํานวณโดยโปรแกรม MATLAB ไปแทนกลับในสมการ

เริ่มตนทําใหสมการเปนจริง ดังนั้นสรุปไดวาผลลัพธที่ไดถูกตอง ดังนั้นการแกหาผลเฉลยของระบบ

สมการไมเชิงเสน โดยใชวิธีนิวตัน -ราฟสัน สามารถทําการแกปญหาทางคณิตศาสตรไดเชนเดียวกับ

การนําไปประยุกตใชในการแกปญหาการวิเคราะหของการไหลของกําลังไฟฟาในระบบกําลังไฟฟาได

(4.3)

37

4.2 การ Simulation ของ 3–Bus ในระบบกําลังไฟฟา

จากการที่ไดทําการคํานวณปญหาการไหลของกําลังไฟฟาโดยใชโปรแกรม MATLAB ซึ่ง

สามารถชวยในการแกปญหาในระบบกําลังไฟฟาได จึงไดทําการยกตัวอยางระบบกําลังไฟฟาขนาด 3

บัส ในการจําลองการไหลของกําลังไฟฟาเพื่อชวยใหเห็นถึงการแกปญหาไดชัดเจนขึ้น

จากรปูแสดง one-line diagram ในระบบกําลังไฟฟา 3 บัส โดยบัส 1 และ 3 เปนเครื่อง

กําเนิดไฟฟา (Generators) มีขนาดแรงดัน และ และกําลังไฟฟา

จริง (real power) ของ Generators มีคา 200 MW และโหลดมีคา 400 MW และ 250 MVAR คาใน

สายสง (Line Impedances) ในระบบเปอรยูนิตเทากับ 100 MVA และ line charging susceptances

มีคาเปนลบ จงแกปญหาการไหลของกําลังไฟฟา (power flow) โดยระเบียบวิธีนิวตัน-ราฟสัน

(Newton-Raphson)

รูปที่ 4.2 แสดง one-line diagram ของระบบกําลังฟา 3 บัส

ใชโปรแกรม MATLAB โดยอางอิงจากขอมูลตัวอยางเพื่อนํามาเปรียบเทียบกับโปรแกรม

PowerWorld เพื่อเปรียบเทียบผลที่ไดวามีความแตกตางมากนอยเพียงใด จากโปรแกรม MATLAB

เขียนใน M-file โดยต้ังชื่อวา threebus.m ไดคําตอบดังนี้

Iteration Bus

No.

Bus

Type

DC DX Voltage

Magnitude

(pu) , [V]

Phase

Angle , 𝜹𝜹

(degree)

1 1

2

3

Slack

bus

PQ bus

PV bus

-2.8600

1.4384

0.2200

-0.0453

-0.0077

-0.0265

1.0500

0.9735

1.0400

0

-0.0453

-0.0077

38

2 1

2

3

Slack

bus

PQ bus

PV bus

-0.0992

0.0217

-0.0509

-0.0018

-0.0010

-0.0018

1.0500

0.9717

1.0400

0

-0.0471

-0.0087

3 1

2

3

Slack

bus

PQ bus

PV bus

1.0e-003 *

-0.2166

0.0382

-0.1430

1.0e-005 *

-0.3856

-0.2386

-0.4412

1.0500

0.9717

1.0400

0

-0.0471

-0.0087

คาคําตอบที่ตองการหาขางตนในรูปเปอรยูนิต

คากําลังไฟฟาแอกทีฟใน Slack bus มีคาเทากับ P1 = 2.1842

คากําลังไฟฟารีแอกทีฟใน Slack bus มีคาเทากับ Q1 = 1.4085

คากําลังไฟฟารีแอกทีฟใน Slack bus มีคาเทากับ Q3 = 1.4618

ดังนั้นทําการ iteration ทั้งหมด 3 ครั้ง จึงไดคําตอบที่เปนไปตามเงื่อนไขโดยใชระเบียบวิธีนิวตัน –

ราฟสัน หลังจากนั้นนําตัวอยางนี้ไปทําการทดลองในโปรแกรม PowerWorld Simulator

จากการใชโปรแกรม PowerWorld Simulator โดยการสรางบัสตามขอมูลตัวอยางจะผลไดดังนี้

รูปที่ 4.3 ระบบกําลังฟา 3 บัสโดยโปรแกรม PowerWorld

39

เมื่อทําการ Run Mode จะไดดงัรปู

รูปที่ 4.4 แสดงการไหลของกําลังไฟฟา ขณะทําการรันในโปรแกรม PowerWorld

คาบัสแอตมิตแตนซที่ไดดังนี้ ซึ่งผลที่ไดจะสอดคลองกับคาที่ไดจาก MATLAB ซึ่งตรงกับคําตอบใน

ตัวอยาง

รูปที่ 4.5 แสดงคาบสัแอตมติแตนซ

คาจาโคเบียนซ (Jacobian) ดังนี้

รูปที่ 4.6 แสดงคาจาโคเบียนซ

40

คาโหลด (load) ที่ไดดังนี้

รูปที่ 4.7 แสดงคาโหลด

สรุปคาที่ไดจากการทดลอง

รูปที่ 4.8 สรุปผลการทดลองที่ไดจากโปรแกรม PowerWorld

41

จากการเปรียบเทียบกับโปรแกรม PowerWorld พบวาคําตอบที่ไดมีความใกลเคียงกับ

คําตอบที่ไดจากตัวอยางที่นํามาเปรียบเทียบ และคําตอบที่ไดบางคาอยางเชน คาของ Y-BUS

ตรงกัน ซึ่งสรุปไดวาโปรแกรม PowerWorld มีความเหมาะสมที่จะนํามาวิเคราะหปญหาการไหลของ

กําลังไฟฟาอยางเหมาะสม (Optimal Power Flow) แตสําหรับคาที่ไมตรงกับคําตอบของตัวอยางอาจ

มาจากการปรับแตงของโปรแกรมที่ตางกัน แตที่สังเกตวามีความแตกตางระหวางคาที่ไดจาก

MATLAB และโปรแกรม PowerWorld คือคาคําตอบที่ไดของ MATLAB จะอยูในรูปของเปอรยูนิต

(per unit) สวนคําตอบของ PowerWorld จะเปนในรูปของพื้นฐานกําลังไฟฟา (MVA base) นั่นเอง

Program Bus

No.

Bus Type Voltage

Magnitude , [v]

(pu)

Phase Angle

, 𝜹𝜹

(Degree)

MATLAB

1

2

3

Slack bus

PQ bus

PV bus

1.0500

0.9717

1.0400

0.00

-3.09

-0.89

PowerWorld

1

2

3

Slack bus

PQ bus

PV bus

1.0000

0.9200

1.0000

0.00

-3.10

-0.80

ตารางที่ 4.1 สรุปผลการเปรียบเทียบผลลัพธที่ไดจากโปรแกรม MATLAB และ PowerWorld

4.3 การทดลองศึกษาจากขอมูลจริงของการไฟฟาสวนภูมิภาคบางแสน

เนื่องจากไดทําการศึกษาขอมูลจากในหนังสือเพียงอยางเดียว จึงไดเล็งเห็นวาควรมี

การศึกษาจากขอมูลจริงของการไฟฟา และจากขอมูลจริงจะทําใหเห็นถึงระบบสงจายกําลังไฟฟาได

ชัดเจนขึ้นซึ่งในที่นี้เราทําการขอขอมูลจากทางการไฟฟาบางแสนเพื่อมาเปนกรณีศึกษา โดยทําการ

ขอขอมูลเกี่ยวกับบัสตางๆ ขอมูลในสายสง ดังนี้

Bus

ขอมูลบัส (Bus Data)

No.

Bus Name Voltage Max. Load Generation P.F.

kV MW MVAR MW MVAR

1 BSN1 22.30 27.00 14.40 0.00 0.00 88.24

2 BSN2 22.30 22.30 11.40 0.00 0.00 89.04

3 BPE1 22.60 17.30 4.40 0.00 0.00 96.91

4 BPE2 23.20 19.10 5.40 0.00 0.00 96.23

5 APA2 116.00 0.00 0.00 110.0 37.00 -

42

Bus

ขอมูลสายสง (Line Data)

R1 X1 R0 X0

pu. pu. pu. pu.

1 0.01654 0.37588 0.00678 0.30344

2 0.01654 0.37588 0.00678 0.30344

3 0.01373 0.35904 0.00678 0.30344

4 0.01373 0.35904 0.00678 0.30344

ตารางที่ 4.2 ขอมูลสถานีไฟฟาบางแสน (BSN), บางพระ (BPE) และอาวไผ (APA)รายงานสรุป

ประจําเดือนตุลาคม 2551

จากขอมูลขางตน ไดนํามาทดสอบในโปรแกรม PowerWorld Simulator 8.0 Glover/Sarma

โดยจากการออกแบบ One-line diagram ซึ่งไดโครงขาย Bus Network ของแตละบัสดังนี้

รูปที่ 4.9 แสดง One-line diagram ของระบบกําลังไฟฟา 5 บัส

ซึ่งไดผลการ Simulate โดยโปรแกรม PowerWorld ดังนี้

43

ที่บัส 1 กําหนดใหเปนสถานีไฟฟาบางแสน โดยต้ังชื่อวา BSN1 ซึ่งจาก Bus Network จะ

แสดงความสัมพันธของแตละบัสที่ตอเชื่อมกันอยู โดยแสดงคากําลังไฟฟาจริง กําลังไฟฟาปรากฏ

กําลังไฟฟารวม ของแตละบัสที่ตอเชื่อมกับบัส 1 ดวย ที่บัส 1 ใหเปนโหลด (Load Bus)

รูปที่ 4.10 แสดงตารางสรปุคาํตอบของบสั 1

ที่บัส 2 กําหนดใหเปนสถานีไฟฟาบางแสน โดยต้ังชื่อวา BSN2 ซึ่งจาก Bus Network จะ

แสดงความสัมพันธของแตละบัสที่ตอเชื่อมกันอยู โดยแสดงคากําลังไฟฟาจริง กําลังไฟฟาปรากฏ

กําลังไฟฟารวม ของแตละบัสที่ตอเชื่อมกับบัส 2 ดวย ที่บัส 2 ใหเปนโหลด (Load Bus)

รูปที่ 4.11 แสดงตารางสรปุคาํตอบของบสั 2

44

ที่บัส 3 กําหนดใหเปนสถานีไฟฟาบางพระ โดยต้ังชื่อวา BPE1 ซึ่งจาก Bus Network จะ

แสดงความสัมพันธของแตละบัสที่ตอเชื่อมกันอยู โดยแสดงคากําลังไฟฟาจริง กําลังไฟฟาปรากฏ

กําลังไฟฟารวม ของแตละบัสที่ตอเชื่อมกับบัส 3 ดวย ที่บัส 3 ใหเปนโหลด (Load Bus)

รูปที่ 4.12 แสดงตารางสรปุคาํตอบของบสั 3

ที่บัส 4 กําหนดใหเปนสถานีไฟฟาบางพระ โดยต้ังชื่อวา BPE2 ซึ่งจาก Bus Network จะ

แสดงความสัมพันธของแตละบัสที่ตอเชื่อมกันอยู โดยแสดงคากําลังไฟฟาจริง กําลังไฟฟาปรากฏ

กําลังไฟฟารวม ของแตละบัสที่ตอเชื่อมกับบัส 4 ดวย ที่บัส 4 ใหเปนโหลด (Load Bus)

รูปที่ 4.13 แสดงตารางสรปุคาํตอบของบสั 4

45

ที่บัส 5 กําหนดใหเปนสถานีไฟฟาอาวไผ โดยต้ังชื่อวา APA2 ซึ่งจาก Bus Network จะ

แสดงความสัมพันธของแตละบัสที่ตอเชื่อมกันอยู โดยแสดงคากําลังไฟฟาจริง กําลังไฟฟาปรากฏ

กําลังไฟฟารวม ของแตละบัสที่ตอเชื่อมกับบัส 5 ดวย ที่บัส 5 เปน Generator นั้นกําหนดใหเปน

Slack Bus โดยกําหนดคาเทากับ 1.0 per unit

รูปที่ 4.14 แสดงตารางสรปุคาํตอบของบสั 5

รูปที่ 4.15 โปรแกรม PowerWorld ใชวิธีการของ Newton ในการคํานวณ

46

รูปที่ 4.16 แสดงตารางคาโหลดที่ได

รูปที่ 4.17 แสดงตารางสรปุการ Simulate

47

นอกจากนี้โปรแกรม PowerWorld ยงัสามารถคาํนวณหา Y-BUS , Jacobian อีกดวย

รูปที่ 4.18 แสดงตาราง Y-Bus (Bus Admittance Matrix)

รูปที่ 4.19 แสดงตาราง Power Flow Jacobian

ขางตนคือผลการทดลองโดยใชโปรแกรม PowerWorld เพื่อใชเปรียบเทียบความถูกตองโดย

มีการอางอิงขอมูลจากการไฟฟาสวนภูมิภาคบางแสน ซึ่งในที่นี้ไดทําการทดลองโดยใชโปรแกรม

MATLAB โดยใชระเบียบวิธีนิวตัน-ราฟสัน (Newton-Raphson) เพื่อทําการคํานวณหาผลลัพธของ

การไหลของกําลังไฟฟาอยางเหมาะสม (Power Flow) มีการกําหนดขอบเขตจํานวนบัสทั้งส้ิน 5 บัส

ตามขอมูลที่กลาวไวเบื้องตน

48

Program

ผลลัพธที่ไดจากโปรแกรม MATLAB จากไฟล fivebus.m โดยการทําการ iteration ทั้งหมด 2

ครั้ง และผลลัพธที่ไดจากโปรแกรม PowerWorld ดังนี้

Iteration

Bus

No.

Bus

Type

Bus

Name

Voltage

Magnitude ,

[v]

(pu)

Phase

Angle

, 𝜹𝜹

(Degree)

MATLAB

1

1

2

3

4

5

PQ bus

PQ bus

PQ bus

PQ bus

Slack bus

BSN1

BSN2

BPE1

BPE2

APA2

1.0287

1.0484

1.1033

1.0075

1.0000

-5.4914

1.6418

1.1337

3.1446

0

2

1

2

3

4

5

PQ bus

PQ bus

PQ bus

PQ bus

Slack bus

BSN1

BSN2

BPE1

BPE2

APA2

0.8306

0.8293

0.8289

0.7965

1.0000

-9.7040

-9.7808

-9.8028

-11.6619

0

PowerWorld -

1

2

3

4

5

PQ bus

PQ bus

PQ bus

PQ bus

Slack bus

BSN1

BSN2

BPE1

BPE2

APA2

0.8200

0.8300

0.8000

0.9500

1.0000

-9.8000

-9.5000

-5.7000

-11.2000

0

สรุป จากการเปรียบผลลัพธที่ไดจากโปรแกรม MATLAB และ โปรแกรม PowerWorld ซึ่งไดคาที่

ใกลเคียงกันทําใหสรุปไดวาการแกปญหาการไหลของกําลังไฟฟาโดยโปรแกรม MATLAB มีความถูก

ตอง และเปนที่ยอมรับไดเมื่อเปรียบเทียบกับโปรแกรมสําเร็จรูปอยางโปรแกรม PowerWorld ซึ่งจะ

ใชโปรแกรม MATLAB ในการทําการออปติไมเซชัน (Optimization) ตอไป

4.4 การออปติไมซเพาเวอรโฟลวในระบบกําลังไฟฟา

การออปติไมซเพาเวอรโฟลว ในที่นี้จากทฤษฎีออปติไมซเพาเวอรโฟลวจากบทที่ 3 โดยใช

วิธีการของ Brute Force ไดนําไปประยุกตใชกับโปรแกรม MATLAB ในการแกปญหาไดผลลัพธ ดังนี้

49

ผลการคํานวณที่ได จากกรณีทั้ง 38 กรณีที่ไดเรานํามาวิเคราะหกับระบบกําลังไฟฟา 5 บัส

โดยใชทฤษฎีออปติไมซเพาเวอรโฟลวจากบทที่ 3 จะไดการเชื่อมตอเสนทางการสงจายของแตละบัส

ดังนี้

รูปที่ 4.20 เสนทางการสงจายทั้ง 38 กรณี

กรณ ี5 กรณ ี6

กรณ ี7 กรณ ี8

1 1

1 1

2 2

2 2

3 3

3 3

4 4

4 4

50

กรณ ี9 กรณ ี10

กรณ ี11 กรณ ี12

กรณ ี13 กรณ ี14

กรณ ี15 กรณ ี16

1 1

1 1

1 1

1 1

2 2

2 2

3 3

3 3

4 4

4 4

2 2

2 2

3 3

3 3

4 4

4 4

51

กรณ ี17 กรณ ี18

กรณ ี20

กรณ ี21 กรณ ี22

กรณ ี23 กรณ ี24

กรณ ี19

1 1

1 1

1 1

1 1

2 2

2 2

3 3

3 3

4 4

4

4 4

2 2

2 2

3 3

3 3 4

4 4

52

กรณ ี25 กรณ ี26

กรณ ี27 กรณ ี28

กรณ ี29 กรณ ี30

1 1

1 1

1 1

4

2

2 2

2

3 3

3 3 4 4

4

2 2

3 3 4 4

53

จากเสนทางที่ไดทั้งหมด 38 กรณี เมื่อทําการคํานวณดวยสมการ (3.22) และ (3.23) โดยคา

a-coefficient, b-coefficient, c-coefficient และ d-coefficient ของคาความสูญเสียในกําลังไฟฟา

ที่ไดจากการคํานวณในสมการที่ (3.24 -3.27) จะไดคําตอบดังตารางที่ 4.3 ดังนี้

54

ตารางที่ 4.3 แสดงคา coefficient สําหรับนําไปหาคา

a-coefficient for real transmission loss

1

2

3

4

5

0.2385

0.2346

0.2346

-0.1870

0

0.2346

0.2331

0.2331

-0.1730

0

0.2346

0.2331

0.2331

-0.1730

0

-0.1871

-0.1730

-0.1730

0.2000

0.1206

0

0

0

0.1206

0.1805

b-coefficient for real transmission loss

1

2

3

4

5

0

0.0235

0.0235

0.1126

0

-0.0235

0

0

0.1292

0

-0.0235

0

0

0.1292

0

-0.1126

-0.1292

-0.1292

0

-0.1468

0

0

0

0.1468

0

c-coefficient for reactive transmission loss

1

2

3

4

5

0.3243

0.3191

0.3191

-0.2353

0

0.3191

0.3170

0.3170

-0.2353

0

0.3191

0.3170

0.3170

-0.2353

0

-0.2545

-0.2353

-0.2353

0.2720

-0.1997

0

0

0

0.1640

0.2455

d-coefficient for reactive transmission loss

1

2

3

4

5

0

0.0320

0.0320

0.1531

0

-0.0320

0

0

0.1757

0

-0.0320

0

0

0.1757

0

-0.1531

-0.1757

-0.1757

0

-0.1997

0

0

0

0.1997

0

55

ดังนั้นเมื่อนําไปคํานวณโดยใชโปรแกรม MATLAB โดยสรางไฟลชื่อ result.m มาชวยในการ

แกปญหาจะไดผลลัพธดังนี้

กรณ ี คากําลังไฟฟาสูญเสีย ( )

1 0.4834

2 0.4395

3 0.4984

4 0.5753

5 0.4427

6 0.5051

7 0.5785

8 0.4612

9 0.4576

10 0.5345

11 0.5201

12 0.5970

13 0.5934

14 0.6703

15 0.4555

16 0.4520

17 0.5289

18 0.4116

19 0.4080

20 0.4849

21 0.4705

22 0.5474

23 0.5438

24 0.6207

25 0.4148

26 0.4112

27 0.4881

28 0.4737

29 0.5506

30 0.5470

56

31 0.6239

32 0.5066

33 0.5031

34 0.5800

35 0.5655

36 0.6424

37 0.6389

38 0.7157

จากผลลัพธขางตนเปนคาความสูญเสียกําลังไฟฟาทั้งหมด 38 กรณี ซึ่งเราไดทําการรันคาที่

เปนคากําลังสูญเสียนอยที่สุดในระบบซึ่งไดกรณีที 19 (จากรูป 4.20) คาที่ไดคือ minimum = 0.4080

ซึ่งเมื่อแสดงผลเปนกราฟจะไดดังรูป 4.21

รูปที่ 4.21 กราฟแสดงคา Minimum Power Loss จากการออปติไมซเพาเวอรโฟลว

สรุปไดวา จากการออปติไมซเพาเวอรโฟลวโดยใชโปรแกรม MATLAB โดยใชวิธีการแบบ Brute

Force เพื่อทําการหาเสนทางการสงจายของระบบกําลังไฟฟา 5 บัส ที่ทําใหเกิด loss ทั้งระบบนอย

ที่สุด ซึ่งเปนเสนทางการสงจายกําลังไฟฟาที่ดีที่สุด

57

นอกจากนี้เรายังสรางหนาตางแสดงผลกับผูใช (GUI) โดยสรางไฟลที่ชื่อ optimal.m เพื่อ

ชวยในการตอบสนองการทํางานกับผูใชไดงายขึ้นอีกดวย ดังรูป 4.22 ซึ่งเปนหนาตางแสดงผลขณะ

ยังไมทําการปอนขอมูลใดๆ ลงไป ซึ่งสังเกตวาจะมีหนาตางแสดงผล 3 ชอง ชองดานซายบนเปนชอง

ที่ไวสําหรับกรอกขอมูลของกําลังไฟฟาจริง (Real Power หนวยเปน MW ) , กําลังไฟฟาเสมือน

(Reactive Power หนวยเปน MVAR) , คาแรงดันไฟฟา (Voltage Magnitiude หนวยเปน per unit )

และคามุมไฟฟา (Phase Angle หนวยเปน degree ) ซึ่งตองกรอกขอมูลของทั้ง 5 บัส แลวทํากดปุม

คํานวณ สวนหนาตางทางดานซายลางเปนหนาตางแสดงผลลัพธที่ไดเปนกราฟ และสวนหนาตาง

ดานขวาเปนหนาตางที่แสดงเสนทางการเชื่อมตอของสายสงในแตละบัสทั้งหมด 38 กรณี

รูปที่ 4.22 หนาตางแสดงผลกับผูใช GUI

Data BUS 1 BUS 2 BUS 3 BUS 4 BUS 5

Real Power (MW) 27.00 22.30 17.30 19.10 110.0

Reactive Power (MVAR) 14.40 11.40 4.40 5.40 37.0

Voltage Magnitude (pu) 0.870 0.88 0.88 0.95 1.00

Phase Angle(degree) -8.00 -7.90 -7.90 -5.40 0.00

ตารางที่ 4.4 ขอมูลจริงของการไฟฟา สําหรับการคํานวณในหนาตาง GUI

58

ซึ่งในที่นี้เรานําขอมูลจริงจากการไฟฟาไปใชในการคํานวณดังนั้นจึงทําการกรอกขอมูลดัง

ตารางที่ 4.4 นําไปใสในชอง เมื่อกดปุม Calculate จะไดผลลัพธดังรูปที่ 4.23 ซึ่งเราจะสังเกตไดจาก

กราฟในแกนนอนจะหมายถึงกรณีตางทั้งหมด 38 กรณี สวนแกนแนวต้ังจะหมายถึงคา power loss

(MW) จะเปนไดวาจุดที่ตํ่าที่สุดในกราฟคือตําแหนงที่ 19 ซึ่งถาดูจากกราฟอาจมีอีกตําแหนงที่อยูใน

แนวเดียวกันอีกตําแหนงคือตําแหนงที่ 26 มีคา 0.4112 ซึ่งจริงแลวคาทั้งสองจุดนี้ตางกัน เพียง

0.0032 แตเราตองการจุดที่คาความสูญเสียนอยที่สุดเพียงจุดเดียวเทานั้น

รูปที่ 4.23 โปรแกรม OPTIMAL POWER FLOW ซึ่งทําการรันแสดงคาผลลัพธที่ได

เนื่องจากเราไดทําการนําผลลัพธที่ไดจากโปรแกรม MATLAB ไปเปรียบเทียบผลกับ

โปรแกรม PowerWorld เพื่อใหทราบวาคาที่ไดจากการออกแบบของเราแตกตางกับโปรแกรม

สําเร็จรูปที่ใชทั่วไปอยางไร ซึ่งเมื่อนําไปเปรียบเทียบในโปรแกรม PowerWorld เพื่อหาเสนทางที่ดี

ที่สุดที่มีคาความสูญเสียนอยที่สุดในการสงจายกําลังไฟฟาที่ไดเราไดออกแบบไว โดยเราจะทําการ

เปดเสนทางที่ไมเกี่ยวของ และปดเบรกเกอรเสนทางที่เกี่ยวของเชนเดียวกับที่ออกแบบไว เมื่อลองทํา

การโดยโปรแกรม PowerWorld ซึ่งได loss ของทั้งระบบกําลังไฟฟา 5 บัส ดังรูป 4.25

59

รูปที่ 4.24 แสดงระบบกําลังไฟฟา 5 บัส ที่ไดจากโปรแกรม PowerWorld

รูปที่ 4.25 แสดงผลลัพธที่ไดจากโปรแกรม PowerWorld

60

พบวาจากผลลัพธที่ไดในโปรแกรม PowerWorld คาํนวณคา loss ทั้งหมดของระบบได 0.7

MW สวนการคํานวณในโปรแกรม MATLAB ซึ่งจะไดคาที่เทากับ 0.7157 MW

เนื่องจากโปรแกรม PowerWorld นั้น เราไมทราบถึงการคํานวณของตัวโปรแกรมวาอาจมี

การตัดแตงคาเพื่อใหไดคําตอบมาไดอยางไร อยางเชนปญหาที่พบในโปรแกรม PowerWorld พบวา

เวลาทําการปอนคาไปแลวเมื่อทําการรันคาพบวาคาที่ไดเปลี่ยนแปลงไป ซึ่งคลาดเคลื่อนกับขอมูลที่

ปอนไวเบื้องตน ดังนั้นจึงสรุปไดวาผลการทดลองที่ไดจากโปรแกรม MATLAB สามารถยอมรับได

61

บทที่ 5

สรุปผลการทดลอง

5.1 สรุปผลการทดลอง

จากศึกษาโปรแกรม MATLAB และโปรแกรม PowerWorld ซึ่งนําขอมูลของระบบ

กําลังไฟฟา จากการไฟฟาบางแสน เปนจํานวน 5 บัส เพื่อนํามาคํานวณหาเสนทางการสงจาย

กําลังไฟฟาที่เหมาะสมกับระบบที่ใหคากําลังไฟฟาสูญเสีย (Power Loss) นอยที่สุด

การเปรียบเทียบผลการทดลอง

พบวาจากการเขียนโปรแกรมใน MATLAB จะไดคากําลังไฟฟาสูญเสียนอยที่สุดของระบบ

และเมื่อนํามาเปรียบเทียบกับคาที่ไดจากโปรแกรม PowerWorld แลว จะไดคากําลังไฟฟาสูญเสียที่

ใกลเคียงกัน ซึ่งหมายความวาในโปรแกรม PowerWorld นั้นมีความนาเชื่อถือของระบบ ทําให

สามารถอางอิงคําตอบที่ไดจากโปรแกรม MATLAB วาเปนคาที่ยอมรับไดเมื่อเทียบกับโปรแกรม

PowerWorld นั่นเอง

ดานโปรแกรม

เนื่องจากในทางไฟฟากําลังนั้น การสงจายพลังงานไฟฟามีการเปลี่ยนแปลงอยูตลอดเวลา

ดังนั้นในการเขียนโปรแกรมจึงจําเปนตองใหโปรแกรมสามารถคํานวณการสงจายพลังงานไฟฟาที่มี

การเปลี่ยนแปลงได โดยคาที่เปลี่ยนแปลง ณ เวลาตางๆ คือ Real Power (P), Reactive Power (Q),

Voltage Magnitude (V) และ Phase Angle ซึ่งจะตองนําคาพวกนี้มาคํานวณและหาเสนทางใหมใน

การสงจายกําลังไฟฟาของระบบนั้นใหมีคากําลังไฟฟาสูญเสียนอยที่สุด และการคํานวณในแตละครั้ง

อาจจะไดเสนทางที่แตกตางกันไป เพื่อใหเหมาะสมกับการลดคาความสูญเสียดังกลาว

62

5.2 ปญหาและอุปสรรค

1. เมื่อปอนคาตางๆ ในโปรแกรม PowerWorld แลว ตัวโปรแกรมจะทําการปรับคาใหมเอง

โดยคาที่เราปอนเขาไปจะถูกปรับเปลี่ยนไปจากเดิม อาจเกิดจากโปรแกรมปรับเปลี่ยนคาเพื่อให

เหมาะสมกับการคํานวณ

2. ในการคํานวณหาคาโดยโปรแกรม MATLAB จากตัวโปรแกรมที่เราสรางขึ้นอาจเกิด

ปญหาในการเขียนโคดได สาเหตุอาจเกิดจากการใสคาผิดพลาด หรือความผิดพลาด (error) ของ

โปรแกรมที่สรางขึ้นไมสมบูรณซึ่งอาจเกิดจากบัค (bug) ทําใหในการเขียนโปรแกรมอาจมีโอกาส

ผดิพลาดสูง

5.3 แนวทางการพัฒนาและประยุกตใชงาน

ในการเลือกใชโปรแกรม MATLAB นั้น เพราะโปรแกรมมีฟงกชั่นทางคณิตศาสตรและ

วิศวกรรมศาสตรมากมาย ทําใหสามารถปรับแตงโปรแกรมใหมีความแตกตางและหลากหลายได การ

ปรับปรุงโปรแกรมที่ใชหลักการในทางเขียนโปรแกรมเขามาชวย สามารถที่จะพัฒนาโปรแกรมที่เขียน

ขึ้นนี้ใหมีความสมบูรณมากยิ่งขึ้น อาจจะพัฒนาใหเพิ่มจํานวนบัสเปน n บัส ใหโปรแกรมสามารถ

คํานวณในระบบที่มีการตอเติมบัสเพิ่มมากขึ้นได สําหรับโปรแกรมนี้สรางขึ้นมาเพื่อระบบไฟฟาของ

บางแสนและบางพระเทานั้น การเขียนโปรแกรมจึงเจาะจงไปที่ระบบนี้ และเนื่องจากระบบดังกลาวมี

เฉพาะโหลดบัส ทําใหการคํานวณหาเสนทางการไหลของกําลังไฟฟามีขอจํากัดในการหาเสนทางที่

เหมาะสมที่สุด จึงไมสามารถคํานวณหาเสนทางที่เหมาะสมที่สุดจากทฤษฏีได ทําใหตองคิดหาวิธีการ

ที่จะคํานวณขึ้นมาเองโดยการเปดหรือปดเบรกเกอรดังกลาวขึ้นมา แตถาไมไดคิดแคระบบไฟฟาของ

บางแสนและบางพระเทานั้น แตคิดเปนระบบที่ใหญกวานั้นใหครอบคลุมทั้งจังหวัดชลบุรี หรือวา

เปลี่ยนระบบใหมีเครื่องกําเนิดไฟฟา 2 แหง จะทําใหสามารถหาเสนทางที่เหมาะสมที่สุดจากทฤษฎี

ตางๆ ได

63

เอกสารอางอิง

[1] นายกีรติ ชยะกุลคีรี , “การหาคําตอบการไหลของกําลังไฟฟาที่เอื้อใหเกิดประโยชนสูงสุด

โดยมีขอจํากัดฟซซี่แบบไมเปนเชิงเสน (NON-LINEAR FUZZY NETWORK

CONSTRAINED OPTIMAL POWER FLOW)” : ผูชวยศาสตราจารย และหัวหนาภาควิชา

วิศวกรรมไฟฟา คณะวิศวกรรมศาสตร มหาวิทยาลัยศรีปทุม.

[2] นายณัฐวุฒิ แผนสุวรรณ Mr. Nattawut Paensuwan, “การประเมินคากําลังไฟฟาสูญเสียใน

ระบบไฟฟากําลังโดยพิจารณาถึงความไมแนนอนของคากําลังไฟฟาและแรงดันไฟฟา

(POWER LOSS ASSESSMENT IN POWER SYSTEM WITH CONSIDERATION OF

POWER AND VOLTAGE UNCERTAINTY)”: สาขาวิชาวิศวกรรมไฟฟา ภาควิชา

วิศวกรรมไฟฟา คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย , 2548.Department of

Electrical Engineering Faculty of Engineering Chulalongkorn University Academic,

2005.

[3] D.P. KOTHARI AND J.S. DHILLON, “POWER SYSTEM OPTIMIZATION” : Professor

Centre for Energy Studies Former Director(I/C) Indian Institute of Technology Delhi

New Delhi and Professor Electrical and Instrumentation Engineering Sant Longowal

Institute of Engineering and Technology Longowal, 2006.

[4] HADI SAADAT ,“POWER SYSTEM ANALYSIS SECOND EDITION” : Milwaukee

School of Engineering, 2004.

[5] JAMES DANIEL WEBER, “IMPLEMENTATION OF A NEWTON-BASED OPTIMAL

POWER FLOW INTO A POWER SYSTEM SIMULATION ENVIROMENT”: B.S.,

University of Wisconsim – Platteville, 1995.

[6] JOHN J. GRAINGER AND WILLIAM D. STEVENSON,JR “POWER SYSTEM

ANALYSIS” : Professor, Department of electrical computer engineering North

Carolina State University,1994.

[7] Miss Prat Suksakhon B.Ind.Tech (Electrical Engineering), Optimal Generation and

Operation in an Interconnected System Using Optimal Power Flow Solution: King

Mongkut’s University of Technology Thonburi, 2004.

64

[8] S.H. GOH, Optimal Power Flow Analysis of a Deregulated Electricity Market: The

University of Queensland, St. Lucia Brisbane QLD 4072, 2001.

65

ภาคผนวก

66

ภาคผนวก ก

การเปรียบเทียบระหวางโปรแกรม MATLAB กับ PowerWorld

จากกรณีการเชื่อมตอกําลังไฟฟาท้ังหมด 5 บัส ทําการคํานวณในโปรแกรม PowerWorld ไดดังรูป

ซึ่งไดผลลัพธสรุปคําตอบ ดังนี้

67

คําตอบที่ไดคา power loss เทากับ 0.7 MW ซึ่งจากการคํานวณในโปรแกรม MATLAB จะได

เทากับ 0.7157 MW นอกจากนี้ยังมีกรณีอื่นที่เปรียบเทียบไดวาโปรแกรม PowerWorld เปนตัวอางอิงความ

ถูกตองของคาที่ไดจากโปรแกรม MATLAB ดังเชน ยกตัวอยางกรณีดังตอไปนี้

กรณีที่ 33

พบวาเมื่อคํานวณดวยโปรแกรม PowerWorld จะไดคาคําตอบของคา power loss เทากับ

0.6 MW ดังรูปซึ่งเม่ือเปรียบคากับโปรแกรม MATLAB ซึ่งไดคาเทากับ 0.5031 MW

68

กรณีที่ 34

พบวาเมื่อคํานวณดวยโปรแกรม PowerWorld จะไดคาคําตอบของคา power loss เทากับ

0.6 MW ดังรูปซึ่งเม่ือเปรียบคากับโปรแกรม MATLAB ซึ่งไดคาเทากับ 0.5800 MW

69

กรณีที่ 37

พบวาเมื่อคํานวณดวยโปรแกรม PowerWorld จะไดคาคําตอบของคา power loss เทากับ

0.6 MW ดังรูปซึ่งเม่ือเปรียบคากับโปรแกรม MATLAB ซึ่งไดคาเทากับ 0.6389 MW

70

Start

Start

สราง Ybus

ให �𝑉𝑉𝑖𝑖(0)� = 1.0 และ 𝛿𝛿𝑖𝑖

(0) = 0 ที่โหลดบัส

หา 𝑃𝑃𝑖𝑖(𝑘𝑘), 𝑄𝑄𝑖𝑖

(𝑘𝑘),∆𝑃𝑃𝑖𝑖(𝑘𝑘),∆𝑄𝑄𝑖𝑖

(𝑘𝑘) ; k=2

หา Jacobian Matrix

หา ∆𝑉𝑉 และ ∆𝛿𝛿

𝛿𝛿𝑖𝑖(𝑘𝑘+1) = 𝛿𝛿𝑖𝑖

(𝑘𝑘) + ∆𝛿𝛿𝑖𝑖(𝑘𝑘)

�𝑉𝑉𝑖𝑖(𝑘𝑘+1)� = �𝑉𝑉𝑖𝑖

(𝑘𝑘)� + ∆ �𝑉𝑉𝑖𝑖(𝑘𝑘)�

Tolerance ≤ 0.00001 หา 𝑃𝑃𝑖𝑖 ,𝑄𝑄𝑖𝑖

End

Yes

No

แสดง FLOW CHART การแกปญหาการไหลของกําลังไฟฟา

71

ภาคผนวก ข

ผลการคาํนวณ

ผลการคํานวณที่ไดโดยโปรแกรม MATLAB ในรูปแบบโคดจะสามารถดูไดจากขอมูลใน

แผนดิสก โดยมีขอมูลของไฟล nonlinear.m, threebus.m , fivebus.m, result.m และ optimal.m

นั่นเอง

72

ภาคผนวก ค

ขอมูลจากการไฟฟา

แสดงสภาพหลงัแบงการจายไฟสถานไีฟฟาบางแสน (BSN) และแสดงสภาพหลงัแบง

การจายไฟสถานไีฟฟาบางพระ (BPE) ดังรูปตอไปนี ้

�������

���������

���������� ��-������ ������������������������� �!��"���� #$����#%����� MATLAB +��#,�$

��- nonlinear.m $�"��.

% ���� �����,0���1#$���������0���$����%2�34��-

% �0���$,!����� ��5�� ��"��� ��5����. �0���$����%2� [0.5 ;- 1]

% �0���$=���= =�",0� ��#$��0���$,!��4"�>$ % ,!�,0� ��=�"�?"�-���

% ���=��,0� ��5��+���$",!�

% ,!�,0� ����53��� 4 0����!"���50���� iteration �!��� 10 ,��." % ������� iteration %������H

% �?"�-���=�"����� % ,!� DC $�+�������

% Jacobian matrix

% ,!� Dx �P,��,!� +�������

% �����������P+ +� $�,!� x +���������� 5�� $�+����� iteration ,��."��� ���,��." !� %+���!�#%�����+���>$,0���1

% ��$",!�,0� �� % +����50�"��

��� threebus.m

% ����������� ����������� Newton-Raphson method

V = [1.05; 1.0; 1.04]; % ���������������������� ��� d = [0; 0; 0]; % ��delta ���� ���� � Ps=[-4; 2.0]; % �����!�"##$���� (real power) ���%&���&����%��� Qs= -2.5; % �����!�"##$��'()�� (reactive power) ���%&���&����%���

YB = [ 20-j*50 -10+j*20 -10+j*30

-10+j*20 26-j*52 -16+j*32

-10+j*30 -16+j*32 26-j*62]; % ����'���(�����*� (Y-bus)

Y= abs(YB); t = angle(YB); % �&!������(����*���'���(�����*�� ��%���%& polar �!�(+(�&,� radian

iter=0; % ����(��� iteration

pwracur = 0.00025; % �����(�(���� (Power accuracy ) DC = 10; % Set the maximum power residual to a high value

while max(abs(DC)) > pwracur % ��� ���)���"������ DC � �(����� 0.00025

iter = iter +1 % ����(��� iteration ���-��"&

P=[V(2)*V(1)*Y(2,1)*cos(t(2,1)-d(2)+d(1))+V(2)^2*Y(2,2)*cos(t(2,2))+

V(2)*V(3)*Y(2,3)*cos(t(2,3)-d(2)+d(3)); % �����!�"##$������' 2 V(3)*V(1)*Y(3,1)*cos(t(3,1)-d(3)+d(1))+V(3)^2*Y(3,3)*cos(t(3,3))+

V(3)*V(2)*Y(3,2)*cos(t(3,2)-d(3)+d(2))]; % �����!�"##$������' 3

Q= -V(2)*V(1)*Y(2,1)*sin(t(2,1)-d(2)+d(1))-V(2)^2*Y(2,2)*sin(t(2,2))- ...

% �����!�"##$��'()�������' 2 V(2)*V(3)*Y(2,3)*sin(t(2,3)-d(2)+d(3)); % �����!�"##$��'()�������' 3

J(1,1)=V(2)*V(1)*Y(2,1)*sin(t(2,1)-d(2)+d(1))+... % �� Jacobian Matrix

V(2)*V(3)*Y(2,3)*sin(t(2,3)-d(2)+d(3));

J(1,2)=-V(2)*V(3)*Y(2,3)*sin(t(2,3)-d(2)+d(3));

J(1,3)=V(1)*Y(2,1)*cos(t(2,1)-d(2)+d(1))+2*V(2)*Y(2,2)*cos(t(2,2))+...

V(3)*Y(2,3)*cos(t(2,3)-d(2)+d(3));

J(2,1)=-V(3)*V(2)*Y(3,2)*sin(t(3,2)-d(3)+d(2));

J(2,2)=V(3)*V(1)*Y(3,1)*sin(t(3,1)-d(3)+d(1))+...

V(3)*V(2)*Y(3,2)*sin(t(3,2)-d(3)+d(2));

J(2,3)=V(3)*Y(2,3)*cos(t(3,2)-d(3)+d(2));

J(3,1)=V(2)*V(1)*Y(2,1)*cos(t(2,1)-d(2)+d(1))+...

V(2)*V(3)*Y(2,3)*cos(t(2,3)-d(2)+d(3));

J(3,2)=-V(2)*V(3)*Y(2,3)*cos(t(2,3)-d(2)+d(3));

J(3,3)=-V(1)*Y(2,1)*sin(t(2,1)-d(2)+d(1))-2*V(2)*Y(2,2)*sin(t(2,2))-...

V(3)*Y(2,3)*sin(t(2,3)-d(2)+d(3));

DP = Ps - P; % ��/!�� real power ���"� ����������� ��� 0 �����"� �����������1 DQ = Qs - Q; % ��/!�� reactive power

DC = [DP; DQ] % �� DC �)���#2������� DP �!� DQ J % �� jacobian matrix

DX = J\DC % �� DX �)������� ���� � ��"� ��(+(�!���������� d(2) =d(2)+DX(1); % �� delta2 ������ iteration

d(3)=d(3) +DX(2); % �� delta3 ������ iteration

V(2)= V(2)+DX(3); % ��(+(����� ( voltage magnitude) ������ iteration

V, d, delta =180/pi*d; end

P1= V(1)^2*Y(1,1)*cos(t(1,1))+V(1)*V(2)*Y(1,2)*cos(t(1,2)-d(1)+d(2))+...

V(1)*V(3)*Y(1,3)*cos(t(1,3)-d(1)+d(3))

Q1=-V(1)^2*Y(1,1)*sin(t(1,1))-V(1)*V(2)*Y(1,2)*sin(t(1,2)-d(1)+d(2))-...

V(1)*V(3)*Y(1,3)*sin(t(1,3)-d(1)+d(3))

Q3=-V(3)*V(1)*Y(3,1)*sin(t(3,1)-d(3)+d(1))-V(3)*V(2)*Y(3,2)*...

sin(t(3,2)-d(3)+d(2))-V(3)^2*Y(3,3)*sin(t(3,3))

���� fivebus.m

V = [1.0; 1.0; 1.0; 1.0; 1.0]; d = [0; 0; 0; 0; 0]; Ps=[0.27 0 0 0 0; 0.223 0 0 0 0; 0.173 0 0 0 0; 0.191 0 0 0 0; 1.1 0 0 0 0]; Qs= [0.144 0 0 0 0; 0.114 0 0 0 0; 0.044 0 0 0 0; 0.054 0 0 0 0; 0.37 0 0 0 0]; YB = [ 3.89-j*5.29 0 -1.94+j*2.64 -1.94+j*2.64 0; 0 3.89-j*5.29 -1.94+j*2.64 -1.94+j*2.64 0; -1.94+j*2.64 -1.94+j*2.64 3.89-j*5.29 0 0; -1.94+j*2.64 -1.94+j*2.64 0 3.89-j*5.29 0+j*10; 0 0 0 0+j*10 0-j*10]; Y= abs(YB) t = angle(YB);

iter=0; pwracur = -0.00001; % Power accuracy DC = 10; % Set the maximum power residual to a high value while max(abs(DC)) > pwracur&iter < 2 iter = iter +1

P=[V(1)^2*Y(1,1)*cos(t(1,1))+ V(1)*V(2)*Y(1,2)*cos(t(1,2)-d(1)+d(2))+ ... V(1)*V(3)*Y(1,3)*cos(t(1,3)-d(1)+d(3))+ ... V(1)*V(4)*Y(1,4)*cos(t(1,4)-d(1)+d(4))+ ... V(1)*V(5)*Y(1,5)*cos(t(1,5)-d(1)+d(5)) 0 0 0 0; % real power1 V(2)*V(1)*Y(2,1)*cos(t(2,1)-d(2)+d(1))+V(2)^2*Y(2,2)*cos(t(2,2))+ ... V(2)*V(3)*Y(2,3)*cos(t(2,3)-d(2)+d(3))+ ... V(2)*V(4)*Y(2,4)*cos(t(2,4)-d(2)+d(4))+ ... V(2)*V(5)*Y(2,5)*cos(t(2,5)-d(2)+d(5)) 0 0 0 0; % real power2 V(3)*V(1)*Y(3,1)*cos(t(3,1)-d(3)+d(1))+V(3)^2*Y(3,3)*cos(t(3,3))+ ... V(3)*V(2)*Y(3,2)*cos(t(3,2)-d(3)+d(2))+ ... V(3)*V(4)*Y(3,4)*cos(t(3,4)-d(3)+d(4))+ ... V(3)*V(4)*Y(3,4)*cos(t(3,4)-d(3)+d(4)) 0 0 0 0; % real power3 V(4)*V(1)*Y(4,1)*cos(t(4,1)-d(4)+d(1))+V(4)^2*Y(4,4)*cos(t(4,4))+ ... V(4)*V(2)*Y(4,2)*cos(t(4,2)-d(4)+d(2))+ ... V(4)*V(3)*Y(4,3)*cos(t(4,3)-d(4)+d(3))+ ... V(4)*V(5)*Y(4,5)*cos(t(4,5)-d(4)+d(5)) 0 0 0 0; % real power4 V(5)*V(1)*Y(5,1)*cos(t(5,1)-d(5)+d(1))+V(5)^2*Y(5,5)*cos(t(5,5))+ ... V(5)*V(2)*Y(5,2)*cos(t(5,2)-d(5)+d(2))+ ... V(5)*V(3)*Y(5,3)*cos(t(5,3)-d(5)+d(3))+ ... V(5)*V(4)*Y(5,4)*cos(t(5,4)-d(5)+d(4)) 0 0 0 0]; % real power5

Q= [-V(1)*V(2)*Y(1,2)*sin(t(1,2)-d(1)+d(2))-V(1)^2*Y(1,1)*sin(t(1,1))- ... V(1)*V(3)*Y(1,3)*sin(t(1,3)-d(1)+d(3))- ... V(1)*V(4)*Y(1,4)*sin(t(1,4)-d(1)+d(4))- ... V(1)*V(5)*Y(1,5)*sin(t(1,5)-d(1)+d(5)) 0 0 0 0; % reactive

power1 -V(2)*V(1)*Y(2,1)*sin(t(2,1)-d(2)+d(1))-V(2)^2*Y(2,2)*sin(t(2,2))- ...

V(2)*V(3)*Y(2,3)*sin(t(2,3)-d(2)+d(3))- ... V(2)*V(4)*Y(2,4)*sin(t(2,4)-d(2)+d(4))- ... V(2)*V(5)*Y(2,5)*sin(t(2,5)-d(2)+d(5)) 0 0 0 0; % reactive

power2 -V(3)*V(1)*Y(3,1)*sin(t(3,1)-d(3)+d(1))-V(3)^2*Y(3,3)*sin(t(3,3))- ... V(3)*V(2)*Y(3,2)*sin(t(3,2)-d(3)+d(2))- ... V(3)*V(4)*Y(3,4)*sin(t(3,4)-d(3)+d(4))- ... V(3)*V(5)*Y(3,5)*sin(t(3,5)-d(3)+d(5)) 0 0 0 0; % reactive

power3 -V(4)*V(1)*Y(4,1)*sin(t(4,1)-d(4)+d(1))-V(4)^2*Y(4,4)*sin(t(4,4))- ... V(4)*V(2)*Y(4,2)*sin(t(4,2)-d(4)+d(2))- ... V(4)*V(3)*Y(4,3)*sin(t(4,3)-d(4)+d(3))- ... V(4)*V(5)*Y(4,5)*sin(t(4,5)-d(4)+d(5)) 0 0 0 0; % reactive

power4 -V(5)*V(1)*Y(5,1)*sin(t(5,1)-d(5)+d(1))-V(5)^2*Y(5,5)*sin(t(5,5))- ... V(5)*V(2)*Y(5,2)*sin(t(5,2)-d(5)+d(2))- ... V(5)*V(3)*Y(5,3)*sin(t(5,3)-d(5)+d(3))- ... V(5)*V(4)*Y(5,4)*sin(t(5,4)-d(5)+d(4)) 0 0 0 0]; % reactive

power5 %-------------------------------------------------------------------------- % p1,[d1,d2,d3,d4,d5] J(1,1)=V(1)^2*Y(1,1)*sin(t(1,1))+V(1)*V(2)*Y(1,2)*sin(t(1,2)-d(1)+d(2))+... V(1)*V(3)*Y(1,3)*sin(t(1,3)-d(1)+d(3))+V(1)*V(4)*Y(1,4)*sin(t(1,4)-

d(1)+d(4)) + V(1)*V(5)*Y(1,5)*sin(t(1,5)-d(1)+d(5)); J(1,2)=-V(1)*V(2)*Y(1,2)*sin(t(1,2)-d(1)+d(2)); J(1,3)=-V(1)*V(3)*Y(1,3)*sin(t(1,3)-d(1)+d(3)); J(1,4)=-V(1)*V(4)*Y(1,4)*sin(t(1,4)-d(1)+d(4)); J(1,5)=-V(1)*V(5)*Y(1,5)*sin(t(1,5)-d(1)+d(5)); J(6,1)= 0; J(7,1)= 0; J(8,1)= 0; J(9,1)= 0; J(10,1)= 0; % p2,[d1,d2,d3,d4,d5] J(2,1)=-V(2)*V(1)*Y(2,1)*sin(t(2,1)-d(2)+d(1)); J(2,2)=V(2)*V(1)*Y(2,1)*sin(t(2,1)-d(2)+d(1))+V(2)^2*Y(2,2)*sin(t(2,2))+ ... V(2)*V(3)*Y(2,3)*sin(t(2,3)-d(2)+d(3))+V(2)*V(4)*Y(2,4)*sin(t(2,4)-

d(2)+d(4)) +V(2)*V(5)*Y(2,5)*sin(t(2,5)-d(2)+d(5)); J(2,3)=-V(2)*V(3)*Y(2,3)*sin(t(2,3)-d(2)+d(3)); J(2,4)=-V(2)*V(4)*Y(2,4)*sin(t(2,4)-d(2)+d(4)); J(2,5)=-V(2)*V(5)*Y(2,5)*sin(t(2,5)-d(2)+d(5)); J(6,2)= 0; J(7,2)= 0; J(8,2)= 0; J(9,2)= 0; J(10,2)= 0; % p3,[d1,d2,d3,d4,d5] J(3,1)=-V(3)*V(1)*Y(3,1)*sin(t(3,1)-d(3)+d(1)); J(3,2)=-V(3)*V(2)*Y(3,2)*sin(t(3,2)-d(3)+d(2)); J(3,3)=V(3)*V(1)*Y(3,1)*sin(t(3,1)-d(3)+d(1))+V(3)^2*Y(3,3)*sin(t(3,3))+ ... V(3)*V(2)*Y(3,2)*sin(t(3,2)-d(3)+d(2))+V(3)*V(4)*Y(3,4)*sin(t(3,4)-

d(3)+d(4)) + V(3)*V(5)*Y(3,5)*sin(t(3,5)-d(3)+d(5)); J(3,4)=-V(3)*V(4)*Y(3,4)*sin(t(3,4)-d(3)+d(4)); J(3,5)=-V(3)*V(5)*Y(3,5)*sin(t(3,5)-d(3)+d(5));

J(6,3)= 0; J(7,3)= 0; J(8,3)= 0; J(9,3)= 0; J(10,3)= 0; % p4,[d1,d2,d3,d4,d5] J(4,1)=-V(4)*V(1)*Y(4,1)*sin(t(4,1)-d(4)+d(1)); J(4,2)=-V(4)*V(2)*Y(4,2)*sin(t(4,2)-d(4)+d(2)); J(4,3)=-V(4)*V(3)*Y(4,3)*sin(t(4,3)-d(4)+d(3)); J(4,4)= V(4)*V(1)*Y(4,1)*sin(t(4,1)-d(4)+d(1))+V(4)^2*Y(4,4)*sin(t(4,4))+ ... V(4)*V(2)*Y(4,2)*sin(t(4,2)-d(4)+d(2))+V(4)*V(3)*Y(4,3)*sin(t(4,3)-

d(4)+d(3)) + V(4)*V(5)*Y(4,5)*sin(t(4,5)-d(4)+d(5)); J(4,5)=-V(4)*V(5)*Y(4,5)*sin(t(4,5)-d(4)+d(5)); J(6,4)= 0; J(7,4)= 0; J(8,4)= 0; J(9,4)= 0; J(10,4)= 0; % p5,[d1,d2,d3,d4,d5] J(5,1)=-V(5)*V(1)*Y(5,1)*sin(t(5,1)-d(5)+d(1)); J(5,2)=-V(5)*V(2)*Y(5,2)*sin(t(5,2)-d(5)+d(2)); J(5,3)=-V(5)*V(3)*Y(5,3)*sin(t(5,3)-d(5)+d(3)); J(5,4)=-V(5)*V(4)*Y(5,4)*sin(t(5,4)-d(5)+d(4)); J(5,5)= V(5)*V(1)*Y(5,1)*sin(t(5,1)-d(5)+d(1))+V(5)^2*Y(5,5)*sin(t(5,5))+ ... V(5)*V(2)*Y(5,2)*sin(t(5,2)-d(5)+d(2))+V(5)*V(3)*Y(5,3)*sin(t(5,3)-

d(5)+d(3)) +V(5)*V(4)*Y(5,4)*sin(t(5,4)-d(5)+d(4)); J(6,5)= 0; J(7,5)= 0; J(8,5)= 0; J(9,5)= 0; J(10,5)= 0; %--------------------------------------------------------------------

% p1,[v1,v2,v3,v4,v5] J(1,1)=2*V(1)*Y(1,1)*cos(t(1,1))+V(2)*Y(1,2)*cos(t(1,2)-d(1)+d(2))+... V(3)*Y(1,3)*cos(t(1,3)-d(1)+d(3))+V(4)*Y(1,4)*cos(t(1,4)-d(1)+d(4)) +V(5)*Y(1,5)*cos(t(1,5)-d(1)+d(5)); J(1,2)=V(1)*Y(1,2)*cos(t(1,2)-d(1)+d(2)); J(1,3)=V(1)*Y(1,3)*cos(t(1,3)-d(1)+d(3)); J(1,4)=V(1)*Y(1,4)*cos(t(1,4)-d(1)+d(4)); J(1,5)=V(1)*Y(1,5)*cos(t(1,5)-d(1)+d(5)); J(6,1)= 0; J(7,1)= 0; J(8,1)= 0; J(9,1)= 0; J(10,1)= 0; % p2,[v1,v2,v3,v4,v5] J(2,1)=V(2)*Y(2,1)*cos(t(2,1)-d(2)+d(1)); J(2,2)=2*V(2)*Y(2,2)*cos(t(2,2))+V(1)*Y(2,1)*cos(t(2,1)-d(2)+d(1))+... V(3)*Y(2,3)*cos(t(2,3)-d(2)+d(3))+V(4)*Y(2,4)*cos(t(2,4)-d(2)+d(4)) +V(5)*Y(2,5)*cos(t(2,5)-d(2)+d(5)); J(2,3)=V(2)*Y(2,3)*cos(t(2,3)-d(2)+d(3)); J(2,4)=V(2)*Y(2,4)*cos(t(2,4)-d(2)+d(4)); J(2,5)=V(2)*Y(2,5)*cos(t(2,1)-d(2)+d(5)); J(6,2)= 0;

J(7,2)= 0; J(8,2)= 0; J(9,2)= 0; J(10,2)= 0; % p3,[v1,v2,v3,v4,v5] J(3,1)=V(3)*Y(3,1)*cos(t(3,1)-d(3)+d(1)); J(3,2)=V(3)*Y(3,2)*cos(t(3,2)-d(3)+d(2)); J(3,3)=2*V(3)*Y(3,3)*cos(t(3,3))+V(1)*Y(3,1)*cos(t(3,1)-d(3)+d(1))+... V(2)*Y(3,2)*cos(t(3,2)-d(3)+d(2))+V(4)*Y(3,4)*cos(t(3,4)-d(3)+d(4)) +V(5)*Y(3,5)*cos(t(3,5)-d(3)+d(5)); J(3,4)=V(3)*Y(3,4)*cos(t(3,4)-d(3)+d(4)); J(3,5)=V(3)*Y(3,5)*cos(t(3,5)-d(3)+d(5)); J(6,3)= 0; J(7,3)= 0; J(8,3)= 0; J(9,3)= 0; J(10,3)= 0; % p4,[v1,v2,v3,v4,v5] J(4,1)=V(4)*Y(4,1)*cos(t(4,1)-d(4)+d(1)); J(4,2)=V(4)*Y(4,2)*cos(t(4,2)-d(4)+d(2)); J(4,3)=V(4)*Y(4,3)*cos(t(4,3)-d(4)+d(3)); J(4,4)=2*V(4)*Y(4,4)*cos(t(4,4))+V(1)*Y(4,1)*cos(t(4,1)-d(4)+d(1))+... V(2)*Y(4,2)*cos(t(4,2)-d(4)+d(2))+V(3)*Y(4,3)*cos(t(4,3)-d(4)+d(3)) +V(5)*Y(4,5)*cos(t(4,5)-d(4)+d(5)); J(4,5)=V(4)*Y(4,5)*cos(t(4,5)-d(4)+d(5)); J(6,4)= 0; J(7,4)= 0; J(8,4)= 0; J(9,4)= 0; J(10,4)= 0;

% p5,[v1,v2,v3,v4,v5] J(5,1)=V(5)*Y(5,1)*cos(t(5,1)-d(5)+d(1)); J(5,2)=V(5)*Y(5,2)*cos(t(5,2)-d(5)+d(2)); J(5,3)=V(5)*Y(5,3)*cos(t(5,3)-d(5)+d(3)); J(5,4)=V(5)*Y(5,4)*cos(t(5,4)-d(5)+d(4)); J(5,5)=2*V(5)*Y(5,5)*cos(t(5,5))+V(1)*Y(5,1)*cos(t(5,1)-d(5)+d(1))+... V(2)*Y(5,2)*cos(t(5,2)-d(5)+d(2))+V(4)*Y(5,4)*cos(t(5,4)-d(5)+d(4)) +V(3)*Y(5,3)*cos(t(5,3)-d(5)+d(3)); J(6,5)= 0; J(7,5)= 0; J(8,5)= 0; J(9,5)= 0; J(10,5)= 0; %---------------------------------------------------------------------

% Q1,[d1,d2,d3,d4,d5] J(1,1)=V(1)*V(2)*Y(1,2)*cos(t(1,2)-d(1)+d(2))+... V(1)*V(3)*Y(1,3)*cos(t(1,3)-d(1)+d(3))+... V(1)*V(4)*Y(1,4)*cos(t(1,4)-d(1)+d(4))+... V(1)*V(5)*Y(1,5)*cos(t(1,5)-d(1)+d(5)); J(1,2)=-V(1)*V(2)*Y(1,2)*cos(t(1,2)-d(1)+d(2)); J(1,3)=-V(1)*V(3)*Y(1,3)*cos(t(1,3)-d(1)+d(3)); J(1,4)=-V(1)*V(4)*Y(1,4)*cos(t(1,4)-d(1)+d(4)); J(1,5)=-V(1)*V(5)*Y(1,5)*cos(t(1,5)-d(1)+d(5)); J(6,1)= 0;

J(7,1)= 0; J(8,1)= 0; J(9,1)= 0; J(10,1)= 0; % Q2,[d1,d2,d3,d4,d5] J(2,1)=-V(2)*V(1)*Y(2,1)*cos(t(2,1)-d(2)+d(1)); J(2,2)=V(2)*V(1)*Y(2,1)*cos(t(2,1)-d(2)+d(1))+... V(2)*V(3)*Y(2,3)*cos(t(2,3)-d(2)+d(3))+... V(2)*V(4)*Y(2,4)*cos(t(2,4)-d(2)+d(4))+... V(2)*V(5)*Y(2,5)*cos(t(2,5)-d(2)+d(5)); J(2,3)=-V(2)*V(3)*Y(2,3)*cos(t(2,3)-d(2)+d(3)); J(2,4)=-V(2)*V(4)*Y(2,4)*cos(t(2,4)-d(2)+d(4)); J(2,5)=-V(2)*V(5)*Y(2,5)*cos(t(2,5)-d(2)+d(5)); J(6,2)= 0; J(7,2)= 0; J(8,2)= 0; J(9,2)= 0; J(10,2)= 0; % Q3,[d1,d2,d3,d4,d5] J(3,1)=-V(3)*V(1)*Y(3,1)*cos(t(3,1)-d(3)+d(1)); J(3,2)=-V(3)*V(2)*Y(3,2)*cos(t(3,2)-d(3)+d(2)); J(3,3)=V(3)*V(2)*Y(3,2)*cos(t(3,2)-d(3)+d(2))+... V(3)*V(1)*Y(3,1)*cos(t(3,1)-d(3)+d(1))+... V(3)*V(4)*Y(3,4)*cos(t(3,4)-d(3)+d(4))+... V(3)*V(5)*Y(3,5)*cos(t(3,5)-d(3)+d(5)); J(3,4)=-V(3)*V(4)*Y(3,4)*cos(t(3,4)-d(3)+d(4)); J(3,5)=-V(3)*V(5)*Y(3,5)*cos(t(3,5)-d(3)+d(5)); J(6,3)= 0; J(7,3)= 0; J(8,3)= 0; J(9,3)= 0; J(10,3)= 0; % Q4,[d1,d2,d3,d4,d5] J(4,1)=-V(4)*V(1)*Y(4,1)*cos(t(4,1)-d(4)+d(1)); J(4,2)=-V(4)*V(2)*Y(4,2)*cos(t(4,2)-d(4)+d(2)); J(4,3)=-V(4)*V(3)*Y(4,3)*cos(t(4,3)-d(4)+d(3)); J(4,4)=V(4)*V(2)*Y(4,2)*cos(t(4,2)-d(4)+d(2))+... V(4)*V(1)*Y(4,1)*cos(t(4,1)-d(4)+d(1))+... V(4)*V(3)*Y(4,3)*cos(t(4,3)-d(4)+d(3))+... V(4)*V(5)*Y(4,5)*cos(t(4,5)-d(4)+d(5)); J(4,5)=-V(4)*V(5)*Y(4,5)*cos(t(4,5)-d(4)+d(5)); J(6,4)= 0; J(7,4)= 0; J(8,4)= 0; J(9,4)= 0; J(10,4)= 0; % Q5,[d1,d2,d3,d4,d5] J(5,1)=-V(5)*V(1)*Y(5,1)*cos(t(5,1)-d(5)+d(1)); J(5,2)=-V(5)*V(2)*Y(5,2)*cos(t(5,2)-d(5)+d(2)); J(5,3)=-V(5)*V(3)*Y(5,3)*cos(t(5,3)-d(5)+d(3)); J(5,4)=-V(5)*V(4)*Y(5,4)*cos(t(5,4)-d(5)+d(4)); J(5,5)=V(5)*V(2)*Y(5,2)*cos(t(5,2)-d(5)+d(2))+... V(5)*V(3)*Y(5,3)*cos(t(5,3)-d(5)+d(3))+... V(5)*V(4)*Y(5,4)*cos(t(5,4)-d(5)+d(4))+... V(5)*V(1)*Y(5,1)*cos(t(5,1)-d(5)+d(1)); J(6,5)= 0; J(7,5)= 0;

J(8,5)= 0; J(9,5)= 0; J(10,5)= 0; %--------------------------------------------------------------------- % Q1,[v1,v2,v3,v4,v5] J(1,1)=-2*V(1)*Y(1,1)*sin(t(1,1))-V(2)*Y(1,2)*sin(t(1,2)-d(1)+d(2))-... V(3)*Y(1,3)*sin(t(1,3)-d(1)+d(3))-... V(4)*Y(1,4)*sin(t(1,4)-d(1)+d(4))-... V(5)*Y(1,5)*sin(t(1,5)-d(1)+d(5)); J(1,2)=-V(1)*V(2)*Y(1,2)*sin(t(1,2)-d(1)+d(2)); J(1,3)=-V(1)*V(3)*Y(1,3)*sin(t(1,3)-d(1)+d(3)); J(1,4)=-V(1)*V(4)*Y(1,4)*sin(t(1,4)-d(1)+d(4)); J(1,5)=-V(1)*V(5)*Y(1,5)*sin(t(1,5)-d(1)+d(5)); J(6,1)= 0; J(7,1)= 0; J(8,1)= 0; J(9,1)= 0; J(10,1)= 0; % Q2,[v1,v2,v3,v4,v5] J(2,1)=-V(2)*V(1)*Y(2,1)*sin(t(2,1)-d(2)+d(1)); J(2,2)=-2*V(2)*Y(2,2)*sin(t(2,2))-V(1)*Y(2,1)*sin(t(2,1)-d(2)+d(1))-... V(3)*Y(2,3)*sin(t(2,3)-d(2)+d(3))-... V(4)*Y(2,4)*sin(t(2,4)-d(2)+d(4))-... V(5)*Y(2,5)*sin(t(2,5)-d(2)+d(5)); J(2,3)=-V(2)*V(3)*Y(2,3)*sin(t(2,3)-d(2)+d(3)); J(2,4)=-V(2)*V(4)*Y(2,4)*sin(t(2,4)-d(2)+d(4)); J(2,5)=-V(2)*V(5)*Y(2,5)*sin(t(2,5)-d(2)+d(5)); J(6,2)= 0; J(7,2)= 0; J(8,2)= 0; J(9,2)= 0; J(10,2)= 0; % Q3,[v1,v2,v3,v4,v5] J(3,1)=-V(3)*V(1)*Y(3,1)*sin(t(3,1)-d(3)+d(1)); J(3,2)=-V(3)*V(2)*Y(3,2)*sin(t(3,2)-d(3)+d(2)); J(3,3)=-2*V(3)*Y(3,3)*sin(t(3,3))-V(1)*Y(3,1)*sin(t(3,1)-d(3)+d(1))-... V(2)*Y(3,2)*sin(t(3,2)-d(3)+d(2))-... V(4)*Y(3,4)*sin(t(3,4)-d(3)+d(4))-... V(5)*Y(3,5)*sin(t(3,5)-d(3)+d(5)); J(3,4)=-V(3)*V(4)*Y(3,4)*sin(t(3,4)-d(3)+d(4)); J(3,5)=-V(3)*V(5)*Y(3,5)*sin(t(3,5)-d(3)+d(5)); J(6,3)= 0; J(7,3)= 0; J(8,3)= 0; J(9,3)= 0; J(10,3)= 0; % Q4,[v1,v2,v3,v4,v5] J(4,1)=-V(4)*V(1)*Y(4,1)*sin(t(4,1)-d(4)+d(1)); J(4,2)=-V(4)*V(2)*Y(4,2)*sin(t(4,2)-d(4)+d(2)); J(4,3)=-V(4)*V(3)*Y(4,3)*sin(t(4,3)-d(4)+d(3)); J(4,4)=-2*V(4)*Y(4,4)*sin(t(4,4))-V(1)*Y(4,1)*sin(t(4,1)-d(4)+d(1))-... V(3)*Y(4,3)*sin(t(4,3)-d(4)+d(3))-... V(2)*Y(4,2)*sin(t(4,2)-d(4)+d(2))-... V(5)*Y(4,5)*sin(t(4,5)-d(4)+d(5)); J(4,5)=-V(4)*V(5)*Y(4,5)*sin(t(4,5)-d(4)+d(5)); J(6,4)= 0; J(7,4)= 0;

J(8,4)= 0; J(9,4)= 0; J(10,4)= 0; % Q5,[v1,v2,v3,v4,v5] J(5,1)=-V(5)*V(1)*Y(5,1)*sin(t(5,1)-d(5)+d(1)); J(5,2)=-V(5)*V(2)*Y(5,2)*sin(t(5,2)-d(5)+d(2)); J(5,3)=-V(5)*V(3)*Y(5,3)*sin(t(5,3)-d(5)+d(3)); J(5,4)=-V(5)*V(4)*Y(5,4)*sin(t(5,4)-d(5)+d(4)); J(5,5)=-2*V(5)*Y(5,5)*sin(t(5,5))-V(1)*Y(5,1)*sin(t(5,1)-d(5)+d(1))-... V(3)*Y(5,3)*sin(t(5,3)-d(5)+d(3))-... V(4)*Y(5,4)*sin(t(5,4)-d(5)+d(4))-... V(5)*Y(5,2)*sin(t(5,2)-d(5)+d(2)); J(6,5)= 0; J(7,5)= 0; J(8,5)= 0; J(9,5)= 0; J(10,5)= 0; %--------------------------------------------------------------------- DP = Ps - P; DQ = Qs - Q; DC = [DP; DQ]; J; DX = J\DC; d(1) =d(1)+DX(1); % delta1 from iteration d(2) =d(2)+DX(2); % delta2 from iteration d(3) =d(3)+DX(3); % delta3 from iteration d(4) =d(4)+DX(4); % delta4 from iteration V(1)= V(1)+DX(1); % voltage magnitude from iteration V(2)= V(2)+DX(2); % voltage magnitude from iteration V(3)= V(3)+DX(3); % voltage magnitude from iteration V(4)= V(4)+DX(4); % voltage magnitude from iteration

V,d; delta =180/pi*d end

P1=V(1)^2*Y(1,1)*cos(t(1,1))+ V(1)*V(2)*Y(1,2)*cos(t(1,2)-d(1)+d(2))+ ... V(1)*V(3)*Y(1,3)*cos(t(1,3)-d(1)+d(3))+ ... V(1)*V(4)*Y(1,4)*cos(t(1,4)-d(1)+d(4))+ ... V(1)*V(5)*Y(1,5)*cos(t(1,5)-d(1)+d(5)) ; P2=V(2)*V(1)*Y(2,1)*cos(t(2,1)-d(2)+d(1))+V(2)^2*Y(2,2)*cos(t(2,2))+ ... V(2)*V(3)*Y(2,3)*cos(t(2,3)-d(2)+d(3))+ ... V(2)*V(4)*Y(2,4)*cos(t(2,4)-d(2)+d(4))+ ... V(2)*V(5)*Y(2,5)*cos(t(2,5)-d(2)+d(5)); P3=V(3)*V(1)*Y(3,1)*cos(t(3,1)-d(3)+d(1))+V(3)^2*Y(3,3)*cos(t(3,3))+ ... V(3)*V(2)*Y(3,2)*cos(t(3,2)-d(3)+d(2))+ ... V(3)*V(4)*Y(3,4)*cos(t(3,4)-d(3)+d(4))+ ... V(3)*V(4)*Y(3,4)*cos(t(3,4)-d(3)+d(4)); P4= V(4)*V(1)*Y(4,1)*cos(t(4,1)-d(4)+d(1))+V(4)^2*Y(4,4)*cos(t(4,4))+ ... V(4)*V(2)*Y(4,2)*cos(t(4,2)-d(4)+d(2))+ ... V(4)*V(3)*Y(4,3)*cos(t(4,3)-d(4)+d(3))+ ... V(4)*V(5)*Y(4,5)*cos(t(4,5)-d(4)+d(5)); P5= V(5)^2*Y(5,5)*cos(t(5,5))+V(5)*V(2)*Y(5,2)*cos(t(5,2)-d(5)+d(2))+... V(5)*V(3)*Y(5,3)*cos(t(5,3)-d(5)+d(3))+... V(5)*V(4)*Y(5,4)*cos(t(5,4)-d(5)+d(4))+... V(5)*V(1)*Y(5,1)*cos(t(5,1)-d(5)+d(1)); Q1=-V(1)*V(2)*Y(1,2)*sin(t(1,2)-d(1)+d(2))-V(1)^2*Y(1,1)*sin(t(1,1))- ... V(1)*V(3)*Y(1,3)*sin(t(1,3)-d(1)+d(3))- ...

V(1)*V(4)*Y(1,4)*sin(t(1,4)-d(1)+d(4))- ... V(1)*V(5)*Y(1,5)*sin(t(1,5)-d(1)+d(5)) ; Q2=-V(2)*V(1)*Y(2,1)*sin(t(2,1)-d(2)+d(1))-V(2)^2*Y(2,2)*sin(t(2,2))- ... V(2)*V(3)*Y(2,3)*sin(t(2,3)-d(2)+d(3))- ... V(2)*V(4)*Y(2,4)*sin(t(2,4)-d(2)+d(4))- ... V(2)*V(5)*Y(2,5)*sin(t(2,5)-d(2)+d(5)); Q3=-V(3)*V(1)*Y(3,1)*sin(t(3,1)-d(3)+d(1))-V(3)^2*Y(3,3)*sin(t(3,3))- ... V(3)*V(2)*Y(3,2)*sin(t(3,2)-d(3)+d(2))- ... V(3)*V(4)*Y(3,4)*sin(t(3,4)-d(3)+d(4))- ... V(3)*V(5)*Y(3,5)*sin(t(3,5)-d(3)+d(5)); Q4=-V(4)*V(1)*Y(4,1)*sin(t(4,1)-d(4)+d(1))-V(4)^2*Y(4,4)*sin(t(4,4))- ... V(4)*V(2)*Y(4,2)*sin(t(4,2)-d(4)+d(2))- ... V(4)*V(3)*Y(4,3)*sin(t(4,3)-d(4)+d(3))- ... V(4)*V(5)*Y(4,5)*sin(t(4,5)-d(4)+d(5)); Q5=-V(5)^2*Y(5,5)*sin(t(5,5))-V(5)*V(2)*Y(5,2)*sin(t(5,2)-d(5)+d(2))-... V(5)*V(3)*Y(5,3)*sin(t(5,3)-d(5)+d(3))-... V(5)*V(4)*Y(5,4)*sin(t(5,4)-d(5)+d(4))-... V(5)*V(1)*Y(5,1)*sin(t(5,1)-d(5)+d(1));

��� result.m �0�����50���� optimal ����5�"=�"�����0���" ��S�5��,!��4T���� (loss) ����5���>$ V = [0.87; 0.88; 0.88; 0.95; 1.0]; di = [-8.0; -7.9; -7.9; -5.4; 0]; dj = [-8.0; -7.9; -7.9; -5.4; 0]; P =[0.27 0 0 0 0; 0.223 0 0 0 0; 0.173 0 0 0 0; 0.191 0 0 0 0; 1.1 0 0 0 0]; Q =[0.144 0 0 0 0; 0.114 0 0 0 0; 0.044 0 0 0 0; 0.054 0 0 0 0; 0.37 0 0 0 0]; R = [0.01373 0 0 0 0; 0.01373 0 0 0 0; 0.01373 0 0 0 0; 0.01373 0 0 0 0; 0.01373 0 0 0 0]; X = [0.35904 0 0 0 0; 0.35904 0 0 0 0; 0.35904 0 0 0 0; 0.35904 0 0 0 0; 0.35904 0 0 0 0];

% aij # 19 a11 = ((R(1)/(V(1) * V(1)))* cos (di(1) - dj(1))); a12 = ((R(1)/(V(1) * V(2)))* cos (di(1) - dj(2))); a13 = ((R(1)/(V(1) * V(3)))* cos (di(1) - dj(3))); a14 = ((R(1)/(V(1) * V(4)))* cos (di(1) - dj(4))); a21 = ((R(1)/(V(2) * V(1)))* cos (di(2) - dj(1))); a22 = ((R(1)/(V(2) * V(2)))* cos (di(2) - dj(2))); a23 = ((R(1)/(V(2) * V(3)))* cos (di(2) - dj(3))); a24 = ((R(1)/(V(2) * V(4)))* cos (di(2) - dj(4))); a31 = ((R(1)/(V(3) * V(1)))* cos (di(3) - dj(1))); a32 = ((R(1)/(V(3) * V(2)))* cos (di(3) - dj(2))); a33 = ((R(1)/(V(3) * V(3)))* cos (di(3) - dj(3))); a34 = ((R(1)/(V(3) * V(4)))* cos (di(3) - dj(4))); a41 = ((R(1)/(V(4) * V(1)))* cos (di(4) - dj(1))); a42 = ((R(1)/(V(4) * V(2)))* cos (di(4) - dj(2))); a43 = ((R(1)/(V(4) * V(3)))* cos (di(4) - dj(3))); a44 = ((R(1)/(V(4) * V(4)))* cos (di(4) - dj(4))); a45 = ((R(1)/(V(4) * V(5)))* cos (di(4) - dj(5))); a54 = ((R(1)/(V(5) * V(4)))* cos (di(5) - dj(4))); a55 = ((R(1)/(V(5) * V(5)))* cos (di(5) - dj(5)));

% bij # 19 b11 = ((R(1)/(V(1) * V(1)))* sin (di(1) - dj(1))); b12 = ((R(1)/(V(1) * V(2)))* sin (di(1) - dj(2))); b13 = ((R(1)/(V(1) * V(3)))* sin (di(1) - dj(3))); b14 = ((R(1)/(V(1) * V(4)))* sin (di(1) - dj(4))); b21 = ((R(1)/(V(2) * V(1)))* sin (di(2) - dj(1))); b22 = ((R(1)/(V(2) * V(2)))* sin (di(2) - dj(2)));

b23 = ((R(1)/(V(2) * V(3)))* sin (di(2) - dj(3))); b24 = ((R(1)/(V(2) * V(4)))* sin (di(2) - dj(4))); b31 = ((R(1)/(V(3) * V(1)))* sin (di(3) - dj(1))); b32 = ((R(1)/(V(3) * V(2)))* sin (di(3) - dj(2))); b33 = ((R(1)/(V(3) * V(3)))* sin (di(3) - dj(3))); b34 = ((R(1)/(V(3) * V(4)))* sin (di(3) - dj(4))); b41 = ((R(1)/(V(4) * V(1)))* sin (di(4) - dj(1))); b42 = ((R(1)/(V(4) * V(2)))* sin (di(4) - dj(2))); b43 = ((R(1)/(V(4) * V(3)))* sin (di(4) - dj(3))); b44 = ((R(1)/(V(4) * V(4)))* sin (di(4) - dj(4))); b45 = ((R(1)/(V(4) * V(5)))* sin (di(4) - dj(5))); b54 = ((R(1)/(V(5) * V(4)))* sin (di(5) - dj(4))); b55 = ((R(1)/(V(5) * V(5)))* sin (di(5) - dj(5)));

% cij # 19 c11 = ((X(1)/(V(1) * V(1)))* cos (di(1) - dj(1))); c12 = ((X(1)/(V(1) * V(2)))* cos (di(1) - dj(2))); c13 = ((X(1)/(V(1) * V(3)))* cos (di(1) - dj(3))); c14 = ((X(1)/(V(1) * V(4)))* cos (di(1) - dj(4))); c21 = ((X(1)/(V(2) * V(1)))* cos (di(2) - dj(1))); c22 = ((X(1)/(V(2) * V(2)))* cos (di(2) - dj(2))); c23 = ((X(1)/(V(2) * V(3)))* cos (di(2) - dj(3))); c24 = ((X(1)/(V(2) * V(4)))* cos (di(2) - dj(4))); c31 = ((X(1)/(V(3) * V(1)))* cos (di(3) - dj(1))); c32 = ((X(1)/(V(3) * V(2)))* cos (di(3) - dj(2))); c33 = ((X(1)/(V(3) * V(3)))* cos (di(3) - dj(3))); c34 = ((X(1)/(V(3) * V(4)))* cos (di(3) - dj(4))); c41 = ((X(1)/(V(4) * V(1)))* cos (di(4) - dj(1))); c42 = ((X(1)/(V(4) * V(2)))* cos (di(4) - dj(2))); c43 = ((X(1)/(V(4) * V(3)))* cos (di(4) - dj(3))); c44 = ((X(1)/(V(4) * V(4)))* cos (di(4) - dj(4))); c45 = ((X(1)/(V(4) * V(5)))* cos (di(4) - dj(5))); c54 = ((X(1)/(V(5) * V(4)))* cos (di(5) - dj(4))); c55 = ((X(1)/(V(5) * V(5)))* cos (di(5) - dj(5)));

% dij # 19 d11 = ((X(1)/(V(1) * V(1)))* sin (di(1) - dj(1))); d12 = ((X(1)/(V(1) * V(2)))* sin (di(1) - dj(2))); d13 = ((X(1)/(V(1) * V(3)))* sin (di(1) - dj(3))); d14 = ((X(1)/(V(1) * V(4)))* sin (di(1) - dj(4))); d21 = ((X(1)/(V(2) * V(1)))* sin (di(2) - dj(1))); d22 = ((X(1)/(V(2) * V(2)))* sin (di(2) - dj(2))); d23 = ((X(1)/(V(2) * V(3)))* sin (di(2) - dj(3))); d24 = ((X(1)/(V(2) * V(4)))* sin (di(2) - dj(4))); d31 = ((X(1)/(V(3) * V(1)))* sin (di(3) - dj(1))); d32 = ((X(1)/(V(3) * V(2)))* sin (di(3) - dj(2))); d33 = ((X(1)/(V(3) * V(3)))* sin (di(3) - dj(3))); d34 = ((X(1)/(V(3) * V(4)))* sin (di(3) - dj(4))); d41 = ((X(1)/(V(4) * V(1)))* sin (di(4) - dj(1))); d42 = ((X(1)/(V(4) * V(2)))* sin (di(4) - dj(2))); d43 = ((X(1)/(V(4) * V(3)))* sin (di(4) - dj(3))); d44 = ((X(1)/(V(4) * V(4)))* sin (di(4) - dj(4))); d45 = ((X(1)/(V(4) * V(5)))* sin (di(4) - dj(5))); d54 = ((X(1)/(V(5) * V(4)))* sin (di(5) - dj(4))); d55 = ((X(1)/(V(5) * V(5)))* sin (di(5) - dj(5)));

P12 = (a12 *(P(1)*P(2) + Q(1)*Q(2)))+ (b12*(Q(1)*P(2) - P(1)*Q(2))); P13 = (a13 *(P(1)*P(3) + Q(1)*Q(3)))+ (b13*(Q(1)*P(3) - P(1)*Q(3))); P14 = -((a14 *(P(1)*P(4) + Q(1)*Q(4)))+ (b14*(Q(1)*P(4) - P(1)*Q(4)))); P21 = P12; P23 = (a23 *(P(2)*P(3) + Q(2)*Q(3)))+ (b23*(Q(2)*P(3) - P(2)*Q(3))); P24 = -((a24 *(P(2)*P(4) + Q(2)*Q(4)))+ (b24*(Q(2)*P(4) - P(2)*Q(4)))); P31 = P13; P32 = P23; P34 = -((a34 *(P(3)*P(4) + Q(3)*Q(4)))+ (b34*(Q(3)*P(4) - P(3)*Q(4)))); P41 = P14; P42 = P24; P43 = P34; P54 = (a54 *(P(5)*P(4) + Q(5)*Q(4)))+ (b54*(Q(5)*P(4) - P(5)*Q(4))); P45 = P54;

Q12 = (c12 *(P(1)*P(2) + Q(1)*Q(2)))+ (d12*(Q(1)*P(2) - P(1)*Q(2))); Q13 = (c13 *(P(1)*P(3) + Q(1)*Q(3)))+ (d13*(Q(1)*P(3) - P(1)*Q(3))); Q14 = -((c14 *(P(1)*P(4) + Q(1)*Q(4)))+ (d14*(Q(1)*P(4) - P(1)*Q(4)))); Q21 = Q12; Q23 = (c23 *(P(2)*P(3) + Q(2)*Q(3)))+ (d23*(Q(2)*P(3) - P(2)*Q(3))); Q24 = -((c24 *(P(2)*P(4) + Q(2)*Q(4)))+ (d24*(Q(2)*P(4) - P(2)*Q(4)))); Q31 = Q13; Q32 = Q23; Q34 = -((c34 *(P(3)*P(4) + Q(3)*Q(4)))+ (d34*(Q(3)*P(4) - P(3)*Q(4)))); Q41 = Q14; Q42 = Q24; Q43 = Q34; Q54 = (c54 *(P(5)*P(4) + Q(5)*Q(4)))+ (d54*(Q(5)*P(4) - P(5)*Q(4))); Q45 = Q54;

inputarr=zeros(64,6); outputarr=zeros(64,6); indexoutput=0; output=0:63; a=0:63; loopi=1; for i=1:63; loopi = loopi+1; num2=0; mask=1; for loopj = 1:6; bufbitandmask = bitand(a(loopi),mask);

if bufbitandmask == mask num2 = num2+1; inputarr(i,(7-loopj))=1; else inputarr(i,(7-loopj))=0;

end mask = bitshift(mask,1); end if num2 > 2 if(a(loopi)~=13) if(a(loopi)~=22)

if(a(loopi)~=35) if(a(loopi)~=56) indexoutput=indexoutput+1; output(indexoutput)=a(loopi); outputarr(indexoutput,:)= inputarr(i,:);

end end end end end end lossline=[P34,P14,P13,P12,P24,P32]; %indexoutput=indexoutput-1 output2=1:indexoutput; outputarr3=1:indexoutput; outputarr2=zeros(indexoutput,6); output2=output; for i=1:indexoutput outputarr2(i,:)=outputarr(i,:).*lossline; outputarr3(i)=sum(outputarr2(i,:));

end output2=dec2bin(output2); indexoutput; outputarr; outputarr2; outputarr3; MWoutputarr3=(outputarr3+P45).*(99.4764); minimum=min(MWoutputarr3)

plot(MWoutputarr3,'-kx', 'LineWidth',2,... 'MarkerEdgeColor','r',... 'MarkerSize',10);grid title(' Optimal Power Flow') xlabel('Case Number') ylabel('Power Loss (MW)') text(19,5.3641,' Minimum Ploss is 5.3641')

��� optimal.m �0���������"���� !�"��$"������4���� (GUI)

function varargout = optimal(varargin) % OPTIMAL M-file for optimal.fig % OPTIMAL, by itself, creates a new OPTIMAL or raises the existing % singleton*. % % H = OPTIMAL returns the handle to a new OPTIMAL or the handle to % the existing singleton*. % % OPTIMAL('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in OPTIMAL.M with the given input arguments. % % OPTIMAL('Property','Value',...) creates a new OPTIMAL or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before optimal_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to optimal_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help optimal

% Last Modified by GUIDE v2.5 10-Mar-2009 21:18:50

% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @optimal_OpeningFcn, ... 'gui_OutputFcn', @optimal_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end

if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT

% --- Executes just before optimal is made visible. function optimal_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to optimal (see VARARGIN)

% Choose default command line output for optimal handles.output = hObject;

% Update handles structure guidata(hObject, handles);

% UIWAIT makes optimal wait for user response (see UIRESUME) % uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line. function varargout = optimal_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure varargout{1} = handles.output;

function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a

double

% --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit2_Callback(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit2 as text % str2double(get(hObject,'String')) returns contents of edit2 as a

double

% --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit3_Callback(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit3 as text % str2double(get(hObject,'String')) returns contents of edit3 as a

double

% --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit4_Callback(hObject, eventdata, handles) % hObject handle to edit4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit4 as text % str2double(get(hObject,'String')) returns contents of edit4 as a

double

% --- Executes during object creation, after setting all properties. function edit4_CreateFcn(hObject, eventdata, handles)

% hObject handle to edit4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit5_Callback(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit5 as text % str2double(get(hObject,'String')) returns contents of edit5 as a

double

% --- Executes during object creation, after setting all properties. function edit5_CreateFcn(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit6_Callback(hObject, eventdata, handles) % hObject handle to edit6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit6 as text % str2double(get(hObject,'String')) returns contents of edit6 as a

double

% --- Executes during object creation, after setting all properties. function edit6_CreateFcn(hObject, eventdata, handles) % hObject handle to edit6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit7_Callback(hObject, eventdata, handles) % hObject handle to edit7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit7 as text % str2double(get(hObject,'String')) returns contents of edit7 as a

double

% --- Executes during object creation, after setting all properties. function edit7_CreateFcn(hObject, eventdata, handles) % hObject handle to edit7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit8_Callback(hObject, eventdata, handles) % hObject handle to edit8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit8 as text % str2double(get(hObject,'String')) returns contents of edit8 as a

double

% --- Executes during object creation, after setting all properties. function edit8_CreateFcn(hObject, eventdata, handles) % hObject handle to edit8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');

end

function edit9_Callback(hObject, eventdata, handles) % hObject handle to edit9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit9 as text % str2double(get(hObject,'String')) returns contents of edit9 as a

double

% --- Executes during object creation, after setting all properties. function edit9_CreateFcn(hObject, eventdata, handles) % hObject handle to edit9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit10_Callback(hObject, eventdata, handles) % hObject handle to edit10 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit10 as text % str2double(get(hObject,'String')) returns contents of edit10 as a

double

% --- Executes during object creation, after setting all properties. function edit10_CreateFcn(hObject, eventdata, handles) % hObject handle to edit10 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit11_Callback(hObject, eventdata, handles)

% hObject handle to edit11 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit11 as text % str2double(get(hObject,'String')) returns contents of edit11 as a

double

% --- Executes during object creation, after setting all properties. function edit11_CreateFcn(hObject, eventdata, handles) % hObject handle to edit11 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit12_Callback(hObject, eventdata, handles) % hObject handle to edit12 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit12 as text % str2double(get(hObject,'String')) returns contents of edit12 as a

double

% --- Executes during object creation, after setting all properties. function edit12_CreateFcn(hObject, eventdata, handles) % hObject handle to edit12 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit13_Callback(hObject, eventdata, handles) % hObject handle to edit13 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit13 as text % str2double(get(hObject,'String')) returns contents of edit13 as a

double

% --- Executes during object creation, after setting all properties. function edit13_CreateFcn(hObject, eventdata, handles) % hObject handle to edit13 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit14_Callback(hObject, eventdata, handles) % hObject handle to edit14 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit14 as text % str2double(get(hObject,'String')) returns contents of edit14 as a

double

% --- Executes during object creation, after setting all properties. function edit14_CreateFcn(hObject, eventdata, handles) % hObject handle to edit14 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit15_Callback(hObject, eventdata, handles) % hObject handle to edit15 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit15 as text % str2double(get(hObject,'String')) returns contents of edit15 as a

double

% --- Executes during object creation, after setting all properties. function edit15_CreateFcn(hObject, eventdata, handles) % hObject handle to edit15 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit16_Callback(hObject, eventdata, handles) % hObject handle to edit16 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit16 as text % str2double(get(hObject,'String')) returns contents of edit16 as a

double

% --- Executes during object creation, after setting all properties. function edit16_CreateFcn(hObject, eventdata, handles) % hObject handle to edit16 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit17_Callback(hObject, eventdata, handles) % hObject handle to edit17 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit17 as text % str2double(get(hObject,'String')) returns contents of edit17 as a

double

% --- Executes during object creation, after setting all properties. function edit17_CreateFcn(hObject, eventdata, handles) % hObject handle to edit17 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit18_Callback(hObject, eventdata, handles) % hObject handle to edit18 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit18 as text % str2double(get(hObject,'String')) returns contents of edit18 as a

double

% --- Executes during object creation, after setting all properties. function edit18_CreateFcn(hObject, eventdata, handles) % hObject handle to edit18 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit19_Callback(hObject, eventdata, handles) % hObject handle to edit19 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit19 as text % str2double(get(hObject,'String')) returns contents of edit19 as a

double

% --- Executes during object creation, after setting all properties. function edit19_CreateFcn(hObject, eventdata, handles) % hObject handle to edit19 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

function edit20_Callback(hObject, eventdata, handles) % hObject handle to edit20 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit20 as text % str2double(get(hObject,'String')) returns contents of edit20 as a

double

% --- Executes during object creation, after setting all properties. function edit20_CreateFcn(hObject, eventdata, handles) % hObject handle to edit20 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) a1=get(handles.edit1,'string'); a1=str2num(a1) a2=get(handles.edit2,'string'); a2=str2num(a2) a3=get(handles.edit3,'string'); a3=str2num(a3) a4=get(handles.edit4,'string'); a4=str2num(a4) a5=get(handles.edit5,'string'); a5=str2num(a5) b1=get(handles.edit6,'string'); b1=str2num(b1) b2=get(handles.edit7,'string'); b2=str2num(b2) b3=get(handles.edit8,'string'); b3=str2num(b3) b4=get(handles.edit9,'string'); b4=str2num(b4) b5=get(handles.edit10,'string'); b5=str2num(b5) c1=get(handles.edit11,'string'); c1=str2num(c1) c2=get(handles.edit12,'string'); c2=str2num(c2) c3=get(handles.edit13,'string'); c3=str2num(c3) c4=get(handles.edit14,'string');

c4=str2num(c4) c5=get(handles.edit15,'string'); c5=str2num(c5) d1=get(handles.edit16,'string'); d1=str2num(d1) d2=get(handles.edit17,'string'); d2=str2num(d2) d3=get(handles.edit18,'string'); d3=str2num(d3) d4=get(handles.edit19,'string'); d4=str2num(d4) d5=get(handles.edit20,'string'); d5=str2num(d5) V = [c1; c2; c3; c4; c5]; di = [d1; d2; d3; d4; d5]; dj = [d1; d2; d3; d4; d5]; P =[(a1./100) 0 0 0 0; (a2./100) 0 0 0 0; (a3./100) 0 0 0 0; (a4./100) 0 0 0 0; (a5./100) 0 0 0 0]; Q =[(b1./100) 0 0 0 0; (b2./100) 0 0 0 0; (b3./100) 0 0 0 0; (b4./100) 0 0 0 0; (b5./100) 0 0 0 0]; R = [0.01373 0 0 0 0; 0.01373 0 0 0 0; 0.01373 0 0 0 0; 0.01373 0 0 0 0; 0.01373 0 0 0 0]; X = [0.35904 0 0 0 0; 0.35904 0 0 0 0; 0.35904 0 0 0 0; 0.35904 0 0 0 0; 0.35904 0 0 0 0];

% aij # 19 a11 = ((R(1)/(V(1) * V(1)))* cos (di(1) - dj(1))); a12 = ((R(1)/(V(1) * V(2)))* cos (di(1) - dj(2))); a13 = ((R(1)/(V(1) * V(3)))* cos (di(1) - dj(3))); a14 = ((R(1)/(V(1) * V(4)))* cos (di(1) - dj(4))); a21 = ((R(1)/(V(2) * V(1)))* cos (di(2) - dj(1))); a22 = ((R(1)/(V(2) * V(2)))* cos (di(2) - dj(2))); a23 = ((R(1)/(V(2) * V(3)))* cos (di(2) - dj(3))); a24 = ((R(1)/(V(2) * V(4)))* cos (di(2) - dj(4))); a31 = ((R(1)/(V(3) * V(1)))* cos (di(3) - dj(1))); a32 = ((R(1)/(V(3) * V(2)))* cos (di(3) - dj(2))); a33 = ((R(1)/(V(3) * V(3)))* cos (di(3) - dj(3))); a34 = ((R(1)/(V(3) * V(4)))* cos (di(3) - dj(4))); a41 = ((R(1)/(V(4) * V(1)))* cos (di(4) - dj(1))); a42 = ((R(1)/(V(4) * V(2)))* cos (di(4) - dj(2))); a43 = ((R(1)/(V(4) * V(3)))* cos (di(4) - dj(3))); a44 = ((R(1)/(V(4) * V(4)))* cos (di(4) - dj(4))); a45 = ((R(1)/(V(4) * V(5)))* cos (di(4) - dj(5))); a54 = ((R(1)/(V(5) * V(4)))* cos (di(5) - dj(4))); a55 = ((R(1)/(V(5) * V(5)))* cos (di(5) - dj(5)));

% bij # 19 b11 = ((R(1)/(V(1) * V(1)))* sin (di(1) - dj(1))); b12 = ((R(1)/(V(1) * V(2)))* sin (di(1) - dj(2))); b13 = ((R(1)/(V(1) * V(3)))* sin (di(1) - dj(3))); b14 = ((R(1)/(V(1) * V(4)))* sin (di(1) - dj(4))); b21 = ((R(1)/(V(2) * V(1)))* sin (di(2) - dj(1))); b22 = ((R(1)/(V(2) * V(2)))* sin (di(2) - dj(2))); b23 = ((R(1)/(V(2) * V(3)))* sin (di(2) - dj(3))); b24 = ((R(1)/(V(2) * V(4)))* sin (di(2) - dj(4))); b31 = ((R(1)/(V(3) * V(1)))* sin (di(3) - dj(1))); b32 = ((R(1)/(V(3) * V(2)))* sin (di(3) - dj(2))); b33 = ((R(1)/(V(3) * V(3)))* sin (di(3) - dj(3))); b34 = ((R(1)/(V(3) * V(4)))* sin (di(3) - dj(4))); b41 = ((R(1)/(V(4) * V(1)))* sin (di(4) - dj(1))); b42 = ((R(1)/(V(4) * V(2)))* sin (di(4) - dj(2))); b43 = ((R(1)/(V(4) * V(3)))* sin (di(4) - dj(3))); b44 = ((R(1)/(V(4) * V(4)))* sin (di(4) - dj(4))); b45 = ((R(1)/(V(4) * V(5)))* sin (di(4) - dj(5))); b54 = ((R(1)/(V(5) * V(4)))* sin (di(5) - dj(4))); b55 = ((R(1)/(V(5) * V(5)))* sin (di(5) - dj(5))); % cij # 19 c11 = ((X(1)/(V(1) * V(1)))* cos (di(1) - dj(1))); c12 = ((X(1)/(V(1) * V(2)))* cos (di(1) - dj(2))); c13 = ((X(1)/(V(1) * V(3)))* cos (di(1) - dj(3))); c14 = ((X(1)/(V(1) * V(4)))* cos (di(1) - dj(4))); c21 = ((X(1)/(V(2) * V(1)))* cos (di(2) - dj(1))); c22 = ((X(1)/(V(2) * V(2)))* cos (di(2) - dj(2))); c23 = ((X(1)/(V(2) * V(3)))* cos (di(2) - dj(3))); c24 = ((X(1)/(V(2) * V(4)))* cos (di(2) - dj(4))); c31 = ((X(1)/(V(3) * V(1)))* cos (di(3) - dj(1))); c32 = ((X(1)/(V(3) * V(2)))* cos (di(3) - dj(2))); c33 = ((X(1)/(V(3) * V(3)))* cos (di(3) - dj(3))); c34 = ((X(1)/(V(3) * V(4)))* cos (di(3) - dj(4))); c41 = ((X(1)/(V(4) * V(1)))* cos (di(4) - dj(1))); c42 = ((X(1)/(V(4) * V(2)))* cos (di(4) - dj(2))); c43 = ((X(1)/(V(4) * V(3)))* cos (di(4) - dj(3))); c44 = ((X(1)/(V(4) * V(4)))* cos (di(4) - dj(4))); c45 = ((X(1)/(V(4) * V(5)))* cos (di(4) - dj(5))); c54 = ((X(1)/(V(5) * V(4)))* cos (di(5) - dj(4))); c55 = ((X(1)/(V(5) * V(5)))* cos (di(5) - dj(5)));

% dij # 19 d11 = ((X(1)/(V(1) * V(1)))* sin (di(1) - dj(1))); d12 = ((X(1)/(V(1) * V(2)))* sin (di(1) - dj(2))); d13 = ((X(1)/(V(1) * V(3)))* sin (di(1) - dj(3))); d14 = ((X(1)/(V(1) * V(4)))* sin (di(1) - dj(4))); d21 = ((X(1)/(V(2) * V(1)))* sin (di(2) - dj(1))); d22 = ((X(1)/(V(2) * V(2)))* sin (di(2) - dj(2))); d23 = ((X(1)/(V(2) * V(3)))* sin (di(2) - dj(3))); d24 = ((X(1)/(V(2) * V(4)))* sin (di(2) - dj(4))); d31 = ((X(1)/(V(3) * V(1)))* sin (di(3) - dj(1))); d32 = ((X(1)/(V(3) * V(2)))* sin (di(3) - dj(2))); d33 = ((X(1)/(V(3) * V(3)))* sin (di(3) - dj(3))); d34 = ((X(1)/(V(3) * V(4)))* sin (di(3) - dj(4))); d41 = ((X(1)/(V(4) * V(1)))* sin (di(4) - dj(1)));

d42 = ((X(1)/(V(4) * V(2)))* sin (di(4) - dj(2))); d43 = ((X(1)/(V(4) * V(3)))* sin (di(4) - dj(3))); d44 = ((X(1)/(V(4) * V(4)))* sin (di(4) - dj(4))); d45 = ((X(1)/(V(4) * V(5)))* sin (di(4) - dj(5))); d54 = ((X(1)/(V(5) * V(4)))* sin (di(5) - dj(4))); d55 = ((X(1)/(V(5) * V(5)))* sin (di(5) - dj(5)));

P12 = (a12 *(P(1)*P(2) + Q(1)*Q(2)))+ (b12*(Q(1)*P(2) - P(1)*Q(2))); P13 = (a13 *(P(1)*P(3) + Q(1)*Q(3)))+ (b13*(Q(1)*P(3) - P(1)*Q(3))); P14 = -((a14 *(P(1)*P(4) + Q(1)*Q(4)))+ (b14*(Q(1)*P(4) - P(1)*Q(4)))); P21 = P12; P23 = (a23 *(P(2)*P(3) + Q(2)*Q(3)))+ (b23*(Q(2)*P(3) - P(2)*Q(3))); P24 = -((a24 *(P(2)*P(4) + Q(2)*Q(4)))+ (b24*(Q(2)*P(4) - P(2)*Q(4)))); P31 = P13; P32 = P23; P34 = -((a34 *(P(3)*P(4) + Q(3)*Q(4)))+ (b34*(Q(3)*P(4) - P(3)*Q(4)))); P41 = P14; P42 = P24; P43 = P34; P54 = (a54 *(P(5)*P(4) + Q(5)*Q(4)))+ (b54*(Q(5)*P(4) - P(5)*Q(4))); P45 = P54;

Q12 = (c12 *(P(1)*P(2) + Q(1)*Q(2)))+ (d12*(Q(1)*P(2) - P(1)*Q(2))); Q13 = (c13 *(P(1)*P(3) + Q(1)*Q(3)))+ (d13*(Q(1)*P(3) - P(1)*Q(3))); Q14 = -((c14 *(P(1)*P(4) + Q(1)*Q(4)))+ (d14*(Q(1)*P(4) - P(1)*Q(4)))); Q21 = Q12; Q23 = (c23 *(P(2)*P(3) + Q(2)*Q(3)))+ (d23*(Q(2)*P(3) - P(2)*Q(3))); Q24 = -((c24 *(P(2)*P(4) + Q(2)*Q(4)))+ (d24*(Q(2)*P(4) - P(2)*Q(4)))); Q31 = Q13; Q32 = Q23; Q34 = -((c34 *(P(3)*P(4) + Q(3)*Q(4)))+ (d34*(Q(3)*P(4) - P(3)*Q(4)))); Q41 = Q14; Q42 = Q24; Q43 = Q34; Q54 = (c54 *(P(5)*P(4) + Q(5)*Q(4)))+ (d54*(Q(5)*P(4) - P(5)*Q(4))); Q45 = Q54;

inputarr=zeros(64,6); outputarr=zeros(64,6); indexoutput=0; output=0:63; a=0:63; loopi=1; for i=1:63; loopi = loopi+1; num2=0; mask=1; for loopj = 1:6; bufbitandmask = bitand(a(loopi),mask);

if bufbitandmask == mask num2 = num2+1; inputarr(i,(7-loopj))=1; else inputarr(i,(7-loopj))=0;

end mask = bitshift(mask,1); end if num2 > 2 if(a(loopi)~=13) if(a(loopi)~=22) if(a(loopi)~=35) if(a(loopi)~=56) indexoutput=indexoutput+1; output(indexoutput)=a(loopi); outputarr(indexoutput,:)= inputarr(i,:);

end end end end end end lossline=[P34,P14,P13,P12,P24,P32]; %indexoutput=indexoutput-1 output2=1:indexoutput; outputarr3=1:indexoutput; outputarr2=zeros(indexoutput,6); output2=output; for i=1:indexoutput outputarr2(i,:)=outputarr(i,:).*lossline; outputarr3(i)=sum(outputarr2(i,:));

end output2=dec2bin(output2); indexoutput; outputarr; outputarr2; outputarr3; MWoutputarr3=(outputarr3+P45).*(99.4764); minimum=min(MWoutputarr3) set(handles.text2,'String',minimum);

axes(handles.axes1) plot(MWoutputarr3,'-kx', 'LineWidth',2,... 'MarkerEdgeColor','r',... 'MarkerSize',10);grid title(' Optimal Power Flow') xlabel('Case Number') ylabel('Power Loss (MW)')

% --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(handles.edit1,'string','0'); set(handles.edit2,'string','0'); set(handles.edit3,'string','0');

set(handles.edit4,'string','0'); set(handles.edit5,'string','0'); set(handles.edit6,'string','0'); set(handles.edit7,'string','0'); set(handles.edit8,'string','0'); set(handles.edit9,'string','0'); set(handles.edit10,'string','0'); set(handles.edit11,'string','0'); set(handles.edit12,'string','0'); set(handles.edit13,'string','0'); set(handles.edit14,'string','0'); set(handles.edit15,'string','0'); set(handles.edit16,'string','0'); set(handles.edit17,'string','0'); set(handles.edit18,'string','0'); set(handles.edit19,'string','0'); set(handles.edit20,'string','0'); set(handles.text2,'string','0.00'); set(handles.axes1,'Color','w'); grid off;

% --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close all; clear all;

% --- Executes on selection change in popupmenu3. function popupmenu3_Callback(hObject, eventdata, handles) % hObject handle to popupmenu3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) s0_img = imread('s0.jpg'); s1_img = imread('s1.jpg'); s2_img = imread('s2.jpg'); s3_img = imread('s3.jpg'); s4_img = imread('s4.jpg'); s5_img = imread('s5.jpg'); s6_img = imread('s6.jpg'); s7_img = imread('s7.jpg'); s8_img = imread('s8.jpg'); s9_img = imread('s9.jpg'); s10_img = imread('s10.jpg'); s11_img = imread('s11.jpg'); s12_img = imread('s12.jpg'); s13_img = imread('s13.jpg'); s14_img = imread('s14.jpg'); s15_img = imread('s15.jpg'); s16_img = imread('s16.jpg'); s17_img = imread('s17.jpg'); s18_img = imread('s18.jpg'); s19_img = imread('s19.jpg'); s20_img = imread('s20.jpg'); s21_img = imread('s21.jpg');

s22_img = imread('s22.jpg'); s23_img = imread('s23.jpg'); s24_img = imread('s24.jpg'); s25_img = imread('s25.jpg'); s26_img = imread('s26.jpg'); s27_img = imread('s27.jpg'); s28_img = imread('s28.jpg'); s29_img = imread('s29.jpg'); s30_img = imread('s30.jpg'); s31_img = imread('s31.jpg'); s32_img = imread('s32.jpg'); s33_img = imread('s33.jpg'); s34_img = imread('s34.jpg'); s35_img = imread('s35.jpg'); s36_img = imread('s36.jpg'); s37_img = imread('s37.jpg'); s38_img = imread('s38.jpg');

switch get(handles.popupmenu3,'Value');

case 1 axes(handles.bus_pic); image(s0_img); axis off

case 2 axes(handles.bus_pic); image(s1_img); axis off

case 3 axes(handles.bus_pic); image(s2_img); axis off

case 4 axes(handles.bus_pic); image(s3_img); axis off

case 5 axes(handles.bus_pic); image(s4_img); axis off

case 6 axes(handles.bus_pic); image(s5_img); axis off

case 7 axes(handles.bus_pic); image(s6_img); axis off

case 8 axes(handles.bus_pic); image(s7_img); axis off

case 9 axes(handles.bus_pic); image(s8_img); axis off

case 10 axes(handles.bus_pic); image(s9_img); axis off

case 11 axes(handles.bus_pic); image(s10_img); axis off

case 12 axes(handles.bus_pic); image(s11_img); axis off case 13 axes(handles.bus_pic); image(s12_img); axis off

case 14 axes(handles.bus_pic); image(s13_img); axis off

case 15 axes(handles.bus_pic); image(s14_img); axis off

case 16 axes(handles.bus_pic);

image(s15_img); axis off

case 17 axes(handles.bus_pic); image(s16_img); axis off

case 18 axes(handles.bus_pic); image(s17_img); axis off

case 19 axes(handles.bus_pic); image(s18_img); axis off

case 20 axes(handles.bus_pic); image(s19_img); axis off

case 21 axes(handles.bus_pic); image(s_img); axis off

case 22 axes(handles.bus_pic); image(s21_img); axis off

case 23 axes(handles.bus_pic); image(s22_img); axis off

case 24 axes(handles.bus_pic); image(s23_img); axis off

case 25 axes(handles.bus_pic);

image(s24_img); axis off

case 26 axes(handles.bus_pic); image(s25_img); axis off

case 27 axes(handles.bus_pic); image(s26_img); axis off

case 28 axes(handles.bus_pic); image(s27_img); axis off

case 29 axes(handles.bus_pic); image(s28_img); axis off

case 30 axes(handles.bus_pic); image(s29_img); axis off

case 31 axes(handles.bus_pic); image(s30_img); axis off

case 32 axes(handles.bus_pic); image(s31_img); axis off

case 33 axes(handles.bus_pic); image(s32_img); axis off

case 34 axes(handles.bus_pic);

image(s33_img); axis off

case 35 axes(handles.bus_pic); image(s34_img); axis off

case 36 axes(handles.bus_pic); image(s35_img); axis off

case 37 axes(handles.bus_pic); image(s36_img); axis off

case 38 axes(handles.bus_pic); image(s37_img); axis off

case 39 axes(handles.bus_pic); image(s38_img); axis off

end % Hints: contents = get(hObject,'String') returns popupmenu3 contents as cell

array % contents{get(hObject,'Value')} returns selected item from popupmenu3

% --- Executes during object creation, after setting all properties. function popupmenu3_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end