PID tuning

Hi all, I am working on positional control of an BLDC motor ,i am using TIDSP as an controller and I want to follow the ZN ultimate sensitivity method in developing the PID algorithm ,First i would like to go for the proportional controller alone for my system to know the proportional gain and the ultimate period ,later with the help of the gain and period ,i will calculate the Kp,Ki and Kd values.Is this the right way to develop the PID algorithm for my system. Please clear me one thing,when i am setting the target position to some 1000 counts,At first from the encoder feed back i will notice that the motor shaft has rotated to some position say 400,here the error is 600 ,again i will send this error to my proportional controller from there to the actuator to move the rotor to the desired set point,finally i will notice at some point with the sustained oscillations ,i will calculate the tuning constants and finally i will implement the PID controller . here when i am implementing the P controller alone,i need to set some gain and i need to increase this gain to the desired set point,what is the intial value for the proportional gain 'K' and at what rate i need to increment this again to see the sustained oscillation .Please also clear me how to draw the waveform regarding the position versus time. Please give me your valuable suggestions to implement the pid algorithm for my application.

thanks in advance,

With regards, Sudheervemana.

Reply to
sudheervemana
Loading thread data ...

I've never used Zeigler-Nichols myself. It is certainly _a_ way, but I wouldn't use it for a final tuning unless my requirements were not very critical. It probably would be a good way to get a starting point for a stable system to tune further using other means, and I understand that there are a number of process-control auto tuners based on it.

Are you asking about your system dynamics, or how to set your proportional gain?

Initial values for proportional gain depend heavily on factors that can vary wildly depending on how your system is put together, so you're really on your own. Just try a value, then go up or down by factors of

10 until you straddle the oscillation point. Once you've found the two points you can narrow things down.

For plotting, just capture your data set and feed it into a package that can plot. Matlab, MathCad, Maple and Mathmatica are all packages that you can buy. Octave, SciLab and 'R' are packages (or languages) that you can get for free. I've used both Octave and SciLab and they both seem decent.

If you know your motor characteristics and the characteristics of the load you're probably much better off modeling the system mathematically, doing an initial control system design by the numbers, then tuning it. Even for an unknown system I'm not sure that Z-N is the way to go -- I would lean more toward doing a system identification to get a model, then doing the control design by the numbers. I'd only tend toward Z-N if I knew my system to be severely nonlinear, I didn't have much time to spend, and my control requirements to be light.

For an alternative method of tuning a PID, further information about motor control (which may or may not apply in your case), and a paper on basic z-transform control system design (I assume you're doing this in sampled time) see my website and click the links on the left under "Articles".

Reply to
Tim Wescott

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.