SIMPLIS仿真软件2.3-SIMPLIS快速入门3

SIMPLIS仿真软件2.3-SIMPLIS快速入门3

导读

如果读者未按前面的文章搭建电路,可以根据链接免费下载仿真电路以继续进行以下的操作:9_SIMPLIS_tutorial_buck_converter。本文承接的是上一篇文章,在这一篇文章中会参考官方文件搭建一个反馈回路。官方文档在这部分中提及了一些非常有趣的功能!对于提高原理图的整洁度以及生产力都非常有用!
笔者能力有限,若理解、翻译错误,请读者指出!

变量的使用

在这里插入图片描述
按上图搭建III型补偿器,因为文章的定位是软件的使用,所以这里不涉及如何设计补偿器。图片中只有一个前面文章中没有提及到的元器件X2,X2为Multi-Level Parameterized Opamp (Version 8.0+),位于Parts Selector中的Analog Functions中。
设计过补偿器的同学都知道补偿器的值是要随着设计不断改变的,如果需要自己修改的话是非常麻烦的,有没有可能将上述中的电阻和电容值都设置为变量,将各电阻、电容值的计算过程编写成一段代码,这样当设计工程中某个参数发生变化时,电阻和电容值就可以自动修改不需要自己一个一个地去修改呢?SIMPLIS正好提供这样便捷的功能。
首先按下F11(Simulator>Open/Close command (F11) window),The command (F11) window 便会打开,见下图:
在这里插入图片描述
在F11窗口中便可以编写需要的代码。事实上,你在SIMPLIS上进行的所有仿真设置都可以通过在这个窗口输入命名得到,例如你想进行AC分析,范围为从频率1k到400kHz,那么你可以输入.ac DEC 25 1k 400k,这和在用户界面Simulator>Choose Analysis中对AC分析中各参数进行设置是等价的,关于这些语句的语法问题,这里不赘述啦,如果觉得码字比用鼠标点击去设置参数更快速的话自行寻找官方文档去学习。
将上述补偿器的各电阻、电容值改为以下形式:
在这里插入图片描述
即将各电阻各电容值用 {变量名} 的形式代替,‘{ }’ 指示SIMPLIS该元件的值由F11窗口中的代码得出,而在F11窗口中相应的代码形式为(如C4和R4):

.VAR C4 = 2.2n
.VAR R4 = {1/(2*pi*C4*FP2)}

从上面可以看到可以直接对变量赋值,也可以用一个语句段对变量赋值。
完整代码如下所示(该代码由官方提供,不对代码进行解释,不过设计过III型补偿器的同学通过查看注释应该也可以理解):

******************************
*** Circuit Specifications ***
******************************

.VAR VIN = 12
.VAR VRAMP = 1
.VAR L = 680n
.VAR C = 220u
.VAR VOUT = 1.2
.VAR VREF = 0.6
.VAR ESR = 4m
.VAR FXOVER = 80k
.VAR FSW = 500k

*** Calculated Parameters - not used in calculations
.VAR FLC = 13012.31
.VAR FESR = 180857.89

.SUBCKT ONE_PULSE_SOURCE_I 1 2 vars: _T_RISE=0 _T_FALL=0 _DELAY=0 _V1=0 _V2=1 _PWIDTH=1u
.NODE_MAP P 1
.NODE_MAP N 2
{'*'} _DELAY : {_DELAY}
{'*'} _T_RISE : {_T_RISE}
{'*'} _PWIDTH : {_PWIDTH}
I1 1 2 PWL   NSEG=4   X0=0 Y0={_V1}   X1={_DELAY} Y1={_V1}   X2={_DELAY+_T_RISE} Y2={_V2}   X3={_DELAY+_T_RISE+_PWIDTH} Y3={_V2}   X4={_DELAY+_T_RISE+_PWIDTH+_T_FALL} Y4={_V1}
.ENDS

*********************************************************
*** Compensator Design - Find desired poles and zeros ***
*********************************************************

*** Place Second Zero at LC
.VAR FZ2 = {1/(2*pi*SQRT(L*C))}

*** Place First Zero at 75% of FZ2
.VAR FZ1 = {0.75*FZ2}

*** Place Second Pole (1st pole at origin) at ESR zero
.VAR FP2 = {1/(2*pi*ESR*C)}

*** You will get better performance putting the pole
*** above ESR zero (different than design procedure)
.VAR FP2 = {0.75*FSW}

*** Place Third Pole at 1/2 the switching frequency
.VAR FP3 = {0.5*FSW}

*******************************************************************
*** Compensator Design - Assign resistor and capacitor values   ***
*** The design procedure was taken from IR/Infineon an-1162.pdf ***
***                                                             ***
*** http://www.irf.com/technical-info/appnotes/an-1162.pdf      ***
*******************************************************************

*** Choose C4 to be 2.2nF This is somewhat arbitrary,
*** it sets the magnitude of other compensator values.
.VAR C4 = 2.2n

*** From C4 and FP2, Calculate R4
.VAR R4 = {1/(2*pi*C4*FP2)}

*** From C4, R4 and FZ2, Calculate R3
.VAR R3 = {1/(2*pi*C4*FZ2)-R4}

*** From R3, VREF and Nominal VOUT, Calculate R6
.VAR R6 = {R3*VREF/(VOUT-VREF)}

*** Calculate R7 as the parallel combination of R3 and R6
.VAR R7 = {R3*R6/(R3+R6)}

*** Calculate R5. Modify VRAMP to adjust final loop characteristics
.VAR R5 = {2*pi*FXOVER*L*C*VRAMP/(VIN*C4)}

*** From R5 and FZ1, Calculate C2
.VAR C2 = {1/(2*pi*R5*FZ1)}

*** From R5 and FP3, Calculate C3
.VAR C3 = {1/(2*pi*R5*FP3)}

*****************************************************************
*** Debug. These statements come out in the deck as comments. ***
*** Simulator -> Edit Netlist (after preprocess) opens file   ***
*****************************************************************

{'*'} FZ2 : {FZ2}
{'*'} FZ1 : {FZ1}
{'*'} FP2 : {FP2}
{'*'} FP3 : {FP3}

{'*'} C4 : {C4}
{'*'} R4 : {R4}
{'*'} R3 : {R3}
{'*'} R6 : {R6}
{'*'} R5 : {R5}
{'*'} C2 : {C2}
{'*'} C3 : {C3}

将上述代码粘贴于F11窗口的最后一行“.SIMULATOR DEFAULT”的后面即可。接着按照下图对电路图进行一些修改,注意POP触发器的连接位置发生了变化。
在这里插入图片描述
如果仍然接于MOSFET的S极(/电感L1)处,那么POP分析时,SIMPLIS会发生错误认为电路不能进入稳态。我们都知道如果没有软开关或者没有给电感和电容设置一个合适的初值那么电压会有一个很大的过冲值,在输出电压超过参考电压后,补偿器会在几个开关周期内关闭MOSFET,然后这个时候SIMPLIS检测不到周期性的变化则认为电路发生了错误。在这里将POP触发器改接于三角载波处,使得POP触发器不再受到上述情况的影响,注意需要修改POP触发器的触发阈值,见下图。当然也可以给电感和电容设置合适的初始值使得最开始电路就接近于稳态值,这也是一种解决办法。
在这里插入图片描述

最后可以运行一下仿真查看波形。如果想要观察负载变化时各电气量波形的变化,可以在负载处增加一个脉冲电流源来改变负载电流的大小。
在这里插入图片描述
使用Waveform Generator元器件,选择Current Source选项。参数可以设置如下:
在这里插入图片描述
PS: 如果在POP分析中更改以下设置:
在这里插入图片描述
然后分别进行仿真,两次仿真如下所示:
在这里插入图片描述
当 trigger condition选为falling edge时,发现输出电压以及电感电流波动更大。主要原因为暂态分析将POP分析结束时各电气量的值作为初始值,在这个电路,当 trigger condition选为falling edge时,MOSFET关断时恰好负载电流上升沿到达,这个时候对电路的扰动最大,那么输出电压和电感电流的变化也最大。

模块的创建

如果可以将III型补偿器封装成一个模块,那么电路会看起来简洁整齐,更重要的是这个模块可以随时用于其他电路不用重新搭建。模块的创建步骤如下所示:

  1. 新建原理图,将电路中的这部分复制粘贴到新的原理图中。
    在这里插入图片描述
    PS: 注意F11窗口中的代码也需要粘贴至该新原理图中。

  2. 依次点击Hierarchy > Place Module Port,将电路修改为:
    在这里插入图片描述

  3. 保存电路,命名为:3p2zcompensator.sxcmp,注意后缀!

  4. 为该模块建立一个代表该模块的图像符号。点击 Hierarchy > Open/Create Symbol for Schematic,将出现以下图像:
    在这里插入图片描述
    修改图像,将该图像符号修改为:
    在这里插入图片描述

  5. 最后保存该图像符号。
    在这里插入图片描述

  6. 最后就可以使用该模块了。
    在这里插入图片描述
    至此,SIMPLIS快速入门教程就结束了,后面几篇文章将介绍几种SIMPLIS的errors以及可能的解决办法,还有对SIMPLIS的三种分析模型进行详细的原理性的介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值