LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Tuning multiple interrelated PID controllers

Hi,

I am attempting to control forces with pneumatic pistons and regulators. Feedback comes from a 6 degree of freedom load cell. I already have a program designed with PID controllers which works ok. The trouble is tuning the parameters.

So far, I have used Ziegler-Nichols for each single parameter, by testing each piston/PID element individually. Then I have adjusted these manually to make them work together. This means a lot of trial and error, often with unsuccessful results.

Is there any way to tune these parameters and account for the interdependence between them all at the same time?

To clarify the situation:

I am controlling 5 degrees of freedom (Fy is constrained). I am using 7 pistons, and 12 PID controllers - since several pistons affect multiple degrees of freedom.

I can give more detailed information, but I am most interested in suggestions about tuning methods.

Richard Godley
0 Kudos
Message 1 of 4
(3,053 Views)

your project seems very interresting.

however, i do not understand how you use your PID modules. what do they control? is it just force or also position of your load. what is the feedback input itself?

in general, when having several degree of freedom, try and locate the element (in this case piston) that most sensitively and effectively affect each separate degree. with that, the other pistons should just try and keep their own degree of freedom locked. this lead to automatic self regulation, where each piston has its own tuned PID.

one other way of doing it, is by using a minimalisation routine, which would set your feedback parameters relative to your input. do that for several desired inputs, and you should get then an array of tuning parameters for each input vaule. you can then create a tuning function for each PID, which will work on whole range of inputs.

also: try to use only one PID per piston. otherwise they work against each other.

if you would detail the system, we may have better ideas.

-----------------------------------------------------------------------------------------------------
... And here's where I keep assorted lengths of wires...
0 Kudos
Message 2 of 4
(3,045 Views)
I would suggest to see in the dynamic side of your app.
using cynematic model, (interrelation between thoses linear actuator(piston))

if it souds ok for your problem let me know if you need more info,

jacques
0 Kudos
Message 3 of 4
(3,034 Views)
Thanks for the suggestions Gabi1,

The feedback to the PID modules comes only from the load cell. I record the position, but do not attempt to control it – the load does not move very much. This load cell is a 6 degree of freedom robotics load cell – it gives me Fx, Fy, and Fz in Newtons and Mx, My and Mz in Newton-meters.

Your first suggestion sounds very similar to my design – however, I have three pistons arranged in a triangular fashion which are responsible for +Fz, +/-Mx and +/-My. (I never need –Fz) Since these pistons are responsible for multiple degrees of freedom, I have been using multiple PID’s for each piston, and summing the outputs from the PID’s. With my current mechanical configuration, I cannot think of another way to handle my feedback without using multiple PID’s for these pistons.

The minimimalisation idea is intriguing – is this the same thing as gain scheduling? Would I need to do this manually or is there a semi-automatic way to do it?

0 Kudos
Message 4 of 4
(3,007 Views)