OMRON Forums

# Smooth transition from Open to Closed Loop while motor is moving: catch the egg.

## Recommended Posts

All, I need help implementing the following function. I called it a "catch the egg"-move. The function goes as follows: A motor with normal feedback needs to move from A to C as fast as possible. Because of varying friction between A and C, the maximal allowable velocity is determined by the highest level of friction. Let’s say that is at location B. If we’d want to go faster, we would get a servo error while passing location B. In case of the ‘catch the ball’-move, [list=1] [*]first we start a normal move ([b]action I[/b]). [*]After leaving A, and accelerating to a certain speed, the motor is placed open-loop (while maintaining the controller output at that time, let’s say 7.56 V) ([b]action II[/b]) [*] and the controller output is ramped up to the maximum value (let’s say 10 V) ([b]action III[/b]). [*]At this point the motor is moving as fast as it can, slowing down and speeding up as friction increases (location B) and decreases. When approaching C, we ramp down the controller output to (e.g.) 9 V ([b]action IV[/b]) [*] and ‘catch the motor’ by closing the servo-loop while generating a setpoint that is identical to the current position/velocity ([b]action V[/b]) as to prevent any sudden jumps in the controller output. [*]After this we decelerate to zero velocity and arrive at point B ([b]action VI[/b]). [/list] The name "catch the egg" of course comes from the movements one would make trying to catch an egg that was thrown at you: attempt to match the egg's position/velocity with your hands before grabbing it. I believe actions I-IV are doable, but for action V I ask your input. (heck, if someone wants to write the programs for all actions, go right ahead...) I'm looking forward to any input related to this problem. regards, Meindert

• Replies 7
• Created

#### Popular Days

If the location of point B is known, one can simply use the torque compensation table of each motor to define the required changes in the torque/force.
##### Share on other sites

Hi Sina, Thanks for thinking outside of the box. However, I'm really looking for a solution for "action V" as described above. Let's just say that the location of B is unknown. regards, Meindert
##### Share on other sites

If you have pure DAC output, using the DacBias term and input of location of B, one can implement what you're trying to achieve based upon the relative position of motor and B. You also should be able to achieve the same to implement the same by writing to Motor (Quadrature/torque) command bias (from TCOMP table) if you're not using the torque compensation table of course.
##### Share on other sites

Hi Sina, I'm not sure how to respond, because I'm not familiar enough yet with the compensation tables and bias that you mention. However, I understand you're still using location B for something. As I mentioned earlier, location B is unknown. I would like to see if the procedure as I described it can be implemented, (1) to get a better understanding of the possibilities of the Delta Tau architecture and (2) because I am planning to use the implementation for [b]action V [/b] of the procedure for an application of which I can-not post details in this forum. Thanks, Meindert
##### Share on other sites

• 2 months later...
##### Share on other sites

John, Thanks for your answer. I will definitely give this a try. Good luck with your telescopes. regards, Meindert
##### Share on other sites

Great! You should also look at PMATCH in Turbo SRM, which essentially does Mxx62=Mxx61, taking into account the coordinate system. I think you'll find this works, and you'll be able to take this idea and extend it to your needs. For example, you could jump into velocity mode when the following error or actual current becomes intolerable, and elide into the position loop later. -John
##### Share on other sites

This topic is now closed to further replies.

### Announcements

×
• Forums

• Events
• #### Browse

×
• Create New...