善用 PWM 驅動直流繼電器提高能源效率

我們可以使用脈寬調變 (PWM) 驅動器來驅動直流控制繼電器接觸器,從而節省能源。使用這種簡單的技術,繼電器的功耗可以輕鬆減半。本文將簡要介紹繼電器,並展示如何使用微控制器(例如圖 1 所示的 Arduino Nano Every)實現 PWM 驅動訊號。


圖 1:Arduino Nano Every 評估板、MOSFET 驅動器和繼電器的圖片,背景為 Digilent Analog Discovery。

繼電器理論回顧

回想一下,繼電器是一種機電設備。它有一個大型電磁鐵,該電磁鐵產生磁場來移動電樞,進而移動各個觸點。這根線圈是一個電感器,具有所有相關特性,包括斷電時的電感衝擊。它也受 RL 時間常數控制,其中:

\tau = \dfrac{L}{R}

時間常數是繼電器的基本屬性,也是我們節能 PWM 技術的核心。我們必須理解時間常數,因為它決定了首先激活並保持電樞位置所需的波形。

在繼續之前,回顧一下這些文章可能會有所幫助,它們描述了繼電器中磁場的性質以及時間常數與繼電器導通時間之間的關係。

繼電器規格回顧

典型的繼電器規格書包含大量對我們的 PWM 技術有用的信息。本例中,我們將重點放在圖 1 所示的 CIT 繼電器和開關 J104D2C12VDC.20S。相關的靜態規格如下:

  • 12 VDC coil, 200 mW, and 720
  • 9.00 VDC pick-up voltage (75% rated voltage)
  • 1.2 VDC release voltage (10% of rated voltage)
  • “The use of any coil voltage less than the rated coil voltage may compromise the operation of the relay.”

遺憾的是,規格書中並沒有指定動態觸點閉合速度。但是,如圖 2所示,這很容易透過經驗確定。在本例中,我們觀察了微控制器指令訊號(橘色)及其相關的繼電器驅動電流(藍色),它們流過一個小的分流電阻。可以觀察到,電流在大約8 ms後達到穩定狀態(完全導通)。 5.5 毫秒時的電流驟降與電樞運動及氣隙減小所引起的磁特性變化有關。請參閱前面提到的關於繼電器磁場行為的文章。

技術提示:靜態和動態這兩個術語的區別對於將 PWM 技術應用於繼電器至關重要。靜態描述的是靜止的物體,而動態描述的是運動的物體。例如,靜態 12 VDC 線圈的規格以及功率、電流和線圈電阻,可以透過電路理論課程學到的基本歐姆定律輕鬆計算出來。諸如初始電流變化之類的動態關係需要額外注意。如圖2所示,我們看到,除了 8 到 10ms 之間的短暫時間外,電流是動態的(始終在變化)。繼電器機械閉合時間也被視為這種動態關係的一部分。此時,閉合時間主要由 LR 時間常數決定。

繼電器吸合 (pick up) 與釋放 (release) 電壓規格的重要性

從規格書規格中,我們觀察到初始吸合電壓和釋放電壓之間存在兩個截然不同的電壓。考慮到繼電器磁結構中的氣隙,這不足為奇。最初,未通電繼電器的氣隙很大。需要較大的磁場強度(較大的電流)才能拉動銜鐵彈簧。然而,一旦銜鐵處於閉合位置,氣隙就會減少到幾乎為零。只需較小的磁場強度即可將銜鐵保持在這個位置。

保持功率的降低是繼電器 PWM 技術的關鍵。


圖 2:Digilent Analog Discovery 微控制器 PWM 訊號(橘色)和繼電器驅動器電流(藍色:除以 10)的波形。請注意 PWM 訊號之後的 10 毫秒開啟時間。

技術提示:仔細觀察圖 2 可發現,我們並非直接測量繼電器電流,而是測量提供給繼電器及其反激二極體的電流。根據電路理論,我們知道電感電流不會瞬時變化。相反,我們處理的是電流隨時間變化的積分,就像電容器對電壓隨時間變化的積分一樣。實際繼電器電流會在 PWM 充電週期之間以向下傾斜的電流(放電)填滿間隙。

PWM 繼電器驅動兩步驟流程描述

基於 PWM 的節能技術分為兩個步驟。此方法與繼電器的吸合和釋放規格之間的差異直接相關。步驟:

  • 吸合:第一步是使用額定電壓啟動繼電器。在滿功率下,繼電器將快速閉合,如圖 2 的前 6ms 所示。電流達到穩定狀態後,我們就可以進入下一步。在圖 2 中,此穩態電流約為 16mA,以12 VDC / 720Ω 計算。

  • 保持:在此階段,我們對繼電器進行 PWM 控制。如圖 2 所示,PWM 佔空比為 50%。正如上一篇技術提示中所述,我們注意到這不是繼電器電流的直接讀數。相反,圖 2 顯示的是從電源饋入繼電器的電流。因此,我們可以看到電源電流與穩態電流相比顯著降低。我將由您自行確定該脈衝訊號提供的真實有效電流。

PWM 技術的優勢與問題

PWM 技術的主要優點在於降低能耗。在本例中,我們可以看到,50% 的佔空比透過降低電流顯著降低了線圈的功耗。透過進一步的實驗,我們或許能夠降低佔空比,從而進一步節省能源。

降低能耗也存在一些缺點:

  • 繼電器工作表現受損:仔細分析規格書後發現,規格書中包含「釋放電壓」而非最小保持電壓。兩者並非一回事。雖然我們可以降低佔空比,但繼電器可能會出現無法保持閉合的現象。在振動環境中尤其如此。

  • 電磁干擾 (EMI):電氣干擾有兩種形式:

    • 局部干擾:PWM 訊號可能會干擾正在切換的訊號。例如,具有高次諧波的 PWM 線圈驅動可能會對小類比訊號造成干擾。

    • 輻射干擾:PWM 驅動訊號和諧波可能會從 PCB 輻射出去,對附近的設備造成干擾。

技術提示:我們可以透過修改時間常數來縮短繼電器閉合時間。回想一下,τ = L / R。
我們無法改變電感,但可以增加 R,從而縮短繼電器閉合時間。前面提到的繼電器閉合時間文章將其描述為 L / 2R 或 L / 4R,其中數字表示電阻的乘數。這裡,電阻增加 4倍將使電感造成的閉合時間縮短 4倍。缺點是電壓必須增加 4倍。

Arduino 微控制器程式碼實現繼電器 PWM 驅動訊號

Arduino PWM 繼電器控製程式碼如下所示。此程式碼控制兩個繼電器,如圖 1 所示,每 500ms 執行一次開啟或關閉操作。程式碼相對簡單。首先執行 digitalWrite() 函數,持續 10ms,然後執行 analogWrite() 函數,持續繼電器啟動的剩餘時間。這 10ms 的時間允許繼電器電流完全閉合併達到穩定狀態。然後啟動 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);
}

結論

兩步驟繼電器驅動技術只需幾行微控制器程式碼即可輕鬆實現。它很可能在您現有的繼電器驅動硬體上運作,鼓勵您嘗試這項技術。