主要内容

将SPICE网络列表转换为Simscape

您可以使用SPICE转换助手将SPICE组件转换为Simscape™等同物。这种转换通常是自动的。但是,由于SPICE是一种丰富的语言,不进行一些手动干预并不总是能够执行完整的转换。

按照以下步骤将SPICE子电路转换为等效Simscape组件。

  1. 使用subcircuit2ssc函数从SPICE网络列表文件生成Simscape语言组件文件。您可以使用可选选项subcircuit1,…,subcircuitN输入参数以指定要转换的子电路。

  2. 对生成的Simscape组件文件进行任何必要的手动转换。要识别所需的手动转换,请检查生成的Simscape组件文件开头的注释。您可以使用可选选项不受金宝app支持的命令输出参数以生成结构体数组,列出每个子电路不支持的SPICE金宝app命令。

  3. 使用以下命令构建库ssc_build或者使用模拟景观组件阻碍。

有许多不同的SPICE模拟器,它们在语法和语法解释方面有所不同。转换助手使用与Cadence相同的语法®如果存在这种差异,则遵循PSpice。

命令

SPICE转换助手支持以下命令:金宝app

  • .FUNC——可重用函数

  • .PARAM——可定义的参数

  • 得閒-可重用组件参数集

  • .SUBCKT——分支电路

  • . lib-指令以包括外部网络列表中的模型

  • . inc-包含外部网络列表内容的指令

转换助手实现.FUNC使用Simscape函数的SPICE命令。这些函数被放置在名为+subcircuit_name_simscape_functions,在那里subcircuit_name被转换的子电路的名称。

指定得閒电阻器、电容器和电感器的语法,如

.MODEL  res(r=) .MODEL  cap(c=) .MODEL  ind(l=)
在哪里rcl值是组件声明中指定的值的缩放因子。此行为符合PSpice,但在所有模拟器中并不一致。

属性指定的初始条件不会自动转换.IC陈述但是,可以使用语法指定电容器和电感器的初始条件IC = <值>.此外,您可以手动转换任何.IC语句来自生成的Simscape组件文件。

因为转换助手的目的是帮助将SPICE子电路转换为Simscape块,模拟命令,例如.TRAN,将被忽略。

数字后缀

转换助手支持这些数字SPICE后缀:金宝app

后缀 名称 规模
T 1 e12汽油
G Giga 1 e9
梅格 大型 1 e6
K 公斤 1 e3
1 e - 3
密耳 -- 25.4 e-6
U 微型的 1 e-6
N 纳米 1 e-9
P 皮科 1 e-12
F 飞秒 1 e15汽油

数学函数

转换助手支持SPICE和Simscape中使用的这金宝app些基本数学函数。这些基本的数学函数可能不是连续的或平滑的,并可能在模拟过程中造成数值问题。为了解决这些问题,这些函数可能需要平滑。

subcircuit2ssc函数在转换SPICE子电路时自动开启平滑参数。要禁用平滑选项,在生成的Simscape组件块的块掩码中,设置指定函数平滑参数参数到

初等数学

名称 香料函数 Simscape函数
绝对值 腹肌 simscape.function.abs (x,佐)
最小的元素 simscape.function.minm(x,y,n,ε)
最大元素 马克斯 simscape.function.maxm (x, y, n,ε)
符号函数 胡志明市 simscape.function.sign(x,ZC)

三角学

名称 香料函数 Simscape函数
正弦
反正弦 印度历的7月 simscape.function.asinm (x,警告)
双曲正弦 信义 simscape.function.sinhm(x,maxAbsX,warn)
余弦 因为 因为
反余弦 acos simscape.function.acosm(x,warn)
双曲余弦 cosh simscape.function.coshm (x, maxAbsX警告)
棕褐色 simscape.function.tanm(x,flag,epsilon,x0,warn)
逆切 : :
四象限逆切 量化 量化
双曲正切 双曲正切 双曲正切

指数和对数

名称 香料函数 Simscape函数
权力 x * * y压水堆(x,y)pwr (x, y) simscape.function.powerRational (x, y,国旗,ε,警告)
指数 经验 simscape.function.expm (x, xl、xh警告)
自然对数 ln日志 simscape.function.logm(x,x0,warn)
八进制数数对数 日志10 simscape.function.log10m (x, x0,警告)
平方根 √6 sqrtm(x,flag,epsilon,warn)

转换助手解释日志()作为自然对数而不是以10为底的对数。并非所有SPICE模拟器在这方面都是一致的,因此要确保这种解释与SPICE模型一致。

另外

此外,转换助手还支持以下SPICE和Simscape函数:金宝app

名称 香料函数 Simscape函数
如果条件 如果 如果其他
饱和 限度 simscape.function.limitm (x, a、b、n,ε)
电流装置
电压设备 v v
阶跃函数 stp 如果x>0,则1否则0结束
导数(见限制 滴滴涕 der
表格 表格 simscape.tablelookup ((x1, x2,……xn) (y1, y2,…yn), x,插值=线性外推法=最近的)

Simscape函数列表

这个函数总是输出一个正值。使用这个函数可以防止被零除法之类的问题。ε确定过渡的平滑度,并在以下情况下为hyp函数的绝对误差:x= 0

x>ε,这个函数的输出趋向于x

这个函数返回输入参数的绝对值,x

您可以通过指定输入参数来启用或禁用零交叉要么符合事实的

这个函数返回的指数xexp(x),当x范围之间xlxl.否则,它使用线性外推与梯度匹配的边界。

使用此函数可避免与exp(x)对于很小或很大的输入参数。

这个函数返回的双曲余弦值xcosh(x),当x范围之间-maxAbsXmaxAbsX.否则,它使用线性外推与梯度匹配的边界。

使用此函数可避免与cosh(x)对于较大的负或正输入参数。

这个函数返回的是的双曲正弦xsinh (x),当x范围之间-maxAbsXmaxAbsX.否则,它使用线性外推与梯度匹配的边界。

使用此函数可避免与sinh (x)对于较大的负或正输入参数。

这个函数返回的是的反余弦值x这些“可信赖医疗组织”(x),因为1≤x≤10x> 一,, π代表x < 1.这样可以防止对无效输入范围的小数字入侵这些“可信赖医疗组织”(x)

这个函数返回的反正弦值xasin(x),因为1≤x≤10x> 一,, π代表x < 1.这样可以防止对无效输入范围的小数字入侵asin(x)

这个函数返回x之间的有限xlxh.输入参数,n,设置平滑函数的顺序。

论点ε确定了转换的开始,并且是函数的绝对误差时x等于xlxh

这个函数返回的自然对数x日志(x),当x大于x0.否则,它使用线性外推与梯度匹配的边界。

的值时使用此函数x达到接近0在模拟。集x0之间的01

此函数用于返回以10为底的xlog10 (x),当x大于x0.否则,它使用线性外推与梯度匹配的边界。

的值时使用此函数x达到接近0在模拟。集x0之间的01

这个函数返回之间最大的参数xy.输入参数,n,设置平滑函数的顺序。

论点ε确定了转换的开始,并且是函数的绝对误差时x等于y

此函数返回两个参数之间的最小参数xy.输入参数,n,设置平滑函数的顺序。

论点ε确定了转换的开始,并且是函数的绝对误差时x等于y

幂函数x^y,在那里y是理性的,带保护的是消极的x

如果国旗参数是0,函数返回x^yx≥0- (- x) ^ yx< 0.如果国旗参数是1将幂函数应用于simscape.function.hyp (x,ε)

SPICE转换助手转换压水堆(x,y)香料函数simscape.function.powerRational (x, y, 1,0,警告)

SPICE转换助手转换pwr (x, y)香料函数simscape.function.powerRational (x, y, 0, 0,警告)

这个函数返回输入参数的signum,x

您可以通过指定输入参数来启用或禁用零交叉要么符合事实的

带输入参数保护的平方根函数。

如果国旗参数是0,此函数返回sqrt (x)积极的x-sqrt(-x)负片x.如果国旗参数是1,将平方根函数应用于simscape.function.hyp (x,ε)

带输入保护的正切函数。

如果国旗参数是0,此函数返回x谭(x),当x等于-π/2.的ε参数决定在这些点上过渡的平滑性。

如果国旗参数是1,此函数返回x谭(x),当x范围之间x0x0.否则,它使用线性外推与梯度匹配的边界。

1 /ε是输出参数允许的最大值y

< / argumentlist >

符号

转换助手识别这些SPICE符号:

  • +行首表示从上一行开始的行延续

  • 行的开头表示整行是注释

  • 在一行中表示内联注释的开始

组件

本节中SPICE命令的符号遵循以下规则:

  • <参数>指命令行中的必需项

  • <参数> *指命令行中出现一次或多次的必需项

  • (论点)指命令行中的可选项

  • [论点]*指命令行中出现零次或多次的可选项

此列表显示了受支持的SPICE组件的完整集合,以及它们受支持的S金宝appPICE netlist表示法。您只能指定得閒与SPICE默认值不同的参数。

来源

  • 独立电压源

    V)VV)V脉冲()V*))V节点
  • 独立电流源

    我<名称> < +节点> < - >节点(DC)价值> <我<名称> < +节点> < - >节点exp (< i1 > < i2 > < td1 > < tc1 > < td2 > < tc2 >)我<名称> < +节点> < - >节点脉冲(< i1 > < i2 > < td > < tr > < tf > < pw > < / >)我<名称> < +节点> < - >节点pwl (< < tj > < ij > > *)我<名称> < +节点> < - >节点sffm (< ioff > < iampl > < fc > < mod > <调频>)我<名称> < +节点> < - >节点罪(< ioff > < iampl > <频率> < td > < df >)
  • 电流控制电压源

    H <名称> < +节点> < -节点> <电压源名称> <增加> H <名称> < +节点> < - >节点值={<表达式>}H <名称> < +节点> < - >节点聚(< >价值)<电压源名称> * <系数> * H <名称> < +节点> < - >节点表{<表达式>}= < <输入值>,<输出值> > * H <名称> < +节点> < -节点> <电压源名称>表= < <输入值>,<输出值> > *
  • 压控电压源

    E <+ node> <- node> <+ control node> <- node>  E <+ node> <- node> VALUE={} E <+ node> <- node b> POLY(< VALUE >) <<+ control node> <- control node>>* * E <+ node> <- node> TABLE {}=< ,<输出值> >* E <+节点> <-节点> <+控制节点> <-控制节点> TABLE=< <输入值>,<输出值> >*
  • 电流控制电流源

    F<+node><-node>F<+node><-node>VALUE={}F<+node><-node>POLY(**F<+node><-node>表{}=*FTABLE=>*
  • 压控电流源

    G <+ node> <- node> <+ control node> <- node>  G <+ node> <- node> VALUE={} G <+ node> <- node b> POLY(< VALUE >) <<+ control node> <- control node>>* * G <+ node> <- node> TABLE {}=< ,<输出值> >* G <+节点> <-节点> <+控制节点> <-控制节点> TABLE=< <输入值>,<输出值> >*
  • 行为源(不需要出现在大括号{}中)

    B <+ node> <- node> V= B <+ node> <- node> I=

无源设备

  • 电阻器

    R <+ node> <- node> [model name]  .MODEL  res(R =)
  • 电容器

    C <+ node> <- node> [model name]  [IC=] .MODEL  cap(C=)
  • 电感器

    L <+ node> <- node> [model name]  [IC=] .MODEL  ind(L =)
  • 电感耦合

    K <感应器名称> <感应器名称>* 

开关

  • 压控开关

    S <+ node> <- node> <+ control node> <- control node>  .MODEL  sw(ron=, roff=, vt=, vh=)
  • 电流控制开关

    W <+ node> <- node>   .MODEL  csw(ron=, roff=, it=, ih=)

半导体器件

  • 二极管

    D <名称> < +节点> < -节点> <模型名称>(地区)得<模型名称> D (rs = = <价值>,<价值>,n = > <价值,cjo = > <价值,vj = > <值,+ m = > <价值,fc = > <价值,tt = > <价值,revbrk = > <价值,bv = > <价值,ibv = > <值,+ xti = > <价值,如= < >价值)
  • 双极结晶体管(BJT)

    NPN型

    Q    [substrate node]   .MODEL  npn(bf=, br=, cjc=, cjs=, +eg=, fc=, ikf=, ikr=, irb=, is=, isc=, +ise=, itf=, mjc=, mje=, mjs=, nc=,)= > <值,+ nf = > <价值,nr = > <价值,rb = > <价值,遏制= > <价值,rc = > <价值,re = > <价值,tf = > <值,+ tr = > <价值,vaf = > <价值,var = > <价值,vjc = > <价值,vje = > <价值,vj = > <价值,vtf = > <值,+ xcjc = > <价值,xtb = > <价值,xtf = > <价值,xti = < >价值)

    PNP

    Q    [substrate node]   .MODEL  pnp(bf=, br=, cjc=, cce =, cjs=, +eg=, fc=, ikf=, ikr=, irb=, is=, isc=, +ise=, itf=, mjc=, mje=, mjs=, nc=,)= > <值,+ nf = > <价值,nr = > <价值,rb = > <价值,遏制= > <价值,rc = > <价值,re = > <价值,tf = > <值,+ tr = > <价值,vaf = > <价值,var = > <价值,vjc = > <价值,vje = > <价值,vj = > <价值,vtf = > <值,+ xcjc = > <价值,xtb = > <价值,xtf = > <价值,xti = < >价值)

  • 结场效应晶体管(JFET)

    n沟道

    Jnjf(beta=,cgd=,cgs=,fc=,is=,+lambda=,m=,n=,rd=,rs=,vto=,xti=

    p沟道

    [area] .MODEL  pjf(beta=, cgd=, cgs=, fc=, is=, +lambda=, m=, n=, rd=, rs=, vto=, xti=)

  • 金属氧化物半导体场效应晶体管

    N-Channel(仅支持1级和3级)金宝app

    M      +[L=] [W=] [AD=] [AS=] [PD=] [PS=] [NRD=] +[NRS=] [M=] .MODEL  nmos(cbd=, cbs=, cgbo=, cgdo=, +cgso=, cj=, cjsw=, delta=, eta=, fc=)+γ= > <价值,是= > <价值,js = > <价值,kappa = > <价值,kp = > <价值,λ= > <值,+ ld = > <价值,水平= > <价值,乔丹= > <价值,mjsw = > <价值,n = > <价值,内夫= > <价值,nfs = > <值,+ nss = > <价值,nsub = > <价值,”= > <价值,nrs = > <价值,pb = > <价值,φ= > <价值,rd = > <值,+ rs = > <价值,rsh = > <价值,θ= > <价值,托克斯= > <价值,tpg = > <价值,ucrit = > <价值,+单边= > <价值,uo = > <价值,vmax = > <价值,vto = > <价值,xj = < >价值)

    p通道(仅支持1级和3级)金宝app

    M      +[L=] [W=] [AD=] [AS=] [PD=] [PS=] [NRD=] +[NRS=] [M=] .MODEL  pmos(cbd=, cbs=, cgbo=, cgdo=, +cgso=, cj=, cjsw=, delta=, eta=, fc=,)+γ= > <价值,是= > <价值,js = > <价值,kappa = > <价值,kp = > <价值,λ= > <值,+ ld = > <价值,水平= > <价值,乔丹= > <价值,mjsw = > <价值,n = > <价值,内夫= > <价值,nfs = > <值,+ nss = > <价值,nsub = > <价值,”= > <价值,nrs = > <价值,pb = > <价值,φ= > <价值,rd = > <值,+ rs = > <价值,rsh = > <价值,θ= > <价值,托克斯= > <价值,tpg = > <价值,ucrit = > <价值,+单边= > <价值,uo = > <价值,vmax = > <价值,vto = > <价值,xj = < >价值)

子系统

  • 分支电路

    X [node]*  [PARAMS: < = >*]

执行手动转换

生成Simscape组件文件后,请检查每个文件头是否有与不支持的SPICE命令有关的消息。例如,“转换助手”不支持电阻器温度系数的实现:金宝app

R1 p n 1k TC=0.01,-0.002

生成的Simscape组件文件包含所有支持的转换,以及该标题,该标题用于标识手动转换电阻器的温度系数:金宝app

组件测试%test%组件自动从SPICE网络列表生成(2018年12月11日09:34:57)。%用户应手动执行以下SPICE命令,以%实现完整实施:%R1:tc 0.01-0.002
要完成转换,请修改Simscape组件文件以实现缺失的组件。有关执行手动转换和此特定场景的更多信息,请参见subcircuit2ssc

寄生值

对于无源器件,如电容器和电感,要在生成的Simscape组件文件中引入寄生值,设置寄生指定值参数到.的值电容寄生串联电阻电感寄生并联电导参数。

限制

  • 网络列表必须以PSpice格式编写,并且语法正确。转换助手不检查PSpice语法是否正确。

  • 只支持PSpice网络列表语言的一个子集。金宝app但是,在相应的Sims金宝appcape组件文件的顶部标识不支持的PSpice命令,以方便手动转换。

  • 要将生成的Simscape组件构建到Simscape块中,参数值必须符合Simscape约束。例如,基本电容的电容和基本电感的电感必须是非零的。

  • 转换助手不支持使用派生的SPICE函数,金宝app滴滴涕,在函数调用中。

另请参阅

|

相关话题