1
\$\begingroup\$

I'm trying to simulate a DC motor with simulink. The problem is that I don't know how to take a load torque into account. If the DC motor drives a wheel with constant velocity, there will be a constant frictional force working against the DC motor. How would this be implemented in a DC-motor simulink simulation?

enter image description here

I have tried subtracting a load torque in between the two transferfunction blocks but then the simulated motor speed is always goes negative.

\$\endgroup\$
3
  • 1
    \$\begingroup\$ Constant torque means constant current. I don't see you modelling current yet, it's all hidden in K. \$\endgroup\$
    – Janka
    Mar 30 '17 at 12:18
  • \$\begingroup\$ @Janka I believe the current is modeled by the \$\frac1{R+Ls}\$ part. \$\endgroup\$ Mar 30 '17 at 12:54
  • \$\begingroup\$ "there will be a constant frictional force working against the DC motor" is an error. Retarding force on a motor is load + friction + windage. Friction and windage effectively go to zero at zero speed. (For your purposes). friction + windage go negative at negative speeds. Each follow some curve on ether side..... \$\endgroup\$
    – Trevor_G
    Mar 30 '17 at 14:37
1
\$\begingroup\$

Your block Kt/(R+Ls) is torque. V/(R+Ls) is your current. Kt is torque per amp (Nm/A). You simply add a value after Kt/(R+Ls), if it's constant. Unfortunately, many loads are speed or position dependent and then it get's much more complicated (math wise). Model-wise it's pretty easy.

\$\endgroup\$
1
\$\begingroup\$

If you apply a high enough constant torque to a stalled motor, you will end up turning it in the opposite direction, so a negative speed may well be physical. For starters, try applying less load torque and see what happens.

\$\endgroup\$
1
  • 1
    \$\begingroup\$ Thanks! I tried adding less torque and the results gave much more sense now. But as i've realized the load torque should not be a constant value from the beginning (in the case of a wheel starting to turn in contact with the ground). The static friction increases as the forward force increases until the wheel starts turning. Is there a way to make an input like this in simulink? (an input that increases by the same amount as the forward force/torque and then stops once it reaches a given maximal value) \$\endgroup\$
    – thosava
    Mar 31 '17 at 16:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.