Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations MintJulep on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Reduce overshoot with PI

Status
Not open for further replies.

pattiane

Electrical
Apr 24, 2006
19
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
 
Replies continue below

Recommended for you

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
 
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...
 
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
 
What does "not exactly" mean? Either it is or it is not for school.

TTFN



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

 
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
 
"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 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?
 
"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
 
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.





 
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
 
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
 
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



 
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.
 
Yes, but an overshoot with 50% it isn't tolerable!
 
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
 
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.

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.



 
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.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor