Simple Drive Type A – step 0030 – December 2009

1 Purpose of SrrVehicleDriveA

SrrTrains Drives are a means to move trains over tracks and turnouts.

The basic task of a drive is to take the input values from a cab and calculate a driving force F (eff) from them.

Furthermore the drive will calculate the rotation of its axles and report it to the user (and the cab) via tachometer.

The simple vehicle drive type A takes a regulatingNotch as input value. The user can set a traction-velocity diagram (n traction-velocity diagrams for n positions of regulatingNotch).

If direction is false, the traction-velocity-diagram will be rotated by 180° around the origin.

You can find more information about Cabs, Controls and Drives in the concept paper. The concept paper is available on the Project Homepage and on the German Project Homepage.

2 User Interface of SrrVehicleDriveA (uiObj)

SrrVehicleDriveA is an online prototype that is available at http://members.chello.at/christoph.valentin/srr/SrrVehicleDriveA.x3d.

<ProtoDeclare name="SrrVehicleDriveA">

<ProtoInterface>

<field accessType='inputOutput' name='objType' type='SFString' value='SrrVehicleDriveA'/>

<field accessType='inputOutput' name='version' type='SFFloat' value='0.0030'/>

<field accessType='inputOutput' name='parentVehicle' type='SFNode'/>

<field accessType='inputOutput' name='childAxles' type='MFNode'/>

<field accessType='inputOutput' name='driveRadius' type='SFFloat' value="1.0"/>

<field accessType='inputOutput' name='driveAngle' type='SFFloat'/>

<field accessType='inputOnly' name='basicInitialization' type='SFInt32'/>

<field accessType='outputOnly' name='basicallyInitialized' type='SFNode'/>

<field accessType='inputOutput' name='numberOfKeys' type='SFInt32' value="3"/>

<field accessType='inputOutput' name='vau' type='MFFloat' value="-20 0 20, -20 0 20, -20 0 20"/>

<field accessType='inputOutput' name='zet' type='MFFloat' value="0 0 0, 4000 4000 0, 8000 8000 0"/>

<field accessType='inputOutput' name='regulatingNotch' type='SFInt32' value="0"/>

<field accessType='inputOutput' name='direction' type='SFBool' value="true"/>

<field accessType='outputOnly' name='eff' type='SFFloat' value="0.0"/>

<field accessType='inputOutput' name='tachometer' type='SFFloat' value="0.0"/>

</ProtoInterface>

The fields parentVehicle, childAxles, basicInitialization and basicallyInitialized are used in the SRR framework and in other SRR objects internally and need not be described here.

The user sets the driveRadius to enable transformations between velocity and angular velocity. driveAngle will output the angle of the drive for purposes of animation.

The values numberOfKeys, vau and zet define the traction-velocity diagrams for N positions of the regulating notch, zet (Z) is the driving force at velocity vau (v). The integer numberOfKeys is the number of key's and keyValue's, that will be set in a <ScalarInterpolator>-Node from the arrays zet and vau, every time, when regulatingNotch and/or direction changes.

The tachometer gives the rotating speed of the drive in m/s.