主要内容

将SPICE Netlist转换为Simscape

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

要将SPICE子电路转换为等效的Simscape组件,请遵循以下步骤。

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

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

  3. 使用以下命令构建库ssc_build或者在模型中添加单独的组件Simscape组件块。

有许多不同的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=<值>)
在哪里rc,l值是组件声明中指定值的缩放因子。此行为符合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,佐)

三角函数

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

转换助手进行解释日志()是自然对数,而不是以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函数列表

< argumentlist >

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

x>ε时,该函数的输出趋向于x

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

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

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

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

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

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

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

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

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

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

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

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

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

的值时使用此函数x接近0在模拟。集x0之间的0而且1

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

的值时使用此函数x接近0在模拟。集x0之间的0而且1

该函数返回between的最大参数x而且y.输入参数,n,设置平滑函数的顺序。

论点ε决定转换的开始,是函数的绝对误差x等于y

这个函数返回between的最小参数x而且y.输入参数,n,设置平滑函数的顺序。

论点ε决定转换的开始,是函数的绝对误差x等于y

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

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

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

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

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

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

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

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

带输入保护的正切函数。

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

如果国旗参数是1,这个函数返回的是tanx谭(x),当x范围之间x0而且x0.否则,它使用边界处梯度匹配的线性外推。

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

< / argumentlist >

符号

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

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

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

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

组件

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

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

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

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

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

该列表显示了受支持的完整SPICE组件集,以及它们所支持的SPI金宝appCE网列表符号。只能指定得閒与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 >)
  • 独立电流源

    我<名称> < +节点> < - >节点(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<名称> <+节点> <-节点> VALUE={<表达式>}H<名称> <+节点> <-节点> POLY(<值>)<电压源名称>* <系数>* H<名称> <+节点> <-节点> TABLE{<表达式>}=<输入值>,<输出值> >* H<名称> <+节点> <-节点> <电压源名称> TABLE=<输入值>,<输出值> >*
  • 电压控制电压源

    E<名称> <+节点> <-节点> <+控制节点> <-控制节点> <增益> E<名称> <+节点> <-节点> VALUE={<表达式>}E<名称> <+节点> <-节点>* <系数>* E<名称> <+节点> <-节点>* E<名称> <+节点> <-节点> <+控制节点> <-控制节点> TABLE=< <输入值>,<输出值>>*
  • 电流控制电流源

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

    G<名称> <+节点> <-节点> <+控制节点> <-控制节点> <增益> G<名称> <+节点> <-节点> VALUE={<表达式>}G<名称> <+节点> <-节点>* <系数>* G<名称> <+节点> <-节点>* G<名称> <+节点> <-节点> <+控制节点> <-控制节点> TABLE=< <输入值>,<输出值>>*
  • 行为源(<表达式>不需要出现在大括号{}中)

    B<名称> <+节点> <-节点> V=<表达式> B<名称> <+节点> <-节点> I=<表达式>

无源设备

  • 电阻器

    R <+ node> <- node>[型号名称] .MODEL <型号名称> res(R =)
  • 电容器

    C <+ node> <- node>[型号名称] [IC=] .MODEL <型号名称> cap(C=)
  • 电感器

    L <+ node> <- node>[型号名称] [IC=] .MODEL <型号名称> ind(L =)
  • 电感耦合

    K<名称> <电感器名称> <电感器名称>* <值>

开关

  • 压控开关

    S<名称> <+节点> <-节点> <+控制节点> <-控制节点> <型号名称> .MODEL <型号名称> sw(ron=<值>,roff=<值>,vt=<值>,vh=<值>)
  • 电流控制开关

    W<名称> <+节点> <-节点> <电压源名称> <型号名称> .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=<值>,is=<值>,isc=<值>,+ise=<值>,itf=<值>,mjc=<值>,nc=<值>,ne=<值>,+nf=<值>,nr=<值>,rb=<值>,rbm=<值>,rc=<值>,re=<值>,var=<值>,vjc=<值>,vje = > <价值,vj = > <价值,vtf = > <值,+ xcjc = > <价值,xtb = > <价值,xtf = > <价值,xti = < >价值)

    PNP型

    Q<名称> <集电节点> <基电节点> <发射器节点>[基片节点]<型号名称> <区域> .MODEL <型号名称> pnp(bf=<值>,br=<值>,cjc=<值>,cje=<值>,cjs=<值>,+eg=<值>,ikf=<值>,ikr=<值>,irb=<值>,is=<值>,isc=<值>,+ise=<值>,itf=<值>,mjc=<值>,nc=<值>,ne=<值>,+nf=<值>,nr=<值>,rb=<值>,rbm=<值>,+tr=<值>,vaf=<值>,var=<值>,vjc=<值>,vje = > <价值,vj = > <价值,vtf = > <值,+ xcjc = > <价值,xtb = > <价值,xtf = > <价值,xti = < >价值)

  • 结场效应晶体管(JFET)

    n沟道

    J<名称> <排放节点> <门节点> <源节点> <型号名称> [area] .MODEL <型号名称> njf(beta=<值>,cgd=<值>,cgs=<值>,fc=<值>,is=<值>,+lambda=<值>,m=<值>,rd=<值>,rs=<值>,vto=<值>,xti=<值>)

    p沟道

    J<名称> <漏节点> <门节点> <源节点> <型号名称> [area] .MODEL <型号名称> pjf(beta=<值>,cgd=<值>,cgs=<值>,fc=<值>,is=<值>,+lambda=<值>,m=<值>,rd=<值>,rs=<值>,vto=<值>,xti=<值>)

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

    n通道(只支持level-1和level-3)金宝app

    M <名称> <排水节点> <门节点> <源节点> <大部分节点> <模型名称> + [L = < >价值][W = < >价值][广告= < >价值],[因为]= > <价值[PD = < >价值][PS = < >价值][”= > <价值]+ [NRS = < >价值][M = < >价值]得<模型名称> nmos (cbd = > <价值,哥伦比亚广播公司(cbs) = > <价值,cgbo = > <价值,cgdo = > <值,+ cgso = > <价值,cj = > <价值,cjsw = > <价值,δ= > <价值,η= > <价值,fc = > <值,+γ= > <价值,是= > <价值,js = > <价值,kappa = > <价值,kp = > <价值,λ= > <值,+ ld = > <价值,水平= > <价值,乔丹= > <价值,mjsw = > <价值,n = > <价值,内夫= > <价值,nfs = > <值,+ nss = > <价值,nsub = > <价值,”= > <价值,nrs = > <价值,pb = > <价值,φ= > <价值,rd = > <值,+ rs = > <价值,rsh = > <价值,θ= > <价值,托克斯= > <价值,tpg = > <价值,ucrit = > <值,+单边= > <价值,uo = > <价值,vmax = > <价值,vto = > <价值,xj = < >价值)

    p通道(只支持level-1和level-3)金宝app

    M <名称> <排水节点> <门节点> <源节点> <大部分节点> <模型名称> + [L = < >价值][W = < >价值][广告= < >价值],[因为]= > <价值[PD = < >价值][PS = < >价值][”= > <价值]+ [NRS = < >价值][M = < >价值]得<模型名称> pmo (cbd = > <价值,哥伦比亚广播公司(cbs) = > <价值,cgbo = > <价值,cgdo = > <值,+ cgso = > <价值,cj = > <价值,cjsw = > <价值,δ= > <价值,η= > <价值,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-12-2018 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滴滴涕,在函数调用中。

另请参阅

|

相关的话题