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

说明建模成功,

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

审核编辑 :李倩

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

    关注

    85

    文章

    5038

    浏览量

    169638
  • 仿真
    +关注

    关注

    50

    文章

    3872

    浏览量

    132163
  • 模型
    +关注

    关注

    1

    文章

    2704

    浏览量

    47689

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

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

收藏 人收藏

    评论

    相关推荐

    【书籍评测活动NO.30】大规模语言模型理论到实践

    多种形式和任务。这个阶段是语言模型向对话模型转变的关键,其核心难点在于如何构建训练数据,包括训练数据内部多个任务之间的关系、训练数据与预训练之间的关系及训练数据的规模。 奖励建模阶段
    发表于 03-11 15:16

    实际电阻的等效模型介绍

    电阻是电路中最基本的元件之一,它的主要作用是限制电流的流动。在实际应用中,由于各种因素的影响,电阻的实际电阻值可能会与标称值存在一定的偏差。 一、实际电阻的等效
    的头像 发表于 01-18 14:36 258次阅读
    实际<b class='flag-5'>电阻</b>的等效<b class='flag-5'>模型</b>介绍

    AD630的Pspice仿真模型只有16pin,与实物的20pin的对应关系是什么?

    AD630的Pspice仿真模型只有16pin,与实物的20pin的对应关系是什么?
    发表于 12-14 06:22

    SaberRD状态机建模工具介绍(一)什么是状态机建模

    状态机建模是使用状态图和方程式的手段,创建基于混合信号的有限状态机模型的一种建模工具。
    的头像 发表于 12-05 09:51 533次阅读
    SaberRD状态机<b class='flag-5'>建模</b>工具介绍(一)什么是状态机<b class='flag-5'>建模</b>

    如何将adi的spice模型(.cir文件)添加到pspice里?

    我在用cadence的pspice仿真电路时,需要一个AD620器件,后来虽然我在cadence自带的库中找到了。但还是留了很多疑问: 1.ad620是adi公司出的,网站上有spice模型
    发表于 11-28 06:58

    将AD8226转换到Pspice使用,始终提示模型转换失败的原因?

    各位大神, 在将AD8226转换到Pspice使用的时候,始终提示模型转换失败,如下图所示,麻烦请问下 是啥问题
    发表于 11-17 06:53

    怎样才能得到LTC6090的PSpice模型?如何将模型LTspice导出到PSpice

    请问:怎样才能得到LTC6090的PSpice模型?或者如何将模型LTspice导出到PSpice
    发表于 11-16 07:43

    使用Ad637的Pspice模型在orcad capture cis仿真,输出结果不对怎么解决?

    使用Ad637的Pspice模型在orcad capture cis的仿真过程中,搭建了一个最简单的测试电路,但是一直报收敛问题,忽视后输出的结果也完全不对。卡住很久了,希望有人路过能指导一下。
    发表于 11-14 06:56

    二极管模型参数计算建模

    根据二极管1N914数据手册计算BV、IBV、n、IS、TT和CJO参数值,然后利用Dbreak建立其PSpice模型
    的头像 发表于 10-28 14:52 1531次阅读
    二极管<b class='flag-5'>模型</b>参数计算<b class='flag-5'>建模</b>

    高速串行总线-IBIS-AMI模型建模详解

    随着信号速率-AMI模型在信号完整性仿真中应用越来越多,本文主要介绍了IBIS-AMI模型的基础知识和建模方案。IBIS-AMI模型建模一般
    的头像 发表于 10-16 09:13 2547次阅读
    高速串行总线-IBIS-AMI<b class='flag-5'>模型</b><b class='flag-5'>建模</b>详解

    基于全桥电磁暂态快速模型的SVG建模验证方法

    之前我们介绍过根据单个子模块的运行状态搭建的MMC全桥子模块电磁暂态快速模型建模方法
    的头像 发表于 10-07 10:25 1197次阅读
    基于全桥电磁暂态快速<b class='flag-5'>模型</b>的SVG<b class='flag-5'>建模</b>验证方法

    基于搭建的MMC半桥子模块电磁暂态快速模型建模

    模型背景 之前那我们介绍过根据不同子模块的状态搭建的MMC子模块模型(MMC 半桥子模块电磁暂态快速模型建模)。为进一步测试所搭建模块的正确
    的头像 发表于 08-14 09:28 810次阅读
    基于搭建的MMC半桥子模块电磁暂态快速<b class='flag-5'>模型</b><b class='flag-5'>建模</b>

    MMC全桥子模块电磁暂态快速模型建模

    前一篇我们介绍过半桥子模块级联电磁暂态快速模型建模(MMC 半桥子模块电磁暂态快速模型建模),同样的思路,可以搭建全桥子模块级联拓扑的快速等效模型
    的头像 发表于 08-06 11:51 1629次阅读
    MMC全桥子模块电磁暂态快速<b class='flag-5'>模型</b><b class='flag-5'>建模</b>

    simulink和pspice联合仿真问题

    根据网上的资料操作,已可以再simulink中调用pspice中的模型,但是出现仿真错误如下: 网上查到的解决方案并没有解决我的问题,有没有人可以帮我看看呀,或者您的联合仿真是通过什么连接的 我
    发表于 05-23 15:04

    《基于OrCAD Carpture和PSpice的模拟电路设计与仿真》简介

    行业标志性软件Pspice的仿真功能、器件模型、电路仿真、层电路设计,以及高级仿真分析进行详细讲解,全书共27个章节,章节后还有对应的习题练习,感觉非常适合作为一本教科书了。 本书是丹尼斯.菲茨
    发表于 05-20 14:53