一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种计算大规模电阻网络等效电阻分布的方法与流程

2022-06-05 04:41:35 来源:中国专利 TAG:


1.本发明涉及eda设计领域,特别涉及一种计算大规模电阻网络等效电阻分布的方法。


背景技术:

2.大规模电阻网络等效电阻分布指从指定端口(或节点)到电阻网络各内部节点的等效电阻的分布,它对于power/clock的电阻网络分析以及esd路径的电阻分析有着重要的意义。计算方法可借鉴电阻网络端到端等效电阻的计算方法,但是需要计算从给定的端口到所有内部节点的等效电阻,计算的时间复杂度比单纯计算端到端等效电阻高出很多。
3.专利cn104731989a描述了一种计算大规模电阻网络端到端电阻的方法,利用该方法也可以计算等效电阻分布。该方法首先对电阻网络构造导纳矩阵,并进行lu分解以求出导纳矩阵的逆矩阵。在计算两个节点等效电阻时,该方法将逆矩阵与对应的右端项进行矩阵向量乘,得到这两个节点的节点电压,从而得出它们之间的等效电阻。在实际求解过程中,逆矩阵可以不需要显式求解,逆矩阵与右端的乘积可以用lu矩阵的回代求解过程来代替。
4.为了计算等效电阻分布,首先对版图进行电阻提取,建立电阻网络,并根据提取的电阻网络构建导纳矩阵g。如图1所示,假设指定的端口为a,节点数总共为n,则导纳矩阵g为n
×
n矩阵,并假设端口a的id为p,0≤p《n。假设节点b的id为q,为计算a到b的等效电阻,在a上施加1a的电流源,电流方向为流入;在b上施加1a的电流源,电流方向为流出,如图2所示。假设电流流入为负,流出为正,因此右端项可表示为
[0005][0006]
通过求解方程组gx=b,可以得到ab之间的等效电阻r
ab
=x(q)-x(p),其中x(i)为向量x的第i个元素。
[0007]
对电阻网络的其它节点也按照上述方法,可以求得a到其它节点的等效电阻。一般地,对第k个节点(0≤k《n且k≠p),有
[0008][0009]
通过求解方程组
[0010]
gxk=bk,k=0,1,...n且k≠p
ꢀꢀꢀ
(1)
[0011]
可得指定端口p到第k个节点的等效电阻为
[0012]rk
=xk(j)-xk(p)
ꢀꢀꢀ
(2)
[0013]
为了求出整个电阻网络的等效电阻分布,我们需要求解n次方程(1)。一般地,方程(1)的求解可以用lu分解以及lu回代过程来替代。因此,对一个电阻网络,我们需要进行一次lu分解,并进行n次lu回代。对于大规模电阻网络,n的量级可以达到百万、千万甚至更高,
因此计算大规模电阻网络等效电阻分布的时间主要花费在对n个节点的lu回代求解过程上。
[0014]
通常,lu矩阵的回代求解的时间复杂度取决于l和u矩阵的非零元个数。因此,在lu分解之前,我们会针对矩阵进行预排序,以保证lu分解后的矩阵元填充最少,从而使l和u矩阵的非零元最少,以减少矩阵存储和计算复杂度。
[0015]
对于方程(1),在求解第k个节点的等效电阻时,需要知道向量xk的第k和第p个元素,因此,lu回代求解至少要求解到第min(k,p)个元素为止。特别地,当p=0时,需要将整个向量xk的所有元素都求解出来才可以;而当p=n-1(即矩阵的最后一行)时,只需要求解向量xk的k个元素即可。因此,常用的一种方法是在lu分解的预排序阶段,将指定的端口节点p放置到矩阵的最后一行(或列),这样每次只需求解k个元素即可(k=0,1,2,

)。但是这样做可能会对预排序产生干扰,导致lu分解后的矩阵元填充变多,从而使l矩阵和u矩阵的非零元变多,得不偿失。
[0016]
随着集成电路的发展,对集成电路版图进行电阻提取得到的电阻网络的规模也越来越大,可以达到百万、千万甚至更高量级。在求解等效电阻分布时,绝大部分的时间均花费在计算电阻网络的逆矩阵与不同右端项的矩阵向量乘上面。虽然可以通过调整预排序策略,将指定端口对应的节点编号调整到矩阵的最后一行,从而减少lu回代的次数。但是这样不可避免地会导致lu矩阵的非零元填充变多,增加了矩阵存储和lu矩阵回代求解的计算复杂度。


技术实现要素:

[0017]
为了解决现有技术存在的不足,本发明的目的在于提供一种计算大规模电阻网络等效电阻分布的方法,可以有效减少计算时间。
[0018]
为实现上述目的,本发明提供的计算大规模电阻网络等效电阻分布的方法,包括以下步骤:
[0019]
1)对版图进行电阻提取,建立电阻网络,根据所述电阻网络构建导纳矩阵g,建立等效电阻计算矩阵gx=b,其中x矩阵为电阻网络各节点的电压向量组成的矩阵,b矩阵为各节点的电流向量组成的矩阵,b矩阵的对角线元素除第p行对角线外均为1,第p行元素除对角线元素以外均为-1,其余元素均为0,p为指定的输入端口对应的节点;
[0020]
2)分解b矩阵,其中b=i-b2,其中i为单位矩阵,b2=[e
p e
p
…ep
],e
p
为只有第p个元素为1,其它元素均为0的向量;
[0021]
3)将b=i-b2代入等效电阻计算矩阵,令gx1=i,gx2=b2,得到x=x
1-x2,其中x1和x2分别为右端项i和b2对应的解矩阵;
[0022]
4)求解gx2=b2,得到x2的解向量x2;
[0023]
5)求解gx1=i,得到x1解向量x1;
[0024]
6)计算等效电阻,rk=x1(k)-x1(p) x2(k)-x2(p),其中k表示节点k,p表示节点p。
[0025]
进一步地,所述步骤4)进一步包括以下步骤:
[0026]
21)对导纳矩阵g进行lu分解,g=lu,然后求解lux2=b2;
[0027]
22)利用lux2=e
p
求解,得到x2。
[0028]
进一步地,所述步骤5)进一步包括以下步骤:
[0029]
31)利用gx
11
=i,求解x
11
的第p行,得到x1的第p行;
[0030]
32)利用gx
12
=i,求解x
12
的对角线,得到x1对角线元素。
[0031]
进一步地,所述步骤31)仅求解x
11
的第p行,进行一次求解,得到的x
11
的第p行作为x1的第p行。
[0032]
更进一步地,所述步骤32)进行对角线求解时,导纳矩阵g进行lu分解,针对第k个节点的右端项,在进行lu回代过程求解的时候,只求解到第k个元素即可,不需要求解出整个向量。
[0033]
为实现上述目的,本发明还提供一种计算大规模电阻网络等效电阻分布的装置,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的程序,所述处理器运行所述程序时执行上述的计算大规模电阻网络等效电阻分布的方法的步骤。
[0034]
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述的计算大规模电阻网络等效电阻分布的方法的步骤。
[0035]
本发明的一种计算大规模电阻网络等效电阻分布的方法,与现有技术相比具有如下有益效果:
[0036]
(1)本发明针对等效电阻分布求解的特点,提出了一种改进的方法,对右端项进行拆解,并对矩阵求解的过程进行优化,可以将计算时间降低至原来的一半左右;
[0037]
(2)本发明不需要调整指定端口的节点id编号位置,不会影响lu分解预排序的结果,可以有效保证预排序结果的最优性,不会引入额外的非零元填充。
[0038]
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
[0039]
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
[0040]
图1为电阻网络示意图;
[0041]
图2为计算ab间等效电阻示意图;
[0042]
图3为根据本发明的计算大规模电阻网络等效电阻分布的方法流程图。
具体实施方式
[0043]
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0044]
为了更好的说明本发明的计算大规模电阻网络等效电阻分布的方法,首先对大规模电阻网络等效电阻分布的一般做法进行说明。
[0045]
背景技术中已经给出了指定端口到第k个节点的等效电阻rk的计算公式,在计算过程中,针对方程(1),将所有右端项bk和xk拼成矩阵,即:
[0046]
gx=b
ꢀꢀꢀ
(3)
[0047]
为方便计算,因为x
p
的值不重要(因为一个节点到它自身的等效电阻为0,不需要再单独计算),因此可假设当k=p时,b
p
=0
[0048]
从而有
1,其余元素均为0,矩阵b的形式如下:
[0070][0071]
在步骤102,将矩阵b表示为b=i-b2,其中i为单位矩阵,b2=[e
p e
p
ꢀ…ꢀep
]。
[0072]
在步骤103,将b=i-b2代入等效电阻计算矩阵,令x=x
1-x2,得到gx1=i,gx2=b2。
[0073]
在步骤104,求解gx2=b2。
[0074]
在该步骤中,对导纳矩阵g进行lu分解,即g=lu,然后求解gx2=b2。
[0075]
b2的每一列均相同,因此x2的每一列也都相同。我们只需要求解一次以下方程即可:
[0076]
lux2=e
p
ꢀꢀꢀ
(9)
[0077]
求解方程(9)可求得x2。
[0078]
在步骤105,求解gx1=i。
[0079]
在该步骤中,首先,根据gx
11
=i,得x
11
的第p行。具体地,由gx
11
=i可知x
11
=g-1
,从而有x
11
g=i。对x
11
的第p行有:
[0080][0081]
将g=lu代入并进行转置可得:
[0082]ut
l
t
x
11
=e
p
ꢀꢀꢀ
(10)
[0083]
通过求解方程(10)可求得x
11

[0084]
然后根据gx
12
=i,求解得x
12
的对角线元素。在该步骤中,gx
12
=i的每一列可以写成gx
12
=ek,将g=lu代入可得:
[0085][0086]
通过求解方程(11)可求得x
12

[0087]
通过上述方法求得(9)-(11)的解之后,指定端口到第k个节点的等效电阻(2)可表示为:
[0088]
r(k)=x
12
(k)-x
11
(k) x2(p)-x2(k)
ꢀꢀꢀ
(12)
[0089]
对除指定端口以外的其它所有节点均按公式(12)计算出它们对应的等效电阻,就可以得到整个电阻网络的等效电阻分布。
[0090]
由上述方法可知,方程组(3)可以用以下3个子方程组来代替:
[0091]
a)求解gx2=b2;
[0092]
b)求gx
11
=i,得到x
11
的第p行;
[0093]
c)求gx
12
=i,得到x
12
的对角线。
[0094]
最后,将子右端项的解进行合并,得到对应的等效电阻分布。
[0095]
从上面的描述可以看出,方程组(3)的求解可以转化为求解(9)-(11)这3个子问
题,并且其中(9)、(10)只需要求解一次,(11)需要对每个节点k(0≤k《n且k≠p)均进行求解。方程(11)的求解过程为lu回代过程,并且可以进一步优化。
[0096]
对ly=ek,由于右端项只有第k个元素为1,其它元素均为0,易知y0,y1…yk-1
均等于0,因此矩阵l的前k-1行和前k-1列均可以忽略,从而可将方程进一步化简为。例如对于k=3,ly=e3可简化为:
[0097][0098]
只需要从第k行和第k列开始迭代求解即可。
[0099]
对于ux
12
=y,因为我们只关心x
12
的对角元,即x
12
的第k个元素,因此回代求解到第k个元素时就可以停止,不需要再一直回代求解到所有元素都计算出来。矩阵u的前k-1行以及前k-1列也同样可以忽略。同样对于k=3的例子,ux=y可化简为:
[0100][0101]
只需要从x6回代求解到x3即可。
[0102]
对一般的lu回代求解过程,要求出x的所有元素,需要进行2n次方程求解。而根据本发明的方法,对第k个节点,我们只需要进行2(n-k)次方程求解即可。特别地,对于k=0,需要进行2n次;对于k=n-1,只需要进行2次方程求解即可。
[0103]
对k=0,1,

n且k≠p,按照一般的lu回代求解方法,总共需要∑k2n≈2n2次方程求解,而按照本发明的方法,只需要∑k2(n-k)≈n2次方程求解,计算时间可以减少至原来的一半左右。
[0104]
本发明还提供计算大规模电阻网络等效电阻分布的装置,包括存储器和处理器,存储器上储存有在处理器上运行的程序,处理器运行所述程序时执行上述一种计算大规模电阻网络等效电阻分布的方法的步骤。
[0105]
本发明还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述的一种计算大规模电阻网络等效电阻分布的方法的步骤,所述一种计算大规模电阻网络等效电阻分布的方法参见前述部分的介绍,不再赘述。
[0106]
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献