Controlling 4 mechanically coupled motors with one encoder

6 years 10 months ago #29532539 by bigBadger
Hello,
In my application there are four HPM3000B Brushless 3kW motors controlled by 4 MBL1660 controllers. The motors are mechanically coupled together in what is effectively a shared shaft. Our plan is to have one encoder controlling one motor in Relative position or Count Position closed loop mode, with the other three motors being controlled in open loop mode with their power output being set to match the power output of the first controller. I am trying to determine if this is a safe method of controlling them, or if there is a better way. These motors are driving a lifting mechanism that raises or lowers a platform.

Any help would be appreciated

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

6 years 10 months ago #29532540 by blake
If all four motors are identical, then you can use a 1 Master and 3 Slave configuration using RoboCAN. Esentially you would set one motor/controller as the masters and then the other three motors/controllers as Slaves. You could then have script running on the master controller that reads the applied power to the motor and then have this value sent to the other three controllers via RoboCAN.

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

6 years 10 months ago #29532544 by bigBadger
Okay, thanks. That is basically what we had in mind. One clarification question though; is there an explicit master/slave setting in the roboteq configuration somewhere? Or do we set it up as a master/slave configuration by writing a script to transmit the applied power level at the Master drive to the 3 slave drives?

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

6 years 10 months ago #29532547 by blake
Not necessarily. You will simply set each motor controller as a different CAN node ID. You master node will be whichever controller houses the microbasic script that controls/communicates with the other slave nodes.

Attachments:

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

6 years 8 months ago #29532667 by bigBadger
Hi Blake,
I was hoping to reopen this question, now that we have some more experience with it.

So your suggestion above is to have the master/slave control occur at the script level, with the master node sending out commands to the slave nodes via can bus?
What we implemented was a computer that monitors the output from the master drive via opencan (Getting the value using _MOTPWR), and sets that as the PV mode setpoint in the slave drives via opencan. The result has been pretty unstable when used in position or speed mode, with lots of oscillation. FYI, the mechanism is essentially unloaded during these tests.
The max acceleration and deceleration parameters have also been a source of problems. We found if we give them all the same values (maxrpm=5000, max accel/decl = 250rpm/s), then when the master drive is in position mode, the rate of change on the output of the slave drives is clamped too much to keep up with the changes in the master drive. When we reduce the clamping, the system gets even more unstable and the PID output blows up sometimes.

Any suggestions you can provide here would be very helpful,
Thanks.

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

6 years 8 months ago #29532668 by blake
Essentially this will work under the same principal as our Mecanum Wheel Robot. See the article HERE and take note of the speed algorithm that controls all four motors

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

Moderators: tonysantoni
Time to create page: 0.072 seconds