# How to determine DC motor voltage

I am building a new controller for an existing robot. I need to know the voltage to send the motors. I don't want to remove the motors from the robot, but am able to take measurements while it operates using the old controller.

The power supply feeding the robot is 24 volts, so I assumed that I should send the robot 24 volts. I measured the current consumed by the motors at various speeds, and then used my controller to send PWM frequencies until the current consumed matched that of the original controller. What I saw was that the motors seemed to spin faster.

Does this make sense? Would the same current cause the motors to spin at different speeds, if the voltage was different? If so, how do I figure out what voltage to use?

Or could it be that I'm sending the same voltage, but the difference in PWM frequency from my controller and the existing controller is the problem?

Thanks!

What type of machine brushed?

Does this make sense? Would the same current cause the motors to spin at different speeds, if the voltage was different? If so, how do I figure out what voltage to use?

The speed of the machine is proportional to the voltage applied

The torque the machine can oppose is proportional to the current it sinks.

How to determine? if the previous controller used 24V, for now I would not consider using a higher voltage. Once you can determine the specific's of the machine (partnumber) you may find you can apply higher voltage as it can support higher speeds.

Or could it be that I'm sending the same voltage, but the difference in PWM frequency from my controller and the existing controller is the problem?

Frequency or duty? for a fixed duty, increasing the frequency will actually reduce the voltage (as the % of the switching time & interlock becomes a bigger contributor). For a different duty then yes as the average voltage will be different.

As to the actual title question How to determine DC motor voltage

Either from the datasheet of the part in question or Backdriving the machine to determine the $k_e$ constant (although without knowing the top speed you could damage the bearings)

$V = K_e * \omega$

• Thanks. The problem is that I don't have a datasheet for the motors, and I don't know the top speed. All I can do is to observe the motors as they are controlled by the existing controller, and measure whatever is measurable with my multimeter. I measure 18 volts when the existing controller pushes the motors the fastest it pushes them, but that doesn't mean they are 18 volt motors. The fact that the power supply is a 24 volt power supply would indicate that they are 24 volt motors. But maybe they really are 18. Is there some way to measure the voltage that is being pulsed in the PWM signal?
– Dave
Jan 17, 2015 at 8:59
• It probably is a 24V machine. They probably "limit" it to 18V via PWM modulation depth so that when the rotor is loaded, and thus it will slow down, they have some headroom. How to determine? you could try a DVM to determine the average voltage or you could attached two motorback to back and measure the 2nd machines terminal voltage. It will be lower than the primary motors terminal voltage due to the efficiencies through this mini Ward Leonard.
– user16222
Jan 17, 2015 at 10:10
• Thanks, Jon! Can you elaborate, though? I'm not following most of what you are saying. Rotor is loaded? Headroom? Attach two motors? To be clear, this machine so a ball launcher, the motors spin wheels to launch balls. And how do I use a DVM to determine the voltage? My DVM just shows me the "virtual voltage" from the PWM, not the true voltage being pulsed.
– Dave
Jan 17, 2015 at 13:57
• There is a maximum speed of the rotor, this occurs when the rotor is UNLOADED & max available voltage is applied. As load is applied the rotor will slow down. I am postulating they limit the terminal voltage to 18V via PWM so that they can cater for some loading via increasing the duty. Yes a DMM will show "virtual voltage" as it will average out the chopped 24V. Ideally you would have the datasheet or an oscilloscope . You are trying to determine the voltage indirectly
– user16222
Jan 17, 2015 at 22:52