Menu

Topic-icon SDC1130 switches direction at high speed in position count mode

More
4 years 7 months ago - 4 years 7 months ago #29530581 by nicl
Hi there,

This is posted as a follow-up to an email thread.

To distill the issue down, my motor seems to run the opposite direction of what I expect while in position count mode, but ONLY if the speed is set above a certain threshold.

My current setup:
- SDC1130
- FID=Roboteq v1.4b SDC1XXX 03/31/2015
- Roborun+ Rev. 1.4. 11-27-14
- Motor: RB-Pol-125 Pololu 12V, 50:1 Gear Motor w/Encoder
- Closed Loop Count Position mode
- Loop Error Detection off

My setup is wired as recommended, however I am using a power supply instead of a battery. Also, I have not connected the power supplies in parallel as recommended in the datasheet (I have only connected one, but I don't expect this to cause the issue I'm seeing). I also have one limit switch connected to a digital input.

I have been using Roborun+ over RS232. Since I am using position count mode, I am using the !P command to move the motor, and using the !S, !AC and !DC commands to adjust speed and acceleration per movement.

At low speeds and accelerations, everything works as I expect it to. The motor accelerates and decelerates smoothly and reaches the correct count position each time. However, upon increasing the speed and acceleration, I noticed the motor would begin moving in the opposite direction of what it should, causing it to run away and never reach the count position it was directed to.

After some testing, I determined the following: 1) the acceleration does not affect the direction of motion; adjusting the acceleration to a high or low value has no impact on direction at a given speed. 2) The threshold for speed appears to be around ~1675 RPM. At 1675 RPM, the motor moves correctly, while at 1680 RPM, it moves the wrong direction. 3) Negative speed values also exhibit this behaviour, meaning that from -1 to -1675 RPM the motor moves the WRONG direction to reach its position (as expected), but beyond -1680 RPM it moves the CORRECT direction and reaches its target.

One theory raised by coworkers is that the speed value is signed and therefore flips direction if it overflows, but the max value doesn't fit this theory easily at the surface.

After discussion with RoboteQ support, I tested with an installation & reset to firmware v14a-112114 (which I've attached) and experienced the same behaviour. I am continuing to try to troubleshoot at my end.

Any input is appreciated! Thanks.


UPDATE: Giving configuration info

- Encoder PPR: 800
- Max RPM: Set to 200; stated in datasheet as free-run RPM @12 V and 300 mA
- Acceleration: 10 RPM/s (have tested from 10 to 1000)
- Deceleration: 10 RPM/s (have tested from 10 to 1000)
- Position mode velocity: 10 RPM (assuming this is what is adjusted by the !S command at runtime, tested from -1700 to 1700)

I've also attached my configuration file.

UPDATE 2: Trying even higher speeds

First: I determined more exactly where the threshold lies. I've tested at 1677 RPM and gotten the correct direction, while 1678 RPM moves the incorrect direction.

Second: I've tried doubling and quadrupling the threshold value, to 3356 and 6712. Both these values move the correct direction, but very slowly - when polling speed the controller returns values below 5 RPM. Also, adding to these values (for example 6812 instead of 6712) causes the motor to run the correct direction but faster. To me this supports the overflow/rollover theory. Is it possible to check how the variables (speed, acceleration, etc.) are stored on the device?
Attachments:

Please Log in or Create an account to join the conversation.

  • roboteq
  • roboteq's Avatar
4 years 7 months ago #29530582 by roboteq
We will investigate asap

Please give relevant configuration info:

- encoder PPR
- Max RPM
- Acceleration
- Deceleration
- Position mode velocity

Please Log in or Create an account to join the conversation.

More
4 years 7 months ago #29530583 by nicl
Thanks for the quick reply! Updated the initial post to add configuration information.

Please Log in or Create an account to join the conversation.

More
4 years 7 months ago #29530584 by nicl
I've updated the initial post with some information regarding further speed increases I just tested. Essentially, doubling the "reverse" threshold speed resets me to moving the correct direction. Is it possible to find out how the speed/acceleration values are stored before a position command is sent?

Please Log in or Create an account to join the conversation.

  • roboteq
  • roboteq's Avatar
4 years 7 months ago #29530587 by roboteq
We are not able to replicate your problem.

Please install and run Teamviewer

email your id and pw and a phone number you can be reached to This email address is being protected from spambots. You need JavaScript enabled to view it.

Please Log in or Create an account to join the conversation.

More
4 years 6 months ago - 4 years 6 months ago #29530646 by ing.sohaib
Hi nicl,

I'm facing a similar issue of the motor, it works in the correct direction when it is revving below 1670rpm and it shifts direction once it goes beyond that. For negative direction, the case is vice versa. I doubt that this could be a programming issue since such bugs are fixed in the early development stage of products. I might be having s wrong configuration of problematic hardware connections is what I believe.

Could you please elaborate on what you found out?

prototype assembly

Please Log in or Create an account to join the conversation.

More
4 years 6 months ago #29530647 by nicl

ing.sohaib wrote: Could you please elaborate on what you found out?


Hi,

I was able to give the support team enough information to solve the problem. I've attached the firmware they gave me, though they may have a more up-to-date release version now.
Attachments:

Please Log in or Create an account to join the conversation.

Moderators: tonysantoni
Time to create page: 0.108 seconds
Go to top