Change Revolute Joint Axis in SimMechanics

39 views (last 30 days)
Jonathan
Jonathan on 17 Mar 2016
Answered: Steve Miller on 8 Mar 2018
I am leveraging SimMechanics, SimElectronics, and Simulink to model a quadcopter system for an embedded system class project ( files here ). I have generated a 2nd Generation SimMechanics model of an F450 quadcopter frame, including the motors and propellers. We were hoping to develop a model of a quadcopter with only a single rotational degree of freedom around either the x or y axis. I was hoping to model this with a revolute joint connecting the quadcopter frame to the "world frame". However, the "revolute joint" block in SimMechanics only acts around the z-axis. How can I change the axis of rotation for a revolute joint?
It appears that another individual has asked the same question , but no one has yet responded to his question.

Answers (1)

Steve Miller
Steve Miller on 8 Mar 2018
You need to orient the frames that are attached to the Revolute Joint so that the Z-axis of those frames point along the desired degree of freedom. To do this, use Rigid Transform blocks to adjust the orientation of the frame. The frames you assign to solids/combinations of solids are the interface to the joints. This convention ensures that the interfaces are always consistent.
Though it might seem more convenient to pick any axis you want within the Revolute Joint, the resulting model ends up being very difficult to parse. Logging data is also difficult to interpret if you can arbitrarily re-assign degree of freedom orientations within each joint.
It takes a few minutes to get used to this convention. The result is that your models are much more consistently built, and mechanisms you construct are much easier to reuse.
--Steve

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!