您可以使用SPICE转换助手将SPICE组件转换为Simscape™等同物。这种转换通常是自动的。但是,由于SPICE是一种丰富的语言,不进行一些手动干预并不总是能够执行完整的转换。
按照以下步骤将SPICE子电路转换为等效Simscape组件。
使用subcircuit2ssc
函数从SPICE网络列表文件生成Simscape语言组件文件。您可以使用可选的子电路1,…,子电路n
指定要转换的子电路的输入参数。
对生成的Simscape组件文件进行任何必要的手动转换。要识别所需的手动转换,请检查生成的Simscape组件文件开头的注释。您可以使用可选选项un万博1manbetxsupportedCommands
输出参数生成结构体
数组,列出每个子电路不支持的SPICE万博1manbetx命令。
使用以下命令构建库ssc_构建
或者使用将单个组件添加到模型中Simscape组件块。
有许多不同的SPICE模拟器,其语法和语法解释各不相同。转换助手使用与Cadence相同的语法®如果存在这种差异,则遵循PSpice。
SPICE转换助手支持以下命令:万博1manbetx
.FUNC
——可重用函数
帕拉姆先生
-可定义参数
得閒
-可重用组件参数集
.SUBCKT
-子电路
. lib
-指令从外部网络列表包括模型
. inc
-包含外部网络列表内容的指令
转换助理实现.FUNC
使用Simscape函数的SPICE命令。这些函数放在名为+
,在那里subcircuit_name
_simscape_函数subcircuit_name
被转换的子电路的名称。
指定得閒
电阻、电容和电感的语法,如
.MODELres(r= ) .MODEL cap(c= ) .MODEL ind(l= )
R
,C
,L
值是组件声明中指定的值的缩放因子。此行为符合PSpice,但在所有模拟器中并不一致。
转换助手不会自动转换使用.IC
声明。但是,您可以使用语法为电容器和电感指定初始条件IC=
.此外,您可以手动转换任何.IC
语句来自生成的Simscape组件文件。
因为转换助手的目的是帮助将SPICE子电路转换为Simscape块,所以模拟命令,例如.TRAN
,将被忽略。
转换助手支持这些数字SPICE后缀:万博1manbetx
后缀 | 的名字 | 规模 |
---|---|---|
T |
拉 | 1 e12汽油 |
G |
Giga | 1e9 |
梅格 |
大型 | 1e6 |
K |
公斤 | 1e3 |
M |
毫 | 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,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,警告) |
双曲余弦 | 科什 |
simscape.function.coshm (x, maxAbsX警告) |
切 | 棕褐色 |
simscape.function.tanm (x,国旗,ε,x0,警告) |
逆切 | : |
: |
四象限逆切 | 量化 |
量化 |
双曲正切 | 双曲正切 |
双曲正切 |
的名字 | 香料函数 | Simscape函数 |
---|---|---|
权力 | x**y ,压水式反应堆(x, y) ,或压水堆(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模拟器在这方面都是一致的,因此请确保此解释与您的SPICE模型一致。
此外,转换助手还支持以下SPICE和Simscape函数:万博1manbetx
的名字 | 香料函数 | Simscape函数 |
---|---|---|
如果条件 | 如果 |
否则 |
饱和 | 限制 |
simscape.function.limitm (x, a、b、n,ε) |
电流装置 | 我 |
我 |
电压设备 | v |
v |
阶跃函数 | stp |
如果x>0,则1 else 0 end |
导数(见限制) | 滴滴涕 |
德 |
表格 | 表格 |
simscape.tablelookup ((x1, x2,……xn) (y1, y2,…yn), x,插值=线性外推法=最近的) |
simscape.function.hyp (x,ε)
-功能与正输出这个函数总是输出一个正值。使用这个函数可以防止被零除法之类的问题。ε
决定了过渡的平滑度,是hyp函数的绝对误差
.x
=0
当
,此函数的输出趋于x
>ε
x
.
simscape.function.abs(x,ZC)
——绝对的函数这个函数返回输入参数的绝对值,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警告)
-双曲正弦函数这个函数返回的是的双曲正弦x
,sinh (x)
,当x
范围之间-maxAbsX
和maxAbsX
.否则,它使用线性外推与梯度匹配的边界。
使用此函数可避免与sinh (x)
对于较大的负或正输入参数。
simscape.function.acosm (x,警告)
-反余弦函数这个函数返回的是的反余弦值x
,助理文书主任(x)
,因为1≤x≤1
,0
为x > 1
, π代表x < 1
.这样可以防止对无效输入范围的小数字入侵助理文书主任(x)
.
simscape.function.asinm (x,警告)
-反正弦函数这个函数返回的反正弦值x
,正如(x)
,因为1≤x≤1
,0
为x > 1
, π代表x < 1
.这样可以防止对无效输入范围的小数字入侵正如(x)
.
simscape.function.limitm (x, a、b、n,ε)
——限制函数此函数返回x
之间的有限xl
和xh
.输入参数,N
,设置平滑函数的顺序。
论点ε
确定了转换的开始,并且是函数的绝对误差时x等于任意一个xl
或xh
.
simscape.function.logm (x, x0,警告)
-自然对数函数此函数返回函数的自然对数x
,日志(x)
,当x
大于x0
.否则,它使用线性外推与梯度匹配的边界。
的值时使用此函数x
达到接近0
在模拟。集x0
之间的0
和1.
.
simscape.function.log10m(x,x0,warn)
-以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转换助手转换压水堆(x,y)
香料函数simscape.function.powerRational(x,y,0,0,warn)
simscape.function.sign (x,佐)
——符号函数这个函数返回输入参数的signum,x
.
您可以通过指定输入参数来启用或禁用零交叉佐
要么真正的
或假
.
simscape.function.sqrtm (x,国旗,ε,警告)
-平方根函数带输入参数保护的平方根函数。
如果国旗
争论是0
,此函数返回sqrt (x)
积极x
和-√(- x)
为负x
.如果国旗
争论是1.
,将平方根函数应用于simscape.function.hyp (x,ε)
.
simscape.function.tanm (x,国旗,ε,x0,警告)
——正切函数带输入保护的正切函数。
如果国旗
争论是0
,这个函数返回正切值x
,谭(x)
,当x
等于2π
或-π/ 2
.这个ε
参数决定在这些点上过渡的平滑性。
如果国旗
争论是1.
,这个函数返回正切值x
,谭(x)
,当x
范围之间x0
和x0
.否则,它使用线性外推与梯度匹配的边界。
1/ε
输出参数的最大允许值是多少Y
.
转换助手识别这些SPICE符号:
+
在一行的开头表示从上一行继续行
*
在一行的开头表示整行都是注释
;
在一行中表示内联注释的开始
本节中SPICE命令的表示法遵循以下规则:
<参数>
指命令行中的必需项
指命令行中出现一次或多次的必需项
(论点)
指命令行中的可选项
(论点)*
指命令行中出现零次或多次的可选项
此列表显示了支持的SPICE组件的完整集合及其支持的SPICE网万博1manbetx络列表符号。您只能指定得閒
参数与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)I I exp( )I 脉冲( )I )I 节点 电流控制电压源
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 <名称> < +节点> < - >节点值={<表达式>}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>[model name] [IC= ]。model ind(L= ) 电感耦合
K<感应器名称> <感应器名称>* 开关
压控开关
S<+node><-node><+control node> 。model sw(ron= ,roff= ,vt= ,vh= ) 电流控制开关
W.model csw(ron= ,roff= ,it= ,ih= ) 半导体器件
二极管
D[area]。模型 D(is= ,rs= ,n= ,cjo= ,vj= ,+m= ,fc= ,tt= ,revbrk= ,bv= ,ibv= ,+xti= ,eg= ) 双极结晶体管(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沟道
[area] .MODELnjf(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组件文件以实现缺少的组件。有关执行手动转换和此特定场景的更多信息,请参阅component test % test %从SPICE网络列表中自动生成的组件(11- 12 -2018 09:34:57)。用户应该手动执行以下SPICE命令,以实现一个完整的实现subcircuit2ssc
.寄生的价值观
对于无源器件,如电容器和电感,要在生成的Simscape组件文件中引入寄生值,设置指定寄生值参数是的.的值电容器寄生串联电阻或电感寄生并联电导参数。
限制
网表必须以PSpice格式书写,并且语法正确。转换助手不检查正确的PSpice语法。
仅支持PSpice网络列表语言的一个子集。但是,不支持的PSpice命令会在相应的Simscap万博1manbetxe组件文件的顶部标识,以便于手动转换。
要将生成的Simscape组件构建到Simscape块中,参数值必须符合Simscape约束。例如,基波电容器的电容和基波电感必须为非零。
转换助手不支持使用派生的SPICE函数,万博1manbetx
滴滴涕
,在函数调用中。另请参阅
相关的话题