6. Controller: TCU
Shifting gears in an automatic transmission is done according to a certain schedule, designed according to certain criteria: fuel economy, dynamic performance or comfort. The most modern automatic transmissions are adaptive, which means that the shift scheduling is modified according to the driving speed of the car and the driving style of the driver (economy vs. sport).
A shift scheduler consists of static shift lines (maps) and dynamic corrections. The shift map gives the right gear for a particular vehicle speed and throttle (accelerator pedal) position. The dynamic corrections are modifying the static gear calculation function mainly of the rate of accelerator pedal position and vehicle state (acceleration vs. deceleration).
6.1 Shift lines (maps)
For a given vehicle speed and accelerator pedal (throttle) position, there can be only one gear engaged. The shift lines, also called shift maps, define in which gear the transmission should be, for a particular vehicle speed and accelerator pedal position.
For our example, we are going to have 7 forward gears, which means that will have 6 shift lines for up shifting and another 6 shift lines for down shifting.
The upshift line represent the maximum vehicle speed, for a given acceleration pedal (throttle) position, in a given gear. If the line is crossed, the transmission will shift into an upper gear (e.g. 1 to 2). For downshifting, the logic is the same, only that the shift line is the minimum speed in the current gear. When this limit is passed, the transmission downshifts in a lower gear (e.g. 2 to 1).
Upshift lines data:
Upshift lines [kph] | Gear [-] | |||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
Accelerator pedal (throttle) position [%] | 0 | 12 | 21 | 32 | 45 | 64 | 84 | 350 |
21 | 12 | 21 | 32 | 45 | 64 | 86 | 350 | |
21.01 | 12 | 21 | 32 | 46 | 64 | 86 | 350 | |
21.02 | 12 | 21 | 32 | 47 | 65 | 86 | 350 | |
23 | 12 | 21 | 34 | 49 | 68 | 86 | 350 | |
25 | 12 | 21 | 36 | 52 | 72 | 91 | 350 | |
28 | 12 | 22 | 39 | 57 | 78 | 99 | 350 | |
33 | 14 | 25 | 44 | 63 | 87 | 109 | 350 | |
34 | 14 | 25 | 45 | 66 | 90 | 114 | 350 | |
34.01 | 15 | 26 | 45 | 67 | 92 | 115 | 350 | |
38 | 16 | 30 | 52 | 76 | 104 | 131 | 350 | |
72 | 44 | 75 | 118 | 165 | 227 | 281 | 350 | |
74 | 45 | 77 | 120 | 169 | 232 | 287 | 350 | |
76 | 47 | 80 | 123 | 174 | 238 | 294 | 350 | |
82 | 52 | 86 | 132 | 186 | 255 | 315 | 350 | |
84 | 54 | 88 | 134 | 190 | 260 | 320 | 350 | |
85 | 55 | 89 | 135 | 192 | 263 | 320 | 350 | |
87 | 56 | 91 | 135 | 192 | 263 | 320 | 350 | |
89 | 58 | 91 | 135 | 192 | 263 | 320 | 350 | |
100 | 58 | 91 | 135 | 192 | 263 | 320 | 350 |
Downshift lines data:
Downshift lines [kph] | Gear [-] | |||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
Accelerator pedal (throttle) position [%] | 0 | 0 | 10 | 16 | 24 | 37 | 50 | 68 |
20 | 0 | 10 | 16 | 24 | 37 | 50 | 68 | |
21 | 0 | 10 | 16 | 24 | 37 | 50 | 68 | |
23 | 0 | 10 | 16 | 24 | 38 | 51 | 69 | |
25 | 0 | 10 | 16 | 25 | 39 | 52 | 70 | |
32 | 0 | 11 | 17 | 27 | 42 | 57 | 73 | |
35 | 0 | 11 | 18 | 28 | 43 | 59 | 75 | |
35.01 | 0 | 11 | 18 | 29 | 44 | 59 | 77 | |
37 | 0 | 11 | 19 | 29 | 45 | 62 | 81 | |
38 | 0 | 11 | 19 | 30 | 46 | 64 | 83 | |
54 | 0 | 11 | 24 | 42 | 68 | 91 | 125 | |
56 | 0 | 11 | 25 | 44 | 70 | 95 | 129 | |
74 | 0 | 13 | 30 | 58 | 91 | 131 | 188 | |
78 | 0 | 13 | 31 | 60 | 95 | 138 | 202 | |
80 | 0 | 13 | 32 | 62 | 97 | 144 | 211 | |
81 | 0 | 13 | 32 | 64 | 100 | 147 | 215 | |
86 | 0 | 13 | 35 | 73 | 113 | 161 | 215 | |
94 | 0 | 13 | 35 | 73 | 113 | 161 | 215 | |
94.01 | 0 | 17 | 45 | 82 | 126 | 192 | 270 | |
100 | 0 | 17 | 45 | 82 | 126 | 192 | 270 |
The upshift and downshift lines are integrated into the Xcos block diagram using the 2-D interpolation blocks.
Inputs
Name | Value | Description |
AccrPedlPosn_prc | – | Acceleration pedal position [%] |
GearNr_z | – | Current gear [-] |
Parameters
Name | Value | Description |
GbxGearNr_z_X | (table) | Gear number array (axis) [-] |
AccrPedlPosnTrnsUpShift_prc_Y | (table) | Upshift accelerator pedal position array (axis) [%] |
AccrPedlPosnTrnsDownShift_prc_Y | (table) | Downshift accelerator pedal position array (axis) [%] |
VehVUpShiftLim_kph_Z | (table) | Upshift vehicle speed limit for current gear (map) [kph] |
VehVDownShiftLim_kph_Z | (table) | Downshift vehicle speed limit for current gear (map) [kph] |
Outputs
Name | Value | Description |
VehUpShiftLim_kph | – | Upshift vehicle speed limit for current gear [kph] |
VehDownShiftLim_kph | – | Downshift vehicle speed limit for current gear [kph] |
6.2 Shift scheduler (dynamic corrections)
In order to have more consistent gear changes we need to apply some corrections on the target gear coming from the shift maps. These correction are meant to improve the driveability of the vehicle and reduce the fuel consumption of the engine.
6.2.1 Minimum Time in Gear Correction
The purpose of minimum time in gear is to avoid having successive upshifts or downshifts. Since in this simulation, the gear change is instant (because there no model of the actuation system), we need to keep the current gear for a minimum time.
If there is a gear change detected, a Counter/Timer is started from an initial time. If the Timer hasn’t expired yet (reached 0), we do not allow another gear shift, even if the shift lines speed limits are crossed by the current vehicle speed.
The time delay (minimum time in gear) can be calibrated differently for upshifts or downshifts.
Inputs
Name | Value | Description |
GearNr_z | – | Current gear [-] |
GearNrRaw_z | – | Current gear (raw) [-] |
Parameters
Name | Value | Description |
TrnsUpGearMinT_s_C | 2 | Upshift minimum time in gear [s] |
TrnsDownGearMinT_s_C | 1 | Downshift minimum time in gear [s] |
Outputs
Name | Value | Description |
GearUpShiftDly_B | – | Upshift delay shift correction active [-] |
GearDownShiftDly_B | – | Downshift delay shift correction active [-] |
6.2.2 Engine Braking Correction
The purpose of this correction is to keep the transmission in the current gear, when the driver is fully releasing the accelerator pedal. Without this correction, if the vehicle speed is 100 kph and the accelerator pedal (throttle) position is 50 %, the current gear is 3rd gear. If there is a full lift from the accelerator pedal 0 %, the transmission will shift to 7th gear. This behaviour is not desirable.
Inputs
Name | Value | Description |
VehV_kph | – | Vehicle speed [kph] |
AccrPedlPosn_prc | – | Accelerator pedal position [%] |
Parameters
Name | Value | Description |
AccrPedlPosnMaxEngBrk_prc_C | 1 | Maximum accelerator pedal position for engine braking shift correction [%] |
VehVMaxEngBrk_kph_C | 10 | Minimum vehicle speed for engine braking shift correction [kph] |
Outputs
Name | Value | Description |
GearShiftStopEngBrk_B | – | Engine braking shift correction active [-] |
6.2.3 Tip In-Out Corrections
The purpose of this correction is to avoid gear shifts when the driver suddenly presses or releases the accelerator pedal. The rapid press on the acceleration pedal is called a tip-in event, while a sudden release of the accelerator pedal is called a tip-out event.
The gradient (rate of change) of the accelerator pedal is compared with two calibrate-able thresholds, one for tip-in event and the other for tip-out events. When these limits are exceeded, a flag is raised which blocks the gear shift.
The tip-in correction presented in this example is simplified for an easier understanding of the concept. In reality this correction needs to take into account the power reserve of the engine. If the power reserve of the engine is not sufficient to provide significant vehicle acceleration, a accelerator pedal tip-in should allow a downshift to take place.
The tip-out correction makes sense as it is, because a sudden release of the accelerator pedal means that the driver wants to slow down only and not to change gears. Therefore the current gear must be kept to allow the engine to brake (overrun).
Inputs
Name | Value | Description |
AccrPedlPosn_prc | – | Accelerator pedal position [%] |
Parameters
Name | Value | Description |
AccrPedlMinGrdt_prcps_C | -10 | Minimum accelerator pedal gradient threshold for shift inhibit [%/s] |
AccrPedlMaxGrdt_prcps_C | 10 | Maximum accelerator pedal gradient threshold for shift inhibit [%/s] |
Outputs
Name | Value | Description |
GearShiftStopTipOut_B | – | Accelerator pedal tip-out gear shift correction active [-] |
GearShiftStopTipIn_B | – | Accelerator pedal tip-in gear shift correction active [-] |
The values of the minimum and maximum pedal gradients are set to a small value to be able to visualise them during simulation. In reality the actual values can be 5-10 times higher.
6.2.4 Gear Calculation
The gear calculation takes into account the shift lines gear decision and all the dynamic corrections. If there is no correction active and the current vehicle speed is above/below the shift line speed limit, the current gear is incremented (upshift) or decremented (downshift).
This algorithm is relatively simple because all the gear changes are done sequentially. In reality the gears can be skipped, especially during a downshift. If there is a heavy braking event, a modern transmission can do for example a 6-4 downshift.
The current gear has a sample time delay. This is needed in order to avoid the algebraic loop with the shift line speed limit calculation.
Inputs
Name | Value | Description |
VehV_kph | – | Vehicle speed [kph] |
VehUpShiftLim_kph | – | Upshift vehicle speed limit for current gear [kph] |
VehDownShiftLim_kph | – | Downshift vehicle speed limit for current gear [kph] |
GearUpShiftDly_B | – | Upshift delay shift correction active [-] |
GearDownShiftDly_B | – | Downshift delay shift correction active [-] |
GearShiftStopEngBrk_B | – | Engine braking shift correction active [-] |
GearShiftStopTipOut_B | – | Accelerator pedal tip-out gear shift correction active [-] |
GearShiftStopTipIn_B | – | Accelerator pedal tip-in gear shift correction active [-] |
Outputs
Name | Value | Description |
GearNr_z | – | Current gear [-] |
GearNrRaw_z | – | Current gear (raw) [-] |