PSpice仿真之建模-以半导体激光器为例

PSpice仿真之建模

第一篇原创博客,来点干货~最近应同学之托,解决一个PSpice建模问题,在解决过程中遇到很多问题,于是想写下来,后来者少走弯路哈。这里以半导体激光器为例,讲PSpice的建模。

PSpice是啥?

来自度娘《PSPICE是由SPICE(Simulation Program with Integrated Circuit Emphasis)发展而来的用于微机系列的通用电路分析程序。于1972年由美国加州大学伯克利分校的计算机辅助设计小组利用FORTRAN语言开发而成,主要用于大规模集成电路的计算机辅助设计。》说明白一点,就是一个电路仿真软件,能够分析电子器件的一些性能,这么说,还是功能很强大~
关于PSpice入门操作参考OrCAD PSpice简明教程
需要PSpice安装包的小伙伴PSpice安装包

半导体激光器是啥?

来自度娘《半导体激光器又称激光二极管,是用半导体材料作为工作物质的激光器。》说明白一点,就是一个电子元器件,至于是用来干啥的,只能说功能很强大,自己体会~

为啥需要建模?

有一些元件在库里木有,没办法,只能建模哈,建模的好处就是能够自己定义元器件,方便进行电路仿真分析,但是也对电路仿真的底层要求更高。

以半导体激光器元器件建模为例谈

先附上代码1,需要代码的小伙伴半导体激光器PSpice建模代码,再来说流程:

.SUBCKT DHLD NA NB NL NR
*子电路模型
*接口端点:NA NB NL NR
*         NA,NB:实际器件的两个电学端点
*         NA为负极,NB为正极
*         NR, NL:两个虚拟端点,用于光输出
*         NR为右端面,NL为左端面
.PARAM L=650UM
.PARAM W=1UM
.PARAM D=0.15UM
.PARAM GAM=0.3
.PARAM G0=1.4E-12
.PARAM Ntr=1.5E9
.PARAM EPS=1E-25
.PARAM B=1
.PARAM Bsp=4.24E-3
.PARAM ALFA=2000
.PARAM Rl=0.3
.PARAM Rr=0.3

.PARAM Ne=7.8E7
.PARAM EITi=0.8
.PARAM EIT=2
.PARAM Nr=3.5
.PARAM LMD=0.83UM
.PARAM Vbi=1.13
.PARAM Csc0=10pF
.PARAM Rs=5
.PARAM Cp=1pF
.PARAM Rd=1E15
.PARAM Tn=2.2E-10
.PARAM Ts=7.5E-9
.PARAM B1=8.2
.PARAM gain=3.98
*.PARAM gain=2.1
.PARAM EITT=0.8
.PARAM c0=5E-3
.PARAM Ds=4.2E-3
.PARAM t=0

.PARAM EITk=0.8
.PARAM Ai0=0.1
.PARAM Dk=0.02
*常数
.PARAM ECHARGE=1.6021918E-19
.PARAM BOLTZMAN=1.3806226E-23
.PARAM PI=3.1415926
.PARAM TWOPI={2.0*PI}
.PARAM PLANCK=6.626176E-34
.PARAM PLANCK2PI={PLANCK/TWOPI}
.PARAM TEMPR=333
.PARAM Vti={BOLTZMAN*TEMPR/ECHARGE}
.PARAM LSPEED=2.99792458E8

*换算单位
.PARAM UL={L*1E6}
.PARAM UW={W*1E6}
.PARAM UD={D*1E6}
.PARAM UG0={G0*1E18}
.PARAM UNtr={Ntr*1E-18}
.PARAM UALFA={ALFA*1E-6}
.PARAM UEPS={EPS*1E-18}
.PARAM UNe={Ne*1E-18}
.PARAM ULMD={LMD*1E6}
.PARAM ULSPEED={LSPEED*1E6}

*计算
.PARAM Vact={UL*UW*UD}
.PARAM Tph={Nr/(ULSPEED*(GAM*UALFA-LOG(Rl*Rr)/2.0/UL))}
.PARAM QV={ECHARGE*Vact}
.PARAM Cph={ECHARGE/Vti}
.PARAM Rph={Vti*Tph/ECHARGE}
.PARAM Ai={EITk*(Ai0+Dk*sqrt(t))-EITk*Ai0}
.PARAM CPL={gain*PLANCK*ULSPEED*ULSPEED*(Ai+Rl-1.0)*LOG(Rl*Rr)/
+ (2.0*Nr*Vti*UL*ULMD*(1-Rl+SQRT(Rl/Rr)*(1-Rr)))}
.PARAM CPR={gain*PLANCK*ULSPEED*ULSPEED*(Ai+Rr-1.0)*LOG(Rl*Rr)/
+ (2.0*Nr*Vti*UL*ULMD*(1-Rl+SQRT(Rl/Rr)*(1-Rr)))}
.PARAM V1={EIT*Vti*LOG((UNtr+1.0/Tph/GAM/UG0)/UNe)}
.PARAM InT={(EXP(14.33*(TEMPR/298)-12.56)-5.87)*1E-3}
.PARAM It={EITT*(c0+Ds*sqrt(t))}
.FUNC N(V) {(EXP(V/EIT/Vti)-1.0)*UNe}
.FUNC G(V,Vph) {IF(N(V)<UNtr,0.0,QV*GAM*UG0*(N(V)-UNtr))/
+ (1.0+UEPS*ABS(Vph)/Vact/Vti)*B}
.FUNC Inr(V) {(1/EITi)*QV*N(V)/Tn}
.FUNC Irr(V) {(1/EITi)*QV*N(V)/Ts+B1*N(V)*2}
.FUNC Ist(V,Vph) {(1/EITi)*G(V,Vph)*ABS(Vph)/Vact/Vti}
.FUNC Cd(V) {(1/EITi)*QV*UNe*EXP(V/EIT/Vti)/(EIT*Vti)}
.FUNC Csc(V) {IF(V<Vbi,Csc0/SQRT(1.0-V/Vbi),Csc0/SQRT(0.1))}

*电学部分电路描述
RRS NA NA1 {Rs}
RRd NA1 NB {Rd}
CCp NA1 NB {Cp}
GCd NA1 NB VALUE={Cd(V(NA1)-V(NB))*DDT(V(NA1)-V(NB))}
GCsc NA1 NB VALUE={Csc(V(NA1)-V(NB))*DDT(V(NA1)-V(NB))}
*CCd NA1 NB {Cd(V1)}
*CCsc NA1 NB {Csc(V1)}
GInr NA1 NB VALUE={Inr(V(NA1)-V(NB))}
GIrr NA1 NB VALUE={Irr(V(NA1)-V(NB))}
GIst NA1 NB VALUE={Ist(V(NA1)-V(NB),V(NS))}

*光学部分
GIrr1 0 NS VALUE={Bsp*Irr(V(NA1)-V(NB))}
GIst1 0 NS VALUE={Ist(V(NA1)-V(NB),V(NS))}
CCph NS 0 {Cph}
RRph NS 0 {Rph}

*光输出
El NL 0 VALUE={CPL*V(NS)}
Er NR 0 VALUE={CPR*V(NS)}
.ENDS

再来谈谈怎么完成建模2

  1. 建立DHLD.lib文件 ,先拷贝代码,复制到新建的txt文件中,修改后缀名为.lib;
  2. 编译安装,将记事本(以.lib为后缀的文件)复制到安装路径下:D:\Program Files\OrCAD_Demo\Capture\Library\Pspice(具体看自己的安装目录),打开PSPICE MODEL Editor,在工作界面上,点击File/Open,打开刚新建的DHLD.lib文件;
    PSpice仿真之建模-以半导体激光器为例
  3. 输出模型,点击File\Export to Capture选项,弹出如下图2所示。
    PSpice仿真之建模-以半导体激光器为例
  4. 复制到nom.lib文件,最后打开D:\Program Files\OrCAD_Demo\Capture\Library\Pspice(具体看自己的安装目录)找到其中的nom.lib的记事本,然后打开,将DHLD.lib的内容复制到nom.lib文件的最后,保存及建立好模型,可以开始使用啦。
  5. 验证模型,打开ORCAD的Capture模块,新建一个工程,然后将上面生成的文件导入进去,注意在添加的时候,一定要先添加库文件,很简单在Place Part时,点Add Library,就得到了LD的模块,如图3所示。
    PSpice仿真之建模-以半导体激光器为例

PSpice仿真软件使用注意事项

  1. 接地问题 ,PSpice中的地是假地,如果提示某个引脚"is floating",那就是把对应的地的"NAME"属性修改为"0"即可;
  2. 管理员身份运行问题,这几个软件都需要使用管理员身份运行,才能够正常使用,如Capture如果不用管理员身份运行,菜单栏就没有PSpice选项;
  3. 建模语法问题,如.PARAM声明参数,.FUNC()声明函数等,具体可以参考点我看建模语法 ,特别需要注意的是PSpice每行有132个字符的限制,需要换行时使用"+“号,另外建模语法中”*"表示注释,严格注意语法问题,注意空格等等,加粗引起注意;

儒将


  1. 通信光电子课程设计—LD的建模及其恒定功率驱动电路的设计 ↩︎

  2. LD的建模及其恒定功率驱动电路的设计 ↩︎