matlabsimulinksimscape

Adding a DC Motor to a Simscape Multibody Revolute Joint


I have the following Model of a DC motor and a Simscape Multibody Model of a 2-wheel Robot.

DC Motor with Torque Output: DC Motor with Torque Output

Simscape Multibody Model of my Robot: Simscape Multibody Model of my Robot

I want to control speed of the robot (Simscape Multi-Body Model). So I want to interface the DC motor to the revolute joint of the robot.

The above generated model appears to work but, the motor rotates above no-load speed and motor-torque nears stall torque as measured at the revolute joint.

How would I ensure that the DC motor torque is affected by the load of the robot? Any suggestions would be appreciated.


Solution

  • Basically, you feed the torque of the motor to the mechanical component and at the same time, connect the angular velocity of the component back to the DC motor. This enables you to backtrack the effects of changing inertia or load to the motor torque and rpm.

    Have a look at the attached .slx file in the link.

    .slx file screenshot