Open Loop Controller - Expression

Assigns an expression driver signal. The expression syntax should be consistent with MotionSolve. This expression is similar to a MotionView based open loop signal in execution. Driver assigns the expression to the MotionView signal attached at the signal channel specified in the block. The driver then uses the variable value of the signal to generate the signal.

[OPEN_LOOP_EXPRESSION]
TAG               = 'OPENLOOP'
TYPE              = 'EXPRESSION'
SIGNAL_CHANNEL    = 0 
EXPRESSION        = '5*SIN(TIME)'
[OPENLOOPCONTROLLER - EXPRESSION]
TAG Attr - string Required

<OPENLOOP>

TYPE Attr - string Required

<EXPRESSION>

SIGNAL_CHANNEL Attr - int Required
<0 to 4>
  • Similar to OPENLOOP - MotionView controller, internally uses solver variable at the specified index in the signal generator system.
  • All open loop signals should be linked to unique channel.
EXPRESSION Attr - string Required

Expression should be consistent with MotionSolve expression statements.

Parametric Expressions

When 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.

Example:

Throttle off cornering event
  • Maneuver 1
    Constant radius cornering, constant radius path with constant velocity - until roll angle reaches its maximum and stabilizes.
    Maneuver 2
    Step down the throttle while following the same path.
In this event, Maneuver 1 would typically consist of closed loop steering and throttle controllers. In Maneuver 2, the steering controller still remains the same, however the throttle controller is an open loop, type expression – ‘STEP(TIME – end time of maneuver 1 , 0, throttle value at the end of maneuver 1, 0.5, 0)’


Figure 1.
  • Curly braces {} – indicate driver will re-evaluate the expression at the start of the maneuver
  • {SIGNAL} is evaluated as VARVAL(signal solver variable id)
  • {SIGNAL_0} is evaluated as Signal Value at the end of last maneuver
  • {%SIGNAL} is evaluated as {SIGNAL} – {SIGNAL_0}
  • SIGNAL can be any of the predefined key words or user defined key words. In case of user defined key word, user needs to explicitly define the keyword in the MotionView interface.
List of predefined keywords:
KEY Signal
TIME Time
DIS Distance traveled
LONG_VEL Longitudinal velocity
LONG_ACC Longitudinal acceleration
LAT_VEL Lateral velocity
LAT_ACC Lateral acceleration
ROLL_ANGLE Roll angle
YAW_ANGLE Yaw angle
PITCH_ANGLE Pitch angle
ROLL_RATE Roll rate
YAW_RATE Yaw rate
PITCH_RATE Pitch rate
CG_X Vehicle CG x displacement
CG_Y Vehicle CG y displacement
CG_Z Vehicle CG z displacement
ENG_SPD Engine speed
STEER Steering angle
THROTTLE Throttle signal
BRAKE Brake signal
CLUTCH Clutch signal
GEAR Gear signal