WOLFRAM SYSTEM MODELER
JoystickForceResponseModel simulating response of three joystick designs to circularly varying test force. |
![]() |
SystemModel["IndustryExamples.ConsumerProducts.Joystick.JoystickForceResponse"]
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.
View the model diagram for this model.
The other model in this example is JoystickReturnTrajectory, which compares the free return trajectory of the three joysticks.
The joystick model is constructed hierarchically. Double-click on a component such as fourSpringReturn1 to see its model diagram. Inside fourSpringReturn1 double-click on one of the tension springs to see its model diagram, and so on:
To simulate the model and view a 3D animation of it, follow the steps below:
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.
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:
You can see that the six-spring arrangement leads to the most linear return trajectory.
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. |
![]() |
world |
Type: World |
---|---|---|
![]() |
joystickJoint1 |
Type: JoystickJoint |
![]() |
bodyCylinder1 |
Type: BodyCylinder |
![]() |
bodyCylinder2 |
Type: BodyCylinder |
![]() |
rotatingRadialForce2 |
Type: RotatingRadialForce |
![]() |
threeSpringReturn1 |
Type: ThreeSpringReturn |
![]() |
fixedTranslation1 |
Type: FixedTranslation |
![]() |
fixedTranslation2 |
Type: FixedTranslation |
![]() |
fourSpringReturn1 |
Type: FourSpringReturn |
![]() |
rotatingRadialForce3 |
Type: RotatingRadialForce |
![]() |
bodyCylinder3 |
Type: BodyCylinder |
![]() |
bodyCylinder4 |
Type: BodyCylinder |
![]() |
joystickJoint2 |
Type: JoystickJoint |
![]() |
fixedTranslation3 |
Type: FixedTranslation |
![]() |
joystickJoint3 |
Type: JoystickJoint |
![]() |
bodyCylinder5 |
Type: BodyCylinder |
![]() |
bodyCylinder6 |
Type: BodyCylinder |
![]() |
rotatingRadialForce4 |
Type: RotatingRadialForce |
![]() |
sixSpringReturn1 |
Type: SixSpringReturn |
![]() |
fixedTranslation4 |
Type: FixedTranslation |
![]() |
fixedTranslation5 |
Type: FixedTranslation |
![]() |
fixedShape21 |
Type: FixedShape2 |
![]() |
fixed1 |
Type: Fixed |
![]() |
fixedTranslation6 |
Type: FixedTranslation |
![]() |
fixedTranslation7 |
Type: FixedTranslation |
![]() |
fixedTranslation8 |
Type: FixedTranslation |