Documente Academic
Documente Profesional
Documente Cultură
MECANISMELOR
1. Introducere
f i
Dacă funcţiile f1 , f 2 , ... , f n , împreună cu derivatele lor parţiale x j , (i, j ) 1, n
x ( k 1) x ( k ) W 1 ( x ( k ) ) f ( x ( k ) ) , (3)
unde x ( k 1) este soluţia sistemului (1) la iteraţia (k+1), iar W 1 ( x ( k ) ) f ( x ( k ) ) este
eroarea soluţiei de la iteraţia k la iteraţia k+1.
Procesul de calcul este iterativ şi se opreşte atunci când este realizată condiţia:
x ( k 1) x ( k ) . (4)
unde:
f (x (k )
), W( x ( k ) ) W ' ( x (k ) ) f ( x (k ) )
k
W( x (k ) '
) W (x (k )
) f (x (k )
), W( x (k ) '
) W (x (k )
) f ( x (k ) ) .
În ambele metode de rezolvare, a sistemului de ecuaţii neliniare, este necesară
matricea funcţională a sistemului. Propunem determinarea termenilor matricei
funcţionale a sistemului pe cale numerică, adică prin derivarea numerică a
funcţiilor.
y y i 1
y i i 1 , i 2, n 1 , dacă se iau în considerare 3 puncte de pe curbă;
2h
y 8( y i 1 y i 1 ) y i 2
y i i 2 , i 3, n 2 , dacă se iau în considerare 5 puncte de
12h
pe curbă;
f i f i ( x1 , x 2 , , x j 1 , x j h, x j 1 , , x n ) f i ( x1 , x 2 , , x j 1 , x j h, x j 1 , , x n )
,
x j 2h
i 1, n , j 1, n ; (6)
4. Înmulţirea matricelor
Două matrice A şi B nu întotdeauna se pot înmulţi. Pentru a putea realiza
înmulţirea a două matrice, trebuie ca numărul de coloane ale primei matrice să fie
egal cu numărul de linii ale celei de a doua matrice.
Fie A, o matrice cu l linii şi m coloane şi B, o matrice cu m linii şi n coloane.
Cele două matrice se mai pot scrie şi sub forma: A[l , m] , B[m, n] . Produsul celor
două matrice este o altă matrice cu dimensiunile l şi n, adică C[l,n] .
Elementele matricei C sunt de forma:
m
cij ai1b1 j ai 2 b2 j a in bnj a ik bkj , i 1, l , j 1, n .
k 1
5. Sinteza mecanismului de săpat gropi pentru arbuşti
2i 5i
1i 4i
Tabelul 1
PROCEDURE MF(PROC:PROC6;X:VECTOR1;N:INTEGER;H:REAL;
VAR F:VECTOR1;VAR W:VECTOR;VAR KOD:INTEGER);
VAR I,K:INTEGER;
F1,F2,X1:VECTOR1;
BEGIN
FOR I:=1 TO N*N DO
W[I]:=0;
FOR K:=1 TO N DO
BEGIN
FOR I:=1 TO N DO
X1[I]:=X[I];
X1[K]:=X[K]-H;
PROC(N,X1,F1,KOD);
X1[K]:=X[K]+H;
PROC(N,X1,F2,KOD);
FOR I:=1 TO N DO
W[I+(K-1)*N]:=(F2[I]-F1[I])/(2*H);
END;
PROC(N,X,F,KOD);
END;
Tabelul 3
PROCEDURE PRODMAT(A:VECTOR;B:VECTOR1;L,M,N:INTEGER;
VAR R:VECTOR1);
VAR I,J,K,IJ,IK,KJ:INTEGER;
BEGIN
FOR I:=1 TO L DO
BEGIN
FOR J:=1 TO N DO
BEGIN
IJ:=I+(J-1)*L;
R[IJ]:=0.;
FOR K:=1 TO M DO
BEGIN
IK:=I+(K-1)*L;
KJ:=K+(J-1)*M;
R[IJ]:=R[IJ]+A[IK]*B[KJ];
END;
END;
END;
END;
Tabelul 4
PROCEDURE TRANSPUS(A:VECTOR;N:INTEGER;VAR B:VECTOR);
VAR I,J:INTEGER;
BEGIN
FOR J:=1 TO N DO
BEGIN
FOR I:=1 TO N DO
B[I+(J-1)*N]:=A[J+(I-1)*N];
END;
END;
Tabelul 5
PROCEDURE GRADDERN(NUME:PROC6;MF:PROC7;N,ITER:INTEGER;
H,EPS:REAL;VAR X:VECTOR1;VAR KOD:INTEGER);
VAR I,J,N1,N2:INTEGER;AM,F11,F12,JESF:REAL;
DX,F,F1,F2:VECTOR1;W,W1:VECTOR;
BEGIN
FOR I:=1 TO N DO
BEGIN
F1[I]:=0;
F2[I]:=0;
END;
FOR I:=1 TO N*N DO
BEGIN
W[I]:=0;
W1[I]:=0;
END;
N1:=N+1;
I:=1;
REPEAT
MF(NUME,X,N,H,F,W,KOD);
TRANSPUS(W,N,W1);
PRODMAT(W1,F,N,N,1,F1);
PRODMAT(W,F1,N,N,1,F2);
F11:=0;
F12:=0;
FOR J:=1 TO N DO
BEGIN
F11:=F11+F[J]*F2[J];
F12:=F12+F2[J]*F2[J];
END;
IF ABS(F12) < 1.E-15 THEN
BEGIN
KOD:=1;
WRITELN(' KOD= ',KOD);
READLN;
EXIT;
END
ELSE
AM:=F11/F12;
FOR J:=1 TO N DO
DX[J]:=AM*F1[J];
JESF:=0;
J:=1;
REPEAT
IF ABS(DX[J]) < EPS THEN
J:=J+1
ELSE
BEGIN
J:=N1;
JESF:=1;
END;
UNTIL J > N;
IF JESF = 0 THEN EXIT;
FOR J:=1 TO N DO
X[J]:=X[J]-DX[J];
WRITELN(I:4,' ',X[1]);
I:=I+1;
UNTIL I > ITER;
WRITELN('SIST. NU CONVERGE');
READLN;
HALT;
END;
Tabelul 6
PROGRAM SINTRZA_MECANISM;
USES CRT;
{$M 65520,0,655360}
TYPE
VECTOR1=ARRAY[1..48]OF REAL;
VECTOR=ARRAY[1..2304]OF REAL;
VAR X,XT,YT:VECTOR1;
H,EPS:REAL;
I,N,ITER,KOD:INTEGER;
F1:TEXT;
{F+}
PROCEDURE FUNCT(N:INTEGER;X:VECTOR1;VAR F:VECTOR1;
VAR KOD:INTEGER);
VAR C1,S1,C2,S2,C4,S4,C5,S5:REAL;
XT,YT:VECTOR1;
I:INTEGER;
BEGIN
FOR I:=1 TO 8 DO
BEGIN
XT[I]:=2.352;
YT[I]:=0.223+(I-1)*0.14;
END;
FOR I:=1 TO 8 DO
BEGIN
C1:=COS(X[I+8]);C2:=COS(X[I+16]);C4:=COS(X[I+24]);C5:=COS(X[I+32]);
S1:=SIN(X[I+8]);S2:=SIN(X[I+16]);S4:=SIN(X[I+24]);S5:=SIN(X[I+32]);
F[I]:=X[4]*C1+X[5]*C2-X[40+I]*C4-X[1];
F[I+8]:=X[4]*S1+X[5]*S2-X[40+I]*S4;
F[I+16]:=X[4]*C1+X[6]*C2-X[7]*C5-X[2];
F[I+24]:=X[4]*S1+X[6]*S2-X[7]*S5-X[3];
F[I+32]:=X[4]*C1+X[8]*C2-XT[I];
F[I+40]:=X[4]*S1+X[8]*S2-YT[I];
END;
KOD:=0;
END;
{F-}
PROCEDURE PRODMAT(A:VECTOR;B:VECTOR1;L,M,N:INTEGER;
VAR R:VECTOR1);
VAR I,J,K,IJ,IK,KJ:INTEGER;
BEGIN
FOR I:=1 TO L DO
BEGIN
FOR J:=1 TO N DO
BEGIN
IJ:=I+(J-1)*L;
R[IJ]:=0.;
FOR K:=1 TO M DO
BEGIN
IK:=I+(K-1)*L;
KJ:=K+(J-1)*M;
R[IJ]:=R[IJ]+A[IK]*B[KJ];
END;
END;
END;
END;
PROCEDURE MF(PROC:PROC6;X:VECTOR1;N:INTEGER;H:REAL;
VAR F:VECTOR1;VAR W:VECTOR;VAR KOD:INTEGER);
VAR I,K:INTEGER;
F1,F2,X1:VECTOR1;
BEGIN
FOR I:=1 TO N*N DO
W[I]:=0;
FOR K:=1 TO N DO
BEGIN
FOR I:=1 TO N DO
X1[I]:=X[I];
X1[K]:=X[K]-H;
PROC(N,X1,F1,KOD);
X1[K]:=X[K]+H;
PROC(N,X1,F2,KOD);
FOR I:=1 TO N DO
W[I+(K-1)*N]:=(F2[I]-F1[I])/(2*H);
END;
PROC(N,X,F,KOD);
END;
PROCEDURE GRADDERN(NUME:PROC6;MF:PROC7;N,ITER:INTEGER;
H,EPS:REAL;VAR X:VECTOR1;VAR KOD:INTEGER);
VAR I,J,N1,N2:INTEGER;AM,F11,F12,JESF:REAL;
DX,F,F1,F2:VECTOR1;W,W1:VECTOR;
BEGIN
FOR I:=1 TO N DO
BEGIN
F1[I]:=0;
F2[I]:=0;
END;
FOR I:=1 TO N*N DO
BEGIN
W[I]:=0;
W1[I]:=0;
END;
N1:=N+1;
I:=1;
REPEAT
MF(NUME,X,N,H,F,W,KOD);
TRANSPUS(W,N,W1);
PRODMAT(W1,F,N,N,1,F1);
PRODMAT(W,F1,N,N,1,F2);
F11:=0;
F12:=0;
FOR J:=1 TO N DO
BEGIN
F11:=F11+F[J]*F2[J];
F12:=F12+F2[J]*F2[J];
END;
IF ABS(F12) < 1.E-15 THEN
BEGIN
KOD:=1;
WRITELN(' KOD= ',KOD);
READLN;
EXIT;
END
ELSE
AM:=F11/F12;
FOR J:=1 TO N DO
DX[J]:=AM*F1[J];
JESF:=0;
J:=1;
REPEAT
IF ABS(DX[J]) < EPS THEN
J:=J+1
ELSE
BEGIN
J:=N1;
JESF:=1;
END;
UNTIL J > N;
IF JESF = 0 THEN EXIT;
FOR J:=1 TO N DO
X[J]:=X[J]-DX[J];
WRITELN(I:4,' ',X[1]);
I:=I+1;
UNTIL I > ITER;
WRITELN('SIST. NU CONVERGE');
READLN;
HALT;
END;
BEGIN
CLRSCR;
ASSIGN(F1,'FUNCT.DAT');
REWRITE(F1);
KOD:=0;
X[1]:=0.6; X[2]:=0.75; X[3]:=0.7; X[4]:=0.83; X[5]:=0.58;
X[6]:=0.66; X[7]:=0.27; X[8]:=2.35;
X[9]:=1.58; X[10]:=1.62; X[11]:=1.64; X[12]:=1.66; X[13]:=1.67;
X[14]:=1.67; X[15]:=1.67; X[16]:=1.66;
X[17]:=-0.25; X[18]:=-0.2; X[19]:=-0.15; X[20]:=-0.09; X[21]:=-0.043;
X[22]:=0.0084; X[23]:=0.06; X[24]:=0.111;
X[25]:=1.65; X[26]:=1.68; X[27]:=1.69; X[28]:=1.7; X[29]:=1.71;
X[30]:=1.7; X[31]:=1.7; X[32]:=1.68;
X[33]:=-2.5; X[34]:=-2.64; X[35]:=-2.77; X[36]:=-2.9; X[37]:=-3.;
X[38]:=-3.14; X[39]:=3.; X[40]:=2.9;
FOR I:=1 TO 8 DO
BEGIN
XT[I]:=2.352;
YT[I]:=0.223+(I-1)*0.14;
X[I+40]:=0.563+0.03;
END;
ITER:=10000;
H:=0.0015;
EPS:=1.E-05;
N:=48;
GRADDERN(FUNCT,MF,N,ITER,H,EPS,X,KOD);
IF KOD = 0 THEN
BEGIN
FOR I:=1 TO N DO
BEGIN
WRITELN('X[',I,']:=',X[I]:8:5);
WRITELN(F1,'X[',I,']:=',X[I]:8:5);
READLN;
END;
CLOSE(F1);
HALT;
END
ELSE
BEGIN
WRITELN('KOD= ',KOD);
READLN;
HALT;
END;
END.
Tabelul 7
X[1]:= 0.56992
X[2]:= 0.78725
X[3]:= 0.78762
X[4]:= 0.78556
X[5]:= 0.55477
X[6]:= 0.61275
X[7]:= 0.25571
X[8]:= 2.43556
X[9]:= 1.59491
X[10]:= 1.63084
X[11]:= 1.65576
X[12]:= 1.67060
X[13]:= 1.67581
X[14]:= 1.67150
X[15]:= 1.65747
X[16]:= 1.63322
X[17]:=-0.23295
X[18]:=-0.17377
X[19]:=-0.11510
X[20]:=-0.05696
X[21]:= 0.00072
X[22]:= 0.05809
X[23]:= 0.11535
X[24]:= 0.17284
X[25]:= 1.64535
X[26]:= 1.67310
X[27]:= 1.68914
X[28]:= 1.69589
X[29]:= 1.69489
X[30]:= 1.68709
X[31]:= 1.67303
X[32]:= 1.65297
X[33]:=-2.54222
X[34]:=-2.69956
X[35]:=-2.84400
X[36]:=-2.98187
X[37]:=-3.11803
X[38]:=-3.25636
X[39]:= 2.88296
X[40]:= 2.73053
X[41]:= 0.65907
X[42]:= 0.69182
X[43]:= 0.72405
X[45]:= 0.78767
X[46]:= 0.81929
X[47]:= 0.85088
X[48]:= 0.88239
CONCLUZII
BIBLIOGRAFIE
1. Artobolevski, I.I., Teoria mecanismelor şi a maşinilor. Editura Tehnică, Bucureşti, 1955.
2. Artobolevski, I.I., Theorie des mecanismes et des machines. Editions Mir, Moscou, 1977.
3 Demidovitch, B., Maron, I. - Elements de calcul numeriques. Editions Mir, Moscou, 1976.
4. Dorn, W.S., Mc Cracken, D.D., Metode numerice cu programe în FORTRAN. Editura
Tehnică, Bucureşti, 1976.
5. Duca, C., Mecanisme. Institutul Politehnic din Iaşi, 1983.
6. Duca, C., Sinteza structurală a grupelor conducătoare plane. SYROM’73, vol A,
Bucureşti.
7. Duca, C., Buium, Fl., Părăoanu, G., Mecanisme. Editura Gh. Asachi, Iaşi, 2003.
8. Ghinea, M., Fireţeanu, V., MATLAB. Calcul numeric+Grafică+Aplicaţii. Editura Teora,
Bucureşti, 1995.
9. Manolescu, N., Kovacs, Fr., Orănescu, A., Teoria mecanismelor şi a maşinilor. Editura
Didactică şi Pedagogică, Bucureşti, 1972.
10. Moise, V., Cinematica şi controlul mecanismelor manipulatoare cu 4 grade de
mobilitate. Teză de doctorat, Bucureşti, 1986.
11. Moise, V., Sinteza mecanismelor plane cu bare articulate. Editura Printech, Bucureşti,
2018.
12. Moise, V., Maican, E., Moise, Şt. I., Metode numerice în inginerie. Editura Bren,
Bucureşti, 2003.
13. Moise, V., Simionescu, I., Ene, M., Neacşa, M., Tabără, I.A., Analiza mecanismelor
aplicate. Editura Printech, Bucureşti, 2007.
14. Pelecudi, Chr., Bazele analizei mecanismelor. Editura Academiei RSR, Bucureşti 1967.
15. Pelecudi, Chr., Precizia mecanismelor. Editura Academiei R.S.R., Bucureşti, 1975.
16. Pelecudi, Chr., Simionescu, I., Moise, V., Ene, M., Proiectarea mecanismelor. Institutul
Politehnic Bucureşti, 1981.
17. Pelecudi, Chr., Simionescu, I., Ene, M., Moise, V., Candrea, A., Probleme de mecanisme.
Editura Didactică şi Pedagogică, Bucureşti, 1982.
18. Pelecudi, Chr., Maroş, D., Merticaru, V., Pandrea, N., Simionescu, I. – Mecanisme,
Editura Didactică şi Pedagogică, Bucureşti, 1985.
19. Salvadori, G.M., Baron, L.M., Metode numerice în tehnică. Editura Tehnică, Bucureşti,
1974.
20. Simionescu, I., Dranga, M., Moise, V. - Metode numerice în tehnică. Editura Tehnică,
Bucureşti, 1995.
21. Simionescu, I., Moise, V., Mecanisme. Editura Tehnică, Bucureşti, 1999.
22. Tempea, I., Popa, Gh., Mecanisme plane articulate. Institutul Politehnic Bucureşti, 1978.
23. Vâlcovici, V., Bălan, Șt., Voinea, R., Mecanică Teoretică. Editura Tehnică, Bucureşti,
1963.
24. Voinea, R., Voiculescu, D., Ceauşu, V., Mecanica. Editura Didactică şi Pedagogică,
Bucureşti, 1985.