Khi có thiết bị TCSC

Một phần của tài liệu Giải tích hệ thống điện hệ thống FACTS dùng TCSC (Trang 42)

Mô hình khi sữ dụng thiết bị TCSC

Hình 5.12: Hệ thống điện được mô phỏng khi sử dụng TCSC

Các thông số của từng bus và đường dây được cho trong phụ lục 2 Các thông số về thiết bị TCSC được cho trong phụ lục 3

Chương trình code cho trong phụ lục 5 Kết quả thu được

PNET and QNET PNET( 1)= 0.000 QNET( 1)= 0.000 PNET( 2)= 0.200 QNET( 2)= -0.100

PNET( 2)= 0.200 QNET( 2)= -0.100 PNET( 3)= -0.450 QNET( 3)= -0.150 PNET( 4)= -0.400 QNET( 4)= -0.050 PNET( 5)= -0.600 QNET( 5)= -0.100 PNET( 6)= 0.000 QNET( 6)= 0.000 Number of iteration : 7

Tinh PCAL va QCAL PCAL( 1)= 1.3113 QCAL( 1)= 0.9094 PCAL( 2)= 0.2000 QCAL( 2)= -0.7180 PCAL( 3)= -0.4500 QCAL( 3)= -0.1500 PCAL( 4)= -0.4000 QCAL( 4)= -0.0500 PCAL( 5)= -0.6000 QCAL( 5)= -0.1000 PCAL( 6)= -0.0000 QCAL( 6)= -0.0000

State Variables Updating

bus bustype VM VA(do) 1 1 1.0600 0.0000 2 2 1.0000 -2.0380 3 3 0.9870 -4.7274 4 3 0.9849 -4.8113 5 3 0.9718 -5.7009 6 3 0.9864 -4.771

Cong suat may phat :

Nut may phat 1 : 1.3120 + j 0.90964 Nut may phat 2 : 0.4000 + j -0.6189

In PQflows

Nhanh Dau Cuoi Psend Qsend Prec Qrec Ploss Qloss 1 1 2 0.887 0.742 -0.862 -0.731 0.025 0.010 2 1 3 0.424 0.167 -0.409 -0.173 0.016 -0.006 3 2 3 0.255 -0.027 -0.251 -0.001 0.004 -0.028 4 2 4 0.266 -0.016 -0.262 -0.011 0.004 -0.027 5 2 5 0.541 0.056 -0.529 -0.049 0.012 0.007 6 6 4 0.210 0.025 -0.210 -0.043 0.000 -0.018 7 4 5 0.071 0.004 -0.071 -0.051 0.000 -0.046 Total loss : 0.0613 + j -0.1077

In PQbus sau khi hoi tu Bus loadbus Pbus Qbus 1 2 0.4000 -0.6180 2 3 -0.6600 -0.1741 3 4 -0.4000 -0.0500 4 5 -0.6000 -0.1000 5 6 0.2100 0.0251

Power at sending and receiving end of TCSC

Ptcsc( 1, 1)= 0.2100 Qtcsc( 1, 1)= 0.0241 Ptcsc( 1, 2)= -0.2100 Qtcsc( 1, 2)= -0.0251

TCSC capacitive reactance X( 1) = -0.0216

5.3 Viết bằng chương trình Hadi Saadat

Chương trình code cho trong phụ lục 7

Kiem tra ket qua bang chuong trinh Saadat sau khi dat TCSC

Sai so = 7.72499-005 So lan lap = 3

Nut Dien ap Goc ---Phu tai--- ---May phat--- Tu bu No. dvtd. Degree MW Mvar MW Mvar Mvar

1 1.06000 0.000 0.000 0.000 131.120 90.964 0.000 2 1.00000 -2.038 20.000 10.000 40.000 -61.890 0.000 3 0.98704 -4.727 45.000 15.000 0.000 0.000 0.000 4 0.98491 -4.813 40.000 5.000 0.000 0.000 0.000 5 0.97182 -5.701 60.000 10.000 0.000 0.000 0.000 6 0.98641 -4.772 0.000 0.000 0.000 0.000 0.000 Tong 165.000 40.000 171.120 29.074 0.000

Dong cong suat nhanh va ton that

--- --Duong day-- Cong suat nut & Dong nhanh --Ton that--

tu den MW Mvar MVA MW MVAr

1 131.120 90.964 159.583

2 88.678 74.187 115.618 2.470 1.041 3 42.451 16.777 45.464 1.556 -0.576

2 20.000 -71.890 74.620 1 -86.207 -73.147 113.058 2.470 1.041 3 25.504 -2.660 25.642 0.391 -2.777 4 26.601 -1.639 26.652 0.425 -2.665 5 54.102 5.570 54.388 1.191 0.656 3 -45.000 -15.000 47.434 1 -40.894 -17.353 44.424 1.556 -0.576 2 -25.113 -0.117 25.113 0.391 -2.777 6 21.007 2.470 21.152 0.023 -0.977 4 -40.000 -5.000 40.311 2 -26.177 -1.026 26.197 0.425 -2.665 6 -20.961 -4.322 21.422 0.023 -0.975 5 7.138 0.448 7.152 0.049 -4.638 5 -60.000 -10.000 60.828 2 -52.911 -4.914 53.139 1.191 0.656 4 -7.089 -5.086 8.724 0.049 -4.638 6 0.000 0.000 0.000 4 21.000 3.477 21.265 0.023 -0.977 3 -21.000 -3.477 21.265 0.023 -0.975

Tong ton that 6.128 -10.911

Hình 5.13: Kết quả mô phỏng hệ thống điện khi sử dụng TCSC (adsbygoogle = window.adsbygoogle || []).push({});

ĐỒ THỊ

Hình 5.15: Sự cố tại bus 2, đường dây 23 được loại bỏ

Hình 5.17: Sự cố tại bus 4, đường dây 45 được loại bỏ

Hình 5.19: Sự cố tại bus 3, đường dây 36 được loại bỏ

CHƯƠNG 6: KẾT LUẬN 1. Kết quả thu được

Hiểu được cấu tạo và nguyên lý làm việc của các thiết bị FACTS

Sữ dụng chương trình Matlab để phân tích hệ thống điện đơn giản khi sữ dụng thiết bị TCSC, từ đó đánh giá được sự ổn định và ưu điểm của thiết bị này so với các thiết bị bù khác như máy bù đồng bộ hay tụ điện tĩnh

Thiết bị bù có điều khiển TCSC làm cho hệ thống điện vận hành linh hoạt trong các chế độ bình thường và sự cố đồng thời làm tăng độ tin cậy và tính kinh tế trong vận hành của hệ thống điện lên rất nhiều. Hơn nữa, việc sử dụng TCSC trong hệ thống điện còn làm tăng chất lượng điện năng, đặc biệt tại các nút có phụ tải quan trọng cần yêu cầu cao về độ ổn định điện áp.

2. Hạn chế của luận văn

Vì thời gian làm đố án không nhiều cho nên phần mềm Matlab em chỉ tập trung nghiên cứu về những cái cần thiết, không tìm hiểu được rộng.

Chương trình dùng để mô phỏng chỉ thực hiện trên một hệ thống nhỏ (6 bus), nên đôi khi chưa thể đánh giá được hết ưu điểm của thiết bị.

FACTS nói chung và TCSC nói riêng là một mảng công nghệ mới, chưa được dùng phổ biến nhiều trong hệ thống điện, nên những gì nghiên cứu được chỉ nằm trên cơ sở lý thuyết, chưa tìm hiểu qua trực quan thực tế.

3. Hướng phát triển của đề tài

Từ kết quả thu được trong quá trình thực hiện và hoàn thiện khóa luận: Việc thay thế thiết bị TCSC thay cho tụ bù dọc cố định có khả năng làm cho hệ thống làm việc linh hoạt hơn, đảm bảo được các chế độ vận hành của hệ thống điện nên hướng phát triển tiếp theo của đề tài là:

Ngoài Matlab có thể nghiên cứu xây dựng chương trình mô phỏng sử dụng các thiết bị FACTS để điều khiển nâng cao ổn định hệ thống điện.

Nghiên cứu sử dụng thiết bị TCSC để nâng cao khả năng truyền tải của hệ thống điện Việt Nam.

TÀI LIỆU THAM KHẢO

[1] John G.Kassakian, Martin F. Schkecht, George C. Verghese, Principles of Power Electronic, Addison-Wesley- United States of America, 1999.

[2] T.J.E.Miller & Charkes Concordia, Reactive Power Control in Electric System, Addison- Wesley- United States of America, 1992.

[3] Laszlo Gyugyi & Narain G.Hurgorani, Understanding FACTS, IEEE, London, 1999.

[4] Yong Hua Song & Allan T. John, Flexible AC Transmission System (FACTS) IEEE, London, 1999

[5] Hồ Văn Hiến, Hệ thống điện truyền tải và phân phối, Nhà xuất bản Đại học quốc gia TP. HCM, 2010

[6] Nguyễn Bính, Điện tử công suất, Nhà xuất bản Khoa học Kỹ thuật, 2000.

[7] Nguyễn Hồng Anh, Nguyễn Bê, Ứng dụng điện tử công suất trong hệ thống truyền tải điện xoay chiều linh hoạt, Tạp chí Khoa học và Công nghệ số 40+41/2003.

PHỤ LỤC

1. Thông số bus và đường dây khi chưa sử dụng TCSC

bus bustype VM VA 1 1 1.06 0.00 2 2 1.00 0.00 3 3 1.00 0.00 4 3 1.00 0.00 5 3 1.00 0.00

genbus PGEN QGEN QMAX QMIN 1 0.000 0.000 5.000 -5.000 2 0.400 0.000 3.000 -3.000

branch tlsend tlrec tlresis tlreac tlcond tlsuscep Nhanh Dau Cuoi R X G B 1 1 2 0.0200 0.0600 0.0000 0.0600 2 1 3 0.0800 0.2400 0.0000 0.0500 3 2 3 0.0600 0.1800 0.0000 0.0400 4 2 4 0.0600 0.1800 0.0000 0.0400 5 2 5 0.0400 0.1200 0.0000 0.0300 6 3 4 0.0100 0.0300 0.0000 0.0200 7 4 5 0.0800 0.2400 0.0000 0.0500

loadbus bus PLOAD QLOAD 1 2 0.200 0.100 2 3 0.450 0.150 3 4 0.400 0.050 4 5 0.600 0.100 (adsbygoogle = window.adsbygoogle || []).push({});

2. Thông số bus và đường dây khi sử dụng TCSC bus bustype VM VA 1 1 1.06 0.00 2 2 1.00 0.00 3 3 1.00 0.00 4 3 1.00 0.00 5 3 1.00 0.00 6 3 1.00 0.00

genbus PGEN QGEN QMAX QMIN 1 0.000 0.000 5.000 -5.000 2 0.400 0.000 3.000 -3.000

branch tlsend tlrec tlresis tlreac tlcond tlsuscep Nhanh Dau Cuoi R X G B 1 1 2 0.0200 0.0600 0.0000 0.0600 2 1 3 0.0800 0.2400 0.0000 0.0500 3 2 3 0.0600 0.1800 0.0000 0.0400 4 2 4 0.0600 0.1800 0.0000 0.0400 5 2 5 0.0400 0.1200 0.0000 0.0300 6 6 4 0.0100 0.0300 0.0000 0.0200 7 4 5 0.0800 0.2400 0.0000 0.0500

loadbus bus PLOAD QLOAD 1 2 0.200 0.100 2 3 0.450 0.150 3 4 0.400 0.050 4 5 0.600 0.100 5 6 0.000 0.000

3. Các thông số về thiết bị TCSC

% This function is used exclusively to enter data for:

% THYRISTOR CONTROLLED SERIES COMPENSATOR reactance variable % NTCSC : Number of TCSC’s

% TCSCsend : Sending bus % TCSCrec : Receiving bus % X : TCSC’s reactance

% XLo : Lower reactance limit % XHi : Higher reactance limit

% Flow : Power flow direction: 1 is for sending to receiving bus; -1 % indicates opposite direction

% Psp : Active power flow to be controlled

% PSta : Indicates control status for active power: 1 is on and 0 is off

NTCSC=1;

TCSCsend(1)=3; TCSCrec(1)=6; X(1)=-0.015; XLo(1)=-0.05; XHi(1)=0.05;

4. Code matlab viết cho chương trình khi chưa có TCSC

%***- - - Main Program

PowerFlowsData; %Read system data

[YR,YI] = YBus(tlsend,tlrec,tlresis,tlreac,tlsuscep,tlcond,shbus,... shresis,shreac,ntl,nbb,nsh); [VM,VA,it] = NewtonRaphson(nmax,tol,itmax,ngn,nld,nbb,bustype,... genbus,loadbus,PGEN,QGEN,QMAX,QMIN,PLOAD,QLOAD,YR,YI,VM,VA); [PQsend,PQrec,PQloss,PQbus] = PQflows(nbb,ngn,ntl,nld,genbus,... loadbus,tlsend,tlrec,tlresis,tlreac,tlcond,tlsuscep,PLOAD,... QLOAD,VM,VA); it %Iteration number

VM %Nodal voltage magnitude (p.u.)

VA = VA*180/pi %Nodal voltage phase angle(Deg) PQsend %Sending active and reactive powers (p.u.) PQrec %Receiving active and reactive powers (p.u.) %End Main Program

%Build up admittance matrix

function [YR,YI] = YBus(tlsend,tlrec,tlresis,tlreac,tlsuscep,... tlcond,shbus,shresis,shreac,ntl,nbb,nsh);

YR=zeros(nbb,nbb); YI=zeros(nbb,nbb);

% Transmission lines contribution for kk = 1: ntl

ii = tlsend(kk); jj = tlrec(kk);

denom = tlresis(kk)^2+tlreac(kk)^2;

YR(ii,ii) = YR(ii,ii) + tlresis(kk)/denom + 0.5*tlcond(kk); YI(ii,ii) = YI(ii,ii) - tlreac(kk)/denom + 0.5*tlsuscep(kk); YR(ii,jj) = YR(ii,jj) - tlresis(kk)/denom;

YI(ii,jj) = YI(ii,jj) + tlreac(kk)/denom; YR(jj,ii) = YR(jj,ii) - tlresis(kk)/denom; YI(jj,ii) = YI(jj,ii) + tlreac(kk)/denom;

YR(jj,jj) = YR(jj,jj) + tlresis(kk)/denom + 0.5*tlcond(kk); YI(jj,jj) = YI(jj,jj) - tlreac(kk)/denom + 0.5*tlsuscep(kk); end

% Shunt elements contribution for kk = 1: nsh (adsbygoogle = window.adsbygoogle || []).push({});

denom = shresis(kk)^2+shreac(kk)^2;

YR(ii,ii) = YR(ii,ii) + shresis(kk)/denom; YI(ii,ii) = YI(ii,ii) - shreac(kk)/denom; end

% End of function YBus

%Carry out iterative solution using the Newton-Raphson method function [VM,VA,it] = NewtonRaphson(nmax,tol,itmax,ngn,nld,nbb,... bustype, genbus,loadbus,PGEN,QGEN,QMAX,QMIN,PLOAD,QLOAD,YR,YI,VM,VA) % GENERAL SETTINGS

D = zeros(1,nmax); flag = 0;

it = 1;

% CALCULATE NET POWERS

[PNET,QNET] = NetPowers(nbb,ngn,nld,genbus,loadbus,PGEN,QGEN,... PLOAD,QLOAD);

while ( it < itmax & flag==0 ) % CALCULATED POWERS

[PCAL,QCAL] = CalculatedPowers(nbb,VM,VA,YR,YI);

% CHECK FOR POSSIBLE GENERATOR’S REACTIVE POWERS LIMITS VIOLATIONS [QNET,bustype] = GeneratorsLimits(ngn,genbus,bustype,QGEN,QMAX,... QMIN,QCAL,QNET, QLOAD, it, VM, nld, loadbus);

% POWER MISMATCHES [DPQ,DP,DQ,flag] = PowerMismatches(nmax,nbb,tol,bustype,flag,PNET,... QNET,PCAL,QCAL); % JACOBIAN FORMATION [JAC] = NewtonRaphsonJacobian(nmax,nbb,bustype,PCAL,QCAL,VM,VA,... YR,YI);

% SOLVE FOR THE STATE VARIABLES VECTOR D = JAC\DPQ’;

% UPDATE STATE VARIABLES

[VA,VM] = StateVariablesUpdates(nbb,D,VA,VM); it = it + 1;

end

% End function Newton-Raphson

%Function to calculate the net scheduled powers

function [PNET,QNET] = NetPowers(nbb,ngn,nld,genbus,loadbus,PGEN,... QGEN, PLOAD,QLOAD);

% CALCULATE NET POWERS PNET = zeros(1,nbb);

QNET = zeros(1,nbb); for ii = 1: ngn

PNET(genbus(ii)) = PNET(genbus(ii)) + PGEN(ii); QNET(genbus(ii)) = QNET(genbus(ii)) + QGEN(ii); end

for ii = 1: nld

PNET(loadbus(ii)) = PNET(loadbus(ii)) - PLOAD(ii); QNET(loadbus(ii)) = QNET(loadbus(ii)) - QLOAD(ii); end

%End function NetPowers

%Function to calculate injected bus powers

function [PCAL,QCAL] = CalculatedPowers(nbb,VM,VA,YR,YI) % Include all entries

PCAL = zeros(1,nbb); QCAL = zeros(1,nbb); for ii = 1: nbb PSUM = 0; QSUM = 0; for jj = 1: nbb

PSUM = PSUM + VM(ii)*VM(jj)*(YR(ii,jj)*cos(VA(ii)-VA(jj)) +... YI(ii,jj)*sin(VA(ii)-VA(jj)));

QSUM = QSUM + VM(ii)*VM(jj)*(YR(ii,jj)*sin(VA(ii)-VA(jj)) – ... YI(ii,jj)*cos(VA(ii)-VA(jj))); end PCAL(ii) = PSUM; QCAL(ii) = QSUM; end %End of functionCalculatePowers (adsbygoogle = window.adsbygoogle || []).push({});

%Function to check whether or not solution is within generators limits fu nct io n [Q NET ,bu st ype ] = GeneratorsLimit s( ngn ,genbus, bustype,QGEN, ...QMAX,QMIN,QCAL,QNET,QLOAD,it,VM,nld,loadbus) % CHECK FOR POSSIBLE GENERATOR’S REACTIVE POWERS LIMITS VIOLATIONS if it > 2 flag2 = 0; for ii = 1: ngn jj = genbus(ii); if (bustype(jj) == 2) if ( QCAL(jj) > QMAX(ii) ) QNET(genbus(ii)) = QMAX(ii);

bustype(jj) = 3; flag2 = 1;

elseif ( QCAL(jj) < QMIN(ii) ) QNET(genbus(ii)) = QMIN(ii); bustype(jj) = 3; flag2 = 1; end if flag2 == 1 for ii = 1:nld if loadbus(ii) == jj

QNET(loadbus(ii) = QNET(loadbus(ii)) - QLOAD(ii)) end

end end end end

%End function Generatorslimits

%Function to compute power mismatches

function [DPQ,DP,DQ,flag] = PowerMismatches(nmax,nbb,tol,bustype,... flag,PNET,QNET,PCAL,QCAL); % POWER MISMATCHES DPQ = zeros(1,nmax); DP = zeros(1,nbb); DQ = zeros(1,nbb); DP = PNET - PCAL; DQ = QNET - QCAL;

% To remove the active and reactive powers contributions of the slack % bus and reactive power of all PV buses

for ii = 1: nbb if (bustype(ii) == 1 ) DP(ii) = 0; DQ(ii) = 0; elseif (bustype(ii) == 2 ) DQ(ii) = 0; end end

% Re-arrange mismatch entries kk = 1;

DPQ(kk) = DP(ii); DPQ(kk+1) = DQ(ii); kk = kk + 2;

end

% Check for convergence for ii = 1: nbb*2

if ( abs(DPQ) < tol) flag = 1;

end end

%End function PowerMismatches

%Function to built the Jacobian matrix

function [JAC] = NewtonRaphsonJacobian(nmax,nbb,bustype,PCAL,QCAL,... VM,VA,YR,YI);

% JACOBIAN FORMATION % Include all entries JAC = zeros(nmax,nmax); iii = 1; for ii = 1: nbb jjj = 1; for jj = 1: nbb if ii == jj

JAC(iii,jjj) = -QCAL(ii) - VM(ii)^2*YI(ii,ii); JAC(iii,jjj+1) = PCAL(ii) + VM(ii)^2*YR(ii,ii); JAC(iii+1,jjj) = PCAL(ii) - VM(ii)^2*YR(ii,ii); JAC(iii+1,jjj+1) = QCAL(ii) - VM(ii)^2*YI(ii,ii); else JAC(iii,jjj) = VM(ii)*VM(jj)*(YR(ii,jj)*sin(VA(ii)-VA(jj))... -YI(ii,jj)*cos(VA(ii)-VA(jj))); JAC(iii+1,jjj) = -VM(ii)*VM(jj)*(YI(ii,jj)*sin(VA(ii)... -VA(jj))+YR(ii,jj)*cos(VA(ii)-VA(jj))); JAC(iii,jjj+1) = -JAC(iii+1,jjj); JAC(iii+1,jjj+1) = JAC(iii,jjj); end jjj = jjj + 2; end iii = iii + 2; end

% bus and voltage magnitude equations corresponding to PV buses for kk = 1: nbb if (bustype(kk) == 1) ii = kk*2-1; for jj = 1: 2*nbb if ii == jj JAC(ii,ii) = 1; else JAC(ii,jj) = 0; JAC(jj,ii) = 0; end end end if (bustype(kk) == 1) | (bustype(kk) == 2) ii = kk*2; for jj = 1: 2*nbb if ii == jj JAC(ii,ii) = 1; else JAC(ii,jj) = 0; JAC(jj,ii) = 0; end end end end

%End of function NewtonRaphsonJacobian %Function to update state variables

function [VA,VM] = StateVariablesUpdates(nbb,D,VA,VM) iii = 1;

for ii = 1: nbb

VA(ii) = VA(ii) + D(iii);

VM(ii) = VM(ii) + D(iii+1)*VM(ii); iii = iii + 2;

end

%End function StateVariableUpdating %Function to calculate the power flows

function [PQsend,PQrec,PQloss,PQbus] = PQflows(nbb,ngn,ntl,nld,... genbus,loadbus,tlsend,tlrec,tlresis,tlreac,tlcond,tlsuscep,PLOAD,... QLOAD,VM,VA); (adsbygoogle = window.adsbygoogle || []).push({});

PQsend = zeros(1,ntl); PQrec = zeros(1,ntl);

% Calculate active and reactive powers at the sending and receiving % ends of tranmsission lines

for ii = 1: ntl

Vsend = ( VM(tlsend(ii))*cos(VA(tlsend(ii))) + ... VM(tlsend(ii))*sin(VA(tlsend(ii)))*i );

Vrec = ( VM(tlrec(ii))*cos(VA(tlrec(ii))) + ... VM(tlrec(ii))*sin(VA(tlrec(ii)))*i );

tlimped = tlresis(ii) + tlreac(ii)*i;

current =(Vsend - Vrec) / tlimped + Vsend*( tlcond(ii) + ... tlsuscep(ii)*i )*0.5 ;

PQsend(ii) = Vsend*conj(current);

current =(Vrec - Vsend) / tlimped + Vrec*( tlcond(ii) + ... tlsuscep(ii)*i )*0.5 ;

PQrec(ii) = Vrec*conj(current); PQloss(ii) = PQsend(ii) + PQrec(ii); end

% Calculate active and reactive powers injections at buses PQbus = zeros(1,nbb);

for ii = 1: ntl

PQbus(tlsend(ii)) = PQbus(tlsend(ii)) + PQsend(ii); PQbus(tlrec(ii)) = PQbus(tlrec(ii)) + PQrec(ii); end

% Make corrections at generator buses, where there is load, in order to % get correct generators contributions

for ii = 1: nld jj = loadbus(ii); for kk = 1: ngn ll = genbus(kk); if jj == ll

PQbus(jj) = PQbus(jj) + ( PLOAD(ii) + QLOAD(ii)*i ); end

end end

5. Code Matlab viết cho chương trình khi có TCSC

% - - - Main TCSC variable reactance

PowerFlowsData; %Function to read network data

TCSCData; %Function to read TCSC variable series reactance

[YR,YI] = YBus(tlsend,tlrec,tlresis,tlreac,tlsuscep,tlcond,ntl,nbb); [VM,VA,it,X] = TCSCNewtonRaphson(tol,itmax,ngn,nld,nbb,bustype,... genbus, loadbus,PGEN,QGEN,QMAX,QMIN,PLOAD,QLOAD,YR,...

YI,VM,VA,NTCSC, TCSCsend, TCSCrec,X,XLo,XHi,Flow,Psp,PSta);

[PQsend,PQrec,PQloss,PQbus] = PQflows(nbb,ngn,ntl,nld,genbus,... loadbus,tlsend,tlrec,tlresis,tlreac,tlcond,tlsuscep,PLOAD,QLOAD,... VM,VA); [Ptcsc,Qtcsc] = TCSCPQflows(nbb,VA,VM,NTCSC,TCSCsend,TCSCrec,X); %Print results it %Number of iterations

VM %Nodal voltage magnitude (p.u)

VA=VA*180/pi %Nodal voltage phase angles (Deg) Ptcsc %Active power flow in TCSC (p.u.)

Qtcsc %Reactive power flow in TCSC (p.u.) X %Final reactance value (p.u.)

%End of TCSC MAIN PROGRAM

%Carry out iterative solution using the Newton–Raphson method

function [VM,VA,it,X] = TCSCNewtonRaphson(tol,itmax,ngn,nld,nbb,... bustype, genbus,loadbus,PGEN,QGEN,QMAX,QMIN,PLOAD,QLOAD,YR,YI,... VM,VA,NTCSC, TCSCsend,TCSCrec,X,XLo,XHi,Flow,Psp,PSta); (adsbygoogle = window.adsbygoogle || []).push({});

% GENERAL SETTINGS flag = 0;

it = 1;

% CALCULATE NET POWERS

[PNET,QNET]=NetPowers(nbb,ngn,nld,genbus,loadbus,PGEN,QGEN,... PLOAD,QLOAD);

while ( it < itmax & flag==0 ) % CALCULATED POWERS [PCAL,QCAL]=CalculatedPowers(nbb,VM,VA,YR,YI); % CALCULATED TCSC POWERS [TCSC_PQsend,TCSC_PQrec,PCAL,QCAL]=TCSCCalculatedpower(nbb,VA,... VM,NTCSC,TCSCsend,TCSCrec,X,PCAL,QCAL); % POWER MISMATCHES [DPQ,DP,DQ,flag]=PowerMismatches(nbb,tol,bustype,flag,PNET,QNET,...

PCAL, QCAL);

% TCSC POWER MISMATCHES

[DPQ,flag]=TCSCPowerMismatches(flag,tol,nbb,DPQ,VM,VA,NTCSC,... TCSCsend,TCSCrec,X,Flow,it,Psp,PSta);

%Check for convergence if flag == 1 break end % JACOBIAN FORMATION [JAC]=NewtonRaphsonJacobian(nbb,bustype,PCAL,QCAL,DPQ,VM,VA,... YR,YI);

% MODIFICATION THE JACOBIAN FOR TCSC

[JAC]=TCSCJacobian(nbb,JAC,VM,VA,NTCSC,TCSCsend,TCSCrec,X,... Flow,PSta,it);

% SOLVE JOCOBIAN D = JAC\DPQ’;

% UPDATE THE STATE VARIABLES VALUES, WITH TRUNCATED CORRECTIONS IF % NECESSARY (VM increments < +-0.1 p.u. and VA inrements < +- 5 deg) [VA,VM]=StateVariablesUpdating(nbb,D,VA,VM,it);

% UPDATE THE TCSC VARIABLES

[X]=TCSCUpdating(it,nbb,D,NTCSC,X,PSta); %CHECK IMPEDANCE FOR LIMITS

[X]=TCSCLimits(NTCSC,X,XLo,XHi,PSta); it = it + 1;

end

%Function to calculate injected bus powers by the TCSC

function [TCSC_PQsend,TCSC_PQrec,PCAL,QCAL] = TCSCCalculatedpower... (nbb,VA, VM,NTCSC,TCSCsend,TCSCrec,X,PCAL,QCAL); for ii = 1 : NTCSC Bmm = - 1/X(ii); Bmk = 1/X(ii); for kk = 1 : 2 A = VA(TCSCsend(ii))-VA(TCSCrec(ii)); Pcal = VM(TCSCsend(ii))*VM(TCSCrec(ii))*Bmk*sin(A); Qcal = - VM(TCSCsend(ii))^2*Bmm - VM(TCSCsend(ii))*... VM(TCSCrec(ii))*Bmk*cos(A);

PCAL(TCSCsend(ii)) = PCAL(TCSCsend(ii)) + Pcal; QCAL(TCSCsend(ii)) = QCAL(TCSCsend(ii)) + Qcal; if kk == 1

TCSC_PQsend(ii) = Pcal + j*Qcal; else

TCSC_PQrec(ii) = Pcal + j*Qcal; end send = TCSCsend(ii); TCSCsend(ii) = TCSCrec(ii); TCSCrec(ii) = send; end end

%Function to compute power mismatches with TCSC

function [DPQ,flag] = TCSCPowerMismatches(flag,tol,nbb,DPQ,VM,VA,... NTCSC, TCSCsend,TCSCrec,TCSCX,Flow,it,TCSC_P,PSta); if it > 1 for ii = 1 : NTCSC if PSta(ii) == 1 Bmk = 1/TCSCX(ii); forkk=1:2 A = VA(TCSCsend(ii)) - VA(TCSCrec(ii)); Pcal = VM(TCSCsend(ii))*VM(TCSCrec(ii))*Bmk*sin(A);

if (Flow(ii) == 1 & kk == 1) | (Flow(ii) == -1 & kk == 2) DPQ(1, 2*nbb + ii) = TCSC_P(ii) - Pcal;

break; end send = TCSCsend(ii); TCSCsend(ii) = TCSCrec(ii); TCSCrec(ii) = send; end else DPQ(1, 2*nbb + ii)= 0; end end end

%Function to add the TCSC elements to Jacobian matrix

function [JAC] = TCSCJacobian(nbb,JAC,VM,VA,NTCSC,TCSCsend,... TCSCrec,X,Flow, PSta,it);

for ii = 1 : NTCSC Bmm = - 1/X(ii); Bmk = 1/X(ii); for kk = 1 : 2

A = VA(TCSCsend(ii))-VA(TCSCrec(ii)); (adsbygoogle = window.adsbygoogle || []).push({});

Hkm = - VM(TCSCsend(ii))*VM(TCSCrec(ii))*Bmm*cos(A); Nkm = VM(TCSCsend(ii))*VM(TCSCrec(ii))*Bmm*sin(A);

JAC(2*TCSCsend(ii)-1, 2*TCSCsend(ii)-1) = JAC(2*TCSCsend(ii)-1,... 2*TCSCsend(ii)-1) - VM(TCSCsend(ii))^2*Bmm;

JAC(2*TCSCsend(ii)-1, 2*TCSCrec(ii)-1) = JAC(2*TCSCsend(ii)-1,... 2*TCSCrec(ii)-1) - Hkm;

JAC(2*TCSCsend(ii)-1, 2*TCSCrec(ii)) = JAC(2*TCSCsend(ii)-1,... 2*TCSCrec(ii)) - Nkm;

JAC(2*TCSCsend(ii), 2*TCSCsend(ii)) = JAC(2*TCSCsend(ii),... 2*TCSCsend(ii)) - VM(TCSCsend(ii))^2*Bmm;

JAC(2*TCSCsend(ii), 2*TCSCrec(ii)-1) = JAC(2*TCSCsend(ii),... 2*TCSCrec(ii)-1) + Nkm;

JAC(2*TCSCsend(ii), 2*TCSCrec(ii)) = JAC(2*TCSCsend(ii),... 2*TCSCrec(ii)) - Hkm;

if it > 1

if PSta(ii) == 1

if (Flow(ii) == 1 & kk == 1 )j (Flow(ii) == -1 & kk == 2) JAC(2*nbb + ii, 2*TCSCsend(ii)-1) = Hkm;

JAC(2*nbb + ii, 2*TCSCsend(ii)) = - Nkm; JAC(2*nbb + ii, 2*TCSCrec(ii)-1) = - Hkm; JAC(2*nbb + ii, 2*TCSCrec(ii)) = - Nkm; JAC(2*nbb + ii, 2*nbb + ii) = + Nkm; end

JAC(2*TCSCsend(ii)-1, 2*nbb + ii) = Nkm;

JAC(2*TCSCsend(ii), 2*nbb + ii) = Hkm - VM(TCSCsend(ii))^2*Bmk; else

JAC(2*nbb + ii, 2*nbb + ii) = 1; end end send = TCSCsend(ii); TCSCsend(ii) = TCSCrec(ii); TCSCrec(ii) = send; end

Một phần của tài liệu Giải tích hệ thống điện hệ thống FACTS dùng TCSC (Trang 42)