第5章优化(Optimizer)工具的使用 电路模拟(仿真)是非常重要的,它辅助工程师设计了各种电路。但与期望的EDA还有距离,人们是从两方面解决这个问题。一是基于数学的最优化算法;一是基于知识信息系统,二者都有很大发展。PSpice/Optimizer是基于前者,这就需要读者了解一些数学的最优化算法,本章只做一些简介,主要是介绍优化(Optimizer)工具的使用方法。 5.1 优化(Optimizer)工具的工作流程 优化(Optimizer)工具的工作流程如图5-1所示。 图5-1 优化工具(Optimizer)的工作流程 图中: - 设置电路图(与第4章相同);
- 调用PSpice进行电路特性模拟(与第4章相同);
- 确定电路特性函数,(与第4章相同);
- 检验电路特性函数模拟结果(与第4章相同);
- 运行灵敏度分析,确定最关键的元器件(选作项目这与读者本身知识和经验有关);
- 确定最关键的元器件的参数;
- 设置优化特性函数,PSpice提供有53个电路特性函数(Measurement);
- 确定优化目标函数;
- 确定约束条件和目标函数的权重;
- 选用优化引擎(Engine);
- 运行优化工具;
- 判断电路是否满足设计要求,有3项选择:
- 否!调整优化过程;
- 否!修改修改元器件参数或电路;
- 是!已满足,依此,更新电路中元器件参数值;
- 打印输出
- 保存文件
从流程图中可以看出,优化程序是在分析的基础上进行的,优化的方法涉及到了数学的最优化算法,下面先介绍有关优化算法的基本知识。然后再按优化工作流程具体介绍优化(Optimizer)工具的使用方法。 5.2 优化的基本概念 5.2.1 设计变量 优化问题离不开设计变量、目标函数和约束条件等三个方面的问题。而首当其冲的就是如何选择设计变量。 设计变量:就是在优化设计中出现的各个可以选择取值的变动参数。 例:一个RC单管放大电路如图-2所示。在工作时,有一个100pf的寄生负载电容。我们希望设计一个增益为40,并具有改善通频带的放大器。 这个初始电路是设计者依据本身或他人的(书本的)经验进行选择的。它具有较为合理的拓扑结构以及较好的元器件参数(标称值作为优化初始值)。这些元器件参数都对设计结果有影响,都可以选作设计变量。通常只选择那些影响较大的元器件参数作为设计变量。PSpice/Optimizer 设计变量包含: - 代表元件参数值。例如电阻的阻值R、电容的参数值、晶体管器件模型参数,如放大倍数β等。
- 代表元件其它性质。比如,滑动变阻器在电路中滑头位置。可用Set指令,并设定一个在1与0之间值来表示这个性质的设计变量。
- 用特殊表达式代表的器件的值或其它性质。比如,exp(),log(),sin(),max(),L,db(v(load)/v(in))、bandwidth(V(load),3),即上节所述电路特性函数。PSpice提供有53个电路特性函数(Measurement)。
设计变量也可通过灵敏度、参数分析进行选择,PSpice/Optimizer9.0版本原可选择8个设计变量,10.3版本没有限定。本例的设计变量选择L和RL,于是,可用数学上独立变量的符号写出 5.2.2目标函数和约束条件 目标函数是待优化的目标。目标函数是评价电路优化设计好坏的标准。它是n个设计变量的一个实函数,也就是一个向量X的函数,写成 由此可见,所谓电路的优化设计,从数学角度上看,就是在一定的约束条件下,求目标函数的极值问题。 最优化算法由于要考虑各种不同要求,所以涉及面很广。诸如要不要考虑约束条件?是等式约束还是不等式约束?目标函 数是线性的(称为线性规划)还是非线性的(称为非线性规划)?是单目标优化还是多目标优化?是确定性优化(设计变量取值是确定的)还是随机性优化(设计变量取值不确定,是按一定的概率统计分布取值)等等。PSpiceA/D9.0/Optimizer只能完成的是目标和约束8项排列组合,即无约束的8个(线性的或非线性的)目标优化直到有7个(等式或非等式的)约束和1个(线性的或非线性的)单目标优化的各种组合。 目标函数和约束条件代表一个设计的理想性能,而这个性能不易得到。例如,一门电路不能完成零传输延迟,优化的目的是尽可能接近目标值(也就是尽量减少误差)。 当解决具有目标和约束的问题时,即PSpice10.3/Optimizer调整目标使之接近目标值时,会出现与约束的规定相背离的状况,就是对于一个给定的迭代指令在值域上不可能总是减小,有时反而增大。 在进行优化时必须确定哪个是目标哪个是约束?而在很多情况下,目标和约束可以有几种合法的方式(排列组合)来描述同一设计。 例如:若设计一个电阻终端连接器如图5-3所示。它在两个电阻之间的接点能产生一个3.75V(±0.1)输出电压(Ve),并且两个电阻的等效阻抗Re必须等于100Ω(±1)目的是找到符合这两个条件的最佳电阻值。 显然,R1和R2为设计变量,用下面的联立方程能够解决这个问题。 PSpice/Optimizer时,下面三种方式中任一种都能够描述这个设计,都是合法方式。 - 认为Ve和Re同等重要,建立两个目标。
- 认为Ve最重要,设置Ve为约束,Re为目标。
- 认为Re最重要,设置Re为约束,Ve为目标。
注释:因为至少要有一个优化目标,所以不存在Ve和Re均为约束的情况。 像这样有唯一解的问题,PSpice/Optimizer用这三种方式都能有同样的解,然而大部分设计问题不会这样只有一个确切的解,而是在约束条件下,其解是一个与目标值误差最小化的设计值,由于目标、约束选择各异,因此答案并不唯一。 按目标、约束进行划分时,PSpice10.3 /Optimizer可以解决四类问题,见表5-1。 5.3 建立目标函数 目前模拟电路CAD进行的基本步骤: - 对电路的性能要求,由设计人员选定一个初始电路,即选定结构和参数,作为出发点。
- 给出一个认为所设计的电路性能是合格的衡量标准,即确定目标函数。目标函数一般来说,它表征所设计电路的实际响应(特性)与所要求达到的理想响应(特性)之间的误差。我们认为目标函数最小的电路就是性能最优的电路。并确定设计变量和约束条件。
- 利用CAA软件,进行电路分析;然后,用Optimizer软件计算目标函数,并逐步调整电路设计变量(即调整指定的电路元器件参数)直到目标函数小于规定的容限值,至此,电路优化即告结束。
由上述可见,电路优化问题的焦点集中于两个方面: - 如何确定目标函数?
- 用什么策略调整设计变量,使之最容易达到预期目标。
本节介绍如何确定目标函数。 Optimizer使用的是常用的误差函数,即实际电路性能与理想电路性能的误差函数。电路优化设计的实质是使误差函数为极小。电路优化设计的过程,就是误差函数逐步降为极小的过程。常用的最小二乘法的目标函数为 5.4 单目标函数的优化 目标函数确定之后,下一步就是用迭代法寻求最优的设计变量(向量)P,促使目标函数达到最小值,若此最小值小于预先规定的容限,则由该组设计变量(向量)p和其它不变的参数所组成的电路便是最优化电路。 最优化方法在实际解决问题时分为 :导数法、直接法、梯度法和统计优化法。 导数法,也就是直接最小算法(Minimize)最为简单,适合于简单函数或有显式函数的目标函数,如功耗或传输时间这类目标函数等;如求增益优化目标是使其尽量大,则取该目标函数的负数,结果还是最小化。 几点说明: (1)在PSpice/Optimizer中,上式是使用一个有限的差分公式迭代求解的,即 式中,h是一个小的增量,即步长。 (2)全局和局部最小值。如图5-6所示的具有两个最小值的一维函数曲线。点M1是局部最小值,它满足了最小值的条件,但是还有一个比它更小的点,点M2是该函数的全局最小值。由此可以看出,选择初始值的重要性:若选择A点,PSpice/Optimizer将很容易找到局部最小值,若选择B点,将很容易找到全局最小值。所以,在开始优化之前,找到一个近似的期望值的位置(可通过全域参数步进分析)是十分有好处的。 *5.5多目标函数的优化[1] [1] 本节为选学内容 PSpice/Optimizer中,多目标函数均是用最小二乘法(Least Squares)构成的。例如,在滤波器的设计中,常用下列目标函数来设计参数 由于,f(X)的导数雅可比(Jacobi)矩阵容易求得,式(5-14)又具有平方和的特殊形式,据此研制了一些有效的方法可供使用。PSpice/Optimizer用的是高斯—牛顿法。 高斯—牛顿法的迭代公式推导如下: 5.6 优化设计引擎 Optimizer工具采用多种优化算法,又称优化引擎。PSpice/Optimizer对单目标优化可以在Optimizer工具窗口执行 Edit Profile Settings 子命令,显示在Optimizer标签页以曲线作为优化指标的参数设置与优化引擎相关的参数设置,通过One Goal栏,选择直接最小算法:点击(Minimize),即是导数法,或最小二乘法:点击(Least Squares)。多目标函数均是用最小二乘法。其中又分为改进的最小二乘法(又称engine引擎,MLSQ:Modified Least Squares Quadratic)、最小二乘法(LSQ:Modified Least Squares Quadratic)以及随机引擎(Random engine)和离散引擎(Discrete engine),如图5-7所示。 下面主要介绍4种优化引擎的功能特点: 1.改进的最小二乘法(又称engine引擎,MLSQ:Modified Least Squares Quadratic) 采用该引擎能快速的确定到被测量目标函数的最佳值。改进的最小二乘法引擎使用的是有约束和无拘束的最小化运算法则, 允许它将优化目标按非线性特点来约束。 通常改进的最小二乘法引擎比最小二乘法引擎运行的要更快更准确。MLSQ优化引擎的具体功能参数设置如图5-7所示。 图5-7中: (1) 行:相对比例变化值(以百分比的形式体现)。例如: 若一个参数实际值为10-8,Delta设定为1%(默认值),则MLSQ引擎在以10-10来选择参数。1%的默认值准确性可以很好的适应多数模拟仿真工作情况的需要。根据设计要求的准确性可以适当的改变Delta值大小。如果数据的准确性很好,并且需要调整的数据很小,则可以适当的减小Delta值。如果数据的准确性很糟糕,并且需要调整的数据很大,则可以适当的增大Delta值; (2) 行:最大优化次数; (3) 行:当MLSQ 引擎对目标函数减少搜索时的最小内在分数值; (4) 行:MLSQ 引擎调整最佳化参数的门限值。默认值为0是为了让参数的小改动不被优化引擎运行所拒绝,为了得到理想的优化结果,可以适当的调整门限值大小。如果数据质量很好,并且门限值比零大,则可以适当减小门限值来找出更为准确的参数值。如果数据质量不可靠,则可以适当增大门限值来确定 optimizer 在运行期间不被阻止,顺利运行。
2.最小二乘法(LSQ:Modified Least Squares Quadratic) 若采用的改进的最小二乘法不能达到理想结果,可以使用最小二乘法引擎来确定被测量目标函数的最佳值。LSQ优化引擎的具体功能参数设置如图5-8所示。 图5-8中: (1) 行:灵敏度扰动大小,该项主要是在灵敏度工具运行过程中控制Delta值的增加,以便来确定参数值的大小。默认值为0.005是指在每次灵敏度分析中,将现有的参数值乘以0.5%得到的参数值结果; (2) 行:绝对函数容差参数集合(AFCTOL),其发生条件为:在RFCTOL 和 XCTOL 测试已经失败的情况下,LSQ 引擎找出的函数值(平方根总和的1/2)小于AFCTOL 的点; (3) 行:相对函数容差参数集合(RFCTOL),可以检测错误值的大小,其发生条件为: ; (4) 行:在指定的X范围内的容差参数集合(XCTOL),可以检测阶跃值的大小,其发生条件为实验过的牛顿阶跃和相对阶跃值小于等于XCTOL; (5) 行:错误的容差参数集合(XFTOL),可以检测在运行过程中从集合点到非关键点的集合。其发生条件为: 1) 无AFCTOL,FCTOL或XCTOL集合; 2)实际阶跃产生值小于两次的预测减小值; 3)相对阶跃值小于等于XFTOL。 (6) 行:最小量因素到增量可信区域,在LSQ engine运行中,可以增加的阶跃最小值; (7) 行:最大量因素到增量可信区域,在LSQ engine运行中,可以增加的阶跃最大值; (8) 行:LSQ engine运行的最大次数。 3.随机引擎(Random engine) 选用随机引擎,随机的选取优化初始值,将解决MLSQ和LSQ不能确定初始值和局部最小极值点的问题。随机引擎的具体功能参数设置如图5-9所示。 图5-9中: 每次阶跃的范围。例如:设定该值为7。有一个参数最小值是10,最大值是16,则该参数显示的结果为10, 11, 12, 13, 14, 15, 16; 最大运行次数; 运行结束时返回运行的最佳值; 设置随机改变元器件值的不同顺序号。该随机产生的“种子”不像蒙特卡洛分析工具那样,该引擎的“种子”在运行过程中不会自动改变。因此,如果重新运行优化引擎时不改变任何参数值将会得到相同的结果。
4.离散引擎(Discrete engine) 离散引擎是指选定与优化结果要求最接近的商品化元器件系列标称值。离散引擎的具体功能参数设置如图5-10所示。可以通过Discrete Files来添加、删除相应的离散文件,在Discrete Table中选择符合设计要求的离散值系列。具体在优化结果中如何选择符合设计要求的商品化元器件系列标称值,可以参考5.8.6运用离散引擎确定参数值相关内容。 上述4种优化引擎的具体功能参数在实际应用中一般不用改动,均采用默认值就能很好的完成优化任务。若有特殊要求,可以根据实际设计要求调整。在实际优化过程中,通常是几个优化引擎结合起来综合使用。一般选用的顺序是:首先是随机引擎,然后是最小二乘法或者改进的最小二乘法,最后是离散引擎分析。其中运用最广的是改进的最小二乘法。 下面再回到工作流程图,介绍优化(Optimizer)工具的使用方法。 5.7 启动Optimizer工具 本章仍然以射频放大器为例,设置交流模拟分析(不多赘述,参看第四章4.3节相关内容),要求该射频放大器的增益在5-5.5dB范围内,带宽不小于200MHz,启动Optimizer工具与启动Sensitivity工具方式相同如图5-11 所示。 运行Optimizer则出现Optimizer工具窗口如图5-12所示。 图中,①、②、③为优化分析结果显示区(也是高级分析(AA)五个工具各自不同结果的显示区)。 ①“Parameters”表格区:显示优化过程调整元器件参数区。 ②“Specifications”表格区:显示优化过程调整目标函数和约束条件区。 ③误差图(“Error Graph”)区:显示优化过程动态进程区。 下面将逐一介绍优化工具窗口中各个区域功能特点及其使用方法。 5.8 调整元器件参数 5.8.1设计变量 在优化过程调整元器件参数区的参数数据多是由灵敏度分析查找得出对电路特性参数优化影响最关键的元器件参数,如R8、R6、R4,即设计变量。为了加速优化设计的进程,此处的设置要尽量地减少设计变量的数目而不是增多,但也可以由设计师自行选定设计变量。按如图5-13所示进行,作进一步设置。 图5-13中:
5.8.2调整设计变量--在“Parameters”表格区调整 1.在“Parameters”表格区调整,如图5-14所示。 图5-14中: 其中的(6)、(7)、(8)部分的参数值皆可调整,为了加速优化进程,提高优化设计效率,可以缩小Min和Max值之间的元器件参数变化范围,具体参数设置如图5-15所示。 2. 添加设计变量时,可单击 文件所在行(与执行右键Parameters快捷菜单中的Import Parameters子命令作用相同) 如图5-16所示,将弹出Parameter selection框。从图5-16 Parameter selection框里选取拟添加的设计变量,使之高亮显示,单击OK按钮,则添加该元器件设计变量到Parameter中,以C3为例,如图5-17所示。 关于Parameters区设计变量的添加还可以在电路图编辑器中设置要调整的元器件参数。还是以无源元器件C3为例,在Capture中选中C3,单击右键执行快捷菜单中的“Export Parameters to Optimizer”子命令(与执行PSpice/Advanced Analyses/Export Parameters to Optimizer子命令作用相同),同样可以添加该元器件设计变量到Parameter中。 而对于有源元器件的设计变量添加则相对复杂一些,有源器件主要是模型参数的添加。以电路中有源元器件Q1为例,在Capture中选中Q1, 单击右键执行快捷菜单中的“Import Optimizable Parameters”子命令(与执行PSpice/Advanced Analyses/Import Optimizable Parameters子命令作用相同),出现模型参数的Import Optimizable Parameters列表对话框,在列表中选择Q1中要调整的模型参数,以反向饱和电流IS为例,使之高亮显示,单击OK按钮,则添加该模型参数名到电路图中选中元器件的下方显示,如图5-18所示。 然后在元器件选中的情况下,执行执行快捷菜单中的“Export Parameters to Optimizer”子命令(与执行PSpice/Advanced Analyses/Export Parameters to Optimizer子命令作用相同),则设计变量Q1模型中的IS模型参数被添加到Parameters列表中,如图5-19所示。 5.8.3调整目标函数 --在“Specifications”表格区调整 即特性函数法。有关采用图表法的优化设计,将在5.9节介绍。通常以特性函数为目标函数,经过灵敏度分析找出最关键的元器件传送到优化工具中,如果轻易改变它,前面的工作可能失效。并且特性函数以一、二个为宜。如需要调整犹如5.8.2节设计变量的调整那样如图5-20所示,采用左上角Standard标签页。 5.8.4误差图(Error Graph) 在图5-12中,第3区误差图“Error Graph”图表显示区:它的作用是在优化过程中动态显示优化进程,以及显示电路特性函数当前值与优化目标值的差距。 如使用者希望在该区显示某个电路特性函数在优化过程中的变化情况,可将图5-21所示的“On/Off”处于“On”状态通过点击图形成 ,再点击一次,该图标呈现 状态,只有坐标轴无图形。如显示多个特性函数只要皆处于选中状态即可。选中状态的图标将以不同形状和颜色的几何图形显示不同的电路特性函数。 所有参数都设置完毕,选择MLSQ优化引擎,按下RUN键出现如图5-22所示图表。 70%,前3次优化分析变化不大,但第4次分析后与目标值已非常接近,第5次分析后,增益已经满足优化设计要求,误差显示为0。带宽为带菱形框 ,优化前带宽低于优化目标值,误差约为30%。也是前3次优化分析变化不大,但第4次分析后,带宽已满足优化要求,误差显示为0。 如果同时优化的电路特性函数较多,优化前增益值与优化目标之间误差很大,则Error Graph图中显示的曲线会很混乱,也存在相应的图表显示误差,这时可单击Specification表中(以增益为例)“On/Off”所在行的增益方框图标,使其中的方形消失,这样Error Graph图中只保留带宽特性变化情况,如图5-23a所示。同理,可以在Error Graph图中只保留增益特性函数变化情况,如图5-23b所示。 a) 带宽特性函数变化Error Graph b) 增益特性函数变化Error Graph 显然单个优化参数的变化情况Error Graph图要比多个参数的变化情况Error Graph图清晰、详细、准确很多。 若要在误差图(Error Graph)中显示运行过程中某一次的分析数据可以点击Error Graph图中横坐标(代表模拟次数),则相应的在Parameters和 Specifications表格区显示该次分析的参数值和电路特性函数值。例如:选中Error Graph图中的第4次分析过程,如图5-24所示。 在图5-24中,Parameters和 Specifications表格区显示该次分析的参数值和电路特性函数值是历史记录数据,是只读方式不能被编辑修改。 若用户想把这次的优化结果作为下一次优化模拟分析元器件的参数初始值,可以在Error Graph图中单击右键,执行快捷菜单中的“Copy History To Next Run”子命令。如图5-25所示。 注解说明:该命令只有在单击工具栏中的 按钮,停止优化分析进程的前提下才是有效的。并且“Copy History To Next Run”子命令不能复制优化模拟分析中的引擎设置等内容,只能复制优化模拟分析元器件的参数值。 同样,根据设计需要,可以清除Error Graph图表记录,执行图5-25中的“Clear History”子命令,则相应Error Graph图表的曲线和模拟仿真优化运行信息都将被删除,只保留Parameters表格区中Current一栏最后一次模拟仿真分析的参数值来作为下一次优化模拟仿真分析的初始值。 注解说明:执行该命令后,Log File文件中的内容不受任何影响,用户可以查阅优化分析原始数据。
5.8.5优化的最佳结果 运行Optimizer工具结束后,可从①“Parameters”表格区、“Specifications”表格区显示优化结果,如图5-26所示。 图中显示,对于范例射频放大器,只要将R8、R6和R4的电阻值改为:3.57 、702.5964 和238.8923 就可以满足优化设计要求,使电路增益为5.2489dB并且带宽也可以达到212.6955MHz。取得误差为零的理想结果,这在实际上不容易办到的。如是精确的电阻值也是理想数据。 像灵敏度分析一样,优化分析工具同样可以把设置好的优化数据结果发送给其他分析工具。在Optimizer工具窗口选中“Specifications”表格区选中要进行优化设计的电路特性函数名称,单击右键在出现的快捷菜单中,执行Send to子命令把元器件参数发送给Sensitivity/Monte Carlo/Parametric Plot工具,如图5-27所示。 若要查找优化分析原始数据只要如图5-28所示,就可轻松的调出结果。 调出的原始数据如图5-29所示,图中显示的是第5次优化运行结果。 5.8.6运用离散引擎确定参数值 离散引擎(Discrete engine)是选定与优化结果要求最接近的商品化元器件系列标称值。以射频放大器电路为例,经过优化设计后,所有的电路特性参数,目标要求和约束条件都也满足设计标准,达到设计要求的理想结果,但优化结果显示的有效电阻R8、R6和R4值,分别为3.57Ω、702.5964Ω 和238.8923Ω,很显然这不是理想的商品化电阻系列标称值,为了使优化结果运用到实际生产中,提高生产效率,所以一般在优化分析过程的最后阶段都要调用离散引擎,将其优化值符合最接近的商品化元器件系列标称值。 在以射频放大器为例的优化分析基础上,调用离散引擎: 1.从工具栏的引擎选择下拉列表选择Discrete engine,如图5-30所示。 2.选择离散引擎(Discrete engine),将显示在Parameters 表中的Discrete Table 一列,如图5-31所示。 3.从离散值表中选择符合要求的离散值系列,如图5-32所示,选择的是Resistor-10%(电阻标称值精度为10%离散系列)。 4.运行离散引擎(Discrete engine),显示分析结果:R8=3.6Ω , R6=680 Ω , R4=240Ω ,如图5-33所示。 5. 返回到电路图编辑器中,修改相应元器件参数,使其更新为符合生产标准的系列标称值。(可以在Optimizer工具窗口的Parameter表格区选中一个元器件名称,单击右键在出现的快捷菜单中,执行Find in Design子命令,将使电路图中该元器件处于选中状态,同时窗口切换为电路图绘制软件Capture窗口。在电路图中修改选中元器件的参数值大小,更好的适应电路设计要求。) 6.再对电路重新进行一次模拟分析,检验电路特性和模拟结果波形,确保是所期望的理想优化结果。 5.9 曲线拟合分析 在进行优化设计分析时,除了可以采用5.8小节的电路特性函数作为优化目标外还可以采用曲线作为优化指标,运用曲线拟合的方法,使优化设计结果与目标曲线要求相吻合。本节以有源带通滤波器电路为例,进行交流信号模拟分析,使该电路的增益和相位达到曲线设计要求的频率特性。 5.9.1电路原理图设计及电路模拟仿真 1. 电路原理图设计 调用Capture10.3进行电路原理图设计,以光盘自带的有源带通滤波器电路为例,其图如5-34所示。该电路实例所在路径为: ... ools pspice tutorial capture pspiceaaandpass。
2.电路仿真模拟 调用PSpice对有源带通滤波器电路进行交流分析,并检查结果:交流分析模拟仿真参数设置如图5-35所示,分别调出输出电压相位P(V(Vout))和增益DB(V(Vout))随频率变化的曲线交流模拟分析结果,其电路输出波形如图5-36所示。 图5-36所示的有源带通滤波器电路输出波形基本具备了带通形状的频率特性,但是与优化目标曲线(参考波形)还是有很大的差距,优化目标曲线(参考波形)如图5-37 所示,因此可以在该电路模拟分析的基础上在优化工具中运用曲线拟合法进行优化分析,使输出的实际波形也优化目标的参考波形相吻合。 5.9.2 曲线拟合参考文件的设置 使用曲线拟合方法优化电路是采用一组数据描述的参考波形来作为优化目标。所以首先就要建立描述参数波形的数据文件,即曲线拟合的参考文件。建立参考文件的方法比较的简单,只要打开Windows的“记事本”程序,采用一般的文本编辑工具就足以胜任了,具体设置如图5-38所示。 曲线拟合参考文件的格式规范特点:参数文件的第一列描述的是变量参数。从第二列开始,每一列描述一个参考波形。参数文件每一列的第一行为“标题行”,说明该列的相关内容。其中标题行采用的名称由用户自行规定。在设置曲线拟合的规范目标时,将采用标题行名称来指定相应的参考波形。若使用者没有确定标题行名称,根据PSpice规定,从参考波形的第二列开始,每一列的第一行默认名称依次为Column_1、Column_2……。(实际位于参考文件的第二列)。 图5-38中:参考文件的第一列描述的是变量参数“Frequency”。第二列描述的输出信号的相位“PHASE”参考波形;第三列描述的输出信号的增益“Max”参考波形。参考文件设置完毕后,最好保存在当前电路设计目录下,供设置曲线拟合优化目标时调用。
5.9.3 曲线拟合规范的曲线参数设置 --在“Curve Fit”表格区调整 启动优化(Optimizer)工具(参看5.7节内容),在优化Optimizer工具窗口,点击左上角的 标签页,创建曲线拟合规范,关于调整电路相关的设计变量可在“Parameters”表格区调整完成(不多赘述,参看5.8.2小节内容)这里主要说明“Curve Fit”表格区曲线参数的调整。如图5-39所示。 说明:该误差栏显示的并不是实际模拟优化结果波形与参考波形之间的均方根误差值(Erms),而是Erms值与Tolerance栏指定的相对容差值之差。若Erms值小于相对容差值,则Error栏显示结果为0,表明已满足优化设计要求,并不是表示实际优化结果波形和参考波形完全符合,没有任何差别。 所有元器件参数及曲线拟合规范设置完成后的Optimizer工具窗口,如图5-42所示。 5.9.4优化结果的分析 所有曲线拟合参数设置完成后,在Optimizer工具窗口选择MLSQ引擎并执行Run命令,启动曲线拟合优化设计设计进程。优化结果如图5-43所示。 由于在“Curve Fit”表格区的 列中设置呈现 图形状态,所以还可以在Probe窗口中动态的显示实际模拟优化结果波形向作为优化目标的参考波形的逼近情况。在本例中,P(V(out))是在优化过程中的实际输出相位的频率特性波形。R(“PHASE”)是描述对实际输出相位优化目标要求的参考波形。如图5-44a所示。同理,DB(V(out))是在优化过程中的增益的频率特性波形,如图5-44b所示。在一张图中采用两条纵坐标分别表示输出电压相位的频率特性波形P(V(out))和增益的频率特性波形DB(V(out))随频率变化的关系曲线优化结果,如图5-45所示。 从显示的优化后的实际波形和参考波形的比较,可以清晰的看出,优化结果基本满足参考波形的设计要求。若要查看优化过程中任何一次模拟仿真结果,可以在误差图(Error Graph)中点击Error Graph图中横坐标(代表模拟次数),例如:选中Error Graph图中的第8次分析过程,则相应的在Parameters和Curve Fit表格区显示该次分析的参数值和曲线拟合规范结果。如图5-46所示。 若要查看实际输出相位的情况,点击P(V(out))所在行的标志 列,在上单击右键,在弹出的快捷菜单中选择View[Run#8]in PSpice,则Probe窗口中显示第8次模拟优化结果P(V(out))波形及其相应的参考波形。如图5-47a所示。同理,可以查看增益波形情况,如图5-47b所示。 优化完成后,运用离散引擎确定元器件的有效值。(参见5.8.6运用离散引擎确定参数值) 5.10 本章小结 本章在介绍优化分析基本概念(设计变量、约束条件、目标函数等)的基础上重点介绍了使用Optimizer工具对电路进行优化分析的具体使用方法。OrCAD10.3版本PSpice–AA中的Optimizer工具可以对多种电路特性进行直流、交流和瞬态优化分析。相对于以前的PSpice 优化分析,在PSpice 高级分析中,新的Optimizer有了很大的改善和提升。它没有限制Parameter及Specifications的个数。 在Optimizer工具窗口可以以电路特性函数规范参数和曲线参数扫描两种方式进行优化指标的描述。通过Parameters、pecifications和Curve Fit表格区查看相应的分析结果。 1. Specifications 是架构在Measurements里,并可从PSpice加载进来。在线路图里无须额外的设定参数;它们可以在Optimizer的列表中去选择,也可以从灵敏度分析窗口里或是线路图里加载。在优化过程中可在Specifications表格区里设定想要的规格(目标函数或约束条件)及权重,若搜寻不到特性函数规格时,会及时显示错误的 plot。 可用光标在Plot窗口移动到先前的点上,来观察Measurement的参数。任何之前的点都可以拷贝到下一次去运行,作为下一次的起始点执行最佳化的模拟。 2.Parameters 也有“Cross-probed”的功能在Optimizer的窗口里,很容易的去寻找在线路图里的组件。更是提供四种优化搜寻引擎来完成最佳化电路的设计。 - 最小二乘法(LSQ) 引擎:找最小的整体误差,做电路的最佳化分析。
- 改进的最小二乘法(MLSQ)引擎:用在目标函数及Constraint的最佳化分析里, 且用较少的仿真模拟去做电路的最佳化分析。
- 随机引擎: 随机取样参数的集合,并做多次的仿真来作电路的最佳化分析。
- 离散引擎: 由高级分析提供(例如:Resistor-5%)或是用户自订的元器件参数表格,让Parameter选定与优化结果要求最接近的商品化元器件系列标称值。
3. Curve Fit表格区可以通过曲线扫描的方式来优化指标,运用曲线拟合的方法,采用曲线的一组数据值,使优化设计结果与目标曲线要求相吻合。还可以在Probe窗口中动态的显示实际模拟优化结果波形向作为优化目标的参考波形的逼近情况。 综上所述,清晰可见优化分析是在满足电路设计要求的基础上,使电路特性得到最大的改善提升,实现电路的最优化设计。
|