I'm working on a project which requires the control of a motor via a +/-10v control signal (which will be fed into an amplifier).

In theory any motor can be used, although it should be attached to a high resolution encoder (1024+ PPR).

A setpoint (theoretical position) is calculated 1000/sec, and the result used within a PID loop. The result is then outputted to an 8-bit DAC. To allow motion in both directions, values under 127 cause a negative signal, and values above 129 cause a positive signal. As such, the resolution is reduced to 127 steps.

Does this seem sufficient to achieve smooth motion, or should I choose a DAC with more resolution?

  • \$\begingroup\$ please describe the motor ..... put the description into your question .... do not add a comment \$\endgroup\$ – jsotola Jul 1 '18 at 23:03
  • \$\begingroup\$ Unfortunately "smooth motion" is a) way too subjective and b) depends on physical characteristics of a motor, like the weight of a rotor (that was the reason @jsotola asked you about it, I believe). \$\endgroup\$ – Maple Jul 1 '18 at 23:59
  • \$\begingroup\$ The idea is for the application to work with any motors. In most cases, these would be between 1hp - 5hp. \$\endgroup\$ – 19172281 Jul 2 '18 at 0:03
  • \$\begingroup\$ @Maple, yes, that was the reason for my comment .... a rotor with enough mass may be smoothly driven using PWM instead of a voltage level \$\endgroup\$ – jsotola Jul 2 '18 at 0:11
  • \$\begingroup\$ @jsotola a rotor with enough mass may be smoothly driven by on/off switch that you toggle once a day :) \$\endgroup\$ – Maple Jul 2 '18 at 0:17

OK, 1-5 hp motors is something I work with on daily basis. As I said in the comment, the smoothness is subjective. Here are my subjective observations.

At this power level the load driven usually has enough inertia (e.g. scooter weighting around 200kg with the driver) to make motion smooth enough even at 60 steps resolution. However the noise level from the motor has distinct steps too, which makes 60 perceived as uncomfortable. For this reason we usually have at least 1000 steps of resolution.

Now, the most questionable part of your design is the use of DAC. There is nothing wrong with analog power stage. In fact, it can give you infinite resolution and very smooth motion. However you are limiting that with DAC, and not only resolution-wise, but also slow (relatively) response time. Discrete PID implementation has strong dependency on time constant, and your fastest loop time will be limited by communication speed.

So, if using DAC is not absolutely necessary for your design I would strongly suggest using PWM output to power stage. It will simplify your schematics and PID will be easier to tune up.

  • \$\begingroup\$ Isn't a +/-10v control signal quite typical? Just to clarify, the motion only needs to appear smooth. No human is being moved by it. \$\endgroup\$ – 19172281 Jul 2 '18 at 12:55
  • \$\begingroup\$ You need to clarify what you mean under "control signal". The rated voltage of DC motors in given power range varies widely, from 10-12V all the way to 100V and more. Majority of the motors I am working with are rated for either 12 or 24V. The typical output stage produces PWM output at ± rated voltage with frequency in range 1-50 kHz. The change of speed will appear smooth with 127 steps of resolution as in your question. In fact, many commercial hobby controllers work with "simplified serial" control protocol which is basically 1 byte speed. \$\endgroup\$ – Maple Jul 2 '18 at 15:48

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.