huayuliang 发表于 2011-10-2 17:32:37

【MicroCap】弄了个压控PWM信号源。。。顺便请教PSPICE

做了个1kHz的压控PWM信号发生器用。

汗,怎么把参考的网页忘记了:http://www.ecircuitcenter.com/Circuits/pwm/pwm.htm

http://cache.amobbs.com/bbs_upload782111/files_46/ourdev_681363YU4DM9.png
(原文件名:2011-10-02 17 20 09.png)

spice内容如下(由电路转出):

* Converted From Micro Cap Source file to SPICE3
*
.FUNC DPWR(D) {I(D)*V(D)}
.FUNC BPWR(Q) {IC(Q)*VCE(Q)+IB(Q)*VBE(Q)}
.FUNC FPWR(M) {ID(M)*VDS(M)}
.FUNC HOTD(D,MAX) {IF((V(D)*I(D)>MAX),1,0)}
.FUNC HOTB(Q,MAX) {IF((VCE(Q)*IC(Q)+IB(Q)*VBE(Q)>MAX),1,0)}
.FUNC HOTF(M,MAX) {IF((VDS(M)*ID(M)>MAX),1,0)}
.PARAM LOW3MIN={IMPORT(LOW3MIN.OUT,LOW3THRES)}
.PARAM HIGH3MAX={IMPORT(HIGH3MAX.OUT,HIGH3THRES)}
.PARAM LOWLVDS={IMPORT(LOWLVDS.OUT,LOWLIMIT)}
.PARAM HILVDS={IMPORT(HILVDS.OUT,HILIMIT)}
.PARAM LIMTLVDS={IMPORT(LIMTLVDS.OUT,LVDSLIMITS)}
.FUNC SKINAC(DCRES,RESISTIVITY,RELPERM,RADIUS) {((PI*RADIUS*RADIUS)/((PI*RADIUS*RADIUS)-PI*(RADIUS-SKINDEPTHAC(RESISTIVITY,RELPERM))**2))*DCRES}
.FUNC SKINDEPTHAC(RESISTIVITY,RELPERM) {503.3*(SQRT(RESISTIVITY/(RELPERM*F)))}
.FUNC SKINTR(DCRES,RESISTIVITY,RELPERM,RADIUS,FREQ) {((PI*RADIUS*RADIUS)/((PI*RADIUS*RADIUS)-PI*(RADIUS-SKINDEPTHTR(RESISTIVITY,RELPERM,FREQ))**2))*DCRES}
.FUNC SKINDEPTHTR(RESISTIVITY,RELPERM,FREQ) {503.3*(SQRT(RESISTIVITY/(RELPERM*FREQ)))}
.SUBCKT VCPWM_1K Vc gnd output
V1 2 gnd DC 0 PULSE (0 5 0 0.0005 0.0005 0 0.001)
X1 Vc 2 output COMP PARAMS: VOH=5 VOL=0 GAIN=1000
.ENDS VCPWM_1K
*
*
.SUBCKT COMPINP INM OUT PARAMS: VOH=15 VOL=-15 GAIN=1000
.PARAM VA={(VOH-VOL)/2}
.PARAM DC={(VOH+VOL)/2}
BE1 Out 0 V = {DC+VA*TANH(GAIN*(V(INP,INM)))}
R1 Inp 0 1e9
R2 Inm 0 1e9
.ENDS COMP

很简单、基础的东西,使用了比较器、三角波信号源(PULSE)。

现在只能做到这一步了,不知如何把三角波频率的控制引出来。。哪位给讲讲啊?

ckvlhf 发表于 2011-10-2 20:05:42

先留名,必火!

Helloeveryon 发表于 2011-10-5 23:55:14

不知道的顶一下

waver 发表于 2013-1-22 13:41:27

话说比较器和三极管你用的什么型号

yfwuh 发表于 2013-1-25 18:55:57

*以下是我熟悉的两个spice仿真器,我记得MicroCap好像是基于spice3语法的,但看huayuliang贴出的文本,.subckt中params的用法与pspice一样
*Pspice (基于spice2G6语法)中的格式,如下:
.SUBCKT VCPWM_1K Vc gnd outputparams: freq=1k ; 分号后为注释行,params后紧跟“:”,之间不能有空格
V1 2 gnd DC 0 PULSE (0 5 0 0.0005 0.0005 0 {1/freq})
X1 Vc 2 output COMP PARAMS: VOH=5 VOL=0 GAIN=1000
.ENDS VCPWM_1K

*IsSpice(基于spice3F5)格式如下:
.SUBCKT VCPWM_1K Vc gnd output{ freq=1k }
V1 2 gnd DC 0 PULSE (0 5 0 0.0005 0.0005 0 {1/freq})
X1 Vc 2 output COMP PARAMS: VOH=5 VOL=0 GAIN=1000
.ENDS VCPWM_1K

yfwuh 发表于 2013-1-26 20:45:44

V1 2 gnd DC 0 PULSE (0 5 0 {1/2/freq} {1/2/freq}0 {1/freq} )
页: [1]
查看完整版本: 【MicroCap】弄了个压控PWM信号源。。。顺便请教PSPICE