




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 電力系統(tǒng)潮流計(jì)算課程設(shè)計(jì) 牛頓-拉夫遜法的應(yīng)用 學(xué)院:電氣工程學(xué)院 班級(jí):電125 學(xué)號(hào):1212002047 姓名:王衡佳 教師:張新松 南通大學(xué) 目 錄一、課程設(shè)計(jì)內(nèi)容簡介.11.課程設(shè)計(jì)課題.12.電力系統(tǒng)潮流計(jì)算.1二、電力系統(tǒng)潮流計(jì)算方法.11.高斯-賽德爾迭代法 . .12.牛頓-拉夫遜法.13.P-Q分解法.2三、程序設(shè)計(jì).31.程序設(shè)計(jì)環(huán)境.32.主程序清單.33.程序運(yùn)行結(jié)果.22四、個(gè)人小結(jié).231.課程設(shè)計(jì)問答.232.個(gè)人心得體會(huì).23五、參考文獻(xiàn).24一、課程設(shè)計(jì)內(nèi)容簡介1. 課程設(shè)計(jì)課題 設(shè)計(jì)一個(gè)基于高斯賽德爾法或牛頓拉夫遜法的電力系統(tǒng)潮流計(jì)算程序,要求計(jì)算IEE
2、E14節(jié)點(diǎn),可采用VC+,MATLAB或其他工具實(shí)現(xiàn),了解節(jié)點(diǎn)導(dǎo)納矩陣內(nèi)各元素的意義以及PV節(jié)點(diǎn)與PQ節(jié)點(diǎn)的區(qū)別。2. 電力系統(tǒng)潮流計(jì)算電力系統(tǒng)潮流計(jì)算是研究電力系統(tǒng)穩(wěn)態(tài)運(yùn)行運(yùn)行情況的一種根本電氣計(jì)算。它的任務(wù)是根據(jù)給定的運(yùn)行條件和網(wǎng)路結(jié)構(gòu)確定整個(gè)系統(tǒng)的運(yùn)行狀態(tài),如各母線上的電壓幅值及相角、網(wǎng)絡(luò)中的功率分布以及功率損耗等。電力系統(tǒng)潮流計(jì)算的結(jié)果是電力系統(tǒng)穩(wěn)定計(jì)算和故障分析的根底。二、電力系統(tǒng)潮流計(jì)算方法以導(dǎo)納矩陣為根底,并應(yīng)用高斯-塞德爾迭代的算法是在電力系統(tǒng)中最早得到應(yīng)用的潮流計(jì)算方法,目前高斯一塞德爾法已很少使用。 將所求方程f(x)=0改寫為x=(x),不能直接得出方程的根,給一個(gè)猜想值
3、 x0得:x1=(x0),又可取x1為猜想值,進(jìn)一步得:優(yōu)點(diǎn):(1)原理簡單,程序設(shè)計(jì)十分容易。(2)導(dǎo)納矩陣是一個(gè)對(duì)稱且高度稀疏的矩陣,因此占用內(nèi)存非常節(jié)省。(3)就每次迭代所需的計(jì)算量而言,是各種潮流算法中最小的,并且和網(wǎng)絡(luò)所包含的節(jié)點(diǎn)數(shù)成正比關(guān)系。缺點(diǎn):(1) 收斂速度很慢。(2) 對(duì)病態(tài)條件系統(tǒng),計(jì)算往往會(huì)發(fā)生收斂困難:如節(jié)點(diǎn)間相位角差很大的重負(fù)荷系統(tǒng)、包含有負(fù)電抗支路(如某些三繞組變壓器或線路串聯(lián)電容等)的系統(tǒng)、具有較長的輻射形線路的系統(tǒng)、長線路與短線路接在同一節(jié)點(diǎn)上,而且長短線路的長度比值又很大的系統(tǒng)。(3) 平衡節(jié)點(diǎn)所在位置的不同選擇,也會(huì)影響到收斂性能。2. 牛頓-拉夫遜法牛頓
4、法是數(shù)學(xué)中求解非線性方程式的典型方法,有較好的收斂性。自從20世紀(jì)60年代中期采用了最正確順序消去法以后,牛頓法在收斂性、內(nèi)存要求、計(jì)算速度方面都超過了其他方法,成為直到目前仍被廣泛采用的方法。優(yōu)點(diǎn):(1) 收斂速度快,假設(shè)選擇到一個(gè)較好的初值,算法將具有平方收斂特性,一般迭 代45次便可以收斂到一個(gè)非常精確的解。而且其迭代次數(shù)與所計(jì)算網(wǎng)絡(luò)的規(guī)模根本無關(guān)。(2) 具有良好的收斂可靠性,對(duì)于前面提到的對(duì)以節(jié)點(diǎn)導(dǎo)納矩陣為根底的高斯一 塞德爾法呈病態(tài)的系統(tǒng),牛頓法均能可靠地收斂。(3) 牛頓法所需的內(nèi)存量及每次迭代所需時(shí)間均較前述的高斯一塞德爾法為多, 并與程序設(shè)計(jì)技巧有密切關(guān)系。缺點(diǎn):牛頓法的可靠
5、收斂取決于有一個(gè)良好的啟動(dòng)初值。如果初值選擇不當(dāng),算法有可能根本不收斂或收斂到一個(gè)無法運(yùn)行的解點(diǎn)上。 解決方法: 對(duì)于正常運(yùn)行的系統(tǒng),各節(jié)點(diǎn)電壓一般均在額定值附近,偏移不會(huì)太大,并且各節(jié)點(diǎn)間的相位角差也不大,所以對(duì)各節(jié)點(diǎn)可以采用統(tǒng)一的電壓初值(也稱為“平直電壓),“平直電壓法假定: = 這樣一般能得到滿意的結(jié)果。但假設(shè)系統(tǒng)因無功緊張或其它原因?qū)е码妷嘿|(zhì)量很差或有重載線路而節(jié)點(diǎn)間角差很大時(shí),仍用上述初始電壓就有可能出現(xiàn)問題。可以先用高斯一塞德爾法迭代1-2次;以此迭代結(jié)果作為牛頓法的初值,也可以先用直流法潮流求解一次以求得一個(gè)較好的角度初值,然后轉(zhuǎn)入牛頓法
6、迭代。3. P-Q分解法電力系統(tǒng)中常用的P-Q分解法派生于以極坐標(biāo)表示的牛頓-拉夫遜法,其根本思想是把節(jié)點(diǎn)功率表示為電壓向量的極坐標(biāo)形式,以有功功率誤差作為修正電壓向量角度的依據(jù),以無功功率誤差作為修正電壓幅值的依據(jù),把有功和無功分開進(jìn)行迭代其主要特點(diǎn)是以一個(gè)n-1階和一個(gè)m階不變的、對(duì)稱的系數(shù)矩陣B,B代替原來的n+m-1階變化的、不對(duì)稱的系數(shù)矩陣M,以此提高計(jì)算速度,降低對(duì)計(jì)算機(jī)貯存容量的要求。P-Q分解法在計(jì)算速度方面有顯著的提高,迅速得到了推廣。本課程設(shè)計(jì)中不采用此方法,因此不再過多贅述。3、 程序設(shè)計(jì)1. 程序設(shè)計(jì)環(huán)境(1) 采用方法:牛頓-拉夫遜法(2)(3) 運(yùn)行環(huán)境:win8
7、64位操作系統(tǒng)2. 主程序清單#include <iostream.h>#include <conio.h>#include <math.h>#include <fstream.h>#include <string.h>#include <stdlib.h>#include <iomanip.h> #include <time.h> const double CalculateError=0.00001;/定義計(jì)算收斂條件static int AllNodeNumber;/節(jié)點(diǎn)總數(shù)static in
8、t BranchNumber;/支路總數(shù)static int GroundNumber;/接地支路總數(shù)class BUSpublic:int OldNumber;/舊的節(jié)點(diǎn)編號(hào)int NodeType;/節(jié)點(diǎn)類型(0pq節(jié)點(diǎn),2pv節(jié)點(diǎn),3平衡節(jié)點(diǎn))double LoadP;/負(fù)荷有功double LoadQ;/負(fù)荷無功double GenP;/發(fā)電機(jī)有功double GenQ;/發(fā)電機(jī)無功double VoltageVal;/電壓幅值double VoltageAngle;/電壓相角double NodeP;/節(jié)點(diǎn)凈有功double NodeQ;/節(jié)點(diǎn)凈無功double NodeE;/電壓e
9、分量double NodeF;/電壓f分量BUS():OldNumber(0),NodeType(0),LoadP(0),LoadQ(0),GenP(0),GenQ(0),VoltageVal(1.0),VoltageAngle(0.0),NodeP(0.0),NodeQ(0.0),NodeE(1.0),NodeF(0.0);class BRANCHpublic:int NodeI;/節(jié)點(diǎn)i側(cè)int NodeJ;/節(jié)點(diǎn)j側(cè)int Circuit;/判斷是否是雙回路(0單回路,1雙回路)double R;/支路電阻double X;/支路電抗double Y;/線路變壓器變比或接地導(dǎo)納B BRA
10、NCH():NodeI(0),NodeJ(0),Circuit(1),R(0.0),X(0.0),Y(0.0) ;class Yii/存導(dǎo)納矩陣對(duì)角元素public:double G,B;Yii():G(0.0),B(0.0);class Yij/存導(dǎo)納矩陣非對(duì)角元素和列號(hào)public:double G,B;int j;Yij():G(0),B(0),j(0);class GROUND/存接地支路數(shù)據(jù)public: int Node;double G;double B;class CURRENT/存支路電流public:double E,F;class POWER/存支路功率public:do
11、uble P1,Q1;double P2,Q2;class POWERFLOWpublic:double maxerror;char *FileName, *ResultName;void InputData();/ 讀入系統(tǒng)數(shù)據(jù)void Tinny2();/ 半動(dòng)態(tài)節(jié)點(diǎn)優(yōu)化編號(hào)void FormY();/形成節(jié)點(diǎn)導(dǎo)納矩陣void FormJ();/形成雅克比矩陣(邊形成邊消去) void branchpower();/計(jì)算支路功率 void outputdata();/輸出潮流計(jì)算結(jié)果ifstream input;ofstream output;POWERFLOW();POWERFLOW()
12、;private:int *NewNumber;/按新號(hào)順序存舊號(hào)int *OldNewNumber;/按舊號(hào)順序存新號(hào)BUS *bus;BRANCH *branch;GROUND *ground;CURRENT *I;/迭代后計(jì)算的各支路的電流POWER *power;/各支路功率double BaseS;Yii *yii;Yij *yij;int *seq;/導(dǎo)納矩陣各行非對(duì)角元素首地址int *sum;/導(dǎo)納矩陣各行非對(duì)角元素個(gè)數(shù)double *a;/電流分量double *b;/電流分量double *groundpower;/接地支路功率 int count;/記錄迭代次數(shù);POWE
13、RFLOW:POWERFLOW()FileName=NULL; ResultName=NULL;NewNumber=NULL;bus=NULL;branch=NULL; ground=NULL;BaseS=0;count=0;POWERFLOW:POWERFLOW()delete NewNumber;delete OldNewNumber;delete bus;delete branch;delete I;delete power;delete yii;delete yij;delete seq;delete sum;delete a;delete b;void POWERFLOW:Input
14、Data()/讀入數(shù)據(jù) input.open(FileName,ios:nocreate);input>>BaseS; if(!input) cout<<"數(shù)據(jù)文件有問題!請(qǐng)檢查!"<<endl; return;input>>AllNodeNumber;bus= new BUSAllNodeNumber;for(int i=0;i<AllNodeNumber;i+)input>>busi.OldNumber>>busi.NodeType>>busi.LoadP>>busi.
15、LoadQ>>busi.GenP>>busi.GenQ>>busi.VoltageAngle>>busi.VoltageVal; busi.NodeE=busi.VoltageVal*cos(busi.VoltageAngle*3.14159265/180); busi.NodeF=busi.VoltageVal*sin(busi.VoltageAngle*3.14159265/180);busi.NodeP=(busi.GenP-busi.LoadP)/BaseS;busi.NodeQ=(busi.GenQ-busi.LoadQ)/BaseS;
16、input>>BranchNumber;branch = new BRANCHBranchNumber;for(i=0;i<BranchNumber;i+)input>>branchi.NodeI>>branchi.NodeJ>>branchi.R>>branchi.X>>branchi.Y;if(i=1)branchi.Circuit=0;elseif(branchi.NodeI=branchi-1.NodeI)&&(branchi.NodeJ=branchi-1.NodeJ)branchi.Cir
17、cuit=1;branchi-1.Circuit=1;else branchi.Circuit=0; input>>GroundNumber;ground =new GROUNDGroundNumber; for(i=0;i<GroundNumber;i+) input>>groundi.Node>>groundi.G>>groundi.B; input.close();void POWERFLOW:Tinny2()/半動(dòng)態(tài)節(jié)點(diǎn)優(yōu)化編號(hào)NewNumber=new intAllNodeNumber+1;int *ConnectNum=new
18、intAllNodeNumber+1;int *NodeConnect=new int*AllNodeNumber+1;for(int i=0;i<(AllNodeNumber+1);i+)NodeConnecti=new int15;for(i=1;i<(AllNodeNumber+1);i+)ConnectNumi=0;for(i=0;i<BranchNumber;i+)ConnectNumabs(branchi.NodeI)+;ConnectNumabs(branchi.NodeJ)+;NodeConnectabs(branchi.NodeI)ConnectNumabs
19、(branchi.NodeI)=abs(branchi.NodeJ); NodeConnectabs(branchi.NodeJ)ConnectNumabs(branchi.NodeJ)=abs(branchi.NodeI);if(branchi.Circuit=1)+i;for(int z=1;z<(AllNodeNumber+1);z+)NewNumberz=1;for(i=1;i<(AllNodeNumber+1);i+)if(ConnectNumNewNumberz>ConnectNumi)NewNumberz=i;if(ConnectNumNewNumberz=1)
20、for(int j=1;j<(ConnectNumNodeConnectNewNumberz1+1);j+)if(NodeConnectNodeConnectNewNumberz1j=NewNumberz)NodeConnectNodeConnectNewNumberz1j=NodeConnectNodeConnectNewNumberz1ConnectNumNodeConnectNewNumberz1; ConnectNumNodeConnectNewNumberz1-;elsefor(i=1;i<(ConnectNumNewNumberz+1);i+)for(int j=1;j
21、<(ConnectNumNodeConnectNewNumberzi+1);j+)if(NodeConnectNodeConnectNewNumberzij=NewNumberz)NodeConnectNodeConnectNewNumberzij=NodeConnectNodeConnectNewNumberziConnectNumNodeConnectNewNumberzi;ConnectNumNodeConnectNewNumberzi-;for(i=1;i<(ConnectNumNewNumberz);i+)for(int k=i+1;k<(ConnectNumNew
22、Numberz+1);k+)for(int j=1;j<(ConnectNumNodeConnectNewNumberzi+1);j+)if(NodeConnectNewNumberzk!=NodeConnectNodeConnectNewNumberzij) continue;else break;if(j=(ConnectNumNodeConnectNewNumberzi+1)ConnectNumNodeConnectNewNumberzi+;ConnectNumNodeConnectNewNumberzk+;NodeConnectNodeConnectNewNumberziConn
23、ectNumNodeConnectNewNumberzi=NodeConnectNewNumberzk;NodeConnectNodeConnectNewNumberzkConnectNumNodeConnectNewNumberzk=NodeConnectNewNumberzi; ConnectNumNewNumberz=AllNodeNumber;for(i=1;i<(AllNodeNumber+1);i+)/新號(hào)數(shù)組中對(duì)應(yīng)的老號(hào)cout<<NewNumberi<<" "cout<<endl;OldNewNumber=new i
24、ntAllNodeNumber+1;for(i=1;i<(AllNodeNumber+1);i+)for(int j=1;j<(AllNodeNumber+1);j+)if(NewNumberj=i)OldNewNumberi=j;for(i=1;i<(AllNodeNumber+1);i+)/老號(hào)數(shù)組中對(duì)應(yīng)的新號(hào)cout<<OldNewNumberi<<" "cout<<endl; delete ConnectNum;for (i = 0; i <(AllNodeNumber+1); i+)delete15 No
25、deConnecti;void POWERFLOW:FormY()/形成導(dǎo)納矩陣int z=1;yii =new YiiAllNodeNumber+1;yij =new YijBranchNumber+1; seq =new intAllNodeNumber+1; sum =new intAllNodeNumber; for(int f=0;f<AllNodeNumber;f+)seqf=0; sumf=0; seqAllNodeNumber=0;for(int i=1;i<AllNodeNumber;i+)for(int j=0;j<BranchNumber;j+)if(N
26、ewNumberi=abs(branchj.NodeI)|(NewNumberi=abs(branchj.NodeJ)if(OldNewNumberabs(branchj.NodeI)<i|OldNewNumberabs(branchj.NodeJ)<i)continue;double Z=branchj.R*branchj.R+branchj.X*branchj.X; if(branchj.NodeI<0)if(branchj.Circuit=1)double Z1=branchj+1.R*branchj+1.R+branchj+1.X*branchj+1.X;yijz.G
27、=-branchj.R/(Z*branchj.Y)-branchj+1.R/(Z1*branchj+1.Y);yijz.B=branchj.X/(Z*branchj.Y)+branchj+1.X/(Z1*branchj+1.Y);yiiOldNewNumberabs(branchj.NodeI).G+=-(1-branchj.Y)*(-branchj.R/(Z*branchj.Y)/branchj.Y+(1-branchj+1.Y)*(-branchj+1.R/(Z1*branchj+1.Y)/branchj+1.Y);yiiOldNewNumberabs(branchj.NodeI).B+=
28、-(1-branchj.Y)*(branchj.X/(Z*branchj.Y)/branchj.Y+(1-branchj+1.Y)*(branchj+1.X/(Z1*branchj+1.Y)/branchj+1.Y);yiiOldNewNumberabs(branchj.NodeJ).G+=(1-branchj.Y)*(-branchj.R/(Z*branchj.Y)+(1-branchj+1.Y)*(-branchj+1.R/(Z1*branchj+1.Y);yiiOldNewNumberabs(branchj.NodeJ).B+=(1-branchj.Y)*(branchj.X/(Z*br
29、anchj.Y)+(1-branchj+1.Y)*(branchj+1.X/(Z1*branchj+1.Y);j+;elseyijz.G=-branchj.R/(Z*branchj.Y);yijz.B=branchj.X/(Z*branchj.Y);yiiOldNewNumberabs(branchj.NodeI).G+=-(1-branchj.Y)*yijz.G/branchj.Y;yiiOldNewNumberabs(branchj.NodeI).B+=-(1-branchj.Y)*yijz.B/branchj.Y;yiiOldNewNumberabs(branchj.NodeJ).G+=
30、(1-branchj.Y)*yijz.G;yiiOldNewNumberabs(branchj.NodeJ).B+=(1-branchj.Y)*yijz.B;if(NewNumberi=abs(branchj.NodeI)yijz.j=OldNewNumberabs(branchj.NodeJ);elseyijz.j=OldNewNumberabs(branchj.NodeI); z+;elseif(branchj.Circuit=1)yijz.G=-branchj.R/Z-branchj+1.R/(branchj+1.R*branchj+1.R+branchj+1.X*branchj+1.X
31、);yijz.B=branchj.X/Z+branchj+1.X/(branchj+1.R*branchj+1.R+branchj+1.X*branchj+1.X);yiiOldNewNumberabs(branchj.NodeI).B+=branchj.Y/2+branchj+1.Y/2;yiiOldNewNumberabs(branchj.NodeJ).B+=branchj.Y/2+branchj+1.Y/2;j+;elseyijz.G=-branchj.R/Z;yijz.B=branchj.X/Z;yiiOldNewNumberabs(branchj.NodeI).B+=branchj.
32、Y/2;yiiOldNewNumberabs(branchj.NodeJ).B+=branchj.Y/2;if(NewNumberi=abs(branchj.NodeI)yijz.j=OldNewNumberabs(branchj.NodeJ);elseyijz.j=OldNewNumberabs(branchj.NodeI); z+; sumi+; if(i=1) seqi=1; elseseqi=sumi-1+seqi-1;for(int y=seqi;y<(seqi+sumi);y+)yiii.G-=yijy.G;yiii.B-=yijy.B; seqAllNodeNumber=s
33、eqAllNodeNumber-1+sumAllNodeNumber-1;for(i=0;i<(AllNodeNumber+1);i+)for(int j=1;j<z;j+)if(i=yijj.j)yiii.G-=yijj.G;yiii.B-=yijj.B;for(i=0;i<GroundNumber;i+)yiiOldNewNumbergroundi.Node.B+=groundi.B;void POWERFLOW:FormJ()/形成雅克比矩陣(邊形成邊消去) a=new doubleAllNodeNumber+1;b=new doubleAllNodeNumber+1;
34、for(int i=1;i<=AllNodeNumber;i+)/對(duì)角局部ai=yiii.G*busNewNumberi-1.NodeE-yiii.B*busNewNumberi-1.NodeF;bi=yiii.G*busNewNumberi-1.NodeF+yiii.B*busNewNumberi-1.NodeE;for(int d=1;d<AllNodeNumber;d+)/上三角局部if(seqd>BranchNumber)break;for(int j=seqd;j<seqd+1;j+)ad+=yijj.G*busNewNumberyijj.j-1.NodeE-
35、yijj.B*busNewNumberyijj.j-1.NodeF; bd+=yijj.G*busNewNumberyijj.j-1.NodeF+yijj.B*busNewNumberyijj.j-1.NodeE; for(int f=2;f<=AllNodeNumber;f+)/下三角局部for(int s=seq1;s<seqf;s+) int r; if(yijs.j=f)for(int l=1;l<AllNodeNumber;l+)/確定行號(hào)if(s>=seql&&s<seql+1) r=l; af+=yijs.G*busNewNumber
36、r-1.NodeE-yijs.B*busNewNumberr-1.NodeF; bf+=yijs.G*busNewNumberr-1.NodeF+yijs.B*busNewNumberr-1.NodeE;double*P=new double*AllNodeNumber+1;double*Q=new double*AllNodeNumber+1;for(int x=1;x<(AllNodeNumber+1);x+)Px=new double2*AllNodeNumber+2; Qx=new double2*AllNodeNumber+2;for(int p=1;p<=AllNode
37、Number;p+)for(int y=1;y<=2*AllNodeNumber+1;y+)Ppy=0; Qpy=0;int bal=0;for(int i1=1;i1<=AllNodeNumber;i1+)if(busNewNumberi1-1.NodeType=3) /平衡節(jié)點(diǎn)bal=i1;maxerror=0; for(i=1;i<=AllNodeNumber;i+)/形成雅克比矩陣int balance;if(busNewNumberi-1.NodeType=3) /平衡節(jié)點(diǎn)balance=i;continue; else if(busNewNumberi-1.Nod
38、eType=0)/PQ節(jié)點(diǎn) Pi2*i-1=-ai-(yiii.G*busNewNumberi-1.NodeE+yiii.B*busNewNumberi-1.NodeF); Pi2*i=-bi+(yiii.B*busNewNumberi-1.NodeE-yiii.G*busNewNumberi-1.NodeF);Qi2*i-1=bi+(yiii.B*busNewNumberi-1.NodeE-yiii.G*busNewNumberi-1.NodeF); Qi2*i=-ai+(yiii.G*busNewNumberi-1.NodeE+yiii.B*busNewNumberi-1.NodeF);i
39、f(i!=AllNodeNumber) for(int m=seqi;m<seqi+1;m+)/上三角對(duì)角塊if(seqi>BranchNumber)break;Pi2*yijm.j-1=-(yijm.G*busNewNumberi-1.NodeE+yijm.B*busNewNumberi-1.NodeF);Pi2*yijm.j=(yijm.B*busNewNumberi-1.NodeE-yijm.G*busNewNumberi-1.NodeF); Qi2*yijm.j-1=Pi2*yijm.j; Qi2*yijm.j=-Pi2*yijm.j-1; for(int s=seq1;s
40、<seqi;s+)/下三角對(duì)角塊 int r;if(yijs.j=i)for(int l=1;l<AllNodeNumber;l+)/確定行號(hào)if(s>=seql&&s<seql+1) r=l;if(r=balance)continue;Pi2*r-1=-(yijs.G*busNewNumberi-1.NodeE+yijs.B*busNewNumberi-1.NodeF);Pi2*r=yijs.B*busNewNumberi-1.NodeE-yijs.G*busNewNumberi-1.NodeF;Qi2*r-1=Pi2*r;Qi2*r=-Pi2*r-1
41、;Pi2*AllNodeNumber+1=busNewNumberi-1.NodeP-busNewNumberi-1.NodeE*ai-busNewNumberi-1.NodeF*bi; Qi2*AllNodeNumber+1=busNewNumberi-1.NodeQ-busNewNumberi-1.NodeF*ai+busNewNumberi-1.NodeE*bi;else/PV節(jié)點(diǎn)Pi2*i-1=-ai-(yiii.G*busNewNumberi-1.NodeE+yiii.B*busNewNumberi-1.NodeF);Pi2*i=-bi+(yiii.B*busNewNumberi-1
42、.NodeE-yiii.G*busNewNumberi-1.NodeF);Qi2*i-1=-2*busNewNumberi-1.NodeE;Qi2*i=-2*busNewNumberi-1.NodeF; if(i!=AllNodeNumber) for(int m=seqi;m<seqi+1;m+)/上三角對(duì)角塊 if(seqi>BranchNumber)break;Pi2*yijm.j-1=-(yijm.G*busNewNumberi-1.NodeE+yijm.B*busNewNumberi-1.NodeF);Pi2*yijm.j=(yijm.B*busNewNumberi-1.
43、NodeE-yijm.G*busNewNumberi-1.NodeF); for(int s=seq1;s<seqi;s+)/下三角對(duì)角塊 int r; if(yijs.j=i)for(int l=1;l<AllNodeNumber;l+)/確定行號(hào)if(s>=seql&&s<seql+1) r=l;Pi2*r-1=-(yijs.G*busNewNumberi-1.NodeE+yijs.B*busNewNumberi-1.NodeF);Pi2*r=yijs.B*busNewNumberi-1.NodeE-yijs.G*busNewNumberi-1.No
44、deF; Pi2*AllNodeNumber+1=busNewNumberi-1.NodeP-busNewNumberi-1.NodeE*ai-busNewNumberi-1.NodeF*bi;Qi2*AllNodeNumber+1=busNewNumberi-1.VoltageVal*busNewNumberi-1.VoltageVal-busNewNumberi-1.NodeE*busNewNumberi-1.NodeE-busNewNumberi-1.NodeF*busNewNumberi-1.NodeF;for(int iii=(bal*2-1);iii<(bal*2+1);iii+)Piiii=0;Qiiii=0; if(fabs(maxerror)<fabs(Pi2*AllNodeNumber+1)maxerror=Pi2*AllNodeNumber+1;if(fabs(maxerror)<fabs(Qi2*AllNodeNumber+1)maxerror=Qi2*AllNodeNumber+1;if(i=1)/邊形成邊消去double ss=Q11;for(int z=1;z<(2*AllNodeNumber+2);z+)Q1z=Q1z/ss;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)品質(zhì)量預(yù)警管理制度
- 嚴(yán)禁出入廠區(qū)管理制度
- 企業(yè)食堂資金管理制度
- 三甲醫(yī)院搶救管理制度
- 上海房產(chǎn)店長管理制度
- 親子活動(dòng)中心管理制度
- 東臺(tái)醫(yī)院感染管理制度
- 進(jìn)口牛羊肉公司管理制度
- 個(gè)人衛(wèi)生防護(hù)管理制度
- 臨時(shí)料場安全管理制度
- 上海市靜安區(qū)2023年數(shù)學(xué)五下期末教學(xué)質(zhì)量檢測試題含解析
- 《滑炒技法-尖椒炒肉絲》教學(xué)設(shè)計(jì)
- 岐山縣南灣水泥用灰?guī)r礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 反違章安全教育講義
- 2023-2024學(xué)年江蘇省張家港市小學(xué)語文五年級(jí)期末高分模擬題附參考答案和詳細(xì)解析
- 醫(yī)院創(chuàng)建二甲醫(yī)院工作實(shí)施方案
- 城市管理學(xué)PPT完整全套教學(xué)課件
- 人教版三年級(jí)語文下冊八個(gè)單元作文寫作范文
- 陶土板施工技術(shù)交底
- 分子生物學(xué)知到章節(jié)答案智慧樹2023年湖南科技大學(xué)
- 《園藝產(chǎn)品貯藏與加工》考試題庫大全(附答案)
評(píng)論
0/150
提交評(píng)論