您可以使用SPICE转换助手将SPICE组件转换为Simscape™等同物。这种转换通常是自动的。但是,由于SPICE是一种丰富的语言,不进行一些手动干预并不总是能够执行完整的转换。
按照以下步骤将SPICE子电路转换为等效Simscape组件。
使用subcircuit2ssc
函数从SPICE网络列表文件生成Simscape语言组件文件。您可以使用可选选项subcircuit1,…,subcircuitN
输入参数,用于指定要转换的子电路。
对生成的Simscape组件文件进行任何必要的手动转换。要识别所需的手动转换,请检查生成的Simscape组件文件开头的注释。您可以使用可选选项un万博1manbetxsupportedcommands.
生成的输出参数结构体
数组,列出每个子电路不支持的SPICE万博1manbetx命令。
使用以下命令构建库ssc_build
或者使用将单个组件添加到模型中Simscape组件块。
有许多不同的SPICE模拟器,它们在语法和语法解释方面有所不同。转换助手使用与Cadence相同的语法®如果存在这种差异,则遵循PSpice。
Spice转换助理支持这些命令:万博1manbetx
.FUNC
——可重用函数
帕拉姆先生
——可定义的参数
得閒
- 可重用组件参数集
.SUBCKT
——分支电路
. lib
- 指令包含来自外部网表的模型
. inc
- 指令包括外部网表的内容
转换助理实施.FUNC
使用Simscape函数的SPICE命令。这些函数被放置在名为+
,在那里subcircuit_name
_simscape_functionssubcircuit_name
被转换的子电路的名称。
指定得閒
电阻器,电容器和电感器的语法,如
.MODELres(r= ) .MODEL cap(c= ) .MODEL ind(l= )
r
,c
, 和l
值是组件声明中指定的值的缩放因子。此行为符合PSpice,但在所有模拟器中并不一致。
属性指定的初始条件不会自动转换。我知道了
陈述。但是,您可以使用语法指定电容器和电感器的初始条件IC = <值>
.此外,您可以手动转换任何。我知道了
语句来自生成的Simscape组件文件。
因为转换助手的目的是帮助将SPICE子电路转换为Simscape块,模拟命令,例如.TRAN
,将被忽略。
转换助手支持这些数字SPICE后缀:万博1manbetx
后缀 | 姓名 | 规模 |
---|---|---|
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中使用的这万博1manbetx些基本数学函数。这些基本的数学函数可能不是连续的或平滑的,并可能在模拟过程中造成数值问题。为了解决这些问题,这些函数可能需要平滑。
的subcircuit2ssc
函数在转换SPICE子电路时自动开启平滑参数。要禁用平滑选项,在生成的Simscape组件块的块掩码中,设置指定函数平滑参数参数到不
.
姓名 | 香料函数 | Simscape功能 |
---|---|---|
绝对值 | 腹肌 |
simscape.function.abs (x,佐) |
最小的元素 | 闵 |
simscape.function.minm(x,y,n,epsilon) |
最大的元素 | 马克斯 |
simscape.function.maxm (x, y, n,ε) |
符号函数 | 胡志明市 |
simscape.function.sign(x,zc) |
姓名 | 香料函数 | Simscape功能 |
---|---|---|
s | 罪 |
罪 |
反正弦 | 印度历的7月 |
simscape.function.asinm (x,警告) |
双曲正弦 | Sinh. |
simscape.function.sinhm(x,maxabsx,warn) |
余辉 | 因为 |
因为 |
逆余弦 | ACOS. |
simscape.function.acosm(x,warn) |
双曲余弦 | 科什 |
simscape.function.coshm (x, maxAbsX警告) |
切 | 棕褐色 |
simscape.function.tanm(x,标志,epsilon,x0,warn) |
逆切 | : |
: |
四象限逆切 | 量化 |
量化 |
双曲正切 | 双曲正切 |
双曲正切 |
姓名 | 香料函数 | Simscape功能 |
---|---|---|
权力 | x**y ,pwr(x,y) , 或者压水堆(x,y) |
simscape.function.powerRational (x, y,国旗,ε,警告) |
指数 | exp. |
simscape.function.expm (x, xl、xh警告) |
自然对数 | ln 或者日志 |
simscape.function.logm(x,x0,warn) |
八进制数数对数 | log10. |
simscape.function.log10m (x, x0,警告) |
平方根 | √6 |
simscape.function.sqrtm(x,标志,epsilon,warn) |
转换助理解释日志()
作为自然对数而不是以10为底的对数。并非所有SPICE模拟器在这方面都是一致的,因此要确保这种解释与SPICE模型一致。
此外,转换助手还支持以下SPICE和Simscape函数:万博1manbetx
姓名 | 香料函数 | Simscape功能 |
---|---|---|
如果条件 | 如果 |
如果其他 |
饱和 | 限制 |
simscape.function.limitm (x, a、b、n,ε) |
电流装置 | 我 |
我 |
电压设备 | v |
v |
阶跃函数 | STP. |
如果x> 0,则为其他0结束 |
导数(见限制) | 滴滴涕 |
der |
表格 | 表格 |
simscape.tablelookup ((x1, x2,……xn) (y1, y2,…yn), x,插值=线性外推法=最近的) |
simscape.function.hyp (x,ε)
-功能与正输出这个函数总是输出一个正值。使用这个函数可以防止被零除法之类的问题。ε
确定转换的平滑度,并且是千斤顶的绝对误差
.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> 1
, π代表x < 1
.这样可以防止对无效输入范围的小数字入侵助理文书主任(x)
.
simscape.function.asinm (x,警告)
-反正弦函数这个函数返回的反正弦值x
,Asin(x)
,因为1≤x≤1
,0
为x> 1
, π代表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,epsilon)
——最小函数此函数返回最小的参数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转换助手转换pwr(x,y)
香料函数simscape.function.powerRational (x, y, 1,0,警告)
SPICE转换助手转换压水堆(x,y)
香料函数simscape.function.powerRational(x,y,0,0,warn)
simscape.function.sign(x,zc)
——符号函数这个函数返回输入参数的signum,x
.
您可以通过指定输入参数来启用或禁用零交叉佐
到任一真的
或者假
.
simscape.function.sqrtm(x,标志,epsilon,warn)
-平方根函数带输入参数保护的平方根函数。
如果国旗
参数是0
,此函数返回sqrt (x)
为阳性x
和-sqrt(-x)
对于否定x
.如果国旗
参数是1
,将平方根函数应用于simscape.function.hyp (x,ε)
.
simscape.function.tanm(x,标志,epsilon,x0,warn)
- 切线功能带输入保护的正切函数。
如果国旗
参数是0
,此函数返回切线x
,谭(x)
,当x
等于2π.
或者-π/ 2.
.的ε
参数决定在这些点上过渡的平滑性。
如果国旗
参数是1
,此函数返回切线x
,谭(x)
,当x
范围之间x0
和X0.
.否则,它使用线性外推与梯度匹配的边界。
1 /ε
是输出参数的最大允许值y
.
转换助手识别这些SPICE符号:
+
在行的开始时,指示前一行的线路继续
*
在一行的开始时表示整行是评论
;
在一行中表示内联注释的开始
本节中的Spice命令表示说明:
<参数>
指命令行中所需的项目
<参数> *
指命令行中出现一次或多次的必需项
(论点)
指命令行中的可选项目
[争论]*
指命令行中出现零次或多次的可选项
此列表显示了受支持的SPICE组件的完整集合,以及它们受支持的S万博1manbetxPICE 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><-node><+control node><-control node> E <+node><-node>值={ }E <+node><-node>多边形( )<+control node><-control node><系数>*E <+node><-node>表{ 输入值>,, 电流控制电流源
f<+节点> < - 节点> <电压源名称> <增益> f <+节点> < - node>值= {<表达式>} f <+ node> < - 节点> < - 节点>POLY( ) * * F <+ node> <- node> TABLE { }=< , >* F <+ node> <- node> TABLE=< , >* 压控电流源
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[衬底节点] .model pnp(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沟道
J<漏极节点> <门节点> <源节点> <型号名称> [区域] .model <型号名称> njf(beta = ,cgd = ,cgs = ,fc= ,is = ,+ lambda = ,m = ,n = ,rd = ,rs = ,vto = ,xti = ) p沟道
[area] .MODELpjf(beta= , cgd= , cgs= , fc= , is= , +lambda= , m= , n= , rd= , rs= , vto= , xti= ) 金属氧化物半导体场效应晶体管
N-Channel(仅支持1级和3级)万博1manbetx
MP通道(仅支持1级和3级)万博1manbetx
M子系统
分支电路
X[node]* [PARAMS: < = >*] 执行手动转换
生成SIMSCAPE组件文件后,检查每个文件标头以获取有关不受支持的SPICE命令的消息。万博1manbetx例如,转换助手不支持电阻温度系数的实现:万博1manbetx
R1 p n 1k TC=0.01,-0.002生成的Simscape组件文件包含所有受支持的转换和此标题,该标题标识了用于手动转换的电阻的温度系数:万博1manbetx
要完成转换,请修改Simscape组件文件以实现缺失的组件。有关执行手动转换和此特定场景的更多信息,请参见组件测试%测试%组件从香料网列表自动生成(11-Dec-2018 09:34:57)。%用户应该手动实现以下Spice命令,以便%实现完整的实现:%R1:TC 0.01 -0.002subcircuit2ssc
.寄生价值
对于无源器件,如电容器和电感,要在生成的Simscape组件文件中引入寄生值,设置寄生指定值参数到是的.的值电容器寄生串联电阻或者电感寄生并联电导参数。
限制
网表必须以PSPICE格式写入并进行句子正确。转换助理不会检查适当的PSPICE语法。
只支持PSpice网络列表语言的一个子集。万博1manbetx但是,在相应的Sims万博1manbetxcape组件文件的顶部标识不支持的PSpice命令,以方便手动转换。
要将生成的Simscape组件构建到Simscape块中,参数值必须符合Simscape约束。例如,基本电容的电容和基本电感的电感必须是非零的。
转换助手不支持使用派生的SPICE函数,万博1manbetx
滴滴涕
,在函数调用中。另请参阅
相关话题