主要内容

转换SPICE Netlist到Simscape

您可以使用SPICE转换助手将SPICE组件转换为Simscape™等效组件。这种转换通常是自动的。但是,由于SPICE是一种丰富的语言,因此不可能总是在没有一些手动干预的情况下执行完全的转换。

要将Spice Subcircuits转换为等效的Simscape组件,请按照下列步骤操作。

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

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

  3. 使用以下命令构建库ssc_build或使用型号添加单个组件Simscape组件块。

有许多不同的SPICE模拟器,它们在语法和语法解释方面都有所不同。转换助手使用与Cadence相同的语法®PSPICE,存在这种差异,符合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=)
那里r,c, 和l值是组件声明中指定值的缩放因子。这种行为符合PSpice,但并不是所有模拟器都一致。

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

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

数字后缀

转换助理支持这些数字Spice后缀:金宝app

后缀 的名字 规模
T 塔拉 1 e12汽油
G 千兆 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和MATLAB中使用的这些基金宝app本数学函数。

小学数学

的名字 香料函数 Matlab功能
绝对值 腹肌 腹肌
最小的元素 最小值 最小值
最大的元素 最大限度 最大限度
符号函数 胡志明市 符号

三角函数

的名字 香料函数 Matlab功能
正弦
逆正弦 asin asin
双曲正弦 sinh sinh
余辉 COS. COS.
逆余弦 ACOS. ACOS.
双曲线余弦 c c
切线 晒黑 晒黑
逆线 : :
四象限逆切 atan2. atan2.
双曲正切 塔尼 塔尼

指数和对数

的名字 香料函数 Matlab功能
权力 **或者压水式反应堆 ^或者权力
指数 经验值 经验值
自然对数 LN.或者日志 日志
八进制数数对数 log10 log10
平方根 SQRT. SQRT.

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

其他

此外,转换助手还支持以下SPICE功能:金宝app

的名字 香料函数
如果条件 如果
饱和 限制
电流装置
设备上的电压 v
阶段功能 stp
导数(见限制) DDT.
表格 桌子

符号

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

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

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

  • ;在一行中表示内联评论的开头

组件

本节中的Spice命令表示说明:

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

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

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

  • [争论]*参考命令行中的可选项目,其出现零或多次

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

来源

  • 独立电压源

    v  <+节点> < -  node> [dc]  v  <+ node> < -  node> exp(     )v  <+节点> < - 节点>脉冲(      )v  <+ node> < -  node> pwl(<< tj> > *)v  <+节点> < -  node> sffm(    )v  <+ node> <- 节点> SIN(    
  • 独立电流源

    我<名称> < +节点> < - >节点(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> <+控制节点> < - 控制节点> <增益> e  <+ node> < -  node>值= {<表达式>} e  <+节点> < - 节点>多()<< +控制节点> < - 控制节点>> * <系数> * e  <+ node> < -  node>表{<表达式>} = <<我nput value>,  >* E <+ node> <- node> <+ control node> <- control node> TABLE=< ,  >*
  • 电流控制电流源

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

    g  <+ node> < -  node> <+控制节点> < - 控制节点>  g  <+节点> < - 节点>值= {<表达式>} g  <+节点> < - 节点>多()<< +控制节点> < - 控制节点>> * <系数> * g  <+ node> < -  node>表{<表达式>} = <<<我nput value>,  >* G <+ node> <- node> <+ control node> <- control node> TABLE=< ,  >*
  • 行为源(<表达式>不需要出现在大括号{}中)

    b  <+节点> < -  node> v = <表达式> b  <+ node> < -  node> i = <表达式>

无源设备

  • 电阻器

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

    C  <+ node> < -  node> [型号名称]  [ic = ] .model 帽(c = 
  • 电感器

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

    k  <电感名称>  * 

开关

  • 压控开关

    S <+ node> <- node> <+ control 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  <收集节点> <基本节点> <发射器节点> [基板节点] <型号名称> <区域> .model <型号名> npn(bf = ,br = ,cjc = <值>,cje = ,cjs = ,+ eg = ,fc = ,ikf = ,ikr = ,irb = ,是= <值>,ISC = ,+ ISE = ,ITF = ,mjc = ,mje = ,mjs = ,nc = ,ne = ,+ nf = ,nr = ,rb = ,rbm = ,rc = ,re = ,tf = ,+ tr = ,vaf=, var=, vjc=, vje=, vjs=, vtf=, +xcjc=, xtb=, xtf=, xti=)

    PNP型

    Q <名称> <收集节点> <基本节点> <发射器节点> [基板节点] <型号名称> <区域> .MODEL <型号名称> PNP(BF = ,BR = ,CJC = <值>,cje = ,cjs = ,+ eg = ,fc = ,ikf = ,ikr = ,irb = ,是= <值>,ISC = ,+ ISE = ,ITF = ,mjc = ,mje = ,mjs = ,nc = ,ne = ,+ nf = ,nr = ,rb = ,rbm = ,rc = ,re = ,tf = ,+ tr = ,vaf=, var=, vjc=, vje=, vjs=, vtf=, +xcjc=, xtb=, xtf=, xti=)

  • 结场效应晶体管(JFET)

    n频道

    njf(beta=<值>,cgd=<值>,cgs=<值>,fc=<值>,is=<值>,+lambda=<值>,m=<值>,n=<值>,rd=<值>,rs=<值>,vto=<值>,xti=<值>)

    p沟道

    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=, +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=)

    p频道(支持仅限级别1和级别3)金宝app

    M      +[L=] [W=] [AD=] [AS=] [PD=] [PS=] [NRD=] +[NRS=] [M=] .MODEL  pmos(cbd=, cbs=, cgbo=, cgdo=, +cgso=, cj=, cjsw=, delta=, 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例如,转换助手不支持实现电阻的温度系数:金宝app

R1 p n 1k TC=0.01,-0.002

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

component test % test %由SPICE网表自动生成的组件(11-Dec-2018 09:34:57)。用户应该手动执行以下SPICE命令来实现一个完整的实现:% R1: tc 0.01 -0.002
要完成转换,请修改Simscape组件文件以实现缺少的组件。有关执行手动转换和此特定场景的详细信息,请参见subcircuit2ssc

寄生的价值观

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

限制

  • 网表必须以PSPICE格式写入并进行句子正确。转换助理不会检查适当的PSPICE语法。

  • 仅支持PSpice netlist语言的一个子集。金宝app但是,不支持的PSpi金宝appce命令被标识在相应的Simscape组件文件的顶部,以便于手动转换。

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

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

也可以看看

|

相关话题