1.本发明属于计算机技术领域,尤其涉及一种电路仿真优化方法、装置、计算机设备及存储介质。
背景技术:2.随着科技的进步以及电子产品设计生产技术水平的提高,设计师在完成电路设计后一般会需要对电路进行仿真来确定设计电路的性能,然后根据仿真结果对电路进行优化设计。在电路仿真中,一般用s参数的值来反应设计电路的性能(例如,回波损耗等)。s参数,也就是散射参数,是建立在入射微波与反射微波关系基础上的网络参数。s参数对于电路设计非常有用,因为可以利用入射波与反射波的比率来计算诸如输入阻抗、频率响应和隔离等指标。一般电路设计后的仿真优化问题可以看作是s参数对应的目标函数的极小值点的搜索问题。
3.目前,在电路的仿真优化中,对s参数对应的目标函数的极小值点的搜索精确定度低,对设计电路的仿真优化效果差。
技术实现要素:4.本发明实施例的目的在于提供一种电路仿真优化方法、装置、计算机设备及存储介质,旨在解决目前,在电路的仿真优化中,对s参数对应的目标函数的极小值点的搜索精确定度低,对设计电路的仿真优化效果差的技术问题。
5.本发明实施例是这样实现的,所述电路仿真优化方法包括:
6.获取设计电路的初始设计参数,并根据电路的初始设计参数计算初始s参数值;
7.根据所述初始s参数值和预设的s参数阈值判断所述设计电路是否满足设计要求;
8.当所述设计电路不满足设计要求,计算s参数对应的目标函数在所述初始设计参数处的导数;
9.根据所述导数在所述初始设计参数的预设区间内搜索s参数对应的目标函数的极小值点。
10.本发明实施例的另一目的在于提供一种电路仿真优化装置,所述电路仿真优化装置包括:
11.初始s参数值计算模块,用于获取设计电路的初始设计参数,并根据电路的初始设计参数计算初始s参数值;
12.判断模块,用于根据所述初始s参数值和预设的s参数阈值判断所述设计电路是否满足设计要求;
13.导数计算模块,用于当所述设计电路不满足设计要求,计算s参数对应的目标函数在所述初始设计参数处的导数;
14.极小值点搜索模块,用于根据所述导数在所述初始设计参数的预设区间内搜索s参数对应的目标函数的极小值点。
15.本发明实施例的另一目的在于提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述电路仿真优化方法的步骤。
16.本发明实施例的另一目的在于提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述电路仿真优化方法的步骤。
17.本发明实施例提供的一种电路仿真优化方法,通过先计算设计电路的初始s参数,可以根据设计电路的初始s参数判断设计电路的初始设计参数是否满足设计要求,只有当初始设计参数不满足设计要求的情况下,再进一步对设计电路的设计参数进行优化,且在对电路的设计参数进行优化时,通过先计算s参数对应的目标函数在初始设计参数处的导数,可以判断目标函数的梯度方向,进而可以沿目标函数梯度下降方向搜索极小值点,确定优化设计,保障设计电路的仿真优化效果,且提高优化效率。
附图说明
18.图1为本发明实施例提供的一种电路仿真优化方法的流程;
19.图2为本发明实施例提供的一种根据导数在初始设计参数的预设区间内搜索s参数对应的目标函数的极小值点的流程图;
20.图3为本发明实施例提供的电路仿真优化装置的结构框图;
21.图4为一个实施例中计算机设备的内部结构框图。
具体实施方式
22.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
23.可以理解,本技术所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本技术的范围的情况下,可以将第一xx脚本称为第二xx脚本,且类似地,可将第二xx脚本称为第一xx脚本。
24.如图1所示,在一个实施例中,提出了一种电路仿真优化方法,所述电路仿真优化方法,具体可以包括以下步骤:
25.步骤s202,获取设计电路的初始设计参数,并根据电路的初始设计参数计算初始s参数值。
26.在本发明实施中,设计电路的初始设计参数是指电路设计后对电路中的电容、电感的初始赋值。同时初始设计参数也有一个预设的取值区间,例如电容或电感的取值一般不应该为负数或非常小的数值。本实施例提供电路仿真优化方法也是在初始设计参数的预设取值区间内找到使设计电路的性能最优的设计参数。
27.在本发明实施例中,对根据电路的初始设计参数计算初始s参数值的具体方法不做限制,例如,可使用芯和半导体(上海)科技有限公司研发的电路级仿真模拟程序xspice,或其他公司以由美国加州berkeley大学开发的spice模拟算法为基础的各类spice电路仿
真求解软件来得到电路的s参数在各个频点下的初始值。
28.步骤s204,根据所述初始s参数值和预设的s参数阈值判断所述设计电路是否满足设计要求。
29.在本发明实施例中,对设计电路的设计要求指对设计电路的性能上的设计要求,而电路的s参数值可以反映电路的性能,预设的s参数阈值可以代表对设计电路的设计要求,通过判断初始s参数值是否落在预设的s参数阈值范围内可以判断该设计电路在初始设计参数下是否满足设计要求。
30.步骤s206,当所述设计电路不满足设计要求,计算s参数对应的目标函数在所述初始设计参数处的导数。
31.在本发明实施例中,当设计电路不满足设计要求即初始s参数值在预设的s参数阈值范围之外。s参数对应的目标函数是指根据设计电路以及对该设计电路的设计要求得到的一个不确定表达式的误差函数,该误差函数的自变量即设计参数,或者说是待优化电器元件的参数,例如,设计电路中电容和/或电感的值。
32.在本发明实施例中,通过计算s参数对应的目标函数在初始设计参数处的导数可以判断初始设计参数处目标函数梯度情况。本实施例对计算s参数对应的目标函数在所述初始设计参数处的导数的具体方法不做限制,例如,可采用差分近似代替导数,例如当有n个自变量时,记初始点为{x1,x2,
…
,x
n
},和初始的误差值f0,选取较小值e,建议值为1e
‑
6。计算f
i
为点{x1,x2,
…
,x
i
+e,
…
,x
n
}的误差值。通过差分可以近似求出偏导数向量g=(f
′1,f
′2,
…
,f
′
n
)即为该点处的梯度。也可选用中心差分等算法得到更精确的梯度近似值。
33.步骤s208,根据所述导数在所述初始设计参数的预设区间内搜索s参数对应的目标函数的极小值点。
34.在本发明实施例中,可以根据s参数对应的目标函数在初始设计参数处的导数确定目标函数在初始设计参数处左右两侧的梯度情况,从而可以沿负梯度方向在所述初始设计参数的预设区间内搜索s参数对应的目标函数的极小值点。
35.在本发明实施例中,对根据所述导数在所述初始设计参数的预设区间内搜索s参数对应的目标函数的极小值点的具体方法不做限制,如图2所示,步骤s208可以包括以下步骤:
36.步骤s302,根据所述导数确定s参数对应的目标函数的梯度下降方向。
37.在本发明实施例中,当s参数对应的目标函数在初始设计参数处的导数为正数,则目标函数的梯度下降的方向在在初始设计参数处的左侧,当当s参数对应的目标函数在初始设计参数处的导数为负数,则目标函数的梯度下降的方向在在初始设计参数处的右侧。
38.步骤s304,确定s参数对应的目标函数沿梯度下降方向的一元函数。
39.在本发明实施例中,在给定频率区间内的误差函数无法用基本初等函数的表达式表示,记误差函数为f(x),每次迭代的初始点为x0,求得梯度下降方向
‑
g(x0),其中x表示向量。由于接下来按梯度方向下降搜索,所以只用计算x0‑
t*g(x0)上的目标函数值,即只用考虑一元函数f(x0‑
t*g(x0))。
40.步骤s306,根据所述初始设计参数的预设区间计算所述一元函数的区间[a,b],并
计算分别a、d1、d2处的函数值f0、f1、f2,其中d1、d2属于区间[a,b]。
[0041]
在本发明实施例中,关于区间[a,b],记初始的a点取为0,记用户输入自变量取值范围为:
[0042][0043]
其中,表示x
i
的下界为上界为记g
i
为梯度的第i个分量,则b可以用如下公式计算:
[0044]
3b=minb
i
,
[0045]
其中f0为区间[a,b]的左端点a的函数值,f1为区间[a,b]之间d1点的函数值,f2为区间[a,b]之间d2点的函数值。优选的,取区间[a,b]的0.382点为d1,取区间[a,b]的0.618点为d2,即区间[a,d1]的长度与区间[a,b]的长度比值为0.382,区间[a,d2]的长度与区间[a,b]的长度比值为0.618,通过将中d1、d2取区间[a,b]的黄金分割点,有效提高极小值点的搜索速度,减少计算量。例如,如果采用其他值如三分之一分割则每轮都需要计算新区间的三分之一处点与三分之二处点,即每次都要算两个点,没法利用之前计算过的点。而采用黄金分割点可以每次只计算一个点,利用黄金分割比的性质,d1在区间[a,d2]为0.618点,d2在[d1,b]中为0.382点,这样在新区间中只用再计算一次目标函数值。
[0046]
步骤s308,根据函数值f0、f1、f2确定s参数对应的目标函数的极小值点。
[0047]
在本发明实施例中,对根据函数值f0、f1、f2确定s参数对应的目标函数的极小值点的具体方法不做限制,例如,步骤s308具体可以包括以下步骤:
[0048]
步骤s402,判断f1是否小于f0。
[0049]
步骤s404,当f1不小于f0,则取所述一元函数的区间[a,d2]。
[0050]
在本发明实施例中,当f1不小于f0,可知此时一元函数非凸,此时可以将一元函数区间[a,b]的右端点改为d2。
[0051]
步骤s406,当f1小于f0,判断f1是否大于f2,当f1大于f2,则取所述一元函数的区间为[d1,b],当f1不大于f2,则取所述一元函数的区间[a,d2]。
[0052]
在本发明实施例中,若f1大于f2,按照梯度下降法要求,已经找到了比函数值更小的点,此时满足梯度下降法迭代步骤,为了提高精度找到最大下降点,可认为目标函数在给出的三个点上满足凸性,则一元函数的区间为[d1,b],否则可以认为极小值点在区间[a,d2]内。
[0053]
步骤s408,判断一元函数区间[d1,b]或[a,d2]是否满足终止条件;
[0054]
在本发明实施例中,判断一元函数区间[d1,b]或[a,d2]是否满足终止条件,即判断其中的d1与d2是否满足预设的精度要求,若循环过程中新计算的d1与d2满足用户精度要求则跳出循环输出结果。
[0055]
步骤s410,当不满足终止条件,取一元函数区间[d1,b]或[a,d2]的0.382点和0.618点,并计算0.382点和0.618点以及区间[d1,b]或[a,d2]左端点的函数值;
[0056]
步骤s412,根据0.382点、0.618点以及区间[d1,b]或[a,d2]左端点的函数值确定s参数对应的目标函数的极小值点。
[0057]
在本发明实施例中,当不满足终止条件,循环的迭代步骤s306到步骤s308,直至确定极小值点;当然如果满足了终止条件,则更新设计参数的取值,继续搜索极小值。
[0058]
本发明实施例提供的一种电路仿真优化方法,通过先计算设计电路的初始s参数,可以根据设计电路的初始s参数判断设计电路的初始设计参数是否满足设计要求,只有当初始设计参数不满足设计要求的情况下,再进一步对设计电路的设计参数进行优化,且在对电路的设计参数进行优化时,通过先计算s参数对应的目标函数在初始设计参数处的导数,可以判断目标函数的梯度方向,进而可以沿目标函数梯度下降方向搜索极小值点,确定优化设计,保障设计电路的仿真优化效果,且提高优化效率。
[0059]
如图3所示,在一个实施例中,提供了一种电路仿真优化装置,该电路仿真优化装置可以集成于计算机设备中,具体可以包括初始s参数值计算模块510、判断模块520、导数计算模块530以及极小值点搜索模块540。
[0060]
初始s参数值计算模块510,用于获取设计电路的初始设计参数,并根据电路的初始设计参数计算初始s参数值;
[0061]
判断模块520,用于根据所述初始s参数值和预设的s参数阈值判断所述设计电路是否满足设计要求;
[0062]
导数计算模块530,用于当所述设计电路不满足设计要求,计算s参数对应的目标函数在所述初始设计参数处的导数;
[0063]
极小值点搜索模块540,用于根据所述导数在所述初始设计参数的预设区间内搜索s参数对应的目标函数的极小值点。
[0064]
在本发明实施例中,初始s参数值计算模块510、判断模块520、导数计算模块530以及极小值点搜索模块540分别与上述电路仿真优化方法中的步骤s202、步骤s204、步骤s206、步骤s208一一对应,各个模块的具体工作作用说明可以参考本发明关于仿真模拟方法部分的说明,本发明实施例对此不再赘述。
[0065]
图4示出了一个实施例中计算机设备的内部结构图。如图4所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现电路仿真优化方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行电路仿真优化方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0066]
本领域技术人员可以理解,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0067]
在一个实施例中,本技术提供的电路仿真优化装置可以实现为一种计算机程序的形式,计算机程序可在如图4所示的计算机设备上运行。计算机设备的存储器中可存储组成该电路仿真优化装置的各个程序模块,比如,图3所示的初始s参数值计算模块、判断模块、
导数计算模块以及极小值点搜索模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本技术各个实施例的电路仿真优化方法中的步骤。
[0068]
例如,图4所示的计算机设备可以通过如图3所示的电路仿真优化装置中的初始s参数值计算模块执行步骤s202。计算机设备可通过判断模块执行步骤s204。计算机设备可通过导数计算模块执行步骤s206。计算机设备可通过极小值点搜索模块执行步骤s208。
[0069]
在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0070]
步骤s202,获取设计电路的初始设计参数,并根据电路的初始设计参数计算初始s参数值;
[0071]
步骤s204,根据所述初始s参数值和预设的s参数阈值判断所述设计电路是否满足设计要求;
[0072]
步骤s206,当所述设计电路不满足设计要求,计算s参数对应的目标函数在所述初始设计参数处的导数;
[0073]
步骤s208,根据所述导数在所述初始设计参数的预设区间内搜索s参数对应的目标函数的极小值点。
[0074]
在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
[0075]
步骤s202,获取设计电路的初始设计参数,并根据电路的初始设计参数计算初始s参数值;
[0076]
步骤s204,根据所述初始s参数值和预设的s参数阈值判断所述设计电路是否满足设计要求;
[0077]
步骤s206,当所述设计电路不满足设计要求,计算s参数对应的目标函数在所述初始设计参数处的导数;
[0078]
步骤s208,根据所述导数在所述初始设计参数的预设区间内搜索s参数对应的目标函数的极小值点。
[0079]
应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0080]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器
(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0081]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0082]
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
[0083]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。