0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PSpice建模:从电阻模型谈起

jf_g8DHAusG 来源:吴少琴的模电课 作者:吴少琴的模电课 2022-12-06 15:10 次阅读

很多在校的同学在使用仿真软件时对器件模型并没有什么认识,觉得器件直接从器件库中拉出来,画出电路图,就可以仿真了。

当然如果我们只是单纯为了“EDA设计”课程写份实验报告而进行电路仿真,那么的确不需要过多了解模型,因为我们并不关心实际电路的技术指标,而只关注仿真的结果。但仿真真正的目的一定是为了指导硬件,为了能在生产前发现设计缺陷、调试其技术指标,以及获得电压和功耗数据,提高设计的安全边界等,这些都要求电路仿真有着足够的精度和准确度。而决定仿真精度和准确度的决定因素是各元器件模型的准确性和正确性,可以说元器件模型是原理图仿真的根基。

因此,对于仿真软件中自带的器件库,我们不仅要会调用,还应该了解它的模型,必要时进行修改和调整。

另外,在设计实际电路中,还常常会遇到软件自带的器件库中没有找到需要型号的器件,那就需要到其官网上寻找它的SPICE模型,或是考虑自己构建SPICE模型,当然元器件建模是件最为艰难复杂而又艰难的过程。不过我们可以慢慢来,不是马上就想要自己构建一个复杂芯片的模型,而是从简单的器件入手。比如我们先聊聊电阻吧~~~

定值电阻

PSpice中的定值电阻模型主要包括3种,分别是Analog库中的R、BreakOut库中的Rbreak和PSPICE_ELEM库中的Resisitor。外观上并没有什么区别,一般我们都是选择Analog库中的R,用于简单直流、交流和瞬态仿真等;Rbreak是这三个中唯一可以通过右键菜单“Edit PSpice Model”进行模型文本编辑的,一般进行蒙特卡洛分析时会使用这种;Resisitor主要用于高级仿真分析(如灵敏度分析、电应力分析等)。

e0ec2796-7533-11ed-8abf-dac502259ad0.jpg

接下来,我们分别看一下这三种电阻的差别。

认识电阻模型

jiexialai

e0fe2982-7533-11ed-8abf-dac502259ad0.jpg

双击 analog 库中的 R,得到下图所示的属性项,以及各属性项的含义

e115fb0c-7533-11ed-8abf-dac502259ad0.jpg

如果某一电阻的规格如下图所示,该电阻的阻值我们假设是10k欧姆

e1554c6c-7533-11ed-8abf-dac502259ad0.jpg

那么可以对于上图 标注的参数在属性项中进行如下设置:

e17c3688-7533-11ed-8abf-dac502259ad0.jpg

如果这时去看电路网表,可以看到电阻模型的语句为:

e1a01094-7533-11ed-8abf-dac502259ad0.jpg

这就是电阻模型的SPICE格式:R N+ N- RMOD VALUE其中是电阻名,N+和N-分别是这个电阻两端的节点,N+表示正节点,N-是负节点,电流是从N+流入到N-的,RMOD是定义电阻参数的模型名,后面.model语句就是对这个模型的定义。VALUE是电阻的阻值。 在PSpice中,用.Model定义元件参数模型,在同一电路中,相同的模型允许被一个或多个器件引用。比如一个电路中多个电阻都是同样参数,那么就可以取相同的RMOD,并共用一个.Model语句。模型定义的一般格式为: .modelMNameTypeP1=V1 P2=V2…… 其中MName是模型名,它必须以字母开头,Type表示元件模型类型(RES表示电阻,CAP表示电容,IND表示电感,NPN表示NPN晶体管,NJF表示N沟道结型场效应管等);P1、P2…表示元件参数;V1、V2…表示元件参数的值。

在电阻R属性项中设置了“Tolerance”,这个就是定义了器件容差DEV,如果需要设置器件的批容差LOT,那就需要调用BREKOUT库中的Rbreak.

e1b3fb72-7533-11ed-8abf-dac502259ad0.jpg

点击Rbreak元件,右键可以看到这个器件是可以编辑模型的,其他电阻右键中的“EditPSpiceModel”项是灰色的(不信你可以试试(✿◠‿◠))

e1d16144-7533-11ed-8abf-dac502259ad0.jpg

点击编辑模型后会调用cadence软件中编辑模型的工具model Editor

e1e92f68-7533-11ed-8abf-dac502259ad0.jpg

上述语句表明电阻模型名称为RBREAK,元件容差DEV为5%,按照高斯分布进行变化;批容差LOT为5%,按照平均分布进行变化,线性温度系数为100u,二次温度系数TC2没有设置,为默认的0。

这里的DEV和LOT在蒙特卡洛分析时起作用,TC在温度分析时起作用。

从这你可以看出,不能直接编辑的Analog库中的R是通过软件内置的属性编辑表格设置参数,而Rbreak是通过直接输出SPICE语句的方式设置参数。对于软件底层来说是一样的,最后都是转换成了SPICE语句。

如果需要进行电应力分析、灵敏度分析等PSpice AA(Advance Analysis)模块的分析时,一般会选择advanls文件下的PSPICE_ELEM库中的Resisitor:

e207d4e0-7533-11ed-8abf-dac502259ad0.jpg

双击该电阻,你会发现它的属性设置项更丰富,包含了高级分析中涉及到的各种参数,比如容差参数还可以设置正负容差不相同的情况。

e22ad936-7533-11ed-8abf-dac502259ad0.png

从上面三种定值电阻的选择和设置可以看出,仿真原理图中的每个元件背后其实是一个个SPICE模型文件

仿真软件已经提供了丰富的仿真器件,可以根据需求选择最合适的元器件。电阻是这样,其他元件也是同样。如果需要将器件模型更趋于实际,可以通过设置模型参数或编辑模型,直接修改模型文件。

PSpice自带库中约含有五万个带仿真模型的元件,在17.4版本中,还增加访问TI模型库入口,可以轻松调用五千多个TI模拟集成电路(IC)模型。但在这电子技术飞速发展的时代,新器件、国产器件…还是大概率找不到模型,还有一些特殊功能的元件,甚至没有什么型号,如果想要仿真都是需要自己建模的。

自己建模的方法:

一般我们有两种选择:

1、通过直接使用SPICE语言编写lib文件建立模型

2、通过分立元件搭建电路生成器件模型文件

前者对于大多数工程师有极大难度,因为都没有系统学习过SPICE语言,后者相对比较容易掌握。

通过分立元件搭建电路生成模型,也有两种方式:

1、 采用绘制完整的内部子电路的方式建模

2、采用模拟行为模型(Analog Behavioral Modeling即ABM)的方式进行建模

如果对于IC芯片内部电路比较了解可以采用第一种方式,但是很多时候芯片内部电路是非常复杂的,如果不是IC厂商根本无法知道芯片内部电路,而且即使是芯片厂商,也不愿意采用公开内部详细电路的方式建模。所有绝大多数还是选择采用模拟行为模型ABM、布尔逻辑、IF语言和无源元件电阻、电容、电感等搭建电路的方式建模。

下面我们使用模拟行为模型的方式构建

一个压控电阻的SPICE模型

压控电阻的建模

压控电阻就是电阻阻值随着控制电压的变化规律改变。

以构建一个基准值为50欧姆的压控电阻的模型为例,说明如何创建一个可以用于PSpice仿真的模型。

步骤一

绘制子电路

在Capture的绘图区中绘制图1所示的电路图,其中GVALUE为ABM(analog Behavioral Modeling模拟行为模型)器件,G器件是输入是电压信号,输出是电流信号。GVALUE器件的表达式就是传递函数,图1中GVALUE的传递函数是:V(1,2)/(Rref*V(Ctrl)),也就是输出电流Io=V(1,2)/(Rref*V(Ctrl)),这就实现了电路1、2节点之间的电阻值为Rref*V(Ctrl),阻值随着控制端电压线性变化。图中R1和R2主要是仿真中为防止悬空而放置的。

e2d21f52-7533-11ed-8abf-dac502259ad0.jpg

图1 压控电阻的子电路

步骤二

通过子电路创建lib文件

电路图在软件底层就是网表,在Capture界面下,选择工程管理窗口,如图2所示,点击需要生成网表的那页电路图,如图中的Rval,然后选择菜单:Tool→Create Netlist。

e2eef37a-7533-11ed-8abf-dac502259ad0.jpg

图2 创建电路网表

打开图3的对话框,在PSpice标签页上点击确定,创建Rval.lib。

e30c4024-7533-11ed-8abf-dac502259ad0.jpg

图3 创建lib文件

通过给定的路径,我们可以在文件夹下找到刚刚生成的.lib的文件。

步骤三

用Model Editor生成olb文件

使用PSpice中的模型编辑器Model Editor打开刚刚生成的.lib文件,或者直接在文件夹内双击刚刚生成的.lib文件,执行File→Export to capture part library,如图4所示,设置完毕后点击OK。

e328f7a0-7533-11ed-8abf-dac502259ad0.jpg

图4 输出olb文件

步骤四

为新器件选择合适的外观

继续执行File→Model Import Wizard,为该模型选择合适的外形。如图5所示,系统会提供默认的外观,也可以通过“Replace Symbol”从元件库中找到可以兼容的外观直接应用。这里选择使用默认外观。

e34e237c-7533-11ed-8abf-dac502259ad0.jpg

e36555c4-7533-11ed-8abf-dac502259ad0.jpg

图5 编辑新建模型符号

按完成按钮之后,在工程文件夹下就可以看到下面两个文件:

e3870c28-7533-11ed-8abf-dac502259ad0.png

如果对于默认的外观不满意,可以通过Capture打开olb文件进行修改

步骤五

模型应用在工程

经过步骤三和步骤四,就生成了仿真模型必备的.lib和.olb文件。接着在需要调用新模型的工程下,执行PSpice→Edit Simulation Profile→Configuration File→Library,按照图6的步骤,将新建的库文件添加到工程中。

e39e4b9a-7533-11ed-8abf-dac502259ad0.png

图6 在工程中添加库文件

之后就可以像调用自带库的元件一样,将构建好的压控电阻应用于图7所示测试电路中。

e3c1c246-7533-11ed-8abf-dac502259ad0.jpg

图7 测试电路

运行结果可以看出电阻的确随着控制电压的规律而变化。

e3d77758-7533-11ed-8abf-dac502259ad0.jpg

说明建模成功,

这一期以最常见的电阻作为引子,让大家看到了藏在直观电路图背后的模型文件,其实揭开这层面纱之后,大家反而更敢于去面对了。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电阻
    +关注

    关注

    86

    文章

    5507

    浏览量

    171924
  • 仿真
    +关注

    关注

    50

    文章

    4070

    浏览量

    133552
  • 模型
    +关注

    关注

    1

    文章

    3226

    浏览量

    48807

原文标题:PSpice建模 | 从电阻模型谈起

文章出处:【微信号:吴少琴的模电课,微信公众号:吴少琴的模电课】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    txb0108 pspice模型怎么使用?

    我是用cadance 导入.lib 出错,不知道这个pspice模型怎么使用。 这个模型文件说明里说这个是一个完整的瞬态仿真,不知怎么样使用,tita的pspice导入也不行。
    发表于 12-04 06:26

    TPS50601A-SP最坏情况分析未加密PSpice平均模型用户指南

    电子发烧友网站提供《TPS50601A-SP最坏情况分析未加密PSpice平均模型用户指南.pdf》资料免费下载
    发表于 11-29 16:23 0次下载
    TPS50601A-SP最坏情况分析未加密<b class='flag-5'>PSpice</b>平均<b class='flag-5'>模型</b>用户指南

    使用PSpice仿真器对TI智能高侧开关中的热行为进行建模

    电子发烧友网站提供《使用PSpice仿真器对TI智能高侧开关中的热行为进行建模.pdf》资料免费下载
    发表于 09-24 09:26 0次下载
    使用<b class='flag-5'>PSpice</b>仿真器对TI智能高侧开关中的热行为进行<b class='flag-5'>建模</b>

    将amc1200 SPICE模型转成PSPICE模型后 无法在ORCAD16.5中使用,为什么?

    我按TI提供之文件 [ 在PSpice中使用Spice模型 ]将amc1200之SPICE模型转成PSPICE模型后却无法在ORCAD16
    发表于 08-29 07:25

    下载官网上的Pspice模型“LMH7322 PSpice Model”,用ORCAD17.2打开后,运行仿真老是出错,为什么?

    我想用LMH7322型双比较器做一个设计,下载了官网上的Pspice模型“LMH7322 PSpice Model”,打开后有几个文件,用ORCAD17.2打开后,运行仿真老是出错,请问是什么问题啊?没有对文件做任何改动
    发表于 08-23 08:14

    tina是否可以用pspice模型?还有spice,hspice和pspice模型有什么区别?

    tina是否可以用pspice模型?还有spice,hspice和pspice模型有什么区别?
    发表于 08-23 06:20

    下载的AMC1301 PSpice模型打不开是怎么回事?

    我想用PSpice仿真AMC1301,在TI网站下载了pspice模型,想用Model editor打开生成原理图器件,提示“”An invalid argument
    发表于 08-19 06:57

    TiNa无法导入tlp520的Pspice模型的原因?怎么解决?

    TiNa无法导入tlp520的Pspice模型
    发表于 08-15 08:26

    如何在Pspice for ti中找到RCV420芯片模型

    如何在Pspice for ti中找到RCV420芯片模型
    发表于 08-08 08:30

    自搭OSCLLATOR模型用SN74HCU04 pspice不能产生时钟怎么解决?

    自搭OSCLLATOR模型和SN74HCU04 pspice不能产生时钟。软件:CADENCE ORCAD CAPTURE ,模型:TI官网 SN74HCU04 pspice(内有7
    发表于 08-08 06:37

    opa593的pspice模型里面为什么有很多别的器件呢?

    如图所示,利用cadence pspice打开的opa593的pspice模型里面为什么有很多别的器件,这些器件是做什么用的
    发表于 07-30 07:24

    LM393A的Pspice模型为什么只有5个引脚?

    如上右图时Pspice模型,只有5个引脚,且没有8引脚,怎么添加电源
    发表于 07-29 07:32

    arma-garch模型建模步骤

    ARMA-GARCH模型是一种常用于金融市场时间序列数据的建模方法,它结合了自回归移动平均(ARMA)模型和广义自回归条件异方差(GARCH)模型的优点。以下是ARMA-GARCH
    的头像 发表于 07-09 10:20 625次阅读

    PSpice学习笔记 - TI器件模型导入

    电路功能仿真是电路设计过程中非常重要的一环,由于大部分仿真软件都不会自动更新器件模型,因此,为保证仿真结果的准确性,有时候就需要使用者手动更新器件模型,下面就介绍一下如何在PSpice中更新TI的器件
    的头像 发表于 06-17 14:22 1219次阅读
    <b class='flag-5'>PSpice</b>学习笔记 - TI器件<b class='flag-5'>模型</b>导入

    利用逆变器PSPICE仿真模型来模拟瞬间动态响应

    电子发烧友网站提供《利用逆变器PSPICE仿真模型来模拟瞬间动态响应.docx》资料免费下载
    发表于 06-05 13:18 0次下载