Skip to content

Controller Operation


The dev_braking_chopper offers user selectable control strategies for consuming excess DC bus regeneration energy.

Controller type

The braking chopper supports two controller strategies:

Control type Description
dc_chopper DC chopper based controller, where the control effort is proportional to the difference in DC bus voltage to the reference voltage.
hysteresis Hysteresis based controller, where the controller output is either on or off, depending on the DC bus voltage to reference voltage difference.

Controller mode: dc_chopper

Once the DC bus voltage \(v_{dc}\) goes above \(v_l\), the DC chopper controller sets the duty cycle of the MOSFET (and in turn the load resistor) as a function of the difference between the DC bus voltage and the reference source.

DC Chopper

The duty cycle is computed as:

\[ duty = {(v_{dc} - v_l) \over (v_h - v_l)} \]

where:

\(v_h = v_{ref} + v_{hysteresis-h} + v_{t-penalty}\)

\(v_l = v_{ref} + v_{hysteresis-l} + v_{t-penalty}\)

Here, the values \(v_{hysteresis-h}\) and \(v_{hysteresis-l}\) determine the voltage range on top of the reference voltage over which the actuation will take place and \(v_{t-penalty}\) is a temperature based penalty discussed further below.

To use the DC chopper controller, set controller_type to dc_chopper and configure the following parameters:

Command Type Required Description
controller_v_dc_hysteresis_h float32 Required Hysteresis high voltage (V). Sets the voltage at which maximum actuation (duty cycle) occurs.
The actuation will be clamped at any voltage beyond this point.
controller_v_dc_hysteresis_l float32 Required Hysteresis low voltage (V). Sets the voltage at which actuation starts.
controller_v_dc_delta_max float32 Optional The maximum voltage at which v_dc_ctrl_over_warning_f flag is asserted.

WARNING:

If the controller and resistor are unable to absorb the energy from the DC bus, the DC bus voltage will continue to rise above the upper voltage limit set by 'controller_v_dc_hysteresis_h'. In this case the controller will clamp it's output command to the maximum value and continue to attempt to absorb energy from the DC bus. The controller will only shut down if any of it's monitored temperatures exceed their maximum limits.


Controller mode: hysteresis

Hysteresis

Where the DC chopper controller continually varies the duty cycle as \(v_{dc}\) travels from \(v_l\) up to \(v_h\), the hysteresis controller simply turns on once \(v_{dc} >= v_h\), then turns back off once \(v_{dc} <= v_l\).

Again,

\(v_h = v_{ref} + v_{hysteresis-h} + v_{t-penalty}\)

\(v_l = v_{ref} + v_{hysteresis-l} + v_{t-penalty}\)

Here the hysteresis values allow setting the activation point at some voltage above the reference voltage. \(v_{t-penalty}\) is a temperature based penalty discussed further below.

To use the hysteresis controller, set controller_type to hysteresis and configure the following parameters:

Command Type Required Description
controller_v_dc_hysteresis_h float32 Required Hysteresis high voltage (V). Once the DC bus voltage goes above this value, the MOSFET will turn on.
controller_v_dc_hysteresis_l float32 Required Hysteresis low voltage (V). Once the DC bus voltage goes below this value, the MOSFET will turn off.
controller_v_dc_delta_max float32 Optional The maximum voltage at which v_dc_ctrl_over_warning_f flag is asserted.

WARNING:

If the controller and resistor are unable to absorb the energy from the DC bus, the DC bus voltage will continue to rise above the upper voltage limit set by 'controller_v_dc_hysteresis_h'. In this case the controller will clamp it's output command to the maximum value and continue to attempt to absorb energy from the DC bus. The controller will only shut down if any of it's monitored temperatures exceed their maximum limits.


Reference source

All braking chopper controllers work by comparing the DC bus voltage (filtered at cutoff v_dc_filter_fc_hz) against a reference source and actuating based on the difference between the two.

The reference source can be a constant value or a heavily filtered DC bus voltage.

Select a constant value source when the DC bus voltage is expected to remain somewhat stationary, for example when running from a regulated supply.

Select the slow filtered DC bus voltage when running from a source that may vary, for example a battery that might deplete over time. In this case, choose a slow filter cutoff that is faster than the expected battery depletion rate, but slow enough that the reference will not see perturbations in the DC bus voltage caused by regeneration.

Reference source Description
v_dc_reference_slow_filter Reference source comes from the slow filtered DC bus voltage.
v_dc_reference_constant Reference source comes from a pre-configured constant value.

v_dc_reference_slow_filter

The DC bus slow filter reference source requires the filter cutoff to be configured:

Command Type Required Description
v_dc_filter_slow_fc_hz float32 Required Slow DC bus voltage filter cutoff frequency (Hz)

v_dc_reference_constant

The DC bus constant reference source requires a constant value to be configured:

Command Type Required Description
controller_v_dc_reference_const float32 Required Reference voltage (V)

An example: For a DC bus voltage of \(72V\), set controller_v_dc_reference_const to \(72V + 1V\). In this case, the braking chopper will begin to actuate when the DC bus voltage raises above \(73V\).


Temperature penalty

When multiple braking chopper devices are used together it will become apparent that one device will be favoured over another. This is expected - there are no higher level controllers managing the devices.

As one device is favoured above others it is expected that this device will increase in temperature faster than the others.

We can penalise devices based on temperature by adding a small factor \(v_{t-penalty}\) (from above) to each of the h/l hysteresis points. This will cause the penalised device to switch on at a slightly higher voltage (and in turn later) than the other device. The effect will be that activation favour is shifted to another device.

This is a simple yet effective way of sharing among the devices without higher level signalling. Each device can still see it's maximum rated power dissipation, except they will simply alter their activation order based on device temperature.

The temperature penalty action requires a temperature source to be configured.

Temperature penalty source

Source Description
v_dc_temp_penalty_disabled The temperature penalty action is disabled. (Default)
v_dc_temp_penalty_temp_0 Temperature is sourced from the on board temperature sensor. This effectively measures the temperature of the device PCB.
v_dc_temp_penalty_an_0 External analog temperature sensor, for example a sensor fixed to the actual resistor.
The analog interface must have the gain and scale configured correctly.

Select a temperature penalty source by writing an enum to controller_v_dc_temp_penalty_source.

Penalty action

The temperature penalty is applied as a small linear increase in voltage as the penalty source traverses through the penalty range defined by controller_v_dc_temp_penalty_t_l and controller_v_dc_temp_penalty_t_h.

Temperature Penalty Action

Configure the temperature penalty voltage and temperature range with:

Command Type Required Description
controller_v_dc_temp_penalty_t_h float32 Required Upper temperature at which the penalty action ends (degC).
controller_v_dc_temp_penalty_t_l float32 Required Lower temperature at which the penalty action starts (degC).
controller_v_dc_temp_penalty_v_delta float32 Required Voltage penalty \(v_{t-penalty}\) range. Linearly applied over the temperature range. \(v_{t-penalty}\) should small, eg about \(1V\)-\(2V\).