您可以使用SPICE转换助手将SPICE组件转换为Simscape™等同物。这种转换通常是自动的。但是,由于SPICE是一种丰富的语言,不进行一些手动干预并不总是能够执行完整的转换。
按照以下步骤将SPICE子电路转换为等效Simscape组件。
使用subcircuit2ssc
函数从SPICE网络列表文件生成Simscape语言组件文件。您可以使用可选选项subcircuit1,…,subcircuitN
输入参数以指定要转换的子电路。
对生成的Simscape组件文件进行任何必要的手动转换。要识别所需的手动转换,请检查生成的Simscape组件文件开头的注释。您可以使用可选选项不受金宝app支持的命令
输出参数以生成结构体
数组,列出每个子电路不支持的SPICE金宝app命令。
有许多不同的SPICE模拟器,它们在语法和语法解释方面有所不同。转换助手使用与Cadence相同的语法®如果存在这种差异,则遵循PSpice。
SPICE转换助手支持以下命令:金宝app
.FUNC
——可重用函数
.PARAM
——可定义的参数
得閒
-可重用组件参数集
.SUBCKT
——分支电路
. lib
-指令以包括外部网络列表中的模型
. inc
-包含外部网络列表内容的指令
转换助手实现.FUNC
使用Simscape函数的SPICE命令。这些函数被放置在名为+
,在那里subcircuit_name
_simscape_functionssubcircuit_name
被转换的子电路的名称。
指定得閒
电阻器、电容器和电感器的语法,如
.MODELres(r= ) .MODEL cap(c= ) .MODEL ind(l= )
r
,c
和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,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.function.hyp (x,ε)
-功能与正输出这个函数总是输出一个正值。使用这个函数可以防止被零除法之类的问题。ε
确定过渡的平滑度,并在以下情况下为hyp函数的绝对误差:
.x
= 0
当
,这个函数的输出趋向于x
>ε
x
.
simscape.function.abs (x,佐)
——绝对的函数这个函数返回输入参数的绝对值,x
.
您可以通过指定输入参数来启用或禁用零交叉佐
要么符合事实的
或假
.
simscape.function.expm (x, xl、xh警告)
——指数函数这个函数返回的指数x
,exp(x)
,当x
范围之间xl
和xl
.否则,它使用线性外推与梯度匹配的边界。
使用此函数可避免与exp(x)
对于很小或很大的输入参数。
simscape.function.coshm (x, maxAbsX警告)
-双曲余弦函数这个函数返回的双曲余弦值x
,cosh(x)
,当x
范围之间-maxAbsX
和maxAbsX
.否则,它使用线性外推与梯度匹配的边界。
使用此函数可避免与cosh(x)
对于较大的负或正输入参数。
simscape.function.sinhm(x,maxAbsX,warn)
-双曲正弦函数这个函数返回的是的双曲正弦x
,sinh (x)
,当x
范围之间-maxAbsX
和maxAbsX
.否则,它使用线性外推与梯度匹配的边界。
使用此函数可避免与sinh (x)
对于较大的负或正输入参数。
simscape.function.acosm(x,warn)
-反余弦函数这个函数返回的是的反余弦值x
,这些“可信赖医疗组织”(x)
,因为1≤x≤1
,0
为x> 一,
, π代表x < 1
.这样可以防止对无效输入范围的小数字入侵这些“可信赖医疗组织”(x)
.
simscape.function.asinm (x,警告)
-反正弦函数这个函数返回的反正弦值x
,asin(x)
,因为1≤x≤1
,0
为x> 一,
, π代表x < 1
.这样可以防止对无效输入范围的小数字入侵asin(x)
.
simscape.function.limitm (x, a、b、n,ε)
——限制函数这个函数返回x
之间的有限xl
和xh
.输入参数,n
,设置平滑函数的顺序。
论点ε
确定了转换的开始,并且是函数的绝对误差时x等于xl
或xh
.
simscape.function.logm(x,x0,warn)
-自然对数函数这个函数返回的自然对数x
,日志(x)
,当x
大于x0
.否则,它使用线性外推与梯度匹配的边界。
的值时使用此函数x
达到接近0
在模拟。集x0
之间的0
和1
.
simscape.function.log10m (x, x0,警告)
-以10为底的对数函数此函数用于返回以10为底的x
,log10 (x)
,当x
大于x0
.否则,它使用线性外推与梯度匹配的边界。
的值时使用此函数x
达到接近0
在模拟。集x0
之间的0
和1
.
simscape.function.maxm (x, y, n,ε)
-最大函数这个函数返回之间最大的参数x
和y
.输入参数,n
,设置平滑函数的顺序。
论点ε
确定了转换的开始,并且是函数的绝对误差时x等于y
.
simscape.function.minm(x,y,n,ε)
——最小函数此函数返回两个参数之间的最小参数x
和y
.输入参数,n
,设置平滑函数的顺序。
论点ε
确定了转换的开始,并且是函数的绝对误差时x等于y
.
simscape.function.powerRational (x, y,国旗,ε,警告)
-幂函数幂函数x^y
,在那里y
是理性的,带保护的是消极的x
.
如果国旗
参数是0
,函数返回x^y
为
和x
≥0- (- x) ^ y
为
.如果x
< 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,警告)
simscape.function.sign(x,ZC)
——符号函数这个函数返回输入参数的signum,x
.
您可以通过指定输入参数来启用或禁用零交叉佐
要么符合事实的
或假
.
sqrtm(x,flag,epsilon,warn)
-平方根函数带输入参数保护的平方根函数。
如果国旗
参数是0
,此函数返回sqrt (x)
积极的x
和-sqrt(-x)
负片x
.如果国旗
参数是1
,将平方根函数应用于simscape.function.hyp (x,ε)
.
simscape.function.tanm(x,flag,epsilon,x0,warn)
-切线函数带输入保护的正切函数。
如果国旗
参数是0
,此函数返回x
,谭(x)
,当x
等于2π
或-π/2
.的ε
参数决定在这些点上过渡的平滑性。
如果国旗
参数是1
,此函数返回x
,谭(x)
,当x
范围之间x0
和x0
.否则,它使用线性外推与梯度匹配的边界。
1 /ε
是输出参数允许的最大值y
.
转换助手识别这些SPICE符号:
+
行首表示从上一行开始的行延续
*
行的开头表示整行是注释
;
在一行中表示内联注释的开始
本节中SPICE命令的符号遵循以下规则:
<参数>
指命令行中的必需项
<参数> *
指命令行中出现一次或多次的必需项
(论点)
指命令行中的可选项
[论点]*
指命令行中出现零次或多次的可选项
此列表显示了受支持的SPICE组件的完整集合,以及它们受支持的S金宝appPICE netlist表示法。您只能指定得閒
与SPICE默认值不同的参数。
独立电压源
V)V V )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>表{ }=, 压控电流源
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沟道
Jp沟道
[area] .MODELpjf(beta= , cgd= , cgs= , fc= , is= , +lambda= , m= , n= , rd= , rs= , vto= , xti= ) 金属氧化物半导体场效应晶体管
N-Channel(仅支持1级和3级)金宝app
Mp通道(仅支持1级和3级)金宝app
M子系统
分支电路
X[node]* [PARAMS: < = >*] 执行手动转换
生成Simscape组件文件后,请检查每个文件头是否有与不支持的SPICE命令有关的消息。例如,“转换助手”不支持电阻器温度系数的实现:金宝app
R1 p n 1k TC=0.01,-0.002生成的Simscape组件文件包含所有支持的转换,以及该标题,该标题用于标识手动转换电阻器的温度系数:金宝app
要完成转换,请修改Simscape组件文件以实现缺失的组件。有关执行手动转换和此特定场景的更多信息,请参见组件测试%test%组件自动从SPICE网络列表生成(2018年12月11日09:34:57)。%用户应手动执行以下SPICE命令,以%实现完整实施:%R1:tc 0.01-0.002subcircuit2ssc
.寄生值
对于无源器件,如电容器和电感,要在生成的Simscape组件文件中引入寄生值,设置寄生指定值参数到对.的值电容寄生串联电阻或电感寄生并联电导参数。
限制
网络列表必须以PSpice格式编写,并且语法正确。转换助手不检查PSpice语法是否正确。
只支持PSpice网络列表语言的一个子集。金宝app但是,在相应的Sims金宝appcape组件文件的顶部标识不支持的PSpice命令,以方便手动转换。
要将生成的Simscape组件构建到Simscape块中,参数值必须符合Simscape约束。例如,基本电容的电容和基本电感的电感必须是非零的。
转换助手不支持使用派生的SPICE函数,金宝app
滴滴涕
,在函数调用中。另请参阅
相关话题