Overview
The engine model is primarily concerned with engine torque. It provides the torque to the clutch input. shaft. The engine rotation itself is calculated externally by the powertrain mod- ule.
As shown inFigure 8.10the main task of the engine model is to act as a torque source. The output of the engine model can be calculated with different approaches. This is why several subsystem types for the engine model are distinguished.
PowerTrain.ET.Kind = KindStr
Selection of the engine subsystem to use. The powertrain components library provides the following engine torque models:
Example PowerTrain.ET.Kind = Mapping Figure 8.10: Engine Model
Engine ECU Signals Accelerator Pedal Starter activated Ignition on/off Clutch TEngine q q˙, Engine
Engine Torque Model Description
Mapping Characteristics are used to determine the engine torque Linear Simple engine torque model, independent from engine speed DVA Engine torque is modified via DVA access
...
Engine Torque
8.3.1
Engine Torque Model ‘Mapping’
This engine torque model uses characteristics to describe the behavior of the engine torque depending on engine speed and throttle position.
Guidelines for configuring the engine torque map
A measured standard engine torque map usually does not cover parts below minimal and above maximal engine speed. For the usage with CarMaker it is essential that there are val- ues given above and below those boundaries.
Figure 8.11shows an engine torque map ‘prepared’ for the usage with CarMaker with extended boundaries. The standard speed range of this engine is 500 to 7000 rpm. Above 7000 rpm usually the throttle cutoff applies. This is realized through ramping down the full load characteristics to zero at 8000 rpm and extrapolating the drag load characteristic to 8000 rpm. Interim values for throttle positions should be equally spaced between full and drag load.
CarMaker
Model Check Engine Torque
Wed May 26 11:58:32 AM CEST 2004, Page 1
0 1000 2000 3000 4000 5000 6000 7000 8000 0 50 100 150 200 0 -50 -100 rotation speed [rpm] torque [Nm] Gas Pedal: 0% 10% 20% 30% 40% 50% 60% 70% 80% 90%
Engine Torque
The engine idle speed is designated to be approximately 900 rpm. In reality the engine has an idle speed controller to keep the engine running at the desired idle speed. To accomplish this behavior with CarMaker the drag load characteristic should have an area of positive torque values between 600 and 900 rpm.
Figure 8.12shows a cutout of the engine idle speed characteristic to establish a idle speed of approximately 900 rpm. Due to the zero crossing of the torque characteristics at 900 rpm higher speeds are slowed down due to negative torque and lower speeds are increased by the small amount of positive torque. Like in reality the engine stalls due to negative torque below 600 rpm. For other throttle values a smooth fading should be used (like in Figure 8.11).
Parameters
PowerTrain.ET.Mapping.Kind = KindStr This model supports two subsystems to be selected.
PowerTrain.ET.nIdle = value
Optional. If not defined the engine idle speed is determined out of the given characteristics. Figure 8.12: Drag load characteristic to set up engine idle speed
nEngine / rpm 0 TEngine/ Nm 1000 10 -10 PowerTrain.ET.Kind Description
linear2D A two dimensional engine characteristic map is used. Depends on engine speed and (driver-)gas.
DragFullLoad Two characteristic lines are used. One for full throttle and one for minimal throttle (depending from engine speed)
Engine Torque
PowerTrain.ET.Starter.Trq = value Optional. Default starter torque is 10Nm.
PowerTrain.ET.Starter.rotvOff = value
Optional. Turn off engine speed of the starter. If not given determined out of the given char- acteristics.
PowerTrain.ET.TrqKl15Off = value
Engine Torque
Additional Parameters for Mapping Kind ‘linear2D’
Iflinear2dis selected withPowerTrain.ET.Kindthe following parameters have to be specified:
PowerTrain.ET.Mapping.Amplify = value
Optional. Amplifies the output of the engine characteristic by a given factor. Default: 1.
PowerTrain.ET.Mapping.Data : value
Two dimensional characteristic for the engine torque mapping. Specifies blocks for equal speed and vary gas from min to max.
Syntax Infofile table mapping with 3 columns
<engine speed> <accelerator position> <engine torque>
Example PowerTrain.ET.Mapping.Data: 500 0.0 -90 500 0.5 -70 500 1 -50 ... 1000 0.0 0 1000 0.5 80 1000 1 150 ....
Engine Torque
Additional Parameters for Mapping Kind ‘DragFullLoad’
IfDragFullLoadis selected withPowerTrain.ET.Kindthe following parameters have to be specified:
PowerTrain.ET.Exponent = value
Transition from full load to drag load characteristic with a exponential function depending on throttle position.
• gas = 0 ... 1.0
• Exponent = 1 →linear • Exponent > 1→parabolic • Exponent < 1 →root shaped
PowerTrain.ET.DragPower.Amplify =value
Optional. Amplifies the output of the engine characteristic by a given factor. Default: 1.
PowerTrain.ET.DragPower = value Drag power characteristic.
PowerTrain.ET.FullLoadPower.Amplify = value
Optional. Amplifies the output of the engine characteristic by a given factor. Default: 1.
Syntax Infofile table mapping with 2 columns
<engine speed>[rpm] <engine torque> [Nm]
Example PowerTrain.ET.DragPower: 500.0 -10.0 600.0 0.0 700.0 5.0 800.0 0.0 1000.0 -10.0 2000.0 -20.0 3000.0 -30.0 4000.0 -40.0 5000.0 -50.0 6000.0 -60.0 7000.0 -70.0 8000.0 -80.0
Engine Torque
PowerTrain.ET.FullLoadPower
Full load power characteristic.
Syntax Infofile table mapping with 2 columns
<engine speed>[rpm] <engine torque> [Nm]
Example PowerTrain.ET.FullLoadPower: 500.0 10.0 1000.0 140.0 2000.0 155.0 3000.0 165.0 4000.0 180.0 4500.0 185.0 5000.0 182.0 6000.0 168.0 7000.0 130.0 8000.0 0.0
Engine Torque
8.3.2
Engine Torque Model ‘Linear’
PowerTrain.ET.nIdle = value Optional. Default engine idle speed: 1200rpm
PowerTrain.ET.Starter.Trq = value Optional. Default starter torque is 15Nm.
PowerTrain.ET.Starter.rotvOff = value
Optional. Turn off engine speed of the starter. If not given determined out of the given char- acteristics.
PowerTrain.ET.TrqKl15Off = value
Optional. Engine drag with ignition off. Default -80Nm.
PowerTrain.ET.SpeedRange = rotv_min rotv_max
Optional. Specifies the minimal and maximal Engine Speed. Below and above those speeds the engine torque is regulated down. A ramp function is used.
Example PowerTrain.ET.SpeedRange = 500 8000
PowerTrain.ET.PowerRatio = value
This specifies the maximum engine torque with full throttle. It is independently of the engine speed.
The engine speed is calculated by .
Example PowerTrain.ET.PowerRatio = 300
Engine Torque
8.3.3
Engine Torque Model ‘DVA’
This is a simple engine torque model. The engine torque only depends on the gas pedal position. There is no dependency on the rotation speed of the engine (as for a usual engine).
Parameters
PowerTrain.ET.Trq_Ext2A = value
The engine output torque directly depends on the driver gas pedal position (standardized) and is calculated by:
EngineTrq = PowerTrain.ET.Trq_Ext2A * Gas (EQ 36)
Default value: 100 Nm
The name of the UAQ you can overwrite by a DVA write is "PT.Engine.DVA.Trq_Ext2A".
Example PowerTrain.ET.Trq_Ext2A = 100
PowerTrain.ET.TrqKl15Off = value
Engine Torque
8.3.4
Engine Model Software Interfaces
Engine Controller
Usually vehicle dynamic controllers communicate with the engine controller. One reason is to make modifications to the present engine torque in order to increase driving stability. In an CarMaker/HIL approach without a having a real engine controller a functionality has to be implemented as a model that simulates the intervention of the vehicle dynamic controller to the engine torque.
This is realized in CarMaker with a user code function (usually in moduleUser.c)
Line 1 defines a static function EngineControl in module User.c. In order to make CarMaker to call this function in every simulation step its pointer has to be liked to the vari- ableVehicle.EngineControl. This is done in the functionUser_TestRun_Start. The finally modified engine torque has to be assigned at the end of EngineControlto the variable PowerTrain.Engine.Trq.
Listing 8.1: Usage of user code function EngineControl in User.c
1: tatic void EngineControl (void); 2:
3: int
4: User_TestRun_Start (void) 5: {
6: ...
7: /* activate an engine control software module */ 8: Vehicle.EngineControl = EngineControl; 9: ... 10: } 11: 12: /* 13: ** EngineControl () 14: **
15: ** Simulation model for an engine control ECU
16: ** Modify the engine torque (PowerTrain.Engine.Trq), in most cases 17: ** based on an static engine torque characteristic.
18: ** 19: ** Call:
20: ** - called after EngineTrq model (PowerTrain.Engine.Trq is assigned 21: ** with the output of EngineTrq model)
22: ** - pay attention to realtime condition 23: */ 24: 25: static void 26: EngineControl (void) 27: { 28: if (ConnectedIO == MyIO) { 29: ...
30: /* Modify engine torque */ 31: ...
32: PowerTrain.Engine.Trq = MyModifiedTorque;
33: }
Clutch