電力系統短路故障的計算機算法程序設計及集成電路課程設計_第1頁
電力系統短路故障的計算機算法程序設計及集成電路課程設計_第2頁
電力系統短路故障的計算機算法程序設計及集成電路課程設計_第3頁
電力系統短路故障的計算機算法程序設計及集成電路課程設計_第4頁
電力系統短路故障的計算機算法程序設計及集成電路課程設計_第5頁
已閱讀5頁,還剩77頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

集成電路課程設計論文34-1-信息工程系學年度下學期電力系統分析課程設計電力系統短路故障的計算機算法程序設計姓名學號班級指導教師信息工程學院課程設計任務書學生姓名學號成績設計題目電力系統短路故障的計算機算法程序設計設計內容電力系統故障的計算程序設計及編制和調試。1.計算機計算原理2.電力系統短路計算計算機算法(1)對稱短路計算(2)簡單不對稱短路計算設計要求1.在對稱短路計算、簡單不對稱短路計算中任選一種計算作為計算作業。2.計算機語言自選。3.設計、編制、調試出相關的通用計算程序。4.輸入/輸出數據一律以文件格式形成。(1)對稱短路計算的輸入/輸出數據(2)簡單不對稱短路計算的輸入/輸出數據5.要求計算的題目(1)采用所編制的程序進行《電力系統分析》例6-3題,習題6-10、6-11對稱短路計算;時間安排周一:分析短路計算的原因、類型、后果。周二:電力系統短路電流計算。周三:畫出程序流程圖。周四:寫出程序。周五:實例計算。參考資料(1)《電力系統分析》(上冊)華中科技大學出版社何仰贊(2)《電力系統故障的計算機輔助分析》重慶大學出版社米麟書等(3)《電力系統故障分析》清華大學出版社周榮光(4)《短路電流實用計算方法》電力工業出版社西安交通大學等(5)《電網計算與程序設計》湖南科學技術出版社周作仁等(6)《電力系統計算》水利電力出版社周孝信等(7)《電力系統計算》水利電力出版社西安交通大學等電力系統短路故障的計算機算法程序設計目錄1前言…………………41.1短路的原因……………………41.2短路的類型……………………41.3短路計算的目的………………41.4短路的后果……………………52電力系統三相短路電流計算………62.1電力系統網絡的原始參數……………………62.2制定等值網絡及參數計算……………………62.2.1標幺制的概念……………62.2.2有三級電壓的的網絡中各元件參數標幺值的計算……72.2.3計算各元件的電抗標幺值………………72.2.4系統的等值網絡圖……………………103程序設計…………113.1主流程圖…………………113.2詳細流程圖………………123.2.1創建系統流程圖……………………123.2.2加載系統函數流程圖………………133.2.3計算子函數流程圖…………………143.2.4改變短路點流程圖…………………153.3數據及變量說明…………153.4程序代碼及注釋…………163.5測試例子…………………174結論………………235參考文獻…………241前言因為它們會破壞對用戶的供電和電氣設備的正常工作,而且還可能對人生命財產產生威脅。從在電力系統的設計和運行中,都必須考慮到可能發生的故障和不正常運行的情況,電力系統的實際運行情況看,這些故障絕大多數多數是由短路引起的,因此除了對電力系統的短路故障有一較深刻的認識外,還必須熟練掌握電力系統的短路計算。短路是電力系統的嚴重故障。所謂短路,是指一切不正常的相與相之間或相與地(對于中性點接地的系統)發生通路的情況。1.1短路的原因產生短路的原因很多,主要有如下幾個方面:(1)元件損壞,例如絕緣材料的自然老化、設計、安裝及維護不良所帶來的設備缺陷發展成短路等;(2)氣象條件惡劣,例如雷擊造成的網絡放電或避雷器動作,架空線路由于大風或導線覆冰引起電桿倒塌等;(3)違規操作,例如運行人員帶負荷拉閘,線路或設備檢修后未拆除接地線就加上電壓等;(4)其他,如挖溝損傷電纜,鳥獸跨接在裸露的載流部分等。1.2短路的類型在三相系統中,可能發生的短路有:三相短路、兩相短路、兩相短路接地和單相接地短路。三相短路也稱為對稱短路,系統各項與正常運行時一樣仍處于對稱狀態。其他類型的短路都是不對稱短路。電力系統的運行經驗表明,在各種類型的短路中,單相短路占大多數,兩相短路較少,三相短路的機會最少。三相短路雖然很少發生,但情況較嚴重,應給予足夠的重視。況且,從短路計算方法來看,一切不對稱短路的計算,在采用對稱分量法后,都歸結為對稱短路的計算。因此,對三相短路的的研究是具有重要意義的。1.3短路計算的目的在電力系統的設計和電氣設備的運行中,短路計算是解決一系列問題的不可缺少的基本計算,這些問題主要是:(1)選擇有足夠機械穩定度和熱穩定度的電氣設備,例如斷路器、互感器、瓷瓶、母線、電纜等,必須以短路計算作為依據。這里包括計算沖擊電流以校驗設備的電動力穩定度;計算若干時刻的短路電流周期分量以校驗設備的熱穩定度;計算指定時刻的短路電流有效值以校驗斷路器的斷流能力等。(2)為了合理地配置各種繼電保護和自動裝置并確定其參數,必須對電力網中發生的各種短路進行計算和分析。在這些計算中不但要知道故障支路中的電流值,還必須知道電流在網絡中的分布情況。有時還要知道系統中某些節點的電壓值。(3)在設計和選擇發電廠和電力系統主接線時,為了比較各種不同方案的接線圖,確定是否需要采取限制短路電流的措施等,都要進行必要的短路電流計算。(4)進行電力系統暫態穩定計算,研究短路對用戶工作的影響等,也含有一部分短路計算的內容此外,確定輸電線路對通訊的干擾,對已發生故障進行分析,都必須進行短路計算。在實際工作中,根據一定的任務進行短路計算時,必須首先確定計算條件。所謂計算條件,一般包括,短路發生時系統的運行方式,短路的類型好發生的地點,以及短路發生后所采取的措施等。從短路計算的角度來看,系統運行方式指的是系統中投入運行的發電、變電、輸電、用電的設備的多少以及它們之間相互聯接的情況,計算不對稱短路時,還包括中性點的運行狀態。對于不同的計算目的,所采用的計算條件是不同的。1.4短路的后果 隨著短路類型、發生地點和持續時間的不同,短路的后果可能指破壞局部地區的正常供電,也可能威脅整個系統的安全運行。短路的危險后果一般有以下的幾個方面:(1)短路故障使短路點附近的支路中出現比正常值大許多倍的電流,由于短路電流的電動力效應,導體間將產生很大的機械應力,可能使導體和它們的支架遭到破壞。(2)短路電流使設備發熱增加,短路持續時間較長時,設備可能過熱以致損壞。(3)短路時系統電壓大幅度下降,對用戶影響很大。系統中最主要的電力負荷是異步電動機,它的電磁轉矩同端電壓的平方成正比,電壓下降時,電動機的電磁轉矩顯著減小,轉速隨之下降。當電壓大幅度下降時,電動機甚至可能停轉,造成產品報廢,設備損壞等嚴重后果。(4)當短路發生地點離電源不遠而持續時間又較長時,并列運行的發電廠可能失去同步,破壞系統穩定,造成大片地區停電。這是短路故障最嚴重后果。(5)發生不對稱短路時,不平衡電流能產生足夠的磁通在鄰近的電路內感應出很大的電動勢,這對于架設在高壓電力線附近的通訊線路或鐵道訊號系統等會產生嚴重的影響。2電力系統三相短路電流計算2.1電力系統網絡的原始參數圖2.1電力系統接線圖電力系統接線如上圖所示。S1,S2為無窮大電源系統,電抗為零。發電機G1-G2為汽輪發電機,每臺400MVA,xd‘’=0.285,負序電抗x2=0.29;發電機G3為水輪發電機,280MVA,xd‘’=0.203,負序電抗x2=0.22;變壓器T1、T2,每臺410MVA,Vs%=14.6,x0≈x1;T3變壓器,260MVA,Vs%=14.1,x0≈x1;T4變壓器,360MVA,Vs%=8.3,x0≈x1;L1線路,180km,x1=0.405Ω/km,x0≈3x1;L2線路,220km,x1=0.33Ω/km,x0≈3x1;L3線路,95km,x1=0.405Ω/km,x0≈3x1;2.2制定等值網絡及參數計算2.2.1標幺制的概念在一般的電路計算中,電壓、電流、功率和阻抗的單位分別用V,A,W,Ω表示,這種用實際有名單位表示物理量的方法稱為有名單位制。在電力系統計算中,還廣泛的使用標幺制。標幺制是相對單位制的一種,在標幺制中各物理量都用標幺值表示。標幺值定義由下式給出:標幺值= (2-1)由此可見,標幺值是一個沒有量綱的數值,對于同一個實際的有名值,基準值選得不同,其標幺值也就不同。因此,當我們說明一個量的標幺值時,必須同時說明它的基準值,否則,標幺值的意義是不明確的。當選定電壓、電流、功率和阻抗的基準值分別為,,和時,相應的標幺值如下:2.2.2標幺值的選擇在電力系統分析中,主要涉及對稱三相電路計算。計算時習慣上多采用線電壓V,線電流I,三相功率S和一相等值阻抗Z,各物理量之間存在下列關系: (2)同單相電路一樣,應使各量基準值之間的關系與其有名值間的關系具有相同的方程式: (3)選擇在標幺制中便有: (4)由此可見,在標幺制中,三相電路的計算公式與單相電路的計算公式完全相同,線電壓和相電壓的標幺值相等,三相功率和單相功率的標幺值相等。在選擇基準值時,習慣上也只選VB和SB。由此得:這樣,電流和阻抗的標幺值則為:(5)采用標幺值進行計算,所得結果最后還要換算成有名值,其換算公式為: (6)2.2.2有三級電壓的的網絡中各元件參數標幺值的計算圖2.2有三段不同電壓等級的輸電系統電力系統中有許多不同電壓等級的線路段,它們由變壓器來耦聯。圖2.2(a)表示了由三個不同電壓等級的電路經兩臺變壓器耦聯所組成的輸電系統,略去各元件的電阻和變壓器的勵磁支路,可以算出各元件的實際有名值,變壓器的漏抗均按原方繞組電壓計算,這樣我們就得到各元件電抗用實際有名值表示的等值電路,如圖2.2(b)所示,圖中,,,,XL和XC分別是架空線路L和電纜線路C的實際電抗。百分值也是一種相對單位制,對于同一物理量,如果基準值相同,則百分值=100×標幺值,對于變壓器,其標幺電抗xT(N)*常用下式計算:由于三段電路的電壓等級不同,彼此間只是通過磁路耦合而沒有直接的電氣聯系,可以對各段電路分別選基準電壓。假定分別選VB(Ⅰ),VB(Ⅱ),VB(Ⅲ),至于功率,整個輸電系統用統一,所以各段的基準功率都為SB。選定基準電壓后,可對每一元件都按各段的基準電壓用公式(5)將其電抗的實際有名值換算成標幺值,即,,,,(7)用標幺參數表示的等值電路如圖(c)所示,其中變壓器kB(Ⅰ-Ⅱ)=VB(Ⅰ)/VB(Ⅱ)為第I段和第II段的基準電壓之比,稱為基準變比。通常選擇適當基準電壓,使變壓器電路得到簡化,比如選擇I,II段基準電壓之比kB(Ⅰ-Ⅱ),等于變壓器下的變比kT1,I,II段的基準電壓之比等于變壓器T2的變比kT2,則可得kT1*=1,kT2*=1,這樣在標幺參數的電路中就不需串聯理想變壓器了。在實際的計算中,總是把基準電壓選得等于(或接近于)該電壓級的額定電壓。這樣可以從計算結果清晰地看到實際電壓偏離額定值的成程度。為了解決上述的困難,在工程計算中規定,各個電壓等級都以其平均額定電壓Vav作為基準電壓,根據我國現行的電壓等級,各級平均額定電壓規定為:3.15,6.3,10.5,15.75,37,115,230,345,525(kV)在分段計算中以上述平均額定電壓作為各級基準電壓。2.2.3計算各元件的電抗標幺值在本次實驗中,選取SB=1000MVA,VB=Vav2.2.4系統的等值網絡圖圖2.3電力系統的等值網3程序設計主體流程圖開始歡迎使用開始歡迎使用用戶選擇操作,按鍵123進入創建系統子函數(create)進入加載系統子函數(load)進入退出子函數進入計算子函數(calculate)改短路點子函數(change)是否改路點?結束是圖3-1主體流程圖詳細流程圖創建系統(create)流程圖輸入文件名輸入電抗支路參數輸入文件名輸入電抗支路參數結束輸入節點數、支路數、故障節點輸入發電機支路參數輸入電容支路參數圖3-2create函數流程圖加載系統函數(load)流程圖輸入系統文件名輸出查看系統參數輸入系統文件名輸出查看系統參數選擇進入下一個子函數圖3-3節點導納矩陣形成流程圖計算子函數(calculate)流程圖文件讀入電路參數求取文件讀入電路參數求取LDU分解的因子表矩陣下三角求取DUZj向量求解完畢?否是結束求取節點阻抗矩陣列向量根據支路參數建立節點導納矩陣求取短路點電流求取節點電壓求取支路電流建立文件存儲計算結果結束圖3-4計算子函數流程圖改變短路節點(change)流程圖輸入短路點從新讀取文件中的參數輸入短路點從新讀取文件中的參數選擇進入下一個子函數計算圖3-5change函數流程圖數據及變量說明 本程序中將電路的支路分為三類:電抗支路、電流支路、發電機直流,數據輸入時分開輸入格式如下: 電抗支路:支路數、節點首端好、節點末端好,支路電抗值。 發電機支路:發電機臺數、發電機接入點,發電機電勢、發電機之路電抗。 電容支路:支路數、電容節點號,電容支路電抗值。 程序中的變量定義如下:FILE*fp;//文件指針floatIf;//短路電流floatV0[10];//節點電壓初值floatIn[10];//注入電流floatV[10];//節點電壓floatI[10];//支路電流 intcount[2][10];//數組用于儲存支路號 floatz[10][10];//儲存支路電抗值 floatyjs[10][10];//存放計算導納矩陣中的中間值 floatye[10];//儲存發電機支路導納 floatY[10][10];//節點導納矩陣 floatZ[10][10];//阻抗矩陣 floatdk;//電抗值 inte1[10]; floatyc[10];//節點對地電抗 floatycjs[10]; inte[10];//發電機接入點 floatE[10]; floatIg[10]; floatEmid[10]; floatze[10];//儲存發電機支路導納 intm,n,a,f,i=0,j=0,sd,md,butn,times,timesc;/*n是節點數,a是支路數,f是短路點,i為行標,j為列標*/1、文件讀入程序如下:printf("請輸入系統的節點數,支路數,故障節點\n");scanf("%d%d%d",&n,&a,&f);fp=fopen(name,"w+");fprintf(fp,"系統參數如下所示:\n\n");fprintf(fp,"1.系統的節點數為%d\n2.系統的支路數為%d\n3.系統的短路點為%d\n\n",n,a,f);fprintf(fp,"支路電抗參數如下\n");2、計算主程序如下:(1)、If=V0[f-1]/Z[f-1][f-1];(短路電流計算)for(i=0;i<n;i++)V[i]=V0[i]-Z[i][f-1]*If;(2)、for(i=0;i<n;i++)(導納矩陣計算){for(j=0;j<n;j++)Y[i][i]=Y[i][i]-yjs[i][j];Y[i][i]=Y[i][i]-ye[i]-ycjs[i];}for(i=0;i<n;i++)for(j=i+1;j<n;j++){Y[i][j]=yjs[i][j];Y[j][i]=yjs[i][j];}程序代碼及注釋具體源程序代碼及其注釋見附錄。測試算例【例6-3】在如圖3-5所示的電力系統中分別在節點1和節點5接入發電機支路,其標幺值參數為:。在節點3發生三相短路,計算短路電流及網絡中的電流分布。線路的電阻和電容略去不計,變壓器的標幺變比等于1。各元件參數的標幺值如下:圖3-6電力系統等值網絡圖圖3-7三相短路時的等值網絡圖由以上網絡圖可得計算過程如下:(1)、形成輸入文件:系統參數如下所示:1.系統的節點數為52.系統的支路數為53.系統的短路點為3支路電抗參數如下z12=0.1050 z23=0.0650 z24=0.0800 z43=0.0500 z54=0.1840 發電機接入點及其電抗如下:共2臺發電機進入系統z1=0.1500 z5=0.2200 e1=1.0000 e5=1.0000 共0個節點有接地電容(2)、計算后得到的輸出文件:計算結果如下:1、節點導納矩陣:-16.19059.52389.5238-37.408415.384612.500015.3846-35.384620.000012.500020.0000-37.93485.43485.4348-9.98022、節點阻抗矩陣:0.11810.09580.09020.08580.04670.09580.16290.15330.14590.07940.09020.15330.18600.16110.08770.08580.14590.16110.17290.09410.04670.07940.08770.09410.15153、短路節點是:34、短路電流:If=5.37675、各節點電壓:V1=0.5152 V2=0.1758 V3=0 V4=0.1336 V5=0.5282 6、發電機支路電流如下:Ig[1][0]=-3.2321Ig[5][0]=-2.14457、各支路電流:I12=-3.2321 I23=-2.7046 I24=-0.5275 I43=-2.6720 I54=-2.1445圖3-8對稱短路計算結果圖3-8改變短路點后計算結果【習題6-10】如圖3-9所示網絡,略去負荷,試用節點阻抗矩陣法求節點5發生三相短路時,短路點的短路電流及線路L-2、L-3的電流。已知各元件參數如下:發電機G-1:SN=120MVA,x”d=0.23;G-2:SN=60MVA,x”d=0.14變壓器T-1:SN=120MVA,Vs=10.5%;T-2:SN=60MVA,Vs=10.5%線路參數x1=0.4Ω/km,b1=2.8×10-6S/km線路長度L-1:120km,L-2:80km,L-3:70km取SB=120MVA,VB=VavGGGGG-1G-2T-1T-2L-1L-2L-312345圖3-9電力系統網絡圖圖3-10三相短路時的等值網絡圖(1)、形成輸入文件:系統參數如下所示:1.系統的節點數為:52.系統的支路數為:53.系統的短路點為:5支路電抗參數如下:z35=0.29036 z45=0.25406 z34=0.43554 z13=0.1050 z24=0.2100 發電機接入點及其電抗如下:共2臺發電機進入系統:z1=0.2300 z2=0.2800 e1=1.0500 e2=1.0500 共3個節點有接地電容:Y3=-32.372299 Y4=-34.077000 Y5=-43.185200 (2)、得到的輸出文件:計算結果如下:1、節點導納矩陣:-13.87169.5238-8.33334.76199.5238-15.23292.29603.44404.76192.2960-10.96463.93613.44403.9361-7.35692、節點阻抗矩陣:0.18190.06160.16000.10790.13260.06160.20780.08980.15360.12420.16000.08980.23300.15710.19320.10790.15360.15710.26890.21740.13260.12420.19320.21740.34273、短路節點是:54、短路電流:If=3.12635、各節點電壓:V1=0.6471 V2=0.6723 V3=0.4632 V4=0.3890 V5=0 6、發電機支路電流如下:Ig[1][0]=-1.7516Ig[2][0]=-1.34917、各支路電流:I35=-1.5954 I45=-1.5310 I34=-0.1705 I13=-1.7516 I24=-1.3491圖3-11對稱短路計算結果【習題6-11】電力系統等值電路如圖3-13所示,支路阻抗的標幺值已注明圖中。(1)形成節點導納矩陣(或節點阻抗矩陣),并用以計算節點3的三相短路電流。(2)另選一種方法計算短路電流,并用以驗證(1)的計算結果。圖3-12電力系統等值電路圖圖3-13經Norton變換后的等值電路圖圖3-13最終計算等值電路圖由以上網絡可得輸入文件如下:系統參數如下所示:1.系統的節點數為:32.系統的支路數為:23.系統的短路點為:3支路電抗參數如下:z12=0.2000 z23=0.1000 發電機接入點及其電抗如下:共2臺發電機進入系統:z1=0.2000 z3=0.130435 e1=1.0500 e3=0.913043 共1個節點有接地電容:Y2=-2.000000(2)、得到的輸出文件:計算結果如下:1、節點導納矩陣:-10.00005.00005.0000-14.500010.000010.0000-17.66672、節點阻抗矩陣:0.13940.07890.04460.07890.15770.08930.04460.08930.10713、短路節點是:34、短路電流:If=9.18755、各節點電壓:V1=0.6344 V2=0.2188 V3=0 6、發電機支路電流如下:Ig[1][0]=-2.0781Ig[3][0]=-7.00007、各支路電流:I12=-2.0781 I23=-2.1875圖3-15對稱短路計算結果4設計總結 通過計算結果與算例答案的對比,計算結果與算例標準答案一樣,說明了程序計算方法和思路的準確性。說明本次課程設計基本達到了設計的要求。通過本次課程設計讓自己學到了很多東西,包括電力系統分析、和c語言的很知識。通過做課程設計自己又仔細的將兩門課程相關章節看了一遍,特別是c語言,幾乎把整個課本都看了一遍,并自學了很多相關的知識,重新看書的時候才發現,雖然以前學過,但幾年不用已經忘得差不多啦!當然,重新看書也發現了許多新的知識,學到不少的東西。本次做課程設計老師給我們留了充足的時間,讓我們耐心去學習知識,而不像以前一樣趕任務。通過這次課程設計,我更好的掌握了電力系統短路計算的方法。我想作為一個學電氣的人這是非常關鍵的。在剛接到題目時,我感覺很迷茫,覺得很難,當我仔細準備的時候發現這也不是想象中的難,最終通過自己的努力和通過學的幫助完成了課程設計。 這次設計給我最大的收獲并不僅僅是相關的專業知識,這是我第一次做這種要幾門課結合的課程設計,我覺得這使自己應用知識的能力得到了鍛煉,本次課程設計用c語言編程序實現了電力系統的三相短路計算。雖然程序能夠計算,但我也知道還有很多的問題。還需要努力。第一次不自己學的知識結合在一起,覺得很有用,自己沒白學。在答辯的過程老師對程序提出了修改意見,是自己的程序更加實用,在這里感謝老師的指導。5參考文獻[1]何仰贊.電力系統分析[M].武昌:華中科技大學出版社,1995[2]曹繩敏.電力系統課程設計及畢業設計參考資料[M].北京:中國電力出版社1998.3[3]紀雯.電力系統設計手冊[M].北京:中國電力出版社,1998.6[4]戈東方.電力工程電氣設計手冊[M].北京:中國電力出版社,1998.12[5]何仰贊,溫增銀.電力系統分析(上冊)(第三版).武漢:華中科技大學出版社,2002.[6]何仰贊,溫增銀.電力系統分析題解(上、下)(第三版).武漢:華中科技大學出版社,2002.[7]鄭平安,曾大亮編.程序設計基礎(C語言)第二版.北京:清華大學出版社,2006.6附錄主程序及注釋(這里只給出主要計算程序):#include<stdio.h>#include<conio.h>#include<windows.h>聲明外部函數externvoidcreate();externvoidload();externvoidquit(); externvoidchange(charname[20]);externvoidcalculate(charname[20]){FILE*fp;//文件指針floatIf;//短路電流floatV0[10];//節點電壓初值floatIn[10];//注入電流floatV[10];//節點電壓floatI[10];//支路電流 intcount[2][10];//數組用于儲存支路號 floatz[10][10];//儲存支路電抗值 floatyjs[10][10];//存放計算導納矩陣中的中間值 floatye[10];//儲存發電機支路導納 floatY[10][10];//節點導納矩陣 floatZ[10][10];//阻抗矩陣 floatdk;//電抗值 inte1[10]; floatyc[10];//節點對地電抗 floatycjs[10]; inte[10];//發電機接入點 floatE[10]; floatIg[10]; floatEmid[10]; floatze[10];//儲存發電機支路導納 intm,n,a,f,g,i=0,j=0,sd,md,butn,times,timesc;/*n是節點數,a是支路數,f是短路點,i為行標,j為列標 for(i=0;i<10;i++) {yc[i]=0;ycjs[i]=0;E[i]=0;Emid[i]=0;} for(i=0;i<10;i++)//初始賦{V0[i]=0;for(j=0;j<10;j++){z[i][j]=0;Y[i][j]=0;}}/******************************讀取系統參數**************************/fp=fopen(name,"r");fscanf(fp,"系統參數如下所示:\n\n");fscanf(fp,"1.系統的節點數為%d\n2.系統的支路數為%d\n3.系統的短路點為%d\n\n",&n,&a,&f);/**************讀電抗*************/fscanf(fp,"支路電抗參數如下\n");for(m=0;m<a;m++){fscanf(fp,"z%d%d=%f\t",&sd,&md,&dk);i=sd-1;j=md-1;count[0][m]=sd;count[1][m]=md;z[i][j]=dk;z[j][i]=dk;}printf("系統支路電抗如下:\n");for(m=0;m<a;m++){i=count[0][m]-1;j=count[1][m]-1;printf("z%d%d=%.4f\n",count[0][m],count[1][m],z[i][j]);}fscanf(fp,"\n\n發電機接入點及其電抗如下:");fscanf(fp,"共%d臺發電機進入系統\n",×);for(m=0;m<times;m++)fscanf(fp,"z%d=%f\t",&e[m],&ze[m]);fscanf(fp,"\n");for(m=0;m<times;m++)fscanf(fp,"e%d=%f\t",&e[m],&E[m]);printf("輸入的發電機支路電抗為\n");for(m=0;m<times;m++)printf("z%d=%f\t",e[m],ze[m]);for(m=0;m<times;m++)for(m=0;m<times;m++)printf("e%d=%f\t",e[m],E[m]);for(m=0;m<times;m++) printf("%d",e[m]);/****************讀取節點對地電容**********************/fscanf(fp,"\n共%d個節點有接地電容\n",×c);if(timesc>0){for(m=0;m<timesc;m++)fscanf(fp,"Y%d=%f\t",&e1[m],&yc[m]);printf("\n系統有%d個節點電容\n",timesc);for(m=0;m<timesc;m++)printf("z%d0=%f",e1[m],yc[m]);}fclose(fp);/*******************************計算節點阻抗矩陣**************************/for(m=0;m<10;m++)ye[m]=0;for(m=0;m<times;m++)for(j=0;j<n;j++)if(j==(e[m]-1)){ye[j]=1/ze[m];Emid[j]=E[m];}for(m=0;m<timesc;m++)for(j=0;j<n;j++)if(j==(e1[m]-1))ycjs[j]=1/yc[m];/**************系統支路導納*************/for(i=0;i<n;i++)for(j=0;j<n;j++){if(z[i][j]==0)yjs[i][j]=0;elseyjs[i][j]=1/z[i][j];}/**************導納矩陣*************/for(i=0;i<n;i++){for(j=0;j<n;j++)Y[i][i]=Y[i][i]-yjs[i][j];Y[i][i]=Y[i][i]-ye[i]-ycjs[i];}for(i=0;i<n;i++)for(j=i+1;j<n;j++){Y[i][j]=yjs[i][j];Y[j][i]=yjs[i][j];}printf("\n\n節點導納矩陣為");for(i=0;i<n;i++){printf("\n");for(j=0;j<n;j++)if(Y[i][j]==0)printf("");elseprintf("%8.4f",Y[i][j]);}floatl[10][10];floatd[10][10];floatu[10][10];intkk;floatsum;for(i=0;i<10;i++)for(j=0;j<10;j++){l[i][j]=0;d[i][j]=0;u[i][j]=0;}for(i=0;i<10;i++){l[i][i]=1;u[i][i]=1;}/**************迭代法求解*************/for(i=0;i<n;i++){sum=0;if(i<1)d[i][i]=Y[i][i];else{for(kk=0;kk<i;kk++)sum=sum+u[kk][i]*u[kk][i]*d[kk][kk];d[i][i]=Y[i][i]-sum;}for(j=i+1;j<n;j++){sum=0;if(i<1)u[i][j]=Y[i][j]/d[i][i];else{for(kk=0;kk<i;kk++)sum=sum+u[kk][i]*u[kk][j]*d[kk][kk];u[i][j]=(Y[i][j]-sum)/d[i][i];}}}/************LDU屏幕顯示*************/printf("\nD矩陣如下所示");for(i=0;i<n;i++){printf("\n");for(j=0;j<n;j++)if(d[i][j]==0)printf("");elseprintf("%8.4f",d[i][j]);}printf("\nU矩陣如下所示");for(i=0;i<n;i++){printf("\n");for(j=0;j<n;j++)if(u[i][j]==0)printf("");elseprintf("%8.4f",u[i][j]);}printf("\n節點阻抗矩陣如下所示");floatfi[10];floath[10];for(j=0;j<10;j++){fi[j]=0;h[j]=0;}for(j=0;j<n;j++){for(i=0;i<n;i++)if((i-j)<0)fi[i]=0;elseif((i-j)==0)fi[i]=1;else{sum=0;for(kk=0;kk<i;kk++)sum=sum-u[kk][i]*fi[kk];fi[i]=sum;}for(i=0;i<n;i++)if(i<j)h[i]=0;elseh[i]=fi[i]/d[i][i];for(i=n-1;i>=0;i--)if(i==(n-1))Z[i][j]=h[i];else{sum=0;for(kk=i+1;kk<n;kk++){sum=sum-u[i][kk]*Z[kk][j];}Z[i][j]=h[i]+sum;}}for(i=0;i<n;i++)for(j=0;j<n;j++)Z[i][j]=-Z[i][j];for(i=0;i<n;i++){printf("\n");for(j=0;j<n;j++)printf("%.4f",Z[i][j]);}getch();system("cls");/***********************計算短路電壓電流網絡中電流分布************//***********注入電流計算***********************/printf("\t\t\t\t短路計算結果如下\n\n");for(i=0;i<n;i++)In[i]=((Emid[i])*(ye[i]));/***********注入節點電壓初值***********************/for(i=0;i<n;i++)for(j=0;j<n;j++)V0[i]=V0[i]+In[j]*Z[j][i];/***********節點電壓初值***********************/If=V0[f-1]/Z[f-1][f-1];for(i=0;i<n;i++)V[i]=V0[i]-Z[i][f-1]*If;printf("1、短路電流:\nIf=%.4f\n***********************************\n2、各節點電壓為\n",If);for(i=0;i<n;i++)if((i<f-1)||(i>f-1))printf("V%d=%.4f\n",i+1,V[i]);elseprintf("V%d=0.0000\n",i+1,V[i]);printf("***********************************\n");printf("3、發電機支路電流如下:\n");for(m=0;m<times;m++){ for(i=0;i<n;i++) if(i+1==e[m]) Ig[e[m]]=-(E[m]-V[i])/ze[m]; printf("Ig[%d][0]=%.4f\n",e[m],Ig[e[m]]);}printf("***********************************\n4、各支路電流為\n");for(m=0;m<a;m++){i=count[0][m]-1;j=count[1][m]-1;I[i]=(V[j]-V[i])/z[i][j];printf("I[%d][%d]=%.4f\n",count[1][m],count[0][m],I[i]);}/***************************儲存文件**********************************/printf("是否保存文件,保存請按,不保存按");scanf("%d",&g);switch(g)case1:{charoutputname[20];printf("5、你輸入一個文件名用以保存數據\n");scanf("%s",outputname);fp=fopen(outputname,"w+");fprintf(fp,"計算結果如下:\n1、節點導納矩陣:");for(i=0;i<n;i++){fprintf(fp,"\n");for(j=0;j<n;j++)if(Y[i][j]==0)fprintf(fp,"");elsefprintf(fp,"%8.4f",Y[i][j]);}fprintf(fp,"\n2、節點阻抗矩陣:");for(i=0;i<n;i++){fprintf(fp,"\n");for(j=0;j<n;j++)fprintf(fp,"%7.4f",Z[i][j]);}fprintf(fp,"\n3、短路節點是:%d",f);fprintf(fp,"\n4、短路電流:If=%.4f",If);fprintf(fp,"\n5、各節點電壓:\n");for(i=0;i<n;i++)if((i<f-1)||(i>f-1))fprintf(fp,"V%d=%.4f\t",i+1,V[i]);elsefprintf(fp,"V%d=0\t",i+1,V[i]);fprintf(fp,"\n6、發電機支路電流如下:\n");for(m=0;m<times;m++){ for(i=0;i<n;i++) if(i+1==e[m]) Ig[e[m]]=-(E[m]-V[i])/ze[m]; fprintf(fp,"Ig[%d][0]=%.4f\n",e[m],Ig[e[m]]);}fprintf(fp,"\n6、各支路電流:\n");for(m=0;m<a;m++){i=count[0][m]-1;j=count[1][m]-1;if(V[i]>V[j]){I[i]=(V[j]-V[i])/z[i][j];fprintf(fp,"I%d%d=%.4f\t",count[0][m],count[1][m],I[i]);}else{I[i]=(V[i]-V[j])/z[i][j];fprintf(fp,"I%d%d=%.4f\t",count[1][m],count[0][m],I[i]);}}fclose(fp); break;}/******************************短路計算完成,選擇操作***********/{printf("*************************************\n");printf("短路計算已經完成,請選擇下列操作\n新建一個系統請按");printf("\n加載已保存的系統請按\n更改原系統短路點請按");printf("\n退出請按");scanf("%d",&butn);system("cls");switch(butn) {case1: create();break; case2:load(); break; case3:change(name);break;case4:quit();break;}}}voidcreate(){charname[20];charanswer;FILE*fp;intn,a,f,i=0,j=0,sd,md,butn,times,nodeexist;//n,a,f分別為節點數、支路數、短路點floatdk;inte[10];//儲存發電機接入節點floatae[10];//對應的發電機電勢floatb[10];//發電機支路電抗/****************************輸入文件**************************/printf("請輸入您想要創建系統名稱(如xx.txt)用以保存系統參數\n");scanf("%s",name);//輸入文件名/*************輸入系統參數*************/printf("請輸入系統的節點數,支路數,故障節點\n");scanf("%d%d%d",&n,&a,&f);fp=fopen(name,"w+");fprintf(fp,"系統參數如下所示:\n\n");fprintf(fp,"1.系統的節點數為%d\n2.系統的支路數為%d\n3.系統的短路點為%d\n\n",n,a,f);fprintf(fp,"支路電抗參數如下\n");printf("請輸入支路首端號、支路末端號、支路電抗值\n");for(i=0;i<a;i++){scanf("%d%d%f",&sd,&md,&dk);fprintf(fp,"z%d%d=%.4f\t",sd,md,dk);}/*************發電機電抗************/fprintf(fp,"\n\n發電機接入點及其電抗如下:");printf("請輸入發電機臺數:\n");scanf("%d",×);printf("請輸入發電機接入點、電勢以及支路電抗\n");for(i=0;i<times;i++)scanf("%d%f%f",&e[i],&ae[i],&b[i]);/**************寫入文件****************/fprintf(fp,"共%d臺發電機進入系統\n",times);for(i=0;i<times;i++)printf("%f\n",ae[i]);getch();for(i=0;i<times;i++)fprintf(fp,"z%d=%.4f\t",e[i],b[i]);fprintf(fp,"\n");for(i=0;i<times;i++)fprintf(fp,"e%d=%.4f\t",e[i],ae[i]);/************節點對地電容*********************/printf("請輸入電容支路數\n");scanf("%d",×);printf("請輸入電容所在節點,對地電抗值\n");for(i=0;i<times;i++) scanf("%d%f",&e[i],&b[i]);fprintf(fp,"\n共%d個節點有接地電容\n",times);{for(i=0;i<times;i++)fprintf(fp,"Y%d=%f\t",e[i],b[i]);}fclose(fp);/***********選擇操作************/ printf("接下來你希望\n短路計算請按\n退出請按\n"); scanf("%d",&butn);system("cls"); switch(butn) {case1:calculate(name);break;case2:quit();break;} }voidchange(charname[20]){FILE*fp;//文件指針intn,a,f,fnew;printf("請輸入新的短路節點");scanf("%d",&fnew);fp=fopen(name,"r+");fscanf(fp,"系統參數如下所示:\n\n");fscanf(fp,"1.系統的節點數為%d\n2.系統的支路數為%d\n3.系統的短路點為%d\n\n",&n,&a,&f);fclose(fp);fp=fopen(name,"r+");fprintf(fp,"系統參數如下所示:\n\n");fprintf(fp,"1.系統的節點數為%d\n2.系統的支路數為%d\n3.系統的短路點為%d",n,a,fnew);fclose(fp);calculate2(name);}voidload(){charname[20];FILE*fp;charanswer;intm,n,a,f,i=0,j=0,sd,md,butn,times,timesc;floatdk;floatb[10];intcount[2][100];floatz[10][10];inte[10]; floatze[10];floatae[10]; floatyc[10];//節點對地電抗 inte1[10];printf("請輸入一個已保存的文件名\n");scanf("%s",name);while((fp=fopen(name,"r"))==NULL){printf("輸入有錯誤,請重新輸入\n");scanf("%s",name);}fscanf(fp,"系統參數如下所示:\n\n");fscanf(fp,"1.系統的節點數為%d\n2.系統的支路數為%d\n3.系統的短路點為%d\n\n",&n,&a,&f);fscanf(fp,"支路電抗參數如下\n");for(m=0;m<a;m++){fscanf(fp,"z%d%d=%f\t",&sd,&md,&dk);i=sd-1;j=md-1;count[0][m]=sd;count[1][m]=md;z[i][j]=dk;z[j][i]=dk;}printf("本系統參數為\n");printf("節點數是%d\t支路數是%d\t短路點是%d\n",n,a,f);printf("系統的支路電抗為\n");for(m=0;m<a;m++){i=count[0][m]-1;j=count[1][m]-1;printf("z%d%d=%f\n",count[0][m],count[1][m],z[i][j]);}fscanf(fp,"\n\n發電機接入點及其電抗如下:");fscanf(fp,"共%d臺發電機進入系統\n",×);for(m=0;m<times;m++)fscanf(fp,"z%d=%f\t",&e[m],&ze[m]);fscanf(fp,"\n");for(m=0;m<times;m++)fscanf(fp,"e%d=%f\t",&e[m],&ae[m]);printf("\n輸入的發電機支路電抗為\n");for(m=0;m<times;m++) {printf("z%d0=%f",e[m],ze[m]);printf("\n"); }fscanf(fp,"\n共%d個節點有接地電容\n",×c);if(timesc>0)for(m=0;m<timesc;m++)fscanf(fp,"Y%d=%f\t",&e1[m],&yc[m]);printf("\n系統有%d個節點電容\n",timesc);for(m=0;m<timesc;m++) {printf("z%d0=%f",e1[m],yc[m]);printf("\n"); }fclose(fp); printf("\n接下來你希望\n1短路計算\n2改變系統短路點\n3退出\n");// printf("*******************************************\n"); scanf("%d",&butn);system("cls"); switch(butn) {case1:calculate(name);break;case2:change(name);break;case3:quit();break;}}目錄TOC\o"1-3"\h\u27107【摘要】 -2-174171.設計目的與任務 -3-202392.設計要求及內容 -3-181203.設計方法及分析 -4-96493.174HC138芯片簡介 -4-177693.2工藝和規則及模型文件的選擇 -5-176233.3電路設計 -6-120353.3.1輸出級電路設計 -6-272763.3.2.內部基本反相器中的各MOS尺寸的計算 -9-285343.3.3.四輸入與非門MOS尺寸的計算 -10-23253.3.4.三輸入與非門MOS尺寸的計算 -11-57193.3.5.輸入級設計 -11-98923.3.6.緩沖級設計 -12-148993.3.7.輸入保護電路設計 -14-112843.4.功耗與延遲估算 -15-89493.4.1.模型簡化 -16-87583.4.2.功耗估算 -16-HYPERLINK

溫馨提示

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

評論

0/150

提交評論