WOLFRAM SYSTEM MODELER

JoystickForceResponse

Model simulating response of three joystick designs to circularly varying test force

Diagram

Wolfram Language

In[1]:=
SystemModel["EducationExamples.MechanicalEngineering.Joystick.JoystickForceResponse"]
Out[1]:=

Information

This model compares the response of three analog joysticks to a circularly varying test force. Each joystick has a handle re-centering mechanism based on a symmetrical arrangement of a different number of tension springs.

The other model in this example is JoystickReturnTrajectory, which compares the free return trajectory of the three joysticks.

Hierarchical Modeling

The joystick model is constructed hierarchically. Double-click on a component such as fourSpringReturn to see its model diagram. Inside fourSpringReturn double-click on one of the tension springs to see its model diagram, and so on:

hierarchical

Simulation & Animation

To simulate the model and view a 3D animation of it, follow the steps below:

Click the Simulate button:simCenter

Click the Animate button: animate

Use your mouse or trackpad to drag the animation into a good angle, and zoom in with your scroll wheel or by using the trackpad. Then click the play button to play the animation.

The animation shows the response of the joystick handles to a test force that attempts to trace out a circle:

Note that the response of the joysticks is not perfectly circular. The joysticks with a larger number of symmetrically spaced springs (four or six) trace out a path that is more nearly circular.

Visualization

After simulating the model, look at the stored plots to see the path traced out by the joysticks.

You can see that the six-spring arrangement leads to the most circular force response.

By simulating the other model in this example, JoystickReturnTrajectory, you can also obtain the following parametric plots of the trajectory of each joystick as it re-centers itself after being displaced:

animation

You can see that the six-spring arrangement leads to the most linear return trajectory.

Parameters (2)

appliedForce

Value: 0.1

Type: Force (N)

Description: Force applied on the joysticks

springConstants

Value: 100

Type: TranslationalSpringConstant (N/m)

Description: Base spring constant of the joystick springs

Components (26)

world

Type: World

Description: World coordinate system + gravity field + default animation definition

joystickJoint1

Type: JoystickJoint

Description: Two degree-of-freedom joystick joint

bodyCylinder1

Type: BodyCylinder

Description: Rigid body with cylinder shape. Mass and animation properties are computed from cylinder data and density (12 potential states)

bodyCylinder2

Type: BodyCylinder

Description: Rigid body with cylinder shape. Mass and animation properties are computed from cylinder data and density (12 potential states)

rotatingRadialForce2

Type: RotatingRadialForce

Description: Radially directed force with circularly varying direction

threeSpringReturn

Type: ThreeSpringReturn

Description: Joystick re-centering mechanism with three tension springs

fixedTranslation1

Type: FixedTranslation

Description: Fixed translation of frame_b with respect to frame_a

fixedTranslation2

Type: FixedTranslation

Description: Fixed translation of frame_b with respect to frame_a

fourSpringReturn

Type: FourSpringReturn

Description: Joystick re-centering mechanism with four tension springs

rotatingRadialForce3

Type: RotatingRadialForce

Description: Radially directed force with circularly varying direction

bodyCylinder3

Type: BodyCylinder

Description: Rigid body with cylinder shape. Mass and animation properties are computed from cylinder data and density (12 potential states)

bodyCylinder4

Type: BodyCylinder

Description: Rigid body with cylinder shape. Mass and animation properties are computed from cylinder data and density (12 potential states)

joystickJoint2

Type: JoystickJoint

Description: Two degree-of-freedom joystick joint

fixedTranslation3

Type: FixedTranslation

Description: Fixed translation of frame_b with respect to frame_a

joystickJoint3

Type: JoystickJoint

Description: Two degree-of-freedom joystick joint

bodyCylinder5

Type: BodyCylinder

Description: Rigid body with cylinder shape. Mass and animation properties are computed from cylinder data and density (12 potential states)

bodyCylinder6

Type: BodyCylinder

Description: Rigid body with cylinder shape. Mass and animation properties are computed from cylinder data and density (12 potential states)

rotatingRadialForce4

Type: RotatingRadialForce

Description: Radially directed force with circularly varying direction

sixSpringReturn

Type: SixSpringReturn

Description: Joystick re-centering mechanism with six tension springs

fixedTranslation4

Type: FixedTranslation

Description: Fixed translation of frame_b with respect to frame_a

fixedTranslation5

Type: FixedTranslation

Description: Fixed translation of frame_b with respect to frame_a

base

Type: FixedShape2

Description: Visualizing an elementary shape with dynamically varying shape attributes (has two frame connectors)

fixed

Type: Fixed

Description: Frame fixed in the world frame at a given position

fixedTranslation6

Type: FixedTranslation

Description: Fixed translation of frame_b with respect to frame_a

fixedTranslation7

Type: FixedTranslation

Description: Fixed translation of frame_b with respect to frame_a

fixedTranslation8

Type: FixedTranslation

Description: Fixed translation of frame_b with respect to frame_a