logo

Back

The Role of Contactors in Battery Energy Storage Systems (BESS) and Battery Management Systems (BMS)

By Xbattery Engineering Team
April 1, 2025
#BESS#BMS
Essential Role of Contactors in BESS and BMS

Battery Energy Storage Systems (BESS) are revolutionizing the way we store and utilize energy, enabling renewable energy integration, grid stabilization, and backup power solutions. At the heart of every BESS lies a robust Battery Management System (BMS) and critical components like contactors, which ensure safe and efficient operation. In this blog, we’ll explore the importance of contactors in BESS, their role in load and

charge management, and how they are controlled in a system using four contactors: K1, K2, K3, and K4.

What Are Contactors and Why Are They Important?

Contactors are electrically controlled switches used to manage the flow of current in high-power systems. In a BESS, contactors play a pivotal role in:

1. Safety: Isolating the battery during faults, overcurrent, or overvoltage conditions.

2. Control: Enabling or disabling the connection between the battery, load, and charger.

3. Pre-charge Management: Limiting inrush current during system startup to protect capacitors and other components.

4. System Reliability: Ensuring seamless operation under varying load and charge conditions.

Without contactors, a BESS would lack the ability to safely disconnect or reconnect the battery, leading to potential hazards like short circuits, thermal runaway, or equipment damage.

The Role of Contactors in Load and Charge Management

In a typical BESS, contactors are used to manage two primary functions:

1. Load Connection: Connecting the battery to the load (e.g., an inverter or grid).

2. Charge Connection: Connecting the battery to the charger (e.g., a solar inverter or grid charger).

Let’s break down the role of each contactor in a system with four contactors: K1, K2, K3, and K4.

1. Load Contactors (K1 and K3)

K1 (Main Load Contactor): Connects the battery to the load during normal operation.

K3 (Pre-charge Contactor): Used in conjunction with a pre-charge resistor to limit inrush current when connecting the battery to the load.

How They Work:

1. During system startup, K3 is closed first, allowing current to flow through a pre- charge resistor. This limits the inrush current and protects the load capacitors.

2. Once the load capacitors are charged, K3 is opened, and K1 is closed to establish a direct connection between the battery and the load.

3. During shutdown or fault conditions, K1 is opened to disconnect the battery from the load.

2. Charge Contactors (K2 and K4)

K2 (Main Charge Contactor): Connects the battery to the charger during charging.

K4 (Pre-charge Contactor for Charging): Used to limit inrush current when connecting the battery to the charger.

How They Work:

1. When the charger is activated, K4 is closed first to allow current to flow through a pre-charge resistor, limiting inrush current.

2. Once the system is stabilized, K4 is opened, and K2 is closed to establish a direct connection between the battery and the charger.

3.During faults or when charging is complete, K2 is opened to disconnect the battery from the charger.

BMS Control of Contactors

The Battery Management System (BMS) is the brain of the BESS, responsible for monitoring and controlling the contactors. Here’s how the BMS ensures safe and efficient operation:

1. Safety Checks Before Closing Contactors

Before closing any contactor, the BMS performs several safety checks:Voltage Monitoring: Ensures the battery voltage is within safe limits.

Temperature Monitoring: Checks that the battery temperature is within the operating range.

Current Monitoring: Verifies that the current flow is within the rated limits.

2. Pre-charge Sequence

The BMS controls the pre-charge sequence to limit inrush current:

1. Close the pre-charge contactor (K3 or K4).

2. Monitor the load or charger voltage until it matches the battery voltage.

3. Open the pre-charge contactor and close the main contactor (K1 or K2).

3. Fault Handling

In case of a fault (e.g., overcurrent, overvoltage, or overtemperature), the BMS immediately opens all contactors to isolate the battery and prevent damage.

Practical Implementation: Using K1, K2, K3, and K4 in a BESS

Let’s consider a practical example of how these contactors are used in a 5 kWh BESS with an LFP battery pack:

System Startup:

1. The BMS checks the battery voltage, temperature, and current.

2. If all parameters are safe, the BMS closes K3 to initiate the precharge sequence for the load.

3. Once the load capacitors are charged, the BMS opens K3 and closes K1 to connect the battery to the load.

Charging Process:

1. When the charger is activated, the BMS closes K4 to initiate the precharge sequence for the charger.

2. Once the system is stabilized, the BMS opens K4 and closes K2 to connect the battery to the charger.

System Shutdown:

1. The BMS opens K1 and K2 to disconnect the battery from the load and charger.

2. In case of a fault, the BMS opens all contactors immediately.

Challenges and Best Practices Challenges:

1. Inrush Current: Without proper pre-charge management, inrush current can damage components.

2. Contactor Wear: Frequent switching can lead to contactor wear and failure.

3. Fault Detection: The BMS must detect and respond to faults quickly to ensure safety.

Best Practices:

1. Use Pre-charge Circuits: Always use pre-charge contactors and resistors to limit inrush current.

2. Monitor Contactor Health: Implement diagnostics to detect contactor wear or failure.

3. Redundancy: Use redundant contactors or fault-tolerant designs for critical systems.

Conclusion

Contactors are indispensable components in a BESS, enabling safe and efficient operation by managing the connection between the battery, load, and charger. In a system with four contactors (K1, K2, K3, and K4), the BMS plays a critical role in controlling these contactors to ensure safety, reliability, and performance. By understanding the role of contactors and implementing best practices, you can design a robust and reliable BESS that meets the demands of modern energy storage applications.

Whether you’re building a small-scale residential BESS or a large-scale industrial system, the proper use of contactors and a well-designed BMS will ensure your system operates safely and efficiently for years to come.

Appendix

Std_ReturnType bms_open_contactor(uint8_t contactor_type) {
    Std_ReturnType checkStatus = E_OK;

    if (is_contactor_hw_check() == 0) {
        return E_NOT_OK;
    }

    /* Disable contactor drivers */
    Sbc_fs26_SetAmux(SBC_FS26_AMUXCHAN_GPIO1, SBC_FS26_AMUXDIV_LOW);
    Sbc_fs26_SetAmux(SBC_FS26_AMUXCHAN_GPIO2, SBC_FS26_AMUXDIV_LOW);

    if (contactor_type == MAIN_CONTACTOR_TYPE) {
        Pwm_SetDutyCycle(K1_SAFE_PWM_CHANNEL, DutyCycleToTick(0U));
        Pwm_SetDutyCycle(K3_SAFE_PWM_CHANNEL, DutyCycleToTick(0U));
    } else if (contactor_type == CHARGER_CONTACTOR_TYPE) {
        Pwm_SetDutyCycle(K2_SAFE_PWM_CHANNEL, DutyCycleToTick(0U));
        Pwm_SetDutyCycle(K4_SAFE_PWM_CHANNEL, DutyCycleToTick(0U));
    }

    return checkStatus;
}

Std_ReturnType bms_close_contactor(uint8_t contactor_type) {
    Std_ReturnType checkStatus = E_OK;

    if (is_contactor_hw_check() == 0) {
        return E_NOT_OK;
    }

    if (contactor_type == MAIN_CONTACTOR_TYPE) {
        /* Configure PWM and SBC for main contactor */
        Pwm_SetDutyCycle(K1_SAFE_PWM_CHANNEL, DutyCycleToTick(0U));
        Pwm_SetDutyCycle(K3_SAFE_PWM_CHANNEL, DutyCycleToTick(0U));

        Sbc_fs26_FsxbRelease(SBC_FS26_FS_BOTH);
        Sbc_fs26_SetAmux(SBC_FS26_AMUXCHAN_GPIO1, SBC_FS26_AMUXDIV_HIGH);
        Sbc_fs26_SetAmux(SBC_FS26_AMUXCHAN_GPIO2, SBC_FS26_AMUXDIV_HIGH);

        /* Transition MC33HB devices to normal mode */
        checkStatus |= CDD_Mc33hb_SetMode(DEVICE_ID_DevConfig_k1, CDD_MC33HB_MODE_STANDBY);
        checkStatus |= CDD_Mc33hb_Reset(DEVICE_ID_DevConfig_k1);
        checkStatus |= CDD_Mc33hb_SetMode(DEVICE_ID_DevConfig_k1, CDD_MC33HB_MODE_NORMAL);

        Pwm_SetDutyCycle(K1_SAFE_PWM_CHANNEL, DutyCycleToTick(100U));

        checkStatus |= CDD_Mc33hb_SetMode(DEVICE_ID_DevConfig_k3, CDD_MC33HB_MODE_STANDBY);
        checkStatus |= CDD_Mc33hb_Reset(DEVICE_ID_DevConfig_k3);
        checkStatus |= CDD_Mc33hb_SetMode(DEVICE_ID_DevConfig_k3, CDD_MC33HB_MODE_NORMAL);

        Pwm_SetDutyCycle(K3_SAFE_PWM_CHANNEL, DutyCycleToTick(100U));
    } else if (contactor_type == CHARGER_CONTACTOR_TYPE) {
        /* Configure PWM and SBC for charger contactor */
        Pwm_SetDutyCycle(K2_SAFE_PWM_CHANNEL, DutyCycleToTick(0U));
        Pwm_SetDutyCycle(K4_SAFE_PWM_CHANNEL, DutyCycleToTick(0U));

        Sbc_fs26_FsxbRelease(SBC_FS26_FS_BOTH);
        Sbc_fs26_SetAmux(SBC_FS26_AMUXCHAN_GPIO1, SBC_FS26_AMUXDIV_HIGH);
        Sbc_fs26_SetAmux(SBC_FS26_AMUXCHAN_GPIO2, SBC_FS26_AMUXDIV_HIGH);

        /* Transition MC33HB devices to normal mode */
        checkStatus |= CDD_Mc33hb_SetMode(DEVICE_ID_DevConfig_k2, CDD_MC33HB_MODE_STANDBY);
        checkStatus |= CDD_Mc33hb_Reset(DEVICE_ID_DevConfig_k2);
        checkStatus |= CDD_Mc33hb_SetMode(DEVICE_ID_DevConfig_k2, CDD_MC33HB_MODE_NORMAL);

        Pwm_SetDutyCycle(K2_SAFE_PWM_CHANNEL, DutyCycleToTick(100U));

        checkStatus |= CDD_Mc33hb_SetMode(DEVICE_ID_DevConfig_k4, CDD_MC33HB_MODE_STANDBY);
        checkStatus |= CDD_Mc33hb_Reset(DEVICE_ID_DevConfig_k4);
        checkStatus |= CDD_Mc33hb_SetMode(DEVICE_ID_DevConfig_k4, CDD_MC33HB_MODE_NORMAL);

        Pwm_SetDutyCycle(K4_SAFE_PWM_CHANNEL, DutyCycleToTick(100U));
    }

    return checkStatus;
}

Frequently Asked Questions:

1. What is a contactor in a BESS?

A contactor is an electrically controlled switch that connects or disconnects the battery from the load (like an inverter or grid) or charger. It helps control power flow and keeps the system safe.

2. Why are contactors important in energy storage systems?

They protect the battery and equipment from faults, control charging and discharging, manage startup currents, and make sure the system runs smoothly and safely.

3. What challenges do contactors face in BESS?

They can wear out from frequent switching, fail if pre-charge is skipped, or cause safety issues if faults aren’t detected quickly.

4. How can we make contactors last longer?

By always using pre-charge circuits, monitoring contactor health, and adding redundancy in critical systems to reduce stress and improve reliability.

5. What happens if there are no contactors in a BESS?

Without contactors, the battery can’t be safely connected or disconnected. This could cause dangerous situations like short circuits, overheating, or equipment damage.