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.
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.