Simulation by MATLAB Simulink

We used body blocks and joint blocks to model the mechanism. We also employed sensors to record data and actuators to define the motion as we want. Here is our Simulink model for one side of our robot.

  • The links are defined by body blocks. The end points' coordinates and attachment points' coordinates in addition to mass and inertia properties are given to these blocks.
  • For joints, the type should be chosen and then the axis of degrees of freedom should be defined in the block. All of our joints were from revolute type.
  • An actuator is used in place of motor that can apply required speed. The speed can be given through a function.
  • A sensor is used to read the motor torque according to the input speed.
  • Any variable in Simulink can be exported to the MATLAB workspace using the "to workspace" block.

 

Model animation and plots are some useful features that we have implemented. The plot shows the required torque for one side of robot during one cycle of crank rotation.

The important part of our Simulink simulation was defining the link points (giving the coordinates) based on the CAD model. Ground points were defined with absolute position while for the links, relative position was employed. However one deficiency is that the friction is not modeled in this simulation. Although there was friction blocks, it was hard to find a good model for the friction of our mechanisms.