在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6416|回复: 12

[求助] 我要想在Hspice设置一个电容。其电容值要随时间而变化

[复制链接]
发表于 2013-8-5 17:32:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我要想在Hspice设置一个电容。其电容值要随时间而变化(用DC扫描来实现是不行的,因为我必须做瞬态仿真),请问这样的语句怎么写?多谢啦!
 楼主| 发表于 2013-8-5 17:34:25 | 显示全部楼层
求助啊,小伙伴们!
发表于 2013-8-6 10:59:57 | 显示全部楼层
本帖最后由 peterlin2010 于 2013-8-6 11:15 编辑

time variator Resistor 先前TRY 過
如下

Vs 1 0 30V        $ this is just a 30V dc source
Rs 1 2 5          $ 5 ohm series resistance
Xr 2 0 3 var_res  $ this is our variable resistance
Vc 3 0 pwl(0,0 10,5 )        $ this is the control voltage = 10V this makes
                  $ the variable resistance a constant 10 ohms
* subcircuit definition
.subckt var_res plus minus control
Gpm plus minus VOL='v(plus,minus)/v(control)'
Rcontrol control 0 10k
.ends var_res

.op
.tran .01 10 0 .01 uic
.probe tran v(1) v(1,2) v(3) rxr=par('v(2)/i(xr.rcontrol)')
.probe tran i(rs)
.end

Cap 還沒去TRY 過 ..

pspice 到是有看到

pspice time variator Cap

.subckt capacitor + - params:VC0=0
.dunc C(time) {TABLE(time,+0,5nF,1ns,10nF,1us,10nF,1us+1ns,5nF)}
Ec + - value={(std(I(Ec)) +VC0*C(0))/C(time)}
.ends

pspice Value => 換成 hspice VOL=  
try 看看 ..

Modeling time-varying storage components in PSpice .pdf (58.36 KB, 下载次数: 15 )

OR
.SUBCKT varcap 1 2 ctrl
R1 1 3 1u
VC 3 4
EC 4 2 VOL=('(1/v(ctrl))*v(int)')
GINT 0 INT VOL='I(VC)'  
CINT INT 0 1
.ENDS

x1 n1 0 vc varcap
vcs vc 0 pwl(0,10u,5)
vds v1 0 pwl(0,0 1u,10)
rs v1 n1 100k

.tran 1n 20u uic
.probe tran v(vc) i(rs)
.end


TRY ..我不確定是否能用
发表于 2013-8-6 13:56:11 | 显示全部楼层
沒人回??

那就 delete
 楼主| 发表于 2013-8-6 16:48:40 | 显示全部楼层
回复 4# peterlin2010


    多谢啦!
 楼主| 发表于 2013-8-6 16:54:31 | 显示全部楼层
回复 4# peterlin2010


    我今天试了一个方法,就是变量转换。将电容值设置成随电压变化的量,而电压是比较容易设置成随时间变化的,这样电容值就随时间变化了。这个方法我觉得还不错。
   C1 NET0130 NET062  c=`5.1p*v(NET0156)' CTYPE=1
   V1 NET0156 0  PWL 0.0 1.0 600E-6 1.0 600.1E-6 2.0 800E-6 2.0 800.1E-6 1.0
   +TD=0.0
发表于 2013-8-6 17:19:42 | 显示全部楼层
有些不對

vdd1 vdd1 0 5
r1 vdd1 net062 100k
C1 net062 0  c='5.1p*v(NET0156)' CTYPE=1
V1 NET0156 0  PWL 0.0 1.0 600E-6 1.0 600.1E-6 2.0 800E-6 2.0 800.1E-6 1.0
   +TD=0.0

=> 這樣應該是因為  net0156 switch on/off 切換電容值吧.

真要時變應該是這個  
.subckt capacitor + - params:VC0=0
.dunc C(time) {TABLE(time,+0,5nF,1ns,10nF,1us,10nF,1us+1ns,5nF)}
Ec + - value={(std(I(Ec)) +VC0*C(0))/C(time)}
.ends

=> value 有含到 time (simulation time)  比較對
電容value 是隨 simulation time 變化

以前有做 temp 類似 電阻 TC1 TC2 ..有隨溫度變化 ,  但是時變好像應該加入TIME 參數

但是如果你已經知道 TIME 變化多大電容
用 switch 去切電容也應該可以 ..反正都知道會隨時間變化
不過 這要用在那邊??
 楼主| 发表于 2013-8-7 15:48:54 | 显示全部楼层
回复 7# peterlin2010


    主要是通过电容值的变化来改变频率,当检测频率变换3%左右时,促发开关!
发表于 2013-8-7 16:26:17 | 显示全部楼层
不對, 要變 clock  可以變的很多

1. charge current
2. charge time
3. 比較器 level
一般變頻率不會去變電容..

detect frequency 還有 Freq to Volt convert circuit ..
 楼主| 发表于 2013-8-7 16:44:46 | 显示全部楼层
回复 9# peterlin2010


    芯片的应用电路就是通过检测电容传感器的电容值的变化来实现出发开关的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-9-28 23:35 , Processed in 0.026888 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表