MV-8002: Multi-Maneuver Events
In this tutorial, you will learn how to define end conditions for a maneuver or a sub-event, write parametric expressions, and to define events as multiple sub-events executed sequentially
- End conditions
- Conditions to end a particular maneuver before given simulation end time.
- Multi-maneuver events
- Events consisting for more than one maneuver – these maneuvers are executed sequentially.
- Parametric Expressions
- In a multi-maneuver event, expressions need to be re-evaluated before
the start of the maneuver in order to maintain the continuity of the signals.
- { Expression in Curly Braces }
- Instruction to driver to evaluate the expression before giving it to MotionSolve
- {SIGNAL}
- Evaluated as VARVAL(signal solver variable id)
- {SIGNAL_0}
- Evaluated as Signal Value at the end of last maneuver
- {%SIGNAL}
- Evaluated as {SIGNAL} – {SIGNAL_0}
Assemble the Vehicle
Follow the instructions in Step #1 of tutorial MV-8000 to create the vehicle
with the topology as provided below.
Page | Label | Selection |
---|---|---|
1 | Model type | Full vehicle with advanced driver |
2 | Driveline configuration | Front wheel drive |
3 | Vehicle body | Body |
3 | Front subframe | None |
3 | Front suspension | Frnt macpherson susp (1 pc. LCA) |
3 | Steering linkages | Rackpin steering |
3 | Rear subframe | None |
3 | Rear suspension | Rear quadlink susp |
3 | Powertrain | Linear torque map powertrain |
3 | Tires | AutoTires |
4 | Steering column | Steering column 1 (not for Abaqus) |
4 | Steering boost | None |
5 | Front struts | Frnt strut (with inline jts) |
5 | Front stabilizer bars | Frnt stabar with links |
5 | Rear struts | Rear strut (with inline jts) |
5 | Rear stabilizer bars | Rear stabar with links |
6 | Front jounce bumpers | None |
6 | Front rebound bumpers | None |
6 | Rear jounce bumpers | None |
6 | Rear rebound bumpers | None |
7 | Disk brakes | Disk brakes |
7 | Front driveline | Independent fwd |
8 | Aerodynamic Forces | None |
9 | ABS/ESP System | None |
9 | Traction Control | None |
10 | Drive system | Altair Driver |
11 | Finish |
Adding Driver Analysis
-
Use the Task Wizard to load the driver analysis.
-
Select the AltairDriverFile as the Event Type and click
OK.
Write the Altair Driver File (ADF)
We will model a Fish Hook Event using three sequential maneuvers.
-
Open any text editor, copy and paste the following text, and save the text file
as multievents.adf.
Important: All blank lines must be removed prior to saving the file!
Be sure to read through the comments for a better understanding on what is written in the ADF.
$-----------------------------------------------------------------ALTAIR_HEADER [ALTAIR_HEADER] FILE_TYPE = 'ADF' FILE_VERSION = 2.0 FILE_FORMAT = 'ASCII' $--------------------------------------------------------------------------UNITS [UNITS] (BASE) {length force angle mass time} 'meter' 'newton' 'radians' 'kg' 'sec' $--------------------------------------------------------------VEHICLE_IC [VEHICLE_INITIAL_CONDITIONS] VX0 = 17.5 VY0 = 0.0 VZ0 = 0.0 $--------------------------------------------------------------STEERING_STANDARD [STEER_STANDARD] $Upper and lower bounds are kept to match the event requirement of saturating at $270 deg and -540 deg respectively MAX_VALUE = 4.712 MIN_VALUE = -9.425 SMOOTHING_FREQUENCY = 5 INITIAL_VALUE = 0.0 $--------------------------------------------------------------THROTTLE_STANDARD [THROTTLE_STANDARD] MAX_VALUE = 1 MIN_VALUE = 0 SMOOTHING_FREQUENCY = 5 INITIAL_VALUE = 0.0 $---------------------------------------------------------------BRAKING_STANDARD [BRAKE_STANDARD] MAX_VALUE = 1 MIN_VALUE = 0 SMOOTHING_FREQUENCY = 5 INITIAL_VALUE = 0.0 $-----------------------------------------------------------------MANEUVERS_LIST [MANEUVERS_LIST] {name simulation_time h_max print_interval} 'GO_STRAIGHT' 2.0 0.01 0.1 'LEFT_TURN' 10.0 0.001 0.1 'RIGHT_TURN' 10.0 0.001 0.1 $-----------------------------------------------------------------MANEUVER_1 [GO_STRAIGHT] TASK = 'STANDARD' (CONTROLLERS) {DRIVER_SIGNAL PRIMARY_CONTROLLER ADDITIONAL_CONTROLLER} STEER OL_CONSTANT_STEER NONE THROTTLE FEED_FORWARD_TRACTION NONE BRAKE FEED_FORWARD_TRACTION NONE $---------------------------------------------------------------------MANEUVER_2 [LEFT_TURN] TASK = 'STANDARD' (CONTROLLERS) {DRIVER_SIGNAL PRIMARY_CONTROLLER ADDITIONAL_CONTROLLER} STEER OL_LEFT_STEER NONE THROTTLE FEED_FORWARD_TRACTION NONE BRAKE FEED_FORWARD_TRACTION NONE $The TIME end condition defined below will trigger the Roll Rate end condition after the time value (3s) $We want to end the left turn maneuver if the roll rate reaches steady state in other words, d(Roll rate)/dt = 0 any time after the time value (3s $ Operator definition: SS = Steady State, GT = Greater Than (END_CONDITIONS) {SIGNAL GROUP ABS OPERATOR VALUE TOLERANCE WATCH_TIME} TIME 0 Y GT 3 0 0 ROLL_RATE 1 Y SS 0 0.005 0.5 $---------------------------------------------------------------------MANEUVER_3 [RIGHT_TURN] TASK = 'STANDARD' (CONTROLLERS) {DRIVER_SIGNAL PRIMARY_CONTROLLER ADDITIONAL_CONTROLLER} STEER OL_RIGHT_STEER NONE THROTTLE FEED_FORWARD_TRACTION NONE BRAKE FEED_FORWARD_TRACTION NONE $--------------------------------------STEER for Maneuver 1 [OL_CONSTANT_STEER] TAG = 'OPENLOOP' TYPE = 'CONSTANT' VALUE = 0 $--------------------------------------STEER for Maneuver 2 $Ramp up the steering wheel @ 360 deg per second [OL_LEFT_STEER] TAG = 'OPENLOOP' TYPE = 'EXPRESSION' SIGNAL_CHANNEL = 0 EXPRESSION = '{STEER_0} + {%TIME}*PI*2' $--------------------------------------STEER for Maneuver 3 [OL_RIGHT_STEER] TAG = 'OPENLOOP' TYPE = 'EXPRESSION' SIGNAL_CHANNEL = 0 EXPRESSION = '{STEER_0} - {%TIME}*PI*2' $--------------------------------------THROTTLE and BRAKE controller for entire event [FEED_FORWARD_TRACTION] TAG = 'FEEDFORWARD' TYPE = 'FOLLOW_VELOCITY' LOOK_AHEAD_TIME = 0.5 DEMAND_SIGNAL = 'DEMAND_VEL' $----------------Demand Velocity [DEMAND_VEL] TYPE = 'CONSTANT' VALUE = 17.5
-
Right-click on AltairDriverFile and select
Edit Event.
-
Enter the multievent.adf file and run the simulation.
-
Plot in HyperGraph the Steering Angle and Roll Rate.
The plots show the Maneuver 2 stopping when the roll rate is consistently 0 (with mentioned tolerance) for 0.5 seconds after the 3s. The simulation then changes to the Maneuver 3 with the vehicle turning to the right as specified in the multievent.adf.