電氣工程及其自動化專業(yè)綜合實訓(xùn)一{新}_第1頁
電氣工程及其自動化專業(yè)綜合實訓(xùn)一{新}_第2頁
電氣工程及其自動化專業(yè)綜合實訓(xùn)一{新}_第3頁
電氣工程及其自動化專業(yè)綜合實訓(xùn)一{新}_第4頁
電氣工程及其自動化專業(yè)綜合實訓(xùn)一{新}_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、電氣工程及其自動化專業(yè)綜合實訓(xùn)一一 原始資料網(wǎng)絡(luò)接線如圖,各支路阻抗和各節(jié)點(diǎn)功率均以標(biāo)幺值標(biāo)于圖中,其中節(jié)點(diǎn)2連接的實際是發(fā)額定功率的發(fā)電廠。設(shè)節(jié)點(diǎn)1的電壓保持為1.06,試計算圖示系統(tǒng)中的潮流分布。(計算精度10-5)二、等值電路圖電力系統(tǒng)潮流計算二、報告要求:1、寫出潮流計算的原理2、寫出功率方程(極坐標(biāo)或直角坐標(biāo))3、寫出雅克比矩陣元素的表達(dá)式或PQ分解法中的系數(shù)矩陣4、利用MATLABLE語言或其他語言編程調(diào)試5、心得或體會6、附程序代碼,打印潮流計算步驟:1、寫出潮流計算的原理潮流是指在發(fā)電機(jī)母線上功率被注入網(wǎng)絡(luò),而在變(配)電站的母線上接入負(fù)荷,其間,功率在網(wǎng)絡(luò)中流動。對于這種流動

2、的功率,電力生產(chǎn)部門稱之為潮流。以電力網(wǎng)絡(luò)潮流、電壓計算為主要內(nèi)容的電力網(wǎng)絡(luò)穩(wěn)態(tài)行為特性計算的目的在于估計對用戶電力供應(yīng)的質(zhì)量以及為電力網(wǎng)運(yùn)行的安全性與經(jīng)濟(jì)性評估提供基礎(chǔ)數(shù)據(jù)。配電網(wǎng)潮流計算是配電網(wǎng)絡(luò)分析的基礎(chǔ),配電網(wǎng)的網(wǎng)絡(luò)重構(gòu)、無功功率優(yōu)化、狀態(tài)估計和故障處理都需要用到配電網(wǎng)潮流數(shù)據(jù)。電力系統(tǒng)穩(wěn)態(tài)運(yùn)行應(yīng)滿足以下要求:1)滿足系統(tǒng)經(jīng)濟(jì)性運(yùn)行的要求,每一臺發(fā)電機(jī)的輸出必須接近于預(yù)先設(shè)定值;2)必須確保聯(lián)絡(luò)線潮流低于線路熱極限和電力系統(tǒng)穩(wěn)定極限;3)必須保持某些中樞點(diǎn)母線上的電壓水平在容許范圍內(nèi),必要時用無功功率補(bǔ)償計劃來達(dá)到;4)區(qū)域電網(wǎng)是互聯(lián)系統(tǒng)的一部分,必須執(zhí)行合同規(guī)定的輸送至鄰網(wǎng)的聯(lián)絡(luò)線功

3、率計劃;5)用故障前的潮流控制策略使事故擾動效應(yīng)最小化。通常情況下,輸電線路電壓在輕載時會較高,重載時會較低,電壓調(diào)整是指在負(fù)載由輕載到滿載變化過程中實時調(diào)整線路電壓滿足運(yùn)行要求;對于超高壓輸電線路,線路電壓維持在額定電壓的±5%之內(nèi), 實際運(yùn)行時,通常電壓調(diào)整約為10% 。對于低壓輸電線路,電壓調(diào)整數(shù)值為10%,包含了變壓器本身的電壓降落。3.1.1 潮流計算的基本物理量潮流計算是電力系統(tǒng)分析中的一種最基本的計算,它的任務(wù)是對給定的運(yùn)行條件確定系統(tǒng)的運(yùn)行狀態(tài),就是在三相平衡穩(wěn)態(tài)狀態(tài)下計算電力系統(tǒng)中每條母線的電壓幅值和相角,其中每一設(shè)備如傳輸線和變壓器中的有功和無功潮流,以及各設(shè)備的

4、損耗都需要計算出來。潮流計算采用電力系統(tǒng)的單線圖,對于任意一條母線i,需要以下四個變量描述:電壓幅值Ui、相角,電網(wǎng)供給母線的有功Pi、無功Qi。若某一電力系統(tǒng)有N個節(jié)點(diǎn),則共有4N個變量,對于每條母線,這些變量中的兩個指定為輸入數(shù)據(jù),其它的兩個是潮流程序所要計算的未知量。為方便起見,在圖3.1中傳送給母線i的功率可分為發(fā)電機(jī)發(fā)出和負(fù)載吸收兩部分。也就是Pi = PGi PLiQi = QGi QLi圖3-1 節(jié)點(diǎn)的變量每條母線被歸分為以下三種母線類型中的某一類:1)平衡節(jié)點(diǎn),一般一個系統(tǒng)只有一個平衡節(jié)點(diǎn)。在潮流分布算出以前,網(wǎng)絡(luò)中的功率損耗是未知的,因此,至少有一個節(jié)點(diǎn)的有功功率P和無功功率

5、Q不能給定。另外必須選定一個節(jié)點(diǎn),制定其電壓相角為零,作為其它節(jié)點(diǎn)電壓相位的參考,這個節(jié)點(diǎn)叫基準(zhǔn)節(jié)點(diǎn)。為了計算方便,常將平衡節(jié)點(diǎn)和基準(zhǔn)節(jié)點(diǎn)設(shè)在同一個節(jié)點(diǎn)上。為方便起見在本書中把它標(biāo)號為母線1。平衡節(jié)點(diǎn)是電壓參考節(jié)點(diǎn),該母線的是給定值,作為輸入數(shù)據(jù),典型取標(biāo)幺值。潮流程序計算P1和Q1。因為平衡節(jié)點(diǎn)的P、Q事先無法確定,為使潮流計算結(jié)果符合實際,常把平衡節(jié)點(diǎn)選在有較大調(diào)節(jié)裕量的發(fā)電機(jī)節(jié)點(diǎn),潮流計算結(jié)束時若平衡節(jié)點(diǎn)的有功功率、無功功率和實際情況不符,就要調(diào)整其他節(jié)點(diǎn)的邊界條件以使平衡節(jié)點(diǎn)的功率滿足實際允許范圍。2)PQ節(jié)點(diǎn),Pi和Qi是輸入數(shù)據(jù)。這類節(jié)點(diǎn)的有功功率Pi和無功功率Qi是給定的,潮流計

6、算程序計算節(jié)點(diǎn)電壓幅值Ui和相角。負(fù)荷節(jié)點(diǎn)和無功功率注入的聯(lián)絡(luò)節(jié)點(diǎn)都屬于這類節(jié)點(diǎn)。有些情況下,系統(tǒng)中某些發(fā)電廠送出的功率在一定時間內(nèi)為固定時,該發(fā)電廠母線也可以作為PQ節(jié)點(diǎn)。在一個典型的潮流程序中絕大多數(shù)母線作為PQ節(jié)點(diǎn)。3)PU節(jié)點(diǎn)(電壓控制母線),Pi和Ui是輸入數(shù)據(jù)。這類節(jié)點(diǎn)的有功功率Pi和節(jié)點(diǎn)電壓幅值Ui是給定的,潮流程序計算節(jié)點(diǎn)的無功功率Qi和電壓相角。這類節(jié)點(diǎn)必須具有足夠的無功可調(diào)容量,用以保持給定的節(jié)點(diǎn)電壓幅值。在電力系統(tǒng)中這類節(jié)點(diǎn)的數(shù)目較少。例如與發(fā)電機(jī)、并聯(lián)補(bǔ)償電容器或者靜止無功系統(tǒng)相連的母線。設(shè)備無功功率最大值QGimax和最小值QGimin都是輸入數(shù)據(jù)。另一個例子是與抽頭

7、可調(diào)節(jié)變壓器相連的母線,用潮流程序計算抽頭的位置。注意,當(dāng)母線i是無發(fā)電機(jī)相連接的負(fù)載母線時,Pi=-PLi為負(fù)值;也就是說,在圖3.1中給母線i提供的有功為負(fù)值。如果負(fù)荷是感性的,Qi=-QLi為負(fù)值。綜上所述,若系統(tǒng)中有n個節(jié)點(diǎn),n為網(wǎng)絡(luò)中除去參考節(jié)點(diǎn)外的節(jié)點(diǎn)數(shù),本書中以大地為參考節(jié)點(diǎn),選第1個節(jié)點(diǎn)為平衡節(jié)點(diǎn),剩下的n-1個節(jié)點(diǎn)中有r個PU節(jié)點(diǎn),則有n-r-1個PQ節(jié)點(diǎn)。因此,除了平衡節(jié)點(diǎn)外,有n-1個節(jié)點(diǎn)的注入有功功率、n-r-1個PQ節(jié)點(diǎn)的注入無功功率和r個PU節(jié)點(diǎn)電壓幅值為已知量。3.1.2 潮流計算的數(shù)學(xué)模型在穩(wěn)態(tài)潮流計算中,電力系統(tǒng)各元件(參數(shù))等效成一個有源網(wǎng)絡(luò)。將發(fā)電機(jī)和負(fù)荷

8、用無阻抗線從網(wǎng)絡(luò)中抽出,剩下的是由接地和不接地支路組成的無源線性網(wǎng)絡(luò),可以用導(dǎo)納矩陣(Y)或阻抗矩陣(Z)來描述。采用導(dǎo)納矩陣時,節(jié)點(diǎn)電流和節(jié)點(diǎn)電壓構(gòu)成以下方程:(3-1)其中:Y為n×n階導(dǎo)納矩陣,其階數(shù)n為網(wǎng)絡(luò)中除去參考節(jié)點(diǎn)外的節(jié)點(diǎn)數(shù),如果不考慮網(wǎng)絡(luò)元件的非線性及變壓器的相位偏移,Y為對稱矩陣,為n×1維節(jié)點(diǎn)注入電流列向量,在電力系統(tǒng)計算中,節(jié)點(diǎn)注入電流可理解為該節(jié)點(diǎn)電源電流與負(fù)荷電流之和,并規(guī)定流入節(jié)點(diǎn)電流為正。因此僅有負(fù)荷的節(jié)電電流就為負(fù)值,某些僅起聯(lián)絡(luò)作用的節(jié)點(diǎn),圖3-2中節(jié)點(diǎn)n=3,其注入電流為零。為n×1維節(jié)點(diǎn)電壓列向量。網(wǎng)絡(luò)中有接地支路時,節(jié)點(diǎn)電壓

9、通常指該節(jié)點(diǎn)的對地電壓,以大地作為參考節(jié)點(diǎn),并規(guī)定其編號為零。圖3-2 運(yùn)用節(jié)點(diǎn)電壓法時的電力網(wǎng)路等值電路對于第i個節(jié)點(diǎn),展開為如下形式:(3-2)若采用阻抗矩陣可表示為:展開為:(3-3)在潮流計算時一般以節(jié)點(diǎn)電壓方程進(jìn)行。節(jié)點(diǎn)導(dǎo)納矩陣與阻抗矩陣互為逆陣,在短路計算時可直接利用導(dǎo)納矩陣求逆得到阻抗矩陣以求得短路點(diǎn)的短路電流。由于實際系統(tǒng)中一般不給出節(jié)點(diǎn)電流而是節(jié)點(diǎn)功率,因此將式(3-2)中的節(jié)點(diǎn)注入電流用節(jié)點(diǎn)注入功率來表示為:(3-4)如果節(jié)點(diǎn)電壓用極坐標(biāo)表示,令n個節(jié)點(diǎn)電力系統(tǒng)的潮流方程的一般形式是(3-5)或(3-6)若采用直角坐標(biāo)系,節(jié)點(diǎn)電壓可表示為導(dǎo)納矩陣元素可以表示為將上述表達(dá)式帶

10、入式(2-8)的右端,展開并分出實部和虛部,便得(3-7)可見,原來電流電壓的線性方程組變換為功率和電壓的非線性方程組,式(3-6)(3-7)就是潮流計算的基本方程。它是一組共有n個非線性方程組成的復(fù)數(shù)方程組,如果把實部和虛部分開便得到2n個實數(shù)方程,由該方程組可解出2n個運(yùn)行參數(shù)。但是每一個節(jié)點(diǎn)都有P、Q、U、 四個運(yùn)行變量,共有4n個運(yùn)行參數(shù),所以要事先給定其余2n個參數(shù)。這就要根據(jù)節(jié)點(diǎn)的分類,將每個節(jié)點(diǎn)的4個運(yùn)行參數(shù)中的兩個作為原始數(shù)據(jù),另外兩個作為待求量。3.1.3 潮流計算的約束條件為了保證電力系統(tǒng)的正常運(yùn)行,潮流問題中某些變量應(yīng)滿足一定的約束條件,常用的約束條件有:(1) 所有節(jié)點(diǎn)

11、電壓必須滿足從保證電能質(zhì)量和供電安全的要求來看,電力系統(tǒng)的所有電氣設(shè)備都必須運(yùn)行在額定電壓附近。PU節(jié)點(diǎn)的電壓幅值必須按上述條件給定。因此,這一定約束條件主要是對PQ節(jié)點(diǎn)而言。(2) 所有電源節(jié)點(diǎn)的有功功率和無功功率必須滿足PQ節(jié)點(diǎn)的有功功率和無功功率以及PU節(jié)點(diǎn)有功功率,在給定時就必須滿足此條件。因此,對平衡節(jié)點(diǎn)的P和Q以及PU節(jié)點(diǎn)的Q應(yīng)按此條件進(jìn)行檢驗。(3) 某些節(jié)點(diǎn)之間電壓的相位差應(yīng)滿足為了保證系統(tǒng)運(yùn)行的穩(wěn)定性,要求某些輸電線兩端的電壓相位差不超過一定的數(shù)值。因此,潮流計算可以歸結(jié)為求解一組非線性方程組,并使其解答滿足一定的約束條件。如果不能滿足,則應(yīng)修改某些變量。甚至修改系統(tǒng)的運(yùn)行方

12、式,重新進(jìn)行計算。2、寫出功率方程(極坐標(biāo)或直角坐標(biāo))3、寫出雅克比矩陣元素的表達(dá)式或PQ分解法中的系數(shù)矩陣解:(1)、將阻抗轉(zhuǎn)換為導(dǎo)納矩陣:(2)、形成導(dǎo)納矩陣:(3)、B,B形成以及其逆矩陣。由題可知除1為平衡節(jié)點(diǎn)外,其他節(jié)點(diǎn)均為PQ節(jié)點(diǎn),系數(shù)B,B階數(shù)相同,又因?qū)υ摰戎稻W(wǎng)絡(luò)不存在去除與有功功率和電壓或無功功率和電壓大小關(guān)系較小因數(shù)的可能性,這兩個矩陣B,B完全相同,它們就由導(dǎo)納矩陣的虛數(shù)部分中除第一行和第二行的各個元素組成。B=B= 由此可見,網(wǎng)絡(luò)的節(jié)點(diǎn)導(dǎo)納矩陣為奇異矩陣,但他的虛數(shù)部分的子矩陣B和B,則是非記異矩陣,可以求逆矩陣,其逆矩陣: = (4)、計算各節(jié)點(diǎn)有功功率不平衡量。取

13、,按下式計算各節(jié)點(diǎn)有功率不平衡:相似的可得:;(5)、計算各節(jié)點(diǎn)電壓的相位角 :由下列矩陣方程式: = 從而可得:(6)、計算各節(jié)點(diǎn)無功功率不平衡 。按下列計算各節(jié)點(diǎn)無功功率不平衡:相似可得:(7)、計算各節(jié)點(diǎn)電壓的大小 。由下列矩陣方程式:4、利用MATLABLE語言或其他語言編程調(diào)試PQ分解法潮流程序 /文件輸入格式:節(jié)點(diǎn)總數(shù)n(包括聯(lián)絡(luò)節(jié)點(diǎn)),支路數(shù)zls/節(jié)點(diǎn)數(shù)(發(fā)電機(jī)和負(fù)荷)nb,接地電抗數(shù)mdk,迭代精度eps/考慮負(fù)荷靜特性標(biāo)志kk2(0考慮),平衡節(jié)點(diǎn)號,優(yōu)化標(biāo)志(0不優(yōu)化) /最大迭代次數(shù)it1,支路左右節(jié)點(diǎn)號izl,jzl,支路電阻zr,電抗zx/支路容納zyk,節(jié)點(diǎn)號no

14、b及標(biāo)志nobt(0-PQ,-1-PV)/發(fā)電機(jī)和負(fù)荷有功、無功pg,qg,pl,ql/電壓v0(pv節(jié)點(diǎn)輸入實際值,PQ節(jié)點(diǎn)任輸入一值)/電抗節(jié)點(diǎn)號idk,電抗值dkk/#include "math.h"#include "stdio.h"#define NS2000/最大節(jié)點(diǎn)數(shù)#define NS2NS * 2#define NS41000/NS4、NS必須大于2*zls。#define ZS3000/最大支路數(shù)#define ZS2ZS * 2#define DKS200/最大電抗器數(shù)#define N2ZS * 4#define N3ZS * 8

15、 + NS * 4 FILE *fp1, *fp2;char inname12, outname12;/fp1輸入數(shù)據(jù)文件指針fp2輸出文件指針/inname輸入數(shù)據(jù)文件名outname輸出數(shù)據(jù)文件名int n, zls, nb, mdk, mpj, bnsopton, it1, dsd, kk2, nzls;/節(jié)點(diǎn)總數(shù)n(包括聯(lián)絡(luò)節(jié)點(diǎn)) 支路數(shù)(回路數(shù))zls 節(jié)點(diǎn)數(shù)nb(發(fā)電機(jī)和負(fù)荷) /接地電抗數(shù)mdk精度eps 平衡節(jié)點(diǎn)號mpj /節(jié)點(diǎn)優(yōu)化(標(biāo)志)bnsopton(=0節(jié)點(diǎn)不優(yōu)化,!=0節(jié)點(diǎn)優(yōu)化) /最大迭代次數(shù)it1 最低電壓或最大功率誤差節(jié)點(diǎn)號dsd/負(fù)荷靜特性標(biāo)志(=0考慮負(fù)荷靜

16、特性)/支路數(shù)(雙回線算一條支路)int izlZS, jzlZS, idkDKS, ydsNS, ydzNS, iyZS2;/izl,jzl,idk:分別存放左、右節(jié)點(diǎn)號和電抗器節(jié)點(diǎn)號。/yds存放各行非零非對角元素的個數(shù)。/ydzi是第 i 行第一個非零非對角元素的首地址,/即在所有非零非對角元素中的次序號/ iy存放列足碼。int nnewNS4, oldNS, nobNS, nobtNS;/nnew,old存放的是新、舊節(jié)點(diǎn)號。/nnewi中為i對應(yīng)的新號/nob存放的是節(jié)點(diǎn)號。nobt存放的是節(jié)點(diǎn)類型, 0: pq節(jié)點(diǎn), -1: pv節(jié)點(diǎn)。double eps, dsm, vmin,

17、 dph, dqh, af3;/eps迭代收斂精度,dsm最大功率誤差/vmin:系統(tǒng)最低電壓值。dph,dqh:系統(tǒng)有、無功損耗。/af0和af1分別是負(fù)荷有功功率、無功功率靜態(tài)特性系數(shù)。double v00;/ v00: 系統(tǒng)平均電壓ci,cj分別作為節(jié)點(diǎn)i,j的電壓相角的臨時存儲單元。double zrZS, zxZS, zykZS, dkkDKS, giiNS, biiNS, ygZS2, ybZS2;double pgNS, qgNS, plNS, qlNS, v0NS, vNS, vaNS;/支路電阻zr支路電抗zx輸電線路充電容納zyk(y0/2)/接地電抗dkk對角元實部gii

18、對角元虛部/非對角元實部yg非對角元虛部yb/pg,qg,pl,ql:發(fā)電機(jī),負(fù)荷功率實、虛部/ v是電壓幅值,va是電壓相角。double wNS2, kg3, bNS2;int newsortNS4;/newsorti存放i對應(yīng)的老號void initial();void pqflow();void out();void dataio();void bnsopt();void zlsort(int* nnew);void printo();void printy();void y2();void ya0();void yzb();void jdgl(int kq0);void bbhl(i

19、nt kq0);void calc();int iabs(int a);void branch_output();void newval(double* aa);void printc();void iswap();void swap();void printf2(double* aa, double* bb, int n);void calc(int* iu, double* u, double* di, int* nfd, double* b);void printi(int* aa, int n);void printf1(double* aa, int n);int find(int

20、k, int a, int* z);void yzb(int t, int* iu, double* u, double* di, int* nfd);int isgn(int a, int b);void yy1();void y3();void newtoold();int main(void)initial();/初始化pqflow();/pq潮流計算out();/輸出節(jié)點(diǎn)和支路數(shù)據(jù)return 1;int isgn(int a, int b)/*本函數(shù)功能返回值為a的絕對值b的符號*/參數(shù)1提供值,參數(shù)2提供符號/if (b < 0)if (a > 0)a = -a;ret

21、urn a;int find(int k, int a, int* z)/*本函數(shù)查找a中是否有fabs(k)有則返回0,無則返回1*/參數(shù)1為待查找量,參數(shù)2待搜索數(shù)組,參數(shù)3返回k在a中的次序號/int i;for (i = 1; i <= n; i +)if(iabs(k) = ai)*z = i;return 1;return 0;void oldtonew()/*本函數(shù)將輸入數(shù)據(jù)中的節(jié)點(diǎn)號變成從1開始的連續(xù)節(jié)點(diǎn)號*/int i, j, k, ii1, ii2, zls2, k1, k2, k3, k4, ip;zls2 = zls + zls;for (i = 1; i <

22、;= zls2; i +)newsorti = 0;ii1 = 0;for (i = 1; i <= zls; i +)k = izli;if (!find(k, newsort, &ii2)ii1 +;newsortii1 = iabs(k);k = jzli;if (!find(k, newsort, &ii2)ii1 +;newsortii1 = iabs(k);for (i = 1; i <= ii1-1; i +)for (j = i+1; j <= ii1; j +)if (newsorti > newsortj)k = newsorti;n

23、ewsorti = newsortj;newsortj = k;for (i = 1; i <= zls; i +)k = izli;if (find(k, newsort, &ii2)izli = isgn(ii2, k);else printf("error!");k = jzli;if (find(k, newsort, &ii2)jzli = isgn(ii2, k);elseprintf("error!");printf("izl%d = %d, jzl%d = %dn", i, izli, i, jz

24、li);for (i = 1; i <= nb; i +)for (j = 1; j <= n; j +)if (nobi = newsortj)nobi = j;break;printf("nob%d = %dn", i, nobi);for (j = 1; j <= n; j +)if (mpj = newsortj)mpj = j;break;/電抗器節(jié)點(diǎn)號轉(zhuǎn)變for (j = 1; j <= mdk; j +)for (i = 1; i <= n; i +)if (idkj = newsorti)idkj = i;break;void

25、initial() /*本函數(shù)進(jìn)行初始化工作*/int i, k1;dataio();/輸入原始數(shù)據(jù)oldtonew();/轉(zhuǎn)化為新號if (bnsopton = 0) /節(jié)點(diǎn)不優(yōu)化,新節(jié)點(diǎn)號即為老節(jié)點(diǎn)號。for (i = 1; i <= n; i +) oldi = i; nnewi = i; else bnsopt(); /節(jié)點(diǎn)優(yōu)化mpj = nnewmpj;/mpj:平衡節(jié)點(diǎn)zlsort(nnew);/ sort the r,x and bfor (i = 1; i <= mdk; i +) k1 = idki; idki = nnewk1;for (i = 1; i <

26、;= n; i +) vi = v00; vai = 0.0; / 所有節(jié)點(diǎn)的電壓幅值初值都為1.000(v00),電壓相角初值都為0 。 / exchange the node before and after sortfor (i = 1; i <= n; i +) ydsi = 0; / the immediatefor (i = 1; i <= nb; i +) k1 = nnewnobi; ydsk1 = nobti; for (i = 1; i <= n; i +) nobti = ydsi;newval(pg);newval(qg);newval(pl);new

27、val(ql);newval(v0);for (i = 1; i <= n; i +) / nobt is type of nodeif (nobti = -1) vi = v0i; / nob is serials numbe/nobt = -1: pv節(jié)點(diǎn),v0存放的是最后一個節(jié)點(diǎn)數(shù)據(jù),/對于pv節(jié)點(diǎn),即為該點(diǎn)應(yīng)維持的電壓值。/nobt = 0: pq節(jié)點(diǎn),v0存放的是最后一個節(jié)點(diǎn)數(shù)據(jù),/對于pq節(jié)點(diǎn),即為系統(tǒng)平均電壓值。printo();/輸出af、v00和節(jié)點(diǎn)排序后的支路、節(jié)點(diǎn)和/接地電抗數(shù)據(jù)(僅僅查看中間結(jié)果)ya0();/獲得yds、ydz、列足碼iy。( P407 )voi

28、d printo()/*輸出af、v00和節(jié)點(diǎn)排序后的支路、節(jié)點(diǎn)和接地電抗數(shù)據(jù)*/int i;fprintf(fp2, "n *AF AND V0 *n");fprintf(fp2, "n %7.3f%7.3f%7.3fn", af0, af1, v00);printc('-', 78);fprintf(fp2, "nn *ZLB*n");for (i = 1; i <= zls; i +) fprintf(fp2, "n");fprintf(fp2, "%8d%8d%8d%8d&q

29、uot;, izli, jzli, oldabs(izli), oldabs(jzli);fprintf(fp2, "%9.4f%9.4f%9.4f", zri, zxi, zyki); printc('-', 78);fprintf(fp2, "nn*BUS*n");for (i = 1; i <= nb; i +) fprintf(fp2, "n");fprintf(fp2, "%8d%8d%8d", nobi,oldnobi, nobti);fprintf(fp2, "%9.4

30、f%9.4f%9.4f%9.4f%9.4f", pgi, qgi, pli, qli, v0i); printc('-', 78);fprintf(fp2,"nn*DKK*n");for (i = 1; i <= mdk; i +) fprintf(fp2, "n");fprintf(fp2, "%8d%8d%7.4f", idki, oldidki, dkki); void dataio() /*系統(tǒng)數(shù)據(jù)初始化*/int i;af0 = 0.6; af1 = 2.0;/af0和af1分別是負(fù)荷有功功率

31、、無功功率靜態(tài)特性系數(shù)。 v00 = 1.000;/系統(tǒng)平均電壓 printf("nplease input the name of data filen");scanf("%s", inname);fp1 = fopen(inname, "r");printf("nplease output the name of data filen");scanf("%s", outname);fp2 = fopen(outname, "w");fscanf(fp1, "%d

32、 %d %d %d", &n, &zls, &nb, &mdk); / the number of node ,branches, nodefscanf(fp1, "%lf %d %d %d %d", &eps, &kk2, &mpj, &bnsopton, &it1); /precision, swing node,sort the node,iteration numbersfor (i = 1; i <= zls; i +) fscanf(fp1, "%d %d"

33、;, &izli, &jzli);fscanf(fp1, "%lf %lf %lf ", &zri, &zxi, &zyki); for (i = 1; i <= nb; i +) fscanf(fp1, "%d %d", &nobi, &nobti);fscanf(fp1, "%lf %lf %lf %lf %lf", &pgi, &qgi, &pli, &qli, &v0i);for (i = 1; i <= mdk; i

34、+) fscanf(fp1, "%d %lf", &idki, &dkki); fclose(fp1);void pqflow() int kq0, iu1N2, nfd1NS, iu2N2, nfd2NS;int i, t; double u1N2, u2N2, di1NS, di2NS;yy1(); yzb(0, iu1, u1, di1, nfd1); /form the B matrix of P-0 iterationy2();yzb(1, iu2, u2, di2, nfd2); /form the B matrix of Q-V iterati

35、ont = 0; kq0 = 0;kg0 = kg1 = 1;dojdgl(kq0); / calculating the powerbbhl(kq0); / find out the maxiif (kq0 = 0)printf("P: %dt%dt%fn", t, dsd, dsm);elseprintf("Q: %dt%dt%fn", t, dsd, dsm);if (fabs(dsm) > eps) kgkq0=1;if (kq0 = 0) calc(iu1, u1, di1, nfd1, b);if (kq0 = 1) calc(iu2,

36、 u2, di2, nfd2, b);for (i = 1; i <= n; i +) if(kq0 = 0 ) vai = vai - bi / v00;else vi = vi - bi;elsekgkq0 = 0;if(kq0 = 0) kq0 = 1;else kq0 = 0; t +;if(t > it1) break;while(fabs(dsm) > eps) | (kgkq0 != 0);fprintf(fp2, "n%s%d", "times = ", t);void out() /*本函數(shù)輸出節(jié)點(diǎn)和支路數(shù)據(jù)*/zls

37、ort(old); / recover the data if sorted/newtoold();node_output(); / node databranch_output(); /branch dataprintc('-', 78);printc('*', 78);fprintf(fp2, "n");void newval(double* aa) /*本函數(shù)將舊號換成新號*/int i, k1;for (i = 1; i <= n; i +) bi = 0.0;for (i = 1; i <= nb; i +) k1 =

38、nnewnobi; bk1 = aai; for (i = 1; i <= n; i +) aai = bi;void yzb(int t, int* iu, double* u, double* di, int* nfd)/*本函數(shù)求因子表*/參數(shù)1為標(biāo)志(t=0 求B',t=1求B'')/參數(shù)2因子表上三角矩陣非零非對角元素的列足碼/參數(shù)3因子表上三角矩陣非零非對角元素的數(shù)值/參數(shù)4因子表上三角矩陣對角元素/參數(shù)5因子表上三角各行非零元素個數(shù)int i, j, k, i1, i2; int jj, jj1, jj2, im, x, fdNS;double ai

39、, bNS;nfd1 = 1;for (i = 1; i <= n; i +) /nobt 存放的是節(jié)點(diǎn)類型, 0: pq節(jié)點(diǎn), -1: pv節(jié)點(diǎn)。 if (t != 1) | (nobti != -1) && i != mpj) / <-| / |for (j = i + 1; j <= n; j +) / |bj = 0.0; / | bi = biii; / | if (kk2 = 0) && (t = 1) && (nobti != -1)/ 存在(t = 1)的情況,不多余。 bi = bi + af1 * qli /

40、 v0i / v0i;/af1i1 = ydzi;i2 = ydzi + 1 - 1;for (j = i1; j <= i2; j +) k = iyj; bk = ybj;bmpj = 0.0;if (t = 1)for (j = 1; j <= n; j +)if (nobtj = -1) bj = 0.0;i1 = i - 1;for (im = 1; im <= i1; im +) jj1 = nfdim;jj2 = nfdim + 1 - 1;for (jj = jj1; jj <= jj2; jj +)if(iujj = i) ai = ujj / dii

41、m;for(k = jj; k <= jj2; k +)j = iuk;bj = bj - ai * uk;break;x = nfdi;dii = 1.0 / bi;ai = dii;k = 0;i1 = i + 1;for (j = i1; j <= n; j +)if (fabs(bj) > 1.0e-15)ux = bj * ai;iux = j;k+;x+; fdi = k; else fdi = 0; dii = 0.0;nfdi+1 = nfdi + fdi;fprintf(fp2, "n*U*");for (i = 1; i <= x

42、; i +) if(i % 3 = 1) fprintf(fp2, "n");fprintf(fp2, "%10.5f%8i", ui, iui);fprintf(fp2, "n*DI*");printf1(di, n);void printf1(double* aa, int n)/*本函數(shù)輸出aai,i=1-n*/int i;for (i = 1; i <= n; i +) if(i % 5 = 1) fprintf(fp2, "n");fprintf(fp2, "%9.5f", aa

43、i); fprintf(fp2, "nn");void calc(int* iu, double* u, double* di, int* nfd, double* b) /*本函數(shù)利用因子表解線形方程組。(P417圖F1-9)*/double bi;int i, j, k, i1, i2;for (i = 1; i <= n; i +) /前代過程。 bi = bi;i1 = nfdi;i2 = nfdi + 1;for (j = i1; j < i2; j +) k = iuj; bk = bk - bi * uj; bi = bi * dii;for (i

44、 = n; i >= 1; i -) / 回代過程。 bi = bi;i1 = nfdi;i2 = nfdi + 1 - 1;for (j = i2; j >= i1; j -) k = iuj; bi = bi - bk * uj;bi = bi; void zlsort(int* nnew)/。/*本函數(shù)進(jìn)行支路數(shù)據(jù)排序*/小節(jié)點(diǎn)號放左邊,大節(jié)點(diǎn)號放右邊/左右皆按從小到大順序排列/int ip, k1, k2, k3, k4;int i, j;for (i = 1; i <= zls; i +) k3 = izli;k4 = jzli;k1 = iabs(k3);k2 =

45、 iabs(k4); / 原節(jié)點(diǎn)號。izli = isgn(nnewk1, k3); / 新節(jié)點(diǎn)號。jzli = isgn(nnewk2, k4);k3 = izli;k4 = jzli;k1 = iabs(k3);k2 = iabs(k4);if (k1 > k2) izli = k4; jzli = k3; for (i = 1; i <= zls - 1; i +) ip = i;k1 = iabs(izli);k3 = iabs(jzli);for (j = i + 1; j <= zls; j +) k2 = iabs(izlj);k4 = iabs(jzlj);i

46、f(k2 < k1 | (k2 = k1 && k4 < k3) ip = j; k1 = k2; k3 = k4;if(i != ip) iswap(&izli, &izlip);iswap(&jzli, &jzlip);swap(&zri, &zrip);swap(&zxi, &zxip);swap(&zyki, &zykip); void bnsopt()/*節(jié)點(diǎn)優(yōu)化*/int ii1, ii2, zls2, nomax;int i, j, l, k1, k; int temp;z

47、ls2 = zls + zls;for (i = 1; i <= zls2; i +) oldi = nnewi = 0;/先清零。由此可知:NS4、NS必須大于2*zls。for (i = 1; i <= zls; i +) oldi = iabs(izli); oldi + zls = iabs(jzli);/變壓器節(jié)點(diǎn)號由正變負(fù),old前zls個為左節(jié)點(diǎn)號,后zls個為右節(jié)點(diǎn)號。for (i = 1; i <= zls2; i +)/冒泡法排序。 k1 = i + 1;for (j = k1; j <= zls2; j +)if (oldi > oldj) iswap(&oldi, &oldj);/交換整數(shù)oldi、oldj。小節(jié)點(diǎn)號排在支路左側(cè)。 nomax = oldzls2;/nomax 即是最大節(jié)點(diǎn)號。Iee30.dat - 30l = 1;for (i = 1; i <= n; i +) ii1 = oldl;oldi = ii1;for (j = l; j <= zls2; j +) ii2 = oldj;if (ii1 != ii2) l = j; break;nnewi +;for (i = 1; i <= n - 1; i +)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論