Синтез системы управления спуском космического аппарата на поверхность Марса методом интеллектуальной эволюции - Дипломная работа

бесплатно 0
4.5 209
Метод сетевого оператора и его применение в задачах управления. Исследование на основе вычислительного эксперимента синтезируемой системы автоматизированного управления космического аппарата, методом интеллектуальной эволюции. Алгоритм пчелиного роя.


Аннотация к работе
Синтез системы управления на сегодняшний день является приоритетной задачей современной теории управления, поскольку максимально учитывает работу объекта в реальности, обеспечивая сохранение системных свойств модели и ее целостности. Главной задачей данной работы является произвести синтез системы управления для обеспечения безопасного спуска в атмосферу Марса. Мягкий спуск большой массы на поверхность Марса =EA.tf); if EA.y[EA.n]>xfc[0] then f1:=abs(EA.y[EA.n]-xfc[0]) abs(EA.y[EA.n 1]-xfc[1]) else f1:=abs(EA.y[EA.n 1]-xfc[1]); Form11:=TForm11.create(self); Form11.ShowModal; End; Procedure TForm1.ParametersofGA1Click(Sender: TObject); Begin Form9:=TForm9.create(self); Form9.ShowModal; End; Procedure TForm1.Parametersofmodel1Click(Sender: TObject); Begin Form3:=TForm3.Create(self); Form3.ShowModal; End; //********************************************************* Procedure TForm1.Paretoset1Click(Sender: TObject); var i:integer; Begin Form10:=TForm10.create(self); Form10.ShowModal; label1.Caption:=inttostr(kchoose); EA.ReadChromosome(kchoose,q1,Psi1); End; //********************************************************* Procedure TForm1.Pascal1Click(Sender: TObject); var i:integer; Begin EA.NOP.PsitoPasStr; for i:=0 to L1-1 do memo1.Lines.Add(EA.NOP.zs[i]); End; //********************************************************* Procedure TForm1.Savetofile1Click(Sender: TObject); Begin if savedialog1.Execute then Memo1.Lines.SaveToFile(savedialog1.FileName); End; //********************************************************* Procedure TForm1.Unaryoperations1Click(Sender: TObject); Begin Form4:=TForm4.create(self); Form4.ShowModal; End; //********************************************************* Procedure TForm1.Undefinedparameters1Click(Sender: TObject); var i:integer; Begin Form14:=TForm14.Create(Self); Form14.ShowModal; EA.Setqymin(qymin1); EA.Setqymax(qymax1); EA.Setstepsqy(stepsqy1); for i:=0 to ny1-1 do EA.ix[i]:=trunc((qymax1[i]-qymin1[i])/stepsqy1[i]); EA.Setixmax(EA.ix); End; //********************************************************* Procedure UpProgressBar; Begin Form1.ProgressBar1.StepIt; Form1.Refresh; End; { TGANOPUser } //********************************************************* Constructor TUser.Create(hh1, pp1, rr1, nfu1, lchr1, p1, c1, d1, epo1, kel1: integer; alfa1, pmut1: real; L1, Mout1, kp1, kr1, kw1, kv1,n1,m1,ll1,ny1: integer); Begin Inherited Create(hh1, pp1, rr1, nfu1, lchr1, p1, c1, d1, epo1, kel1, alfa1, pmut1, L1, Mout1, kp1, kr1, kw1, kv1,n1,m1,ll1,ny1); End; //********************************************************* Procedure TUser.Func(var Fu: TArrReal); var t1,FF:real; i:integer; flag:boolean; Begin Initial; t1:=t; flag:=false; FF:=0; for i:=0 to NOP.kR-1 do NOP.Cs[i]:=q[i]; repeat Viewer; NOP.Vs[0]:=y[n];//x[0]; NOP.Vs[1]:=y[n 1];//x[1]; NOP.Vs[2]:=y[n 2];//x[2]; NOP.Vs[3]:=y[n 3];//x[3]; NOP.RPControl; if y[lv-1]>FF then FF:=y[lv-1]; Euler2; until (y[n]=tf); Fu[0]:=FF; if xfc[0]infinity then f1[i]:=Ro_10(f1[i])*infinity; End; Procedure TUser.Viewer; var i:integer; V2,QQ,NN,ro,VV,GG,RR,xper,yper,zper:double; Begin // Upr(t,u); // OgrUpr(u); RR:=sqrt(sqr(x[0]) sqr(x[2])); ro:=ro_0*exp(-bet*(RR-Rz)); V2:=sqr(x[1]) sqr(x[3]); VV:=sqrt(sqr(x[1]) sqr(x[3])); QQ:=Cx*ro*V2/2/m_S; // QQ:=Cx*(1 u[0])*ro*V2/2/m_S; NN:=Cy*ro*V2/2/m_S; xper:=-QQ*x[1]/VV-NN*x[3]*cos(u[0])/VV-g0*sqr(Rz/RR)*x[0]/RR; yper:=-QQ*x[3]/VV NN*x[1]*cos(u[0])/VV-g0*sqr(Rz/RR)*x[2]/RR; zper:=NN*sin(u[0]); for i:=0 to n-1 do y[i]:=x[i]; y[n]:=RR-Rz; y[n 1]:=Rz*arctan(x[0]/x[2]); y[n 2]:=VV; y[n 3]:=sqrt(sqr(xper) sqr(yper) sqr(zper))/g0; End; //********************************************************* Function TermStop:boolean; var i:integer; sum:real; Begin sum:=0; for i:=0 to EA.n-1 do sum:=sum sqr(EA.x[i]-xfc[i]); if sqrt(sum)=EA.tf); if EA.y[EA.n]2*pi deltc; end; if (Combobox1.ItemIndex=5)and(Combobox2.ItemIndex=1) then begin x:=EA.qy[0]-EA.qy[1]; y:=0; series2.AddXY(x,y); x:=EA.qy[0]-EA.qy[1]; y:=EA.qy[2]; series2.AddXY(x,y); x:=EA.qy[0] EA.qy[1]; y:=EA.qy[2]; series2.AddXY(x,y); x:=EA.qy[0] EA.qy[1]; y:=0; series2.AddXY(x,y); end; End; Procedure TForm11.Button4Click(Sender: TObject); Begin if savedialog1.execute then Chart1.SaveToBitmapFile(savedialog1.FileName); End; Procedure TForm11.FormCreate(Sender: TObject); var i:integer; Begin Color:=RGB(200,170,220); ComboBox1.Clear; ComboBox2.Clear; ComboBox1.Items.Add(t); ComboBox2.Items.Add(t); for i:=0 to EA.lv-1 do begin ComboBox1.Items.Add(x[ inttostr(i) ]); ComboBox2.Items.Add(x[ inttostr(i) ]); end; for i:=0 to EA.m-1 do begin ComboBox1.Items.Add(u[ inttostr(i) ]); ComboBox2.Items.Add(u[ inttostr(i) ]); end; ComboBox1.ItemIndex:=1; ComboBox2.ItemIndex:=0; Label4.Caption:=F1= floattostrf(f0,ffGeneral,8,5); Label5.Caption:=F2= floattostrf(f1,ffGeneral,8,5); End; Procedure TForm11.Button6Click(Sender: TObject); var i:integer; argm,funm:array of real; Begin setlength(argm,length(tm)); setlength(funm,length(tm)); if Combobox1.ItemIndex=0 then for i:=0 to high(tm) do funm[i]:=t
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?