Documente Academic
Documente Profesional
Documente Cultură
TRANSFORMER
Hydraulic
control
unit
(13.1)
R0
R4
R1=k1x1
R4
R2=k2x2
R4
R3=k3x3
U I1 I 2 I 3 R0 I1 R4 I1 k1 x1
U I1 I 2 I 3 R0 I 2 R4 I 2 k 2 x2
U I I I R I R I k x
1 2 3 0 3 4 3 3 3
55
(13.2)
I
1
1
1
R 4 k 2 x 2 R4 k 3 x 3
R0 R4 k1 x1 R0 R4 k1 x1
I1
1
1
R0 R4 k 2 x2 R0 R4 k 2 x2
x
R
x
4
3
3
4 1 1
U
I1
1
1
R0 R4 k 3 x3 R0 R4 k 3 x3
R4 k 2 x 2 R4 k1 x1
(13.3)
SETPOINT PROGRAMMER
MBPC1
MBPC2
ARC1
U1
U2
HS1
HS2
x1
x2
ARC2
MODEL2
I2
MBPC3
U3
HS3
x3
ARC3
MODEL3
I3
COMPUTER
PHYSICAL PROCESS
electrice pe cei trei electrozi difer datorit unor motive cunoscute sau
necunoscute;
-pentru partea de sistem hidraulic se va considera un model liniar. ntr-o
implementare real, ieirile sistemului hidraulic respectiv distanele ntre
capetele electrozilor i topitur nu sunt cunoscute. Semnalele de ieire
din proces sunt curenii i tensiunile arcului electric i acestea pot fi
msurate. n simulare evident c distanele respective se vor avea n
vedere.
-pentru simplificarea aplicaiei, vom considera ca i semnale de ieire din
proces ce vor fi controlate, curenii electrici ai arcelor electrice. Trebuie
precizat ns, c uzual sunt controlate impedanele pe fiecare canal sau
puterile consumate pe fiecare canal [9], [22], [37], [38] ;
-datele privitoare la parametrii procesului sunt orientative, multe din
aceste date sunt dificil de determinat. n plus sistemul este supus la
perturbaii variate ca tip, frecven, intensitate etc. Din acest motiv
implementarea unui algoritm adaptiv de control este justificat.
-dei simplu, modelul propus este neliniar. n plus, datorit modului n
care se formeaz sau se sting arcele electrice, algoritmii de control
trebuie s utilizeze i un set de reguli ce implementeaz diversele
condiionri.
-schema prezentat n figura 13.3 implic utilizarea unui model liniar pe
fiecare canal, identificarea on-line a parametrilor modelului i utilizarea
controlului adaptiv-predictiv bazat pe model. Aa cum reiese din
ecuaiile (13.3), procesul este neliniar iar prin abordarea propus se
ncearc aproximarea unui proces neliniar cu un model liniar a crui
parametrii se identific on-line. Desigur c o asemenea abordare prezint
unele riscuri; din acest motiv simulrile realizate sunt extrem de
importante i trebuie luate n considerare diferite variante de modele ale
procesului pentru a putea urmri modul de comportare a algoritmilor de
control propui.
13.2 Implementarea modelului i a algoritmilor de control utiliznd
mediul Delphi
Se denumete formularul principal (proprietatea Caption): Studiul
cuptorului cu arc electric (CAE). Pe formular se depune o component
MainMenu i un timer. Cu ajutorul editorului de meniu (dublu clic pe
componenta MainMenu) se introduc urmtoarele elemente de meniu:
Algoritm (Activare, Dezactivare, Experiment nou, Alege tip algoritm),
57
ariafinala:=grad_umplere*ariainitiala/100;
{regim: 0 nu avem arc; 1- contact fara arc; 2- avem arc electric }
regim1:=0; regim2:=0;regim3:=0;//toti electrozii sunt sus
hist1:=100;hist2:=100;hist3:=100; //histereza control on/off
tipalg1:=1;tipalg2:=1;tipalg1:=1; //tip algoritm:on/off
Semnaldecontrol1Click(Self); //se deschid automat ferestrele
AnimatieCae1Click(Self);
Iesiresireferinta1Click(Self);
Ensiunielectricearc1Click(Self);
AranjareOrizontala1Click(Self);
Activare1Click(Self);
end;
Vom deschide alte patru formulare pe care le vom denumi
(proprietatea Caption) astfel: Animatie cuptor cu arc electric (formular
2), Semnale de control (maron-E1, negru-E2, verde-E3) (formular 3),
Curenti (maron-E1, negru-E2, verde-E3) si referinte (albastru) (formular
4), Tensiuni arc electric (maron-E1, negru-E2, verde-E3) (formular 5).
Utiliznd Project/Options trecem aceste formulare n lista formularelor
accesibile. Proprietatea FormStyle a acestor formulare va avea valoarea
fsMDIChild. Se vor face legturile necesare astfel:
{in formularul 1}
Implementation
{cod existent}
uses unit2,unit3,unit4,unit5;
{in formularele 2..5}
Implementation {cod existent}
uses unit1;
Depunem pe formularele 2..5 urmtoarele componente: Timer,
MainMenu, Chart. Pentru Chart alegei urmtoarele proprieti:
Align=alClient; Title/Visible=False; View3D= False; LeftAxis
(Automatic=False), BottomAxis(Automatic=False),Legend/Visible=False.
Alte proprieti cu referire la chart-uri sunt:
- pentru formularul 2: LeftAxis (Maximum=210, Minimum=-310);
BottomAxis (Maximum=4, Minimum=0, Title/Caption= Pozitia
electrozilor, LabelsOnAxis=False); Introducei 8 serii astfel: trei serii de
tip Line cu proprietatea Border/Width=6 (pentru reprezentarea
electrozilor), dou serii de tip Area (pentru reprezentarea masei de metal
61
Activare1.Enabled:=False;Dezactivare1.Enabled:=True;
alg_on := True;
end;
procedure TForm1.Dezactivare1Click(Sender: TObject);
begin
Dezactivare1.Enabled:=False;Activare1.Enabled:=True;
alg_on:=False;
end;
n mod similar, asociem proceduri corespunztoare pentru
evenimentele OnClick ale elementelor de meniu: Curenti electrici arc,
Tensiuni electrice arc, Semnal de control ; pentru elementul de meniu
Aranjare Orizontala procedura este:
procedure TForm1.AranjareOrizontala1Click(Sender: TObject);
begin
TileMode:=tbHorizontal;
Tile;
end;
Se completeaz procedurile asociate evenimentelor OnClose ale
formularelor astfel:
procedure TForm1.FormClose(Sender: TObject; var Action:
TCloseAction);
begin
if MessageDlg('Terminare program ?', mtConfirmation, [mbYes,
mbNo], 0) = mrYes then Action := caFree else Action := caNone;
end; {pentru formularul principal}
procedure TForm2.FormClose(Sender: TObject; var Action:
TCloseAction);
begin
if (MessageDlg('Se inchide fereastra?',mtConfirmation, [mbYes,
mbNo],0) = mrYes) then Action := caFree else Action := caNone;
end; {similar pentru formularele 3,4,5}
Se alege proprietatea Timer1.Interval =10 (pentru formularele
2..5) i Timer1.Interval=100 (formularul 1). Pentru formularele 1..5 ct i
pentru Chart-uri alegei proprietatea Color=clWhite.
63
begin
Series1.Clear;Series2.Clear;Series3.Clear;Series4.Clear;
Series5.Clear;Series6.Clear;Series7.Clear;Series8.Clear;
//reprezentare electrozi
Series1.addxy(1,x1[0],'',clMaroon);
Series1.addxy(1,x1[0]+200,'',clMaroon);
Series2.addxy(2,x2[0],'',clblack);
Series2.addxy(2,x2[0]+200,'',clblack);
Series3.addxy(3,x3[0],'',clgreen);
Series3.addxy(3,x3[0]+200,'',clgreen);
//reprezentare masa metal netopit/topit
for i:=0 to 20 do begin
//metal netopit
if (i=0) or (i=20) then Series4.addxy(i/5,-h_vect[i],'',clGray)
else Series4.addxy(-0.1+i/5,-h_vect[i],'',clGray);
end;
for i:=0 to 20 do begin //metal topit
if (i=0) or (i=20) then Series5.addxy(i/5,-310+ariatopita/20,'',clRed)
else Series5.addxy(-0.1+i/5,-310+ariatopita/20,'',clRed);
end;
//reprezentare arce electrice
if (regim1=2) and (x1[0]>-h_vect[5]) then begin
Series6.addxy(1,x1[0],'',clred);
Series6.addxy(1,-h_vect[5],'',clred);
end;
if (regim2=2) and (x2[0]>-h_vect[10]) then begin
Series7.addxy(2,x2[0],'',clred);
Series7.addxy(2,-h_vect[10],'',clred);
end;
if (regim3=2) and (x3[0]>-h_vect[15]) then begin
Series8.addxy(3,x3[0],'',clred);
Series8.addxy(3,-h_vect[15],'',clred);
end;
end;
Procedurile ce permit reprezentarea semnalelor de control, a referinelor
i a semnalelor de ieire ale celor trei canale sunt:
procedure TForm3.Pasgrafic;
begin
65
procedure TForm1.PasConducere();
var i:integer;
temp0:real;
begin // deplasare in timp a semnalelor de ieire (curenti)
for i:=2 downto 0 do begin
yc1[i]:=yc1[i-1]; yc2[i]:=yc2[i-1]; yc3[i]:=yc3[i-1];
end;
yc1[0]:=i1;yc2[0]:=i2;yc3[0]:=i3; //noile valori curenti
CalculComanda(yc1,u1,yr1,0);//calcul comanda electrod 1
CalculComanda(yc2,u2,yr2,1); //calcul comanda electrod 2
CalculComanda(yc3,u3,yr3,2); //calcul comanda electrod 3
//Calculam noile pozitii ale electrozilor
temp0:=0;
for i:=1 to np-1 do temp0:=temp0-ap1[i]*y1[i];
for i:=0 to mp-1 do temp0:=temp0+bp1[i]*u1[i+dp];
for i:=20 downto 1 do y1[i]:=y1[i-1]; y1[0]:=temp0;
temp0:=0;
for i:=1 to np-1 do temp0:=temp0-ap2[i]*y2[i];
for i:=0 to mp-1 do temp0:=temp0+bp2[i]*u2[i+dp];
for i:=20 downto 1 do y2[i]:=y2[i-1]; y2[0]:=temp0;
temp0:=0;
for i:=1 to np-1 do temp0:=temp0-ap3[i]*y3[i];
for i:=0 to mp-1 do temp0:=temp0+bp3[i]*u3[i+dp];
for i:=20 downto 1 do y3[i]:=y3[i-1]; y3[0]:=temp0;
//calculam noile valori ale curentilor pe cele trei canale
CalculCurenti(i1,i2,i3,y1[0],y2[0],y3[0]);
{diverse cazuri particulare pe cele trei canale}
if (i1=0) and (uarc1>=100) then u1[0]:=umax1; //nu avem arc
if (uarc1=0) then u1[0]:=0; //scurt circuit; oprim deplasarea electrod
if (i2=0) and (uarc2>=100) then u2[0]:=umax2;
if (uarc2=0) then u2[0]:=0;
if (i3=0) and (uarc3>=100) then u3[0]:=umax3;
if (uarc3=0) then u3[0]:=0;
// cazul realizarii unui scurt dupa faza initiala
if (uarc1=0) and (i1>10000) and (u1[0]<>umin1 then u1[0]:=umin1;
if (uarc2=0) and (i2>10000) and (u2[0]<>umin2) then u2[0]:=umin2;
if (uarc3=0) and (i3>10000) and (u3[0]<>umin3) then u3[0]:=umin3;
end;
67
71
Proiecte propuse
1. S se implementeze i algoritmii adaptivi bazai pe model ( Cap. 10.5).
Se va avea n vedere i implementarea situaiilor particulare pe baza unui
set de reguli, similar cu setul de reguli utilizat n implementarea
algoritmului de tip PID. Comentai faptul c se utilizeaz algoritmi de
identificare specifici sistemelor liniare n cazul sistemelor neliniare. O
posibil comportare n faza iniial se prezint n figura 13.6.
2.S se scrie procedurile necesare interfeei din fig. 13.7. Aceast
interfa permite alegerea independent a tipului de algoritm pe fiecare
canal (se utilizeaz trei componente GroupBox avnd fiecare trei
componente RadioButton) precum i alegerea parametrilor algoritmilor
de control. Pentru algoritmul de tip PID+reguli se pot introduce
parametrii controlerului Kp, Ki, Kd att prin utilizarea unor componente
Edit ct i prin utilizarea unor componente ScrollBar. Pentru GroupBoxurile Bipozitional+histereza respectiv Adaptiv bazat pe model se va
proiecta i interfaa necesar. Formularul realizat va fi asociat
elementului de meniu Alege tip algoritm din formularul principal.
77