×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

Reduce overshoot with PI

Reduce overshoot with PI

Reduce overshoot with PI

(OP)
Hi all,

I am struggling with PI controller to control a curretn controller.The control  is  in discrete time.

Basically, i have a set-up with an inverter and LCL filter.
The idea is to control, using dSPACE,  the current in d and q axis measured in the output of the LCL filter.

What I'm currently doing is to use a model of LCL filter to tune my PI regulator in Simulink.The reference current is a step.
The model of LCL filter is good, there is no problem.
My simulation model is also right, I checked with an other sample of LCL parameters.

But with my set-up of LCL filter, I cannt reduce the resulted overshoot .

I don't know if you get my point...
Basically, I need to know why in certain systems we cannot reduce the overshoot, is it because of a wrong compensation of poles?...

Thanks

RE: Reduce overshoot with PI

It depends on a few things that you have not mentioned. That LCL filter, is it an output reactor, a capacitor and the motor winding? Or is it two reactors and a capacitor in-between. How then is that filter loaded? Do you have a problem with both components (Iq and Id)? What step response are you after?

What make is the inverter? Isn't there autotuning? Most inverters have that.

Gunnar Englund
www.gke.org

RE: Reduce overshoot with PI

(OP)
LCL: It is two reactors and a capacitor in-between.

Basically the LCL filter is connected to the grid, the aim is to control the current.

the problem is independant of Id or Iq, the problem is the for a plant (LCL) controlled by a PI, there is some overshoot when parameters change i.e. when filter is sized for high power.
The control model is simple feedback loop, with PI, plant, some saturation in output and a reference(which might be Id or Iq).

My problem is more related to control theory , I guess.
I'm sure the problem is control but deeply related to the plant.To the parameters.

I'm suing root locus to tune the PI, but even though, there's somewhere a trick...

RE: Reduce overshoot with PI

Sounds like school?

Gunnar Englund
www.gke.org

RE: Reduce overshoot with PI

(OP)
Not exactly...

RE: Reduce overshoot with PI

OK. Then, one needs to know the impedance of the voltage (or current) source driving the LCL filter. It is also necessary to know the load impedance. An open LCL filter can be treated as a single LC link. A shorted LCL filter fed from an ideal voltage source can be reduced to an LC link (with L = L1//L2).

In both cases, you have a plant with a resonance and that needs a first order low pass filtered driving function. I do not think that you can get rid of the overshoot if you apply a step function. Not in real life. Are the L's ideal? No losses?

Gunnar Englund
www.gke.org

RE: Reduce overshoot with PI

What does "not exactly" mean?  Either it is or it is not for school.

TTFN



RE: Reduce overshoot with PI

So where is the transfer function?  Without the transfer function we can only guess.

RE: Reduce overshoot with PI

The impulse response of each of the PIDF control actions
can be viewed as a basis vector for the overall control action.
The impulse response of the controller is constructed by a
linear combination of these basis vectors. In design or
tuning, the challenge is to achieve acceptable
performance from a controller in the subspace
spanned by this basis. In this light,
alternative basis functions can be
employed (and implemented digitally
with ease) to achieve the same basic
functionality as PID, such as immediate
response, internal model, and
error prediction.
If this sounds interesting then you may want to rad this short article http://www.ieeecss.org/PAB/csm/columns/February2006/PIDControlKnospe.pdf

RE: Reduce overshoot with PI

"The impulse response of each of the PIDF control actions
can be viewed as a basis vector for the overall control action.
The impulse response of the controller is constructed by a
linear combination of these basis vectors. In design or
tuning, the challenge is to achieve acceptable
performance from a controller in the subspace
spanned by this basis. In this light,
alternative basis functions can be
employed (and implemented digitally
with ease) to achieve the same basic
functionality as PID, such as immediate
response, internal model, and
error prediction."



Even the article doesn't say anything.  I don't see how this posts helps anybody as there is no procedure suggested.  The OP should provide the open loop transfer function.  The we can use methods such as given on http://www.controlguru.com or use the Ackerman method to place poles to get a desired response.  The desired response is one that minimizes over shoot.  A critically damped or over damp response satisfies this goal.  The controller may need to be more than just a PI controller if a critically damped or over damped response is desired. I bet the LCL filter will require much more than a simple PI controller to achieve a critically or over damped response.

A PI controller can only be used to place one pole since the integrator has its own pole.  A PID controller can place two poles and a PID+D' controller can place 3 poles.   All the poles need to be placed on the negative real axis to provide a critically damped or over damped response.

The open loop transfer function is required.  Without that we can only guess.  Well?

RE: Reduce overshoot with PI

"To a man with a hammer, everything looks like a nail"

I think that the alternative ways of controlling a system are a lot more than BS. PNachtwey, if your only tool is a hammer, I think it would be wise to go and look for other tools as well. There are lots of them and many are quite useful.

The link provided by imok2 didn't work (yes, I am an IEEE member) so I do not know exactly what it is about. But there are many ways to skin a cat and the fact that you haven't done it this or that way doesn't mean that it is a bad way of doing it.

The focus on pole placement/transfer function indicates classic control theory as taught in schools. Not necessarily used IRL.

Gunnar Englund
www.gke.org

RE: Reduce overshoot with PI

(OP)
Some details:
1/ LCL = LC filter + L (transformer)
     Rd = damping resistor in serial with C
     L are not ideals.
     Ri is the intern resistance of Li, inverter side inductance
     Rg is the intern resistance of Lg, inverter side inductance
Li = 0.45mH
Lg = 0.5mH
C = 9.4uF
Rd=1.6 Ohm (calculted theoritically regarding the rated Power, which is equal to 31kW, though should be smaller in my system )
I don't have the exact value of Ri and Rg, I'm waiting for...
I assume roughly Ri=0.01, Rg=0.01.
The main values are Li and Lg for the current control.


2/ Transfer function of LCL filter i.e. current grid/inverter voltage :
Ig/Ui =
 (Rd.C.s +1) / (Li.Lg.C s^3 + Rd.C.(Li+Lg).s^2 + (Li+Lg).s)

3/

in Matlab file to determinate kp:

/*==========================================*/
fs=8000;    % Sampling frequency = Switching frequency of the converter
ts=1/fs     % sampling time

Li=0.45e-3;
Lg =0.5e-3;
Cf=9.4e-6;   
Rd=1.6;  

% Transfer function of LCL filter [Grid Current/Inverter Voltage] ig/ui
num=[Rd*Cf 1];
den=[Li*Lg*Cf (Li+Lg)*Cf*Rd (Li+Lg) 0];


%% PARAMETERS OF THE REGULATOR %%
%I choose a Ti= 5ms
Ti=5e-3;   
% Transfer function of PI regulator without Kp
numpi=[Ti 1];
denpi=[Ti 0];

dpi=c2d(tf(numpi,denpi),ts,'tustin');
% discrete form of PI using tustin discretization method
% s= 2/ts * (1-z^-1)/(1+z^1)

% Added in Open loop a delay representing the inverter
dn=[1];
dd=[1 0];
de=tf(dn,dd,ts);        

%% OPEN LOOP and Tuning Kp
fo=dpi*de*dtf;          %Open loop transfer function

rlocus(fo);             %Root locus display
zgrid

/*==========================================*/

Tuned Kp is equal to 2.75.

NB: It seems as a school method, but I'm using only used method  for my first job.(That's "Not exactly" means)

5/ I check the regulator  in a matlab model :
PI output is a voltage , will be the inverer voltage.

Open Loop is composed of : PI  + a delay + a saturation representing also the limit of inverter [-30 , 88]  + LCL transfer function
The feed back is just a ZOH

I runned the model with
                   solver: Ode5, fixed Step=ts/150 (ts=/8k)

6/ a PI should be enough since with an old system I have :

Li=10e-3;
Lg =2e-3;
Cf=2e-6;   
Rd=1e-3;   Ri= 0.255 Rg=0.6
fir Ti=5ms, Kp=30 and it works perfectly with a simple PI!

Hope it can help you to understand the problem..
Thanks.
PL

RE: Reduce overshoot with PI

skogurra, what do you recommend?  What methods were recommended by the BS above?  None.  Where would you place the poles to avoid over shoot?  How would you avoid over shoot?

Say what you want.  The whole lot of you have not suggested a better method of reducing over shoot.  I have suggested a method.  The lot of you seem to think a PI will do the job.
At least none of you suggest that a PI might not.  It may but it may not depending on the transfer function but at least I am willing to say that.  

You know very well that if the poles are not on the negative real axis the response will overshoot.  If you don't then you should be offering advice on tuning.

Well, I am waiting for a transfer function.  You are wasting bandwidth and none of this makes any difference if we don't get an open loop transfer function. Be professional and stop guessing, wait for the transfer function.  Then we can compare answers.



  

RE: Reduce overshoot with PI

PNachtwey,

What I wanted to say is that, even if you think that the imok2 text is BS to you, it isn't necessarily BS to other guys. There are a lot of different approaches when one wants to design a fast and robust control system. Pole placement is but one of them.

Well, now you have the whole problem described, including transfer functions. Place the poles and let's see what the resulting step response looks like. That's what Eng-Tips is for.

Gunnar Englund
www.gke.org

RE: Reduce overshoot with PI

BTW, the link is not really useful at all.  

It's the introduction to a special section to the Feb, 2006 IEEE Control Systems Magazine.  It's only 2 pages, so I'm not sure what all the blather is about, since the 5 articles introduced are not included.

TTFN



RE: Reduce overshoot with PI

For a step input with PI control there will almost always be an overshoot.  This is due to integrator windup while the output is slewing.

RE: Reduce overshoot with PI

(OP)
Yes, but an overshoot with 50% it isn't tolerable!

RE: Reduce overshoot with PI

Hello pattiane,

I am comparing your parameters. There is one that I do not understand at all. How can you have an Rd = 1.6 ohms when your other example (the one you have an acceptable step response in) has 1 milliohm? The other parameters are more or less in the same ball park - but not Rd.


From your posting:

Not working
Li=0.45e-3;
Lg =0.5e-3;
Cf=9.4e-6;   
Rd=1.6;  

Working
Li=10e-3;
Lg =2e-3;
Cf=2e-6;   
Rd=1e-3;   

Gunnar Englund
www.gke.org

RE: Reduce overshoot with PI

Can't we just get the total open loop transfer function is the s domain?  something like:

T(s) = 10/(s*(s+1))

I can see right now a PI controller will not do the job.  There are too many poles in the filter alone.  A higher order controller will be needed.  One may get by with the PI if feed fowards are used.

Quote:


For a step input with PI control there will almost always be an overshoot.  This is due to integrator windup while the output is slewing.
In this case yes, because of the reasons stated above, but that isn't alwasys the case.



RE: Reduce overshoot with PI

Does the loop overshoot or ring with proportional gain only?  As PNachtwey points out, with an LCL filter there are three poles and depending on their location, the loop can ring if the P gain is too high.  Integral gain adds phase shift that only make this worse.

RE: Reduce overshoot with PI

(OP)
Hello skogsgurra,

About Rd in not working system,it is high.
Actually, this damping resistor is calculated theoritically by taking into account resonance frequency and capacitor:
             Rd= 1/3 * 1/ (OMEGA_res.C)
But it is true that in real, it should be very small about mOhm. But I wanted to check firstly with the theoritical value.

RE: Reduce overshoot with PI

Suddenly very quiet in this thread. How's it going?

Gunnar Englund
www.gke.org

RE: Reduce overshoot with PI

(OP)
Hi All,

Yes, it is Skogsgurra.
Ive resolved my problem yersteday...

The source of problem was the used design of PI controller.
I didn't use a normal controller, the design was slight different.
Once tuned the PI using SISOTOOL(Simulink GUI), Ive taken the transfer function of PI from that, with
Kp (z-zp)/(z-1) format.
Since the discretization of the controller is done by Tustin method in SISOTOOL, zp= (Tsw-2Ti)/(Tsw+2Ti), I can find out Ti knowing the switching period Tsw.

"A PI controller can only be used to place one pole since the integrator has its own pole."PNachtwey
I forgot to mention also that the capacitor C of LCL filter can be negligible.
why? Because, C is DELTA wired in 3-phases, then in Y wired configuration, the current passing through C is equal to :
Ic = Vphase to neutral / Zc
with Zc= 9.6 uF * (2*pi*50Hz)
Ic is about 0.7 A, so the capacitor can be negligible, then
the transfert function of the plant (LCL) becomes:
H(s)= 1 / (Li+Lg)s
1 pole instead of 3 poles, you can check it works, the control is the same.

Thanks anyway for your help and questions.

LP

RE: Reduce overshoot with PI

You got me confused there. And I still am. Difference equations (z) are perhaps more common in pure DSP programming. Control people are used to s domain.

Gunnar Englund
www.gke.org

RE: Reduce overshoot with PI

(OP)
Skogsgurra,

Ok, let's say that I was able to tune the controller using SISOtool, which enables to find pole and zero of the controller.
In PI case:
Kp (1+ Ki/s) = K( s + Ki) / s                with Ki=1/Ti
Ki is the zero of the plant.

So I was to find Ki and Kp via SISOtool.That's all.



RE: Reduce overshoot with PI

So, there wasn't any problem at all?

Gunnar Englund
www.gke.org

RE: Reduce overshoot with PI

(OP)
The problem was from the design of PI with Simulink blocks.
But I still don't understand why this design works with the first set-up and not with the second set-up, which is mine.

In fact,using PI as a transfer function has resolved the problem, in my global system.



Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources