У вас вопросы?
У нас ответы:) SamZan.net

Механика и алгоритмы управления роботами

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 20.2.2025

Курсовая работа по предмету:

Механика и алгоритмы управления роботами


Задание

Кинематическое исследование механизма манипулятора

определить необходимые перемещения звеньев

определить траекторию движения захвата из точки (0,2; 0,2; 0,2) в точку (0,8; 0,5; 0,7), если закон движения №4

определить скорости и ускорения движения звеньев.

реализовать программу расчетов

построить графики:

траектории движения захвата в ZOX

скорости и ускорения захвата

скорости и ускорения 1-ого звена.

Начальные данные

Координаты xyz точек (метр)

Закон движения

Вывести на печать и построить графики движения звена

Плоскость движения

Угол движения детали

Начало движения A

Начало движения B

0,2 0,2 0,2

0,8 0,5 0,7

4

1

ZOX

60

Рис. 1


Кинематика управления манипулятором:

вывести законы движения во времени для детали и захвата;

реализовать программу расчетов.

построить графики:

траектории движения захвата детали в ZOX, если угол движения детали 60°;

скоростей и ускорений ведомых звеньев;

проверить решение графическим способом.


Введение

На протяжении долгого времени человечество пыталось уйти от ручного труда. На это было много причин, главные из которых огромные силовые и временные затраты. Механизмы, создаваемые человеком усложнялись и совершенствовались. Трудно себе представить современную фабрику или завод, на котором не было бы ни одного робота. Но для того, чтобы робот работал необходимо уметь им управлять и хорошо представлять, как он функционирует. Данная курсовая работа направлена на кинематическое исследование механизма манипулятора и освоение кинематики его управления.


Кинематическое исследование механизма манипулятора. Определение необходимых перемещений звеньев

Рис. 2

=0.2; L2=0.2

В точке А: L3=0.2; j=0; ψ=0

В точке В: L3= 1.08 м; j=0.529 рад; ψ=0.279 рад

Определение траектории, скоростей и ускорений


Перемножив полученные матрицы и вектор L, получим следующие законы для изменения координат захвата по времени:

Перемещение, скорость и ускорение находятся по 4 закону:

f T<=T1 then:=H*Sqr(T) / (2*T1*(Tau - T1));:=H/(T1*(Tau-T1))*T;:=H/(T1*(Tau-T1));elseT<=(Tau-T1) then:=H*(2*T-T1)/(2*(Tau-T1));:=H/(Tau-T1);:=0;T<=Tau then:=H*(1-Sqr(Tau-T)/(2*T1*(Tau-T1)));:=H/(T1*(Tau-T1))*(Tau-T);:=-H/(T1*(Tau-T1)); +;

текст программыUnit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls, Grids, ComOBJ;= class(TForm): TButton;: TButton;: TTimer;: TStringGrid;: TImage;: TImage;: TImage;: TImage;: TImage;: TImage;FormCreate(Sender: TObject);Button1Click(Sender: TObject);Timer1Timer(Sender: TObject);public end;: TForm1;

{$R *.dfm}=0.2; ay=0.2; az=0.2;=0.8; by=0.5; bz=0.7;=0.2; L2=0.2;=0.0; aPsi=0.0; aL3=0.2;=0.52955776771375359150; bPsi=0.27980931571248899761; bL3=1.0862780491200215724;,T1,dT,T,tx,ty,tz:Single;,HPsi,Hl3,qFi,qPsi,qL3,q1Fi,q1Psi,q1L3,q2Fi,q2Psi,q2L3:Single;,Kol_Step:Integer;Low_2(H,Tau,T1,T:Single; var q,q1,q2:Single);T<=T1 then:=H*Sqr(T) / (2*T1*(Tau - T1));:=H/(T1*(Tau-T1))*T;:=H/(T1*(Tau-T1));elseT<=(Tau-T1) then:=H*(2*T-T1)/(2*(Tau-T1));:=H/(Tau-T1);:=0;T<=Tau then:=H*(1-Sqr(Tau-T)/(2*T1*(Tau-T1)));:=H/(T1*(Tau-T1))*(Tau-T);:=-H/(T1*(Tau-T1));;;GetX(Fi,Psi,L3:Single):Single;

// Result:=L3*cos(Fi)*cos(Psi)+L2*sin(Fi)+L1*sin(Fi);:= Cos(fi)*Cos(Psi)*L3 - Sin(Fi)*L2;;GetY(Psi,L3:Single):Single;:= Sin(psi)*L3 + L1;;GetZ(Fi,Psi,L3:Single):Single;

Result:= Sin(Fi) * Cos(Psi)*L3 + Cos(Fi)*L2;;TForm1.FormCreate(Sender: TObject);:=2;:=0.45;_Step:=40;;TForm1.Button1Click(Sender: TObject);i:integer;StringGrid1 do begin[0,1]:='Fi'; Cells[0,2]:='Psi'; Cells[0,3]:='L3';[0,4]:='V(Fi)'; Cells[0,5]:='V(Psi)'; Cells[0,6]:='V(L3)';[0,7]:='a(Fi)'; Cells[0,8]:='a(Psi)'; Cells[0,9]:='a(L3)';:=Kol_Step+2;[1,0]:='0';i:=2 to Kol_Step+1 do[i,0]:=FloatToStr(Tau/Kol_Step*(i-1));;:=0;:=ax; ty:=ay; tz:=az;Image4.Canvas do begin.Color:=clGreen;(10+Round(ax*200),300);(10+Round(ax*200+0.7*ay*200),300-Round(0.7*ay*200));(10+Round(0.7*ay*200),300-Round(0.7*ay*200));(10+Round(ax*200+0.7*ay*200),300-Round(0.7*ay*200));(10+Round(ax*200+0.7*ay*200),300-Round(0.7*ay*200+az*200));;:=0;:=-aFi+bFi; HPsi:=ABS(-aPsi+bPsi); HL3:=ABS(-aL3+bL3);:=aFi; qPsi:=aPsi; qL3:=aL3;Fi:=0; q1Psi:=0; q1L3:=0;Fi:=0; q2Psi:=0; q2L3:=0;StringGrid1 do begin[Step+1,1]:=FloatToStr(qFi);[Step+1,2]:=FloatToStr(qPsi);[Step+1,3]:=FloatToStr(qL3);[Step+1,4]:=FloatToStr(q1Fi);[Step+1,5]:=FloatToStr(q1Psi);[Step+1,6]:=FloatToStr(q1L3);[Step+1,7]:=FloatToStr(q2Fi);[Step+1,8]:=FloatToStr(q2Psi);[Step+1,9]:=FloatToStr(q2L3);;.Canvas.MoveTo(20+Step*5,200-Round(qFi*200));.Canvas.MoveTo(20+Step*5,200-Round(q1Fi*300));.Canvas.MoveTo(20+Step*5,100-Round(q2Fi*80));.Canvas.MoveTo(20+Step*5,200-Round(q1L3*300));.Canvas.MoveTo(20+Step*5,100-Round(q2L3*80));:=(Tau/Kol_Step);.Interval:=round(dT*10);.Enabled:=true;;TForm1.Timer1Timer(Sender: TObject);,y,z:Single;(Step);.Enabled:=False;:=T+dT;_2(HFi,Tau,T1,T,qFi,q1Fi,q2Fi);_2(HPsi,Tau,T1,T,qPsi,q1Psi,q2Psi);_2(HL3,Tau,T1,T,qL3,q1L3,q2L3);:=qFi+aFi;:=qPsi+aPsi;:=qL3+aL3;:=GetX(qFi,qPsi,qL3);:=GetY(qPsi,qL3);:=GetZ(qFi,qPsi,qL3);Image4.Canvas do begin.Color:=clBlack;(10+Round(x*200+0.7*y*200),300-Round(0.7*y*200+z*200));.Color:=clGreen;(10+Round(x*200),300);(10+Round(x*200+0.7*y*200),300-Round(0.7*y*200));(10+Round(0.7*y*200),300-Round(0.7*y*200));(10+Round(x*200+0.7*y*200),300-Round(0.7*y*200));(10+Round(x*200+0.7*y*200),300-Round(0.7*y*200+z*200));;Step=Kol_Step:=bFi; qPsi:=bPsi; qL3:=bL3;Fi:=0; q1Psi:=0; q1L3:=0;Fi:=0; q2Psi:=0; q2L3:=0;;StringGrid1 do begin[Step+1,1]:=FloatToStr(qFi);[Step+1,2]:=FloatToStr(qPsi);[Step+1,3]:=FloatToStr(qL3);[Step+1,4]:=FloatToStr(q1Fi);[Step+1,5]:=FloatToStr(q1Psi);[Step+1,6]:=FloatToStr(q1L3);[Step+1,7]:=FloatToStr(q2Fi);[Step+1,8]:=FloatToStr(q2Psi);[Step+1,9]:=FloatToStr(q2L3);;.Canvas.LineTo(20+Step*5,200-Round(qFi*200));.Canvas.LineTo(20+Step*5,200-Round(q1Fi*200));.Canvas.LineTo(20+Step*5,100-Round(q2Fi*50));.Canvas.LineTo(20+Step*5,200-Round(q1L3*200));.Canvas.LineTo(20+Step*5,100-Round(q2L3*50));:=x; ty:=y; tz:=z;Step<Kol_Step then Timer1.Enabled:=True;

end;.


Построение графиков

Fi

Psi

L3

V(Fi)

V(Psi)

V(L3)

a(Fi)

a(Psi)

a(L3)

X

Y

Z

0,00

0,00

0,00

0,20

0,00

0,00

0,00

0,00

0,00

0,00

0,20

0,20

0,20

0,05

0,00

0,00

0,20

0,04

0,02

0,06

0,76

0,40

1,27

0,20

0,20

0,20

0,10

0,00

0,00

0,21

0,08

0,04

0,13

0,76

0,40

1,27

0,21

0,20

0,20

0,15

0,01

0,00

0,21

0,11

0,06

0,19

0,76

0,40

1,27

0,21

0,20

0,20

0,20

0,02

0,01

0,23

0,15

0,08

0,25

0,76

0,40

1,27

0,22

0,20

0,20

0,25

0,02

0,01

0,24

0,19

0,10

0,32

0,76

0,40

1,27

0,23

0,20

0,21

0,30

0,03

0,02

0,26

0,23

0,12

0,38

0,76

0,40

1,27

0,25

0,20

0,21

0,35

0,05

0,02

0,28

0,27

0,14

0,44

0,76

0,40

1,27

0,27

0,21

0,21

0,40

0,06

0,03

0,30

0,30

0,16

0,51

0,76

0,40

1,27

0,29

0,21

0,22

0,45

0,08

0,04

0,33

0,34

0,18

0,57

0,00

0,00

0,00

0,31

0,21

0,22

0,50

0,09

0,05

0,36

0,34

0,18

0,57

0,00

0,00

0,00

0,34

0,22

0,23

0,55

0,11

0,06

0,39

0,34

0,18

0,57

0,00

0,00

0,00

0,36

0,22

0,24

0,60

0,13

0,07

0,41

0,34

0,18

0,57

0,00

0,00

0,00

0,38

0,23

0,25

0,65

0,15

0,08

0,44

0,34

0,18

0,57

0,00

0,00

0,00

0,41

0,23

0,26

0,70

0,16

0,09

0,47

0,34

0,18

0,57

0,00

0,00

0,00

0,43

0,24

0,27

0,75

0,18

0,09

0,50

0,34

0,18

0,57

0,00

0,00

0,00

0,45

0,25

0,29

0,80

0,20

0,10

0,53

0,34

0,18

0,57

0,00

0,00

0,00

0,48

0,25

0,30

0,85

0,21

0,11

0,56

0,34

0,18

0,57

0,00

0,00

0,00

0,50

0,26

0,31

0,90

0,23

0,12

0,59

0,34

0,18

0,57

0,00

0,00

0,00

0,52

0,27

0,33

0,95

0,25

0,13

0,61

0,34

0,18

0,57

0,00

0,00

0,00

0,54

0,28

0,34

1,00

0,26

0,14

0,64

0,34

0,18

0,57

0,00

0,00

0,00

0,56

0,29

0,36

1,05

0,28

0,15

0,67

0,34

0,18

0,57

0,00

0,00

0,00

0,58

0,30

0,38

1,10

0,30

0,16

0,70

0,34

0,18

0,57

0,00

0,00

0,00

0,60

0,31

0,39

1,15

0,32

0,17

0,73

0,34

0,18

0,57

0,00

0,00

0,00

0,62

0,32

0,41

1,20

0,33

0,18

0,76

0,34

0,18

0,57

0,00

0,00

0,00

0,64

0,33

0,43

1,25

0,35

0,19

0,79

0,34

0,18

0,57

0,00

0,00

0,00

0,66

0,34

0,45

1,30

0,37

0,19

0,81

0,34

0,18

0,57

0,00

0,00

0,00

0,67

0,36

0,47

1,35

0,38

0,20

0,84

0,34

0,18

0,57

0,00

0,00

0,00

0,69

0,37

0,50

1,40

0,40

0,21

0,87

0,34

0,18

0,57

0,00

0,00

0,00

0,71

0,38

0,52

1,45

0,42

0,22

0,90

0,34

0,18

0,57

0,00

0,00

0,00

0,72

0,40

0,54

1,50

0,44

0,23

0,93

0,34

0,18

0,57

0,00

0,00

0,00

0,74

0,41

0,56

1,55

0,45

0,24

0,96

0,34

0,18

0,57

0,00

0,00

0,00

0,75

0,43

0,59

1,60

0,47

0,25

0,98

0,30

0,16

0,51

-0,76

-0,40

-1,27

0,76

0,44

0,61

1,65

0,48

0,26

1,01

0,27

0,14

0,44

-0,76

-0,40

-1,27

0,77

0,45

0,63

1,70

0,50

0,26

1,03

0,23

0,12

0,38

-0,76

-0,40

-1,27

0,78

0,47

0,65

1,75

0,51

0,27

1,05

0,19

0,10

0,32

-0,76

-0,40

-1,27

0,79

0,48

0,66

1,80

0,51

0,27

1,06

0,15

0,08

0,25

-0,76

-0,40

-1,27

0,79

0,48

0,68

1,85

0,52

0,28

1,07

0,11

0,06

0,19

-0,76

-0,40

-1,27

0,80

0,49

0,69

1,90

0,53

0,28

1,08

0,08

0,04

0,13

-0,76

-0,40

-1,27

0,80

0,50

0,69

1,95

0,53

0,28

1,08

0,04

0,02

0,06

-0,76

-0,40

-1,27

0,80

0,50

0,70

2,00

0,53

0,28

1,09

0,00

0,00

0,00

0,00

0,00

0,00

0,80

0,50

0,70

Траектория движения захвата и график пути первого звена (по заданию).

 

Рис. 3

Графики скорости и ускорения захвата

Рис. 4


Графики скорости и ускорения первого звена

Рис. 5

Кинематика управления манипулятором

Постановка задачи

Во второй части курсовой работы манипулятор будет рассматриваться в плоскости ZOX. В этой плоскости под углом 60° деталь движется из заданной точки и имеет постоянную скорость. Задача заключается в отыскании законов, позволяющих изменяя размеры звеньев манипулятора за указанное время движения захватить эту деталь.

Вывод формул

Пользователем задаются:

Координаты и скорость движения детали в плоскости ZOX (Xd,Zd,Vd)

Длина руки робота (L3)

Построим проекцию робота в плоскости ZOX

В плоскости ZOX видно только L2 и L3

Законы:=Vd*cos60° Vdz=Vd*sin60°=Xd+Vdx*t=Zd+Vdz*t здесь t- шаг времени

Скорость в точке захвата:=Vdx+(Xc-Xd)/T=Vdz+(Zc-Zd)/T где T=-t/ln(0,001)

Xc:=L3*cos(Fi)-L2*sin(Fi);:=L3*sin(Fi)+L2*cos(Fi);

Берем производную от Xc, Zc. И в итоге, после домножения одного уравнения на sin(Fi) или cos(Fi), а затем преобразования уравнений, получаем следующие формулы:

V:=(Vcx*sin(Fi))-(Vcz*cos(Fi));:=((Vcx*cos(Fi))+(Vcz*sin(Fi)))/L3;

Координаты в точке захвата:=Xc+Vcx*t=Zc+Vcz*t

Построение графиков

Входные параметры: координаты детали (0,700), скорость детали 0,2 м/с, длина руки робота 1 м, угол наклона руки 100 градусов, время движения равно 4.

 

V

W

Xd

Yd

Xr

Yr

0,00

0,00

0,00

0,00

700,00

720,00

707,00

0,20

-0,48

0,34

20,00

734,60

742,20

707,30

0,40

-0,28

0,42

60,00

803,90

637,00

750,00

0,60

-0,09

0,47

100,00

873,20

553,50

798,00

0,80

0,07

0,47

140,00

942,50

489,60

851,00

1,00

0,20

0,44

180,00

1012,00

444,70

909,30

1,20

0,31

0,37

220,00

1081,00

418,30

973,00

1,40

0,38

0,31

260,00

1150,00

408,60

1042,00

1,60

0,42

0,24

300,00

1220,00

412,60

1116,00

1,80

0,45

0,19

340,00

1289,00

427,20

1193,00

2,00

0,46

0,15

380,00

1358,00

449,50

1272,00

2,20

0,47

0,12

420,00

1427,00

477,20

1352,00

2,40

0,47

0,09

460,00

1497,00

508,70

1432,00

2,60

0,47

0,08

500,00

1566,00

542,80

1512,00

2,80

0,46

0,06

540,00

1635,00

578,80

1591,00

3,00

0,46

0,05

580,00

1705,00

615,90

1670,00

3,20

0,45

0,04

620,00

1774,00

654,00

1747,00

3,40

0,44

0,04

660,00

1843,00

692,60

1824,00

3,60

0,44

0,03

700,00

1912,00

730,60

1897,00

3,80

0,44

0,03

740,00

1982,00

740,00

1982,00

Рис. 6

Рис. 7


Рис. 8

кинематический манипулятор захват звено

Текст программы

unit Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, StdCtrls, ExtCtrls, ComOBJ;= class(TForm): TStringGrid;: TTimer;: TButton;: TImage;: TImage;: TImage;: TLabel;: TButton;FormCreate(Sender: TObject);Timer1Timer(Sender: TObject);Button1Click(Sender: TObject);Button2Click(Sender: TObject);public end;: TForm1;

{$R *.dfm},VDY,Vd,Alpha,T,Tau,TCatch,d,dT:Single;,Yd,Xd0,Yd0,L,L3,Fi,Fi0:Single;_CX,Cur_CX,Old_CY,Cur_CY,Old_DX,Cur_DX,_DY,Cur_DY,Old_V,Cur_V,Old_W,Cur_W,X_c,Y_c:Single;,LF,Takt:Integer;:Boolean;InitManipul;:=Vd*1000*cos(Alpha*pi/180);:=Vd*1000*sin(Alpha*pi/180);:=(Tau/1.7)/ln(10);:=0; Fail:=False;:=Xd0; Yd:=Yd0;:=L3; Fi:=Fi0;;InitStrGr(T:word;V,W:Single);i:word;Form1.StringGrid1 do[0,1]:='V';[0,2]:='W';:=T+2;i:=0 to T do[i+1,0]:=FloatToStrF(i*dT,ffGeneral,4,2);[T+1,1]:=FloatToStrF(V/1000,ffGeneral,4,2);[T+1,2]:=FloatToStrF(W,ffGeneral,4,2);;;DrawGraf;MT,MV,MW:Single;Cx=15; Cy=100; dH=10;Form1 do begin.Canvas.Pen.Color:=clBlue;.Canvas.MoveTo(Round(Old_CX/10),250-Round(Old_CY/10));.Canvas.LineTo(Round(Cur_CX/10),250-Round(Cur_CY/10));.Canvas.Pen.Color:=clRed;.Canvas.MoveTo(Round(Old_DX/10),250-Round(Old_DY/10));.Canvas.LineTo(Round(Cur_DX/10),250-Round(Cur_DY/10));:=(image2.Width-2*Cx)/(Tau/dt);:=(image2.Height-2*dH)/(2*Vd*3*1000);.Canvas.MoveTo(Round((CX+(Takt-1)*MT)),220-Round((CY-Old_V*MV)));.Canvas.LineTo(Round((CX+Takt*MT)),220-Round((CY-Cur_V*MV)));:=(Image3.Width-2*Cx)/(Tau/dT);:=(Image3.Height-2*dH)/2;.Canvas.MoveTo(Round((CX+(Takt-1)*MT)),250-Round((CY-Old_W*MW)*2));.Canvas.LineTo(Round((CX+Takt*MT)),250-Round((CY-Cur_W*MW)*2));_CX:=Cur_CX; Old_CY:=Cur_CY;_DX:=Cur_DX; Old_DY:=Cur_DY;_V:=Cur_V; Old_W:=Cur_W;;;TForm1.FormCreate(Sender: TObject);:=0; Yd0:=700; Vd:=0.2;:=60; L3:=1000; Fi0:=100;:=4; d:=1; dT:=0.2;:=500; LF:=20000; Takt:=0;(Takt,0,0);;TForm1.Button1Click(Sender: TObject);;.Enabled:=true;.Interval:=round(dt*500);:=0;_CX:=H*cos(Fi0*pi/180)+L3*Sin(Fi0*pi/180);_CY:=H*sin(Fi0*pi/180)-L3*cos(Fi0*pi/180);_c:=Old_CX; Y_c:=Old_CY;_DX:=Xd0; Old_DY:=Yd0;_V:=0; Old_W:=0;;TForm1.Timer1Timer(Sender: TObject);RFi,V,W,VCx,VCy:Single;(Takt);:=Fi*pi/180;_c:=H*cos(RFi)+L*Sin(RFi); Y_c:=H*sin(RFi)-L*cos(RFi);:=VDX+((Xd-X_c)/T); VCy:=VDY+((Yd-Y_c)/T);_c:=X_c+VCx*dT; Y_c:=Y_c+VCy*dT;:=Xd+VDX*dT; Yd:=Yd+VDY*dT;:=TCatch+dT;L<=0 then L:=1;:=(VCx*sin(RFi))-(VCy*cos(RFi))+H/2;:=((VCx*cos(RFi))+(VCy*sin(RFi)))/L;(Takt,V,W);:=Xd+(VDX*dT); Yd:=Yd+(VDY*dT);:=L+(V*dT);:=Fi+(W*dT*180/pi);_CX:=X_c; Cur_CY:=Y_c;_DX:=Xd; Cur_DY:=Yd;_V:=V; Cur_W:=W;;(abs(X_c-Xd)<=d) and (abs(Y_c-Yd)<=d) then begin.Caption:='Goal';.Enabled:=false;;TCatch>Tau then begin.Enabled:=false;.Caption:='Out of time';;L>LF then begin.Enabled:=false;.Caption:='Out of Speed';;;StrGridToExcel(SG:TStringGrid; InverceRows:Boolean);, Workbook: OLEVariant;, EndCol, BeginCol, BeginRow, i, j: integer;:= CreateOleObject('Excel.Application');.Application.EnableEvents:= false;:= ExcelApp.WorkBooks.Add;:=0;:=0;:=SG.ColCount+1;:=SG.RowCount+1;InverceRows theni:=BeginCol to EndCol doj:=BeginRow to EndRow do.WorkSheets[1].Cells[i+1,j+1]:=StrToFloat(SG.Cells[i,j]);.WorkSheets[1].Cells[i+1,j+1]:=SG.Cells[i,j];;i:=BeginCol to EndCol doj:=BeginRow to EndRow do.WorkSheets[1].Cells[i+1,j+1]:=StrToFloat(SG.Cells[j,i]);.WorkSheets[1].Cells[i+1,j+1]:=SG.Cells[j,i];;;.Visible:= true;;TForm1.Button2Click(Sender: TObject);(StringGrid1,True);;

end.




1. О ЛИТЕРАТУРЕ РЕВОЛЮЦИИ ЭНТРОПИИ И О ПРОЧЕМ
2. лекция -- эволюция Евгеника білімін ~ай а~ылшын биологы негіздеді-- Мальтус -- Вейсман -- Мендель
3. Философия науки 1
4. . being good worker worth wht one is pid 2 bd egg 2
5. ПРАВОВЫЕ ОСНОВЫ ГОСУДАРСТВЕННОЙ СЛУЖБЫ В ОРГАНАХ ВНУТРЕННИХ ДЕЛ
6. Технологии паблик рилейшнз
7. ОРГАНИЗАЦИЯ МАСТЕРКЛАССОВ ПРЕПОДАВАТЕЛЕЙ МЭСИ Краткое формулирование предложения
8. тема прерываний Классическая шинномостовая структура чипсета
9. Ледбитер ЧАКРЫ ПРЕДИСЛОВИЕ Когда человек развивая свои чувства приобретает способность видеть нес
10. Климатические особенности различных регионов Африканского континента