電力系統(tǒng)分析課設(shè) C語(yǔ)言_第1頁(yè)
電力系統(tǒng)分析課設(shè) C語(yǔ)言_第2頁(yè)
電力系統(tǒng)分析課設(shè) C語(yǔ)言_第3頁(yè)
電力系統(tǒng)分析課設(shè) C語(yǔ)言_第4頁(yè)
電力系統(tǒng)分析課設(shè) C語(yǔ)言_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目錄1課程設(shè)計(jì)說(shuō)明12編程語(yǔ)言的選擇及理由13程序設(shè)計(jì)23.1主體流程圖23.2詳細(xì)流程圖3創(chuàng)建系統(tǒng)(create)流程圖3加載系統(tǒng)函數(shù)(load)流程圖3計(jì)算子函數(shù)(calculate)流程圖4改變短路節(jié)點(diǎn)(change)流程圖43.3數(shù)據(jù)及變量說(shuō)明53.4程序代碼及注釋63.5測(cè)試算例64設(shè)計(jì)體會(huì)13參考文獻(xiàn)13附錄131 課程設(shè)計(jì)說(shuō)明本課程設(shè)計(jì)根據(jù)電力系統(tǒng)分析課程中所講的基于節(jié)點(diǎn)方程的三相短路計(jì)算的原理和方法。采用c語(yǔ)言編程 。實(shí)現(xiàn)了三相短路計(jì)算的計(jì)算機(jī)實(shí)現(xiàn)。本程序輸入含有網(wǎng)絡(luò)拓?fù)湫畔⒑碗娖髟膮?shù),輸出三相短路的短路電流和短路后網(wǎng)絡(luò)各節(jié)點(diǎn)的電壓參數(shù)和各支路的電流參數(shù)。并以文件的形式保

2、存,方便用戶的讀取,打印。實(shí)現(xiàn)了設(shè)計(jì)的要求。三相短路在電力系統(tǒng)中雖然發(fā)生的概率很小,但一旦發(fā)生產(chǎn)生的影響非常嚴(yán)重,電力系統(tǒng)中設(shè)備的動(dòng)穩(wěn)定和熱穩(wěn)定校驗(yàn)都要以三相短路電流為依據(jù),因此我選擇做是電力系統(tǒng)三相短路的計(jì)算程序,覺(jué)得更有意義。應(yīng)用計(jì)算機(jī)進(jìn)行電力系統(tǒng)計(jì)算,首先要建立電力系統(tǒng)相應(yīng)的數(shù)學(xué)模型,如建立電力系統(tǒng)等效網(wǎng)絡(luò)和節(jié)點(diǎn)方程;其次是運(yùn)用合理的計(jì)算方法計(jì)算結(jié)果,如三角分解法,LDU分解法等;第三則是選擇合適的計(jì)算機(jī)語(yǔ)言編制計(jì)算程序,實(shí)現(xiàn)程序的準(zhǔn)確性,提高精確度。本設(shè)計(jì)利用節(jié)點(diǎn)方程來(lái)實(shí)現(xiàn)電力系統(tǒng)三相短路計(jì)算。首先,根據(jù)給定的電力系統(tǒng)運(yùn)行方式制定系統(tǒng)的一相等值網(wǎng)絡(luò),計(jì)算出各元器件的參數(shù),其次根據(jù)網(wǎng)絡(luò)方

3、程利用變壓器和線路參數(shù)形成不含發(fā)電機(jī)和負(fù)荷的節(jié)點(diǎn)導(dǎo)納矩陣Y;然后,利用系統(tǒng)形成的節(jié)點(diǎn)導(dǎo)納矩陣求解系統(tǒng)阻抗矩陣Z;第三則是應(yīng)用節(jié)點(diǎn)阻抗矩陣計(jì)算短路電流。電力系統(tǒng)短路電流的實(shí)際工程計(jì)算中,許多實(shí)際問(wèn)題的解決并不需要十分精確的結(jié)果。因此采用近似計(jì)算法,在建立系統(tǒng)節(jié)點(diǎn)方程時(shí),采用網(wǎng)絡(luò)模型和參數(shù)做簡(jiǎn)化處理,等值電路的制定通常將發(fā)電機(jī)作為含源支路,表示為節(jié)點(diǎn)注入電流源和節(jié)點(diǎn)電抗的形式;系統(tǒng)中存在同步發(fā)電機(jī)時(shí),按發(fā)電機(jī)支路處理;同時(shí),忽略發(fā)電機(jī)、變壓器和輸電線路的電阻,不計(jì)線路的電容,略去變壓器的勵(lì)磁電流,負(fù)荷忽略不計(jì);在標(biāo)幺參數(shù)計(jì)算時(shí),選取各級(jí)平均額定電壓作為基準(zhǔn)電壓,忽略元件的額定電壓和平均電壓的差別,

4、認(rèn)為變壓器變比的標(biāo)幺值為1;此外,還假定所有的發(fā)電機(jī)的電勢(shì)具有相同的相位,所有的元件僅用電抗表示,避免復(fù)數(shù)運(yùn)算。三相對(duì)稱短路為金屬性短路。本課程設(shè)計(jì)的關(guān)鍵部分是利用系統(tǒng)節(jié)點(diǎn)導(dǎo)納矩陣形成節(jié)點(diǎn)阻抗矩陣,本程序采用LDU分解法,然后利用節(jié)點(diǎn)導(dǎo)納矩陣和阻抗矩陣的乘積為單位矩陣列寫(xiě)方程,節(jié)點(diǎn)導(dǎo)納矩陣經(jīng)LDU分解后,回代求解系統(tǒng)阻抗矩陣。利用節(jié)點(diǎn)阻抗矩陣進(jìn)行短路計(jì)算,首先利用故障前的節(jié)點(diǎn)注入電流和系統(tǒng)節(jié)點(diǎn)阻抗矩陣求取故障前系統(tǒng)的各節(jié)點(diǎn)電壓;然后,利用金屬短路時(shí)短路點(diǎn)殘壓為0,對(duì)地電阻為0,計(jì)算短路點(diǎn)電流;最后,利用故障前節(jié)點(diǎn)電壓、節(jié)點(diǎn)阻抗和短路點(diǎn)電流求得短路后各節(jié)點(diǎn)電壓和各支路電流。2 編程語(yǔ)言的選擇及理

5、由能夠?qū)崿F(xiàn)程序編寫(xiě)的語(yǔ)言有多種,本課程設(shè)計(jì)中采用C語(yǔ)言進(jìn)行電力系統(tǒng)對(duì)稱短路計(jì)算程序的編寫(xiě)。個(gè)人對(duì)c語(yǔ)言和metlab相對(duì)較熟悉。之所以選擇C語(yǔ)言編程,從主觀上說(shuō),是因?yàn)槲覍W(xué)過(guò)C語(yǔ)言課程,相對(duì)于其他的編程語(yǔ)言而言,C語(yǔ)言的應(yīng)用更為熟悉和了解。另外,從客觀上說(shuō),C語(yǔ)言是目前世界上最為流行、使用最為廣泛的高級(jí)程序設(shè)計(jì)語(yǔ)言。,C的效率MATLAB比高多了,MATLAB雖然語(yǔ)法簡(jiǎn)單,但執(zhí)行效率不高。MATLAB是用于特定的方面的,比如說(shuō)矩陣運(yùn)算方面、DSP就很有優(yōu)勢(shì),而C語(yǔ)言不同。很多軟件的底層都是C編寫(xiě)的。MATLAB提供的是一種基于解釋的語(yǔ)言,雖然也是一種高級(jí)語(yǔ)言,但是還是很簡(jiǎn)單的,它的目標(biāo)在于用戶

6、方便,開(kāi)發(fā)簡(jiǎn)單。而實(shí)際上這些方便也是有代價(jià)的,編譯器承受了這些代價(jià),程序執(zhí)行效率方面也有損失。另一方面MATLAB這么做也是基于其專用于科學(xué)計(jì)算的目的來(lái)考慮的,無(wú)法應(yīng)用于通用的程序設(shè)計(jì)。c語(yǔ)言這么做保持了其編譯的速度,便于大型程序設(shè)計(jì),執(zhí)行效率也很高,因此我選擇用c語(yǔ)言編寫(xiě)程序 。3 程序設(shè)計(jì)3.1 主體流程圖開(kāi)始?xì)g迎使用用戶選擇操作,按鍵123進(jìn)入創(chuàng)建系統(tǒng)子函數(shù)(create)進(jìn)入加載系統(tǒng)子函數(shù)(load)進(jìn)入退出子函數(shù)進(jìn)入計(jì)算子函數(shù)(calculate)改短路點(diǎn)子函數(shù)(change)是否改路點(diǎn)?結(jié)束是圖3-1 主體流程圖3.2 詳細(xì)流程圖3.2.1 創(chuàng)建系統(tǒng)(create)流程圖輸入文件名

7、輸入電抗支路參數(shù)結(jié)束輸入節(jié)點(diǎn)數(shù)、支路數(shù)、故障節(jié)點(diǎn)輸入發(fā)電機(jī)支路參數(shù)輸入電容支路參數(shù)圖3-2 create函數(shù)流程圖3.2.2 加載系統(tǒng)函數(shù)(load)流程圖輸入系統(tǒng)文件名輸出查看系統(tǒng)參數(shù)選擇進(jìn)入下一個(gè)子函數(shù)圖3-3 節(jié)點(diǎn)導(dǎo)納矩陣形成流程圖3.2.3 計(jì)算子函數(shù)(calculate)流程圖 文件讀入電路參數(shù)求取LDU分解的因子表矩陣下三角求取DUZj向量求解完畢?否是結(jié)束求取節(jié)點(diǎn)阻抗矩陣列向量根據(jù)支路參數(shù)建立節(jié)點(diǎn)導(dǎo)納矩陣求取短路點(diǎn)電流求取節(jié)點(diǎn)電壓求取支路電流建立文件存儲(chǔ)計(jì)算結(jié)果結(jié)束圖3-4 計(jì)算子函數(shù)流程圖3.2.4 改變短路節(jié)點(diǎn)(change)流程圖輸入短路點(diǎn)從新讀取文件中的參數(shù)選擇進(jìn)入下一個(gè)

8、子函數(shù)計(jì)算圖3-5 change函數(shù)流程圖3.3 數(shù)據(jù)及變量說(shuō)明本程序中將電路的支路分為三類(lèi):電抗支路、電流支路、發(fā)電機(jī)直流,數(shù)據(jù)輸入時(shí)分開(kāi)輸入格式如下:電抗支路:支路數(shù)、節(jié)點(diǎn)首端好、節(jié)點(diǎn)末端好,支路電抗值。發(fā)電機(jī)支路:發(fā)電機(jī)臺(tái)數(shù)、發(fā)電機(jī)接入點(diǎn),發(fā)電機(jī)電勢(shì)、發(fā)電機(jī)之路電抗。電容支路:支路數(shù)、電容節(jié)點(diǎn)號(hào),電容支路電抗值。程序中的變量定義如下: FILE *fp; /文件指針 float If; /短路電流 float V010; /節(jié)點(diǎn)電壓初值 float In10; /注入電流 float V10; /節(jié)點(diǎn)電壓 float I10; /支路電流int count210; /數(shù)組用于儲(chǔ)存支路號(hào)f

9、loat z1010; /儲(chǔ)存支路電抗值float yjs1010; /存放計(jì)算導(dǎo)納矩陣中的中間值float ye10; /儲(chǔ)存發(fā)電機(jī)支路導(dǎo)納float Y1010; /節(jié)點(diǎn)導(dǎo)納矩陣float Z1010; /阻抗矩陣float dk; /電抗值int e110;float yc10; /節(jié)點(diǎn)對(duì)地電抗float ycjs10;int e10; /發(fā)電機(jī)接入點(diǎn)float E10; float Ig10;float Emid10;float ze10; /儲(chǔ)存發(fā)電機(jī)支路導(dǎo)納int m,n,a,f,i=0,j=0,sd,md,butn,times,timesc;/*n是節(jié)點(diǎn)數(shù),a是支路數(shù),f是短路點(diǎn)

10、,i為行標(biāo),j為列標(biāo)*/1、文件讀入程序如下: printf("請(qǐng)輸入系統(tǒng)的節(jié)點(diǎn)數(shù),支路數(shù),故障節(jié)點(diǎn)n"); scanf("%d%d%d",&n,&a,&f); fp=fopen(name,"w+"); fprintf(fp,"系統(tǒng)參數(shù)如下所示:nn"); fprintf(fp,"1.系統(tǒng)的節(jié)點(diǎn)數(shù)為%dn2.系統(tǒng)的支路數(shù)為%dn3.系統(tǒng)的短路點(diǎn)為%dnn",n,a,f); fprintf(fp,"支路電抗參數(shù)如下n");2、計(jì)算主程序如下: (1)、

11、If=V0f-1/Zf-1f-1;(短路電流計(jì)算) for(i=0;i<n;i+) Vi=V0i-Zif-1*If; (2)、for(i=0;i<n;i+)(導(dǎo)納矩陣計(jì)算) for(j=0;j<n;j+) Yii=Yii-yjsij; Yii=Yii-yei-ycjsi; for(i=0;i<n;i+) for(j=i+1;j<n;j+) Yij=yjsij; Yji=yjsij; 3.4 程序代碼及注釋 具體源程序代碼及其注釋見(jiàn)附錄。3.5 測(cè)試算例【例6-3】在如圖3-5所示的電力系統(tǒng)中分別在節(jié)點(diǎn)1和節(jié)點(diǎn)5接入發(fā)電機(jī)支路,其標(biāo)幺值參數(shù)為:。在節(jié)點(diǎn)3發(fā)生三相短路

12、,計(jì)算短路電流及網(wǎng)絡(luò)中的電流分布。線路的電阻和電容略去不計(jì),變壓器的標(biāo)幺變比等于1。各元件參數(shù)的標(biāo)幺值如下:圖3-6 電力系統(tǒng)等值網(wǎng)絡(luò)圖圖3-7 三相短路時(shí)的等值網(wǎng)絡(luò)圖由以上網(wǎng)絡(luò)圖可得計(jì)算過(guò)程如下:(1)、形成輸入文件:系統(tǒng)參數(shù)如下所示:1.系統(tǒng)的節(jié)點(diǎn)數(shù)為52.系統(tǒng)的支路數(shù)為53.系統(tǒng)的短路點(diǎn)為3支路電抗參數(shù)如下z12=0.1050z23=0.0650z24=0.0800z43=0.0500z54=0.1840發(fā)電機(jī)接入點(diǎn)及其電抗如下:共2臺(tái)發(fā)電機(jī)進(jìn)入系統(tǒng)z1=0.1500z5=0.2200e1=1.0000e5=1.0000共0個(gè)節(jié)點(diǎn)有接地電容(2)、計(jì)算后得到的輸出文件:計(jì)算結(jié)果如下:1、

13、節(jié)點(diǎn)導(dǎo)納矩陣:-16.1905 9.5238 9.5238 -37.4084 15.3846 12.5000 15.3846 -35.3846 20.0000 12.5000 20.0000 -37.9348 5.4348 5.4348 -9.9802 2、節(jié)點(diǎn)阻抗矩陣: 0.1181 0.0958 0.0902 0.0858 0.0467 0.0958 0.1629 0.1533 0.1459 0.0794 0.0902 0.1533 0.1860 0.1611 0.0877 0.0858 0.1459 0.1611 0.1729 0.0941 0.0467 0.0794 0.0877 0.

14、0941 0.1515 3、短路節(jié)點(diǎn)是:34、短路電流:If=5.37675、各節(jié)點(diǎn)電壓:V1=0.5152V2=0.1758V3=0V4=0.1336V5=0.52826、發(fā)電機(jī)支路電流如下:Ig10=-3.2321Ig50=-2.14457、各支路電流:I12=-3.2321I23=-2.7046I24=-0.5275I43=-2.6720I54=-2.1445圖3-8 對(duì)稱短路計(jì)算結(jié)果圖3-8 改變短路點(diǎn)后計(jì)算結(jié)果【習(xí)題6-10】如圖3-9所示網(wǎng)絡(luò),略去負(fù)荷,試用節(jié)點(diǎn)阻抗矩陣法求節(jié)點(diǎn)5發(fā)生三相短路時(shí),短路點(diǎn)的短路電流及線路L-2、L-3的電流。已知各元件參數(shù)如下:發(fā)電機(jī)G-1: SN =

15、 120 MVA, x”d = 0.23; G-2: SN = 60 MVA, x”d = 0.14變壓器T-1: SN = 120 MVA, Vs = 10.5%; T-2: SN = 60 MVA, Vs = 10.5%線路參數(shù) x1 = 0.4/km, b1 = 2.8×10-6 S/km線路長(zhǎng)度 L-1: 120 km, L-2: 80 km, L-3: 70 km取SB = 120 MVA, VB = VavGGG-1G-2T-1T-2L-1L-2L-312345圖3-9 電力系統(tǒng)網(wǎng)絡(luò)圖圖3-10 三相短路時(shí)的等值網(wǎng)絡(luò)圖(1)、形成輸入文件:系統(tǒng)參數(shù)如下所示:1.系統(tǒng)的節(jié)點(diǎn)

16、數(shù)為:52.系統(tǒng)的支路數(shù)為:53.系統(tǒng)的短路點(diǎn)為:5支路電抗參數(shù)如下:z3 5=0.29036 z4 5=0.25406 z3 4=0.43554z1 3=0.1050z2 4=0.2100發(fā)電機(jī)接入點(diǎn)及其電抗如下:共2臺(tái)發(fā)電機(jī)進(jìn)入系統(tǒng):z1=0.2300z2=0.2800e1=1.0500e2=1.0500共3個(gè)節(jié)點(diǎn)有接地電容:Y3=-32.372299Y4=-34.077000Y5=-43.185200(2)、得到的輸出文件:計(jì)算結(jié)果如下:1、節(jié)點(diǎn)導(dǎo)納矩陣:-13.8716 9.5238 -8.3333 4.7619 9.5238 -15.2329 2.2960 3.4440 4.7619

17、 2.2960 -10.9646 3.9361 3.4440 3.9361 -7.3569 2、節(jié)點(diǎn)阻抗矩陣: 0.1819 0.0616 0.1600 0.1079 0.1326 0.0616 0.2078 0.0898 0.1536 0.1242 0.1600 0.0898 0.2330 0.1571 0.1932 0.1079 0.1536 0.1571 0.2689 0.2174 0.1326 0.1242 0.1932 0.2174 0.3427 3、短路節(jié)點(diǎn)是:54、短路電流:If=3.12635、各節(jié)點(diǎn)電壓:V1=0.6471V2=0.6723V3=0.4632V4=0.3890

18、V5=06、發(fā)電機(jī)支路電流如下:Ig10=-1.7516Ig20=-1.34917、各支路電流:I35=-1.5954I45=-1.5310I34=-0.1705I13=-1.7516I24=-1.3491圖3-11 對(duì)稱短路計(jì)算結(jié)果【習(xí)題6-11】電力系統(tǒng)等值電路如圖3-13所示,支路阻抗的標(biāo)幺值已注明圖中。(1)形成節(jié)點(diǎn)導(dǎo)納矩陣(或節(jié)點(diǎn)阻抗矩陣),并用以計(jì)算節(jié)點(diǎn)3的三相短路電流。(2)另選一種方法計(jì)算短路電流,并用以驗(yàn)證(1)的計(jì)算結(jié)果。圖3-12 電力系統(tǒng)等值電路圖圖3-13 經(jīng)Norton變換后的等值電路圖圖3-13 最終計(jì)算等值電路圖由以上網(wǎng)絡(luò)可得輸入文件如下:系統(tǒng)參數(shù)如下所示:1.

19、系統(tǒng)的節(jié)點(diǎn)數(shù)為:32.系統(tǒng)的支路數(shù)為:23.系統(tǒng)的短路點(diǎn)為:3支路電抗參數(shù)如下:z1 2=0.2000z2 3=0.1000發(fā)電機(jī)接入點(diǎn)及其電抗如下:共2臺(tái)發(fā)電機(jī)進(jìn)入系統(tǒng):z1=0.2000z3=0.130435e1=1.0500e3=0.913043共1個(gè)節(jié)點(diǎn)有接地電容:Y2=-2.000000(2)、得到的輸出文件:計(jì)算結(jié)果如下:1、節(jié)點(diǎn)導(dǎo)納矩陣:-10.0000 5.0000 5.0000 -14.5000 10.0000 10.0000 -17.6667 2、節(jié)點(diǎn)阻抗矩陣: 0.1394 0.0789 0.0446 0.0789 0.1577 0.0893 0.0446 0.0893

20、0.1071 3、短路節(jié)點(diǎn)是:34、短路電流:If=9.18755、各節(jié)點(diǎn)電壓:V1=0.6344V2=0.2188V3=06、發(fā)電機(jī)支路電流如下:Ig10=-2.0781Ig30=-7.00007、各支路電流:I12=-2.0781I23=-2.1875圖3-15 對(duì)稱短路計(jì)算結(jié)果通過(guò)計(jì)算結(jié)果與算例答案的對(duì)比,計(jì)算結(jié)果與算例 標(biāo)準(zhǔn)答案一樣,說(shuō)明了程序計(jì)算方法和思路的準(zhǔn)確性。說(shuō)明本次課程設(shè)計(jì)基本達(dá)到了設(shè)計(jì)的要求。4 設(shè)計(jì)體會(huì)通過(guò)本次課程設(shè)計(jì)讓自己學(xué)到了很多東西,包括電力系統(tǒng)分析、和c語(yǔ)言的很知識(shí)。通過(guò)做課程設(shè)計(jì)自己又仔細(xì)的將兩門(mén)課程相關(guān)章節(jié)看了一遍,特別是c語(yǔ)言,幾乎把整個(gè)課本都看了一遍,并自

21、學(xué)了很多相關(guān)的知識(shí),重新看書(shū)的時(shí)候才發(fā)現(xiàn),雖然以前學(xué)過(guò),但幾年不用已經(jīng)忘得差不多啦!當(dāng)然,重新看書(shū)也發(fā)現(xiàn)了許多新的知識(shí),學(xué)到不少的東西。本次做課程設(shè)計(jì)老師給我們留了充足的時(shí)間,讓我們耐心去學(xué)習(xí)知識(shí),而不像以前一樣趕任務(wù)。通過(guò)這次課程設(shè)計(jì),我更好的掌握了電力系統(tǒng)短路計(jì)算的方法。我想作為一個(gè)學(xué)電氣的人這是非常關(guān)鍵的。在剛接到題目時(shí),我感覺(jué)很迷茫,覺(jué)得很難,當(dāng)我仔細(xì)準(zhǔn)備的時(shí)候發(fā)現(xiàn)這也不是想象中的難,最終通過(guò)自己的努力和通過(guò)學(xué)的幫助完成了課程設(shè)計(jì)。這次設(shè)計(jì)給我最大的收獲并不僅僅是相關(guān)的專業(yè)知識(shí),這是我第一次做這種要幾門(mén)課結(jié)合的課程設(shè)計(jì),我覺(jué)得這使自己應(yīng)用知識(shí)的能力得到了鍛煉,本次課程設(shè)計(jì)用c語(yǔ)言編程序

22、實(shí)現(xiàn)了電力系統(tǒng)的三相短路計(jì)算。雖然程序能夠計(jì)算,但我也知道還有很多的問(wèn)題。還需要努力。第一次不自己學(xué)的知識(shí)結(jié)合在一起,覺(jué)得很有用,自己沒(méi)白學(xué)。在答辯的過(guò)程老師對(duì)程序提出了修改意見(jiàn),是自己的程序更加實(shí)用,在這里感謝老師的指導(dǎo),讓我受益匪淺。同時(shí)在做的過(guò)程中我也和很多的同學(xué)交流、討論,大家交流自己的想法,覺(jué)得是很開(kāi)心的一件事。參考文獻(xiàn)1 何仰贊,溫增銀電力系統(tǒng)分析(上冊(cè))(第三版)武漢:華中科技大學(xué)出版社,20022 何仰贊,溫增銀電力系統(tǒng)分析題解(上、下)(第三版)武漢:華中科技大學(xué)出版社,20023 鄭平安,曾大亮編程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言)第二版北京:清華大學(xué)出版社,2006附錄主程序及注釋(這

23、里只給出主要計(jì)算程序):#include <stdio.h>#include <conio.h>#include <windows.h>聲明外部函數(shù) extern void create(); extern void load(); extern void quit();extern void change(char name20); extern void calculate(char name20) FILE *fp; /文件指針 float If; /短路電流 float V010; /節(jié)點(diǎn)電壓初值 float In10; /注入電流 float V1

24、0; /節(jié)點(diǎn)電壓 float I10; /支路電流int count210; /數(shù)組用于儲(chǔ)存支路號(hào)float z1010; /儲(chǔ)存支路電抗值float yjs1010; /存放計(jì)算導(dǎo)納矩陣中的中間值float ye10; /儲(chǔ)存發(fā)電機(jī)支路導(dǎo)納float Y1010; /節(jié)點(diǎn)導(dǎo)納矩陣float Z1010; /阻抗矩陣float dk; /電抗值int e110;float yc10; /節(jié)點(diǎn)對(duì)地電抗float ycjs10;int e10; /發(fā)電機(jī)接入點(diǎn)float E10; float Ig10;float Emid10;float ze10; /儲(chǔ)存發(fā)電機(jī)支路導(dǎo)納int m,n,a,f,g

25、,i=0,j=0,sd,md,butn,times,timesc;/*n是節(jié)點(diǎn)數(shù),a是支路數(shù),f是短路點(diǎn),i為行標(biāo),j為列標(biāo)for(i=0;i<10;i+)yci=0; ycjsi=0; Ei=0; Emidi=0;for(i=0;i<10;i+) /初始賦 V0i=0; for(j=0;j<10;j+) zij=0; Yij=0; /*讀取系統(tǒng)參數(shù)*/ fp=fopen(name,"r"); fscanf(fp,"系統(tǒng)參數(shù)如下所示:nn"); fscanf(fp,"1.系統(tǒng)的節(jié)點(diǎn)數(shù)為%dn2.系統(tǒng)的支路數(shù)為%dn3.系統(tǒng)的短

26、路點(diǎn)為%dnn",&n,&a,&f); /*讀電抗*/ fscanf(fp,"支路電抗參數(shù)如下n"); for(m=0;m<a;m+) fscanf(fp,"z%d %d=%ft",&sd,&md,&dk); i=sd-1; j=md-1; count0m=sd; count1m=md; zij=dk; zji=dk; printf("系統(tǒng)支路電抗如下:n"); for(m=0;m<a;m+) i=count0m-1; j=count1m-1; printf(&qu

27、ot;z%d%d = %.4fn",count0m,count1m,zij); fscanf(fp,"nn發(fā)電機(jī)接入點(diǎn)及其電抗如下:"); fscanf(fp,"共%d臺(tái)發(fā)電機(jī)進(jìn)入系統(tǒng)n",&times); for(m=0;m<times;m+) fscanf(fp,"z%d=%ft",&em,&zem); fscanf(fp,"n"); for(m=0;m<times;m+) fscanf(fp,"e%d=%ft",&em,&Em)

28、; printf("輸入的發(fā)電機(jī)支路電抗為n"); for(m=0;m<times;m+) printf("z%d=%ft",em,zem); for(m=0;m<times;m+) for(m=0;m<times;m+) printf("e%d=%ft",em,Em); for(m=0;m<times;m+) printf("%d",em); /*讀取節(jié)點(diǎn)對(duì)地電容*/ fscanf(fp,"n共%d個(gè)節(jié)點(diǎn)有接地電容n",&timesc); if(timesc&g

29、t;0) for(m=0;m<timesc;m+) fscanf(fp,"Y%d=%ft",&e1m,&ycm); printf("n系統(tǒng)有%d個(gè)節(jié)點(diǎn)電容n",timesc); for(m=0;m<timesc;m+) printf("z%d0=%f ",e1m,ycm); fclose(fp);/*計(jì)算節(jié)點(diǎn)阻抗矩陣*/ for(m=0;m<10;m+) yem=0; for(m=0;m<times;m+) for(j=0;j<n;j+) if(j=(em-1) yej=1/zem; Em

30、idj=Em; for(m=0;m<timesc;m+) for(j=0;j<n;j+) if(j=(e1m-1) ycjsj=1/ycm; /*系統(tǒng)支路導(dǎo)納*/ for(i=0;i<n;i+) for(j=0;j<n;j+) if(zij=0) yjsij=0; else yjsij=1/zij; /*導(dǎo)納矩陣*/ for(i=0;i<n;i+) for(j=0;j<n;j+) Yii=Yii-yjsij; Yii=Yii-yei-ycjsi; for(i=0;i<n;i+) for(j=i+1;j<n;j+) Yij=yjsij; Yji=y

31、jsij; printf("nn節(jié)點(diǎn)導(dǎo)納矩陣為"); for(i=0;i<n;i+) printf("n"); for(j=0;j<n;j+) if(Yij=0) printf(" "); else printf("%8.4f ",Yij); float l1010; float d1010; float u1010; int kk; float sum; for(i=0;i<10;i+) for(j=0;j<10;j+) lij=0; dij=0; uij=0; for(i=0;i<

32、10;i+) lii=1; uii=1; /*迭代法求解*/ for(i=0;i<n;i+) sum=0; if(i<1) dii=Yii; else for(kk=0;kk<i;kk+) sum=sum+ukki*ukki*dkkkk; dii=Yii-sum; for(j=i+1;j<n;j+) sum=0; if(i<1) uij=Yij/dii; else for(kk=0;kk<i;kk+) sum=sum+ukki*ukkj*dkkkk; uij=(Yij-sum)/dii; /*LDU屏幕顯示*/ printf("nD矩陣如下所示&q

33、uot;); for(i=0;i<n;i+) printf("n"); for(j=0;j<n;j+) if(dij=0) printf(" "); else printf("%8.4f ",dij); printf("nU矩陣如下所示"); for(i=0;i<n;i+) printf("n"); for(j=0;j<n;j+) if(uij=0) printf(" "); else printf("%8.4f",uij); pr

34、intf("n節(jié)點(diǎn)阻抗矩陣如下所示"); float fi10; float h10; for(j=0;j<10;j+) fij=0; hj=0; for(j=0;j<n;j+) for(i=0;i<n;i+) if(i-j)<0) fii=0; else if(i-j)=0) fii=1; else sum=0; for(kk=0;kk<i;kk+) sum=sum-ukki*fikk; fii=sum; for(i=0;i<n;i+) if(i<j) hi=0; else hi=fii/dii; for(i=n-1;i>=

35、0;i-) if(i=(n-1) Zij=hi; else sum=0; for(kk=i+1;kk<n;kk+) sum=sum-uikk*Zkkj; Zij=hi+sum ; for(i=0;i<n;i+) for(j=0;j<n;j+) Zij=-Zij; for(i=0;i<n;i+) printf("n"); for(j=0;j<n;j+) printf("%.4f ",Zij); getch(); system("cls");/*計(jì)算短路電壓電流網(wǎng)絡(luò)中電流分布*/ /*注入電流計(jì)算*/ pri

36、ntf("tttt短路計(jì)算結(jié)果如下nn"); for(i=0;i<n;i+) Ini=(Emidi)*(yei);/*注入節(jié)點(diǎn)電壓初值*/ for(i=0;i<n;i+) for(j=0;j<n;j+) V0i=V0i+Inj*Zji; /*節(jié)點(diǎn)電壓初值*/ If=V0f-1/Zf-1f-1; for(i=0;i<n;i+) Vi=V0i-Zif-1*If; printf("1、短路電流:nIf=%.4fn*n2、各節(jié)點(diǎn)電壓為n",If); for(i=0;i<n;i+) if(i<f-1)|(i>f-1) pr

37、intf("V%d=%.4fn",i+1,Vi); else printf("V%d=0.0000n",i+1,Vi); printf("*n"); printf("3、發(fā)電機(jī)支路電流如下:n"); for(m=0;m<times;m+) for(i=0;i<n;i+) if(i+1=em)Igem=-(Em-Vi)/zem;printf("Ig%d0=%.4fn",em,Igem); printf("*n4、各支路電流為n"); for(m=0;m<a;m

38、+) i=count0m-1; j=count1m-1; Ii=(Vj-Vi)/zij; printf("I%d%d=%.4fn",count1m,count0m,Ii); /*儲(chǔ)存文件*/ printf("是否保存文件,保存請(qǐng)按,不保存按");scanf("%d",&g);switch(g) case 1: char outputname20; printf("5、你輸入一個(gè)文件名用以保存數(shù)據(jù)n"); scanf("%s",outputname); fp=fopen(outputnam

39、e,"w+"); fprintf(fp,"計(jì)算結(jié)果如下:n1、節(jié)點(diǎn)導(dǎo)納矩陣:"); for(i=0;i<n;i+) fprintf(fp,"n"); for(j=0;j<n;j+) if(Yij=0) fprintf(fp," "); else fprintf(fp,"%8.4f ",Yij); fprintf(fp,"n2、節(jié)點(diǎn)阻抗矩陣:");for(i=0;i<n;i+) fprintf(fp,"n"); for(j=0;j<n

40、;j+) fprintf(fp,"%7.4f ",Zij); fprintf(fp,"n3、短路節(jié)點(diǎn)是:%d",f); fprintf(fp,"n4、短路電流:If=%.4f",If);fprintf(fp,"n5、各節(jié)點(diǎn)電壓:n"); for(i=0;i<n;i+) if(i<f-1)|(i>f-1) fprintf(fp,"V%d=%.4ft",i+1,Vi); else fprintf(fp,"V%d=0t",i+1,Vi); fprintf(fp,&

41、quot;n6、發(fā)電機(jī)支路電流如下:n"); for(m=0;m<times;m+) for(i=0;i<n;i+) if(i+1=em)Igem=-(Em-Vi)/zem;fprintf(fp,"Ig%d0=%.4fn",em,Igem); fprintf(fp,"n6、各支路電流:n"); for(m=0;m<a;m+) i=count0m-1; j=count1m-1; if(Vi>Vj) Ii=(Vj-Vi)/zij; fprintf(fp,"I%d%d=%.4ft",count0m,count1m,Ii); else Ii=(Vi-Vj)/zij; fprintf(fp,"I%d%d=%.4ft",count1m,count0m,Ii); fclose(fp);break; /*短路計(jì)算完成,選擇操作*/ printf("*n"); printf("

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論