Professional Documents
Culture Documents
FUNCTIONAL
CONTROL
J.Richalet 2015
WHO INVENTED
PREDICTIVE CONTROL ?
ERGONOMY OF FLIGHT
CONTROL
• In the fifties :
• How the pilot manages his aircraft ?
• What operating image ?
• Comparison between:
• Human control and Automatic control :
SURPRISE ! ….
Jean Piaget (1896 / 1980)
– COMPARISON BETWEEN
– ERROR COMPENSATION
PREDICTED AND ACHIEVED
RESULT
• NATURAL CONTROL : “ YOU DO NOT DRIVE YOUR CAR WITH A PID SCHEME”
PREDICTIVE CONTROL
IS NOT
AN INVENTION
G e-θ s y
P= =M= θ = Tsamp . r
1 + Ts u Trajectory expo. : λ
-Tsamp
y(n) = α y(n-1) + (1- α) . u(n-1-r) . Gα = e
T 1 coincidence point: H
Processus with delay yPr (n): = yP (n) + yM (n) - yM(n-r)
1 Base function: step
Target : ΔP(n+H) = (C - yPr) (1 - λH)
(C - y (n)) (1 - λ H) y (n)
u(n) = Pr + M
GM(1 - α H) GM
BAYER
reactor
TEMPERATURE DE MASSE
120
Tmax=108.4°
d°
100
92°
80
60
Tinit=42°
40
20
min
0
0 20 40 60 80 100 120
Figure 4
ON LINE ESTIMATOR of
DISTURBANCES
Pert B
+ +
Cons1 MV1
R1 P SP
+ +
MV2
SP*
Cons2=SP R2 M≡P
-
Pert*
+
ESTIMATION DE L‘EXOTHERMICITE
120
100
Tmasse/ Tmasse
estimée
80
60
EXOTHERMIC
40 ITE
TS
20
TS-
TE
0
min
0 10 20 30 40 50 60 70 80
Figure 3
T2
T1 Reactor
BASF
31
BASF
4 CONTROL STRATEGIES OF BATCH REACTORS
R R Reagent dT
r CMV M= UA T - T + DHx
M P M dt e M
r e CeP Ve dTe = r e Fi Ti - Te + UA TM- Te
¥
TM
dt
Fi, Ti Te
.
q(Fi) TM+ TM= Ti
TM
Qf
Tof
Tif
Control PID Degussa / EVONIK
temperature [°C]
+/- 2 °C
time
+/- 0,2 °C
temperature [°C]
time
consigne de poids
busette rotative
A PFC
quenouille t
mesure de poids
mesure de position
distributeur de 60 t
consigne=70% vérin busette à 2 ouïes
PFC PI A
amplificateur
de puissance
capteur
mesure de niveau radio-actif
cages d’extraction
IDENTIFICATION
-‐
Ultra-low level test signals ! ! ….
70
60
50
without with
40
30
STOPPER
20
10
Amp sinus
0
Bmp cosinus
-10
Frequency reference
-‐
Bench test of pump gaskets
-‐
Flow : 35000 m3/h ….! ?
- Pressure : 17.50 MPa
- Temperature : 330 d°
CONTROL ENVIRONMENT
Pressuriser
Steam generatorr
REACTOR
PUMP
PFC controller
:
" Size : 10 m
" Mass : 100 tons
" Flow: ~35000 m3/h
Engine
Pump
Support
Débit
T5 T0 T31 source T0
chaude
Convexité Echangeur Chaud
TEQ = L x T31 + ( 1 – L ) x T0
Régulation débit
PFC CHAUD
chaud T31
Logique de
Consigne de choix de T51
température l’action
(Chaud ou
Froid)
Régulation débit
PFC FROID
froid
Convexité Echangeur Froid T30
55,0
45,0
35,0
25,0
Temps (heures)
15,0
18:14:24 18:21:36 18:28:48 18:36:00 18:43:12 18:50:24 18:57:36 19:04:48
PFC
position vanne (%)
Température (°C)
80,0
60,0
40,0
T Inj
Consigne
20,0 retard +3 mn
Temps (heures)
0,0
14:31:12 14:45:36 15:00:00 15:14:24 15:28:48 15:43:12 15:57:36 16:12:00 16:26:24
F1, T1
Convexity Theorem
F, T
F2, T2
qf, tef
1 1
1 − exp[−U.A( − )]
Fp Ff
Γ(Qf ) =
Fp 1 1
1− exp[−U.A( − )]
Ff Fp Ff
Fp, Ff : Thermal flows
Fp = (ρ.Cp)p.Qp Ff = (ρ.Cp)f.Qf.
SANOFI
VERTOLAY
VITRY sur SEINE
ARAMON
MONTPELLIER
KÖLN
// E_com_intg12
// process H(s) :integrator with delay : H(s)=exp(-R.s)/s
clear; xdel(winsid());clc
tf=1200;w=1:1:tf;
u=zeros(1,tf); MV=u;CV=u;
SP=u;sm=u;DV=u;
tech=1;//sampling period
r=50; // dealy R=r*tech
G=0.01; // proportional gain
tau=1/G; // closed loop time constant
am=exp(-tech/tau); bm=1-am; //model parameters
trbf=250; lh=1-exp(-tech*3/trbf);
SP=100; // set point
for ii =2+r:1:tf,
// perturbation
if ii>600 then DV(ii)=-0.2; end
// MV proportional loop
ec(ii)=MV(ii-1-r)-CV(ii-1); // error
MVp(ii)=G*ec(ii);
CV(ii)=CV(ii-1)+MVp(ii)+DV(ii);
// pfc
sm(ii)=sm(ii-1)*am+bm*MV(ii-1); // model
spred=CV(ii)+DV(ii)*1+sm(ii)-sm(ii-r);
d=(SP-spred)*lh+sm(ii)*bm;
MV(ii)=d/bm; // MV pfc
end
scf(0)
plot(w,SP*ones(w),'k',w,CV,'r',w,DV*100, 'k',w,MV,'b')
a=gca(); a.grid=[1,1]; a.tight_limits="on";
a.data_bounds=[1,-40;tf,140];
xlabel('sec');
xtitle('Control of a process : integrator + delay CV r / MV b /
DV*100 k')
Ordinary
example:
control
of
a
loop
with
constraint
transfer
// O_pfc_transparent
// back calculation, transparent control of level
clear,xdel(winsid()),clc
tf=1000; //duration of test
w=1:1:tf; //time;
tech=1;//sampling period
u=zeros(1,tf);
CV=u;//process output
MVp=u; MV=u;//manipulated variable
eps=u; //error
sm=u; //output of model
k=0.1; // gain of integrative process level
Kp=0.07; // gain of P(ID)
tau=143; // =1/(k*Kp)
am=exp(-tech/tau);
bm=1-am; //time constant of internal closed loop system by P(ID)
trbf=200; //desired closed loop system by PFC: only tuning factor
h=1; lh=1-exp(-tech*3*h/trbf);
fl=input('fl (1 with back calculation / 0 without back calculation) = ');
MVmax=5; //maxvalue of mv
SP(1:tf)=100;
for ii=2:1:tf,
eps(ii)=MV(ii-1)-CV(ii-1); // error of P(ID)
MVp(ii)=Kp*eps(ii); // manipulated variable of P(ID)
if MVp(ii)>MVmax then MVp(ii)=MVmax;end // constraint on the mvp
mvbc=(MVp(ii)/Kp)+CV(ii-1); // back calculation
CV(ii)=CV(ii-1)+k*MVp(ii-1);// output of process
sm(ii)=sm(ii-1)*am+bm*(fl*mvbc+(1-fl)*MV(ii-1));// internal model of
PFC with/without transfer of constraint
d =(SP(ii)-CV(ii))*lh+sm(ii)*bm; // computation of mv
MV(ii)=d/bm; // computation of mv
end
scf(0)
plot(w,SP','k',w,MVp*10,'m',w,CV,'r',w,MV,'b');
a=gca(); a.grid=[1,1]; a.tight_limits="on"; a.data_bounds=[2,0;tf,230];
xlabel('sec')
if fl==0 then title('without back calculation SP k / MVp*10 m / CV r / MV
b'),end
if fl==1 then title('with back calculation SP k / MVp*10 m / CV r / MV
b'), end
Conclusion
• Dissemination? : where is the problem?
• The technical and economic efficiency of
PFC is clearly demonstrated on many different
processes World Wide
• Implementing PFC: the Scilab PFC book