文章分类

当前位置:首页>文章中心>第11周:PSpice AA——优化设计

第11周:PSpice AA——优化设计

发布时间:2021-12-20 点击数:1466

电路优化设计是指在电路设计已经基本满足功能和特性指标的基础上,根据设计人员对电路特性参数的指标要求,使用Optimizer优化设计工具,以“自动调整”的方式优化确定电路中一部分关键元器件参数的值,使电路特性指标能完全满足设计要求。


如果电路特性指标要求过高,或者用户设置的优化参数不合理等,最终达不到预计的要求,Optimizer也将给出这些元器件参数的一组最接近指标的最佳设计值。优化工具的(Optimizer)具体工作流程如图11.1所示。



图11.1 优化工具的工作流程


本期延用上一期的串联反馈式稳压电路,上一期找到了影响输出电压和输出电流的关键器件,这一期将对确定的关键器件进行调整,使电路特性进一步优化。

图11.2 本期实例电路


1

优化设计相关的概念


01

待调整的元器件参数


一个电路设计中包含有很多个元器件,但是其中只有部分元器件参数对电路特性影响较大,我们在灵敏度分析中称之为关键器件,在Optimizer工具中将其称为可优化参数(Optimizer parameters),或者称为可调整的参数。这些参数一般为下述四种类型:


  • 元器件值:比如电阻的阻值

  • 元器件的其他属性参数:比如电位器抽头位置的参数set

  • 由元器件值或是其他属性参数组成的表达式

  • 器件模型参数:比如双极性晶体管的电流放大倍数Bf


调用Optimizer工具时,用户需要指定电路中哪些是可优化参数,以及这些参数值的允许调整范围。如果没有指定调整范围,系统默认的调整范围是元器件标称值的0.1 ~ 10倍。


02

目标函数和约束条件


优化过程中要求达到的电路特性称为优化指标(Specification),例如电路的带宽大于100MHz,或是图11-2的稳压电路要求最大输出电流不超过190mA,这都属于优化指标。


根据在优化过程中所起作用程度不同,优化指标可以进一步分为下述两类:


  • 一类是希望通过优化尽量满足的优化指标称为目标函数

  • 还有一类是在优化过程中必须达到的优化指标称为约束条件


优化过程就是确保在满足约束条件的情况下,尽量改善目标参数的性能,从数学角度看,就是在一定约束条件下,求目标函数的极值问题。


举例说明

约束条件和目标函数:

设计一个电阻终端连接器,如图11-3所示,要求两个电阻之间能产生3.75V的输出电压(Vo),并且两个电阻的等效阻抗Ro必须等于100欧姆。需要找到符合这两个条件的最佳电阻值。


图11.3 电阻终端连接器


显然这里R1和R2的阻值就是可优化参数,使用Optimizer工具优化时,对于目标函数和约束条件可以有三种方式:


  • 认为Vo和Ro同等重要,建立两个目标函数;

  • 认为Vo最重要,设置Vo为约束条件,Ro为目标函数;

  • 认为Ro最重要,设置Ro为约束条件,Vo为目标函数。


由于Optimizer工具要求至少要有一个优化目标,所以不存在Vo和Ro均为约束条件。


当然图11-3使用这三种方式都能得到同样的解:R1=133.3欧,R2=400欧。然而大部分设计问题不会只有一个确定的解,而是在约束条件下,其解是一个与目标值误差最小的设计值。因此约束条件和目标函数选择的不同,电路优化设计的最终结果是不完全相同的。


03

设计优化算法


Optimizer工具采用多种优化算法,又称为优化引擎。在Optimizer工具窗口下执行Edit → Profile Setting,打开图11-4所示对话框,在Optimizer标签页显示了与优化算法相关的参数设置。


“One Goal”栏表示单目标函数时是选择最小二乘法还是直接最小算法(导数法)。而多目标函数均用最小二乘法,其中又分为改进的最小二乘法(MLSQ)、随机引擎(Random)和离散引擎(Discrete),可在图11.4标红的下拉菜单中选择。


图11.4 Optimizer工具的优化算法的设置


下面是三种主要优化算法的功能和特点:


0

1

改进的最小二乘法引擎

(MLSQ: Modified Least Squares Quadratic)


该算法能快速地确定被测量目标函数的最佳值,它使用的是无约束最小化(减小单目标的值)和有约束最小化(减小单目标的值同时满足一个或多个约束条件)运算法则,允许它将优化目标按非线性特点来约束。系统的默认设置就是采用改进的最小二乘法。图11-4中显示的就是最小二乘法的功能参数设置。


  • Delta:表示相对比例变化值,以百分比的形式体现。根据设计要求的准确性可以适当地改变Delta值大小,如果数据的准确性好,并且需要调整的数据很小,则可以适当地减小Delta值;如果数据的准确性很糟糕,并且需要调整的数据很大,则可以以适当增大Delta值。

  • Max# of Optimizations:设置最大优化次数,默认是20次,如果运行时发现没能达到优化结果,可以适当增大优化次数。

  • Cutback:当MLSQ算法对目标函数减小搜索时的最小内在分数值。

  • Threshold:MLSQ算法调整最佳化参数的门限值。默认值是0,是为了让参数的小改动不被优化算法运行所拒绝。


0

2

随机引擎

(Random Engine)


如果在优化工程中出现局部极小值点,将会影响优化效果,很难达到全局最小值。选用随机引擎,随机选取优化初值,可以避免出现这一问题。具体功能设置如图11.5所示。



图11.5 随机算法的参数设置


0

3

离散引擎

(Discrete Engine)


根据优化结果,选用与优化结果要求最接近的商品化元器件标称值,然后再运行一次模拟仿真。


上述三种优化算法的具体功能参数在实际应用中一般不用改动,均采用默认值就能很好完成优化任务。若有特殊要求,可以根据实际设计要求调整。在实际优化过程中,通常是几个优化算法结合起来综合使用,一般选用的顺序是:首先随机引擎,然后是改进最小二乘法,最后是离散引擎其中运用最广的是改进的最小二乘法。


2

优化工具的操作步骤


01

启动Optimizer工具


Optimizer的操作是在延用了上一期灵敏度分析的实例和操作步骤,即在调用Capture软件完成电路原理图绘制,并通过PSpice AD的模拟仿真,如图11.1所示的Optimizer设计流程中完成了第1~4步。同时还利用灵敏度分析工具分析得到影响电路特性函数最关键的元器件。


图11.6是上一期得到的结果。可以看出两个特性函数中R1、R2、R3的灵敏度值都比较大,所以选中R3,并按下Ctrl键后点击选中R2和R1,最后右键选择Send To Optimizer,就可以将这三个元件传递给优化工具,作为优化参数,同时也就调出图11.7的Optimizer界面。



图11.6 灵敏度分析得到的结果


如果没有进行灵敏度分析,可以在Capture窗口中选择PSpice→Advanced Analysis→Optimizer命令,同样可以调出Optimizer工具,不过这时需要在图11.7优化工具界面的参数区(Parameters)点击“Click here to import a parameter from the design property map…”将确定的关键元器件参数添加进来。

图11.7 Optimizer窗口结构


优化参数区选定的参数系统自动设置为标称值的0.1和10倍,如图11.7中R2阻值是46k,于是最小值是4.6k,最大值为460k。用户可以根据自己的实际需求和条件,更改参数范围,如图11.8所示,是修改后的可优化参数的选择范围。

图11.8 更改元器件参数范围


02

设置优化指标


Optimizer工具采用“电路特性规范参数(Standard)”和“波形曲线(Curve Fit)”两种方式描述优化指标参数要求。本节先介绍第一种方式,下一节介绍第二种。


电路特性规范参数指定了要优化的电路性能指标。用户需要在Specifications表格中添加供Optimizer调用的电路特性函数,添加方法跟上一期灵敏度分析调用电路特性函数方法相同。点击“Click here to import a measurement created within PSpice…”添加电路特性指标函数。如图11.9所示。

图11.9 设置电路特性函数的Specifications表格


Specifications表格中有12列:


  • 第1列为选中标志,第2列是运行状态标志,小绿旗表示运行正常,小红旗表示运行出错;


  • 第3列中包含两项设置,左侧的方块状图形,只有选中呈现对勾,优化设计才将该行描述的电路特性函数作为优化指标。再次单击则会去除选中的标记。右侧的小图标选中,上面出现有彩色小框,表示位于窗口左上方的Error Graph误差显示区会动态画出优化进程,如果再次单击,图标呈现只有坐标轴没有彩色小框,则Error Graph图表中不再显示该行电路特性在优化过程的变化情况;


  • 第4列“Profile”描述该行电路特性对应的模拟分析类型;


  • 第5列“Measurement”说明该行电路特性的名称和函数表达式;


  • 第6列和第7列用于指定该电路特性优化指标的最小值和最大值;


  • 第8列“Type”用于设置该行电路特性在优化过程中是作为目标参数(Goal)还是作为约束条件(Constraint)。只要单击该单元格,会出现下拉菜单,用户可以选择Goal或Constraint。在优化过程中,将在确保满足约束条件的情况下,使目标函数尽可能接近目标要求;


  • 第9列“Weight”用于给不同的电路特性赋予不同权重。Weight设置值应该是大于等于1的正整数。如果想要强调某个电路特性比其他电路特性更加重要,可以改变Weight栏的权重数值。选择合适权重的最好方法通常是试探法。选择一个权重后在Error Graph中查看优化结果,如果某个电路特性函数的优化结果不理想,可以将该电路特性设置更高的权重值,再重新运行,直至得到期望的结果;


  • 第10列“Original”显示的是每个元器件均采用标称值时的电路特性值;


  • 第11列“Current”显示电路特性函数“当前值”。如果优化过程顺利完成,各项优化指标均满足设计要求,“当前值”就是优化得到的电路特性值;如果优化未能取得期望的结果,这时“当前值”就是优化结束时的电路特性值;


  • 第12列“Error”显示的是优化结束后电路特性当前值与优化指标值之间的差距。如果正常完成优化过程,取得期望的结果,则Error一栏显示值为0%。


因为本例中原本设计要求是输出电压为9V +/- 5%,最大输出电流不超过190mA。在上一期中可以看出已经基本能满足设计要求,这里希望用Optimizer工具能进一步优化,提出输出电压变化范围缩小到1%,也就是输出电压约束在8.91V至9.09V之间,输出电流设为目标,希望不超过180mA。


因此在Max(V(out))行的Type列下拉菜单选为约束(Constraint),作为约束条件。Max(I(RL))输入最大值为180m,保持Type为目标(Goal),作为目标函数。这样的设置表示优化工具运行是要实现在确保输出电压在8.91V至9.09V之间的条件下,使得输出电流尽量不超过180mA。


03

选择优化算法,启动优化进程


按照默认设置,选择改进的最小二乘法(Modified LSQ),如果优化失败,可以选择随机引擎(Random)后再选改进最小二乘法(MLSQ)。如图11.10所示。

图11.10 选择优化算法


完成上述设置后,在Optimizer窗口中执行Run→Start Optimizer命令,或者单击工具栏中的运行图标,即可按照已设置的参数进行优化。在优化过程中,在Optimizer窗口的运行状态信息窗口将动态显示优化过程的进展情况。左上角的Error Graph误差图区也会动态显示运行过程各项电路特性函数值与期望值之间的差距。


优化结束后,在Specifications表格的最后一列显示Error为0%,说明优化达到预期目标,这时前面一列的“Current”显示的数值就是优化后的电路特性函数值,而右上方的参数显示区中也有“Current”列,表示经优化确定的元器件当前取值。图11.11是本次实例优化运行后的结果。

图11.11 优化结果的显示


图11.11表示原电路只要将电阻R2、R3、R1分别改成图中显示的:29.7278kΩ、22.9626kΩ和776.6087Ω,就可以满足优化设计的要求。这时输出电压达到8.9988V,最大输出电流为179.977mA。


由于改进最小二乘法提供的电阻阻值是非商业化元件值,可以将改进最小二乘法修改为离散引擎(Discrete),如图11.12所示。然后在参数区单击Discrete Table框,在下拉菜单中选择Resistor-1%,对三个电阻重复同样操作,选择容差为1%的电阻,重新运行仿真,此时得到三个电阻29.4kΩ、23.2kΩ和768Ω就都是市场上可购买到的阻值了。



图11.12 使用离散引擎的优化结果


3

曲线拟合优化


在进行优化设计分析时,除了前面介绍的电路特性函数作为优化目标外,还可以采用曲线作为优化指标,运用曲线拟合的方法,使优化设计结果与目标曲线要求相吻合。


本节使用有源带通滤波器电路为例,进行交流扫描分析,利用Optimizer优化该电路的幅频特性和相频特性曲线。




图11.13 有源带通滤波器的电路图


调用PSpice对有源滤波电路进行交流扫描分析,并分别画出电压增益的幅频特性曲线DB(V(out))和相频特性曲线P(V(out))。交流分析的参数设置如图11.14,仿真结果如图11.15。

图11.14 交流分析的参数设置



图11.15 有源带通滤波器的仿真结果


图11.15所示的频率响应波特图基本具备了带通形状,但与优化目标曲线还是有很大距离,希望的目标曲线(参考波形)如图11.16所示。因此可以在该电路模拟分析的基础上,使用优化工具的曲线拟合法进行优化分析,使输出的实际波形与优化目标的参考波形相吻合。


图11.16 有源带通滤波器的优化目标曲线


01

曲线拟合参考文件的设置


使用曲线拟合方法优化电路是采用一组数据描述的参考波形作为优化目标。所以首先就要建立描述参数波形的数据文件,即曲线拟合的参考文件。使用记事本等文本编辑器就可以。


曲线拟合参考文件的格式要求第一列描述的是变量参数,第二列开始,每一列描述一个参考波形。参数文件的第一行为标题行,说明每一列的相关内容,其中标题行采用的名称由用户自行规定。在设置曲线拟合的规范目标时,将采用标题行名称来制定相应的参考波形。若使用者没有确定标题行名称,根据PSpice规定,从参考文件的第二列开始,每一列默认名称依次为Column_1(实际位于参考文件的第二列)、Column_2……


图11.17中,参考文件的第一列描述的是变量参数“Frequency”;第二列描述输出信号相位“PHASE”的参考波形数据;第三列描述输出信号增益“Max”的参考波形数据。参考文件设置完后,最好保存在当前电路设计目录下,供设置曲线拟合优化目标时调用。

图11.17 曲线拟合参考文件


02

曲线拟合优化的参数设置


和第二节中启动Optimizer工具方法相同,在Capture窗口中选择PSpice→Advanced Analysis→Optimizer命令,打开Optimizer工具窗口。然后选择点击左下角的“Curve Fit”标签页,得到曲线参数的调整表格,如图11.18所示。

图11.18 曲线拟合的表格区


图11.18共含10列(与2.2节相同的列就不赘述了):


  • 第3列“On/Off”中包含三项,前面两项和2.2节优化电路特性相同,第三项的作用是在优化工程中动态显示优化工程中实际波形曲线与曲线拟合规范的进程,若用户希望在Probe窗口动态显示待优化的波形和描述优化目标的参考波形之间偏差的变化情况,可通过点击第三项的图形成如下红框所示;如果不要实时显示,可以再点击一次,该图标就变为只有坐标轴无图形:

  • 第5列“Trace Expression”:表示曲线拟合规范的波形表达形式,用户可以通过点击“Click here to enter a curve-fit specification…”文本所在行,在弹出的对话框中创建满足设计要求的波形曲线表达式


  • 第6列“Reference txt”:指定参考文件的名称和所在路径,单击该单元格,在打开的对话框中根据存放参考文件路径,添加相应的波形参考文件


  • 第7列“Ref. Waveform”:用于指定参考文件中曲线拟合目标采用哪一列数据描述参考波形。点击该栏单元格,会出现下拉菜单,其中会列出参考文件中的所有波形名称,选择所需即可


  • 第8列“Tolerance %”:表示相对容差,容差值确定了优化完成的标准


  • 第9列“Weight”:设置权重,其值是大于等于1的正整数,用来设置不同曲线拟合要求的优先级,权重值越大优先级越高,该项只对MLSQ算法有效,并且只有当存在多个曲线拟合规范时才有意义


  • 第10列“Error”:显示误差值,优化过程中,实际模拟波形与优化目标值之间的差距变化。该栏显示的并不是优化结果波形与参考波形之间的均方根误差值,而是均方根误差与Tolerance栏指定的相对容差值之差,均方根误差小于相对容差值,则Error栏显示结果为0,表示已满足设计要求,而不是说实际优化结果波形与参考波形完全符合,没有任何偏差。


所有元器件参数及曲线拟合规范设置完成后的Optimizer工具窗口如图11.19所示.

图11.19 元器件参数及曲线拟合规范设置


03

优化结果的分析


所有曲线拟合参数设置完成后,在Optimizer工具窗口选择MLSQ引擎并执行Run命令,启动曲线拟合优化设计进程,优化结果如图11.20所示。



图11.20 Optimizer工具窗口显示的优化结果


由于在“Curve Fit”表格区的on/off列中第三项选择了呈现波形,所以可以在Probe窗口中动态地显示实际模拟优化结果波形逐渐逼近目标波形的过程。


仿真结束后得到图11.21所示的结果,P(V(out))是在优化后的输出相位的频率特性波形,R(“PHASE”)是描述输出相位优化目标要求的参考波形,同理DB(V(out))是优化后增益的频率特性波形,R(“Max”)是描述输出增益优化目标要求的参考波形。从优化后实际波形和参考波形的比较,可以清晰看出,优化结果基本满足参考波形的设计要求。

图11.21 优化后的波形与参考波形的比较


若要查看优化过程中任何一次模拟仿真结果,可以在误差图(Error Graph)中点击Error Graph图中横坐标(代表模拟次数),例如选中第6次分析过程,如图11.22所示,相应的在Parameters和Curve Fit表格区都显示该次分析的参数值和曲线拟合规范结果。若要查看实际输出相位频响情况,点击P(V(out))所在的行,单击右键在弹出的快捷菜单中选择View[Run#6]in PSpice,则Probe窗口中会显示第6次的模拟优化结果。

图11.22 查看优化过程中第六次的优化结果


优化完成后,采用离散引擎,选择5%容差的电阻,运行得到最接近商品化元器件的标称值。这时只要回到原电路中,将各元器件的数值修改为图11.23“Current”列中的“当前值”,即可达到期待的频率响应。


图11.23 离散引擎运行后的元器件数值


本期介绍了优化分析的基本概念(设计变量、约束条件、目标函数等),并重点介绍了使用Optimizer工具对电路进行优化分析的具体使用方法——


Optimizer工具可以以电路特性函数规范参数和曲线参数扫描两种方式进行优化指标的描述,通过Parameters、Specifications和Curve Fit表格查看相应的分析结果。从实例分析可以看出优化工具是在满足电路设计要求的基础上,使电路特性得到最大的改善提升,实现电路的最优化设计。