Skip to content

Mc health

Health Clamped Maximum Command

Both the temperature monitor and host sentry may impose an internal limit on the incoming i_d, i_q, v_d and v_q signals as they enter the active controllers. The health clamp scales output of the controllers and is derived as the minimum of the cases described below.

Internal Temperature Limit Case

In the internal temperature limit case the commands are limited once the highest on-board electronics temperature reading goes past temperature_penalty_limit_l. Once the temperature moves beyond this limit the output scale reduces proportionally from 1.0 to temperature_penalty_scale_l as the temperature increases from temperature_penalty_limit_l to temperature_penalty_limit_h. The output scale is clamped at temperature_penalty_scale_l if the temperature moves beyond temperature_penalty_limit_h.

Query if the device is temperature clamped by reading boolean parameter temperature_penalty_ctrl_is_clamped.

The op_state warning bit Temperature dependent current clamp flag is asserted if the device is temperature clamped.

Temperature Penalty Action

Default values are:

Parameter Type Required Description
temperature_penalty_limit_h float32 Optional Upper temperature at which maximal penalty is applied (degC).
Default value: "Hardware maximum temperature"
temperature_penalty_limit_l float32 Optional Lower temperature at which minimal penalty is applied (degC).
Default value: "Hardware maximum temperature" - 10degC
temperature_penalty_scale_l float32 Optional Lower command scale at maximum temperature penalty.
Default value: 0.1
temperature_penalty_ctrl_is_clamped bool Optional Read only. True if the controller is temperature clamped,
Default value: false

When in controller mode current_dq the maximum device current multiplied by the scale value is output via JCS signal i_dq_cmd_clamp. This can be connected to higher level controllers (eg speed) to limit that controllers output or integrator.

External Analog Temperature Limit Case

If enabled the external analog may be used as a penalty source for the health clamped maximum command and it's operation is the same as the internal temperature limit case. An example use of the external temperature feature is to monitor the temperature of the motor under control.

Configure the following parameters to enable and use the external analog port as a temperature penalty source.

Parameter Type Required Description
temperature_penalty_using_ext_an bool Optional Enables the external analog port as a temperature penalty source.
Default value: disabled
temperature_penalty_ext_an_limit_h float32 Optional Upper temperature at which maximal penalty is applied (degC).
Default value: "Hardware maximum temperature"
temperature_penalty_ext_an_limit_l float32 Optional Lower temperature at which minimal penalty is applied (degC).
Default value: "Hardware maximum temperature" - 10degC
temperature_penalty_ext_an_scale_l float32 Optional Lower command scale at maximum temperature penalty.
Default value: 0.1

Ensure the external analog port is configured correctly to use this feature.

Host Sentry Case

dev_motor_controller features a host sentry that monitors the arrival of data from the host, to ensure that a valid connection is active.

The sentry becomes enabled only once a call to jcs_host::start() is made and jcs_host enters synchronous mode. The sentry will not enable if only a parameter call to 'start' is made. This is to allow the user to perform parameter based tasks without the sentry shutting the motor controller down.

The sentry is disabled when a call to jcs_host::stop() is made.

When the host sentry is active it can generate a command limiting scale value that is proportional to the time that the device is not in contact with the host. The host sentry internally uses a filter and as such is tolerant to occasional drops in communication. The sentry will only expire once the host is unresponsive for the time set in host_sentry_timeout_ms.

Parameter Type Required Description
host_sentry_active bool Optional Set to enable the host sentry. Cleared to disable the sentry.
Default value: enabled
host_sentry_timeout_ms uint32 Optional Sentry expiry time.
Default value: 200mS

Temperature limits

dev_motor_controller monitors for temperature limit conditions. See Hardware Specifications for values.

An E-stop will be generated if the limit is exceeded. A start/stop cycle is required to clear the E-stop.

DC bus supply limits

The main power bus voltage is monitored for limits. See Hardware Specifications for values.

An E-stop will be generated if the limit is exceeded. A start/stop cycle is required to clear the E-stop.

Auxiliary 12V supply limits

The 12V supply rail is monitored for limits. See Hardware Specifications for values.

An E-stop will be generated if the limit is exceeded. If this error occurs the device electronics may enter an unknown state. It is advisable to power cycle the system if this error presents.

Phase currents limits

Each phase current is monitored for limits. See Hardware Specifications for values.

An E-stop will be generated if the limit is exceeded. A start/stop cycle is required to clear the E-stop.

Phase voltage limits

Each phase voltage is monitored for limits. See Hardware Specifications for values.

An E-stop will be generated if the limit is exceeded. A start/stop cycle is required to clear the E-stop.

External E-Stop

On receiving an E-stop from the network, dev_motor_controller will attempt to safely stop spinning the motor.