Throttle Application
Introduction
Overview
The Throttle application allows the user to implement a simple throttle control directly on the emDrive. Input devices can be connected directly to the emDrive and mapped to the throttle application. The application calculates the desired output based on these inputs and passes it to motor control. The output can be used as either a torque input or a speed input in the motor controller, depending on which CANOpen object the output is mapped to. No further configuration is needed to switch the application from one output mode to the other.
Features
The Throttle application supports the following features:
- Throttle Module
Functionality: Calculates the desired output based on mapped input and configuration parameters.
Capabilities: Can be configured as unidirectional or bidirectional. - Brake Module
Functionality: Calculates the desired brake torque based on mapped input and configuration parameters.
Capabilities: Unidirectional only, with brake torque always in the opposite direction to motor rotation.Note that if the desired output is speed, the brake should be disabled.
- Pump Control Module
Functionality: Controls the pump, turning it on or off depending on motor and drive temperature. - Pre-charge Module
Functionality: Manages the pre-charge process at startup. - DC-DC Turn On Delay Module
Functionality: Delays the activation of the DC-DC converter after startup to ensure controlled power application. - SOC Monitoring Module
Functionality: Monitors the State of Charge (SOC) of the battery.
Capabilities: Reduces the maximum allowed torque when SOC is below a specified threshold.Requires an external Battery Management System (BMS) to operate correctly.
- Charging Detection Module
Functionality: Detects when the battery is charging and disables the drive during the charging process. - Input Mapping
Functionality: Allows certain inputs to the throttle application to be mapped to CAN objects on the emDrive.
All throttle application features can be independently enabled or disabled (except the brake module, which requires the throttle module to be enabled). This is done by setting the Thr1_Enable CAN objects of the throttle application as detailed in Table 1.
Object Name |
Object Index |
Object Subindex |
Description | Unit |
Thr1_Enable |
0x4010 | 0x00 |
Enables the throttle application: 1 – enabled (must be enabled for any modules to work) |
/ |
Thr1_Enable__Throtle | 0x4011 |
0x03 |
Enables the throttle module: 0 – disabled |
Bit |
Thr1_Enable__Brake | 0x4011 | 0x04 |
Enables the brake module: 0 – disabled |
Bit |
Thr1_Enable__Pump | 0x4011 | 0x05 |
Enables the pump control module: 1 – enabled |
Bit |
Thr1_Enable__Precharge | 0x4011 | 0x06 |
Enables the pre-charge module: 0 – disabled |
Bit |
Thr1_Enable__DC_DC | 0x4011 | 0x07 |
Enables the DC-DC turn on delay module: 0 – disabled |
Bit |
Thr1_Enable__SOC | 0x4011 | 0x08 |
Enables the SOC monitoring module: 0 – disabled |
Bit |
Thr1_Enable__ChargingDetBitect | 0x4011 | 0x09 |
Enables the charging detection module: 0 – disabled |
Bit |
Input and Output mapping
Input and output mapping for the Throttle application is managed using the Thr1_Obj
object, which stores the CANOpen indexes and subindexes of the inputs and outputs mapped to the Throttle application variables. You can remap any variable to a different input by writing the CANOpen index and subindex of the new input to the corresponding Thr1_Obj
sub-object.
The following table outlines the object mapping parameters for the Throttle application. Each object in the table represents a specific function or control point within the application, and the corresponding CANOpen index and subindex define where these objects are located in the CANOpen network. By configuring these parameters, users can tailor the Throttle application to their specific needs, ensuring precise control and monitoring of various functions.
By correctly configuring these object mappings, users can ensure that the Throttle application communicates accurately with the various inputs and outputs connected to the emDrive. This flexibility allows for precise control of throttle, brake, pump, and other critical functions, enhancing the overall performance and reliability of the system.
Object Name |
Object Index |
Object Subindex |
Description | Unit |
Thr1_Obj__AppControl | 0x4012 | 0x01 |
Address of CAN object where commands are sent to application |
Obj |
Thr1_Obj__AppState | 0x4012 | 0x02 |
Address of CAN object where application state is saved |
Obj |
Thr1_Obj__ThrotleVoltage | 0x4012 | 0x03 | Address of CAN object with throttle input | Obj |
Thr1_Obj__ThrotleFWD_DIvalue | 0x4012 | 0x04 |
Address of CAN object to forward switch input |
Obj |
Thr1_Obj__ThrotleREW_DIvalue | 0x4012 | 0x05 |
Address of CAN object to reverse switch input |
Obj |
Thr1_Obj__TargetObj | 0x4012 | 0x06 |
Address of CAN object where output torque of throttle application is written |
Obj |
Thr1_Obj__BatValid | 0x4012 | 0x07 |
Address of CAN object which stores BMS status. |
Obj |
Thr1_Obj__BatSOC | 0x4012 | 0x08 |
Address of CAN object which stores battery SOC in percentage |
Obj |
Thr1_Obj__BatState | 0x4012 | 0x09 |
Address of CAN object which stores battery state |
Obj |
Thr1_Obj__ChargingDetectDIvalue | 0x4012 | 0x0A |
Address of CAN object which shows if charging is detected. If not 0 throttle application considers battery to be charging. |
Obj |
Thr1_Obj__MainPumpEnableDO | 0x4012 |
0x0B |
Address of CAN object with main pump enable control |
Obj |
Thr1_Obj__CoolingPumpEnableDO | 0x4012 | 0x0C |
Address of CAN object with cooling pump enable control |
Obj |
Thr1_Obj__CoolingInputTemperature1 | 0x4012 | 0x0D |
Address of CAN object with temperature input 1 (default bridge heatsink temp) |
Obj |
Thr1_Obj__CoolingInputTemperature2 | 0x4012 | 0x0E |
Address of CAN object with temperature input 2 (default motor temp) |
Obj |
Thr1_Obj__DCDCenableDO | 0x4012 | 0x0F |
Address of CAN object with DC-DC enable control |
Obj |
Thr1_Obj__BuzzerDO1 | 0x4012 | 0x10 |
Address of CAN object with buzzer high side enable control |
Obj |
Thr1_Obj__BuzzerDO2 | 0x4012 | 0x11 |
Address of CAN object with buzzer low side enable control |
Obj |
Thr1_Obj__BrakeVoltage | 0x4012 | 0x12 | Address of CAN object with break input | Obj |
Thr1_Obj__RPM_in | 0x4012 | 0x13 | Address of CAN object with RPM data | Obj |
Thr1_Obj__MainRelayEnableDO | 0x4012 | 0x14 |
Address of CAN object with main relay enable contro |
Obj |
Thr1_Obj__PrechargeRelayEnableDO | 0x4012 | 0x15 |
Address of CAN object with pre-charge relay enable control |
Obj |
Thr1_Obj__PrechargeDC_voltage | 0x4012 | 0x16 |
Address of CAN object with measured voltage during pre-charge procedure |
Obj |
Examples
1. Configure analog input (for Thr1_Obj__ThrottleVoltage
)
For example, to map the throttle voltage input to the emDrive analog input 1 (which has a CANOpen object HW_AIN_AIN1
with index 0x3090
and subindex 0x01
as shown in the picture bellow), you would write 0x309001
to Thr1_Obj__ThrottleVoltage
.
2. Configure digital input
3. Configure digital output
For example, to map the precharge relay to the inverters digital output. We will use CANopen object HW_LS1
(lets assume that the relay is connected to that output). To control the output you need to use the index 0x30A0
and subindex 0x02
.
How to Use Each Module
Initial Setup Assumptions
This document assumes that the angle sensor calibration has already been completed by the user, and that all other emDrive parameters for the motor and regulation have been properly configured. Before using any module we have to enable the CANOpen object Thr1_enable
with index 0x4010
and subindex 0x00
, for that we have to write 1 to the "value" field.
4010 - Thr1_enable = 1
Pre-charge Module
The Pre-charge module limits the charging current of the emDrive capacitors by activating the pre-charge relay switch before the main relay switch is engaged. The pre-charge relay switch has a resistor connected in series, which limits the current during the capacitor charging phase.
Note that the main and pre-charge relay switches are not integrated within the emDrive and must be provided externally. For more details, refer to section 5.4 of the EmDrive user manual.
For readability and clarity, the following abbreviations are used:
- The pre-charge relay switch refers to
Thr1_Obj__PrechargeRelayEnableDO
- The main relay switch refers to
Thr1_Obj__MainRelayEnableDP
The sequence begins with the activation of the pre-charge relay switch. After the duration specified by the Thr1_Precharge__PrechargeTime
parameter (default is 2 seconds), the drive voltage is checked. If the voltage does not exceed the threshold set by the Thr1_Precharge__MinDC_Voltage
parameter, an error state is reported. If the voltage is above this threshold, the main relay switch is activated. Finally, after the time specified by the Thr1_Precharge__DelayAfterMainClose
parameter has elapsed, the pre-charge relay switch is turned off, and the run state is set to true, activating the throttle and brake functionality. Additionally, we have a diagram illustrating the above functionality. It is assumed that after the pre-charge time, the DC voltage exceeds the set threshold, thus no error state is encountered.
To set this module you have to set all of the objects in table 3 and also use the correct mapping for Thr1_Obj__PrechargeRelayEnableDO
and Thr1_Obj__MainRelayEnableDP
.
Object Name |
Object Index |
Object Subindex |
Description | Unit |
Thr1_Precharge__PrechargeTime | 0x4016 | 0x01 | Time to wait after pre-charge relay switch is activated before voltage is checked |
s |
Thr1_Precharge__DelayAfterMainClose | 0x4016 | 0x02 | Time to wait before pre-charge relay switch is deactivated after the main relay switch has been activated |
s |
Thr1_Precharge__MinDC_Voltage | 0x4016 | 0x03 | Minimum voltage that must be present on drive capacitors in order to not enter error state |
V |
Known bug:
Thr1_Precharge__DelayAfterMainClose: The name and description of this object in the configurator are incorrect.
The proper name should be: DelayAfterPrechargeOff.
The description should be: "After the Main relay is activated, we wait for the DelayAfterPrechargeOff time, then we deactivate the precharge relay."
You can also verify whether the pre-charge completed successfully or if an error occurred using the pre-charged module signals.
Object Name |
Object Index |
Object Subindex |
Description | Unit |
Thr1_Precharge__Run | 0x4016 | 0x04 | Set to 1 when pre-charge is successfully finished | bit |
Thr1_Precharge__Err | 0x4016 | 0x05 | Set to 1 if there was an error during pre-charge | bit |
Examples
1. Precharge
- Enable Throttle Application:
0x4010 - Thr1_enable = 1
- Enable the Precharge Module:
Use the throttle general object0x4011 Thr1_Gen
to enable the proper module.0x4011 0x06 Precharge = 1
- Map Objects to the Application:
Choose the proper digital outputs to control the main relay and precharge relay:
e.g:
Let's assume that we have the main relay connected to HW_LS1 and the precharge relay connected to HW_LS2. The object indexes are as follows:HW_LS1 = 0x30A0 0x02
HW_LS2 = 0x30A1 0x02
We set the following:0x4012 0x14 MainRelayEnableDO = 0x30A002
0x4012 0x15 PrechargeRelayEnableDO = 0x30A102
Voltage that is measured can be set but it is recommended to use default (0x3101 0x07 Udc
), to change the object use the following:0x4012 0x16 PrechargeDC_Voltage = 0x310107
- Configure the Precharge Module:
Set the precharge time:0x4016 0x01 PrechargeTime = 2
Set the time after the precharge relay is turned off:0x4016 0x02 DelayAfterMainClose = 0.5
Set the minimum voltage that must be present:0x4016 0x03 MinDC_Voltage = 24
- Save and Reset:
Save the settings (Ctrl+S) and perform a reset.
Switch to operational mode.
Test
Enable auto start if everything works correctly (inverter will always go to operational mode after reset).0x3000 0x03 AutoStart = 1
Throttle module
The throttle module is responsible for calculating the desired output torque based on the given input voltage. It provides features such as short to ground and short to power supply detection, reading forward and reverse switches, rate-limiting the output, and disabling the throttle when the brake is active. Below is a detailed guide on the state diagram and parameter settings for the throttle module.
Object Name |
Object Index |
Object Subindex |
Description | Unit |
Thr1_Throtle__ZeroValue | 0x4013 |
0x01 |
At this input value output is zero. | V |
Thr1_Throtle__ZeroDeadBand | 0x4013 | 0x02 | Defines how large zero dead band is | V |
Thr1_Throtle__EnableDeadBand | 0x4013 | 0x03 | Defines how large enable dead band is. Should be lesser or equal to zero dead band. |
V |
Thr1_Throtle__MaxInput | 0x4013 | 0x04 | At this input value output is at maximum value defined in Thr1_Throtle__OutFullPositive |
V |
Thr1_Throtle__MinInput | 0x4013 | 0x05 | At this input value output is at minimum value defined in Thr1_Throtle__OutFullNegative |
V |
Thr1_Throtle__NonValidMax | 0x4013 | 0x06 | Any input value grater then this will put throttle module into error state |
V |
Thr1_Throtle__NonValidMin | 0x4013 | 0x07 | Any input value lesser than this will put throttle module into error state |
V |
Thr1_Throtle__Progressive | 0x4013 | 0x08 | Determines how the output torque changes in relationship to the input between zero value and max value. |
/ |
Thr1_Throtle__Invert | 0x4013 | 0x09 | Inverts output | Bit |
Thr1_Throtle__RateLimit | 0x4013 | 0x0A | Limits how fast output can change. | 1/s |
Thr1_Throtle__OutFullPositive | 0x4013 | 0x0B | Output when input reaches max input defined in Thr1_Throtle__MaxInput |
/ |
Thr1_Throtle__OutFullNegative | 0x4013 | 0x0C | Output when input reaches min input defined in Thr1_Throtle__MinInput |
/ |
Thr1_Throtle__DissableAtBrake | 0x4013 | 0x0D | If 1, throttle is disabled when brake is active. If 0 throttle and brake output are summed. |
Bit |
Thr1_Throtle__WaitBeforeBridgeDisable | 0x4013 | 0x0E | How long to wait before bridge is disabled after bridge disable request is received. |
s |
Thr1_Throtle__WaitAfterStart | 0x4013 | 0x0F | How long to wait after startup before operational state is entered |
s |
Object Name |
Object Index |
Object Subindex |
Description | Unit |
Thr1_Throtle__InVoltage | 0x4013 | 0x10 | Input signal | V |
Thr1_Throtle__OutNorm | 0x4013 | 0x11 | Normed throttle output (-1 full negative, 1 full positive) |
/ |
Thr1_Throtle__Out | 0x4013 | 0x12 | Output in system units | / |
Thr1_Throtle__TotalOut | 0x4013 | 0x13 | Sum of outputs of throttle module and brake module |
/ |
Thr1_Throtle__Enabled | 0x4013 | 0x14 | If 1 throttle is enabled | Bit |
Thr1_Throtle__State | 0x4013 | 0x15 | Reports the state of throttle module. 1 -> Start, 2 -> WaitForNeutral, 3 -> Idle, 4 -> Driving, 5 -> Error, 6 -> Charging, 7 -> WaitForSpeedDrop, 8 -> WaitForSpeedDropChargingError, 9 -> ErrorEntry, 10 -> WaitForSpeedDropInit |
/ |
Thr1_Throtle__Err | 0x4013 | 0x16 | If 1, throttle module is in error state | Bit |
Thr1_Throtle__ErrCode | 0x4013 | 0x17 | Reports on error state of the entire Throttle application. 0x01 -> throttle error, 0x02 -> precharge error, 0x04 -> drive low level error, 0x08 -> brake error |
/ |
State Diagram
The state diagram for the throttle module consists of several states and transitions, ensuring the correct operation and safety of the system.
Startup State
- Buzzer Activation: Upon system start, the buzzer is activated if an external buzzer is connected.
- Wait Time: The system waits for the duration specified by the parameter Thr1_Timing__WaitAfterStart to complete the startup.
- Error Check: If an error is detected during startup, the system transitions directly to the Error State.
Operational State
- Buzzer Deactivation: The buzzer is disabled upon entering the operational state.
- RPM Check: The system waits for the RPM to drop to 0, if it is not already there.
- Bridge Disable: The bridge is disabled, and the system waits for the throttle to be set to zero.
Idle State
- Idle Mode: The system enters the Idle State, waiting for the input to move out of the zero position.
Driving State
- Throttle Enabled: If the input moves out of the zero position and the throttle is enabled, the system transitions to the Driving State.
- Bridge Enable: The bridge is enabled, and the output is forwarded to motor control.
WaitForNeutral State
- Throttle Disabled: If the throttle is disabled and the output moves out of the zero position, the system returns to the WaitForNeutral State.
WaitForSpeedDrop State
- Output Set to 0: When the throttle is disabled during the Driving State (either due to Thr1_Enable__Throttle being set to 0, input within the disable dead band, or outside allowed values), the system enters the WaitForSpeedDrop State.
- RPM Check: The output is set to 0, but the bridge remains enabled until the RPM drops below the value specified by Thr1_Brake__Full_RPM.
- Wait Time: The system waits for the time configured in Thr1_Timing__WaitBeforeBridgeDisable.
- State Transition: The state changes to Idle or WaitForNeutral based on whether the input is at zero or not.
Charging State
- RPM Drop: If charging is detected during the operational state, the system waits for the RPM to drop.
- Bridge Disable: The system moves to the Charging State, where the bridge is disabled.
- Return to Operational: When charging is no longer detected, the system returns to the operational state.
Error State
- Error Detection: If an error is detected in any state, the system transitions to the Error State.
- Bridge Disable: The bridge is disabled, and the buzzer is activated.
- RPM Check: In case of an error during the operational state, the system waits for the RPM to drop before disabling the bridge.
- Priority to Error State: If both charging and an error are detected simultaneously, the system prioritizes transitioning to the Error State.
- System Reset: There is no automatic recovery from the Error State; the system must be manually reset.
Input to Output Transformation
The input to output transformation converts the input voltage of the analog input to output torque, which is forwarded to motor control if the throttle is enabled. The basic transformation is illustrated in the graph below.
- Thr1_Throttle__ZeroValue: Defines the zero point of the input.
- Thr1_Throttle__ZeroDeadBand: Defines the dead band around the zero point. While the input voltage is within this dead band, the output remains zero.
- Thr1_Throttle__MinInput: Minimum valid input voltage.
- Thr1_Throttle__MaxInput: Maximum valid input voltage.
- Thr1_Throttle__OutFullPositive: Maximum positive output torque.
- Thr1_Throttle__OutFullNegative: Maximum negative output torque.
- Thr1_Throttle__NonValidMin: Minimum input voltage considered valid.
- Thr1_Throttle__NonValidMax: Maximum input voltage considered valid.
The transformation includes the following regions:
-
Zero Dead Band:
- Defined by
Thr1_Throttle__ZeroValue
andThr1_Throttle__ZeroDeadBand
. - Output remains zero when input voltage is within the dead band.
- Defined by
-
Positive Torque Region:
- From the end of the dead band to
Thr1_Throttle__MaxInput
, the output rises in the positive direction from 0 toThr1_Throttle__OutFullPositive
. - Output is calculated as , where is the normalized output (0 at 0 and 1 at
Thr1_Throttle__OutFullPositive
), is the normalized input (0 at the edge of the dead band and 1 atThr1_Throttle__MaxInput
), and is the parameterThr1_Throttle__Progressive
, which ranges between 0.3 and 3. The default value for is 1, indicating a linear growth of output torque.
- From the end of the dead band to
-
Negative Torque Region:
- From the end of the dead band to
Thr1_Throttle__MinInput
, the output falls in the negative direction. - Output is calculated as y=−∣x∣a
- From the end of the dead band to
-
Constant Max Torque Region:
- Between
Thr1_Throttle__MaxInput
andThr1_Throttle__NonValidMax
, the output remains at maximum positive torque. - Between
Thr1_Throttle__MinInput
andThr1_Throttle__NonValidMin
, the output remains at maximum negative torque. - If the input value increases beyond
Thr1_Throttle__NonValidMax
or decreases beyondThr1_Throttle__NonValidMin
, the output torque is set to 0 and the throttle module enters the error state.
- Between
This transformation ensures that the throttle application accurately converts the input voltage into the appropriate output torque for motor control, with safeguards in place to handle invalid input values and prevent unintended behaviour.
Examples
1. Monodirectional throttle using only one analog input
Objects to set:
- Enable Throttle Application:
0x4010 - Thr1_enable = 1
- Enable the Throttle Module:
Use the throttle general object0x4011 Thr1_Gen
to enable the proper module.0x4011 0x03 Throtle = 1
- Map Objects to the Application:
Choose the reference value to control (velocity or torque) and map analog/digital inputs and outputs.
To control velocity:0x4012 0x06 TargetObj = 0x301005
To control torque:0x4012 0x06 TargetObj = 0x301006
Set the control mode (0 for torque, 1 for velocity):0x3100 0x01 ControlMode = 0 or 1
Define the analog throttle input (e.g., potentiometer on AIN3):0x4012 0x03 ThrottleVoltage = 0x309003
- Configure the Throttle Module:
Set the throttle voltage parameters as explained in Section 4.2:0x4013 0x01 ZeroValue = 0.5
0x4013 0x04 MaxInput = 4.5
0x4013 0x05 MinInput = 0.5
0x4013 0x06 NonValidMax = 4.8
0x4013 0x07 NonValidMin = 0.2
Set the maximum and minimum TorqueRef or VelocityRef:
In this example we will use max = 100rpm and min = 0rpm0x4013 0x05 OutFullPositive = 100
0x4013 0x05 OutFullNegative = 0
- Save and Reset:
Save the settings (Ctrl+S) and perform a reset.
Switch to operational mode.
Test
Enable auto start if everything works correctly (inverter will always go to operational mode after reset).0x3000 0x03 AutoStart = 1
2. Bidirectional throttle using only one analog input
Objects to set:
- Same as example 1 "Monodirectional throttle using only one analog input"
- Same as example 1 "Monodirectional throttle using only one analog input"
- Same as example 1 "Monodirectional throttle using only one analog input"
- Configure the Throttle Module:
Set the throttle voltage parameters as explained in Section 4.2:0x4013 0x01 ZeroValue = 2.5
0x4013 0x04 MaxInput = 4.5
0x4013 0x05 MinInput = 0.5
0x4013 0x06 NonValidMax = 4.8
0x4013 0x07 NonValidMin = 0.2
Set the maximum and minimum TorqueRef or VelocityRef:
In this example we will use max = 100rpm and min = -100rpm0x4013 0x05 OutFullPositive = 100
0x4013 0x05 OutFullNegative = -100
Additionaly we have to setIsNegativeBrake
0x4013 0x10 IsNegativeBrake = 0
- Same as example 1 "Monodirectional throttle using only one analog input"
3. Bidirectional throttle using one analog input and two digital input as direction
Objects to set:
- Same as example 1 "Monodirectional throttle using only one analog input"
- Same as example 1 "Monodirectional throttle using only one analog input"
- Same as example 1 "Monodirectional throttle using only one analog input"
- Same as example 1 "Monodirectional throttle using only one analog input"
Additionally, we only need to map digital input objects for enabling forward/reverse throttle.
e.g.
We will use object0x30b0 0x01 - DIN1
to enable/disable throttle.
So we need to set:0x4012 0x04 ThrottleFWD_Dlvalue = 0x30b001
With this configuration if the value on DIN1 = 0, we cannot use throttle. - Same as example 1 "Monodirectional throttle using only one analog input"
4. Enable/Disable throttle using digital input.
Objects to set:
- Same as example 1 "Monodirectional throttle using only one analog input"
- Same as example 1 "Monodirectional throttle using only one analog input"
- Same as example 1 "Monodirectional throttle using only one analog input"
- Same as example 1 "Monodirectional throttle using only one analog input"
Additionally, we only need to map digital input objects for enabling forward/reverse throttle.
e.g.
We will use object0x30b0 0x01 - DIN1
to enable/disable throttle.
So we need to set:0x4012 0x04 ThrottleFWD_Dlvalue = 0x30b001
With this configuration if the value on DIN1 = 0, we cannot use throttle. - Same as example 1 "Monodirectional throttle using only one analog input"
Brake module
The brake module implements the brake function within the throttle application, operating similarly to the throttle module but with a crucial difference: it always outputs torque in the opposite direction of the current rotation and supports only monodirectional braking. The brake can be assigned to a different analog input or share the same analog input as the throttle module, beneficial for configurations where monodirectional throttle is used. In such cases, one direction from the zero point can manage throttle control while the other handles brake control.
Object Name |
Object Index |
Object Subindex |
Description | Unit |
Thr1_Brake__ZeroValue | 0x4014 | 0x01 | At this input value output is zero. | V |
Thr1_Brake__ZeroDeadBand | 0x4014 | 0x02 | Defines how large zero dead band is | V |
Thr1_Brake__EnableDeadBand | 0x4014 | 0x03 | Defines how large enable dead band is. Should be lesser or equal to zero dead band. |
V |
Thr1_Brake__MaxInput | 0x4014 | 0x04 | At this input value output is at maximum value |
V |
Thr1_Brake__NonValidMax | 0x4014 | 0x05 | Any input value grater then this will put throttle module into error state. |
V |
Thr1_Brake__NonValidMin | 0x4014 | 0x06 | Any input value lesser than this will put throttle module into error state. |
V |
Thr1_Brake__Progressive | 0x4014 | 0x07 | Determines how the output torque changes in relationship to the input between zero value and max value. |
/ |
Thr1_Brake__RateLimit | 0x4014 | 0x08 | Limits how fast output can change. Output can change from 0 to 1 in 1/Thr1_Brake__RateLimit s |
1/s |
Thr1_Brake__OutFullPositive | 0x4014 | 0x09 | Output brake torque when input reaches max input. |
/ |
Thr1_Brake__OutZero | 0x4014 | 0x0A | Output brake torque when input is at zero point. |
/ |
Thr1_Brake__Full_RPM | 0x4014 | 0x0B | RPM below which brake torque is scaled towards 0. |
/ |
Object Name |
Object Index |
Object Subindex |
Description | Unit |
Thr1_Brake__InVoltage | 0x4014 | 0x0C | Input signal | V |
Thr1_Brake__OutNorm | 0x4014 | 0x0D | Normed brake output (-1 full negative, 1 full positive) |
/ |
Thr1_Brake__Out | 0x4014 | 0x0E | Output in system units | / |
Thr1_Brake__Enabled | 0x4014 | 0x0F | If 1 brake is enabled | Bit |
Thr1_Brake__Err | 0x4014 | 0x10 | Brake error state |
Input to Output Transformation
The input to output transformation functions in a similar manner to the input-output transformation of the throttle module. A typical example of this transformation is illustrated in the picture below.
The type of slope between the end of the zero dead band and Thr1_Brake__MaxInput
is determined by the parameter Thr1_Brake__Progressive
, similar to how it is for the throttle module. Additionally, the brake module can be configured to increase brake torque when the input decreases. This can be achieved by setting the parameter Thr1_Brake__MaxInput
to a value smaller than Thr1_Brake__ZeroValue
. The resulting input to output transformation for this configuration is illustrated in the picture below.
For both modes, it is essential to configure the parameters Thr1_Brake__NonValidMax
and Thr1_Brake__NonValidMin
. Failing to do so will result in incorrect operation of the short to ground and short to power supply error detection.