Jump to content
OMRON Forums

Setting up feedforward torque to servo loop via virtual motors


lanenwie

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

(VERSION: 1.17C ;TYPE: PMAC1, ISA/VME, FLASH, PID, CLK X2)

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:

 

%%%%%%%%%%%%%%%%%%%%%%%%

SPLINE1 TA50

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

...

%%%%%%%%%%%%%%%%%%%%%%%%

or

%%%%%%%%%%%%%%%%%%%%%%%%

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

Guest
This topic is now closed to further replies.

×
×
  • Create New...