SIMetrix arbitrary source 任意源仿真
晚上好,uu们。
因为想搞个东西,做了一个自动限制输出幅度的电路,在仿真里面为了做这个自动限制幅度的电路,我需要做一个类似AM的信号源,但这个AM的信号源我不太好生成,简单的方法可以使用Source内部自带的Noise function,但是不是太直观,想着应该是有任意电压源的所以我们看看这个东西怎么去设置。在LTSPICE中叫 behavior source,可以参考以前的LTSPICE系列。
AM信号是调幅信号,如下图1所示。
图1:信号与FM&AM调制方式
在Simterix中也是使用了behavior source,但是设置方式和LTSpice是不同的,首先咱们先放置一个任意源,如下图2所示。
图2:非线性传递方程源
放置源以后需要设置下这个源的功能描述,如图3所示,这边的框左边是表达式右边是一个本地参数。
图3:任意电压源设置
这个表达式写啥呢,可以参考SIMTERIX HELP文件的内容,看到他的本质还是Bxxx在标准的SPICE 里面就是behavior source(任意电压源),但表达方式不同,在4.4.2 Notes on Arbitrary Expression 里面有所描述.
E.g.
IF(v1>v2, 0, (v1-v2)*2)
简单的理解,就是如果v1>v2,那么输出结果是0,否则结果就是 (v1-v2)*2,我们可以在参数那一行设定v1和v2这时候来看下输出结果。
图4:v1=1,v2=2 仿真结果
图5:v1=1,v2=2 仿真结果
这个东西离我们要的东西还有点距离,但咱们已经知道他的逻辑是什么了,这就够了,另外这是个IF语句详情可以参考IF语句的使用,详情可以参考3.3. Using Expressions 去看看IF语句如何去使用的
比如我可以期望表达式是永远为真,那我就可以写如下表示示IF(1, 0, (v1-v2)*2),那么输出永远就是0。
如果没有用到v1和v2的参数,在参数那一栏就可以不填ta,所以咱们又学了IF又学了任意电压源怎么用。
我们要弄个AM的表达式,我们先用一个SIN去SIN仿真时间,在将这个SIN(TIME)*TIME就可以得到我们这种逐渐变大的调幅信号,表达式如下所示。
‘e.g.
SIN(TIME*100K)*TIME
写完表达式,咱们看看内部网表的表达式是怎么一回事。如下图6所示。
图6:电路网表
看这网表再次验证他就是Bxxx behavior source,表达式有了直接看仿真的输出结果是什么,如图7所示。
图7:从小变大的正弦波 调幅
这个电路已经满足我的测试需要了,咱们再来使用这个随意电压源测试以下电路,图8所示,仿真结果如图9所示。
图8:限幅电路
图9:仿真结果
这个电路原理就是当X1高于Vbe时候,X1-out减去Vbe电压得出Ib,Ib*β等于Ic,控制Ib就可以控制Ic的大小,来控制X1-out的箝位幅度。如下图10所示。虚线部分是Rb等于20K时候的仿真结果,实线部分是Rb等于2k时候仿真结果,看到上下箝位幅度是不一样的,是因为他们的ib和β都不一样,那我们可以在Simterix里面找个对称的管子看看结果。
图10:仿真结果
图11:Hfe(β)相近的管子
找到2N2222的对管,2N2907,仿真结果如图12所示。
图12:替换为2N2907,RB改为20K时仿真结果
仿真代码如下:
*#SIMETRIX
X1 Q2_C R1_P V1_P X1_vsn R4_N OP-07C pinnames: inp inn vsp vsn out
V1 V1_P 0 5
V2 0 X1_vsn 5
R1 R1_P 0 1K
R2 R4_N R1_P 1K
R3 Q2_C ARB2_OUTP 1K
R4 Q2_B R4_N {X}
R5 R4_N R5_N {X}
X$ARB2 ARB2_OUTP 0 $$arbsourceARB2 pinnames: OUTP OUTN
.subckt $$arbsourceARB2 OUTP OUTN
B$OUT OUTP OUTN V=SIN(TIME*100K)*TIME*200
.ends
Q1 Q2_C R5_N 0 0 Q2N2222
Q2 Q2_C Q2_B 0 0 Q2N2907
.GRAPH R4_N curveLabel= X1-out nowarn=true ylog=auto xlog=auto analysis=tran|ac|dc disabled=false PROBEREF=Probe1
.GRAPH ARB2_OUTP axisType="auto" persistence=-1 curveLabel="ARB2-OUTP" analysis="tran|ac|dc" xLog="auto" yLog="auto" nowarn=true disabled=false PROBEREF=Probe4
.tran 10M
.param X=20K |
好了今天就先聊到这里了,拜拜!
参考文档:
SIMETRIX SIMULATOR REFERENCE MANUAL
2N2904 DATASHEET
2N2222 DATASHEET
2N2907 DATASHEET