Author Topic: Continuous servo motor/transfer function question  (Read 4134 times)

0 Members and 1 Guest are viewing this topic.

Offline InsideTopic starter

  • Beginner
  • *
  • Posts: 1
  • Helpful? 0
Continuous servo motor/transfer function question
« on: March 20, 2012, 10:20:47 PM »
Heyo -- I've tried googling this, but I've yet to find an answer that suits me.

I have some continuous rotation servos where you can set the speed/direction using PWM. I'm trying to incorporate them into a robot arm that has closed loop feedback PID control and I'm trying to model the arm using matlab before I build the thing.

I guess the question is... does the onboard ic basically act as an H-bridge + PWM ic? That is, if the signal PWM is at 50%, then PWM to the motor is 0%? If control PWM at 100%, then motor PWM is 100% in one direction, and if control PWM is 0%, then the motor PWM is 100% in the other direction?

Basically, if the motor constants could somehow be measured then the transfer function for the motor would simply be what is found here? -- http://www.engin.umich.edu/group/ctm/examples/motor2/motor.html

Offline Soeren

  • Supreme Robot
  • *****
  • Posts: 4,672
  • Helpful? 227
  • Mind Reading: 0.0
Re: Continuous servo motor/transfer function question
« Reply #1 on: March 21, 2012, 06:05:19 PM »
Hi,

[...] does the onboard ic basically act as an H-bridge + PWM ic? That is, if the signal PWM is at 50%, then PWM to the motor is 0%? If control PWM at 100%, then motor PWM is 100% in one direction, and if control PWM is 0%, then the motor PWM is 100% in the other direction?
To clear up the stuff a bit... While a lot of people call servo signals PWM, it isn't. Servo signals are PDM (Pulse Duration Modulation), with a pulse duration of 1ms to 2ms and a repetition rate of around 20ms (this varies a good deal more than the pulses between different makes of servos).

PWM cannot be neither 0% or100%, as it is then DC.

If the pulse duration is 1.5ms, the output of the servos internal H-bridge is 0, but each make of servo will have different control algorithms, so you cannot model anything accurately from it.

In a theoretic servo, a pulse of 1ms will result in the max output and so will a pulse of 2ms, only with the opposite polarity.
Regards,
Søren

A rather fast and fairly heavy robot with quite large wheels needs what? A lot of power?
Please remember...
Engineering is based on numbers - not adjectives

Offline infurl

  • Jr. Member
  • **
  • Posts: 14
  • Helpful? 0
Re: Continuous servo motor/transfer function question
« Reply #2 on: March 21, 2012, 06:40:05 PM »
I did some fairly serious experimentation with modified servo motors a few years ago to determine how accurately they could be controlled. After running a lot of automated tests and compiling the results I came to the conclusion that the control circuitry and algorithms employed were not compatible with accurate motor speed control, since they were intended primarily for stable position control, with accuracy of any kind being less important. The most significant point is that the controller implements "dead zones" in order to prevent jitter.

Here's a graph that I plotted of the results. The horizontal axis is the pulse duration in microseconds and the vertical axis is rotations per minute. I used three different servos for the tests, represented by different colours, all Hitech HS-322 if I recall correctly. Dead zones cause the saw-tooth appearance of the control versus speed graph. Also, and not surprisingly, the results vary according to the voltage supplied. As the batteries run down, the motors slow down.
« Last Edit: March 21, 2012, 06:59:52 PM by infurl »