第一篇:潮流計(jì)算作業(yè)A4范文
電力系統(tǒng)潮流計(jì)算綜述
學(xué)院:電氣工程學(xué)院 專(zhuān)業(yè):電力系統(tǒng)及其自動(dòng)化 學(xué)號(hào):s*** 姓名:張雪
摘 要
電力系統(tǒng)潮流計(jì)算是電力系統(tǒng)分析中最基本的一項(xiàng)計(jì)算。本文對(duì)電力系統(tǒng)潮流計(jì)算進(jìn)行了綜述。首先簡(jiǎn)單回顧了潮流計(jì)算的發(fā)展歷史,對(duì)當(dāng)前基于計(jì)算機(jī)的各種潮流算法的原理及其優(yōu)缺點(diǎn),作了簡(jiǎn)要介紹和比較,并介紹了它們采用的一些特別技術(shù)及程序設(shè)計(jì)技巧;接著簡(jiǎn)要分析了三種新型的潮流計(jì)算方法的計(jì)算原理及優(yōu)缺點(diǎn),它們分別是基于人工智能的潮流計(jì)算方法、基于L1范數(shù)和現(xiàn)代內(nèi)點(diǎn)理論的電力系統(tǒng)潮流計(jì)算方法、基于符號(hào)分析的潮流計(jì)算方法等。除此之外還介紹了配電系統(tǒng)潮流計(jì)算算法。
關(guān)鍵詞:電力系統(tǒng);潮流計(jì)算;綜述;新型潮流計(jì)算方法;配電系統(tǒng) 1 概述
電力系統(tǒng)潮流計(jì)算是研究電力系統(tǒng)穩(wěn)態(tài)運(yùn)行的一項(xiàng)基本運(yùn)算。它根據(jù)給定系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)及運(yùn)行條件來(lái)確定整個(gè)系統(tǒng)的運(yùn)行狀態(tài):主要是各節(jié)點(diǎn)電壓(幅值和相角),網(wǎng)絡(luò)中功率分布及功率損耗等。它既是對(duì)電力系統(tǒng)規(guī)劃設(shè)計(jì)和運(yùn)行方式的合理性、可靠性及經(jīng)濟(jì)性進(jìn)行定量分析的依據(jù),又是電力系統(tǒng)靜態(tài)和暫態(tài)穩(wěn)定計(jì)算的基礎(chǔ)。潮流計(jì)算經(jīng)歷了一個(gè)由手工,利用交、直流計(jì)算臺(tái)到應(yīng)用數(shù)字電子計(jì)算機(jī)的發(fā)展過(guò)程?,F(xiàn)在的潮流算法都以計(jì)算機(jī)的應(yīng)用為前提。1956年ward等人編制成實(shí)用的計(jì)算機(jī)潮流計(jì)算程序,標(biāo)志著電子計(jì)算機(jī)開(kāi)始在電力系統(tǒng)潮流計(jì)算中應(yīng)用?;趯?dǎo)納矩陣的高斯—塞德?tīng)柗ㄊ请娏ο到y(tǒng)中最早得到應(yīng)用的潮流計(jì)算方法。因它對(duì)病態(tài)條件(所謂具有病態(tài)條件的系統(tǒng)是指:重負(fù)荷系統(tǒng);包含有負(fù)電抗支路的系統(tǒng);具有較長(zhǎng)輻射型線路的系統(tǒng);長(zhǎng)線路與短線路接在同一節(jié)點(diǎn),且其長(zhǎng)度比值又很大的系統(tǒng);或平衡節(jié)點(diǎn)位于網(wǎng)絡(luò)遠(yuǎn)端的系統(tǒng))特別敏感,又發(fā)展了基于阻抗陣的高斯—塞德?tīng)柗ǎ朔ㄖ凶杩龟囀菨M陣占大量?jī)?nèi)存,而限制了其應(yīng)用。1961年VanNes等人提出用牛頓法求解系統(tǒng)潮流問(wèn)題,經(jīng)后人的不斷改進(jìn),而得到廣泛應(yīng)用并出現(xiàn)了多種變型以滿足不同的需要,如快速解耦法、直流法、保留非線性算法等。同時(shí),60年代初開(kāi)始出現(xiàn)運(yùn)用非線性規(guī)劃的最優(yōu)潮流算法。60年代末Dom-8mel和Tinney提出最優(yōu)潮流的簡(jiǎn)化梯度法,70年代有人提出海森矩陣法,80年代SunDl提出最優(yōu)潮流牛頓算法,還可把解耦技術(shù)應(yīng)用于最優(yōu)潮流,從而形成解耦型最優(yōu)潮流牛頓算法,還可把解禍技術(shù)應(yīng)用于最優(yōu)潮流,從而形成解耦型最優(yōu)潮流牛頓算法。隨著直流輸電技術(shù)的發(fā)展,交直流聯(lián)合電力系統(tǒng)的潮流計(jì)算方法相應(yīng)出現(xiàn)。另外,其它各種潮流算法如最小化潮流算法、隨機(jī)潮流算法等也不斷涌現(xiàn)。至于用于特殊用途的潮流算法如諧波潮流、適于低壓配電網(wǎng)的潮流算法也得到了較快的發(fā)展。
潮流算法多種多樣,但一般要滿足四個(gè)基本要求:(i)可靠收斂;(ii)計(jì)算速
2n個(gè)變量作為已知量而預(yù)先給以指定。也即對(duì)每個(gè)節(jié)點(diǎn),要給定其兩個(gè)變量的值作為已知條件,而另兩個(gè)變量作為待求量。
按照電力系統(tǒng)的實(shí)際運(yùn)行條件,根據(jù)預(yù)先給定的變量的不同,電力系統(tǒng)中的節(jié)點(diǎn)又可分為PQ節(jié)點(diǎn)、PV節(jié)點(diǎn)及Vθ節(jié)點(diǎn)或平衡節(jié)點(diǎn)三種類(lèi)型。對(duì)應(yīng)于這些節(jié)點(diǎn),分別對(duì)其注入有功、無(wú)功功率,有功功率及電壓模值以及電壓模值和相角加以指定;并且對(duì)平衡節(jié)點(diǎn)來(lái)說(shuō),其電壓相角一般作為系統(tǒng)電壓相角的基準(zhǔn)(即θ=0)。
交流電力系統(tǒng)中的復(fù)數(shù)電壓變量可以用兩種坐標(biāo)形式來(lái)表示
Ui?Uiej?i
(3)或
Ui?ei?jfi
(4)而復(fù)數(shù)導(dǎo)納為
Yij?Gij?jBij
(5)將(3)、式(4)以及式(5)代入以導(dǎo)納矩陣為基礎(chǔ)的式(1),并將實(shí)部與虛部分開(kāi),可得到以下兩種形式的潮流方程。
潮流方程的直角坐標(biāo)形式為:
Pi?ei?(Gijei?Bijfj)?fi?(Gijfj?Bijej)
(6)
j?ij?i
(i?1,2,n
Qi?fi?(Gijei?Bijfj)?ei?(Gijfj?Bijej)
(7)
j?ij?i(i?1,2,n)
潮流方程的極坐標(biāo)形式為:
Pos?ij?Uj(Gici?Uij?j?iB?n
i j
(8)isji
(i?1,2, ,n
Qi?Ui?Uj(Gijsin?ij?Bijcos?ij)
(9)
j?i
(i?1,2, ,n以上各式中,j?i 表示∑號(hào)后的標(biāo)號(hào)為j節(jié)點(diǎn)必須直接和節(jié)點(diǎn)i相聯(lián),并包括j=i的情況。這兩種形式的潮流方程統(tǒng)稱(chēng)為節(jié)點(diǎn)功率方程,是牛頓-拉夫遜等潮流算法所采用的主要數(shù)學(xué)模型。
對(duì)于以上潮流方程中的有關(guān)運(yùn)行變量,還可以按其性質(zhì)的不同加以分類(lèi),這對(duì)于進(jìn)行例如靈敏度分析以及最優(yōu)潮流的研究等都是比較方便的。
每個(gè)節(jié)點(diǎn)的注入功率是該節(jié)點(diǎn)的電源輸入功率PGt、QGt和負(fù)荷需求功率PLi、QLi的代數(shù)和。負(fù)荷需求的功率取決于用戶,是無(wú)法控制的,所以稱(chēng)之為不可控
456
較對(duì)稱(chēng)系統(tǒng)以三倍數(shù)增加。(ii)序分量法(或?qū)ΨQ(chēng)分量法)。采用對(duì)稱(chēng)分量坐標(biāo),將系統(tǒng)各量分為正、負(fù)、零序分量,并對(duì)系統(tǒng)中不對(duì)稱(chēng)元件的序分量之間的耦合,通過(guò)加電流源補(bǔ)償?shù)姆椒ㄊ怪怦睢?.5.3 交直流聯(lián)合電力系統(tǒng)的潮流計(jì)算
交直流聯(lián)合電力系統(tǒng)的潮流計(jì)算是根據(jù)交流系統(tǒng)各節(jié)點(diǎn)給定的負(fù)荷和發(fā)電情況,結(jié)合直流系統(tǒng)指定的控制方式,通過(guò)計(jì)算來(lái)確定整個(gè)系統(tǒng)的運(yùn)行狀態(tài)它和純交流電力系統(tǒng)相比,有以下特點(diǎn):(i)增加直流電力系統(tǒng)變量,與交流電力系統(tǒng)變量通過(guò)換流站中交直流換流器建立聯(lián)系;(ii)換流器一方面實(shí)現(xiàn)了交直流電力系統(tǒng)間的有功功率傳遞,另一方面又從系統(tǒng)中吸取無(wú)功;(iij)直流系統(tǒng)的運(yùn)行須對(duì)各個(gè)換流器的運(yùn)行控制方式加以指定,直流系統(tǒng)的狀態(tài)量是給定的直流控制量和換流器交流端電壓的函數(shù)。
主要有聯(lián)合求解法和交替求解法兩種計(jì)算方法,前者是將交流系統(tǒng)潮流方程組和直流系統(tǒng)的方程組聯(lián)立起來(lái),統(tǒng)一求解出交流及直流系統(tǒng)中所有未知變量。后者則將交流系統(tǒng)潮流方程組和直流系統(tǒng)的方程組分開(kāi)來(lái)求解,求解直流系統(tǒng)方程組時(shí)各換流站的交流母線電壓由交流系統(tǒng)潮流的解算結(jié)果提供;而在進(jìn)行交流系統(tǒng)潮流方程組的解算時(shí),將每個(gè)換流站處理成接在相應(yīng)交流節(jié)點(diǎn)上的一個(gè)等效的有功、無(wú)功負(fù)荷,其數(shù)值則取自直流系統(tǒng)潮流的解算結(jié)果。這樣交替迭代計(jì)算,直到收斂。2.5.4 隨機(jī)潮流
把潮流計(jì)算的已知量和待求量都作為隨機(jī)變量來(lái)處理,最后求得各節(jié)點(diǎn)電壓及支路潮流等的概率統(tǒng)計(jì)特性。此法最早是用直流模型,后發(fā)展為線性化的交流模型及采用最小二乘法并保留非線性的交流模型。其突出優(yōu)點(diǎn)是通過(guò)一次計(jì)算就提供了系統(tǒng)運(yùn)行和規(guī)劃的全面信息。
除上述之外,還有其它一些用途不同的特殊潮流問(wèn)題,如諧波潮流、動(dòng)態(tài)潮流等,在此不一一列舉。2.6 潮流概念的推廣 2.6.1 狀態(tài)估計(jì)
實(shí)質(zhì)是一種廣義潮流計(jì)算。一般潮流計(jì)算時(shí),已知量和方程式數(shù)等于未知量數(shù)。而在狀態(tài)估計(jì)中,已知量和方程式數(shù)大于待求未知量數(shù),利用冗余變量,在實(shí)際測(cè)量系統(tǒng)有偏差的情況下獲得表征系統(tǒng)實(shí)際運(yùn)行狀態(tài)的狀態(tài)量。主要方法有最小二乘估計(jì)法、支路潮流狀態(tài)估計(jì)法、遞推狀態(tài)估計(jì)法等。
2.6.2 最優(yōu)潮流
所謂最優(yōu)潮流,就是當(dāng)系統(tǒng)的結(jié)構(gòu)參數(shù)及負(fù)荷情況給定時(shí),通過(guò)控制變量的優(yōu)選,所找到的能滿足所有指定的約束條件,并使系統(tǒng)的某一性能指標(biāo)或目標(biāo)函數(shù)達(dá)到最優(yōu)時(shí)的潮流分布.最優(yōu)潮流計(jì)算是電力系統(tǒng)優(yōu)化規(guī)劃與運(yùn)行的基礎(chǔ),它將成為能量管理系統(tǒng)(EMS)中的核心應(yīng)用軟件之一。其數(shù)學(xué)模型可表示為:
minf(u,x)??s.t.g(u,x)?0?
(19)
h(u,x)?0??選用不同的目標(biāo)函數(shù)的控制變量,加上相應(yīng)的約束條件,就構(gòu)成不同應(yīng)用目的的最優(yōu)潮流問(wèn)題。最優(yōu)潮流的求解方法主要有:
(1)最優(yōu)潮流的簡(jiǎn)化梯度算法
此法采用了簡(jiǎn)化梯度,并應(yīng)用拉格朗日乘子和罰函數(shù)將等式和不等式約束加在目標(biāo)函數(shù)中,從而把有約束問(wèn)題變?yōu)闊o(wú)約束問(wèn)題。優(yōu)點(diǎn)是原理簡(jiǎn)單,設(shè)計(jì)簡(jiǎn)便。缺點(diǎn)是迭代點(diǎn)向最優(yōu)點(diǎn)接近時(shí)走的是曲折路線,罰因子的選擇比較困難。
(2)最優(yōu)潮流的牛頓算法 對(duì)最優(yōu)潮流問(wèn)題:
minf(x?)?0
(20)
s.t.g(?x)?
h(x?)?0?先不考慮不等式約束,構(gòu)造拉格朗日函數(shù):L(x,?)?f(x)??Tg(x),定義向量Z?x,?,則應(yīng)用海森矩陣法求最優(yōu)解點(diǎn)Z*的迭代方程為:W△z=-d,式中:W,d分別為L(zhǎng)對(duì)于Z的海森矩陣及梯度向量。本方法的關(guān)鍵是充分開(kāi)發(fā)并在迭代過(guò)程中保持W矩陣的高度稀疏性,另外在求解時(shí)采用特殊的稀疏技巧。對(duì)不等式約束的處理有兩種方法:(i)罰函數(shù)法;(ii)不等式約束化為等式方程法。
(3)解耦最優(yōu)潮流
把最優(yōu)潮流的整體最優(yōu)化問(wèn)題分解為有功優(yōu)化和無(wú)功優(yōu)化兩個(gè)子優(yōu)化問(wèn)題。它有一個(gè)特別的優(yōu)點(diǎn)是容許根據(jù)兩個(gè)子優(yōu)化問(wèn)題各自的特性而采用不同的求解方法。幾種新型的潮流計(jì)算方法 3.1 潮流計(jì)算的人工智能方法
近年來(lái),人工智能作為一種新興的方法,越來(lái)越廣泛的應(yīng)用到電力系統(tǒng)潮流計(jì)算中。該方法不像傳統(tǒng)方法那樣依賴(lài)于精確的數(shù)學(xué)模型,這種方法只能基于對(duì)自然界和人類(lèi)本身活動(dòng)的有效類(lèi)比而獲得啟示。具有代表性的有遺傳法、模擬退
值為一不為零的正值。因此,即使是在病態(tài)系統(tǒng)的情況下,計(jì)算過(guò)程不會(huì)發(fā)散。國(guó)內(nèi)專(zhuān)家學(xué)者對(duì)解決此問(wèn)題也進(jìn)行了許多有益的探討。
提出了一種基于內(nèi)點(diǎn)非線性規(guī)劃的潮流計(jì)算模型和算法?;贚1范數(shù)的計(jì)算原理,潮流方程的求解可以轉(zhuǎn)化為求解一個(gè)新的非線性規(guī)劃模型L1LF,并結(jié)合現(xiàn)代內(nèi)點(diǎn)算法來(lái)進(jìn)行求解。和過(guò)去的模型相比,該模型非常的簡(jiǎn)潔、直觀,易于編程。與現(xiàn)代內(nèi)點(diǎn)算法相結(jié)合的求解過(guò)程表現(xiàn)出了良好的收斂性和快速性,計(jì)算結(jié)果準(zhǔn)確、可靠,計(jì)算各種病態(tài)系統(tǒng)均可良好的收斂,基于L1范數(shù)的數(shù)學(xué)規(guī)劃模型將傳統(tǒng)電力系統(tǒng)潮流的直接迭代求解轉(zhuǎn)化為對(duì)一簡(jiǎn)單規(guī)劃問(wèn)題的求解后,對(duì)系統(tǒng)運(yùn)行中各部分的控制可更加簡(jiǎn)便。增加適當(dāng)?shù)牟坏仁郊s束和相關(guān)控制變,即可獲得近似于最優(yōu)潮流的計(jì)算模型,可方便的進(jìn)行潮流計(jì)算中的調(diào)整。3.3 電力系統(tǒng)潮流計(jì)算的符號(hào)分析方法
隨著電力系統(tǒng)規(guī)模的擴(kuò)大,電力系統(tǒng)的實(shí)時(shí)計(jì)算問(wèn)題顯得日益重要,但長(zhǎng)期以來(lái)受算法的計(jì)算效率所限,潮流計(jì)算的速度難以得到實(shí)質(zhì)性的突破。根據(jù)電力網(wǎng)絡(luò)在實(shí)際運(yùn)行中的特點(diǎn),結(jié)合網(wǎng)絡(luò)圖論理論提出了運(yùn)用符號(hào)分析方法求解電力網(wǎng)絡(luò)潮流的新思路,有望克服傳統(tǒng)數(shù)值計(jì)算方法在收斂性、冗余項(xiàng)對(duì)消、計(jì)算機(jī)有效字長(zhǎng)效應(yīng)等方面的不足。
基于符號(hào)分析方法的潮流計(jì)算方法通過(guò)建立電力網(wǎng)絡(luò)的拓?fù)淠P蜕赏負(fù)渚W(wǎng)絡(luò)的全部樹(shù)和2-樹(shù),應(yīng)用網(wǎng)絡(luò)的k-樹(shù)樹(shù)支導(dǎo)納乘積對(duì)電力網(wǎng)絡(luò)的節(jié)點(diǎn)電壓方程進(jìn)行拓?fù)淝蠼?,進(jìn)而得出所求變量(即各節(jié)點(diǎn)電壓)的符號(hào)表達(dá)式(即關(guān)于元件參數(shù)符號(hào)的顯式表達(dá)式)。這種方法避免了求解非線性方程,不必進(jìn)行行列式的展開(kāi)和代數(shù)余子式的計(jì)算,而且不需要寫(xiě)出行列式和代數(shù)余子式,克服了傳統(tǒng)數(shù)值計(jì)算的不足。同時(shí)它還帶來(lái)一個(gè)附加的好處,即在構(gòu)造函數(shù)時(shí)自然地產(chǎn)生并行處,以及由它的拓?fù)湫再|(zhì)帶來(lái)的電力網(wǎng)絡(luò)運(yùn)行方式改變后計(jì)算的靈活性。這些特點(diǎn)將在電力系統(tǒng)的在線計(jì)算、靜態(tài)安全分析等領(lǐng)域發(fā)揮明顯優(yōu)勢(shì)。另外,傳統(tǒng)的潮流計(jì)算方法都是純“數(shù)值計(jì)算”,利用這些方法計(jì)算出來(lái)的結(jié)果是數(shù)字而不是函數(shù),它們的特點(diǎn)是逐點(diǎn)進(jìn)行完整的數(shù)值計(jì)算,因此不可避免地存在收斂性問(wèn)題、冗余項(xiàng)對(duì)消問(wèn)題、計(jì)算機(jī)有效字長(zhǎng)效應(yīng)問(wèn)題和相近數(shù)值求差時(shí)發(fā)生的浮點(diǎn)運(yùn)算誤差問(wèn)題。
基于符號(hào)分析方法的潮流計(jì)算方法在電力系統(tǒng)在線靜態(tài)安全分析、短路計(jì)算、靈敏度計(jì)算等領(lǐng)域中也可推廣使用。4 配電系統(tǒng)潮流計(jì)算算法的研究 4.1 線性規(guī)劃
1121314-
第二篇:電力系統(tǒng)分析潮流計(jì)算大作業(yè)
電力系統(tǒng)分析潮流計(jì)算大作業(yè)
(源程序及實(shí)驗(yàn)報(bào)告)
源程序如下:
采用直角坐標(biāo)系的牛頓-拉夫遜迭代 function chaoliujisuan()m=3;%m=PQ節(jié)點(diǎn)個(gè)數(shù) v=1;%v=PV節(jié)點(diǎn)個(gè)數(shù)
P=[-0.8055-0.18 0];%P=PQ節(jié)點(diǎn)的P值 Q=[-0.5320-0.12 0];%Q=PQ節(jié)點(diǎn)的Q值 PP=[0.5];%PP=PV節(jié)點(diǎn)的P值 V=[1.0];%V=PV節(jié)點(diǎn)的U值
E=[1 1 1 1.0 1.0]';%E=PQ,PV,Vθ節(jié)點(diǎn)e的初值
F=[0 0 0 0 0]';%F=PQ,PV,Vθ節(jié)點(diǎn)f的初值 G=[
6.3110-3.5587-2.7523 0 0;
-3.5587 8.5587-5
0 0;
-2.7523-5
7.7523 0 0;
0
0
0
0 0;
0
0
0
0 0
];B=[
-20.4022 11.3879
9.1743
0
0;
11.3879-31.00937 15
4.9889 0;
9.1743
-28.7757 0
4.9889;
0
4.9889
0
5.2493 0;
0
0
4.9889
0
-5.2493
];Y=G+j*B;X=[];%X=△X n=m+v+1;%總的節(jié)點(diǎn)數(shù)
FX=ones(2*n-2,1);%F(x)矩陣
F1=zeros(n-1,n-1);%F(x)導(dǎo)數(shù)矩陣 a=0;%記錄迭代次數(shù)
EF=zeros(n-1,n-1);%最后的節(jié)點(diǎn)電壓矩陣 while max(FX)>=10^(-5)for i=1:m %PQ節(jié)點(diǎn)
FX(i)=P(i);%△P FX(n+i-1)=Q(i);%△Q
for w=1:n FX(i)= FX(i)-E(i)*G(i,w)*E(w)+E(i)*B(i,w)*F(w)-F(i)*G(i,w)*F(w)-F(i)*B(i,w)*E(w);%△P
FX(n+i-1)=FX(n+i-1)-F(i)*G(i,w)*E(w)+F(i)*B(i,w)*F(w)+E(i)*G(i,w)*F(w)+E(i)*B(i,w)*E(w);%△Q
end end for i=m+1:n-1 %PV節(jié)點(diǎn) FX(i)=PP(i-m);%△P FX(n+i-1)=V(i-m)^2-E(i)^2-F(i)^2;%△Q
for w=1:n FX(i)= FX(i)-E(i)*G(i,w)*E(w)+E(i)*B(i,w)*F(w)-F(i)*G(i,w)*F(w)-F(i)*B(i,w)*E(w);%△P
end end
for i=1:m %PQ節(jié)點(diǎn)
for w=1:n-1
if i~=w
F1(i,w)=-(G(i,w)*E(i)+B(i,w)*F(i));
F1(i,n+w-1)=B(i,w)*E(i)-G(i,w)*F(i);
F1(n+i-1,w)=B(i,w)*E(i)-G(i,w)*F(i);
F1(n+i-1,n+w-1)=G(i,w)*E(i)+B(i,w)*F(i);
else
F1(i,w)=-G(i,i)*E(i)-B(i,i)*F(i);
F1(i,n+w-1)=B(i,i)*E(i)-G(i,i)*F(i);
F1(n+i-1,w)=B(i,i)*E(i)-G(i,i)*F(i);
F1(n+i-1,n+w-1)=G(i,i)*E(i)+B(i,i)*F(i);
for k=1:n
F1(i,w)=F1(i,w)-G(i,k)*E(k)+B(i,k)*F(k);
F1(i,n+w-1)= F1(i,n+w-1)-G(i,k)*F(k)-B(i,k)*E(k);
F1(n+i-1,w)=F1(n+i-1,w)+G(i,k)*F(k)+B(i,k)*E(k);
F1(n+i-1,n+w-1)=F1(n+i-1,n+w-1)-G(i,k)*E(k)+B(i,k)*F(k);
end
end
end end for i=m+1:n-1 %PV節(jié)點(diǎn)
for w=1:n-1
if i~=w
F1(i,w)=-(G(i,w)*E(i)+B(i,w)*F(i));
F1(i,n+w-1)=B(i,w)*E(i)-G(i,w)*F(i);
F1(n+i-1,w)=0;
F1(n+i-1,n+w-1)=0;
else
F1(i,w)=-G(i,i)*E(i)-B(i,i)*F(i);
F1(i,n+w-1)=B(i,i)*E(i)-G(i,i)*F(i);
F1(n+i-1,w)=-2*E(i);
F1(n+i-1,n+w-1)=-2*F(i);
for k=1:n
F1(i,w)=F1(i,w)-G(i,k)*E(k)+B(i,k)*F(k);
F1(i,n+w-1)= F1(i,n+w-1)-G(i,k)*F(k)-B(i,k)*E(k);
end
end
end end X=inv(F1)*(-FX);for i=1:n-1
E(i)=E(i)+X(i);
F(i)=F(i)+X(n+i-1);end a=a+1;fprintf('第%d次迭代后的節(jié)點(diǎn)電壓分別為:n',a);disp(E+j*F);fprintf('第%d次迭代后功率偏差△P △Q電壓偏差△V的平方分別為:n',a);disp(FX);end
disp('收斂后的節(jié)點(diǎn)電壓用極坐標(biāo)表示為:');EF=E+j*F;for i=1:n-1 fprintf('%d號(hào)節(jié)點(diǎn)電壓的幅值為:',i)
disp(abs(EF(i)));fprintf('%d號(hào)節(jié)點(diǎn)電壓的相角度數(shù)為',i)
disp(angle(EF(i))*180/pi);end PPH=0;for i=1:n
PPH=PPH+EF(n)*conj(Y(n,i))*conj(EF(i));end fprintf('平衡節(jié)點(diǎn)的功率');disp(PPH);
運(yùn)行結(jié)果:
運(yùn)行結(jié)果復(fù)制如下:
第1次迭代后的節(jié)點(diǎn)電壓分別為:
1.00340.1019i
1.03390.0017i
1.0000
第1次迭代后功率偏差△P △Q電壓偏差△V的平方分別為:
-0.8055
-0.1800
0
0.5000
-0.3720
0.2474
0.3875
0
第2次迭代后的節(jié)點(diǎn)電壓分別為:
0.98360.1038i
1.01830.0035i
1.0000
第2次迭代后功率偏差△P △Q電壓偏差△V的平方分別為:
0.0512
-0.0222
-0.0403
0.0002
-0.1012
-0.0219
-0.0099
-0.0000
第3次迭代后的節(jié)點(diǎn)電壓分別為:
0.98310.1038i
1.01800.0035i
1.0000
第3次迭代后功率偏差△P △Q電壓偏差△V的平方分別為:
0.0008
-0.0003
-0.0005
-0.0001
-0.0021
-0.0004
-0.0003
-0.0000
第4次迭代后的節(jié)點(diǎn)電壓分別為:
0.98310.1038i
1.01800.0035i
1.0000
第4次迭代后功率偏差△P △Q電壓偏差△V的平方分別為:
1.0e-005 *
0.0280
-0.0083
-0.0164
-0.0121
-0.1085
-0.0199
-0.0135
-0.0005
收斂后的節(jié)點(diǎn)電壓用極坐標(biāo)表示為: 1號(hào)節(jié)點(diǎn)電壓的幅值為:
0.9916
1號(hào)節(jié)點(diǎn)電壓的相角度數(shù)為-7.4748
2號(hào)節(jié)點(diǎn)電壓的幅值為:
1.0175
2號(hào)節(jié)點(diǎn)電壓的相角度數(shù)為-5.8548
3號(hào)節(jié)點(diǎn)電壓的幅值為:
1.0229
3號(hào)節(jié)點(diǎn)電壓的相角度數(shù)為-5.5864
4號(hào)節(jié)點(diǎn)電壓的幅值為:
1.0000
4號(hào)節(jié)點(diǎn)電壓的相角度數(shù)為-0.2021
平衡節(jié)點(diǎn)的功率 0.4968-10.3280i
第三篇:潮流計(jì)算--電力系統(tǒng)大作業(yè)(C++編寫(xiě))
程序設(shè)計(jì)所涉及二叉樹(shù)解釋
任意一棵樹(shù)或一個(gè)森林都能唯一地對(duì)應(yīng)一棵二叉樹(shù),由此而編寫(xiě)本程序。本程序采用類(lèi)二叉樹(shù)為整體結(jié)構(gòu),二叉樹(shù)類(lèi)下定義節(jié)點(diǎn)類(lèi),每一條支路均為樹(shù)的一個(gè)節(jié)點(diǎn),支路所有的參數(shù)均作為節(jié)點(diǎn)的屬性,并給節(jié)點(diǎn)加入屬性“支路編號(hào)”,并以支路編號(hào)為依據(jù)構(gòu)建二叉樹(shù),這就要求提前根據(jù)二叉樹(shù)結(jié)構(gòu)給每一個(gè)支路編號(hào)。
支路編號(hào)原則:左子樹(shù)上所有編號(hào)均小于其雙親的編號(hào),右子樹(shù)上所有編號(hào)均大于其雙親的編號(hào),為了便于查看,本程序在節(jié)點(diǎn)較少時(shí)編號(hào)從1開(kāi)始,逐個(gè)遞加至支路數(shù);當(dāng)支路較多時(shí),可不必拘泥于逐個(gè)遞加,只要滿足支路編號(hào)原則即可。
例如習(xí)題3-4:
123118kV113kV8.5+j20.5Wj2.82×10-4S1.22+j20.2Wj2.82×10-4SDST=0.17+j1.7MVA40+j30MVA20+j15MVA
程序二叉樹(shù)結(jié)構(gòu)示意圖:
本二叉樹(shù)中節(jié)點(diǎn)1即支路1為題目中節(jié)點(diǎn)1與節(jié)點(diǎn)2之間的部分; 本二叉樹(shù)中節(jié)點(diǎn)2即支路2為題目中節(jié)點(diǎn)2與節(jié)點(diǎn)3之間的部分; 對(duì)于習(xí)題3-3:
程序二叉樹(shù)結(jié)構(gòu)示意圖:
本二叉樹(shù)中節(jié)點(diǎn)2即支路2為題目中節(jié)點(diǎn)1與節(jié)點(diǎn)2之間的部分; 本二叉樹(shù)中節(jié)點(diǎn)1即支路1為題目中節(jié)點(diǎn)2與節(jié)點(diǎn)3之間的部分; 本二叉樹(shù)中節(jié)點(diǎn)3即支路3為題目中節(jié)點(diǎn)2與節(jié)點(diǎn)4之間的部分.拓展:
如下多支路網(wǎng)絡(luò):
對(duì)于三節(jié)點(diǎn)網(wǎng)絡(luò)需先進(jìn)行以下網(wǎng)絡(luò)處理轉(zhuǎn)化為標(biāo)準(zhǔn)二叉樹(shù),而后進(jìn)行計(jì)算;
圖中三角形表明該項(xiàng)阻抗為零,為純導(dǎo)線,并進(jìn)行相應(yīng)參數(shù)補(bǔ)充進(jìn)行計(jì)算。
程序說(shuō)明文檔
******************************************************************************************************************************************************* 本程序測(cè)試使用方法:在E盤(pán)根目錄下建立輸入文件:
輸入文件名:input.txt;
將所附算例對(duì)應(yīng)輸入文件內(nèi)容復(fù)制粘貼至上述文件中,在VC++6.0環(huán)境下運(yùn)行cpp文件得出結(jié)果。
輸出文件在E盤(pán)根目錄下
輸出文件名為:data.txt;******************************************************************************************************************************************************* 程序功能說(shuō)明:本程序可以計(jì)算任意長(zhǎng)度線型開(kāi)始網(wǎng)絡(luò)潮流;
支持多電壓等級(jí)下的計(jì)算;
可在除供電節(jié)點(diǎn)外任意節(jié)點(diǎn)引出負(fù)載;
*******************************************************************************************************************************************************
輸入格式說(shuō)明:以支路為基本單位,按潮流方向輸入數(shù)據(jù):
以下例示意:
//支路個(gè)數(shù)
1,110,118,8.5,20.5,0.000564,0,0,1,0,0
//線路等效的支路
2,11,110,1.22,20.2,0,40,30,10,0.17,1.7
//變壓器等效的支路
.//按此方式知道輸入所有的支路
.//輸入從上到下的順序?yàn)槌绷髟?/p>
.//線型開(kāi)式網(wǎng)絡(luò)中的流動(dòng)方向
/*
第一行輸入支路個(gè)數(shù),回車(chē)
第二行至后輸入各個(gè)支路參數(shù),回車(chē)分隔不同支路;
各行輸入的支路參數(shù)順序是:
支路編號(hào),末端電壓,始端電壓,線路等效電阻,線路等效感抗,線路等效容納,末端輸入有功,末端輸入無(wú)功,變比,變壓器有功勵(lì)磁損耗,變壓器無(wú)功勵(lì)磁損耗
對(duì)于線路等效電路:變壓器有功/無(wú)功損耗輸入零,變比輸入1;
對(duì)于變壓器等效電路:所有的參數(shù)均歸算至高壓側(cè),Rt,Xt對(duì)應(yīng)輸入線路等效電阻/感抗的位置,線路等效容抗為零;
對(duì)于個(gè)節(jié)點(diǎn)的引出負(fù)荷:輸入至以此節(jié)點(diǎn)為末節(jié)點(diǎn)的支路的末端輸入有功/無(wú)功部分;
*/ ******************************************************************************************************************************************************** 輸出文件格式說(shuō)明:輸出的內(nèi)容包括
(1)支路信息:每個(gè)支路元件的始端有功、無(wú)功和末端有功、無(wú)功;有功損耗無(wú)功損耗;電壓損耗;
(2)全網(wǎng)信息:全網(wǎng)的總電源有功、總負(fù)荷有功、有功損耗、網(wǎng)損率;
(3)迭代信息:每次完整迭代后的所有內(nèi)容;
具體在輸出文件中都明確標(biāo)出。
********************************************************************************************************************************************************* 程序中變量定義說(shuō)明:
類(lèi)中定義的變量
class line_part{
//定義支路類(lèi)
double U[2];
//支路電壓降落:U[0]電壓降落橫分量,U[1]電壓降落縱分量
double k;
//變壓器變比
double val;
//支路排序
double U_end;
//支路末端電壓
double U_begin;
//支路首段電壓
double X[3];
//支路等效阻抗: X[0]電阻,X[1]感抗,X[2]容納
double S_end[2];
//支路末端功率:S_end[0]有功,S_end[1]無(wú)功
double S_begin[2];
//支路首段功率:S_begin[0]有功,S_begin[1]無(wú)功
double S0[2];
//變壓器勵(lì)磁損耗:S0[0]有功,S0[1]無(wú)功
double S_org[2];
//支路末端負(fù)載:S_org[0]有功,S_org[1]無(wú)功
line_part *lchild,*rchild;
//支路的后繼兩個(gè)支路 }
class BinTree{
//定義樹(shù)類(lèi)
void PreOrder(){PreOrder(root);};
//樹(shù)的先序遍歷修改電壓
void PostOrder(){PostOrder(root);};
//樹(shù)的后序遍歷修改潮流
void display(){display(root);};
//樹(shù)的先序遍歷顯示數(shù)據(jù)
line_part *root;
//樹(shù)的根,是一個(gè)支路類(lèi)
};主函數(shù)中定義的數(shù)據(jù)
ofstream outfile;
//輸出數(shù)據(jù)流定
ifstream infile;
//輸入數(shù)據(jù)流定
const int M(a);
//支路個(gè)數(shù)常量
主程序(復(fù)制粘貼到C++就能用)
**************************************************************************************************************************************************************
#include
double p_cost_all=0;
double sqr(double x){
//平方計(jì)算函數(shù) return x*x;};
class line_part{
//定義支路類(lèi) private:
double val;
//支路排序
double U_end;
//支路末端電壓
double U_begin;
//支路首段電壓
double X[3];
//支路等效阻抗: X[0]電阻,X[1]感抗,X[2]容納
double S_end[2];
//支路末端功率:S_end[0]有功,S_end[1]無(wú)功
double S_begin[2];
//支路首段功率:S_begin[0]有功,S_begin[1]無(wú)功
double S0[2];
//變壓器勵(lì)磁損耗:S0[0]有功,S0[1]無(wú)功
double S_org[2];
//支路末端負(fù)載:S_org[0]有功,S_org[1]無(wú)功
line_part *lchild,*rchild;public:
double U[2];
//支路電壓降落:U[0]電壓降落橫分量,U[1]電壓降落縱分量
double k;
//變壓器變比
public: line_part(){ val=0;U_end=0;U_begin=0;X[0]=0;X[1]=0;
X[2]=0;S_end[0]=S_org[0]=0;S_end[1]=S_org[1]=0;
S_begin[0]=0;S_begin[1]=0;k=1;
S0[0]=0;S0[1]=0;U[0]=0;U[1]=0;
lchild = rchild= NULL;}
line_part(double vall,double u_end=0,double u_begin=0,double r=0,double x=0,double b=0,double Pe=0,double Xe=0,double K=0,double P0=0,double Q0=0){
val=vall;
U_end=u_end;
U_begin=u_begin;
X[0]=r;
X[1]=x;
X[2]=b;
S_end[0]=S_org[0]=Pe;
S_end[1]=S_org[1]=Xe;
S_begin[0]=0;
S_begin[1]=0;
k=K;
S0[0]=P0;
S0[1]=Q0;
U[0]=0;
U[1]=0;
lchild = rchild= NULL;
};friend class BinTree;
friend void pass_U(line_part*a,line_part*b,line_part*c);
//電壓傳遞函數(shù)
friend void pass_w(line_part*a,line_part*b,line_part*c);
//功率傳遞函數(shù)
friend void pass_U2(line_part*a,line_part*b);
//電壓傳遞函數(shù)
friend void pass_w2(line_part*a,line_part*b);
//功率傳遞函數(shù)
void Sbegin(){
(U_end)*X[2]/2))/sqr(Uend);;-sqr(U_begin)*X[2]/2-sqr(U_end)*X[2]/2;};void Uend(){
double U_heng(0),U_zong(0);
X[2]/2-S0[1];1])/U_begin;
//U_heng即是△u2 0])/U_begin;
//U_zong即是δu2 sqr(U_zong))/k;
double get_val(){
};
//支路首段功率計(jì)算函數(shù) double Uend,I2;Uend=k*U_end;I2=(sqr(S_end[0])+sqr(S_end[1]-sqrS_begin[0]=S_end[0]+I2*X[0]+S0[0]S_begin[1]=S_end[1]+I2*X[1]+S0[1]
//支路末端電壓計(jì)算函數(shù) double p_begin,q_begin;p_begin=S_begin[0]-S0[0];q_begin=S_begin[1]+sqr(U_begin)*U_heng=(p_begin*X[0]+q_begin*X[U_zong=(p_begin*X[1]-q_begin*X[U_end=sqrt(sqr(U_begin-U_heng)+U[0]=U_heng;U[1]=U_zong;};
//返回支路編號(hào) if(this==0){return-1;}else{ if(val>0&&val<100){return val;} else return-1;}
double get_Uend(){
//返回支路末端電壓
return U_end;};
double get_Ubegin(){
//返回支路首段電壓
return U_begin;};
double get_Pbegin(){
//返回支路首段有功
return S_begin[0];};
double get_Pend(){
//返回支路末端有功
return S_end[0];};
double get_Qbegin(){
//返回支路首段無(wú)功
return S_begin[1];};
double get_Qend(){
//返回支路末端無(wú)功
return S_end[1];};
double get_Pcost(){
//返回支路有功損耗
return S_begin[0]-S_end[0];};
double get_Qcost(){
//返回支路無(wú)功損耗
return S_begin[1]-S_end[1];};line_part *get_lchild(){
//返回支路無(wú)功損耗
return lchild;};line_part *get_rchild(){
//返回支路無(wú)功損耗
return rchild;};};
void pass_U(line_part *a,line_part *b,line_part *c){(*c).U_begin=(*a).U_end;(*b).U_begin=(*a).U_end;};void pass_w(line_part *a,line_part *b,line_part *c){(*a).S_end[0]=(*b).S_begin[0]+(*c).S_begin[0]+(*a).S_org[0];(*a).S_end[1]=(*b).S_begin[1]+(*c).S_begin[1]+(*a).S_org[1];};void pass_U2(line_part *a,line_part *b){(*b).U_begin=(*a).U_end;};void pass_w2(line_part *a,line_part *b){(*a).S_end[0]=(*b).S_begin[0]+(*a).S_org[0];(*a).S_end[1]=(*b).S_begin[1]+(*a).S_org[1];};
class BinTree{ public:
friend void pass_U(line_part*,line_part*,line_part*);
//電壓傳遞函數(shù)
pass_w(line_part*,line_part*,line_part*);
line_part(0,0,0,0,0,0,0,0,0,0,0);root = aa;}
vall,double u_end=0,double u_begin=0,double r=0, Pe=0,double Xe=0, P0=0,double Q0=0){ egin,r,x,b,Pe,Xe,K,P0,Q0);
private:
*&t,double vall,double u_end,double u_begin,double r, Pe,double Xe, Q0);
};
friend void //功率傳遞函數(shù) BinTree(){line_part *aa=new line_part *Getroot(){return root;} void insertline_part(double
double x=0,double b=0,double
double K=0,double insertline_part(root,vall,u_end,u_b} void PreOrder(){PreOrder(root);};void PostOrder(){PostOrder(root);};void display(){display(root);};line_part *root;void insertline_part(line_part
double x,double b,double
double K,double P0,double void PreOrder(line_part *&t);void PostOrder(line_part *t);void display(line_part *&t);
void BinTree::insertline_part(line_part *&t, double vall,double u_end=0,double u_begin=0,double r=0,double x=0,double b=0,double Pe=0,double Xe=0,double K=0,double P0=0,double Q0=0){
//插入節(jié)點(diǎn)
double ass=t->get_val();if(t==0||t->get_val()<=0){
t=new line_part(vall,u_end,u_begin,r,x,b,Pe,Xe,K,P0,Q0);} else if(vall
insertline_part(t->lchild, vall,u_end,u_begin,r,x,b,Pe,Xe,K,P0,Q0);} else {
insertline_part(t->rchild, vall,u_end,u_begin,r,x,b,Pe,Xe,K,P0,Q0);} };/////////////////////////////////////////////////////////////////////////////////////////////////////////////// void BinTree::display(line_part *&t){
if(t->get_val()>0&&t->get_val()<100){
display(t->lchild);
display(t->rchild);
ofstream outfile1;
outfile1.open(“e:data.txt”,ios::ate);
p_cost_all +=t->get_Pcost();
double U;
// 計(jì)算并存放各個(gè)節(jié)點(diǎn)的電壓相角(始端為零)
U=atan2(t->U[1],(t->get_Ubegin()-t->U[0]))/3.1415926*180;
outfile1<<“支路”<
”<
outfile1<<“
”<<“首端電壓”<<“
”< outfile1<<“ ”<<“末端電壓”<<“ ”< //計(jì)算并存放各個(gè)支double U_cost; //計(jì)算并存放各個(gè)支路的電壓損耗 U_cost=t->get_Ubegin()-t->get_Uend(); outfile1<<“ ”<<“電壓損耗”<<“ outfile1<<” “<<”始端有功“<<” 首端電壓 outfile1<<“ ”<<“始端無(wú)功”<<“ 路的末端電壓 outfile1<<” “<<”末端有功“<<” 首端電壓 outfile1<<“ ”<<“末端無(wú)功”<<“ 路的末端電壓 double P_cost; 的有功損耗 P_cost=t->get_Pcost(); outfile1<<” “<<”有功損耗“<<” double Q_cost; 的無(wú)功損耗 Q_cost=t->get_Qcost(); outfile1<<“ ”<<“無(wú)功損耗”<<“ outfile1.close(); ”< //計(jì)算并存放各個(gè)支“< //計(jì)算并存放各個(gè)支 //計(jì)算并存放各個(gè)支路 “< //計(jì)算并存放各個(gè)支路 ”< };///////////////////////////////////////////////////////////////////////////////////////////////////////////////// void BinTree::PreOrder(line_part *&t){ //先序遍歷二叉樹(shù)修改電壓 0) get_lchild()->get_val()<100) get_rchild()->get_val()<100) get_rchild()->get_val()<100) if(t->get_val()>0&&t->get_val()<10{ if(t->get_lchild()->get_val()>0&&t-> { if(t->get_rchild()->get_val()>0&&t-> { t->Uend(); pass_U(t,t->lchild,t->rchild); t->lchild->Uend(); t->rchild->Uend(); } else{ t->Uend(); pass_U2(t,t->lchild); t->lchild->Uend();} } else { if(t->get_rchild()->get_val()>0&&t-> { t->Uend(); pass_U2(t,t->rchild); t->rchild->Uend(); } else{} } PreOrder(t->lchild);PreOrder(t->rchild); } };void BinTree::PostOrder(line_part *t){ //后序遍歷二叉樹(shù)修改潮流 if(t->get_val()>0&&t->get_val()<100) get_lchild()->get_val()<100) get_rchild()->get_val()<100) get_rchild()->get_val()<100) { PostOrder(t->lchild);PostOrder(t->rchild);if(t->get_lchild()->get_val()>0&&t-> { if(t->get_rchild()->get_val()>0&&t-> { t->lchild->Sbegin(); t->rchild->Sbegin(); pass_w(t,t->lchild,t->rchild); t->Sbegin(); } else{ t->lchild->Sbegin(); pass_w2(t,t->lchild); t->Sbegin();} } else { if(t->get_rchild()->get_val()>0&&t-> { t->rchild->Sbegin(); pass_w2(t,t->rchild); t->Sbegin(); } else{} }; void main(){ ofstream outfile; //輸入數(shù)據(jù)流定義 infile>>a; cout<<“節(jié)點(diǎn)個(gè)數(shù) ”< const int M(a); 量 double *A=new double[10*M];支路數(shù)據(jù)數(shù)組 while(l<11*M){ } } //輸出數(shù)據(jù)流定義 outfile.open(“e:data.txt”);outfile.clear();outfile.close();ifstream infile;infile.open(“e:input.txt”); int a;int l(0);char b; //支路節(jié)點(diǎn)數(shù)常 //輸入流輸入各 infile>>A[l]; infile.get(b);l++;};outfile.open(“e:data.txt”,ios::ate);outfile<<“節(jié)點(diǎn)個(gè)數(shù) ”< i=0;i *i+1],A[11*i+2],A[11*i+3],A[11*i+4],*i+8],A[11*i+9],A[11*i+10]); 如下“< outfile.close(); BinTree elec;for(int //添加節(jié)點(diǎn) elec.insertline_part(A[11*i+0],A[11 A[11*i+5],A[11*i+6],A[11*i+7],A[11} for(i = 0;i<5;i++){ outfile.open(”e:data.txt“,ios::ate);outfile< outfile< elec.PostOrder(); elec.PreOrder();elec.display(); outfile.open(“e:data.txt”,ios::ate); “< ”< “< ”< outfile< line_part *ee=new line_part();ee=elec.Getroot(); double aa =ee->get_Pbegin(); outfile<<“全網(wǎng)的總電源有功 outfile.close(); outfile.open(”e:data.txt“,ios::ate);double bb;bb =aa-p_cost_all; outfile<<”全網(wǎng)的總負(fù)荷有功 outfile<<“全網(wǎng)的總有功損耗 double cc; cc = p_cost_all/aa*100; outfile<<”全網(wǎng)的網(wǎng)損率 outfile.close(); p_cost_all=0.0; } }; **************************************************************************************************************************************************************習(xí)題3-3 input: 3 2,35,38.5,1.2,2.4,0,3,2,1,0,0 1,35,35,1,2,0,5,3,1,0,0 3,35,35,2,4,0,2,3,1,0,0 習(xí)題3-4 Input: 最大負(fù)荷 2 1,110,118,8.5,20.5,0.000564,0,0,1,0,0 2,11,110,1.22,20.2,0,40,30,10,0.17,1.7 最小負(fù)荷 2 1,110,113,8.5,20.5,0.000564,0,0,1,0,0 2,11,110,1.22,20.2,0,20,15,10,0.17,1.7 科學(xué)技術(shù)學(xué)院 畢業(yè)設(shè)計(jì)(論文)開(kāi)題報(bào)告 題 目: 電力系統(tǒng)潮流分析計(jì)算機(jī)輔助設(shè)計(jì) 學(xué) 科 部: 信息學(xué)科部 專(zhuān) 業(yè): 電氣工程及其自動(dòng)化 班 級(jí): 電氣082班 學(xué) 號(hào): 7022808070 姓 名: 黃義軍 指導(dǎo)教師: 劉愛(ài)國(guó) 填表日期: 2011 年 月 日 一、選題的依據(jù)及意義: 電力系統(tǒng)潮流計(jì)算是研究電力系統(tǒng)穩(wěn)態(tài)運(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ì)算和故障分析的基礎(chǔ)。 潮流計(jì)算經(jīng)歷了一個(gè)由手工, 利用交、直流計(jì)算臺(tái)到應(yīng)用數(shù)字電子計(jì)算機(jī)的發(fā)展過(guò)程?,F(xiàn)在的潮流算法都以計(jì)算機(jī)的應(yīng)用為前提。 利用電子計(jì)算機(jī)進(jìn)行潮流計(jì)算從20世紀(jì)50年代中期就已經(jīng)開(kāi)始。此后,潮流計(jì)算曾采用了各種不同的方法,這些方法的發(fā)展主要是圍繞著對(duì)潮流計(jì)算的一些基本要求進(jìn)行的。一般要滿足四個(gè)基本要求: a)可靠收斂 b)計(jì)算速度快 c)使用方便靈活 d)內(nèi)存占用量少 它們也是對(duì)潮流算法進(jìn)行評(píng)價(jià)的主要依據(jù)。 在電力系統(tǒng)運(yùn)行方式和規(guī)劃方案的研究中,都需要進(jìn)行潮流計(jì)算以比較運(yùn)行方式或規(guī)劃供電方案的可行性、可靠性和經(jīng)濟(jì)性。同時(shí),為了實(shí)時(shí)監(jiān)控電力系統(tǒng)的運(yùn)行狀態(tài),也需要進(jìn)行大量而快速的潮流計(jì)算。因此,潮流計(jì)算是電力系統(tǒng)中應(yīng)用最廣泛、最基本和最重要的一種電氣運(yùn)算。在系統(tǒng)規(guī)劃設(shè)計(jì)和安排系統(tǒng)的運(yùn)行方式時(shí),采用離線潮流計(jì)算;在電力系統(tǒng)運(yùn)行狀態(tài)的實(shí)時(shí)監(jiān)控中,則采用在線潮流計(jì)算。 二、國(guó)內(nèi)外研究現(xiàn)狀及發(fā)展趨勢(shì)(含文獻(xiàn)綜述): 在用數(shù)字計(jì)算機(jī)求解電力系統(tǒng)潮流問(wèn)題的開(kāi)始階段,人們普遍采用以節(jié)點(diǎn)導(dǎo)納矩陣為基礎(chǔ)的高斯-賽德?tīng)柕ǎㄒ幌潞?jiǎn)稱(chēng)導(dǎo)納法)。這個(gè)方法的原理比較簡(jiǎn)單,要求的數(shù)字計(jì)算機(jī)的內(nèi)存量也比較小,適應(yīng)當(dāng)時(shí)的電子數(shù)字計(jì)算機(jī)制作水平和電力系統(tǒng)理論水平,于是電力系統(tǒng)計(jì)算人員轉(zhuǎn)向以阻抗矩陣為主的逐次代入法(以下簡(jiǎn)稱(chēng)阻抗法)。 20世紀(jì)60年代初,數(shù)字計(jì)算機(jī)已經(jīng)發(fā)展到第二代,計(jì)算機(jī)的內(nèi)存和計(jì)算速度發(fā)生了很大的飛躍,從而為阻抗法的采用創(chuàng)造了條件。阻抗矩陣是滿矩陣,阻抗法要求計(jì)算機(jī)儲(chǔ)存表征系統(tǒng)接線和參數(shù)的阻抗矩陣。這就需要較大的內(nèi)存量。而且阻抗法每迭代一次都要求順次取阻抗矩陣中的每一個(gè)元素進(jìn)行計(jì)算,因此,每次迭代的計(jì)算量很大。 阻抗法改善了電力系統(tǒng)潮流計(jì)算問(wèn)題的收斂性,解決了導(dǎo)納法無(wú)法解決的一些系統(tǒng)的潮流計(jì)算,在當(dāng)時(shí)獲得了廣泛的應(yīng)用,曾為我國(guó)電力系統(tǒng)設(shè)計(jì)、運(yùn)行和研究作出了很大的貢獻(xiàn)。但是,阻抗法的主要缺點(diǎn)就是占用計(jì)算機(jī)的內(nèi)存很大,每次迭代的計(jì)算量很大。當(dāng)系統(tǒng)不斷擴(kuò)大時(shí),這些缺點(diǎn)就更加突出。為了克服阻抗法在內(nèi)存和速度方面的缺點(diǎn),后來(lái)發(fā)展了以阻抗矩陣為基礎(chǔ)的分塊阻抗法。這個(gè)方法把一個(gè)大系統(tǒng)分割為幾個(gè)小的地區(qū)系統(tǒng),在計(jì)算機(jī)內(nèi)只需存儲(chǔ)各個(gè)地區(qū)系統(tǒng)的阻抗矩陣及它們之間的聯(lián)絡(luò)線的阻抗,這樣不僅大幅度的節(jié)省了內(nèi)存容量,同時(shí)也提高了計(jì)算速度。 克服阻抗法缺點(diǎn)的另一途徑是采用牛頓-拉夫遜法(以下簡(jiǎn)稱(chēng)牛頓法)。牛頓法是數(shù)學(xué)中求解非線性方程式的典型方法,有較好的收斂性。解決電力系統(tǒng)潮流計(jì)算問(wèn)題是以導(dǎo)納矩陣為基礎(chǔ)的,因此,只要在迭代過(guò)程中盡可能保持方程式系數(shù)矩陣的稀疏性,就可以大大提高牛頓潮流程序的計(jì)算效率。自從20世紀(jì)60年代中期采用了最佳順序消去法以后,牛頓法在收斂性、內(nèi)存要求、計(jì)算速度方面都超過(guò)了阻抗法,成為直到目前仍被廣泛采用的方法。 在牛頓法的基礎(chǔ)上,根據(jù)電力系統(tǒng)的特點(diǎn),抓住主要矛盾,對(duì)純數(shù)學(xué)的牛頓法進(jìn)行了改造,得到了P-Q分解法。P-Q分解法在計(jì)算速度方面有顯著的提高,迅速得到了推廣。 牛頓法的特點(diǎn)是將非線性方程線性化。20世紀(jì)70年代后期,有人提出采用更精確的模型,即將泰勒級(jí)數(shù)的高階項(xiàng)也包括進(jìn)來(lái),希望以此提高算法的性能,這便產(chǎn)生了保留非線性的潮流算法。另外,為了解決病態(tài)潮流計(jì)算,出現(xiàn)了將潮流計(jì)算表示為一個(gè)無(wú)約束非線性規(guī)劃問(wèn)題的模型,即非線性規(guī)劃潮流算法。 近20多年來(lái),潮流算法的研究仍然非常活躍,但是大多數(shù)研究都是圍繞改進(jìn)牛頓法和P-Q分解法進(jìn)行的。此外,隨著人工智能理論的發(fā)展,遺傳算法、人工神經(jīng)網(wǎng)絡(luò)、模糊算法也逐漸被引入潮流計(jì)算。但是,到目前為止這些新的模型和算法還不能取代牛頓法和P-Q分解法的地位。由于電力系統(tǒng)規(guī)模的不斷擴(kuò)大,對(duì)計(jì)算速度的要求不斷提高,計(jì)算機(jī)的并行計(jì)算技術(shù)也將在潮流計(jì)算中得到廣泛的應(yīng)用,成為重要的研究領(lǐng)域。 三、本課題研究?jī)?nèi)容 1.熟悉電力系統(tǒng)潮流計(jì)算的相關(guān)理論。 2.在綜合分析各種電力系統(tǒng)特點(diǎn)的基礎(chǔ)上,運(yùn)用所學(xué)專(zhuān)業(yè)知識(shí),提出一種合理高效的潮流計(jì)算算法。 3.熟練運(yùn)用程序設(shè)計(jì)語(yǔ)言如C語(yǔ)言。 4.通過(guò)軟件編程實(shí)現(xiàn)所提出的算法,并通過(guò)典型系統(tǒng)進(jìn)行驗(yàn)證。 四、本課題研究方案 1、確定一種計(jì)算方法,如牛頓-拉夫遜法。 2、結(jié)合C語(yǔ)言,編寫(xiě)一套適用的程序完成潮流計(jì)算。 3、選取一典型模型進(jìn)行驗(yàn)證,試驗(yàn)程序是否可靠。 五、研究目標(biāo)、主要特色及工作進(jìn)度: 研究目標(biāo):提出一種合理高效的潮流計(jì)算算法,在保證電力系統(tǒng)供電可靠性和電能質(zhì)量的前提下,盡可能提高潮流計(jì)算的效率,降低人力資源消耗。從而提高電力系統(tǒng)運(yùn)行的經(jīng)濟(jì)性。進(jìn)度安排: 第1周: 收集相關(guān)參考資料和相關(guān)文獻(xiàn)。 第2周: 總結(jié)整理資料,熟習(xí)課題。 第3周: 提出初步設(shè)計(jì)方案。 第4周: 熟悉電力系統(tǒng)潮流計(jì)算的相關(guān)理論及計(jì)算機(jī)語(yǔ)言。 第5周: 實(shí)習(xí) 第6周: 寫(xiě)實(shí)習(xí)報(bào)告 第7周: 確定一種計(jì)算方法。 第8周: 提出一種合理的程序設(shè)計(jì)方法。 第9周: 畫(huà)出設(shè)計(jì)程序整體流程圖。 第10周: 將整體程序模塊化,并定義出每個(gè)模塊的功能。 六、參考文獻(xiàn): [1] Tankut Yalcinoz, Onur Ko¨ ksoy.A multiobjective optimization method to environmental economic diaspatch.2007,29(1):42-50 [2] X.S.Han,H.B.Gooi.Effective economic dispatch model and algorithm.Electrical Power and Energy Systems.2007, 29(1):113-120 [3] 何仰贊,溫增銀.電力系統(tǒng)分析.武漢:華中科技大學(xué)出版社,2002 [4] 王錫凡,方萬(wàn)良,杜正春.現(xiàn)代電力系統(tǒng)分析.北京:科學(xué)出版社,2003 [5] 宋文南,李樹(shù)鴻,張堯.電力系統(tǒng)潮流計(jì)算.天津:天津大學(xué)出版社,1990 [6] 王晶,翁國(guó)慶,張有冰.電力系統(tǒng)的MATLAB6/SIMULINK仿真與應(yīng)用.西安:西安電子科技大學(xué)出版社,2008.[7] 王祖佑.電力系統(tǒng)穩(wěn)態(tài)運(yùn)行計(jì)算機(jī)分析.北京:水利電力出版社,1987.[8] 周全仁,張清益.電網(wǎng)計(jì)算與程序設(shè)計(jì).長(zhǎng)沙:湖南科學(xué)技術(shù)出版社,1983.[9] 許主平,周少武,鄒軍安。電力系統(tǒng)計(jì)算機(jī)輔助設(shè)計(jì)。北京:中國(guó)電力出版社,2001。 南 京 理 工 大 學(xué) 《電力系統(tǒng)穩(wěn)態(tài)分析》 課程報(bào)告 姓名 XX 學(xué) 號(hào): 5*** 自動(dòng)化學(xué)院 電氣工程 基于牛頓-拉夫遜法的潮流計(jì)算例題編程報(bào)學(xué)院(系): 專(zhuān) 業(yè): 題 目: 任課教師 碩士導(dǎo)師 告 楊偉 XX 2015年6月10號(hào) 基于牛頓-拉夫遜法的潮流計(jì)算例題編程報(bào)告 摘要:電力系統(tǒng)潮流計(jì)算的目的在于:確定電力系統(tǒng)的運(yùn)行方式、檢查系統(tǒng)中各元件是否過(guò)壓或者過(guò)載、為電力系統(tǒng)繼電保護(hù)的整定提供依據(jù)、為電力系統(tǒng)的穩(wěn)定計(jì)算提供初值、為電力系統(tǒng)規(guī)劃和經(jīng)濟(jì)運(yùn)行提供分析的基礎(chǔ)。潮流計(jì)算的計(jì)算機(jī)算法包含高斯—賽德?tīng)柕?、牛頓-拉夫遜法和P—Q分解法等,其中牛拉法計(jì)算原理較簡(jiǎn)單、計(jì)算過(guò)程也不復(fù)雜,而且由于人們引入泰勒級(jí)數(shù)和非線性代數(shù)方程等在算法里從而進(jìn)一步提高了算法的收斂性和計(jì)算速度。同時(shí)基于MATLAB的計(jì)算機(jī)算法以雙精度類(lèi)型進(jìn)行數(shù)據(jù)的存儲(chǔ)和運(yùn)算, 數(shù)據(jù)精確度高,能進(jìn)行潮流計(jì)算中的各種矩陣運(yùn)算,使得傳統(tǒng)潮流計(jì)算方法更加優(yōu)化。 一 研究?jī)?nèi)容 通過(guò)一道例題來(lái)認(rèn)真分析牛頓-拉夫遜法的原理和方法(采用極坐標(biāo)形式的牛拉法),同時(shí)掌握潮流計(jì)算計(jì)算機(jī)算法的相關(guān)知識(shí),能看懂并初步使用MATLAB軟件進(jìn)行編程,培養(yǎng)自己電力系統(tǒng)潮流計(jì)算機(jī)算法編程能力。 例題如下:用牛頓-拉夫遜法計(jì)算下圖所示系統(tǒng)的潮流分布,其中系統(tǒng)中5為平衡節(jié)點(diǎn),節(jié)點(diǎn)5電壓保持U=1.05為定值,其他四個(gè)節(jié)點(diǎn)分別為PQ節(jié)點(diǎn),給定的注入功率如圖所示。計(jì)算精度要求各節(jié)點(diǎn)電壓修正量不大于10-6。 二 牛頓-拉夫遜法潮流計(jì)算 1 基本原理 牛頓法是取近似解x(k)之后,在這個(gè)基礎(chǔ)上,找到比x(k)更接近的方程的根,一步步地迭代,找到盡可能接近方程根的近似根。牛頓迭代法其最大優(yōu)點(diǎn)是在方程f(x)=0的單根附近時(shí)誤差將呈平方減少,而且該法還可以用來(lái)求方程的重根、復(fù)根。電力系統(tǒng)潮流計(jì)算,一般來(lái)說(shuō),各個(gè)母線所供負(fù)荷的功率是已知的,各個(gè)節(jié)點(diǎn)的電壓是未知的(平衡節(jié)點(diǎn)外)可以根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)形成節(jié)點(diǎn)導(dǎo)納矩陣,然后由節(jié)點(diǎn)導(dǎo)納矩陣列寫(xiě)功率方程,由于功率方程里功率是已知的,電壓的幅值和相角是未知的,這樣潮流計(jì)算的問(wèn)題就轉(zhuǎn)化為求解非線性方程組的問(wèn)題了。為了便于用迭代法解方程組,需要將上述功率方程改寫(xiě)成功率平衡方程,并對(duì)功率平衡方程求偏導(dǎo),得出對(duì)應(yīng)的雅可比矩陣,給未知節(jié)點(diǎn)賦電壓初值,將初值帶入功率平衡方程,得到功率不平衡量,這樣由功率不平衡量、雅可比矩陣、節(jié)點(diǎn)電壓不平衡量(未知的)構(gòu)成了誤差方程,解誤差方程,得到節(jié)點(diǎn)電壓不平衡量,節(jié)點(diǎn)電壓加上節(jié)點(diǎn)電壓不平衡量構(gòu)成節(jié)點(diǎn)電壓新的初值,將新的初值帶入原來(lái)的功率平衡方程,并重新形成雅可比矩陣,然后計(jì)算新的電壓不平衡量,這樣不斷迭代,不斷修正,一般迭代三到五次就能收斂。2 基本步驟和設(shè)計(jì)流程圖 形成了雅克比矩陣并建立了修正方程式,運(yùn)用牛頓-拉夫遜法計(jì)算潮流的核心問(wèn)題已經(jīng)解決,已有可能列出基本計(jì)算步驟并編制流程圖。由課本總結(jié)基本步驟如下: 1)形成節(jié)點(diǎn)導(dǎo)納矩陣Y; 2)設(shè)各節(jié)點(diǎn)電壓的初值,如果是直角坐標(biāo)的話設(shè)電壓的實(shí)部e和虛部f;如果是極坐標(biāo)的話則設(shè)電壓的幅值U和相角a; 3)將各個(gè)節(jié)點(diǎn)電壓的初值代入公式求修正方程中的不平衡量以及修正方程的系數(shù)矩陣的雅克比矩陣; 4)解修正方程式,求各節(jié)點(diǎn)電壓的變化量,即修正量; 5)計(jì)算各個(gè)節(jié)點(diǎn)電壓的新值,即修正后的值; 6)利用新值從第(3)步開(kāi)始進(jìn)入下一次迭代,直至達(dá)到精度退出循環(huán); 7)計(jì)算平衡節(jié)點(diǎn)的功率和線路功率,輸出最后計(jì)算結(jié)果; ① 公式推導(dǎo) ② 流程圖 三 matlab編程代碼 clear; % 如圖所示1,2,3,4為PQ節(jié)點(diǎn),5為平衡節(jié)點(diǎn) y=0; % 輸入原始數(shù)據(jù),求節(jié)點(diǎn)導(dǎo)納矩陣 y(1,2)=1/(0.07+0.21j); y(4,5)=0;y(1,3)=1/(0.06+0.18j); y(1,4)=1/(0.05+0.10j); y(1,5)=1/(0.04+0.12j); y(2,3)=1/(0.05+0.10j); y(2,5)=1/(0.08+0.24j); y(3,4)=1/(0.06+0.18j); for i=1:5 for j=i:5 y(j,i)=y(i,j); end end Y=0; % 求節(jié)點(diǎn)導(dǎo)納矩陣中互導(dǎo)納 for i=1:5 for j=1:5 if i~=j Y(i,j)=-y(i,j); end end end % 求節(jié)點(diǎn)導(dǎo)納矩陣中自導(dǎo)納 for i=1:5 Y(i,i)=sum(y(i,:)); end Y % Y為導(dǎo)納矩陣 G=real(Y); B=imag(Y);% 輸入原始節(jié)點(diǎn)的給定注入功率 S(1)=0.3+0.3j; S(2)=-0.5-0.15j; S(3)=-0.6-0.25j; S(4)=-0.7-0.2j; S(5)=0; P=real(S); Q=imag(S); % 賦初值,U為節(jié)點(diǎn)電壓的幅值,a為節(jié)點(diǎn)電壓的相位角 U=ones(1,5); U(5)=1.05; a=zeros(1,5); x1=ones(8,1); x2=ones(8,1); k=0; while max(x2)>1e-6 for i=1:4 for j=1:4 H(i,j)=0; N(i,j)=0; M(i,j)=0; L(i,j)=0; oP(i)=0; oQ(i)=0; end end % 求有功、無(wú)功功率不平衡量 for i=1:4 for j=1:5 oP(i)=oP(i)-U(i)*U(j)*(G(i,j)*cos(a(i)-a(j))+B(i,j)*sin(a(i)-a(j))); oQ(i)=oQ(i)-U(i)*U(j)*(G(i,j)*sin(a(i)-a(j))-B(i,j)*cos(a(i)-a(j))); end oP(i)=oP(i)+P(i); oQ(i)=oQ(i)+Q(i); end x2=[oP,oQ]'; % x2為不平衡量列向量 % 求雅克比矩陣 % 當(dāng)i~=j時(shí),求H,N,M,L for i=1:4 for j=1:4 if i~=j H(i,j)=-U(i)*U(j)*(G(i,j)*sin(a(i)-a(j))-B(i,j)*cos(a(i)-a(j))); N(i,j)=-U(i)*U(j)*(G(i,j)*cos(a(i)-a(j))+B(i,j)*sin(a(i)-a(j))); L(i,j)=H(i,j); M(i,j)=-N(i,j); end end end % 當(dāng)i=j時(shí),求H,N,M,L for i=1:4 for j=1:5 if i~=j H(i,i)=H(i,i)+U(i)*U(j)*(G(i,j)*sin(a(i)-a(j))-B(i,j)*cos(a(i)-a(j)));N(i,i)=N(i,i)-U(i)*U(j)*(G(i,j)*cos(a(i)-a(j))+B(i,j)*sin(a(i)-a(j))); M(i,i)=M(i,i)-U(i)*U(j)*(G(i,j)*cos(a(i)-a(j))+B(i,j)*sin(a(i)-a(j))); L(i,i)=L(i,i)-U(i)*U(j)*(G(i,j)*sin(a(i)-a(j))-B(i,j)*cos(a(i)-a(j))) end end N(i,i)=N(i,i)-2*(U(i))^2*G(i,i); L(i,i)=L(i,i)+2*(U(i))^2*B(i,i); end J=[H,N;M,L] % J為雅克比矩陣 x1=-((inv(J))*x2); % x1為所求△x的列向量 % 求節(jié)點(diǎn)電壓新值,準(zhǔn)備下一次迭代 for i=1:4 oa(i)=x1(i); oU(i)=x1(i+4)*U(i); end for i=1:4 a(i)=a(i)+oa(i); U(i)=U(i)+oU(i); end k=k+1; end k,U,a % 求節(jié)點(diǎn)注入功率 i=5; for j=1:5 P(i)=U(i)*U(j)*(G(i,j)*cos(a(i)-a(j))+B(i,j)*sin(a(i)-a(j)))+P(i); Q(i)=U(i)*U(j)*(G(i,j)*sin(a(i)-a(j))-B(i,j)*cos(a(i)-a(j)))+Q(i); end S(5)=P(5)+Q(5)*sqrt(-1); S % 求節(jié)點(diǎn)注入電流 I=Y*U' 四 運(yùn)行結(jié)果 節(jié)點(diǎn)導(dǎo)納矩陣 經(jīng)過(guò)五次迭代后的雅克比矩陣 迭代次數(shù)以及節(jié)點(diǎn)電壓的幅值和相角(弧度數(shù)) 節(jié)點(diǎn)注入功率和電流 五 結(jié)果分析 在這次學(xué)習(xí)和實(shí)際操作過(guò)程里:首先,對(duì)電力系統(tǒng)分析中潮流計(jì)算的部分特別是潮流計(jì)算的計(jì)算機(jī)算法中的牛頓-拉夫遜法進(jìn)行深入的研讀,弄明白了其原理、計(jì)算過(guò)程、公式推導(dǎo)以及設(shè)計(jì)流程。牛頓-拉夫遜法是求解非線性方程的迭代過(guò)程,其計(jì)算公式為?F?J?X,式中J為所求函數(shù)的雅可比矩陣;?X為需要求的修正值;?F為不平衡的列向量。利用x(*)=x(k+1)+?X(k+1)進(jìn)行多次迭代,通過(guò)迭代判據(jù)得到所需要的精度值即準(zhǔn)確值x(*)。六 結(jié)論 通過(guò)這個(gè)任務(wù),自己在matlab編程,潮流計(jì)算,word文檔的編輯功能等方面均有提高,但也暴漏出一些問(wèn)題:理論知識(shí)儲(chǔ)備不足,對(duì)matlab的性能和特點(diǎn)還不能有一個(gè)全面的把握,對(duì)word軟件也不是很熟練,相信通過(guò)以后的學(xué)習(xí)能彌補(bǔ)這些不足,達(dá)到一個(gè)新的層次。第四篇:潮流計(jì)算畢業(yè)論文
第五篇:電力系統(tǒng)潮流計(jì)算