SIMetrix/SIMPLIS电路仿真软件
SIMetrix/SIMPLIS为一款结合速度与精度的模拟电路仿真软件,SIMetrix基于SPICE模型,可精确仿真瞬态;而SIMPLIS则是对器件进行分段线性建模,将一个完整的系统定义成完整的线性电路拓扑循环序列,因此可获得很高的速度。
用表达式为元器件值赋值的优点
用SIMetrix/SIMPLIS仿真软件进行电路仿真时经常需要多次修改元器件参数的值,而且很多元件的参数之间具有关联性,一些元件的参数值依赖于其他元件的参数值。这样每次修改都需要用计算器重新进行计算,十分麻烦。
其实可以将元件的值写成表达式,用这些表达式表示元件之间的关联性,并在仿真前将基本元件进行赋值,本文讲述了实现用表达式进行元件参数赋值的方法和步骤。
表达式赋值的方法和步骤
1. 设计原理图
设计要仿真的原理图,原理图中的元件值用大括号{ }中的符号表示,这些符号可以是字母、数字,也可以是数学表达式。如下图中的电容C2用{CT}表示。而对于电感L2, L3, L4, 他们的参数值依赖于参数LT、 LR、k,例如,电感 L2 用表达式 {LT-ksqrt(LTLR)} 表示其依赖关系。
由于这些符号、表达式并不是元器件真正的值,仿真时会出错:
*** ERROR *** Instance 'R4', parameter 'resistance': Cannot evaluate expression 'R_load'
Unknown parameter 'R_load'
*** ERROR *** Instance 'R3', parameter 'resistance': Cannot evaluate expression 'RR'
Unknown parameter 'RR'
*** ERROR *** Instance 'R2', parameter 'resistance': Cannot evaluate expression 'RT'
Unknown parameter 'RT'
因此仿真前需对这些符合和表达式进行赋值。我们采用命令 .PARAM在命令行中进行赋值。
2. 打开命令行窗口
Simulate->Open/Close Command(F11)Window F11打开命令行窗口
3. 在命令行窗口为元器件值赋值
.PARAM CT 109p
.PARAM RT 1
.PARAM LT 4.9u
.PARAM LR 2.25u
.PARAM RR 2
.PARAM CR 220p
.PARAM R_load 25
.PARAM k 0.1
.simulator DEFAULT
4. 仿真
Simulator – Choose Analysis – AC进入下图页面,设置扫描频率
选择Enable multi-step 点击Define… 进入下一页面
在Parameters name 中输入R_load,设置从5-25欧姆中的5个值,对应不同的曲线
点击Simulator–Run Schematic, 得到如下仿真结果的波形图文章来源:https://www.toymoban.com/news/detail-579869.html
5. 观察自动生成的design.net文件
打开自动生成的design.net文件,发现通过命令设置的元件参数的语句被自动生成到该文件中。如下代码中的最后8行文章来源地址https://www.toymoban.com/news/detail-579869.html
*#SIMETRIX
V1 V1_P 0 AC 1 0
R2 R2_P C2_P {RT}
R3 R3_P L3_N {RR}
R4 C3_P 0 {R_load}
L2 R2_P L2_N {LT-k*sqrt(LT*LR)}
L3 L2_N L3_N {LR-k*sqrt(LT*LR)}
X$H2 H2_P 0 V1_P H2_CN H2$TP_CCVS params: gain=1 pinnames: P N CP CN
.subckt H2$TP_CCVS 1 2 3 4
H1 1 2 V1 {gain}
V1 3 4
.ends
L4 L2_N 0 {k*sqrt(LT*LR)}
C2 C2_P H2_CN {CT}
C3 C3_P R3_P {CR}
.KEEP V1_P H2_P
.GRAPH "mag(:V1_P/:H2_P)" Curvelabel="Gain" nowarn=true yunit="V/V" complete=True analysis="ac" ylog=lin xlog=auto ydelta=20 persistence=-1 colourname=Probe2_bode_color axisname=bodemag order=1 userid=Probe2$GAIN. MeasureSpec="Gain\sCrossover\sFrequency\s(dB\sPlot)|0|0|0|0!Gain\sMargin\s(dB\sPlot)|0|0|0|0"
.post_process probe_measure Probe2$GAIN. Gain\sCrossover\sFrequency\s(dB\sPlot)|0|0|0|0!Gain\sMargin\s(dB\sPlot)|0|0|0|0
.GRAPH "ph(:V1_P/:H2_P)" Curvelabel="Phase" nowarn=true yunit="degrees" complete=True analysis="ac" ylog=lin xlog=auto ydelta=45 persistence=-1 colourname=Probe2_bode_color axistype=grid axisname=bodephase order=0 userid=Probe2$PHASE. MeasureSpec="Phase\sMargin\s(Phase\sPlot)|0|0|0|0"
.post_process probe_measure Probe2$PHASE. Phase\sMargin\s(Phase\sPlot)|0|0|0|0
.tran 1m
.ac lin 1k 5500000 8500000 Sweep single param=R_load lin 5 5 25
.PARAM CT 109p
.PARAM RT 1
.PARAM LT 4.9u
.PARAM LR 2.25u
.PARAM RR 2
.PARAM CR 220p
.PARAM R_load 25
.PARAM k 0.1
到了这里,关于SIMetrix 8.30 电路仿真软件用表达式为元器件值赋值的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!