ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠœΠ΅Ρ…Π°Π½ΠΈΠΊΠ° ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ управлСния Ρ€ΠΎΠ±ΠΎΡ‚Π°ΠΌΠΈ

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠšΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ исслСдованиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° манипулятора ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ пСрСмСщСния звСньСв. Π’ Ρ‚ΠΎΡ‡ΠΊΠ΅ Π’: L3= 1.08 ΠΌ; =0.529 Ρ€Π°Π΄; ш=0.279 Ρ€Π°Π΄ ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, скоростСй ΠΈ ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΠΉ. BFi=0.52 955 776 771 375 357 952; bPsi=0.27 980 931 571 248 898 048; bL3=1.862 780 491 200 215 680; ВраСктория двиТСния Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊ ΠΏΡƒΡ‚ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π·Π²Π΅Π½Π° (ΠΏΠΎ Π·Π°Π΄Π°Π½ΠΈΡŽ). Π’Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ двиТСния Π·Π°Ρ…Π²Π°Ρ‚Π° Π΄Π΅Ρ‚Π°Π»ΠΈ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠœΠ΅Ρ…Π°Π½ΠΈΠΊΠ° ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ управлСния Ρ€ΠΎΠ±ΠΎΡ‚Π°ΠΌΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρƒ:.

ΠœΠ΅Ρ…Π°Π½ΠΈΠΊΠ° ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ управлСния Ρ€ΠΎΠ±ΠΎΡ‚Π°ΠΌΠΈ.

Π—Π°Π΄Π°Π½ΠΈΠ΅.

ΠšΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ исслСдованиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° манипулятора ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ пСрСмСщСния звСньСв.

ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ двиТСния Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΈΠ· Ρ‚ΠΎΡ‡ΠΊΠΈ (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.

ZOX.

Рис. 1.

ΠšΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° управлСния манипулятором:

вывСсти Π·Π°ΠΊΠΎΠ½Ρ‹ двиТСния Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΈ Π·Π°Ρ…Π²Π°Ρ‚Π°;

Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ расчСтов.

ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ:

Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ двиТСния Π·Π°Ρ…Π²Π°Ρ‚Π° Π΄Π΅Ρ‚Π°Π»ΠΈ Π² ZOX, Ссли ΡƒΠ³ΠΎΠ» двиТСния Π΄Π΅Ρ‚Π°Π»ΠΈ 60;

скоростСй ΠΈ ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΠΉ Π²Π΅Π΄ΠΎΠΌΡ‹Ρ… звСньСв;

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ графичСским способом.

На ΠΏΡ€ΠΎΡ‚яТСнии Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ чСловСчСство ΠΏΡ‹Ρ‚Π°Π»ΠΎΡΡŒ ΡƒΠΉΡ‚ΠΈ ΠΎΡ‚ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ Ρ‚Ρ€ΡƒΠ΄Π°. На ΡΡ‚ΠΎ Π±Ρ‹Π»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½, Π³Π»Π°Π²Π½Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ силовыС ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, создаваСмыС Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ ΡƒΡΠ»ΠΎΠΆΠ½ΡΠ»ΠΈΡΡŒ ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π»ΠΈΡΡŒ. Π’Ρ€ΡƒΠ΄Π½ΠΎ сСбС ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ„Π°Π±Ρ€ΠΈΠΊΡƒ ΠΈΠ»ΠΈ Π·Π°Π²ΠΎΠ΄, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ±ΠΎΡ‚Π°. Но Π΄Π»Ρ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€ΠΎΠ±ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΈΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚. Данная курсовая Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° Π½Π° ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ичСскоС исслСдованиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° манипулятора ΠΈ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΠΊΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π΅Π³ΠΎ управлСния.

ΠšΠΈΠ½Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ исслСдованиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° манипулятора. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ звСньСв.

Рис. 2.

L1=0.2; L2=0.2.

Π’ Ρ‚ΠΎΡ‡ΠΊΠ΅ А: L3=0.2; =0; ш=0.

Π’ Ρ‚ΠΎΡ‡ΠΊΠ΅ Π’: L3= 1.08 ΠΌ; =0.529 Ρ€Π°Π΄; ш=0.279 Ρ€Π°Π΄ ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, скоростСй ΠΈ ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΠΉ.

ΠŸΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠΈΠ² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ L, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°ΠΊΠΎΠ½Ρ‹ для измСнСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΠ΅ находятся ΠΏΠΎ 4 Π·Π°ΠΊΠΎΠ½Ρƒ:

f T<=T1 then.

begin.

q:=H*Sqr (T) / (2*T1*(Tau — T1));

q1:=H/(T1*(Tau-T1))*T;

q2:=H/(T1*(Tau-T1));

end else.

if T<=(Tau-T1) then.

begin.

q:=H*(2*T-T1)/(2*(Tau-T1));

q1:=H/(Tau-T1);

q2:=0;

end.

else.

if T<=Tau then.

begin.

q:=H*(1-Sqr (Tau-T)/(2*T1*(Tau-T1)));

q1:=H/(T1*(Tau-T1))*(Tau-T);

q2:=-H/(T1*(Tau-T1)); +.

end;

тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

unit Unit1;

interface.

uses.

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.

Dialogs, StdCtrls, ExtCtrls, Grids, ComOBJ;

type.

TForm1 = class (TForm).

Button1: TButton;

Button2: TButton;

Timer1: TTimer;

StringGrid1: TStringGrid;

Image1: TImage;

Image2: TImage;

Image3: TImage;

Image4: TImage;

Image5: TImage;

Image6: TImage;

procedure FormCreate (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure Timer1Timer (Sender: TObject);

private public end;

var.

Form1: TForm1;

implementation.

{$R *.dfm}.

const.

ax=0.2; ay=0.2; az=0.2;

bx=0.8; by=0.5; bz=0.7;

L1=0.2; L2=0.2;

aFi=0.0; aPsi=0.0; aL3=0.2;

bFi=0.52 955 776 771 375 357 952; bPsi=0.27 980 931 571 248 898 048; bL3=1.862 780 491 200 215 680;

var.

Tau, T1, dT, T, tx, ty, tz: Single;

HFi, HPsi, Hl3, qFi, qPsi, qL3, q1Fi, q1Psi, q1L3, q2Fi, q2Psi, q2L3: Single;

Step, Kol_Step:Integer;

procedure Low2(H, Tau, T1, T:Single; var q, q1, q2:Single);

begin.

if T<=T1 then.

begin.

q:=H*Sqr (T) / (2*T1*(Tau — T1));

q1:=H/(T1*(Tau-T1))*T;

q2:=H/(T1*(Tau-T1));

end else.

if T<=(Tau-T1) then.

begin.

q:=H*(2*T-T1)/(2*(Tau-T1));

q1:=H/(Tau-T1);

q2:=0;

end.

else.

f T<=Tau then.

begin.

q:=H*(1-Sqr (Tau-T)/(2*T1*(Tau-T1)));

q1:=H/(T1*(Tau-T1))*(Tau-T);

q2:=-H/(T1*(Tau-T1));

end;

end;

function GetX (Fi, Psi, L3: Single):Single;

begin.

// Result:=L3*cos (Fi)*cos (Psi)+L2*sin (Fi)+L1*sin (Fi);

Result:= Cos (fi)*Cos (Psi)*L3 — Sin (Fi)*L2;

end;

function GetY (Psi, L3: Single):Single;

begin.

Result:= Sin (psi)*L3 + L1;

end;

function GetZ (Fi, Psi, L3: Single):Single;

begin.

Result:= Sin (Fi) * Cos (Psi)*L3 + Cos (Fi)*L2;

end;

procedure TForm1. FormCreate (Sender: TObject);

begin.

Tau:=2;

T1:=0.45;

Kol_Step:=40;

end;

procedure TForm1. Button1Click (Sender: TObject);

var i: integer;

begin.

with StringGrid1 do begin.

Cells[0,1]: ='Fi'; Cells[0,2]: ='Psi'; Cells[0,3]: ='L3';

Cells[0,4]:='V (Fi)'; Cells[0,5]: ='V (Psi)'; Cells[0,6]: ='V (L3)';

Cells[0,7]:='a (Fi)'; Cells[0,8]: ='a (Psi)'; Cells[0,9]: ='a (L3)';

ColCount:=Kol_Step+2;

Cells[1,0]:='0';

For i:=2 to Kol_Step+1 do.

Cells[i, 0]: =FloatToStr (Tau/Kol_Step*(i-1));

end;

Step:=0;

tx:=ax; ty:=ay; tz:=az;

with Image4. Canvas do begin.

Pen.Color:=clGreen;

MoveTo (10+Round (ax*200), 300);

LineTo (10+Round (ax*200+0.7*ay*200), 300-Round (0.7*ay*200));

MoveTo (10+Round (0.7*ay*200), 300-Round (0.7*ay*200));

LineTo (10+Round (ax*200+0.7*ay*200), 300-Round (0.7*ay*200));

ineTo (10+Round (ax*200+0.7*ay*200), 300-Round (0.7*ay*200+az*200));

end;

T:=0;

HFi:=-aFi+bFi; HPsi:=ABS (-aPsi+bPsi); HL3:=ABS (-aL3+bL3);

qFi:=aFi; qPsi:=aPsi; qL3:=aL3;

q1Fi:=0; q1Psi:=0; q1L3:=0;

q2Fi:=0; q2Psi:=0; q2L3:=0;

with StringGrid1 do begin.

Cells[Step+1,1]: =FloatToStr (qFi);

Cells[Step+1,2]:=FloatToStr (qPsi);

Cells[Step+1,3]:=FloatToStr (qL3);

Cells[Step+1,4]:=FloatToStr (q1Fi);

Cells[Step+1,5]:=FloatToStr (q1Psi);

Cells[Step+1,6]:=FloatToStr (q1L3);

Cells[Step+1,7]:=FloatToStr (q2Fi);

Cells[Step+1,8]:=FloatToStr (q2Psi);

Cells[Step+1,9]:=FloatToStr (q2L3);

end;

Image1.Canvas.MoveTo (20+Step*5,200-Round (qFi*200));

Image2.Canvas.MoveTo (20+Step*5,200-Round (q1Fi*300));

Image3.Canvas.MoveTo (20+Step*5,100-Round (q2Fi*80));

Image5.Canvas.MoveTo (20+Step*5,200-Round (q1L3*300));

Image6.Canvas.MoveTo (20+Step*5,100-Round (q2L3*80));

dT:=(Tau/Kol_Step);

Timer1.Interval:=round (dT*10);

Timer1.Enabled:=true;

end;

procedure TForm1. Timer1Timer (Sender: TObject);

var.

x, y, z:Single;

begin.

Inc (Step);

Timer1.Enabled:=False;

T:=T+dT;

Low2(HFi, Tau, T1, T, qFi, q1Fi, q2Fi);

Low2(HPsi, Tau, T1, T, qPsi, q1Psi, q2Psi);

Low2(HL3,Tau, T1, T, qL3, q1L3,q2L3);

qFi:=qFi+aFi;

qPsi:=qPsi+aPsi;

qL3:=qL3+aL3;

x:=GetX (qFi, qPsi, qL3);

y:=GetY (qPsi, qL3);

z:=GetZ (qFi, qPsi, qL3);

with Image4. Canvas do begin.

Pen.Color:=clBlack;

LineTo (10+Round (x*200+0.7*y*200), 300-Round (0.7*y*200+z*200));

Pen.Color:=clGreen;

MoveTo (10+Round (x*200), 300);

LineTo (10+Round (x*200+0.7*y*200), 300-Round (0.7*y*200));

MoveTo (10+Round (0.7*y*200), 300-Round (0.7*y*200));

LineTo (10+Round (x*200+0.7*y*200), 300-Round (0.7*y*200));

LineTo (10+Round (x*200+0.7*y*200), 300-Round (0.7*y*200+z*200));

end;

if Step=Kol_Step.

then.

begin.

Fi:=bFi; qPsi:=bPsi; qL3:=bL3;

q1Fi:=0; q1Psi:=0; q1L3:=0;

q2Fi:=0; q2Psi:=0; q2L3:=0;

end;

with StringGrid1 do begin.

Cells[Step+1,1]: =FloatToStr (qFi);

Cells[Step+1,2]:=FloatToStr (qPsi);

Cells[Step+1,3]:=FloatToStr (qL3);

Cells[Step+1,4]:=FloatToStr (q1Fi);

Cells[Step+1,5]:=FloatToStr (q1Psi);

Cells[Step+1,6]:=FloatToStr (q1L3);

Cells[Step+1,7]:=FloatToStr (q2Fi);

Cells[Step+1,8]:=FloatToStr (q2Psi);

Cells[Step+1,9]:=FloatToStr (q2L3);

end;

Image1.Canvas.LineTo (20+Step*5,200-Round (qFi*200));

Image2.Canvas.LineTo (20+Step*5,200-Round (q1Fi*200));

Image3.Canvas.LineTo (20+Step*5,100-Round (q2Fi*50));

Image5.Canvas.LineTo (20+Step*5,200-Round (q1L3*200));

Image6.Canvas.LineTo (20+Step*5,100-Round (q2L3*50));

tx:=x; ty:=y; tz:=z;

if Step.

end;

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.

Π—Π°ΠΊΠΎΠ½Ρ‹:

Vdx=Vd*cos60 Vdz=Vd*sin60.

Xd=Xd+Vdx*t.

Zd=Zd+Vdz*t здСсь tшаг Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ Π·Π°Ρ…Π²Π°Ρ‚Π°:

Vcx=Vdx+(Xc-Xd)/T.

Vcz=Vdz+(Zc-Zd)/T Π³Π΄Π΅ T=-t/ln (0,001).

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

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

Π‘Π΅Ρ€Π΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡƒΡŽ ΠΎΡ‚ Xc, Zc. И Π² ΠΈΡ‚ΠΎΠ³Π΅, послС домноТСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ уравнСния Π½Π° sin (Fi) ΠΈΠ»ΠΈ cos (Fi), Π° Π·Π°Ρ‚Π΅ΠΌ прСобразования ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹:

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

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

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ Π·Π°Ρ…Π²Π°Ρ‚Π°:

Xc=Xc+Vcx*t.

Zc=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;

interface.

uses.

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.

Dialogs, Grids, StdCtrls, ExtCtrls, ComOBJ;

type.

TForm1 = class (TForm).

StringGrid1: TStringGrid;

Timer1: TTimer;

Button1: TButton;

Image1: TImage;

Image2: TImage;

Image3: TImage;

Label1: TLabel;

Button2: TButton;

procedure FormCreate (Sender: TObject);

procedure Timer1Timer (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

private public end;

var.

Form1: TForm1;

implementation.

{$R *.dfm}.

var.

VDX, VDY, Vd, Alpha, T, Tau, TCatch, d, dT:Single;

Xd, Yd, Xd0, Yd0,L, L3, Fi, Fi0: Single;

Old_CX, Cur_CX, Old_CY, Cur_CY, Old_DX, Cur_DX,.

Old_DY, Cur_DY, Old_V, Cur_V, Old_W, Cur_W, X_c, Y_c:Single;

H, LF, Takt: Integer;

Fail:Boolean;

procedure InitManipul;

begin.

VDX:=Vd*1000*cos (Alpha*pi/180);

VDY:=Vd*1000*sin (Alpha*pi/180);

T:=(Tau/1.7)/ln (10);

TCatch:=0; Fail:=False;

Xd:=Xd0; Yd:=Yd0;

L:=L3; Fi:=Fi0;

end;

procedure InitStrGr (T:word;V, W: Single);

var i: word;

begin.

with Form1. StringGrid1 do.

begin.

Cells[0,1]: ='V';

Cells[0,2]:='W';

ColCount:=T+2;

for i:=0 to T do.

Cells[i+1,0]: =FloatToStrF (i*dT, ffGeneral, 4,2);

Cells[T+1,1]:=FloatToStrF (V/1000,ffGeneral, 4,2);

Cells[T+1,2]:=FloatToStrF (W, ffGeneral, 4,2);

end;

end;

procedure DrawGraf;

var MT, MV, MW: Single;

const Cx=15; Cy=100; dH=10;

begin.

with Form1 do begin.

image1.Canvas.Pen.Color:=clBlue;

image1.Canvas.MoveTo (Round (Old_CX/10), 250-Round (Old_CY/10));

image1.Canvas.LineTo (Round (Cur_CX/10), 250-Round (Cur_CY/10));

image1.Canvas.Pen.Color:=clRed;

image1.Canvas.MoveTo (Round (Old_DX/10), 250-Round (Old_DY/10));

image1.Canvas.LineTo (Round (Cur_DX/10), 250-Round (Cur_DY/10));

MT:=(image2.Width-2*Cx)/(Tau/dt);

MV:=(image2.Height-2*dH)/(2*Vd*3*1000);

image2.Canvas.MoveTo (Round ((CX+(Takt-1)*MT)), 220-Round ((CY-Old_V*MV)));

image2.Canvas.LineTo (Round ((CX+Takt*MT)), 220-Round ((CY-Cur_V*MV)));

MT:=(Image3.Width-2*Cx)/(Tau/dT);

MW:=(Image3.Height-2*dH)/2;

image3.Canvas.MoveTo (Round ((CX+(Takt-1)*MT)), 250-Round ((CY-Old_W*MW)*2));

image3.Canvas.LineTo (Round ((CX+Takt*MT)), 250-Round ((CY-Cur_W*MW)*2));

Old_CX:=Cur_CX; Old_CY:=Cur_CY;

Old_DX:=Cur_DX; Old_DY:=Cur_DY;

Old_V:=Cur_V; Old_W:=Cur_W;

end;

end;

procedure TForm1. FormCreate (Sender: TObject);

begin.

Xd0:=0; Yd0:=700; Vd:=0.2;

Alpha:=60; L3:=1000; Fi0:=100;

Tau:=4; d:=1; dT:=0.2;

H:=500; LF:=20 000; Takt:=0;

InitStrGr (Takt, 0,0);

end;

procedure TForm1. Button1Click (Sender: TObject);

begin.

InitManipul;

Timer1.Enabled:=true;

Timer1.Interval:=round (dt*500);

Takt:=0;

Old_CX:=H*cos (Fi0*pi/180)+L3*Sin (Fi0*pi/180);

Old_CY:=H*sin (Fi0*pi/180)-L3*cos (Fi0*pi/180);

X_c:=Old_CX; Y_c:=Old_CY;

Old_DX:=Xd0; Old_DY:=Yd0;

Old_V:=0; Old_W:=0;

end;

procedure TForm1. Timer1Timer (Sender: TObject);

var RFi, V, W, VCx, VCy: Single;

begin.

Inc (Takt);

RFi:=Fi*pi/180;

X_c:=H*cos (RFi)+L*Sin (RFi); Y_c:=H*sin (RFi)-L*cos (RFi);

VCx:=VDX+((Xd-X_c)/T); VCy:=VDY+((Yd-Y_c)/T);

X_c:=X_c+VCx*dT; Y_c:=Y_c+VCy*dT;

Xd:=Xd+VDX*dT; Yd:=Yd+VDY*dT;

TCatch:=TCatch+dT;

if L<=0 then L:=1;

V:=(VCx*sin (RFi))-(VCy*cos (RFi))+H/2;

W:=((VCx*cos (RFi))+(VCy*sin (RFi)))/L;

InitStrGr (Takt, V, W);

Xd:=Xd+(VDX*dT); Yd:=Yd+(VDY*dT);

L:=L+(V*dT);

Fi:=Fi+(W*dT*180/pi);

Cur_CX:=X_c; Cur_CY:=Y_c;

Cur_DX:=Xd; Cur_DY:=Yd;

Cur_V:=V; Cur_W:=W;

DrawGraf;

if (abs (X_c-Xd)<=d) and (abs (Y_c-Yd)<=d) then begin.

Label1.Caption:='Goal';

Timer1.Enabled:=false;

end;

if TCatch>Tau then begin.

Timer1.Enabled:=false;

Label1.Caption:='Out of time';

end;

if L>LF then begin.

Timer1.Enabled:=false;

Label1.Caption:='Out of Speed';

end;

end;

Procedure StrGridToExcel (SG:TStringGrid; InverceRows: Boolean);

Var.

ExcelApp, Workbook: OLEVariant;

EndRow, EndCol, BeginCol, BeginRow, i, j: integer;

Begin.

ExcelApp:= CreateOleObject ('Excel.Application');

ExcelApp.Application.EnableEvents:= false;

Workbook:= ExcelApp.WorkBooks.Add;

BeginCol:=0;

BeginRow:=0;

EndCol:=SG.ColCount+1;

EndRow:=SG.RowCount+1;

If InverceRows then.

begin.

For i:=BeginCol to EndCol do.

For j:=BeginRow to EndRow do.

Try.

ExcelApp.WorkSheets[1]. Cells[i+1,j+1]:=StrToFloat (SG.Cells[i, j]);

Except.

ExcelApp.WorkSheets[1].Cells[i+1,j+1]:=SG.Cells[i, j];

End;

end.

Else.

begin.

For i:=BeginCol to EndCol do.

For j:=BeginRow to EndRow do.

Try.

ExcelApp.WorkSheets[1]. Cells[i+1,j+1]:=StrToFloat (SG.Cells[j, i]);

Except.

ExcelApp.WorkSheets[1].Cells[i+1,j+1]:=SG.Cells[j, i];

End;

end;

ExcelApp.Visible:= true;

End;

procedure TForm1. Button2Click (Sender: TObject);

begin.

StrGridToExcel (StringGrid1,True);

end;

end.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ