Servo PID Motion

plcengineer

Member
Join Date
Jan 2004
Location
USA
Posts
176
Gents,

I have an application that I am starting. First of all, we have Kinetix 6000 drive communicating to a Controllogix Sercos Motion Card. I am trying to see how to handle a PID or even if that is the right way to do the project... Here is what we have

Basically, we are pushing a metal rod into a welder and monitoring the voltage feedback on the welder. We want to use the voltage feedback to keep a constant air gap.. If a rod starts off and is 12" long, the voltage may be 75V.. As the rod burns and as the servo moves the rod, it may end up 2" at 10V.. So, as you can see, the servo moves the rod into the positive weld lead and tries to maintain the airgap..

Question, I know that I am dealing with position.. It appears that I need to run a PID with the SP being the Voltage Feedback from the welder.. I have reviewed PID and PIDE.. Would I need to use a cascaded loop.. I think I need some help on the best way to control this application..

Thanks,
PLCENGINEER
 
There are three control loops in this application: voltage feedback loop, servo position loop and servo velocity loop. The last two have already been implemented for you within the hardware you are using; you need to implement the third, namely for the voltage. In other words, the output of PID loop with target voltage (gap) as SP and the actual voltage as PV will produce a signal to offset the servo position that has to be supplied by means of one of the available motion commands. If voltage PV does not change, the servo will maintain its position by iself, without any action on your side.

Of course, each of the loops has to be tuned for optimal responsiveness, using one of the standard methods. However, since the application seems to be relatively slow, you may get away with the default settings. If the servo motor has been correctly chosen for torque and inertia, that is.

Am I correct assuming that the voltage feedback is a linear function of the air gap (for given electrode type, material type etc.)? If this is so, you may not need the voltage PID loop at all: if you know that change in 1V of feedback means change of 0.01 inch in the gap, you just command the servo to move 0.01 inch per 1V voltage change, that is all. Of course you need to filter your feedback signal to avoid unneccessary jerking of the servo.

I wonder how are you planning to establish the initial rod position? My idea would be to run the servo, with weld power off, towards the welded part slowly at low torque limit and latch the position when the torque limit exceeded signal comes on, i.e. the rod just touched the part. That would be your zero position; turn the welder on, move away to the desired gap, memorize the voltage and just maintain it all the way... Something like that, although I may not be aware of some weld process specifics.
 
Last edited:
Please help me understand how the sp voltage for air gap would work. For example if I enter a sp of 25v, the initial gap feedback when I start would be 75v. The pid would then try to achieve 25v but I don't want that.. I thought I would need to have the voltage feedback be the sp for position.. maybe I am missing something here..


thanks,
plcengineer
 
Basically, we are pushing a metal rod into a welder and monitoring the voltage feedback on the welder. We want to use the voltage feedback to keep a constant air gap.
Does the rod burn at a fixed rate?
Or is the burn rate relative to motion of whatever you're welding?

Perhaps a MATC or MAPC instruction (time or position cam) could provide the basic motion control of the rod.
Then you could use the voltage feedback to trim the motion with gearing (MAG).
 
From what I understand, if you start burning a rod, the voltage feedback may read 75V.. After the rod has completed the burn and is pretty short, the voltage may read 10V.. So, it appears to me that the voltage decreases the shorter the rod.. I was wandering how I could do this..


I think that the rod burns at a fixed rate.. I am assuming that we would want to set the speed of the motion going in and adjust the position relative to the voltage feedback..
 
I wish I knew more about the arc welding process... Coudn't find anything authoritative enough on the Web, except this short paragraph:

Arc voltage depends upon the physical length of the arc between the electrode and the work and this can never be held completely constant in manual welding. But, since rate of burn off of filler metal is determined by the amount of current, burn off stays substantially constant if current doesn’t vary.
http://www.key-to-steel.com/Articles/Art167.htm

I guess the simple version I mentioned above might work, as long as there is known relationship between the arc length (i.e. the gap) and the measured voltage.
 
plcengineer said:
So, it appears to me that the voltage decreases the shorter the rod.. I was wandering how I could do this..

Is that so? When the rod touches the part, it is a short circuit and the voltage would be practically zero. When the rod is away from the part and there is no arc, it's an open circuit and the voltage is whatever the power supply produces (say, 80 V).

When there is an arc... looks like it is as simple as Ohm's Law: smaller gap, lower voltage; larger gap, higher voltage.

Your goal is to maintain constant gap as the rod burns; therefore your initial SP cannot be anything you want - it must be whatever voltage is being measured at the beginning of the weld cycle, when the gap is known (see Peter's point above). From then on, your program must follow the change in voltage with the matching change in the rod position.

So your SP will stay the same all the time (unless someone wants to weld at different gap setting), but the PV will vary (most likely it will increase over time, as the gap increases). Your program will react to PV changes by moving the rod so PV gets close to SP again. Until the rod is done (I guess the rod length is known so you know when to stop).
 
Shoot. I guess I failed to mention a very important point here: the output of the PID loop (if you are to use PID method) should be a velocity command for the servo and the axis should be switched to constant velocity mode after having moved to the initial position. Sorry.
 

Similar Topics

Hey Guys, Got an application where the Engineer purchased some Hydraulic Servo Valves and would like me to write a PID to control the position...
Replies
3
Views
1,675
Hello, I'm student from Malaysian and currently doing a final year project about PID controller design for servo motor by using PLC. If you dont...
Replies
19
Views
7,921
I've started working with servos and am wondering what algorithm the servo drives (Kinetix 6000s) use when the servo loops are closed. I am used...
Replies
10
Views
11,497
Hi, I'm working on Mitsubishi MR-J5-70A amplifier, and need some advice on selecting fuse size. Main power is 1ph 240VAC, and in the manual, it...
Replies
1
Views
66
Good morning, We've had an issue with a couple of servo valves and was wondering if anyone had seen anything similar. After a drop in pressure...
Replies
2
Views
95
Back
Top Bottom