Welcome, Guest
  • Page:
  • 1
  • 2

TOPIC: Stop Motor Smoothly

Stop Motor Smoothly 5 months 3 days ago #2415

  • vik748
  • vik748's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 6
  • Karma: 0
Hi,
We are using a class 5 smart motor to drive a propellor on Autonomous Underwater Vehicles. I am communicating with the motor in Python via the serial port. I want my code to have a timeout such that when it doesn't receive and command velocities, it should tell the motor to decelerate to a stop and then freewheel. Ideally, I would like to be able to send the same command repeatedly while timed out.
I have tried many of the following in different combinations but have been unable to get the desired behavior.
a. MV ADT=100 VT=0 G\rOFF\rBRKRLS\r : This makes the motor stop abruptly instead of decelerating slowly
b. DT=100 X WAIT=4000 OFF BRKRLS\r : This make the motor decelerate to stop, but it doesn't free-wheel after stopping
c. DT=100 X TWAIT OFF BRKRLS\r : This make the motor stop abruptly
The administrator has disabled public write access.

Stop Motor Smoothly 5 months 3 days ago #2416

  • mmeyer
  • mmeyer's Avatar
  • OFFLINE
  • Moderator
  • Posts: 39
  • Thank you received: 11
  • Karma: 3
Hello,

"X" is the command to use if you desire a deceleration to a stop. The deceleration is defined by ADT or DT, but may appear as an abrupt stop depending on that value. I would not recommend using option a, as that immediately switches to a 0 velocity trajectory. I would guess that option b does not seem to be free wheeling because after stopping, it is programmed to wait 4 seconds before free wheeling. You can test if this is true. I recommend using BRKRLS OFF and making sure the motor is not in a fault state when you notice that it is not free wheeling.
The administrator has disabled public write access.

Stop Motor Smoothly 5 months 3 days ago #2417

  • vik748
  • vik748's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 6
  • Karma: 0
@mmeyer, lets say I am working with option b: DT=100 X WAIT=4000 OFF BRKRLS\r
Lets say the motor is moving at 2000rpm, What would happen if I send the same message every 100milli secs?
The administrator has disabled public write access.

Stop Motor Smoothly 5 months 3 days ago #2418

  • mmeyer
  • mmeyer's Avatar
  • OFFLINE
  • Moderator
  • Posts: 39
  • Thank you received: 11
  • Karma: 3
It would never reach the commands which tell it to release. If the motor was moving when it first received the command, I would guess that it comes to a stop and then holds that position actively. So you wouldn't be able to freewheel.
The administrator has disabled public write access.

Stop Motor Smoothly 5 months 3 days ago #2419

  • vik748
  • vik748's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 6
  • Karma: 0
Sounds like the wait in there would be problem some.
Is there any command you can think of which I can send at 10Hz continuously which would:
1. If motor is moving, start decelerating
2. If motor is decelerating continue decelerating
3. If stopped, release do a brake release.
The administrator has disabled public write access.

Stop Motor Smoothly 5 months 3 days ago #2420

  • mmeyer
  • mmeyer's Avatar
  • OFFLINE
  • Moderator
  • Posts: 39
  • Thank you received: 11
  • Karma: 3
"X" would accomplish the first 2, and you may be able to enact what you wish with a simple "X OFF" as your 100ms interval repeated command, provided your motor does not have a hardware brake. Even just "OFF" would be sufficient if you're satisfied with that stopping speed.
The administrator has disabled public write access.
  • Page:
  • 1
  • 2
Time to create page: 0.178 seconds
Powered by Kunena Forum