主要内容

将一个SPICE Netlist转换为Simscape

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

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

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

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

  3. 使用以下命令构建库ssc_构建或者使用将单个组件添加到模型中Simscape组件块。

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

命令

SPICE转换助手支持以下命令:万博1manbetx

  • .FUNC——可重用函数

  • 帕拉姆先生-可定义参数

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

  • .SUBCKT-子电路

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

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

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

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

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

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

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

数字后缀

转换助手支持这些数字SPICE后缀:万博1manbetx

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

数学函数

转换助手支持SPICE和Simscape中使用的这万博1manbetx些基本数学函数。这些基本数学函数可能不是连续的或平滑的,在模拟过程中可能会导致数值问题。要解决这些问题,这些函数可能需要平滑处理。

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

小学数学

的名字 香料函数 Simscape函数
绝对值 防抱死制动系统 simscape.function.abs(x,ZC)
最小元素 最小值 simscape.function.minm (x, y, n,ε)
最大的元素 马克斯 simscape.function.maxm (x, y, n,ε)
符号函数 胡志明市 simscape.function.sign (x,佐)

三角函数

的名字 香料函数 Simscape函数
正弦
反正弦 印度历的7月 simscape.function.asinm (x,警告)
双曲正弦 sinh simscape.function.sinhm (x, maxAbsX警告)
余弦 因为 因为
反余弦函数 这些“可信赖医疗组织” simscape.function.acosm (x,警告)
双曲余弦 科什 simscape.function.coshm (x, maxAbsX警告)
棕褐色 simscape.function.tanm (x,国旗,ε,x0,警告)
逆切 : :
四象限逆切 量化 量化
双曲正切 双曲正切 双曲正切

指数和对数

的名字 香料函数 Simscape函数
权力 x**y,压水式反应堆(x, y),或压水堆(x,y) simscape.function.powerRational (x, y,国旗,ε,警告)
指数 经验值 simscape.function.expm (x, xl、xh警告)
自然对数 ln日志 simscape.function.logm (x, x0,警告)
以10为底的对数 log10 simscape.function.log10m(x,x0,warn)
平方根 √6 simscape.function.sqrtm (x,国旗,ε,警告)

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

其他

此外,转换助手还支持以下SPICE和Simscape函数:万博1manbetx

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

Simscape函数列表

< argumentlist >

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

x>ε,此函数的输出趋于x

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

您可以通过指定输入参数来启用或禁用零交叉要么真正的

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

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

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

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

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

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

这个函数返回的是的反余弦值x,助理文书主任(x),因为1≤x≤1,0x > 1, π代表x < 1.这样可以防止对无效输入范围的小数字入侵助理文书主任(x)

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

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

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

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

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

这个函数返回以10为底的对数x,log10 (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转换助手转换压水堆(x,y)香料函数simscape.function.powerRational(x,y,0,0,warn)

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

您可以通过指定输入参数来启用或禁用零交叉要么真正的

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

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

带输入保护的正切函数。

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

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

1/ε输出参数的最大允许值是多少Y

< / argumentlist >

符号

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

  • +在一行的开头表示从上一行继续行

  • *在一行的开头表示整行都是注释

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

组件

本节中SPICE命令的表示法遵循以下规则:

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

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

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

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

此列表显示了支持的SPICE组件的完整集合及其支持的SPICE网万博1manbetx络列表符号。您只能指定得閒参数与SPICE默认值不同。

来源

  • 独立电压源

    V <名称> < +节点> < - >节点(DC) <价值> V <名称> < +节点> < - >节点exp (< v1 > < v2 > < td1 > < tc1 > < td2 > < tc2 >) V <名称> < +节点> < - >节点脉冲(< v1 > < v2 > < td > < tr > < tf > < pw > < / >) V <名称> < +节点> < - >节点pwl (< < tj > < vj > > *) V <名称> < +节点> < - >节点sffm (< voff > < vampl > < fc > < mod > <调频>)V <名称> < +节点> < - >节点罪(< voff > < vampl > <频率> < td > < df >)
  • 独立电流源

    I)IIexp()I脉冲()I)I节点
  • 电流控制电压源

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

    E<+node><-node><+control node><-control node>E<+node><-node>值={}E<+node><-node>多边形()<+control node><-control node><系数>*E<+node><-node>表{输入值>,,>*E<+node><-node><+control node><-control node>表=<>*
  • 电流控制电流源

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

    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=]。modelind(L=
  • 电感耦合

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

开关

  • 压控开关

    S<+node><-node><+control node>。modelsw(ron=,roff=,vt=,vh=
  • 电流控制开关

    W.modelcsw(ron=,roff=,it=,ih=

半导体器件

  • 二极管

    D[area]。模型D(is=,rs=,n=,cjo=,vj=,+m=,fc=,tt=,revbrk=,bv=,ibv=,+xti=,eg=
  • 双极结晶体管(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[衬底节点].modelpnp(bf=,br=,cjc=,cje=,cjs=,+eg=,fc=,ikf=,ikr=,irb=,is=,isc=,+ise=,itf=,mjc=,mjs=,nc=,nc=,ne=,ne=,+nf=,nr=,nr=,rb=,rb=,rb=,rb=,rbm=lue>,var=,vjc=,vje=,vjs=,vtf=,+xcjc=,xtb=,xtf=,xti=

  • 结场效应晶体管(JFET)

    n沟道

    [area] .MODEL  njf(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级)万博1manbetx

    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级)万博1manbetx

    M+[L=][W=][AD=][AS=][PD=][PS=][NRD=][M=][M=pmos(cbd=,cbs=,cgbo=,cgdo=,+cgso=,cj=,cjsw=,delta=,eta=,fc=,+gamma=,is=,js=,kappa=,kp=,lambda=,+ld=,level=,level=,mj=,SW=,n=,n=,neff=,Nsd=,Nsd>>,nrs=,pb=,phi=,rd=,+rs=,rsh=,theta=,tox=,tpg=,ucrit=,+uexp=,uo=,vmax=,vto=,xj=

子系统

  • 子电路

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

执行手工转换

生成Simscape组件文件后,检查每个文件头,以查看有关不受支持的SPICE命令的消息。万博1manbetx例如,转换助手不支持实现电阻的温度系数:万博1manbetx

R1 p n 1k TC=0.01,-0.002

生成的Simscape组件文件包含所有支持的转换,以及这个头文件,它标识了用于手动转换的电阻的温度系数:万博1manbetx

component test % test %从SPICE网络列表中自动生成的组件(11- 12 -2018 09:34:57)。用户应该手动执行以下SPICE命令,以实现一个完整的实现
要完成转换,请修改Simscape组件文件以实现缺少的组件。有关执行手动转换和此特定场景的更多信息,请参阅subcircuit2ssc

寄生的价值观

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

限制

  • 网表必须以PSpice格式书写,并且语法正确。转换助手不检查正确的PSpice语法。

  • 仅支持PSpice网络列表语言的一个子集。但是,不支持的PSpice命令会在相应的Simscap万博1manbetxe组件文件的顶部标识,以便于手动转换。

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

  • 转换助手不支持使用派生的SPICE函数,万博1manbetx滴滴涕,在函数调用中。

另请参阅

|

相关的话题