开关功率器件(MOSFET IGBT)损耗仿真方法

article/2025/9/25 12:03:59

说明:IGBT

功率器件损耗与好多因素相关,比如工作电流,电压,驱动电阻。在出设计之前评估电路的损耗有一定的必要性。在确定好功率器件的驱动参数后(驱动电阻大小,驱动电压等),开关器件的损耗基本上是器件上的电压和电流的函数。用理想的开关器件进行仿真,可以获取器件在工作过程中的电流及电压,然后通过查表就可以等到开关器件的瞬时的损耗。

Psim或者Plecs都就是通过以上的方法去估算器件损耗。本文是描述在Psim下的,损耗仿真过程。

本文档描述使用Psim损耗计算工具方法。Psim损耗模型是一个基于规格书描述的损耗行为模型,模型不考虑开关的具体的物理特性,只考虑开关过程中损耗与器件的伏安相关的关系。IGBT的损耗是使用lookup table方式损耗求解。

本文档将描述如何从IGBT的datasheet上获取所需的数据。

本文涉及到软件工具包括:Simetrix , python, Psim

选择图表

描点

点击Continue

Complete 命名保存

PSIM的DEV参数录入

新建IGBT新模板

填写耐用和额定电流的参数,这两个参数不会影响仿真

接下来填写Eon,Eoff ,Erec等数据,这些数据在上一步的数据提取中已经保存到对应的文件中。

现在需要将对应的参数填写如相应的列表中

注意填写的格式

如果填写的数据比较多,可以使用python脚本进行处理。将一下脚本复制并保存为.py的文件。将该文件放到,数据文件同一目录。运行脚本可以得到对应的输出。使用python3 可以运行以下脚本。

if __name__=="__main__":

    with open("Eoff.txt","r") as test:

        data=test.readlines()

        string=''

        i=0

        for dat in data:

            if i==0:

                pass

            else:

                temp1=dat.split("\n")[0]

                temp=temp1.split("\t")

                print(temp)

                string=string+"("+temp[0]+','+temp[1]+')'

            

            i+=1

            

    print(string)

复制输出结果

Eon Eoff Erec,数据需要填写测试条件。如果没有填写仿真过程会报错。另外对于IGBT有时候是不会提供Erec数据,或者Erec数据合在Eoff中时,Erec可以不填写,通常小功率的IGBTdatasheet不会提供对应的规格参数数据。

如果需要得到更准确的损耗模型,以上的参数可通过脉冲测试方法提取。关于脉冲实验,可以参考以下连接

https://www.infineon.com/dgdl/Infineon-Double_pulse_testing-Bodos_power_systems-Article-v01_00-EN.pdf?fileId=5546d46271bf4f920171ee81ad6c4a1f

https://d1d2qsbl8m0m72.cloudfront.net/en/products/databook/applinote/discrete/transistor/mosfet/prestomos_doublepulse_an-e.pdf

https://www.keysight.com/us/en/assets/7018-06616/data-sheets/5992-3942.pdf

http://www.igbt8.com/qd/22.html

填写测试条件

填写好所有的参数后可以将仿真模型加入对应的电路上进行仿真。

调入热模型

建立模型,损耗值Psim会以电流方式输出,如果需要评估节温可以让损耗的输出接入到对应的损耗热阻模型就可以。热阻模型参数一般不容易获取,所有温升结果只能做为参考,规格书给出一般是foster模型,foster模型是一个数值拟合的模型本身没有物料意义,所以不需要太在乎器数值。

设置IGBT热模型的参数

Device 选择建立好的模型,Frequency 与开关的频率应当保持一致,如实例中的开关频率为30kHz,热模型的frequency填写30kHz。

选择之前建立好的损耗模型

仿真结果

对于MOSFET 也可以应用以上的步骤来提取对应的Mosfet的损耗损耗模型

填写相应的表格即可

有些时候Gfs这个参数规格书上没有给出来,这时候可以在Vge VS Ids的曲线上计算得到。

通常情况下,Gfs这个参数时在MOSFET的额定电流附近测试。所以获取gfs的参数时只有求取额

定电流下的Gfs就可以。具体获取方法:

1.使用Simetrix数据提取工具,获取VgeIds曲线

这里选择CSV文件,方便直接用excel处理

根据得到的拟合数据得到设定的Gfs

如电流为5A时的Gfs为5

填写完对应的数据后将MOSFET模型保存。

模型使用的方法与IGBT的使用方法类似,这里不赘述。

如果你使用的是Plecs,基本的方法或者思路与上述的方法类似;不过Plecs没有直接的MOSFET的模板,使用起来不太方便。


http://chatgpt.dhexx.cn/article/7bW922C7.shtml

相关文章

最优控制理论 六、拉格朗日乘子法和KKT条件

拉格朗日乘子法和KKT条件 1. 等式约束最优化2. 不等式约束最优化2.1 1个不等式约束2.2 KKT条件2.3 二维不等式约束图解 3. MATLAB不等式约束优化总结4. 参考文献 最优控制是建立在最优化基础上的,它所处理的是无穷维路径函数的泛函极值问题,而后者是处理…

Buck变换器MOSFET开关过程分析与损耗计算

为了方便理解MOSFET的开关过程及其损耗,以Buck变换器为研究对象进行说明(注:仅限于对MOSFET及其驱动进行分析,不涉及二极管反向恢复等损耗。) 图1所示为Buck变换器拓扑,其中用于减小主功率电路的AC Loop&am…

JAVA-如何修改源码(重写JAR包里的类)

今天写代码的时候发现alibaba的druid工具对postgresql数据库的union all语法支持不够完善,具体场景: select id,name from a union all (select id,name from b order by id); 该语法在druid工具中被解析为: select id,name from a uni…

堆的操作(Java)

文章目录 1.堆的存储方式2.堆的创建2.1向下调整2.2向上调整 3.堆的操作3.1元素插入堆3.2取堆顶元素3.3删除堆顶元素 1.堆的存储方式 由堆的概念可知,堆是一棵完全二叉树,因此可以层序的规则采用顺序的方式来存储堆。 注意: 对于非完全二叉树…

[Java]堆

目录 一、堆的概念 二、大小根堆的建立 三、 堆的调整 1. 向下调整 2. 向上调整 三、堆的删除与插入 一、堆的概念 堆可以看做一个完全二叉树,如果有一个关键码的集合K {k0,k1, k2,…,kn-1},把它的所…

JVM-堆

文章目录 堆,是运行是数据区的一部分堆内存分区:JAVA堆区细分: 设置堆内存大小与OOM设置堆空间大小 OOM Outof Memory Error 举例!!!图解对象分配过程Minor GC、Major GC、Full GC年轻代 GC(Minor GC)触发机制老年代 G…

jvm堆大小的设置

问题引入: -Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio3,,其最小内存值和Survivor区总大小分别是(10240m 2048m); 解析: -Xmx:最大堆大小 -Xms:初始堆大小 -Xmn:年轻…

如何修改java中堆、栈空间的默认大小

1、修改堆、栈空间大小的命令 在命令行中输入java -X可以得到设置java堆大小和栈大小的命令 2、修改java运行时的堆和栈空间 进入界面后 按AltV 3、检验堆空间修改 3.1 测试类 public class StackTest {public static void main(String[] args) {//返回Java虚拟机中的堆内存…

java 堆设置

Young:主要是用来存放新生的对象。(Eden、survivorSpaces(from、To)) Old:主要存放应用程序中生命周期长的内存对象。 Permanent:是指内存的永久保存区域,主要存放Class和Meta的信息,Class在被 Load的时候…

Java堆内存设置

堆内存设置 原理 JVM堆内存分为2块:永久空间和堆空间。 永久即持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。Heap {Old NEW {Eden,from&#xff0…

OBEX(一)

一、概述 1、OBEX v2.0(v2.0版本开始OBEX直接在L2CAP上传输,v2.0版本以前OBEX在RFCOMM上传输) 2、OBEX即Object Exchange Protocol,对象交换协议 3、OBEX协议是典型的client/server request-response模型 4、OBEX v2.0蓝牙协议…

利用docker部署oxidized网络设备备份系统

随着网络设备的增多,通过人手备份网络设备倍感压力,而且效率低。有编程基础的人可能会通过Python的parimiko 或者netmiko 连接到设备操作 把文件通过ftp 上传到FTP服务器, 在通过定时任务,定期自动备份。这个应该是现阶段主流非人民币网络玩家的最优解决方案。 今天我们来看看…

网络自动化运维第一篇 自动化备份网络配置

网络设备厂商众多,各种安全厂商,网络厂商,负载均衡厂商,如果想实现自动化备份配置,可以自己写python脚本。如果网络设备厂商多,自己写python 非常耗费时间精力。偶然在网上发现了oxidized 非常好用&#xf…

.odex文件的反编译

0x00 问题呈现 在分析某手机自带应用时,为了在JEB中反编译,将其adb pull到了电脑上。解压后发现如下文件: APK解压目录列表 惊奇的发现该APK包中没有dex文件,一开始特别疑惑没有dex文件,也就是没有代码,那…

ZeroDivisionError: integer division or modulo by zero

这里的错误就是由于数据集太小。 # 2. Split into train / validation partitionsn_val int(len(dataset) * val_percent)n_train len(dataset) - n_val#我这里是刚好有10张数据集然后其中一张被拆分为验证集导致训练集太小,从而报错。

反编译odex

需要工具: 1、baksmali-x.x.x.jar2、smali-x.x.x.jar工具下载:https://bitbucket.org/JesusFreke/smali/downloads/ 步骤: 1、odex转smali: java -jar “D:\google\tool\mony_tool\baksmali-2.2.1.jar” deodex SystemUI.odex -…

ZeroDivisionError:Integer division or modulo by zero

docker环境下,多GPU训练 方式:采用nvidia-docker创建容器 另: 在用sudo无法解决sh文件的pemission denied问题时,采用bash替代sudo

deactive(Deactive breakpoint)

deactive怎么译? de-active 原指吊销, 计算机的专用词叫 "去活". 多指停止某指令.吊销,不激活,关闭 三星bc01指令代码 三星手机总复位,在待机状态下输入*2767*3855#需要专门的智能仪器才可以解开手机密码忘记了 一般普…

Oxidized-20180912-docker 版本的网络设备备份系统

Problem Oxidized 非常好用,基本兼容所有网络设备的备份,但是有一个小小小小的问题,就是在 Linux 环境下,默认安装的 Ruby 版本问题为其在离线情况下的安装增添了很多的麻烦和限制。 于是轻量级的 docker 成了不二的选择。 &am…

Oxidized-最好用的网络设备备份系统(三)-双机自动备份

oxidized备份网络配置默认路径为 /root/.config/oxidized/group group分别是不同设备分组 group1 group2 group3 group4 双机自动备份思路: 制作将需要备份的数据先备份到back/bak目录下,再通过打包gz格式放到backup目录下,然后通过远程传输,上传到备份服务器的/usr/…