SPICE电路仿真(2)--电源

2019-07-13 22:08发布

参考手册:ngspice26-manual(官网下载)
关于ngspice的介绍上一篇博文
SPICE电路仿真(1)
已经简单介绍了,并且给出了3个例子,这篇博文主要介绍电源部分,因为是每隔一段时间学一下,看英文帮助文档学的,为了不忘记所学就记录在博客上,顺道和大家一起分享,有错误之处也请指正。 主要介绍4种电源,直接给出代码了,代码有详细注释

(1)Pulse

PULSE SOURCE ;脉冲电压测试例程 * 格式:PULSE(V1 V2 TD TR TF PW PER) * 参数介绍: * V1 Initial value * V2 Pulsed value * TD Delay time,延时时间 * TR Rise time,上升时间 * TF Fall time,下降时间 * PW Pulse width,脉宽 * PER Period,周期 VIN 1 0 PULSE(0 5 2NS 3NS 2NS 10MS 40MS) R1 1 2 20 ;电阻R1,20欧姆,连接在节点1和节点2 R2 2 0 20 ;电阻R2,20欧姆,连接在节点2和节点0 .TRAN 0.1M 80M ;瞬态分析,打印时间间隔0.1ms,终止时间80ms,使用初始化条件 .END * 输入下面的命令,获取R1两端的电压,注意 '->' 后面的才是命令 * -> source pulse_source.cir; run ;plot v(1,2)

(2)Sinusoidal

Sinusoidal ;正弦电源 * SIN(VO VA FREQ TD THETA) * 参数介绍: * VO 偏置 * VA 幅值 * FREQ 频率 * TD 延时时间 * THETA 阻尼系数 VIN 1 0 SIN(0 1 100MEG 1NS 100k) ;频率100MHz,周期0.01us=10ns R1 1 2 20 ;电阻R1,20欧姆,连接在节点1和节点2 R2 2 0 20 ;电阻R2,20欧姆,连接在节点2和节点0 .TRAN 0.01NS 80NS ;瞬态分析,打印时间间隔0.01ns,终止时间80ms,不使用初始化条件 .END * 输入下面的命令,获取R1两端的电压,注意 '->' 后面的才是命令 * -> source Sinusoidal_source.cir; run ;plot v(1,2)

(3)Single-Frequency FM

Single-Frequency FM ;Single-Frequency FM测试例程 * SFFM(VO VA FC MDI FS) * Name |Parameter | Default value | Units * VO |Offset | - | V, A * VA |Amplitude | - | V, A * FC |Carrier frequency | 1 / TSTOP | Hz * MDI |Modulation index | - | * FS |Signal frequency | 1 / TSTOP | Hz * 输出波形由下面方程决定: * V(t) =VO +V A sin(2πFCt +MDIsin(2πFSt)) VIN 1 0 SFFM(0 1 20K 5 1K) R1 1 2 20 ;电阻R1,20欧姆,连接在节点1和节点2 R2 2 0 20 ;电阻R2,20欧姆,连接在节点2和节点0 .TRAN 10NS 1.4M ;瞬态分析,打印时间间隔0.1ns,终止时间1.4ms,不使用初始化条件 .END * 输入下面的命令,获取R1两端的电压,注意 '->' 后面的才是命令 * -> source Single-Frequency_FM.cir; run ;plot v(1,2)

(4)Random voltage source

Random voltage source ;Random voltage source * TRRANDOM(TYPE TS >>),<>表示参数可选 * TYPE description PARAM1 default PARAM2 default * 1 Uniformly distributed Range 1 Offset 0 * 2 Gaussian Standard Dev 1 Mean 0 * 3 exponential Mean 1 Offset 0 * 4 Poisson Lambda 1 Offset 0 * TS duration of an individual voltage value * TD Time delay * * VIN 1 0 dc 0 trrandom (1 10ms 0s 5 0) ;类型1均匀分布,持续10ms,延时0s,范围0-5,偏置0 * VIN 1 0 dc 0 trrandom (2 10m 0 1) ;类型2高斯分布,标准差0,均值1,持续10ms * VIN 1 0 dc 0 trrandom (3 10m 0s 3 1) ;类型3指数分布,均值3,偏置1 VIN 1 0 TRRANDOM (4 10MS 0S 7 0) ;类型4泊松分布,参数lambda为7,偏置0,注意大小TRRANDOM写都可以 R1 1 2 20 R2 2 0 20 .TRAN 0.1MS 100MS ; 暂态分析,间隔0.1ms,终止时间100ms .END * ngspice输入以下命令,注意'->'后面的才是命令语句 * -> source Random_voltage_source.cir; run ;plot v(1,2) 输出结果就不上图了,可以自己修改参数试试