作者:物联网全栈开发
背景
这个周末,我应客户的要求,到他们工厂协助解决他们自研静电除尘控制器在现场使用碰到的问题,主要为检测不到电场闪络,出现二次电流上冲,以及拉弧的现象。
而如果调高闪络检测的灵敏度,又出现了误检测到闪络的情况,影响除尘的效率。
控制器的主控芯片为采购自第三方的TMS320F28335,价格高昂。
我花了一天左右的时间,把我设计的采用STM32处理器的最新代码改写为基于TMS320F28335 DSP的代码。
主要工作量在于硬件BSP层的适配,比如:
ADC配合定时器的自动等间隔转换,实现在半个周期即10ms内等间隔采样64个数据点之后产生ADC中断。
ADC中断的配置中断处理。
市电过零信号的GPIO口变换中断处理。
用于可控硅根据导通角延时触发的CPU timer的定时器设置以及中断处理。
用于产生频率为10kHZ,占空比为50%的可控硅触发脉冲串的定时器设置以及中断处理,PWM模块的设置。
这些与STM32以及dsPIC30F6014A有明显不同,比如中断结构;
TMS320F28335的PIE模块将96个外设和外部引脚的中断进行了分组,分为12组,每组8个中断,分别是PIE1-PIE12。每个组的中断被多路汇集进入1个CPU中断。
今天开始了调试代码,为了安全起见,我断开升压变压器,接入灯炮作为负责,并用示波器观测波形。
图1. 配置定时器的宏定义,用于导通角延时以及脉冲串长度控制
过零检测电路
图2为市电过零检测电路,图3为实际过零信号波形。
图2. 过零检测电路
图3. 过零信号波形,通道4为市电经过桥式整波之后的波形,图3为光耦次极输出的过零数字脉冲
该检测电路存在几个问题,
- 交流信号经过桥堆VB581实现取绝对值的效果,把负半周信号反向为正电压信号,使得原本越过零点的交流信号被整流成可能仅与零点接触的单向信号。如果负载容性大,甚至可能变成直流信号,无法正常检测到过零点,所以电路图中的C385容量越大,过零信号的脉宽就越窄,达到一定容量之后,光耦次极不能输出过零脉冲。而C582的前级没有串联电阻,根据R、C低通滤波电路的截止频率可知,如果R小,C要求比较大才能达到比较好的滤波效果。而该电路中,C582前级所串联的电阻仅为L58的直流电阻,大概在mΩ级别,以1Ω计算。C385太大会检测不到过零脉冲,而C582没有前级的电阻配合,需要比较大的容量才能达到合适的滤波效果,而经过光耦转成数字信号之后,对干扰脉冲的处理就更困难了。因此,该电路的滤波效果比较差,如果现场使用和变频器等非线性负载,电能质量比较差,在过零点附近有畸变等情况,会导致过零信号不准,出现可控硅触发异常的情况。
- 该电路通过光耦的导通实现过零检测,在导通电路附近,如果电压有波动,在光耦次级会产生小的毛刺,没办法实现采用比较器实现的迟滞效果。可能可以通过输入GPIO口前的R、C低通滤波电路滤除,以及TMS320F28335的GPIO口输入去抖动功能过滤。
- 过零脉宽的调节,脉宽与输入的市电幅度有关,幅度越高,过零点位置电压波形越抖,脉宽越宽。脉宽的变化会导致设置的导通角与实测导通角有偏差,而且电平上下边沿中断过于频繁,理想的脉宽应该在400us左右,应该在检测电路中加入可调电阻调节输入的市电幅度,以在现场调试时调节过零信号的脉宽。
图4. 我亲自操刀实际的过零检测电路
在我设计的过零检测电路中,R119//R123与C78构成的低通滤波电路起到了最重要的滤波作用。当前在广东恩平,一到晚上,大量非线性设备被使用,市电畸变严重,可控硅触发异常,输出电压随机抖动。在现场整改时,我就是把C78由10nF(103)改为了100nF(104),再配合软件的一些简单过滤以及延时触发时序留足边界,严格限制在半个周期内,起到了立竿见影的效果,奔赴现场的当晚就顺利解决了问题。
低通滤波电路相移的影响
该滤波电路的-3dB截止频率为,
因为有效信号的频率为50Hz,截止频率还可以更低,从而对高频干扰信号起到更好的过滤作用。
问题在于,滤波同时会引起相移,导致检测到的过零信号比实际的滞后,延时时间通过下式计算:
图5.电路仿真计算相移
在导通角比较小时,可能会出现延时到下一个半波,以大导通角触发可控硅导通的情况,用于产生导通角的定时器设定最大的延时值,对应于最小导通角。
图6.相移对可控硅触发的影响
而且导通角的上限为180度与滞后时间对应的相位差,无法达到180度的全角度可控导通。
因此,可控的导通角可调范围受同步信号脉宽以及滤波电路的相移影响。
脉宽越宽,可调范围越窄。
相移越大,可调范围越窄。
如果过零脉冲的脉宽为400us,相移对应的延时为490us,导通角的可调范围为12.4°-167.6°。
如果考虑电容的初始误差,环境影响以及长期老化的综合误差为,所引起的相移对应的延时范围为398us-593us。
如果过零脉冲的调整范围为200us-600us。
最小导通角的范围为:9°-16°,在程序中取最小导通角为20°。
在同步脉冲中断程序中启动定时器,如果定时器的时钟频率为2MHz,设置的周期寄存器值计算公式为:
导通角*单位导通角对应的计数值-因为相移和脉宽导致的偏移计数值。
#define SCR_ANGLE_MIN 200//最小导通角为20°
#define SCR_ANGLE_MAX 1700//最大导通角为170°
#define SCR_ANGLE_OFFSETCOUNTER (U16)1600 //800us
#define SCR_ANGLE_MINCOUNTER (U16)(10 + SCR_ANGLE_OFFSETCOUNTER)
#define SCR_ANGLE_MAXCOUNTER (U16)19600
#define SCR_ANGLE_COUNTERPERANGLE 1111 // /100
U16 SCRControl_Angle2Counter(U16 usAngle)
{
U16 usData, usDataA;
U32 uwData;
if(usAngle < SCR_ANGLE_MIN)
{
usData = SCR_ANGLE_MIN;
}
if(usAngle > SCR_ANGLE_MAX)
{
usData = SCR_ANGLE_MAX;
}
usData = (1800 - usAngle);
uwData = (U32)usData * SCR_ANGLE_COUNTERPERANGLE;
usDataA = (U32)uwData / 100;
if(usDataA > SCR_ANGLE_MAXCOUNTER)
{
usDataA = SCR_ANGLE_MAXCOUNTER;
}
if(usDataA < SCR_ANGLE_MINCOUNTER)
{
usDataA = SCR_ANGLE_MINCOUNTER;
}
usData = usDataA - SCR_ANGLE_OFFSETCOUNTER;
return(usData);
}
复制代码图7.二次电流、二次电压波形
可控硅一旦导通后,即使降低控制极电压或去掉控制极电压,可控硅仍然导通,直到市电电压重新过零之后,流经可控硅的电流小于维护导通电流,可控硅才自动关闭。
由于可控硅的这一特点,可控硅导通控制的步骤为:
- ADC配置成包括一次电流、一次电压、二次电流、二次电压等几个通道的顺序采样,并用EPWM3产生Adc的采样触发信号,EPWM3的周期设置为156.25us,使能采样完成中断。这样每隔156.25us,CPU会自动采样完成多个通道,并进入ADC中断程序对ADC数值对于计数、累加、在滑动窗口内计算最大、最小值等。
- 将过零脉冲信号接到GPIO口,并使能该GPIO的电平跳变中断。
- 在过零脉冲的上跳变中断,根据当前导通道设置定时器CPUTimer0的定时计数值,使能CPUTimer0中断,使能CPUTimer0开始定时。
- 在CPUTimer0定时中断中,
根据ADC中断计算的二次电流、二次电压的累加值以及计数值计算平均值,
根据平均值、最值判断是否发生闪络,
如果发生闪络,则停止可控硅触发信号的输出,而进入闪络恢复状态,
如果没有发生闪络,则使能EPWM1输出频率为10kHz,占空比为50%的可控硅触发脉冲,驱动触发变压器控制可控硅导通,
根据当前导通角以及触发脉冲的个数要求设置CPUTimer0的定时计数,使能CPUTimer0用于触发脉冲的延时关断;
复位ADC采样的统计数值,开始新的一轮统计;
电场发生闪络时,二次电流上升, 二次电压下降,检测闪络的算法为:
根据前几个半波的导通角,二次电流、二次电流的最值或者平均值,使用最小二乘法滚动批合,算出以导通角为自变量,电压、电流为因变量的线性系数,并实时滚动更新。
在输出可控硅触发脉冲之前,根据上一个半波的导通角度由最小二乘法算出的系数计算二次电流、二次电压的上一个半波的基准值,在ADC中断中实际计算上一个半波实测值。
将实测值与基准值进行比较,如果二次电流实测值与基准值相比,超过一定倍数,则判为发生闪络,该倍数需要开放设置,出厂默认值设定为150%。
或者是二次电压实测值与基准值相比,下降一定电压,则判为发生闪络,该下降电压值也需要开放设置,出厂默认值设定为20kV。
图8.闪络检测算法
与取平均值作为比较基准值的通常算法相比,我的算法考虑到了实测值与基准值所对应的导通角不同,避免导通角上升过程时,出现误判闪络的情况,特别在闪络快恢复阶段,检测再次发生闪络有奇效。
与此同时,在ADC中断中,计算二次电压、二次电流的ADC差值,当前后差值超过设定阈值,也判为闪络。
通过积分和微分的方法检测闪络,做到万无一失。
一些波形
图9. 灯泡作负载,用示波器测试控制波形
图10. 可控硅触发波形
在上图中,
通道2为过零信号,
通道1为在过零信号下降沿中断程序中翻转的IO口的波形,
通道3为可控硅触发脉冲串的波形,
对应的导通角为50°,在过零信号下降沿中断程序,启动6.6ms的定时器,之后进入定时器中断,输出可控硅触发脉冲串。
作者:物联网全栈开发