自動發(fā)電控制軟硬件系統(tǒng)設計(部分)
先掃個盲,在電力系統(tǒng)中,頻率質(zhì)量對社會和電力企業(yè)的影響非常重大。眾所周知,電網(wǎng)頻率是電能質(zhì)量三大指標之一,電網(wǎng)的頻率反映了發(fā)電有功功率和負荷之間的平衡關系,是電力系統(tǒng)運行的重要控制參數(shù),與廣大用戶的電力設備以及發(fā)供電設備本身的安全和效率有著密切的關系。
(1) 頻率波動對發(fā)電廠設備的影響:頻率的波動可以造成水輪機導葉破壞嚴重,調(diào)速器使用壽命的下降等問題。
?。?) 頻率波動對用戶設備的影響:
盡管許多用戶設備能在較寬的頻率范圍內(nèi)正常工作,但隨著科學技術(shù)的發(fā)展,一些新的電子設備及精密加工設備對電網(wǎng)頻率提出了更高的要求,頻率的波動,會使產(chǎn)品質(zhì)量下降或設備損壞。
(3) 頻率質(zhì)量改善對經(jīng)濟效益的影響:
頻率偏差反映了發(fā)電與負荷間的不平衡,特別是頻率偏高,反映發(fā)電量超出了用電的需求量,造成了用戶電費的額外支出,以及能源的浪費。頻率質(zhì)量改善避免了這種能源的浪費。
針對這些問題,出路只有一個,即采用自動發(fā)電控制(AGC)的技術(shù)手段,對電力系統(tǒng)中的大部分發(fā)電機組,根據(jù)其本身的調(diào)節(jié)性能及在電網(wǎng)中的地位,分類進行控制,自動地維持電力系統(tǒng)中發(fā)供電功率的平衡,從而保證電力系統(tǒng)頻率的質(zhì)量。
我負責其中的一個小模塊的代碼設計,先講一下硬件系統(tǒng):
負荷優(yōu)化控制系統(tǒng)(應用工作站)包括了AGC和AVC的聯(lián)合控制功能。該系統(tǒng)通過TCP/IP網(wǎng)絡接入電廠的ABB ADVANT控制系統(tǒng)。
應用工作站由一臺PC機和OLC(AGC/AVC)軟件組成。應用工作站中的軟件安裝AGC/AVC軟件。應用工作站使用Windows操作系統(tǒng)并通過TCP/IP網(wǎng)絡和11LPU及調(diào)度中心通信。
應用工作站技術(shù)數(shù)據(jù)如下:
19英寸機架安裝于11LPU柜內(nèi)
繼電保護:ADI 公司生產(chǎn)的ADF7012: Multichannel ISM Band FSK/GFSK/OOK/GOOK/ASK Transmitter
1 x Pentium 4, 1.20 GHz
512 MB PC133 SDRAM
1 x 20 GB EIDE-Disk, ATA-100
1 x 10/100 Mbps 以太網(wǎng)適配器
15寸顯示器, 鍵盤, 鼠標
Windows 2000操作系統(tǒng)
在ADVANT控制器11LPU(AC450)將增加一塊TCP/IP接口板用于與應用工作站通訊。該控制器被稱作應用控制器,用于電廠的公共應用比如模擬屏控制和AGC/AVC與Advant系統(tǒng)的通訊。
AGC系統(tǒng)實現(xiàn)的主要功能包括有:站內(nèi)總負荷設點控制,自動頻率控制,站內(nèi)調(diào)度曲線控制,省調(diào)總負荷設點控制,省調(diào)調(diào)度曲線控制。為了實現(xiàn)上述功能,本文作者對AGC進行模塊化編程,主要涉及以下幾個方面:
?。?)計算機組最小及最大功率以避免跨越震動區(qū),核心程序如下:
void SetUnitVibMinMax(int UnitPos)
{
int PowerZone,UnitType;
int i1;
float min_var,max_var,LL,HL,DX,UnitPower;
UnitType = UNIT[UnitPos].Type;
UnitPower = UNIT[UnitPos].XAP_Setp;
min_var = 0;
max_var = AGC_Unit_Data[UnitType].MaxPower;
LL = min_var;
HL = max_var;
DX = 0;
i1 = 0;
PowerZone = 0;
if ((UnitType》0) (UnitType《=MaxUnitTypes)) {
while ((i1《MaxVibZones) (PowerZone==0)) {
i1++;
if (AGC_Unit_Vibr[UnitType].Vibration[i1].Used==true) {
max_var = AGC_Unit_Vibr[UnitType].Vibration[i1].AP_Begin;
DX = (AGC_Unit_Vibr[UnitType].Vibration[i1].AP_End -
AGC_Unit_Vibr[UnitType].Vibration[i1].AP_Begin) / 2;
HL = AGC_Unit_Vibr[UnitType].Vibration[i1].AP_Begin + DX;
} else {
max_var = AGC_Unit_Data[UnitType].MaxPower;
HL = max_var;
}
if ((UnitPower》=LL) (UnitPower《=HL)) {
PowerZone = i1;
} else {
if (AGC_Unit_Vibr[UnitType].Vibration[i1].Used==true) {
min_var = AGC_Unit_Vibr[UnitType].Vibration[i1].AP_End;
LL = min_var - DX;
}
}
}
}
if (PowerZone==0) {
min_var = UNIT[UnitPos].XAP_MIN;
max_var = UNIT[UnitPos].XAP_MAX;
}
if (min_var《UNIT[UnitPos].XAP_MIN) min_var = UNIT[UnitPos].XAP_MIN;
if (max_var》UNIT[UnitPos].XAP_MAX) max_var = UNIT[UnitPos].XAP_MAX;
UNIT[UnitPos].XVibMinPow = min_var;
UNIT[UnitPos].XVibMaxPow = max_var;
}
評論