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
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
What make is the inverter? Isn't there autotuning? Most inverters have that.
Gunnar Englund
www.gke.org
RE: Reduce overshoot with PI
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
Gunnar Englund
www.gke.org
RE: Reduce overshoot with PI
RE: Reduce overshoot with PI
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
TTFN
RE: Reduce overshoot with PI
RE: Reduce overshoot with PI
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 ht
RE: Reduce overshoot with PI
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
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
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
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
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
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
RE: Reduce overshoot with PI
RE: Reduce overshoot with PI
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
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.
In this case yes, because of the reasons stated above, but that isn't alwasys the case.
RE: Reduce overshoot with PI
RE: Reduce overshoot with PI
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
Gunnar Englund
www.gke.org
RE: Reduce overshoot with PI
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
Gunnar Englund
www.gke.org
RE: Reduce overshoot with PI
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
Gunnar Englund
www.gke.org
RE: Reduce overshoot with PI
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.