SIMETRIX 探头和测量
SIMETRIX 探头
随着工作的调整仿真那是越用越多了,在做仿真的时候我们对结果往往都需要做一些测量,怎么样让我们的测量更加的高效呢?
我们也从做中学,从学中做,仿真主要还是培养对电路的直觉虽说讲的是工具还是从电路做起,在做电路过程中把工具学了。
现在我要做个东西变频的东西,我想看看频率是怎么变化的,如果直接看输出波形那可有点麻烦,但我们可以使用SIMTERIX中的VCO组件,Voltage control oscillator 压控震荡器。
首先了解一个新的东西最好的方式就是看ta的帮助 help。
图1:SIMETRIX的VCO
Ta有两种VCO一种是固定占空比50%的,另外一种是占空比可以变化的,我们的Probe既要看Duty变化也要看Freq变化,所以我们选择第一种。可以在View里面点出part selector 如图2所示。
图2:View -- show part selector
图3:放置VCO
图4:设置VCO属性
VF代表输入电压=当VF=1V时候CLK就输出100Hz的频率
OFF当OFF PIN 输入电压高于3V时候停止工作,当低于2V时候开始工作
RTN 就是参考地
构建基本图纸如下:
图5:VCO基本电路
因为C1使用了IC=0所以C1的初始电压是0,所以C1上的电压是慢慢变到5V,最终的输出电压应该慢慢变化到500Hz的
图6:使用voltage probe的效果
图7:使用Measure 测量
使用Measure测量时候他的测量结果在右下角显示,如果需要测量的没有可以看到A More Functions 里面有没有,如下图8所示。
图8: Measure --A More Functions
测量功能已经较为直观的展示测量Freq--Frequency,但是我们这个是变频的,频率如何变化并不是很直观,所以我们可以使用Freq Probe去测量频率的变化。
View--> Show Part Selector-->Probe-->Per Cycle Voltage Probes
选择Frequency探头直接去测量Ramp即可。
图9:Freq Probe效果
看到Freq的变化和U1-VF的变化是相同的,但是这里不太明显,可以调大VCO本身的Gain,调整为10Khz/V看看效果,调整VCO的Gain后仿真效果如下图10所示。
图10:VCO Gain 设置
图11:波形细节
可以使用Ramp组合Compare去做PWM调频,Ramp的最大值在1V左右是我们当初设置的,可以变的更大例如5V,剩下的自己去摸索吧!
.options PSP_NPT=10001 POP_ITRMAX=20 POP_OUTPUT_CYCLES=5 SNAPSHOT_INTVL=0 SNAPSHOT_NPT=11
+ MIN_AVG_TOPOLOGY_DUR=1a AVG_TOPOLOGY_DUR_MEASUREMENT_WINDOW=128
.tran 2 0
C1 4 0 10u IC=0
.PRINT V(2)
.GRAPH :2 axisType="owngrid" persistence=-1 curveLabel="RAMP" analysis="tran|pop"
+ xLog="auto" yLog="auto" nowarn=true disabled=false PROBEREF=Probe1
.PRINT V(5)
.GRAPH :5 axisType="owngrid" persistence=-1 curveLabel="CLK" analysis="tran|pop" xLog="auto"
+ yLog="auto" nowarn=true disabled=false PROBEREF=Probe2
.PRINT V(6)
.GRAPH :6 axisType="owngrid" persistence=-1 curveLabel="VDIS" analysis="tran|pop"
+ xLog="auto" yLog="auto" nowarn=true disabled=false PROBEREF=Probe3
.PRINT V(2)
.GRAPH "PerCycleTiming(:2,'frequency','stepped',1)" curveLabel="Per Cycle Frequency(PROBE4-neg)"
+ ylog="lin" xlog="auto" yLabel="Freq" axisType="grid" axisname="Freq" nowarn="true"
+ yUnit="Hz" analysis="tran|pop" disabled=false
.PRINT V(4)
.GRAPH :4 curveLabel= U1-VF nowarn=true ylog=auto xlog=auto analysis=tran|pop disabled=false
+ PROBEREF=Probe5
R1 4 3 1K
X$U1 4 0 2 5 6 0 SIMPLIS_OSC101_BB$1
V1 3 0 5
.subckt SIMPLIS_OSC101_BB$1 9313 9309 9314 9310 9311 9308
.NODE_MAP VF 9313
.NODE_MAP OFF 9309
.NODE_MAP RAMP 9314
.NODE_MAP CLK 9310
.NODE_MAP V_DICH 9311
.NODE_MAP RTN 9308
.NODE_MAP V_C_OSC 9312
.KEEP -**V
.KEEP -**I
.REQUIRED_VERSION 8.00
RBB9301 9313 9308 1G
GBB9311 9308 9312 RBB9301 1.02040816326531e-05
C_OSC 9312 9308 1e-09 IC=1.101
VBB9313 9303 9308 0.6
X$UBB9314 9302 9304 9308 9312 9303 SIMPLIS_LOGIC_COMP$3$2
EBB9315 9301 9308 C_OSC 1
RBB9316 9301 9314 10
EBB9317 9310 9308 9302 9308 1
EBB9321 9306 9308 RBB9301 1
X$UBB9322 9305 9308 9306 9310 SIMPLIS_SWITCH_VCVS$2
GBB9323 9307 9308 9305 9308 0.000510204081632653
VHBB124$TP_CCVS 9312 9307 0
HBB9324 9311 9308 VHBB124$TP_CCVS 980
X$SBB9331 9312 9308 9309 9308 SIMPLIS_VC_SWITCH$1
ROFF 9309 9308 1G
.subckt SIMPLIS_VC_SWITCH$1 1 2 3 4
.NODE_MAP P 1
.NODE_MAP N 2
.NODE_MAP CP 3
.NODE_MAP CN 4
S1 1 2 3 4 SW IC=OPEN
.MODEL SW VCSW ROFF=1e+009 RON=1 TH=2.5 HYSTWD=1 LOGIC=POS
.ends SIMPLIS_VC_SWITCH$1
.subckt SIMPLIS_SWITCH_VCVS$2 9922 9900 9901 9902
.NODE_MAP VOUT 9922
.NODE_MAP RTN 9900
.NODE_MAP VSENSE 9901
.NODE_MAP CNTL 9902
EBB9901 9911 9900 9901 9900 1
SBB9902 9912 9900 9902 9900 MSWM IC=CLOSE
.MODEL MSWM VCSW ROFF=384 RON=128 TH=2.5 HYSTWD=1 LOGIC=NEG
RBB9903 9911 9912 128
EBB9904 9921 9900 9912 9900 4
EBB9905 9922 9921 9901 9900 -2
.ends SIMPLIS_SWITCH_VCVS$2
.subckt SIMPLIS_LOGIC_COMP$3$2 201 202 100 101 102
.NODE_MAP OUT 201
.NODE_MAP OUT_BAR 202
.NODE_MAP RTN 100
.NODE_MAP INP 101
.NODE_MAP INN 102
!DCOMP 2000 100 101 102 MCOMP IC=1
.MODEL MCOMP COMP RIN=1e+009 ROUT=1024 VOL=0 VOH=1 HYSTWD=1 DELAY=0
IOUT 100 201 0
GOUT 100 201 2000 100 0.5
ROUT 201 100 10
IOUTB 100 202 0.5
GOUTB 100 202 2000 100 -0.5
ROUTB 202 100 10
.ends SIMPLIS_LOGIC_COMP$3$2
.ends SIMPLIS_OSC101_BB$1
.end
今天就先到这了--拜拜
要休息也要更新,我姐家的小米糕看看咯↓