# Controlling the speed of a DC motor based on another measured rotational speed

Hi all!
I am involved in the local tractor pulling community and are arranging competitions for kids - gardenpulling. We have built a pulling sled but the sled weight is pulled forward the same speed regardless of the speed which the sled is pulled by the tractor. This gives an advantage to the faster tractors.

I want to control the speed of the weight by the speed of the sled, i.e. the faster you pull the sled the faster it gets heavier. And I was of course thinking.. Arduino!

Basically I was thinking a sensor that reads pulses from the wheel on the sled (the speed of the sled will vary during the pull) that controls a geared down DC-motor that moves the weight on the sled.

The track is 30, 60 or 100m and the weight is pulled 5m on the sled so the ratio is easily calculated. But how would you handle the translation between sled speed and weight's speed? Counting pulses both on the sled wheel and the DC-motor or calculate rpm and adjusting the DC-motor's rpm via PWM?

Thanks in advance! //Daniel

The track is 30, 60 or 100m and the weight is pulled 5m on the sled so the ratio is easily calculated. But how would you handle the translation between sled speed and weight's speed?

If you don't want the tractor speed to factor into the competition, then you will have to move the weights according to the sled's position down the 30, 60 or 100m track. Do you have a formula for where you want the weights to be at a given location on the track? At what point is the full weight applied? I think you want to be working with distance rather than speed

Sonofagun:
But how would you handle the translation between sled speed and weight's speed? Counting pulses both on the sled wheel and the DC-motor or calculate rpm and adjusting the DC-motor's rpm via PWM?

I think my concept of the problem is the opposite of @cattledog's.

I think the position of the weight needs to be related to the speed.

And the DC motor is used to vary the position - you could have two or 3 microswitches that are triggered by the weight at the different positions. If you need very fine adjustment of the position you could have a pulse counter on the motor shaft and allow it to go N pulses forward or backward.

And I think YOU need to tell us what is the relationship between sled speed and whatever.

...R

Thank you for your replies!

Let’s assume the track is 30m and full weight is applied at 90% of the track - 27m. When the calibration between wheel rotation (sled distance) and weight distance is made, it´s just a matter of ratio, right?

The relationship between the sled and the weight is then 27m/5m with the addition that they move in varying speeds.

To measure the distance I was thinking either a magnetic sensor (like an ABS-sensor) or a photo interrupter on the wheel of the sled. Then calculate the number of pulses/meter which gives the total number of pulses for 27m. I have no idea what resolution I need but I guess it doesn’t need to be high.

The hard part, I think, is how to control the DC-motor. If I also use a photo interrupter on the DC motor shaft and I know how many pulses corresponds to move the weight 1m then it must be possible to make this work? By doing this, will I have full power on the motor when it rotates the corresponding pulses?

Since I haven’t started building this I yet don’t have any figures like pulses per meter. I’m trying to investigate the feasibility and get some pointers on choice of hardware.

Thanks!

The hard part, I think, is how to control the DC-motor.

You will need the right motor driver and some feedback on rotations.

Where are you in terms of your DC gear motor selection? Torque requirements, voltage, amps, speed range, etc?

Why not just use a handicapping system as in horseracing? - the more powerful the tractor the heavier the weight you load on the sled at the start of the race....

regards

Allan

This

Sonofagun:
I want to control the speed of the weight by the speed of the sled, i.e. the faster you pull the sled the faster it gets heavier. And I was of course thinking.. Arduino!

is not the same as this

Sonofagun:
Let's assume the track is 30m and full weight is applied at 90% of the track - 27m. When the calibration between wheel rotation (sled distance) and weight distance is made, it´s just a matter of ratio, right?

In the first case the movement of the weight depends on the speed of the sled.

In the second case the position of the weight depends on where the sled happens to be on the track.

They can't both be true unless all the sleds operate at the same speed - and you say they don't.

IMHO you need to reconsider your requirement.

...R

OK, from a Google search I see that the weight is moved from over the axle to over the skid plate so the friction goes up as the mechanism moves forward. The distance traveled before the pulling tractor stops gives a measure of tractor power/torque.

From what I understand the weight has to be heavy enough to stop any tractor in that class, typically hundreds or thousands of pounds. Often the weight is driven by the wheels through gearing. The disadvantage of fixed gearing that that it can't adjust for different length of 'track'.

Do you have an electric motor, power source, and control electronics that can move that kind of mass at the speeds necessary to move it 5 meters in the time of the fastest tractor in that class? That sounds like a lot of power. Maybe the weight is a box full of car batteries?

Given a motor with position feedback and a sensor for wheel rotation the software to move at a fixed ratio is fairly simple. Add an LCD and a keypad and you can enter the length of any track.

Robin2:
In the first case the movement of the weight depends on the speed of the sled.

In the second case the position of the weight depends on where the sled happens to be on the track.

Position is the integral of velocity, making the two equivalent. If the weight moves at 1/10th the speed of the sled the position of the weight on the sled will be 1/10th of the position of the sled on the track.

See how closely you can determine how far the sled has gone from wheel turns.

It is distance down the track that determines where on the sled the weight should be, count the wheel turns instead of the wheel speed to know where the sled weight should be and please note that Arduino can do this at better than 1000x per second.

When you have such close measurements it’s not so hard to match track and weight positions.

You can know position by direct measure absolutely.
You can calculate position by speeds and times but I suggest that you see how well you do at that.