主要内容

将一个SPICE Netlist转换为Simscape

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

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

  1. 使用subcircuit2ssc从Spice NetList文件生成Simscape语言组件文件的功能。您可以使用可选的subcircuit1,...,subcircuitn指定要转换的子电路的输入参数。

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

  3. 使用以下命令构建库SSC_BUILD.或者使用Simscape组件块。

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

命令

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

  • .FUNC——可重用函数

  • .PARAM- 可定义的参数

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

  • .SUBCKT- Subcircuit.

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

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

转换助理实现.FUNC使用Simscape函数的Spice命令。这些功能放在一个名为的包上限+subcircuit_name_simscape_functions.,在那里subcircuit_name被转换的子电路的名称。

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

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

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

因为转换助理的目的是帮助将Spice Subcircuit转换为Simscape块,仿真命令,例如.TRAN,将被忽略。

数字后缀

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

后缀 的名字 规模
T. 1 e12汽油
G Giga 1E9.
梅格 大型 1E6.
K. 公斤 1E3
M. 1 e - 3
密尔 -- 25.4 e-6
1 e-6
N. 纳米 1 e-9
P. 微微 1 e-12
F 毫微微 1 e15汽油

数学函数

转换助理支持Spice和Simscape中使用的这金宝app些基本数学函数。这些基本的数学函数可能不连续或平滑,可以在模拟过程中引起数值问题。要解决这些问题,这些功能可能需要平滑。

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

小学数学

的名字 香料函数 Simscape函数
绝对值 ABS. 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,警告)
双曲余弦 cosh simscape.function.coshm (x, maxAbsX警告)
棕褐色 simscape.function.tanm (x,国旗,ε,x0,警告)
逆切 : :
四象限逆切 量化 量化
双曲正切 双曲正切 双曲正切

指数和对数

的名字 香料函数 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,警告)
基础10对数 log10 simscape.function.log10m(x,x0,warn)
平方根 √6 simscape.function.sqrtm (x,国旗,ε,警告)

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

其他

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

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

Simscape函数列表

< argumentlist >

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

X>ε,此功能的输出趋于X

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

这个函数返回之间最大的参数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-√(- x)为负X.如果国旗参数是1,将平方根函数应用于simscape.function.hyp (x,ε)

带输入保护的正切函数。

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

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

1 / epsilon.输出参数的最大允许值是多少y

< / argumentlist >

符号

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

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

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

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

组件

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

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

  • <参数> *指一个或多次发生的命令行中所需的项目

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

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

此列表显示了全套支持的Spice组件,以及他们支持的Spice 金宝appNetList符号。您只能指定得閒参数与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  <+ node> < -  node> [dc]  i  <+ node> < -  node> exp(     )I  <+节点> < -  node>脉冲(      )i  <+ node> < -  node> pwl(<< tj> > *)i  <+节点> < -  node> sffm(    )i  <+ node> <- 节点> SIN(    
  • 电流控制电压源

    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 <名称> < +节点> < -节点> <电压源名称> <增加> 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> [型号名称]  [ic = ] .model  ind(l = 
  • 电感耦合

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

开关

  • 压控开关

    s  <+ node> < -  node> <+控制节点> < - 控制节点> <型号名称> .model <型号名称> sw(ron = ,roff = ,vt = ,vh = 
  • 电流控制开关

    w  <+ node> < -  node> <电压源名称> <型号名称> .model <型号名> csw(ron = ,roff = ,它= ,ih = <价值>)

半导体器件

  • 二极管

    d  <+ node> < -  node> <型号名称> [区域] .model <型号名称> d(is = ,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沟道

    [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级)金宝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=, +gamma=, is=, js=, kappa=, kp=, lambda=, +ld=, level=, mj=, mjsw=, n=, neff=, nfs=, +nss=, nsub=, nrd=, nrs=, pb=, phi=, rd=, +rs=, rsh=, theta=, tox=, tpg=, ucrit=, +uexp=, uo=, vmax=, vto=, xj=)

子系统

  • 亚韵序列

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

执行手工转换

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

R1 p n 1k TC=0.01,-0.002

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

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

寄生的价值观

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

限制

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

  • 仅支持PSPICE NetList语言的子集。金宝app但是,在相应的Sims金宝appcape组件文件的顶部识别不支持的PSPICE命令,以促进手动转换。

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

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

另请参阅

|

相关的话题