目录
前言
最近在搞高压BMS的绝缘检测功能,在网上看了很多相关的资料文章,由此写下我对绝缘检测计算的相关认识。
首先绝缘检测使用的不平衡电桥测绝缘电阻。因为在上一家公司也做了绝缘检测,不过是个半成品(其实就是对的)。当我想把以前的公式套进现在在做的里面去,发现求出来的值不对,我怀疑公式有问题(其实没问题,是我没理解当时的算法公式,然后硬件板读出来的数据有问题)。然后就在网上疯狂的找资料,但是好多资料都是差不多的,最后的公式我是没整明白。最后经过硬件工程师的点拨,瞬间豁然开朗。
我们其实可以在matlab上面做一个模型,来运行看看,不会受硬件及其他的一些影响,本人才刚开始学,东西是好东西,可惜我还不会。
前面都是牢骚废话,同志们可以直接看下面。
1、绝缘检测介绍
我们为什么要绝缘检测呢,因为对于BMS来说,就是用来检测电池箱体是否漏电,防止触电的保护功能。
本次设计用的是不平衡电桥测绝缘电阻。
2、不平衡电桥

本文图片参考 轻工学报
参考文章:轻工学报
http://qgxb.zzuli.edu.cn/fileQGXB/journal/article/qgxb/2018/6/PDF/20180610.pdf
PS:(由于上面文章的最后一个公式(情况 4 :V+与 V-都不等于0),带入具体值验证错误,所以又请教了硬件工程师,得出了下面的比较简单的公式。)
但是不影响我们采用同上面相同的电路,来实现绝缘检测电阻的计算。
简单原理:相当于R+和R-阻值越小,(R+和R-为我们要求的绝缘阻值与箱体连接)经过的电流越大,越会对人体造成危害。表明此时已经漏电,需要做出漏电保护。
3、具体原理算法
公式中值代表图中值具体如下
U0:表示总电压
Up:上半桥电压
Un:下半桥电压
V+和V-:表示R2,R3出ADC采集的位置
Rp:正极绝缘阻值
Rn:负极绝缘阻值
1)原理
当我们的最后算法公式是怎么推出来的呢
原理如下:
当V+和V-都为不为0 的情况下。
我们闭合K1可知:i1=i3+i4,就是并联分流,而i2又等i1(流出的等与流入的)。
所以可得i3+i4=i2,
所以又i=u/r得到公式:Up/Rp +Up/(R1+R2) = (U0-Up)/Rn,①
我们闭合K2可知:i1=i3+i4,就是并联分流,而i2又等i1(流出的等与流入的)。
所以可得i3+i4=i2,
所以又i=u/r得到公式:Un/Rn+Un/(R3+R4) = (U0-Un)/Rp,②
联立①②两个方程
可得出:
Rn = (U0-Up-Un)/Up(R1+R2)
Rp = (U0-Up-Un)/Un(R3+R4)
2)步骤
1、求总压(BAT+电池总压)
我们先闭合K1和K2可求出。
Up=V+*(1+R1/R2);
Un=V-*(1+R3/R4);
U0=(Up)+Un;
2、求上半桥电压
我们先打开K1,关闭K2
Up=V+*(1+R1/R2);
3、求下半桥电压
我们先打开K2,关闭K1
Un=V-*(1+R3/R4);
4、求绝缘电阻值
我们分四种情况:
1)V+和V-都为0 的情况
R+和R-都为无穷大(代码直接判断,然后直接给R+和R-赋值最大即可)
2) V+为0,V-不为0 的情况
当V+为0时就是表明Pn是没有的,所以可以求出Rp
Rp = (U0-Up-Un)/Un(R3+R4)
Rn=∞;(赋值最大)
3) V-为0,V+不为0 的情况
Rn = (U0-Up-Un)/Up(R1+R2)
Rp=∞;(赋值最大)
4)V+和V-都为不为0 的情况
Rn = (U0-Up-Un)/Up(R1+R2)
Rp = (U0-Up-Un)/Un(R3+R4)