使用PWM驱动提高直流继电器的能效

我们可以通过脉宽调制(PWM)驱动来控制直流继电器和接触器,从而实现节能。采用这种简单技术,继电器能耗可轻松减半。本文简要介绍继电器工作原理,并演示如何利用Arduino Nano Every等微控制器实现PWM驱动信号(如图1所示)。

1 :Arduino Nano Every微控制器、MOSFET驱动器和继电器的实物照片,背景为Digilent Analog Discovery设备。

继电器原理回顾

继电器本质上是机电一体化装置。其核心是能产生磁场的大型电磁铁,通过驱动衔铁运动来带动触点切换。线圈绕组作为电感元件,具有包括断电时感应反冲在内的所有电感特性。其工作状态遵循RL时间常数规律:

\tau = \dfrac{L}{R}

该时间常数是继电器的基本属性,也是我们节能PWM技术的核心依据。必须理解这个时间常数,它决定了驱动衔铁初始动作与保持位置所需的波形特征。

在继续之前,建议先阅读这些文章,了解继电器磁场特性及时常数与吸合时间的关系。

继电器参数解析

标准继电器规格书包含大量对PWM技术有价值的信息。本例以图1所示的CIT继电器J104D2C12VDC.20S为例。关键静态参数包括:

  • 12VDC线圈、200mW功耗、720 \Omega 阻抗
  • 9.00VDC吸合电压(额定电压75%)
  • 1.2VDC释放电压(额定电压10%)
  • “任何低于额定值的线圈电压都可能影响继电器正常工作。”

遗憾的是,规格书未明确动态触点闭合速度参数。但通过图2所示的实验测量可轻松获得该数据。本例中,我们观测微控制器指令信号(橙色)及通过分流电阻测量的继电器驱动电流(蓝色)。可见电流在约8毫秒后达到稳态(完全导通)。5.5毫秒处的电流下降与衔铁运动相关,这是由气隙减小导致的磁特性变化引起的。请参阅前文关于继电器磁场行为的文章。

技术提示 :静态与动态术语的区分对继电器应用PWM技术至关重要。静态描述静止状态,而动态描述运动状态。例如,静态12V直流线圈规格及功率、电流和线圈电阻,可通过电路理论课学习的基本欧姆定律轻松计算。诸如初始电流变化等动态关系则需要额外关注。如图2所示,我们看到电流是动态的(持续变化),仅在8至10毫秒间有短暂稳定。继电器机械闭合时间也属于这种动态关系。此处闭合时间主要由LR时间常数决定。

继电器吸合电压与释放电压规格的意义

从数据表规格中,我们观察到初始吸合电压与释放电压存在显著差异。考虑到继电器磁结构中的气隙,这并不令人意外。初始状态下,未通电继电器的气隙较大。需要较强的磁场(更高电流)来克服衔铁弹簧阻力。然而一旦衔铁闭合,气隙几乎消失。维持衔铁在此位置所需的磁场强度较低。

这种保持功率的降低正是继电器 PWM 技术的关键。

2 :Digilent Analog Discovery采集的微控制器PWM信号(橙色)与继电器驱动电流波形(蓝色:除以10)。注意10毫秒的开启时间后跟随PWM信号。

技术提示 :仔细观察图2可知,我们并未直接测量继电器电流。实际测量的是继电器及其续流二极管的总电流。根据电路理论,电感电流不会瞬时改变。我们处理的是电流随时间积分的过程,如同电容对电压的积分。实际继电器电流会在PWM充电周期间以向下倾斜(放电)的曲线填补间隙。

PWM 继电器驱动的两步过程说明

基于PWM的节能技术是一个两步走的过程。该方法与继电器的吸合和释放规格之间的差异直接相关。步骤:

  • 吸合 :第一步是使用额定电压激活继电器。在满功率下,继电器会迅速闭合,如图2前6毫秒所示。一旦电流达到稳态,我们就可以转入下一步。在图2中,这个稳态电流约为16毫安,计算为12伏直流电除以720 \Omega

  • 保持 :在此阶段,我们对继电器进行PWM控制。如图2所示,PWM占空比为50%。正如上一期技术提示所解释的,我们注意到这不是继电器电流的直接读数。相反,图2显示的是电源供给继电器的电流。因此,我们可以看到电源电流较稳态显著降低。我将由您来确定这个脉冲信号提供的真实有效值电流。

PWM 技术带来的优势与问题

PWM技术的主要优势是降低能耗。在本例中,我们看到50%的占空比通过降低电流,显著减少了线圈消耗的能量。通过更多实验,我们或许能进一步降低占空比以实现更大的节能。

这种降低的能耗确实存在一些缺点:

  • 继电器性能折损 :仔细分析数据手册会发现其中标注的是"释放电压"而非最小保持电压。这两者并不相同。虽然我们可以降低占空比,但可能会达到继电器无法保持闭合的临界点。在振动环境中尤其如此。

  • 电磁干扰 (EMI) :电气干扰表现为两种形式:

    • 局部干扰 :PWM信号可能渗入被切换的信号中。例如,带有高次谐波的PWM线圈驱动会对微小模拟信号造成干扰。

    • 辐射干扰 :PWM驱动信号及其谐波可能从PCB板辐射出去,对附近设备造成干扰。

技术提示 :通过修改时间常数可以缩短继电器闭合时间。回忆一下 \tau = L/R 这个公式。我们无法改变电感量,但可以通过增大电阻R来缩短继电器闭合时间。前文提到的继电器闭合时间文章中,将其表示为L/2R或L/4R,其中数字表示电阻的倍增系数。这里电阻值增加4倍,将使电感导致的闭合时间相应缩短4倍。代价是需要将电压提升4倍。

Arduino 微控制器实现继电器 PWM 驱动信号的代码

用于PWM继电器控制的Arduino代码如下所示。这段代码控制图1所示的两个继电器,每500毫秒执行一次开关动作。代码相对简单。首先执行10毫秒的digitalWrite(),随后在继电器激活期间剩余时间执行analogWrite()。这10毫秒时间让继电器电流完全闭合并达到稳态电流。随后激活PWM以保持继电器处于闭合状态。

#define RELAY_1_PIN 3
#define RELAY_2_PIN 5

void setup() {
    pinMode(RELAY_1_PIN, OUTPUT);
    pinMode(RELAY_2_PIN, OUTPUT);
}

void loop() {
    digitalWrite(RELAY_1_PIN, HIGH);
    delay(10);
    analogWrite(RELAY_1_PIN, 128);
    delay(450);
    digitalWrite(RELAY_2_PIN, HIGH);
    delay(10);
    analogWrite(RELAY_2_PIN, 128);
    delay(450);

    digitalWrite(RELAY_1_PIN, LOW);
    delay(500);
    digitalWrite(RELAY_2_PIN, LOW);
    delay(500);
}

结论

这种两步式继电器驱动技术只需几行微控制器代码即可轻松实现。它很可能直接兼容您现有的继电器驱动硬件。我建议您尝试这个技术。

返回工业控制与自动化索引