Step Steer

A Step Steer event simulates vehicle response to a sudden step input to the steering wheel. The steering input is a rotational motion or torque at the steering wheel or the input shaft to the steering gear. The standard output requests are included to measure vehicle response. Tire requests are included to understand tire forces during the event. A drive torque controller is added to maintain constant speed during the event to drive the vehicle forward. A plot template is available to plot the results.

A series of step steer tests (in both the left and right turn direction) at increasing steer angles can be used to characterize the vehicle understeer and lateral response.

Figure 1. Step Steer event


Figure 2. Top View of a Step Steer event


Figure 3. Vehicle Model with Body Graphics


Description

The sequence of steps in the event is shown in the table. Times shown in the table refer to the default values.
Time Description
0-2 second

(0->Steering Input start time)

Vehicle settles into steady state at the initial velocity entered on the event Form (default is 55 mph).
2-4 seconds

(Steering Input Start time-> Steering Input End time)

Steering angle is rapidly increased from 0 to the max steering value (default 60 degrees) using the prescribed function (sine, step or ramp).
4-8 seconds

(Steering Input End time-> Steering Input End Time + 4 seconds)

Steering is held at the max steering value while the vehicle responds. The end time can be changed in the event template if required.

This event is designed to work with a full vehicle model that has been built through the MotionView Assembly Wizard. The event should attach to the model automatically when added through the Task Wizard. It can be used with models built manually, as long as the attachment scheme in the event is strictly followed.

In this event, the vehicle is driven straight at an initial velocity of 55 mph for 2 seconds to reach steady state. From 2 to 4 seconds, the vehicle is steered from zero to the prescribed value (default is 60 degrees) using the function selected in the event form (sine, step or ramp). After 4 seconds, the steering wheel is held fixed at the same angle or torque until the end of the simulation.

The initial vehicle velocity, steering input start and end time, and maximum steering angle can be modified via the event form (shown below). The type of steering input can be input type angle or torque. There is a choice of three function types: Sine, Step, and Ramp, which describe the ramp from zero to the “stepped” input.

The default step input time is 2 seconds. Most steering tests are run with a faster input. The ISO 7401:2003 specification recommends the time between 10% and 90% of the steering wheel input be no more than 0.15 seconds. A steering event with a step time of 0.1 seconds (2.1-2.0) will meet these requirements. Extremely quick step inputs (under 0.02 seconds) may result in absurdly high forces in the steering system.

The nominal Steering Wheel Angle vs. Time plot is shown below:
Figure 4. Steering Wheel Angle vs. Time


Six types of modeling element containers are used to define the event (see below). Two sub-systems (Output Requests and a Drive torque controller) are also included in the event.

Attachments

The event uses the standard event attachment. The attachments resolve automatically if the model is built through the Model Wizard. The attachments contain the minimum data the event needs to run the analysis. The attachments are standard for most events.

Datasets

One dataset is used in the system and it contains the data used to describe the Step Steer event. The event allows you to set the initial vehicle velocity, steering input type (angle or torque), steering input start time and end time, maximum steering value and function type (sine, step or ramp). The wheel rotational velocities and ground Z coordinate are calculated values. You can edit the dataset values in the form.

Forces

The step steer consists of only one force, the steering torque. This force is used as input for the steering. If the steering input type selected is torque, then the motion is deactivated and force is used to turn the steering wheel.

Forms

The form is the only place that you should change the pulse steer event. Initial vehicle velocity, steering input start time and end time, and maximum steering value are the parameters that can be changed. The steering input can be either angle or torque as per the user requirement. The function type used for the step event can also be set and can be sine, step or ramp.

Joints

A ball joint is included in the Step Steer event. The joint attaches a dummy body to the steering rack. The joint is included to make certain events work in ADAMS. Attach the dummy body to the steering rack if building a model manually.

Motions

Three motions are included in the event. The steering motion is used in the event to steer the vehicle and acts on a revolute joint that connects the steering wheel to the vehicle body. If a steering column is not included in the model, the joint acts between the steering rack input shaft and the vehicle body. The motion is modified in the event template to steer the vehicle.

The front and rear wheel motions act on the wheel spindle revolute joints that connect the wheel hub to the knuckle. The motion is initially zero (fixing the wheels to the knuckle) so the model converges statically. The locking motions on the wheels are deactivated after convergence of the static analysis to allow the tires to rotate during the dynamic simulation.

Templates

A template is included in the Step Steer event task. The template is solver specific and only the MotionSolve template is documented. The template is inserted in the solver deck after the </Model> command and controls the execution of the event.

The template for this event is shown below:
<Deactivate
	element_type = "MOTION"
	element_id   = "{mot_rear_wheel.l.idstring}"
/>

<Deactivate
	element_type = "MOTION"
	element_id   = "{mot_rear_wheel.r.idstring}"
/>
{if (tire_dataset.opt_omega.ival ==2)}
<!--Initial static analysis -->

<Simulate
	analysis_type = "Static"
	end_time      = "0.0"
/>	
{endif}
<Deactivate
	element_type = "JPRIM"
	element_id   = "{j_clamp_1_body.idstring}"
/>

<Deactivate
	element_type = "JPRIM"
	element_id   = "{j_clamp_2_body.idstring}"
/>    

{if ds.inp_type.value == "Angle"}
  <Deactivate
	element_type = "FORCE"
	element_id   = "{tor_str.idstring}"
  />
{if ds.func_type.value == "Sine"}
<Motion_Joint
     id                = "{wh_motion.idstring}"
     expr              = "IF(TIME-{ds.str_time.value}:0,0,IF(TIME-{ds.end_time.value}:{-ds.str_value.value/2}D-({-ds.str_value.value/2}D)*COS(2*PI*{0.5/(ds.end_time.value-ds.str_time.value)}*(TIME-{ds.str_time.value})),{-ds.str_value.value}D,{-ds.str_value.value}D))"
/>
{elseif ds.func_type.value == "Step"}
<Motion_Joint
     id                = "{wh_motion.idstring}"
     expr              = "STEP(TIME,{ds.str_time.value},0.0,{ds.end_time.value},{-ds.str_value.value}D)"
/>
{else}
<Motion_Joint
     id                = "{wh_motion.idstring}"
     expr              = "IF(TIME-{ds.str_time.value}:0,0,IF(TIME-{ds.end_time.value}:{-ds.str_value.value/(ds.end_time.value-ds.str_time.value)}D*(TIME-{ds.str_time.value}),{-ds.str_value.value}D,{-ds.str_value.value}D))"
/>
{endif}

{else}
<Deactivate
 	element_type = "MOTION"
 	element_id   = "{wh_motion.idstring}"
/>
{if ds.func_type.value == "Sine"}
<Force_Scalar_TwoBody
     id                = "{tor_str.idstring}"
     type		 = "Torque"
     val_expression    = "IF(TIME-{ds.str_time.value}:0,0,IF(TIME-{ds.end_time.value}:{-ds.str_value.value/2}-({-ds.str_value.value/2})*COS(2*PI*{0.5/(ds.end_time.value-ds.str_time.value)}*(TIME-{ds.str_time.value})),{-ds.str_value.value},{-ds.str_value.value}))"
/>
{elseif ds.func_type.value == "Step"}
<Force_Scalar_TwoBody
     id                = "{tor_str.idstring}"
     type		 = "Torque"
     val_expression    = "STEP(TIME,{ds.str_time.value},0.0,{ds.end_time.value},{-ds.str_value.value})"
/>
{else}
<Force_Scalar_TwoBody
     id                = "{tor_str.idstring}"
     type		 = "Torque"
     val_expression    = "IF(TIME-{ds.str_time.value}:0,0,IF(TIME-{ds.end_time.value}:{-ds.str_value.value/(ds.end_time.value-ds.str_time.value)}*(TIME-{ds.str_time.value}),{-ds.str_value.value},{-ds.str_value.value}))"
/>
{endif}
{endif}

<Simulate
        analysis_type  = "Transient"
        end_time       = "{ds.end_time.value+4.0}" 
        num_steps      = "{(ds.end_time.value+4.0)*100}"
/>        
 <Stop/>

References

ISO +7401-2003 - Road vehicles - Lateral transient response test methods - Open-loop test methods.