
在做BMS硬件方案的时候绝缘检测是必须过的一道坎。整车安全标准里要求动力电池母线正负极对底盘地的绝缘电阻必须高于某个阈值否则随时可能出危险。但问题是你不一定每次都有条件拿真实电池包去测也不可能动不动就搭一套几百伏的台架。我当时做一套24串铁锂BMS的时候就选择先用Multisim把绝缘检测电路仿真跑通把分压、比较、光耦继电器切换逻辑全部验证一遍再动PCB。事实证明这个选择帮我省了不少事也踩了不少坑。这篇文章就把我从原理到仿真再到光耦继电器选型的完整过程写出来给同样在做BMS绝缘检测的朋友一个参考。1. 先搞懂BMS绝缘检测到底在测什么再打开Multisim很多新手拿到Multisim就想赶紧画电路但绝缘检测这种功能电路如果对被测对象理解不透仿真模型就是空中楼阁。我把这一章放在最前面是因为这不是一个普通的信号处理电路它面对的是几百伏的高压母线而且抗干扰、绝缘、隔离这些要求在原理阶段就要想清楚。1.1 绝缘检测在BMS里的角色BMS除了采集电压、电流、温度、SOC之外还要实时监控高压回路的绝缘状况。所谓绝缘电阻简单说就是动力电池总正或总负对车辆底盘的等效电阻。理想情况下电池包内部和底盘是完全隔离的但这个电阻会随着线束老化、进水、灰尘附着、连接器密封失效慢慢下降。一旦绝缘电阻低于安全阈值有可能造成人身触电也可能导致高压系统对低压系统产生干扰严重的会烧毁控制器。所以BMS必须周期性地把总正对地、总负对地的绝缘电阻测出来低于报警阈值就限制功率或者直接切断高压。你可能会说直接用万用表量不就行了不行。高压系统在工作状态下是带电的电池母线正负极和地之间不能直接拿普通仪表去测而且绝缘电阻是动态变化的所以需要专门设计的检测电路。这就是绝缘检测电路存在的意义。1.2 电桥法和低频注入法为什么Multisim仿真优先选电桥目前工程上常用的绝缘检测方案大致分成两类一类是电桥法也叫开关切换法另一类是低频信号注入法。电桥法是通过在正负母线与地之间接入已知电阻网络然后通过两个开关切换改变分压比测量两个不同状态下的电压最后联立方程解出正负母线对地的绝缘电阻。低频注入法则是在高压母线和地之间注入一个低频方波信号通过测量注入信号的响应电流来估算绝缘电阻和Y电容参数。从仿真角度讲电桥法优势非常明显电路结构简单只需要精密电阻、开关、比较器或者采样ADC所有器件在Multisim的元件库里都能找到模型收敛也容易。低频注入法虽然对Y电容不敏感但要额外搭建信号注入电路和滤波电路仿真里的寄生参数不好控制调起来很费劲。所以我个人建议如果做基础功能验证先用电桥法把整个逻辑链跑通后续要上量产再考虑更复杂的方案。1.3 Multisim做初版验证的底气在哪里Multisim毕竟不是电力电子专用仿真工具但绝缘检测电路本质上是一个低频模拟开关电路它的重点是分压比、比较阈值、开关时序而不是高频开关损耗或电磁干扰。Multisim的虚拟示波器、万用表、参数扫描工具足以完成这些验证。尤其是它的交互式仿真可以边调边看波形非常适合理清电路逻辑。等逻辑验证完再用Saber或者实际电路去精细化这样开发效率最高。2. 原理从纸面到仿真模型电桥法的等效与关键参数计算很多教程直接给你一个仿真截图让你照抄但那样做毫无意义。你要做的是理解这一堆器件在Multisim里为什么要这样摆。这一章我把电桥法绝缘检测的数学模型拆开讲再把Multisim里的等效建模方法说清楚。2.1 电桥法两个开关状态的计算关系典型的不平衡电桥绝缘检测电路总正母线对PE的等效绝缘电阻为Rp总负母线对PE的等效绝缘电阻为Rn。采样电路由R1、R2两个精密分压电阻串联跨接在总正和总负之间中点作为采样点。为了求解两个未知数需要两次测量第一次开关S1闭合、S2断开相当于把R1短路此时采样点电压为V1。第二次S1断开、S2闭合把R2短路采样点电压为V2。结合基尔霍夫定律可以列出两组方程最终解出Rp和Rn。为了让大家在Multisim里能直接设置参数我给出一个方便计算的形式。设母线总电压为VbR1R2Rs则第一次测量时采样点对地电压近似为V1 Vb * (Rn // R2) / ((Rp // R1) (Rn // R2))注意第一次S1闭合会把R1短路所以实际表达式要按R10代入。如果嫌手推太麻烦可以先用Multisim的DC Operating Point把两个状态下的电压测出来再用电子表格反推。真正动手做的时候我一般不手动解方程直接让仿真跑出来标定阈值但心里必须清楚这个数学关系否则仿真结果跟预期差了几倍都不知道哪里错了。2.2 在Multisim里怎么表示几百伏的电池母线Multisim里的电压源可以设置成任意直流电压但有一个关键点仿真中所有元件的“地”只有一个。电池母线正极和负极相对底盘地是悬浮的你不能把电池负极直接接地否则绝缘检测电路本身就被短路了仿真就没有意义。我的做法是这样用一个直流电压源Vb表示电池组总电压比如400V然后把它看成两段正母线相对PE为200V负母线相对PE为-200V在Multisim里就用两个直流电压源串联中间点接PE地。正母线通过Rp接到PE负母线通过Rn接到PE。这样模型就模拟了真实工况。如果你只用单个电源正极接Rp、负极接Rn中间不接地可能会导致Multisim的SPICE求解器找不到直流工作点要么报错要么结果完全错误。2.3 采样电阻与开关网络的建模思路实际硬件中的采样开关通常用光耦继电器实现因为普通继电器体积大、寿命有限普通模拟开关又很难承受几百伏电压。光耦继电器本质上是一个光驱MOSFET开关导通电阻很小隔离电压高。在Multisim里初学者可以先用一个普通的单刀单掷开关例如Space切换来代替光耦继电器验证分压逻辑。等后续要验证PWM时序再把开关换成Multisim光耦模型或者用压控开关模拟。采样电阻的阻值选择也很关键。Rs如果选太小比如10kΩ并联到绝缘电阻上会拉低测量精度Rs选太大比如10MΩ采样电压又会太小容易被噪声淹没。一般工程上取几百kΩ到几MΩ具体要和绝缘电阻报警阈值匹配。在仿真里可以先用1MΩ带入你期望的报警阈值算一遍采样点电压再决定比较器基准电压。3. 从新建工程到出波形Multisim搭建完整绝缘检测仿真流程现在开始真正动手。我默认你用的是Multisim 14.x或更高版本界面大同小异。整个过程分成四步建工程放器件、搭高压母线模拟、搭分压采样网络、接比较器和虚拟仪器。3.1 新建工程先把主数据库问题排查掉打开Multisim选择File - New - Blank Project。如果你是第一次安装很可能会遇到“Multisim主数据库无法访问”或“访问数据库发生错误”的弹窗。这个问题我后面专门讲但这里先提醒一句安装路径千万不能用中文最好也不要装到Program Files (x86)这种权限受限的目录下否则元件库加载会莫名其妙失败。工程建好后右键选择Place Component。搭建绝缘检测电路需要的元件其实不多直流电压源两个模拟正负母线相对地的电位电阻至少4个Rp、Rn、R1、R2再加上限流和分压电阻若干电容2个可选模拟Y电容开关两个S1、S2可用按键开关代替光耦继电器电压比较器1个LM393或TL331LED指示灯1个显示绝缘异常基准电压源1个可以用直流源或稳压管虚拟万用表、示波器各一个3.2 搭建高压母线对地等效网络从元件库拖出两个直流电压源V1设为200VV2设为200V按我说的方法串联中间连接点放到地GND。V1的正端作为总正母线节点VPV2的负端作为总负母线节点VN。然后放两个电阻Rp和Rn初始阻值都设成10MΩRp连接在VP和GND之间Rn连接在VN和GND之间。这两个电阻模拟的就是电池系统对地的绝缘电阻。如果你要模拟Y电容对交流分量的影响可以在Rp和Rn旁边各并联一个100nF的电容。绝缘检测用的是直流偏置测量Y电容在静态下不影响结果但在动态切换的瞬间会产生充放电电流导致采样点电压有一个很长的暂态尾巴。这个暂态在后面的瞬态分析里会看到别以为电路坏了。3.3 搭建分压采样网络接入光耦继电器开关放置两个精密电阻R1、R2都设为1MΩ串联在VP和VN之间。中点标记为VSENSE这就是采样点。然后放置两个开关S1并联在R1两端S2并联在R2两端。在实际硬件中S1和S2就是光耦继电器。这里要注意两个开关绝对不能同时闭合否则相当于把母线正负直接短路仿真会报错或产生巨大电流。在Multisim里用按键开关的话你可以手动控制但为了模拟自动检测我建议用两个脉冲电压源驱动两个压控开关产生互补的方波。脉冲电压源可以设置成V1 5VV2 0V初始延迟0上升时间1us下降时间1us脉冲宽度50ms周期100ms。另一个开关的脉冲源相位相反。这样就能自动轮流闭合。3.4 接入比较器和虚拟仪器设置瞬态仿真参数把VSENSE节点接到比较器的同相输入端基准电压Vref接到反相输入端。这里比较器输出用一个上拉电阻到5V再接LED到地。如果VSENSE电压超过Vref比较器输出高电平LED亮表示绝缘异常。放置虚拟万用表在VSENSE节点放置示波器CH1接VSENSECH2接比较器输出。双击脉冲源把仿真步长设置好。然后选择Simulate - Analyses and Simulation - Transient Analysis设置停止时间200ms最大时间步长1ms。如果是Interactive Simulation也可以一边跑一边拨动开关观察LED变化。跑完以后示波器上应该能看到VSENSE电压在两个开关状态之间跳变跳变的幅度取决于Rp和Rn的失衡程度。4. 仿真结果怎么看正常态、故障注入和参数扫描搭建完电路下一步就是验证逻辑是否正确。很多人在这一步只看“波形出来没有”不看“波形对不对”结果把故障状态当正常状态后面全白做。4.1 对称绝缘正常VSENSE应该接近0V且切换无跳变当RpRn10MΩ正负母线对地绝缘对称时VSENSE节点的电压理论上等于0V无论S1闭合还是S2闭合VSENSE都保持0V附近。如果结构对称切换瞬间只会出现一个很小的毛刺那是电容充放电引起的和绝缘电阻无关。此时比较器同相输入接近0V低于Vref输出低电平LED熄灭。这代表BMS认为绝缘正常。要特别留意如果此时VSENSE电压并不接近0V说明你在高压母线模拟或者电阻网络上接错了很可能是某个电阻短路或者电源极性不对。先停下来检查节点不要急着加故障。4.2 不对称故障注入让绝缘电阻失衡观察阈值翻转故障注入很简单把Rn从10MΩ改成100kΩ模拟负母线对地绝缘严重下降。重新跑瞬态仿真你会看到VSENSE电压明显向负方向偏移。如果基准电压Vref设置得合适比较器会在其中一个开关状态下翻转LED点亮表示检测到绝缘异常。怎么判断翻转可靠对比两个开关状态下的VSENSE电压差。以我常用的报警阈值100Ω/V计算400V系统绝缘电阻报警阈值是40kΩ。当某一侧绝缘电阻降到40kΩ以下时VSENSE的变化量要明显大于比较器失调电压和噪声一般至少要差200mV以上否则比较器很容易误判。如果你的电路连这个变化量都测不出来就要调整采样电阻或Vref。4.3 用参数扫描找出临界绝缘电阻验证灵敏度Multisim的Parameter Sweep很适合做这项验证。在菜单里选择Simulate - Analyses - Parameter Sweep选择扫描元件Rn在Decade模式下从10kΩ扫到10MΩ选5个点。扫描后观察VSENSE电压和比较器输出。我通常会把扫描结果和一串手算值对比。比如采样电阻Rs1MΩ时VSENSE电压对Rn非常敏感但到了10MΩ附近测量灵敏度会下降因为并联后变化不明显。这也解释了为什么电桥法在高绝缘阻值时精度有限很多BMS会在高阻值区间切换不同的分压档位。仿真阶段你可以多摆几组Rs值看哪个区间灵敏度最差后面对应换挡策略。5. 光耦继电器选型指南从仿真参数到真实BOMMultisim里你可以用理想开关跑通逻辑但一到实际硬件选型光耦继电器就成了挡在面前的一道坎。很多工程师仿真玩得很溜选型却选了不适合高压采样的器件导致测出来的绝缘电阻偏得离谱。这里是我个人的选型方法和踩坑记录。5.1 先分清光耦继电器和普通光耦的区别普通光耦比如PC817输出是光敏三极管只能控制小信号不能直接当开关管走负载电流光耦继电器则内部集成光电池驱动MOSFET输出端是导通电阻极低的MOSFET对管可以做交流或直流开关。在BMS绝缘检测电路里我们需要的是一个能够隔离高电压、导通电阻足够小、泄漏电流足够低的采样开关所以应该选光耦继电器PhotoMOS而不是普通光耦。光耦继电器另外还有一个好处没有机械触点不会因为频繁切换而磨损。5.2 核心参数逐项拆解照着这个表选型不会错我整理了一个选型参数对照表列出的每一项都直接影响绝缘检测精度参数含义对绝缘检测电路的影响输入侧IFLED正向电流MCU能不能直接驱动决定是否加三极管输入侧VFLED正向压降计算限流电阻一般在1.1V~1.4VCTR电流传输比越低越难驱动越高越敏感输出侧RONMOSFET导通电阻串联在采样回路里RON太大会影响绝缘电阻测量精度输出侧泄漏电流关断状态下输出漏电流泄漏太大会分流导致绝缘电阻被低估负载电压VLOAD可承受的开关电压必须高于最大母线电压留足1.5~2倍裕量隔离电压VISO输入输出隔离耐压一般要求3.75kVrms以上导通时间tON/关断tOFF开关延时影响采样周期设计通常tON在0.1ms~数ms5.3 驱动侧计算MCU怎么把光耦继电器点亮光耦继电器输入侧是LEDBMS的MCU通常是3.3V或5V IO口输出。以5V MCU为例选光耦继电器IF典型值为5mAVF为1.2V限流电阻R (VCC - VF) / IF (5 - 1.2) / 0.005 760Ω实际取750Ω或820Ω。如果MCU IO口驱动能力不足比如只有2mA就要加一级三极管去驱动否则输入侧电流不够输出侧导通电阻会变大仿真里根本体现不出来。这里特别提醒选型时别只看IF还要看光耦继电器的CTR。如果CTR比较低输入5mA可能无法让输出侧达到饱和导通RON会显著上升。在绝缘检测这种MΩ级阻抗的回路里RON即使只有几Ω影响也不大但如果导通不利索进入放大区RON可能到几十Ω甚至更大就会引入误差。5.4 仿真模型到实物的偏差一个容易被忽略的坑我在Multisim里用理想开关验证完逻辑第一次做实际样板时忽略了光耦继电器的导通时间。Multisim里开关闭合是瞬时的而实际光耦继电器tON通常在0.3ms到1.5mstOFF更慢可能到几毫秒。如果BMS软件在开关切换后立刻采样会采到电容充放电的暂态值导致绝缘电阻计算误差巨大。所以仿真通过以后做实物固件时一定要在开关切换后加延时等VSENSE稳定后再采集。建议在Multisim仿真阶段就把这个延时加进去比如用脉冲宽度加长到100ms然后在比较器后面加一个延时判断逻辑模拟真实软件采样窗口。6. 我踩过的Multisim坑数据库错误、仿真速度、模型收敛最后这部分算是一个经验合集。Multisim虽然好用但毛病也不少尤其在做这种带高压、带开关的仿真时经常会遇到让人抓狂的问题。我把最常见的三个坑和解决办法写在下面给大家排雷。6.1 主数据库无法访问、元器件库打不开很多人在Multisim安装后会碰到“主数据库无法访问”或者“访问数据库发生错误”的弹窗元件库完全用不了。这通常是两个原因安装路径带中文或安装目录权限不足另一个是Multisim的数据库缓存文件损坏。我自己的解决办法是关闭Multisim用管理员权限重新打开如果还不行检查安装路径确保是纯英文重装清理用户目录下的数据库缓存通常在C:\Users\用户名\AppData\Roaming\National Instruments\Circuit Design Suite对应版本目录把后缀为.tmp的缓存文件删掉再启动如果是精简版绿色版直接换官方完整安装包。这个坑真的很影响心情我建议一开始就装原版或者可靠的官方试用版别用来源不明的安装包省得后面仿真跑到一半数据库崩掉。6.2 仿真速度慢到像PPT怎么调绝缘检测电路本身元器件不多但如果你采用的是瞬态分析而且脉冲频率很慢比如100ms周期Multisim会计算非常多的步长仿真卡到怀疑人生。我常用的优化方法有三个把最大时间步长调大比如从1us改成1ms只要不影响波形细节用交互式仿真Interactive Simulation代替瞬态分析它只计算可见时间段适合判断逻辑把开关的脉冲频率提高比如把周期从100ms改成10ms不影响绝缘电阻测量结果但仿真速度会快一个数量级。如果你还在仿真里加了高精度模型比如光耦继电器的完整子电路速度会更慢。这时候可以先换成理想开关验证逻辑最后再替换成实际模型跑一次确认。6.3 开关切换瞬间仿真不收敛或波形跳变Multisim在开关切换瞬间经常会出现不收敛、时间步长过小、波形乱跳的情况。这时候可以在开关两端并联一个小电容比如1nF来吸收电压突变或者在VSENSE节点加一个RC低通滤波器也能让比较器更稳定。另外在瞬态分析设置里把积分方法从Trapezoidal改成Gear或者把相对误差改到0.001往往能解决不收敛问题。我遇到过比较器输出反复翻转的情况最后发现不是电路逻辑错而是开关切换时产生的毛刺让比较器振荡。解决方案很简单给比较器加一个几mV的迟滞电阻网络不过这是后话了。6.4 一点心得仿真跑通不等于硬件就一定没问题但仿真跑不通硬件大概率问题更多。做BMS绝缘检测这种涉及高压的功能电路我习惯先仿真把阈值标定清楚然后在实物上把每个测量点的静态电压记录下来和仿真结果做对比。如果偏差在5%以内说明PCB布线影响可以接受如果偏差很大优先检查采样电阻精度、光耦继电器泄漏电流和PCB表面污染。最后再分享一个小技巧选型阶段别只看Multisim里的模型参数一定要去器件官网看应用笔记特别是光耦继电器的Ron-VI曲线和泄漏电流曲线。绝缘检测精度不取决于你的公式推得有多漂亮往往取决于这些不起眼的非理想参数。