

The communicator: | Entity class: | From minor role: | Matching name: |
|---|---|---|---|
cis_steering_wheel_angle | solver_variable | inherit | steering_wheel_angle |
cis_brake_demand | solver_variable | inherit | brake_demand |
cis_throttle_demand | solver_variable | inherit | throttle_demand |
cis_brake_bias | real | inherit | brake_bias |
cis_power_demand_EM_front | solver_variable | inherit | power_demand_EM_front |
cis_power_demand_EM_rear | solver_variable | inherit | power_demand_EM_rear |
cis_max_torque_EM_front | solver_variable | inherit | max_torque_EM_front |
cis_max_torque_EM_rear | solver_variable | inherit | max_torque_EM_rear |
cis_longitudinal_velocity | solver_variable | inherit | longitudinal_velocity |
cis_left_front_wheel_omega | solver_variable | inherit | left_front_wheel_omega |
cis_right_front_wheel_omega | solver_variable | inherit | right_front_wheel_omega |
cis_left_rear_wheel_omega | solver_variable | inherit | left_rear_wheel_omega |
cis_right_rear_wheel_omega | solver_variable | inherit | right_rear_wheel_omega |
cos_throttle_demand_EM_front | solver_variable | inherit | throttle_demand_EM_front |
cos_throttle_demand_EM_rear | solver_variable | inherit | throttle_demand_EM_rear |
cos_brake_demand_front | solver_variable | inherit | brake_demand_front |
cos_brake_demand_rear | solver_variable | inherit | brake_demand_rear |
cos_throttle_demand_ECU | solver_variable | inherit | throttle_demand_ECU |
cos_brake_demand_ECU | solver_variable | inherit | brake_demand_ECU |
Pinputs from Control System |
|---|
brake_demand_front |
brake_demand_rear |
throt_demand_EM_front |
throt_demand_EM_rear |
steering_wheel_angle |
throttle_demand_SDI |
brake_demand_SDI |
left_front_wheel_omega |
right_front_wheel_omega |
left_rear_wheel_omega |
right_rear_wheel_omega |
longitudinal_velocity |
max_brake_torque_front |
max_brake_torque_rear |
front_brake_bias |
front_drive_bias |
max_torque_EM_front |
max_torque_EM_rear |
electric_power_demand_front |
electric_power_demand_rear |
Notes: | Please refer following control system models created in Easy5. These are available in evhybrid_shared database under table external_system_libraries.tbl. ■battery_management_regen_ECU..ezmf ■simple_electric_motor.ezmf ■induction_motor_PWM.ezmf The control system ECU logic is as follows: 1. SDI driving torque is divided for front/rear throttle_demand_front = MIN(100,1*throttle_demand_from_SDI*front_drive_bias) throttle_demand_rear = MIN(100,1*throttle_demand_from_SDI*(1-front_drive_bias)) 2. SDI braking torque is divided for front/rear brake_demand_front = brake_demand_from_SDI*front_brake_bias brake_demand_rear = brake_demand_from_SDI*(1-front_brake_bias) 3. If regenerative flag is On then compute theoretical braking torque demand from the SDI brake demand brake_torque_demand_front=front_brake_bias*brake_demand_from_SDI/100*max_brake_torque_front brake_torque_demand_rear=(1-front_brake_bias) * brake_demand_from_SDI / 100 * max_brake_torque_rear 4. Electric motor brakes, no mechanical brake Computes part of the braking torque demand to be applied by the electric motor a. If brake_torque_demand_front is less than or equal to (abs(max_torque_EM_front) * 0.5 * final_drive_ratio)) then brake_torque_EM_front=brake_torque_demand_front/(0.5*final_drive_ratio) //*** electric brake front brake_demand_front = 0 //*** no mechanical brake front b. If brake_torque_demand_rear is less than or equal to (abs(max_torque_EM_rear) * 0.5 * final_drive_ratio)) then brake_torque_EM_rear=brake_torque_demand_rear/(0.5*final_drive_ratio) //*** electric brake rear brake_demand_rear = 0 //*** no mechanical brake rear |
Notes: | 5. Maximum electric motor brake and partial mechanical brake a. If brake_torque_demand_front is greater than (abs(max_torque_EM_front)*0.5*final_drive_ratio)) brake_torque_EM_front = abs(max_torque_EM_front) //*** electric brake front brake_demand_front =100 * (brake_torque_demand_front - brake_torque_EM_front * (0.5*final_drive_ratio)) brake_demand_front = brake_demand_front / max_brake_torque_front //*** mechanical brake front b. Similarly, for rear If brake_torque_demand_rear is greater than (abs(max_torque_EM_rear)*0.5*final_drive_ratio)) brake_torque_EM_rear = abs(max_torque_EM_rear) //*** electric brake rear brake_demand_rear =100 * (brake_torque_demand_rear - brake_torque_EM_rear * (0.5*final_drive_ratio)) brake_demand_rear = brake_demand_rear / max_brake_torque_rear //*** mechanical brake front 6. Battery management Total power demand = front motor power demand + rear motor power demand Distance travelled in km= derivative of (-VX/1E6) Energy consumed = derivative of (Total power demand/3600/1000) Autonomy = min(450, max(0.01,dist travelled in km) / (max(0.001,total energy consumed))) Autonomy = battery_energy_stored * autonomy |


N | Control System Inputs | Units |
|---|---|---|
1 | SDI_brake_demand | no units |
2 | ECU_brake_demand_fl | no units |
3 | ECU_brake_demand_fr | no_units |
4 | ECU_brake_demand_rl | no units |
5 | ECU_brake_demand_rr | no_units |
6 | wheel_speed_fl | rad/s |
7 | wheel_speed_fr | rad/s |
8 | wheel_speed_rl | rad/s |
9 | wheel_speed_rr | rad/s |
10 | body_long_vel | m/s |
11 | body_lat_accel | m/s2 |
12 | body_yaw_rate | rad/s |
N | Control System Outputs | Units |
|---|---|---|
1 | ESC_status | no units |
2 | ABS_brake_demand_fl | no units |
3 | ABS_brake_demand_fr | no_units |
4 | ABS_brake_demand_rl | no units |
5 | ABS_brake_demand_rr | no_units |
N | Control System Inputs | Units |
|---|---|---|
1 | SDI_steering_wheel_angle | rad |
2 | SDI_throttle_demand | no units |
3 | SDI_brake_demand | no units |
4 | SDI_transmission_demand | no units |
5 | SDI_clutch_demand | no units |
6 | wheel_speed_fl | rad/s |
7 | wheel_speed_fr | rad/s |
8 | wheel_speed_rl | rad/s |
9 | wheel_speed_rr | rad/s |
10 | ESC_status | no units |
11 | body_long_vel | m/s |
12 | body_lat_accel | m/s2 |
13 | body_yaw_rate | rad/s |
14 | max_torque_EM_front | N.m |
15 | max_torque_EM_rear | N.m |
16 | current_demand_front | no units |
17 | current_demand_rear | no units |
N | Control System Outputs | Units |
|---|---|---|
1 | ECU_brake_demand_fl | no units |
2 | ECU_brake_demand_fr | no units |
3 | ECU_brake_demand_rl | no_units |
4 | ECU_brake_demand_rr | no units |
5 | ECU_throttle_demand_EM_front | no_units |
6 | ECU_throttle_demand_EM_rear | no_units |
7 | battery_voltage | no units |
8 | battery_SOC | no units |
9 | autonomy_KM | no units |
N | Control System Inputs | Units |
|---|---|---|
1 | ECU_throttle_demand | no units |
2 | rotor_velocity | rad/s |
3 | battery_voltage | no units |
N | Control System Outputs | Units |
|---|---|---|
1 | torque | N.m |
2 | max_torque | N.m |
3 | current_demand | no units |
Notes: | Please refer following control system models created in Easy5. These are available in table external_system_libraries.tbl under evhybrid_shared database. ■regen_ECU_for_adams_mechatronics.ezmf ■ABS_and_ESC_model.ezmf ■front_motor_for_adams_mech.ezmf ■rear_motor_for_adams_mech.ezmf |


The transducer signals | Takes the value: | Its units are: |
|---|---|---|
ues_cst_wheel_speed_fl | Run time expression | Angular Velocity |
ues_cst_wheel_speed_fr | Run time expression | Angular Velocity |
ues_cst_wheel_speed_rl | Run time expression | Angular Velocity |
ues_cst_wheel_speed_rr | Run time expression | Angular Velocity |
The actuators signals | Takes the value: | Its units are: |
|---|---|---|
ues_csa_ABS_brake_demand_fl | Run time expression | no units |
ues_csa_ABS_brake_demand_fr | Run time expression | no units |
ues_csa_ABS_brake_demand_rl | Run time expression | no units |
ues_csa_ABS_brake_demand_rr | Run time expression | no units |

The parameter: | Takes the value: | Its units are: |
|---|---|---|
pvs_aero_drag_active | Integer | No units |
pvs_aero_frontal_area | Real | Area |
pvs_air_density | Real | Density |
pvs_drag_coefficient | Real | No units |
The transducer signals | Takes the value: | Its units are: |
|---|---|---|
ues_cst_body_yaw_rate | Run time expression | Angular Velocity |
ues_cst_body_long_vel | Run time expression | Velocity |
ues_cst_body_lat_accel | Run time expression | Acceleration |
Note: | The echassis template is inherited from the rigid chassis template (_rigid_chassis), but with different trim mass and shell graphic geometry. |



The parameter: | Takes the value: | Its units are: | Integer |
|---|---|---|---|
pvs_drive_torque_bias_front | Integer | No units | Nominal percentage of drive torque sent to the front axle (1 fwd, 0 rwd) This is only used for computation of the optimum speed profile prior to the dynamic Adams simulation in case of SmartDriver event. Note: This variable is not used for distribution of torque for front and rear axle. |
pvs_powertrain_config | Integer | No units | (1 = FWD, 2 = RWD, 3 = AWD) |
pvs_max_throttle | Integer | No units | 100 |
phs_kinematic_flag | Integer | No units | Flag that determines if kinematic joints or bushings are active |
pvs_front_motor_torque_scale_factor | Integer | No units | 0 - no torque to front motor 1 - 100 % torque |
pvs_rear_motor_torque_scale_factor | Integer | No units | 0 - no torque to rear motor 1 - 100 % torque |
pvs_epowertrain_type | Integer | No units | 1 – additional flag to define powertrain type |
The communicator: | Entity class: | From minor role: | Matching name: |
|---|---|---|---|
ci[lr]_[fr]_diff_tripot_loc | location | inherit | tripot_to_differential |
ci[lr]_[fr]_tire_force | force | inherit | tire_force |
cis_clutch_demand | solver_variable | inherit | clutch_demand |
cis_[fr]_engine_to_subframe | mount | inherit | engine_to_subframe |
cis_[fr]_powertrain_to_body | mount | inherit | powertrain_to_body |
cis_sse_diff1 | diff | inherit | sse_diff1 |
cis_throttle_demand | solver_variable | inherit | throttle_demand |
cis_transmission_demand | solver_variable | inherit | transmission_demand |
cis_regenerative_demand | solver_variable | inherit | regenerative_demand |
The communicator: | Entity class: | To minor role: | Matching name: |
|---|---|---|---|
cos_drive_torque_bias_front | parameter_real | inherit | drive_torque_bias_front |
co[lr]_[fr]_tripot_to_differential | mount | inherit | tripot_to_differential |
cos_transmission_spline | spline | inherit | transmission_spline |
cos_transmission_input_omega | solver_variable | inherit | transmission_input_omega |
cos_motor_rpm | solver_variable | inherit | engine_rpm |
cos_motor_speed | parameter_real | inherit | engine_speed |
cos_max_motor_driving_torque | solver_variable | inherit | engine_maximum_driving_torque |
cos_max_motor_braking_torque | solver_variable | inherit | engine_maximum_braking_torque |
cos_max_gears | parameter_integer | inherit | max_gears |
cos_max_throttle | parameter_real | inherit | max_throttle |
cos_powertrain_type | parameter_integer | inherit | gse_powertrain_type |
The actuator signals | Takes the value: | Its units are: |
|---|---|---|
ues_csa_front/rear_motor_regen_torque | Run time expression | torque |
ues_csa_front/rear_motor_driving_torque | Run time expression | torque |
ues_csa_front/rear_motor_max_driving_torque | Run time expression | torque |
ues_csa_front/rear_motor_max_braking_torque | Run time expression | torque |
The transducer signals | Takes the value: | Its units are: |
|---|---|---|
ues_cst_front/rear_motor_deg_s | Run time expression | Angular Velocity |
ues_cst_brake_demand | Run time expression | user |
ues_cst_throttle_demand | Run time expression | user |



The parameter: | Takes the value: | Its units are: | Integer |
|---|---|---|---|
pvs_drive_torque_bias_front | Integer | No units | nominal percentage of drive torque sent to the front axle (1 fwd, 0 rwd) This is only used for computation of the optimum speed profile prior to the dynamic Adams simulation in case of SmartDriver event. Note: This variable is not used for distribution of torque for front and rear axle. |
pvs_powertrain_config | Integer | No units | (1 = FWD, 2 = RWD, 3 = AWD) |
pvs_max_throttle | Integer | No units | 100 |
phs_kinematic_flag | Integer | No units | Flag that determines if kinematic joints or bushings are active |
pvs_motor_rev_limit | real | No units | 8000 |
pvs_motor_idle_speed | real | No units | 1000.0 |
pvs_epowertrain_type | Integer | No units | 2 – additional flag to define powertrain type |
The communicator: | Entity class: | From minor role: | Matching name: |
|---|---|---|---|
ci[lr]_[fr]_diff_tripot | location | inherit | tripot_to_differential |
ci[lr]_[fr]_tire_force | force | inherit | tire_force |
cis_clutch_demand | solver_variable | inherit | clutch_demand |
cis_[fr]_engine_to_subframe | mount | inherit | engine_to_subframe |
cis_[fr]_powertrain_to_body | mount | inherit | powertrain_to_body |
cis_sse_diff1 | diff | inherit | sse_diff1 |
cis_throttle_demand | solver_variable | inherit | throttle_demand |
cis_transmission_demand | solver_variable | inherit | transmission_demand |
cis_throttle_demand_EM_front/rear | solver_variable | inherit | throttle_demand_EM_front |
The communicator: | Entity class: | To minor role: | Matching name: |
|---|---|---|---|
cos_drive_torque_bias_front | parameter_real | inherit | drive_torque_bias_front |
co[lr]_[fr]_tripot_to_differential_front/rear | mount | inherit | tripot_to_differential |
cos_motor_map | spline | inherit | engine_map |
cos_motor_idle_rpm | parameter_real | inherit | engine_idle_rpm |
cos_motor_revlimit_rpm | parameter_real | inherit | engine_revlimit_rpm |
cos_motor_stall_rpm | parameter_real | inherit | engine_stall_rpm |
cos_max_engine_driving_torque | solver_variable | inherit | engine_maximum_driving_torque |
cos_max_engine_braking_torque | solver_variable | inherit | engine_maximum_braking_torque |
cos_max_gears | parameter_integer | inherit | max_gears |
cos_max_throttle | parameter_real | inherit | max_throttle |
cos_powertrain_type | parameter_integer | inherit | gse_powertrain_type |
cos_motor_speed_gse | solver_variable | inherit | motor_speed_gse |
cos_motor_rpm_gse | solver_variable | inherit | motor_rpm_gse |
cos_diff_ratio_gse | parameter_real | inherit | diff_ratio |


The joint: | Connects the part: | To the part: |
|---|---|---|
jo[lr]fix_front_housing_to_knuckle | ge[lr]_front_wheel_housing | mt[lr]_front_suspension_upright |
jo[lr]rev_front_rotor_to_housing | ge[lr]_front_wheel_rotor | ge[lr]_front_wheel_housing |
jo[lr]fix_rear_housing_to_knuckle | ge[lr]_rear_wheel_housing | mt[lr]_rear_suspension_upright |
jo[lr]rev_rear_rotor_to_housing | ge[lr]_rear_wheel_rotor | ge[lr]_rear_wheel_housing |
The parameter: | Takes the value: | Its units are: | Integer |
|---|---|---|---|
pvs_drive_torque_bias_front | Integer | No units | Nominal percentage of drive torque sent to the front axle (1 fwd, 0 rwd This is only used for computation of the optimum speed profile prior to the dynamic Adams simulation in case of SmartDriver event. Note: This variable is not used for distribution of torque for front and rear axle.) |
pvs_powertrain_config | Integer | No units | (1 = FWD, 2 = RWD, 3 = AWD) |
pvs_max_throttle | Integer | No units | 100 |
phs_kinematic_flag | Integer | No units | Flag that determines if kinematic joints or bushings are active |
pvs_front_motor_torque_scale_factor | Integer | No units | 0 - no torque to front motor 1 - 100 % torque |
pvs_rear_motor_torque_scale_factor | Integer | No units | 0 - no torque to rear motor 1 - 100 % torque |
The communicator: | Entity class: | From minor role: | Matching name: |
|---|---|---|---|
ci[lr]_[fr]_tire_force | force | inherit | tire_force |
cis_clutch_demand | solver_variable | inherit | clutch_demand |
ci[lr]_front_suspension_upright | mount | inherit | suspension_upright |
ci[lr]_rear_suspension_upright | mount | inherit | suspension_upright |
cis_sse_diff1 | diff | inherit | sse_diff1 |
cis_throttle_demand | solver_variable | inherit | throttle_demand |
cis_transmission_demand | solver_variable | inherit | transmission_demand |
cis_regenerative_demand | solver_variable | inherit | regenerative_demand |
The communicator: | Entity class: | To minor role: | Matching name: |
|---|---|---|---|
cos_drive_torque_bias_front | parameter_real | inherit | drive_torque_bias_front |
cos_transmission_spline | spline | inherit | transmission_spline |
cos_transmission_input_omega | solver_variable | inherit | transmission_input_omega |
cos_motor_rpm | solver_variable | inherit | engine_rpm |
cos_motor_speed | parameter_real | inherit | engine_speed |
cos_max_motor_driving_torque | solver_variable | inherit | engine_maximum_driving_torque |
cos_max_motor_braking_torque | solver_variable | inherit | engine_maximum_braking_torque |
cos_max_gears | parameter_integer | inherit | max_gears |
cos_max_throttle | parameter_real | inherit | max_throttle |
cos_powertrain_type | parameter_integer | inherit | gse_powertrain_type |
The actuator signals | Takes the value: | Its units are: |
|---|---|---|
ues_csa_front/rear_motor_regen_torque | Run time expression | torque |
ues_csa_front/rear_motor_driving_torque | Run time expression | torque |
ues_csa_front/rear_motor_max_driving_torque | Run time expression | torque |
ues_csa_front/rear_motor_max_braking_torque | Run time expression | torque |
The transducer signals | Takes the value: | Its units are: |
|---|---|---|
ues_cst_front/rear_motor_deg_s | Run time expression | Angular Velocity |
ues_cst_brake_demand | Run time expression | user |
ues_cst_throttle_demand | Run time expression | user |


,
, and
(gears number of teeth) are constraining the kinematic velocity ratios:

.
.The parameter: | Takes the value: | Its units are: | Integer |
|---|---|---|---|
pvs_max_throttle | Integer | No units | 100 |
pvs_rear_motor_torque_scale_factor | Integer | No units | 0 - no torque to rear motor 1 - 100% torque |
pvs_hybrid_mode | Integer | No units | 1 – Hybrid 2 – Engine only 3 – eMotor only |
pvs_no_of_teeths_planet_gear | Integer | No units | Planetary gear number of teeth |
pvs_no_of_teeths_ring_gear | Integer | No units | Ring gear number of teeth |
pvs_no_of_teeths_sun_gear | Integer | No units | Sun gear number of teeth |
pvs_rpm_control_gain | Real | No units | ICE RPM control loop gain |
pvs_lock_damping | Real | Torsion Damping | Sun/Ring lock damping |
pvs_lock_stiffness | Real | Torsion Stiffness | Sun/Ring lock stiffness |
The actuator signals | Takes the value: | Its units are: |
|---|---|---|
ues_csa_throttle_demand_EV | Run time expression | user |
The transducer signals | Takes the value: | Its units are: |
|---|---|---|
ues_cst_rear_motor_deg_s | Run time expression | Angular Velocity |
ues_cst_ICE_rpm | Run time expression | user |
ues_cst_throttle_demand | Run time expression | Angular Velocity |
ues_cst_longitudinal_velocity | Run time expression | Velocity |