Jump to content
OMRON Forums

Setting up feedforward torque to servo loop via virtual motors


Recommended Posts

Hi DT support,


I am trying to set up a feedforward torque control delta robot. The inverse dynamics has been calculated and I plan to upload a list of compensating torque to the 3 motors used to actuate the manipulator.


Currently, a PMAC card


is used control the robot through the on board position servo loop. I hope to reduce following errors by introducing this compensating torque.


I wonder if it is possible to use virtual motors to update the torque compensating tables of the real motors for every servo cycle? I hope to map the 'commanded position' of the virtual motors (really the calculated torque) to the torque compensation tables or the real motors.


Would a PLC program be sufficient to do this?


Ideally, I hope to implement a motion program script which would look something like this:




X45 Y45 Z45 A(torquetermX) B(torquetermY) C(torquetermZ)





PVT 50

X45:00 Y45:00 Z45:00 A(TorqueX:TorqueX') B(TorqueY:TorqueY') C(TorqueZ:TorqueZ')




where X,Y,Z are the real motor angles and A,B,C are the virtual coordinate systems.


Thanks in advance!

Link to comment
Share on other sites

  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

I think you have a good strategy here. To implement this, assuming X, Y, and Z use Motors 1, 2, and 3 in C.S. 1:


- Assign your A, B, and C "axes" in C.S. 1 to PMAC Motors 4, 5, and 6. These will operate as virtual motors.


- Set Ix03 and Ix04 for these motors to the address of a register that always holds a zero value (e.g. X:$0770). This means that the following error will be equal to the motor command "position" (which is a torque value for you).


- Set all servo gains except Ix30 to 0. The proportional gain term Ix30 will act as a scale factor to the output.


- Set the Ix02 servo output address parameter to the address of the torque offset register for the real motor you want to affect. The addresses are $45 for Motor 1, $81 for Motor 2, and $BD for Motor 3.


- Set Ix11 for the virtual motors to 0 to disable fatal following error limit.


- Set bit 20 and bit 17 of Ix25 to 1 on virtual motors to disable amplifier fault and overtravel limit functions.

Link to comment
Share on other sites

This topic is now closed to further replies.

  • Create New...