Title: DC motor acceleration
Tags: newtonian-mechanics;acceleration;friction;torque
Question: I'm doing a research project on the mathematics of robotics. For this research project I need to use calculus somewhere in the project. My plan was to calculate the acceleration of the robot and find the velocity and position by integrating. I am currently using the following equations to find acceleration

Force = Torque / radius of wheel

acceleration = Force / mass

the problem is that the acceleration of a robot shouldn't be a constant as this equation finds, because at some point the acceleration should reach a max and gradually approach 0. 

So, how would I go about finding the real acceleration of the robot? I think where i'm going wrong is plugging in static numbers for Torque, but I can not figure out how I would find the change in torque over time.

The specs for the motor I am using are here . Also, the mass of the robot is 135 pounds. 

Comment: The force and torque don't have to be constant and in real life they are not. Having said that, there is no calculus here, at all, since the wheel radius and the mass are merely constants, so the acceleration is simply proportional to the torque. You won't need calculus, unless you are trying to find the velocity and the position from the time dependent torque.

Comment: The torque is whatever your motor produces, unless you want to look at the entire system as a dynamical problem, in which case you will have to solve a bunch of differential equations. That is "calculus", but in practice you would either deal with a linear system, which is a long solved problem (that may still be above your current level of math, though), or it becomes a numerical simulation (for which plenty of software exists). At this point it seems to me that you lack the necessary tools to attack this. Who gave you the assignment?

Comment: The level of math that would allow you to solve the real problem would be first year undergrad physics or engineering math, something which you can't be expected to master (you can, if you really care, but it's not required in any high school system that I am aware of). In a real machine application one would not load the motors to either torque maximum, but the motor torque would be electronically controlled by a feedback system that matches the position of the machine to a programmed trajectory. That's a tough control problem that you don't want to tackle.

Comment: What you can tackle is an ideal scenario where you interpolate two points with a quadratic ramp function. Differentiated twice this amounts to a control that delivers constant torque to accelerate the robot and then an opposite torque to decelerate. If you want to be a little closer to reality, still, ramp the torque from zero to a predetermined max. with a liner ramp, that gives you third order polynomial solutions. Calculate the fastest times that such a machine can achieve from A to B. That's within your current level of math, I would say.

Comment: Sorry, I must have miscommunicated. That's kinda the whole point. I want to find velocity via the integral of acceleration and position via the integral of velocity. The issue is that I can't find a way to calculate change in torque. If I could calculate that, I wouldn't have a constant acceleration and via integral a linear velocity.

Comment: so my confusion with torque is that there are two values that the manufacturer gives for torque, stall and load. This assignment is for an IB HL mathematics paper in high school. It's basically a self guided exploration into a field of applied mathematics. With everything i've told you, do you think it's even possible to do what I want to do? Also, if it helps, I have completed calculus 2.


Here is another answer: You are right Jeff. Using a static number for torque, and no velocity dependent frictional term will give you an unreasonably increasing acceleration. As your intuition predicted, electric motors start out with high torque at rest and decrease to zero torque as speed increases to max speed (Good discussion here). According to your spec sheet, your motor has a max torque of 343.4 oz/in at zero speed, and 0 torque at 5310 RPM. Sort of by definition, max speed is the zero net torque point.
An interesting question is why does the motor have a max speed? Of course there is friction acting on the motor, but the stronger effect is that as the magnetic rotor turns past the electro magnetic coils, it induces a counter flow of current. The faster the motor spins, the greater the counter flow. When the motor hits a speed at which the counter flow of current equals the current from the applied voltage, the torque falls to zero.
You can calculate the torque as a function of robot speed, convert to force and divide by the robot mass to get acceleration. You can use a block diagram software like VisSim to integrate the accel to get velocity and integrate the velocity to get position. VisSim uses 1/s to mean an integrator block. This is some engineering short hand based on the the Laplacian 's' operator (derivative WRT time). The inverse of derivative is integrator.
Here is the calculation in a VisSim diagram:


If you go to the VisSim web site and sign in you can download VisSim for free and play with it yourself.


Here is another answer: I recommend using an accelerometer to find the experimental acceleration of the robot. Probably the best quality would be to use a LabQuest and/or LoggerPro paired with the Vernier Motion Sensor, but you could also use SparkFun accelerometers alongside an arduino/RPi.

Another option, which very well may be the best given constraints for your time and resources, is to use an app called "MyTech," which was developed by a team at North Carolina State University for classroom physics measurements, which uses MEMS differential capacitors to measure acceleration. It returns the accelerations in vector components, and allows the user to download a CSV file with the measurements.

If you could open the CSV file in Microsoft Excel (or Google Sheets, etc.), then you could do regression analysis on your data, and find the equation for a line of best fit. Then you could integrate that equation to find velocity and position. 

That may not have answered your question directly, but I think it is a better route for experimental design, and if I understand the scope of your project, I think it would serve you better.


Here is another answer: You should alter your formulae a tiny bit:

Force = Torque / radius of wheel:
$$F=\tau / R$$

Acceleration = Force / mass

$$a=\sum F/m$$

I have added the sum symbol $\sum$. While accelerating, you will at some point have other forces interacting as well. For example friction and drag (air resistance). (Of course there might be engine-limitations as well.) The sum symbol shows that this force in Newton's 2nd law is not just the force $F$ on the road, rather it is all forces that are present. If friction $f$ and air drag $D$ start having significant effects, these must be included in this sum (with proper signs):

$$a=(F-f-D)/m$$


{'source': 'StackExchangeDataset', 'subset': 'physics.stackexchange.com', 'metadata': {'AnswerCount': 3, 'CommentCount': 6, 'ContentLicense': 'CC BY-SA 3.0', 'CreationDate': '2016:00:05/19/16', 'FavoriteCount': None, 'PostTypeId': 1, 'Tags': '<newtonian-mechanics><acceleration><friction><torque>', 'Title': 'DC motor acceleration', 'ViewCount': 3607, 'id': 256713, 'user_AboutMe': None, 'user_AccountId': 6272200.0, 'user_DisplayName': 'JeffreyWorley', 'user_Reputation': 11.0, 'user_Views': 7.0, 'user_id': 117729.0}}