文号
946755
阅读
4831
回复
4
收藏
0
在LTSpice仿真带磁饱和效果的变压器
2025/09/03
原创
IP:上海

最近打算放弃Ti-Tina 转向LTSpice了 原因有两点

  1. 虽然Tina更方便 LTSpice对Spice掌握要求更高 但是后者更灵活 更合适喜欢文本控制的我

  2. LTSpice更具备自主性 而TI依托Tina和PSpice 导致下面关键一点

  3. 最近需要仿真LT的集成电路 发现LTSpice的库很全 大多非公开甚至可能不标准 也许使用了私有算法嵌入 而TI的器件基本都是符合Spice规范并可以下载 这就导致了LTSpice可以仿真TI 反过来却不行

在LTSpice中 仿真非线性电感 可以使用L元件和flux参数 提供磁通对电流的公式 或者使用John Chan的模型 需要提供详细磁芯参数 后者往往是很难的 因为需要的参数往往厂商不会提供 能提供的参数往往只有饱和电流 (温升电流和额定电流大多数不在仿真范畴) 这时候可以使用flux参数

格式为 L<名称> <节点> <节点> flux=<表达式>, 可以简单把 flux=... 填写在原来需要输入电感(亨特)的地方

官方的示例为 "L1 N001 0 Flux=1m*tanh(5*x)" 似乎鼓励大家使用双曲正切曲线来模拟B-H曲线 下图我对tanh 和Jiles-Atherton磁滞模型的核心 郎之万函数进行一下对比 两者是很相似的 前者在饱和处拐角更陡峭 其实我感觉更符合实际电感的表现

tanh-vs-ja.png


那么tanh怎么用到flux里面呢 注意flux的意义是 电流乘于电感 我认为下面例子可以提供一个带入饱和电流的参考

L<名称> <节点> <节点> flux=<电感标称量>* tanh(x / <饱和电流> / 0.87 ) * <饱和电流> * 0.87

这个公式意味着 两个关键的控制

  1. 小信号下 电感量符合标称量 flux近似等于电感量乘于电流 (电流这里规定用x来表示)

  2. 当达到饱和电流时候, 电感量下降30%, 这是许多厂商的标准

也有厂商使用下降20%作为标准(但是这个标准比前者严苛 怀疑厂商会取这个不取更好看的上个) 公式可以变为

L<名称> <节点> <节点> flux=<电感标称量>* tanh(x / <饱和电流> / 1.1 ) * <饱和电流> * 1.1

也可以折中取简 这时意味着在饱和电流下 电感量下降24%左右

L<名称> <节点> <节点> flux=<电感标称量>* tanh(x / <饱和电流>) * <饱和电流>

所以LTSpice帮助文件里面的例子有一句"L1 N001 0 Flux=1m*tanh(5*x)" 可以理解为一个标称5mH 饱和电流0.2A的电感


下面这是一个仿真的例子 因为电感上的电压等于磁通的微分 所以通过电压积分得到磁通 得到类似B-H曲线

image.png

另一种根据LTSpice帮助手册 采用John Chan模型 但我去掉磁滞部分的方法是

L<名称> <节点> <节点> flux=<电感标称量>* x * 2.3 / (abs(x / <饱和电流>) +2.3)

对比效果 感觉磁饱和效果变得缓和 而且不会收敛于某个极限 可能适用具备较大空气隙的磁芯 个人建议如果设计趋向保守 就不要用这个方法

image.png


非线性电感的仿真得到解决 但是非线性变压器还不行 因为LTSpice不允许对非线性电感使用K元素来耦合 但是提供了一个解决方案 如下图 通过受控电流电压源来模拟耦合效果 其中Lc可以是上面设计的非线性电感 (图中是线性电感 但可以不是)

image.png

实际上 如果对精度要求不高 可以有更简单的方法 就是变压器设计为电感很大的接近理想的变压器 然后多出一个绕组并联非线性电感即可 比如下面这个利用磁饱和进行自激振荡的电路 可以看到 L3上的电流 明显有饱和拐点存在

image.png

减少电感饱和电流设置 明显振荡频率变高了

image.png

此外 我曾经试图使用表达式的方法 实现磁滞效果 但是可惜的是 仿真失败了 或者说 特别慢 估计处理半天才能出来 如果需要使用磁滞效果 可能只能使用LTSpice中提供详细磁芯数据的方法 我没有尝试

[ 修改于1年2个月前 - 2025/09/03 18:25:01 ]
4
2
1年2个月前IP:广东
946759
1楼

LTSpice有一个好处是可以通过特定的语句编辑去设置元件的各种参数进行仿真,各种冷门元件都能上,你可以深入研究一下这个

引用
评论
m24h作者
1年2个月前IP:上海
946760
2楼
引用helium发表于1楼的内容
LTSpice有一个好处是可以通过特定的语句编辑去设置元件的各种参数进行仿真,各种冷门元件都能上,你可以深入研究一下这个

你这说得也太含糊了 像是“用有关语句去设置有关参数”的官腔。。。能说是什么特定语句吗

我感觉如果光表达式多用了点 仿真通常会失败 不失败也会超慢 比如会变成ps级别的仿真步长

引用
评论
1年2个月前IP:广东
946764
3楼
引用m24h发表于2楼的内容
你这说得也太含糊了 像是“用有关语句去设置有关参数”的官腔。。。能说是什么特定语句吗我感觉如果光表达式多用了点 仿真通常会失败 不失败也会超慢 比如会变成ps级别的仿真步长

那个是类似编程语句的,你搜这个软件的新建元件参数设置的教程,这个我以前有一段时间闲着没事干略微研究了一下。

引用
评论
m24h作者
1年2个月前IP:上海
946767
4楼
引用helium发表于3楼的内容
那个是类似编程语句的,你搜这个软件的新建元件参数设置的教程,这个我以前有一段时间闲着没事干略微研究了一下。

你说的大概是.machine(状态机)吧 说编程太难了 缺乏太多能力 我感觉可以用于部分数字逻辑器件仿真 毕竟LTSpice在数字混合方面比较弱 但如果真要搭编程的 恐怕要用能编译的数学类工具去仿真 比如MATLAB什么的 不然实在太慢

引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的