Regensteiner
Mechanical
- Sep 2, 2013
- 9
Hi,
I'm a newbie using matlab and to deal with system identification. But as it happend I have to tune a PI Controller for a process. So I thought a open loop test like a step response test is sufficient. I carried out the following test:
set the control signal to a fixed value and see what happen: control signal is set to 6 A at t=0 and the output value is measured. I got the follwoing data for Y: 0.03, 0.04, 0.04, 0.11, 0.11, 0.7, 0.7, 1.06, 1.06, 1.22, 1.22, 1.29, 1.29, 1.34, 1.39, 1.39, 1.42, 1.42, 1.42, 1.42, 1.43, 1.43, 1.42, 1.42, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.43, 1.43, 1.42, 1.42, 1.39, 1.39, 1.4, 1.4, 1.4 --> unit kW
the time is t=0:0.5:39;
Then according to Hägglund one calculate the paramaeters of first-order plus deadtime model G(s)=Ks/(1+sT)*e^(-sL):
Ks=Y(end); %not quite right but close
A0=trapz(T,(Ks-Y));
t0=A0/Ks;
t0=A0/(Ks);
idx=find(T<t0);
t1=T(idx);y1=Y(idx);
A1=trapz(t1,y1);
tau=exp(1)*A1/(Ks);
L=max(0,(A0-exp(1)*A1)/(Ks));
GM=tf(Ks,[tau 1],'iodelay',L);
Well, I got something for the parameters: L=2.34 Ks=1.4/6 tau=T=1.016 but what tunig rule (practical) is suitable for this problem? The deadtime is twice as the time constant. So it's hard to control. Does somebody has a suggestion?
cheers,
I'm a newbie using matlab and to deal with system identification. But as it happend I have to tune a PI Controller for a process. So I thought a open loop test like a step response test is sufficient. I carried out the following test:
set the control signal to a fixed value and see what happen: control signal is set to 6 A at t=0 and the output value is measured. I got the follwoing data for Y: 0.03, 0.04, 0.04, 0.11, 0.11, 0.7, 0.7, 1.06, 1.06, 1.22, 1.22, 1.29, 1.29, 1.34, 1.39, 1.39, 1.42, 1.42, 1.42, 1.42, 1.43, 1.43, 1.42, 1.42, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.43, 1.43, 1.42, 1.42, 1.39, 1.39, 1.4, 1.4, 1.4 --> unit kW
the time is t=0:0.5:39;
Then according to Hägglund one calculate the paramaeters of first-order plus deadtime model G(s)=Ks/(1+sT)*e^(-sL):
Ks=Y(end); %not quite right but close
A0=trapz(T,(Ks-Y));
t0=A0/Ks;
t0=A0/(Ks);
idx=find(T<t0);
t1=T(idx);y1=Y(idx);
A1=trapz(t1,y1);
tau=exp(1)*A1/(Ks);
L=max(0,(A0-exp(1)*A1)/(Ks));
GM=tf(Ks,[tau 1],'iodelay',L);
Well, I got something for the parameters: L=2.34 Ks=1.4/6 tau=T=1.016 but what tunig rule (practical) is suitable for this problem? The deadtime is twice as the time constant. So it's hard to control. Does somebody has a suggestion?
cheers,