導航:首頁 > 源碼編譯 > sn2演算法

sn2演算法

發布時間:2022-04-04 04:58:08

㈠ 誰幫忙寫一個C++的prim和Kruskal演算法,我的圖的定義如下

void Kruskal(Edge E[],int n,int e)
{
int i,j,m1,m2,sn1,sn2,k;
int vset[MAXE];
for (i=0;i<n;i++) vset[i]=i; //初始化輔助數組
k=1; //k表示當前構造最小生成樹的第幾條邊,初值為1
j=0; //E中邊的下標,初值為0
while (k<n) //生成的邊數小於n時循環
{
m1=E[j].u;m2=E[j].v; //取一條邊的頭尾頂點
sn1=vset[m1];sn2=vset[m2]; //分別得到兩個頂點所屬的集合編號
if (sn1!=sn2) //兩頂點屬於不同的集合,該邊是最小生成樹的一條邊
{
printf(" (%d,%d):%d\n",m1,m2,E[j].w);
k++; //生成邊數增1
for (i=0;i<n;i++) //兩個集合統一編號
if (vset[i]==sn2) //集合編號為sn2的改為sn1
vset[i]=sn1;
}
j++; //掃描下一條邊
}
}
void prim(MGraph g,int v)
{
int lowcost[MAXV],min,n=g.vexnum;
int closest[MAXV],i,j,k;
for (i=0;i<n;i++) //給lowcost[]和closest[]置初值
{
lowcost[i]=g.edges[v][i];
closest[i]=v;
}
for (i=1;i<n;i++) //找出n-1個頂點
{
min=INF;
for (j=0;j<n;j++) //在(V-U)中找出離U最近的頂點k
if (lowcost[j]!=0 && lowcost[j]<min)
{
min=lowcost[j];k=j;
}
printf(" 邊(%d,%d)權為:%d\n",closest[k],k,min);
lowcost[k]=0; //標記k已經加入U
for (j=0;j<n;j++) //修改數組lowcost和closest
if (g.edges[k][j]!=0 && g.edges[k][j]<lowcost[j])
{
lowcost[j]=g.edges[k][j];closest[j]=k;
}
}
}

㈡ 急!數據結構最小生成樹prim演算法C語言實現

Kruskal演算法:
void Kruskal(Edge E[],int n,int e)
{
int i,j,m1,m2,sn1,sn2,k;
int vset[MAXE];
for (i=0;i<n;i++) vset[i]=i; //初始化輔助數組
k=1; //k表示當前構造最小生成樹的第幾條邊,初值為1
j=0; //E中邊的下標,初值為0
while (k<n) //生成的邊數小於n時循環
{
m1=E[j].u;m2=E[j].v; //取一條邊的頭尾頂點
sn1=vset[m1];sn2=vset[m2]; //分別得到兩個頂點所屬的集合編號
if (sn1!=sn2) //兩頂點屬於不同的集合,該邊是最小生成樹的一條邊
{
printf(" (%d,%d):%d/n",m1,m2,E[j].w);
k++; //生成邊數增1
for (i=0;i<n;i++) //兩個集合統一編號
if (vset[i]==sn2) //集合編號為sn2的改為sn1
vset[i]=sn1;
}
j++; //掃描下一條邊
}
}
Prim演算法:
void prim(MGraph g,int v)
{
int lowcost[MAXV],min,n=g.vexnum;
int closest[MAXV],i,j,k;
for (i=0;i<n;i++) //給lowcost[]和closest[]置初值
{
lowcost[i]=g.edges[v][i];
closest[i]=v;
}
for (i=1;i<n;i++) //找出n-1個頂點
{
min=INF;
for (j=0;j<n;j++) //在(V-U)中找出離U最近的頂點k
if (lowcost[j]!=0 && lowcost[j]<min)
{
min=lowcost[j];k=j;
}
printf(" 邊(%d,%d)權為:%d/n",closest[k],k,min);
lowcost[k]=0; //標記k已經加入U
for (j=0;j<n;j++) //修改數組lowcost和closest
if (g.edges[k][j]!=0 && g.edges[k][j]<lowcost[j])
{
lowcost[j]=g.edges[k][j];closest[j]=k;
}
}
}

㈢ 哪位高手幫我寫一個C語言的Prim和Kruskal演算法,有主函數調用可以調試的

void Kruskal(Edge E[],int n,int e)
{
int i,j,m1,m2,sn1,sn2,k;
int vset[MAXE];
for (i=0;i<n;i++) vset[i]=i; //初始化輔助數組
k=1; //k表示當前構造最小生成樹的第幾條邊,初值為1
j=0; //E中邊的下標,初值為0
while (k<n) //生成的邊數小於n時循環
{
m1=E[j].u;m2=E[j].v; //取一條邊的頭尾頂點
sn1=vset[m1];sn2=vset[m2]; //分別得到兩個頂點所屬的集合編號
if (sn1!=sn2) //兩頂點屬於不同的集合,該邊是最小生成樹的一條邊
{
printf(" (%d,%d):%d\n",m1,m2,E[j].w);
k++; //生成邊數增1
for (i=0;i<n;i++) //兩個集合統一編號
if (vset[i]==sn2) //集合編號為sn2的改為sn1
vset[i]=sn1;
}
j++; //掃描下一條邊
}
}
void prim(MGraph g,int v)
{
int lowcost[MAXV],min,n=g.vexnum;
int closest[MAXV],i,j,k;
for (i=0;i<n;i++) //給lowcost[]和closest[]置初值
{
lowcost[i]=g.edges[v][i];
closest[i]=v;
}
for (i=1;i<n;i++) //找出n-1個頂點
{
min=INF;
for (j=0;j<n;j++) //在(V-U)中找出離U最近的頂點k
if (lowcost[j]!=0 && lowcost[j]<min)
{
min=lowcost[j];k=j;
}
printf(" 邊(%d,%d)權為:%d\n",closest[k],k,min);
lowcost[k]=0; //標記k已經加入U
for (j=0;j<n;j++) //修改數組lowcost和closest
if (g.edges[k][j]!=0 && g.edges[k][j]<lowcost[j])
{
lowcost[j]=g.edges[k][j];closest[j]=k;
}
}
}

㈣ 克魯斯卡爾演算法找最小生成樹求幫忙解決

Kruskal演算法:
void Kruskal(Edge E[],int n,int e)
{
int i,j,m1,m2,sn1,sn2,k;
int vset[MAXE];
for (i=0;i<n;i++) vset[i]=i; //初始化輔助數組
k=1; //k表示當前構造最小生成樹的第幾條邊,初值為1
j=0; //E中邊的下標,初值為0
while (k<n) //生成的邊數小於n時循環
{
m1=E[j].u;m2=E[j].v; //取一條邊的頭尾頂點
sn1=vset[m1];sn2=vset[m2]; //分別得到兩個頂點所屬的集合編號
if (sn1!=sn2) //兩頂點屬於不同的集合,該邊是最小生成樹的一條邊
{
printf(" (%d,%d):%d/n",m1,m2,E[j].w);
k++; //生成邊數增1
for (i=0;i<n;i++) //兩個集合統一編號
if (vset[i]==sn2) //集合編號為sn2的改為sn1
vset[i]=sn1;
}
j++; //掃描下一條邊
}
}

㈤ 變壓器負載損耗計算方法

變壓器損耗計算公式 :

1、有功損耗:ΔP=P0+KTβ2PK

2、無功損耗:ΔQ=Q0+KTβ2QK

3、綜合功率損耗:ΔPZ=ΔP+KQΔK

Q0≈I0%SN,QK≈UK%SN

在工程計算中,我們設定電網電壓大小、波形恆定,這樣當某一台變壓器的空載損耗P0為一定值,其負載損耗PZ則與負荷平方成正比,即:

PZ=(S/SZ)2Pkn(1)

式(1)中,S—變壓器的實際負荷;

SZ—變壓器的額定容量;

Pkn—變壓器在額定電流下的短路損耗。

這樣,單台變壓器的總損耗為:

P=P0+PZ=P0+(S/SZ)2Pkn(2)

當兩台變壓器並列運行時,各變壓器的負載分配與該變壓器的額定容量成正比,與短路電壓成反比,即:

S=S1+S2(3)

S1:S2=(Sn1/Uk1):(Sn2/Uk2)(4)

式(4)中,S—總負荷;

Uk—變壓器的短路電壓。

這時兩台變壓器並列運行的總損耗Pb為:

Pb=P1+P2=PO1+PO2+(S1/Sn1)2Pkn1+(S2/Sn2)2Pkn2 (5)

將(3)式代入為:

Pb=PO1+PO2+[(Pkn1Uk22+Pkn2Uk12)/(Sn2Uk1+Sn1Uk2)2]S2(6)

式(6)中,P的單位為kW,S的單位為MVA。

(5)sn2演算法擴展閱讀:

上式計算時各參數的選擇條件:

1、取KT=1.05;

2、對城市電網和工業企業電網的6kV~10kV降壓變壓器取系統最小負荷時,其無功當量KQ=0.1kW/kvar;

3、變壓器平均負載系數,對於農用變壓器可取β=20%;對於工業企業,實行三班制,可取β=75%;

4、變壓器運行小時數T=8760h,最大負載損耗小時數:t=5500h;

5、變壓器空載損耗P0、額定負載損耗PK、I0%、UK%,見產品資料所示。

㈥ 用matlab求ln2的值,運用以下三種演算法,求和,程序過程。

>>N=100;
>>k=1:N;

%演算法1
>>SN1=sum((-1).^(k-1)./k)

SN1=

0.6882

%演算法2
>>SN1_1=SN1-(-1).^(N-1)./N;
>>SN1_2=SN1_1-(-1).^(N-2)./(N-1);
>>SN2=SN1-(SN1-SN1_1)^2/(SN1-2*SN1_1+SN1_2)

SN2=

0.6931

%演算法3
>>SN3=sum(1./(k.*2.^k))

SN3=

0.6931

㈦ 這道題的 摩爾吉布斯自由能變怎麼算的

摩爾吉布斯自由能演算法:

G = U − TS + pV = H − TS,

其中U是系統的內能,T是溫度(絕對溫度,K),S是熵,p是壓強,V是體積,H是焓。

吉布斯自由能的微分形式是:

dG = − SdT + Vdp + μdN,

其中μ是化學勢,也就是說每個粒子的平均吉布斯自由能等於化學勢。

(7)sn2演算法擴展閱讀:

吉布斯自由能隨溫度和壓強變化很大。為了求出非標准狀況下的吉布斯自由能,可以使用范特霍夫等溫公式:

ΔG = ΔG0 + RT·ln Q

其中,ΔG0是同一溫度、標准壓強下的吉布斯自由能,R是氣體常數,Q是反應熵。

溫度的變化在ΔG0的使用上表現出來,不同的溫度使用不同的ΔG0。非標准狀況的ΔG0需要通過定義式(即吉布斯等溫公式)計算。壓強或濃度的變化在Q的表達上表現出來。

㈧ 一個反應存在多個途徑怎麼算過渡態

3.過渡態相關問題
3.1 無過渡態的反應途徑(barrierless reaction pathways)
並非所有反應途徑都需要越過勢壘,這類反應在很低的溫度下就能發生,盲目找它們的過渡態是徒勞的。常見的包括自由基結合,比如甲基自由基結合為乙烷;自由基向烯烴加成,比如甲基自由基向乙烯加成成為丙基自由基;氣相離子向中性分子加成,比如叔碳陽離子向丙烯加成。等等。
3.2 Hammond-Leffler假設
過渡態在結構上一般會偏向反應物或者產物結構一邊。Hammond-Leffler假設對預測過渡態結構往哪個方向偏是很有用的,意思是反應過程中,如果兩個結構的能量差異不大,則它們的構型差異也不大。由此可知對於放熱反應,因為過渡態能量與反應物差異小,與產物差異大,故過渡態結構更偏向反應物,相反,吸熱反應的過渡態結構更偏向產物。所以初猜過渡態結構應考慮這一問題。
3.2 對稱性問題
如果已經明確地知道過渡態是什麼對稱性,而且對稱性高於平衡態對稱性,且可以確信在這個高對稱性下過渡態是能量最低點,則可以強行限制到這個對稱性之後進行幾何優化,幾何優化演算法比尋找過渡態演算法方法更可靠。比如F+CH3F-->FCH3+F這個SN2反應,過渡態就是傘形翻轉的一刻,恰為高對稱性的D3h點群,而反應路徑上的其它結構對稱性都比它低,所以在D3h點群條件下優化,得到的能量最低點就是過渡態。
如果過渡態對稱性不確定,則找過渡態計算的時候不宜設任何對稱性,否則若默認保持了平衡態下的對稱性,得到的此對稱下的過渡態並不是真正的過渡態,容易得到二階或高階鞍點。
3.3 溶劑效應
計算凝聚態條件下過渡態的性質,必須考慮溶劑效應,它明顯改變了勢能面。一般對過渡態的結構影響較小,但對能量影響很大。有時溶劑效應也會改變反應途徑,或產生氣相條件下沒有的勢壘。溶劑條件下,上述尋找過渡態的方法依然適用。應注意涉及到與溶劑產生氫鍵等強相互作用的情況,隱式溶劑模型是不適合的,需要用顯式溶劑考察它對過渡態的影響,即在輸入文件中明確表達出溶劑分子。
3.4 計算過渡態的建議流程
直接用高水平方法計算過渡態往往比較花時間,可以使用逐漸提高方法等級的方法加速這一過程,一般建議是:
1 執行低水平的計算找過渡態,如半經驗。
2 將第1步得到的過渡態作為初猜,用高級別的方法找過渡態。
3 在相同水平下對上一步找到的過渡態做振動分析,檢驗是否僅有一個虛頻,以及觀看其振動模式的動畫來考察振動方向是否連接反應物與產物結構。有必要時可以做IRC進一步檢驗。
4 為獲得更精確的過渡態能量,可使用更高等級方法比如含電子相關的方法計算能量。
4.內稟反應坐標(intrinsic reaction coordinate,IRC)
MEP指的是勢能面上,由一個點到達另一個點的能量最低的路徑,滿足最小作用原理。若質量權重坐標下的MEP連接的是反應物、過渡結構和產物,則稱為IRC。所謂質權坐標在笛卡兒坐標下即r(i,x)=sqrt(m(i))*R(i,x),m(i)為i原子質量,R(i,x)為i原子原始x方向坐標,同樣有r(i,y)、r(i,z)。IRC描述了原子核運動速度為無限小時,質權坐標下由過渡態沿著勢能負梯度方向行進的路徑(最陡下降路徑),其中每一點的負梯度方向就是此處核的運動方向,在垂直於路徑方向上是能量極小點。注意質量權重和非權重坐標下的路徑是不一樣的。
IRC可看作0K時的實際在化學反應中原子核所走的路徑,溫度較低時IRC也是一個很好的近似。但是當溫度較高,即核動能較大時,實際反應路徑將明顯偏離IRC,而趨於沿最短路徑變化,即便經歷的是勢能面上能量較高的的路徑,這時就需要以動力學計算的平均軌跡來表徵反應路徑。

5.IRC演算法
5.1 最陡下降法(Steepest descent)
最簡單的獲得IRC的方法就是固定步長的最陡下降法,由過渡態位置開始,每步沿著當前梯度方向行進一定距離直到反應物/產物位置,也稱Euler法。由於最陡下降法及下文的IMK、GS等方法第一步需要梯度,而過渡態位置梯度為0,所以第一步移動的方向沿著虛頻方向。最陡下降方法與IRC的本質相符,但是此法實際得到的路徑是一條在真實IRC附近反復震盪的曲折路徑,而非應有的平滑路徑,對IRC描述不夠精確。雖然可以通過更小的步長得以一定程度的解決,但是太花時間,對於復雜的反應機理,需要更多的點。也可以通過RK4(四階Runga-Kutta)來走步,比上面的方法更穩定、准確,但每步要需要算四個梯度,比較費時。
5.2 IMK方法(Ishida-Morokuma-Kormornicki)
它是最陡下降法的改進,解決其震盪問題。首先計算起始點X(k)的梯度g(k),獲得輔助點X'(k+1)=X(k)-g(k)*s,其中s為可調參數。然後計算此點梯度g'(k+1),在g(k)與-g'(k+1)方向的平分線上(紅線所示)進行線搜索,所得能量最小點即為X(k+1),之後再將X(k+1)作為上述步驟的X(k)重復進行。整個過程類似先做最陡下降法,然後做校正。此方法仍然需要相對較小的步長,獲得較精確IRC所需計算的點數較多。

[圖12]IMK方法示意圖
Schmidt,Gordon,Dupuis改進了IMK的三個細節,使之更有效率、更穩定。(1)將X'(k+1)的確定方式改為了X(k)-g(k)/|g(k)|*s,即每一步在負梯度方向上行進固定的s距離,與梯度大小不再有關。(2)線搜索步只需在平分線上額外計算一個點的能量即可,這個點和X'(k+1)點的能量以及g'(k+1)在此平分線上的投影三個條件作聯立方程即可解出曲線方程,減少了計算量。IMK原始方法則需要在平分線上額外計算兩個點的能量與X'(k+1)的能量一起擬和曲線方程。(3)第一步在過渡態位置的移動距離Δq如此確定:ΔE=k*(Δq^2)/2,k為虛頻對應的力常數,ΔE為降低能量的期望值(一般為0.0005 hartree),這樣可避免在虛頻很大的鞍點處第一步位移使能量降低過多。
5.3 Müller-Brown方法
這是通過球形限制性優化找IRC的方法。首先將過渡態和能量極小點位置定義為P1和P2,由P1開始步進,當前步結構以Q(n)表示。每一步,在相距Q(n)為r距離的超球面上用simplex法優化獲得能量極小點Q'(圖中綠點),優化的起始點是Q(n-1)Q(n)與Q(n)P2方向的平分線b上距Q(n)為r距離的位置S(紅點)。若Q(n)Q'與Q(n)P2的夾角較小,則Q'可當作是下一步位置Q(n+1)。如此反復,直到符合停止標准,比如下一步能量比當前更高(已走過頭了)、與P2距離已很近(如小於1.2r)、或者與P2方向偏離太大(P1與P2點通過此法無法找到IRC)。最終所得到全部結構點依次相連即為近似的IRC,減小步長r值可使結果更貼近實際IRC。基於此方法也可以用於尋找過渡態,先將反應物和產物作為P1和P2,將二者距離的約2/3作為r,由其中一點在P1-P2連線上相距其r位置為初始位置進行球形優化得到O點,在O與P1、O與P2上也如此獲得P1'與P2',根據P1、P1'、O、P2'、P2的能量及之間距離信息以一定規則確定其中哪兩個點作為下一步的P1和P2,確定新的P1和P2後重復上述步驟,直至P1與P2十分接近,即是過渡態。此方法計算IRC可以步長可設得稍大,第一步不需要費時的Hessian矩陣確定移動方向,缺點是獲得的路徑曲率容易有問題,對於曲率較大的反應路徑需要減小步長。

[圖13]Müller-Brown方法示意圖
5.4 GS(Gonzalez-Schlegel)方法
這是目前很常用,也是Gaussian使用的方法,見圖14。首先計算起始點X(k)的梯度,沿其負方向行進s/2距離得到X'(k+1)點作為輔助點。在距X'(k+1)點距離為s/2的超球面上做限制性能量最小化,找到下一個點X(k+1)。因為這個點的負梯度(黑色箭頭)在弧方向上分量為0,故垂直於弧,即其梯度方向在X'(k+1)到X(k+1)的直線上。這必然可以得到一段用於描述IRC的圓弧(虛線),它通過X(k)與X(K+1)點,且在此二點處圓弧的切線等於它們的梯度方向,這與IRC的特點一致,這段圓弧可以較好地(實線)。之後再將X(k+1)作為上述步驟的X(k)重復進行。
GS方法對IRC描述得比較精確,在研究反應過程等問題中,由於對中間體結構精度有要求,GS是很好的選擇,而且用大步長可以得到與小步長相近的結果,優於IMK、Müller-Brown等方法。若只想得到與過渡態相連的反應物和產物結構,或者粗略驗證預期的反應路徑,對IRC精度要求不高,使用最陡下降法往往效率更高,盡管GS可以用更大步長,但每步更花時間。

[圖14]GS方法示意圖
除上述外,IRC也可以通過已提及的EF、最緩上升法、球形優化等方法得到,它們的好處是不需要事先知道過渡態的結構。贗坐標法除了簡單的反應以外,只能得到近似的IRC,由於結構的較小偏差會帶來能量的較大變化,容易引入滯後效應,所以這樣得到的勢能曲線難以說明問題。

6. chain-of-states方法
這類方法主要好處是只需要提供反應物和產物結構就能得到准確的反應路徑和過渡態。首先在二者結構之間以類似LST的方式線性、均勻地插入一批新的結構(使用內坐標更為適宜),一般為5~40個,每個結構就是勢能面上的一個點(稱為image),並將相鄰的點以某種勢函數相連,這樣它們在勢能面上就如同組成了一條鏈子。對這些點在某些限制條件下優化後,在勢能面上的分布描述的就是MEP,能量最高的結構就是近似的過渡態位置。
6.1 Drag method方法
這個方法最簡單,並不是嚴格的chain-of-states方法,因為每個結構點是獨立的。插入的結構所代表的點均勻分布在圖8所示的短虛線上,也可以在過渡態附近位置增加點的密度。每個點都在垂直於短虛線的超平面上優化,在圖中就是指平行於長虛線方向優化。這種方法一般是奏效的,但也很容易失效,圖8就是一例,優化後點的分布近似於從產物和反應物用最緩上升法得到的路徑(黑色粗曲線),不僅反應路徑錯誤,而且兩段不連接,與黑色小點所示的真實MEP相距甚遠(黑色點是用下文的NEB方法得到的)。目前基本不使用此方法。
6.2 PEB方法(plain elastic band)
這是下述Chain-of-state方法的基本形式。也是在反應物到產物之間插入一系列結構,共插入P-1個,反應物編號為0,產編號物為P。不同的是優化不是對每個點孤立地優化,而是優化一個函數,每一步所有點一起運動。下文用∑[i=1,P]X(i)符號代表由X(1)開始加和直到X(P)。PEB函數是這樣的:S(R(1),R(2)...R(P-1))=∑[i=1,P-1]V(R(i)) + ∑[i=1,P]( k/2*(R(i)-R(i-1))^2 )。其中R(i)代表第i個點的勢能面上的坐標,V(R(i))是R(i)點的能量,k代表力常數。優化過程中反應物R(0)和產物R(P)結構保持不變,優化此函數相當於對一個N*(P-2)個原子的整體進行優化,N為體系原子數。
優化過程中,式中的第一項目的是讓每個點盡量向著能量極小的位置移動。第二項相當於將相鄰點之間用自然長度為0、力常數為k的彈簧勢連了起來,目的是保持優化中相鄰點之間距離均衡,避免過大。當只有第一項的時候,函數優化後結構點都會跑到作為能量極小點的反應物和產物位置上去而無法描述MEP,這時必然會有一對兒相鄰結構點距離很大。當第二項出現後,由於此種情況下彈簧勢能很高,在優化中不可能出現,從而避免了這個問題。drag method法在圖8中失敗的例子中,也有一對兒相鄰結構點距離太遠,所以也不會在PEB方法中出現。簡單來說,PEB方法就是保持相鄰結構點的間距盡量小的情況下,優化每個結構點位置。可以近似比喻成在勢能面的模型上,將一串以彈簧相連的珠子,一邊掛在反應物位置,另一邊掛在產物位置,拉直之後鬆手,這串珠子受重力作用在模型上滾動,停下來後其形狀可當作MEP,最高的位置近似為過渡態。
但是PEB方法的結果並不能很好描述MEP。圖15描述的是常見的A、B、C三原子反應的LEPS勢能面,B可與A或C成鍵,黑色弧線為NEB方法得到的較真實的MEP。左圖中,在過渡態附近PEB的結構點沒有貼近MEP,得到的過渡態能量過高,稱為corner-cutting問題。這是因為每點間的彈簧勢使這串珠子僵硬、不易彎曲,由圖15右圖可見,R(i)朝R(i-1)與R(i+1)方向都會受到彈簧拉力,其合力牽引R(i),使R(i-1)、R(i)、R(i+1)的弧度有減小趨勢。如果將彈簧力常數減小以減弱其效果,就會出現圖15中間的情況,雖然結構點貼近了MEP,但相鄰點間距沒有得到保持,過渡態附近解析度很低,錯過了真實過渡態,若以能量最高點作為過渡態則能量偏低,這稱為sliding-down問題。可見彈簧力常數k的設定對PEB結果有很大影響,為權衡這兩個問題只能取折中的k,但結果仍不準確。

[圖15]LEPS勢能面上不同k值的PEB結果
6.3 Elber-Karplus方法
與PEB函數定義相似。第一項定義為1/L*∑[i=1,P-1]( V(R(i))*d(i,i-1) ),其中L為鏈子由0點到P-1點的總長,d(i,i+1)為R(i)與R(i+1)的距離,此項可視為所有插入點總能量除以點數,即插入點的平均能量。第二項為γ*∑[i=1,P](d(i,i-1)-<d>)^2,其中<d>代表相鄰點的平均距離,是所有d(i,j)的RMS。此項相當於將彈簧自然長度設為了當前各個彈簧長度的平均值,由γ參數控制d(i,j)在平均值上下允許的波動的范圍。此方法最初被用於研究蛋白質體系的構象變化。
6.4 SPW方法(Self-Penalty Walk)
在Elber-Karplus方法的基礎上增加了第三項互斥項,∑[i=0,P-1]∑[i=j+1,P-1]U(ij),其中U(ij)=ρ*exp(-d(i,j)/(λ*<d>)),<d>定義同上。此項相當於全部點之間的「非鍵作用能U(ij)」之和,不再僅僅是相鄰點之間才有限制勢。任何點之間靠近都會造成能量升高,可以避免Elber-Karplus方法中出現的在能量極小點處結構點聚集、路徑自身交錯的問題,能夠使路徑充分地展開,確保過渡態區域有充足的采樣點。式中ρ和λ都是可調參數來設定權重。此外相對與Elber-Karplus方法還考慮了笛卡兒坐標下投影掉整體運動的問題。
6.5 LUP方法(Locally Updated planes)
特點是優化過程中,只允許每個結構點R(i)在垂直於R(i-1)R(i+1)向量的超平面上運動。由於每步優化後R(i-1)與R(i+1)連線方向也會變化,故每隔一定步數重新計算這些向量,重新確定每個點允許移動的超平面。但是LUP缺點是結構點之間沒有以上述彈簧勢函數相連來保持間隔,容易造成結構點在路徑上分布不均勻,甚至不連續,還可能逐漸收斂至兩端的極小點。
6.6 NEB方法(Nudged Elastic Band)
NEB方法集合了LUP與PEB方法的優點,其函數形式基於PEB。從PEB方法的討論可以看出,彈簧勢是必須的,它平行於路徑切線(R(i)-R(i-1)與R(i+1)-R(i)矢量和的方向)的分量保證結構點均勻分布在MEP上來描述它;但其垂直於路徑的分量造成的弊端也很明顯,它改變了這個方向的實際的勢能面,優化後得到的MEP'就與真實的MEP發生了偏差,造成corner-cutting問題。解決這個問題很簡單,在NEB中稱為nudge過程,即每個點在平行於路徑切線上的受力只等於彈簧力在這個方向分量,每個點在垂直於路徑切線方向的受力只等於勢能力在此方向上分量。這樣彈簧力垂直於路徑的分量就被投影掉了,而有用的平行於路徑的分量完全保留;勢能力在路徑方向上的分量也不會再對結構點分布的均勻性產生影響,被保留的它在垂直於路徑上的分量將會引導結構點地正確移動。這樣優化收斂後結構點就能正確描述真實的MEP,矛盾得到解決。彈簧力常數的設定也比較隨意,不會再對結果產生明顯影響。但是當平行於路徑方向能量變化較快,垂直方向回復力較小的情況,NEB得到的路徑容易出現曲折,收斂也較慢,解決這一問題可以引入開關函數,即某點與兩個相鄰點之間形成的夾角越小,此點就引入更多的彈簧勢垂直於路徑的分量,使路徑不易彎曲而變得光滑,但也會帶來一定corner-cutting問題。也可以通過將路徑切線定義為每個點指向能量更高的相鄰點的方向來解決。
6.7 DNEB方法(Double Nudged Elastic Band)
彈簧勢垂直於路徑的分量壞處是造成corner-cutting問題,好處是避免路徑捲曲。更具體來說,前者是由於它平行於勢能梯度方向的那個分量造成的,若只將這個分量投影掉,就可避免corner-cutting問題,而其餘分量的力F(DNEB)仍可以避免路徑捲曲,這便是DNEB的主要思想。故DNEB與NEB的不同點就是DNEB保留了彈簧勢垂直於路徑的分量其中的垂直於勢能梯度的分量。
DNEB的這個設定卻導致結構點不能精確收斂到MEP上。正確的MEP上的點在垂直於路徑方向上受勢能力一定為0,但是當用了DNEB方法後,若其中某一點處路徑是彎曲的,即彈簧力在垂直於路徑方向上有分量F',而且此點勢能梯度方向不垂直於此點處路徑的切線,即F'不會被完全投影掉,F'力的分量F(DNEB)將繼續帶著這個點移動,也就是說結構點就不在正確的MEP上了。只有當結構點所處路徑恰為直線,即F'為0則不會有此問題。為了解決此問題有人將開關函數加入到DNEB,稱為swDNEB,當結果越接近收斂,即垂直於路徑的勢能力越小的時候,F(DNEB)也越小,以免它使結構點偏離正確MEP。一些研究表明DNEB和swDNEB相比NEB在收斂性(結構點受力最大值隨步數降低速度)方面並沒有明顯提升,DNEB難以收斂到較高精度以內,容易一直震盪。
6.8 String方法
與NEB對力的投影定義一致,但點之間沒有彈簧勢連接,保持點的間距的方法是每步優化後使這些點在路徑上平均分布。
6.9 Simplified String方法
String中計算每個點的切線並投影掉勢能力平行於路徑的分量的過程也去掉了,所有點之間用三次樣條插值來表述路徑,每一個點根據實際勢能力運動後,在路徑上重新均勻分布。優化方法最好結合RK4方法。NEB在點數較小的情況下比Simplified String方法能在更短時間內收斂到更高精度,但點數較多情況下則Simplified String更占優勢。
6.10 尋找過渡態的chain-of-state方法
除非勢能面對稱且結構點數目為奇數,否則不會有結構點恰好落在過渡態。以能量最高的點作為過渡態只是近似的,為了更好地描述過渡態,可以增加結構點數,或者增加局部彈簧力常數,使過渡態附近點更密。根據已得到的點的能量,通過插值方法估算能量最高點是另一個辦法。近似的過渡態也可以作為QN法的初猜尋找准確的過渡態。
6.10.1 CI-NEB方法
NEB與String等方法都可以結合Climbing Image方法,它專門考慮到了定位過渡態問題。CI-NEB與NEB的關鍵區別是能量最高的點受力的定義,在CI-NEB中這個點不會受到相鄰點的彈簧力,避免位置被拉離過渡態,而且將此點平行於路徑方向的勢能力分量的符號反轉,促使此點沿著路徑往能量升高的方向上爬到過渡態。這個方法只需要很少的點,比如包含初、末態總共5個甚至3個點就能准確定位過渡態,是最有效率的尋找過渡態的方法之一。如果還需要精確描述MEP,可以在此過渡態上使用Stepwise descent方法、最陡下降法、RK4等方法沿勢能面下坡走出MEP,整個過程比直接使用很多點的NEB方法能在更短時間內得到更准確的MEP。
6.10.2 ANEBA方法(adaptive nudged elastic band approach)
這個方法也是基於NEB,專用來快速尋找過渡態。一般想得到高精度的過渡態區域,NEB的鏈子上必須包含很多點,耗費計算時間。而ANEBA方法中鏈子兩端的位置不是固定的,而是不斷地將它們移動到離過渡態更近的位置,僅用很少幾個點的鏈子就可以達到同樣的精度。具體來說,設鏈子兩端的點分別叫A點和B點(對於第一步就是反應物和產物位置),先照常做NEB,收斂至一定精度後(不需要精度太高),改變A和B的位置為鏈子中能量最高點相鄰的兩個點,然後再優化並收斂至一定精度,再如此改變A和B的位置,反復經歷這一步驟,最終鏈子上能量最高點就是精確的過渡態。ANEBA相當於不斷增加原先NEB鏈子的過渡態附近的點數,但實際上點數沒有變。有研究表明ANEBA比CI-NEB效率更高,如果結合ANEBA與CI(稱CI-ANEBA),即先用ANEBA方法經上述步驟移動幾次A、B點,使之聚焦到過渡態附近,再用CI-NEB方法,效率可以進一步提高。

㈨ 短路電流如何計算

供電網路中發生短路時,很大的短路電流會使電器設備過熱或受電動力作用而遭到損壞,同時使網路內的電壓大大降低,因而破壞了網路內用電設備的正常工作。為了消除或減輕短路的後果,就需要計算短路電流,以正確地選擇電器設備、設計繼電保護和選用限制短路電流的元件。
二.計算條件
1.假設系統有無限大的容量.用戶處短路後,系統母線電壓能維持不變.即計算阻抗比系統阻抗要大得多。
具體規定: 對於3~35KV級電網中短路電流的計算,可以認為110KV及以上的系統的容量為無限。只要計算35KV及以下網路元件的阻抗。
2.在計算高壓電器中的短路電流時,只需考慮發電機、變壓器、電抗器的電抗,而忽略其電阻;對於架空線和電纜,只有當其電阻大於電抗1/3時才需計入電阻,一般也只計電抗而忽略電阻。
3. 短路電流計算公式或計算圖表,都以三相短路為計算條件。因為單相短路或二相短路時的短路電流都小於三相短路電流。能夠分斷三相短路電流的電器,一定能夠分斷單相短路電流或二相短路電流。
三.簡化計演算法
即使設定了一些假設條件,要正確計算短路電流還是十分困難,對於一般用戶也沒有必要。一些設計手冊提供了簡化計算的圖表.省去了計算的麻煩.用起來比較方便.但要是手邊一時沒有設計手冊怎麼辦?下面介紹一種「口訣式」的計算方法,只要記牢7句口訣,就可掌握短路電流計算方法。
在介紹簡化計演算法之前必須先了解一些基本概念。
1.主要參數
Sd三相短路容量 (MVA)簡稱短路容量校核開關分斷容量
Id三相短路電流周期分量有效值(KA)簡稱短路電流校核開關分斷電流和熱穩定
IC三相短路第一周期全電流有效值(KA) 簡稱沖擊電流有效值校核動穩定
ic三相短路第一周期全電流峰值(KA) 簡稱沖擊電流峰值校核動穩定
x電抗(W)
其中系統短路容量Sd和計算點電抗x 是關鍵.
2.標么值
計算時選定一個基準容量(Sjz)和基準電壓(Ujz).將短路計算中各個參數都轉化為和該參數的基準量的比值(相對於基準量的比值),稱為標么值(這是短路電流計算最特別的地方,目的是要簡化計算).
(1)基準

基準容量 Sjz=100 MVA
基準電壓 UJZ規定為8級. 230, 115, 37, 10.5, 6.3, 3.15 ,0.4, 0.23 KV
有了以上兩項,各級電壓的基準電流即可計算出,例: UJZ (KV)3710.56.30.4
因為S=1.73*U*I
所以 IJZ
(KA)1.565.59.16144
(2)標么值計算
容量標么值 S*=S/SJZ.例如:當10KV母線上短路容量為200 MVA時,其標么值容量
S* =200/100=2.
電壓標么值 U*=
U/UJZ ; 電流標么值 I*
=I/IJZ
3無限大容量系統三相短路電流計算公式
短路電流標么值: I*d= 1/x* (總電抗標么值的倒數).
短路電流有效值: Id=IJZ* I*d=IJZ/ x*(KA)
沖擊電流有效值: IC
= Id *√1 2 (KC-1)2
(KA)其中KC沖擊系數,取1.8
所以IC =1.52Id

沖擊電流峰值: ic=1.41* Id*KC=2.55 Id (KA)
當1000KVA及以下變壓器二次側短路時,沖擊系數KC ,取1.3
這時:沖擊電流有效值IC =1.09*Id(KA)

沖擊電流峰值: ic=1.84 Id(KA)
掌握了以上知識,就能進行短路電流計算了。公式不多,又簡單.但問題在於短路點的總電抗如何得到?例如:區域變電所變壓器的電抗、輸電線路的電抗、企業變電所變壓器的電抗,等等。
一種方法是查有關設計手冊,從中可以找到常用變壓器、輸電線路及電抗器的電抗標么值.求得總電抗後,再用公式計算短路電流; 設計手冊中還有一些圖表,可以直接查出短路電流。
下面介紹一種「口訣式」的計算方法,只要記牢7句口訣,就可掌握短路電流計算方法。
4.簡化演算法
【1】系統電抗的計算
系統電抗,百兆為一。容量增減,電抗反比。100除系統容量
例:基準容量100MVA。當系統容量為100MVA時,系統的電抗為XS*=100/100=1
當系統容量為200MVA時,系統的電抗為XS*=100/200=0.5
當系統容量為無窮大時,系統的電抗為XS*=100/∞=0
系統容量單位:MVA
系統容量應由當地供電部門提供。當不能得到時,可將供電電源出線開關的開斷容量
作為系統容量。如已知供電部門出線開關為W-VAC 12KV 2000A 額定分斷電流為40KA。則可認為系統容量S=1.73*40*10000V=692MVA,系統的電抗為XS*=100/692=0.144。
【2】變壓器電抗的計算
110KV, 10.5除變壓器容量;35KV, 7除變壓器容量;10KV{6KV}, 4.5除變壓器容量。
例:一台35KV3200KVA變壓器的電抗X*=7/3.2=2.1875
一台10KV1600KVA變壓器的電抗X*=4.5/1.6=2.813
變壓器容量單位:MVA
這里的系數10.5,7,4.5實際上就是變壓器短路電抗的%數。不同電壓等級有不同的值。
【3】電抗器電抗的計算
電抗器的額定電抗除額定容量再打九折。
例:有一電抗器U=6KV I=0.3KA 額定電抗 X=4% 。
額定容量S=1.73*6*0.3=3.12 MVA. 電抗器電抗X*={4/3.12}*0.9=1.15
電抗器容量單位:MVA

【4】架空線路及電纜電抗的計算
架空線:6KV,等於公里數;10KV,取1/3;35KV,取 3%0
電纜:按架空線再乘0.2。
例:10KV 6KM架空線。架空線路電抗X*=6/3=2
10KV 0.2KM電纜。電纜電抗X*={0.2/3}*0.2=0.013。
這里作了簡化,實際上架空線路及電纜的電抗和其截面有關,截面越大電抗越小。
【5】短路容量的計算
電抗加定,去除100。
例:已知短路點前各元件電抗標么值之和為 X*∑=2, 則短路點的短路容量
Sd=100/2=50MVA。
短路容量單位:MVA
【6】短路電流的計算
6KV,9.2除電抗;10KV,5.5除電抗; 35KV,1.6除電抗; 110KV,0.5除電抗。
0.4KV,150除電抗
例:已知一短路點前各元件電抗標么值之和為 X*∑=2, 短路點電壓等級為6KV,
則短路點的短路電流Id=9.2/2=4.6KA。
短路電流單位:KA
【7】短路沖擊電流的計算
1000KVA及以下變壓器二次側短路時:沖擊電流有效值Ic=Id, 沖擊電流峰值ic=1.8Id
1000KVA以上變壓器二次側短路時:沖擊電流有效值Ic=1.5Id, 沖擊電流峰值ic=2.5Id
例:已知短路點{1600KVA變壓器二次側}的短路電流 Id=4.6KA,
則該點沖擊電流有效值Ic=1.5Id,=1.5*4.6=7.36KA,沖擊電流峰值ic=2.5Id=2.5*406=11.5KA。
可見短路電流計算的關鍵是算出短路點前的總電抗{標么值}.但一定要包括系統電抗。
本文來自: 河南全新液態起動設備有限公司 www.hnqxyt.com專業軟起動軟啟動水電阻液態軟起液態
短路電流的計算是為了正確選擇和校驗電氣設備,使其滿足電流的動、熱穩定性的要求。對於低壓開關設備和熔斷器等,還應按短路電流校驗其分斷能力。
計算短路電流時,首先要選擇好短路點,短路點通常選擇在被保護線路的始、末端。始端短路點用於計算最大三相短路電流,用於校驗設備和電纜的動、熱穩定性;末端用於計算最小二相短路電流,用於校驗繼電保護整定值的可靠性。
短路電流的計算方法有解釋法和圖表法,主要以解釋法為主。
一、短路電流的計算公式
1、三相短路電流計算:
IK(3)=UN2/{√3·[(∑R)2+(∑X)2]1/2}
式中:IK(3) 三相短路電流,安;
UN2 變壓器二次側額定電壓,對於127、380、660伏電網,分別取133、400、690伏;
∑R、∑X 短路迴路內一相的電阻、電抗的總和,歐。
2、二相短路電流計算:
IK(2)=UN2/{2·[(∑R)2+(∑X)2]1/2}
式中:IK(2) 二相短路電流,安;
3、三相短路電流與二相短路電流值的換算
IK(3)=2 IK(2)/√3=1.15 IK(2)
或 IK(2)=0.866 IK(3)
二、阻抗計算
1、系統電抗
XS=UN22/SK
式中:XS 摺合至變壓器二次側的系統電抗,歐/相;
UN2 變壓器二次側的額定電壓,KV;
SK 電源一次側母線上的短路容量,MVA。
XS 、SK 指中央變電所母線前的電源電抗和母線短路容量。如中央變的短路容量數據不詳,可用防爆配電箱的額定斷流容量代替計算。
額定斷流容量與系統電抗值 (歐)
斷流容量MVA 額定電壓 V 25 30 40 50
400 0.0064 0.0053 0.004 0.0032
690 0.019 0.0159 0.0119 0.0095
2、變壓器阻抗(可查參考文獻3附錄六表19-3)
變壓器每相電阻、電抗按下式計算:
RB=ΔP/3IN22=ΔP·UN22/SN2
XB=10UX%·UN22/ SN=10(U K2-UR2)1/2·UN22/
SN
式中:RB、 XB 分別為變壓器每相電阻和電抗值,歐;
UX 變壓器繞組電抗壓降百分值,%;UX =(U K2-UR2)1/2
U K 變壓器繞組阻抗壓降百分值,%;
UR 變壓器繞組電阻壓降百分值,%;UR=[△P/(10·SN)]%
ΔP 變壓器短路損耗,瓦;
UN2、IN2 變壓器二次側額定電壓(KV)和電流(A);
SN 變壓器額定容量,KVA。
線路阻抗可以查表。
這是我以前學習短路電流計算從網上找的資料。

閱讀全文

與sn2演算法相關的資料

熱點內容
甘肅好貨日報app是什麼 瀏覽:644
電腦上的伺服器地址從哪裡找啊 瀏覽:379
精雕App是什麼 瀏覽:102
天貓魔盒用什麼app當遙控器 瀏覽:602
程序員是五筆還是拼音 瀏覽:272
加密貨幣機制 瀏覽:300
防止反編譯源代碼 瀏覽:978
黑魂二伺服器為什麼登不上 瀏覽:736
雲伺服器掛載cos 瀏覽:326
縱筋加密區在圖紙上怎麼表示的 瀏覽:187
幾個雲伺服器哪個劃算 瀏覽:63
n次方怎麼算app 瀏覽:534
伺服器是如何同時為多個客戶端提供服務 瀏覽:576
從極點命令 瀏覽:153
phpyaml解析 瀏覽:621
pic16c57c單片機教程 瀏覽:718
WindowsPerl編譯安裝 瀏覽:667
在哪個app可以看明偵 瀏覽:716
伺服器裡面的pfr什麼作用 瀏覽:292
伺服器為什麼配置多張網卡 瀏覽:986