当我们在使用AC负载的时候,为了能较好的控制负载工作功率,需要用到继电器、可控硅等对负载进行工作与断开的控制,从而将功率维持在所需的大小上,之前介绍双向可控硅的文章也讲了其控制方式主要有:定时、丢波、斩波。中国电网参数为220V/50Hz,即交流电有效值为220V,频率为50Hz。由于我研发的为欧美产品,使用的是125V/60Hz,手头上暂时只有其对应的波形图片,所以此篇文章提供的示波器波形图均为125V/60Hz下的结果,60Hz对应一个半波的时间为1/60/2=8.33ms。
接下来我以一个吹风筒的AC电机与发热丝控制波形来让大家更直观了解。
首先提供一下原理图及对应的示波器测试点:
(由于原理图右下角涉及公司及个人信息,所以打了码,但应该不影响大家学习知识)
这是一种非隔离过零检测的方法,其中C8可以避免一些高频毛刺对过零信号检测的干扰,因此不能缺少,其取值不宜太大,否则会导致过零信号误差过大。
通过该电路,获得Zero测试点的波形如下:
可以看到60Hz出来的过零检测波形频率也接近60Hz,还是比较准确的,我们要做的就是利用好该波形的上升沿和下降沿,因为他们就是市电的过零点时刻。
在市电过零点时对可控硅驱动信号进行改变。保留完整的半波,通过丢弃一定的半波,保留一定的半波,以半波数来作为功率控制进行计算。适用于各种大功率AC负载,如烤箱发热管。
这个是示波器测试heater测试点得到的对应丢波波形,可以看到周期性的波形中出现了两次半波丢失,这就是丢波的效果。而根据示波器的测试点我们可以得到,其实缺失的半波实际才是heater工作的点。通过光标获得的数据可知两个丢波点之间的时间为132.8ms,对应的半波数为132.8/8.33ms=16个,每16个半波就丢掉1个半波,则负载的功率也会被控制到全功率的1/16。
可以看到我对应的程序中也是把发热管工作的各档位周期均设置为16个半波数,然后通过不同的丢波数,来得到不同的档位功率。而波形就是第一档程序对应的波形,还是比较准确的。丢波周期需要根据负载以及档位需求来综合设定,如果是温度很容易变化的产品,如卷发棒,就要把丢波周期设短,否则1个过长的丢波周期会导致温度变化过大,不利于控制。而像烤箱类产品,由于加热速度较慢,且档位需求较多,所以可以将丢波周期设长,这样就可以分解出更多的档位来工作。
在检测到过零信号后,开启一个定时器作为延时斩波计时,当时间到达后进行斩波操作。适用于各种功率不高,需要稳定工作的负载,比如电机,水泵等,如果采用丢波方式会有明显抖动,不平稳。
这个是示波器测试motor测试点得到的对应斩波波波形,可以看到波形不是完整的半波,而是半波被切掉了一部分,这就是斩波的效果。
根据示波器测试点我们也可以得到,半波缺失的地方才是负载工作的点。而斩波的负载功率计算并不是线性的,因为我们知道AC市电是类正弦波形,在零点附近功率最小,在半波最高点功率最高,具体计算需要通过积分方式去得到半波在每一个时间点对应的电压有效值才行。我一般都是直接改参数看效果,效果合适就可以。
这是对应的电机斩波控制程序,这里我用到的是100us计数一次的定时器,可以看到我在计数到80的时候就会把可控硅驱动信号关掉,对应的就是在检测到过零信号后8ms,就会把信号关掉。这样做的原因是因为双向可控硅一旦开启,就需要在满足两个条件下才能关闭:1.AC过零;2.没有驱动信号。所以当我在斩波点开启驱动信号之后,我只要在过零点前随时关闭驱动信号即可,负载还是会将后续到过零点之间的功率都做完。而我提前关闭的好处是可以避免影响到下一个斩波波形,如果我在83关闭,即过零之后的8.3ms,对应着下一个过零点,若是定时器不够准确或者有信号延迟等因素影响,则可能会导致已经过零点之后我才关掉驱动信号,结果就是导致下一个半波完全打开工作。提前关闭的另一个好处则是省电,在一些MCU电源供电能力不足的地方,通常只会开启驱动信号很短的时间,防止MCU电源电压被拉低。
大家如果是设计中国版产品的时候,由于市电为220V/50Hz,一个半波为10ms,所以如果采用的是100us计数器,则需要在计数100之前关闭驱动信号。
定时方式适用于发热管等大功率负载或者离子发生器等,相比与丢波、斩波方式,其优点为控制较简单,不需要检测市电过零点,缺点是会存在一定控制偏差,且容易产生大功率负载导致的EMC问题。比如给双向可控硅100ms的驱动信号,很难保证在100ms时刚好处于市电的过零点,所以双向可控硅会继续导通工作,直到驱动信号结束后的下一个过零点,则会出现多做功的情况。由于没有检测过零点,所以可控硅的驱动信号也无法保证是在过零点的地方开启,则容易在第一个开启半波的时候变成斩波。然而大功率负载并不适用斩波,因为大功率负载开启瞬间需要较大电流,若是我们的工作波形并不与电网一致,就容易产生杂波干扰电网,导致EMC问题。而丢波适用于大功率负载的原因就是其保留了每个完整的半波,只有在过零点的时候才进行开启或关闭负载工作,这样就能保证电网的驱动能力与负载的工作保持一致。此时需要使用过零光耦来避免这个问题,过零光耦的作用就是即使有驱动信号,也要市电过零点,才会使光耦内部的双向可控硅导通;同样的关闭驱动信号后,也要市电过零点,才会使光耦内部的双向可控硅截止,因此它能保证即使使用定时方式控制功率,也能保证每个半波的完整性。
这是一个利用过零光耦内部的双向可控硅来控制负离子发生器的电路,由于负离子发生器工作电流很小,所以可以直接这样使用。
如果是发热管等大功率负载,还需要再使用另外的可控硅,同时根据功率情况挑选不同尺寸的散热片。其电路大致如下:
定时方式的周期一般也是根据负载的工作反应度来定,反应较强烈,如加热很迅速,则将周期设短,反之则周期可以长些。
比如设定2秒为一个控制周期,然后用定时器20ms累加一次,则计数100次后则达到2秒,在这100次计数中,我们就可以设置对应的工作时间和关闭时间,比如在0开启,在35关闭,在100时候将计数值清0,则可以获得大致35%的工作功率。
总结一下,过零检测电路根据产品电源是否隔离来设计(隔离方式使用光耦,非隔离方式方法较多,三极管,限流电阻+稳压管,限流电阻等);
功率控制方面,采用定时方式不需要考虑市电频率及过零检测,采用丢波方式需要进行过零检测,采用斩波方式需要考虑市电频率及过零检测。