Заключение.
Идентификация и синтез системы автоматического управления
For i:=0 to 4 do Begin {Условие надписи на оси Y}. X: =x1*1155+3373*x2+4440*x3+3399*x4+1646*x5+503.4*x6+88.06*x7+6.02*x8; For i:=0 to 600 do Begin {Построение графика}. For i:=0 to 600 do Begin {Построение графика}. For i:=1 to 6 do Line (20+60*i, 450,20+60*i, 450−400); For i:=1 to 6 do Line (20+60*i, 450,20+60*i, 450−400); Программа идентификации САУ… Читать ещё >
Заключение. Идентификация и синтез системы автоматического управления (реферат, курсовая, диплом, контрольная)
В данной работе был получен алгоритм идентификации объекта управления по переходной характеристике с помощью ЭВМ и на его основе произведена идентификация объекта и синтез системы автоматического управления им. Метод обладает достаточной точностью, однако предъявляет большие требования к точности вычисления интегральных параметров Ii, т.к. в уравнения для получения коэффициентов F они входят в высокой степени Поэтому для их вычисления необходимо использовать метод высокого порядка и малый шаг.
писок литературы
Автоматическое регулирование двигателей летательных аппаратов. Труды ЦИАМ, № 761, вып. 17, 1977 (стр. 144−154).
Макаров И. И., Менский Б. М. Линейные автоматические системы. М., Машиностроение, 1982 — 504 с.
Смит Дж. М. Математическое и цифровое моделирование для инженеров и исследователей. М., Машиностроение, 1980.
Приложение
Листинг программ
Программа идентификации САУ.
Program TAU;
Uses graph, crt;
Const.
hmax=2;
Var.
sigm, h: array [0.2501] of single;
I1,I2,I3,I4:array [0.2501] of single;
GD, GM: integer;
fj, Ij: array[1.4] of single;
ha:char;
temp, y, x, f, n, i, j:integer;
dt, t: real;
k, b1, a1,a2,a3:single;
s:string[5];
Begin.
Clrscr;
dt:=0.005;
N:=2000;
t:=0;
{randomize;}.
For i:=0 to N do Begin.
t:=i*dt;
h[i+1]: =48*exp (-1/0.4*t)-50*exp (-1/0.3*t)-46.666 666 667*t*exp (-1/0.3*t)+2.
end;
{Вычисляем подинтергальные значения I1, I2,I3,I4}.
For i:=1 to N do sigm[i]: =h[i]/hmax;
t:=0;
for i:=1 to N do Begin.
t:=(i-1)*dt;
I1[i]: =1-sigm[i];
I2[i]: =(1-sigm[i])*t;
I3[i]: =(1-sigm[i])*t*t;
I4[i]: =(1-sigm[i])*t*t*t;
end;
{Вычисление непосредственно самих I1, I2,I3,I4}.
For j:=1 to 4 do Ij[j]: =0;
For i:=1 to N-1 do Begin.
Ij[1]: =Ij[1]+(I1[i]+I1[i+1])/2*dt;
Ij[2]: =Ij[2]+(I2[i]+I2[i+1])/2*dt;
Ij[3]: =Ij[3]+(I3[i]+I3[i+1])/2*dt;
Ij[4]: =Ij[4]+(I4[i]+I4[i+1])/2*dt;
end;
{Находим Fj}.
Fj[1]: =Ij[1];
Fj[2]: =Ij[1]*Ij[1]-Ij[2];
Fj[3]: =Ij[1]*Ij[1]*Ij[1]-2*Ij[1]*Ij[2]+0.5*Ij[3];
Fj[4]: =-Ij[4]/6+0.5*Ij[1]*Ij[3]+Fj[3]*Ij[1]-Fj[2]*Ij[2];
b1:=-Fj[4]/Fj[3];
a1:=b1+Fj[1];
a2:=Fj[2]+b1*Fj[1];
a3:=Fj[3]+b1*Fj[2];
K:=h[N+1];
Writeln ('a1=', a1:6:4,', a2=', a2:6:4,', a3=', a3:6:4,', b1=', b1:6:4,', K=', K:6:4,', n=', n, ', dt=', dt:0:4);
Readkey;
GD:=Detect; GM:=2;
Initgraph (GD, GM,'C:BPBGI');
SetBkColor (White);
j:=1;
Setcolor (9);
For i:=1 to 6 do Line (20+60*i, 450,20+60*i, 450−400);
For i:=0 to 4 do Begin {Условие надписи на оси Y}.
str (i, s);
Setcolor (1);
OuttextXY (10,450−100*i, s);
Setcolor (9);
Line (20,450−100*i, 620,450−100*i);
end;
Setcolor (9);
Line (20,50,20,450);
Line (20,450,620,450);
moveto (20,450);
for i:=0 to 600 do Begin {Построение графика}.
setcolor (4);
y:=round (100*h[j]);
x:=i;
SetLineStyle (0,0,3);
Lineto (x+20,450-y);
SetLineStyle (0,0,1);
j:=j+3;
if (i=0) or (i mod 60 = 0) then Begin {Условие надписи на оси X}.
setcolor (9);
temp:=round (i/60);
str (temp, s);
Line (20+i, 450,20+i, 450−400);
setcolor (1);
Moveto (20+i, 460);
Outtext (s);
setcolor (4);
moveto (20+x, 450-y);
end;
End;
Readkey;
CloseGraph;
end.
Программа, моделирующая САУ по передаточным функциям замкнутой системы.
Program TAU;
Uses graph, crt;
label.
m1;
Const.
hmax=2;
Var.
x:array[1.3000] of real;
x1,x2,x3,x4,x5,x6,x7,x8:real;
temp, y, x111,gd, gm, n, i, j: integer;
g, dt: real;
s:string;
text:string;
c:char;
prosto:boolean;
Begin.
Clrscr;
dt:=0.333;
N:=3000;
{t:=0;}.
x1:=0;x2:=0;x3:=0;x4:=0;x5:=0;x6:=0;x7:=0;x8:=0;
g:=1;
prosto:=true;
For i:=0 to N-1 do Begin.
x1:=x1+dt*x2;
x2:=x2+dt*x3;
x3:=x3+dt*x4;
x4:=x4+dt*x5;
x5:=x5+dt*x6;
x6:=x6+dt*x7;
x7:=x7+dt*x8;
x8:=x8+dt*(-1155*x1−3130*x2−3952*x3−3014*x4−1522*x5−523.6*x6−120.7*x7−16.87*x8+0.7114);
x[i+1]: =x1*1155+3373*x2+4440*x3+3399*x4+1646*x5+503.4*x6+88.06*x7+6.02*x8;
Writeln ('x[', i+1,']=', x[i+1]);
If prosto=true then Begin.
c:=Readkey;
Case c of.
'c':exit;
'r':prosto:=false;
end;
end;
end;
str (x[n]: 6:6,text);
GD:=Detect; GM:=2;
Initgraph (GD, GM,'C:BPBGI');
SetBkColor (White);
j:=1;
Setcolor (9);
For i:=1 to 6 do Line (20+60*i, 450,20+60*i, 450−400);
For i:=0 to 4 do Begin {Условие надписи на оси Y}.
str (i, s);
Setcolor (1);
OuttextXY (10,450−100*i, s);
Setcolor (9);
Line (20,450−100*i, 620,450−100*i);
end;
Setcolor (9);
Line (20,50,20,450);
Line (20,450,620,450);
moveto (20,450);
for i:=0 to 600 do Begin {Построение графика}.
setcolor (4);
y:=round (140*x[j]);
x111:=i;
SetLineStyle (0,0,3);
Lineto (x111+20,450-y);
SetLineStyle (0,0,1);
{If i mod 2=0 then j:=j+1;}.
j:=j+4;
if (i=0) or (i mod 60 = 0) then Begin {Условие надписи на оси X}.
setcolor (9);
temp:=round (i/60);
str (temp, s);
Line (20+i, 450,20+i, 450−400);
setcolor (1);
Moveto (300,240);
Outtext (text);
Moveto (20+i, 460);
Outtext (s);
setcolor (4);
moveto (20+x111,450-y);
end;
End;
Readkey;
CloseGraph;
end.