You are on page 1of 5

ISSN 2354-0575

VỀ MỘT THUẬT TOÁN LẬP TRÌNH


TRONG TÍNH TOÁN ĐỘNG HỌC CÁC HỆ CƠ HỌC

Khổng Doãn Điền1, 2, Vũ Xuân Trường1, Nguyễn Duy Chinh1, Nguyễn Tiền Phong1
1 Trường Đại học Sư phạm Kỹ thuật Hưng Yên
2 Hội Cơ học Hà Nội

Ngày nhận: 20/2/2016


Ngày xét duyệt: 22/3/2016

Tóm tắt:
Bài báo này trình bày một thuật toán phân tích động học áp dụng cho các hệ cơ học khác nhau. Tính
linh động của của thuật toán được thể hiện ở chỗ có thể áp dụng cho mọi hệ cơ học và ở mọi thời điểm. Ý
tưởng của thuật toán này xuất phát từ sức mạnh tính toán trên trường véc tơ, ma trận của các phần mềm
toán học (chẳng hạn Maple). Tuy nhiên một khó khăn phát sinh là việc xử lý tính toán số liệu ở dạng tham
số (symbolic), kết quả trả ra sẽ ở dạng biểu thức gốc RootOf, trong khi chúng ta cần kết quả ở dạng tham
số (symbolic) hoặc số (numeric). Vấn đề này sẽ được trình bày và giải quyết thấu đáo trong bài báo này.
Từ khóa: Phân tích động học, tích vô hướng, tích có hướng, biểu thức góc, tham số, liên hợp.

Các kí hiệu và diễn giải của hệ tọa độ để chuyển về dạng giải tích thuận lợi
Ký hiệu Diễn giải Biểu diễn cho việc tìm nghiệm động học. Việc này không phải
lúc nào cũng dễ dàng bởi không phải lúc nào cũng
v Véctơ vận tốc v = <vx , vy , vz>
xác định được góc hợp bởi véc tơ đó với các trục
a Véctơ gia tốc a = <ax , ay , az> tọa độ. Tính linh động của những phương pháp này
~ Véctơ vận tốc góc ~=< ~ x, ~ y, ~ z > không cao vì chỉ áp dụng cho một thời điểm. Mỗi
một thời điểm có một ‘mẹo’ chiếu khác nhau sao
f Véctơ gia tốc góc f =< f x, f y, f z > cho phương trình giải tích thu được đơn giản hơn.
# Tích có hướng CrossProduct(a,b) Bài báo này trình bày một thuật toán phân
của hai véctơ tích động học áp dụng cho các hệ cơ học khác nhau.
. Tích vô hướng DotProduct(a,b) Tính linh động của của thuật toán được thể hiện ở
của hai véc tơ chỗ có thể áp dụng cho mọi hệ cơ học và ở mọi thời
điểm. Ý tưởng của thuật toán này xuất phát từ sức
Ký hiệu Véc tơ hoặc ma -
mạnh tính toán trên trường véc tơ, ma trận của các
đậm trận
phần mềm toán học (chẳng hạn Maple). Tuy nhiên
một khó khăn phát sinh là việc xử lý tính toán số liệu
1. Đặt vấn đề ở dạng tham số (symbolic), kết quả trả ra sẽ ở dạng
Phân tích động học gồm ba bài toán: bài toán biểu thức gốc RootOf, trong khi chúng ta cần kết
vị trí, bài toán vận tốc và bài toán gia tốc của điểm, quả ở dạng tham số (symbolic) hoặc số (numeric).
vật rắn và hệ vật rắn. Để thực hiện được việc phân
tích động học các hệ cơ học có nhiều phương pháp 2. Cơ sở lý thuyết [1,4,6]
chẳng hạn phương pháp giải tích[1,4,5], phương Định lý liên hệ vận tốc:
pháp họa đồ, phương pháp ma trận truyền [2], vB = vA + vBA
phương pháp Danevit-Hartenbeg, Crag, [6] … vBA = ~ # AB
Ngày nay, với sự phát triển của khoa học Định lý liên hệ gia tốc:
công nghệ các phần mềm toán học hỗ trợ đắc lực aB = aA + aBA
trong việc tính toán cho con người đã ra đời. Phải aBA = f # AB - ~ 2AB
kể đến những phần mềm mạnh như Matlab, Maple, Định lý hợp vận tốc:
Mathematica,… Việc tính toán trên trường véc tơ và va = ve + vr
ma trận là công việc khó khăn cho việc tính toán thủ trong đó va, ve và vr lần lượt là véc tơ vận tốc của
công, thậm chí không khả thi. Nhưng tính trên trên điểm trong chuyển động tuyệt đối, chuyển động kéo
trường véc tơ và ma trận lại là sức mạnh của các theo và chuyển động tương đối.
phần mềm toán học. Định lý hợp gia tốc:
Bản chất chung của các phương pháp giải aa = ae + ar + aC
tích là phân tích bài toán ở trường véc tơ nhưng sau Gia tốc Coriolis được xác định bởi biểu thức
đó phải chiếu phương trình véc tơ đó lên các trục aC = 2~ e # vr

8 Khoa học & Công nghệ - Số 9/Tháng 3 - 2016 Journal of Science and Technology
ISSN 2354-0575

trong đó: aa , ae và ar lần lượt là véc tơ gia tốc của 3. Thuật giải lập trình và xử lý
điểm trong chuyển động tuyệt đối, chuyển động kéo Xét mô hình có mô hình như Hình 1 [5]. Tay
theo và chuyển động tương đối; quay chủ động CB quay đều với tốc độ n (vg/phút).
aC là gia tốc Coriolis; Cho biết các độ dài OC=a, CB=b, OD=c, DA=d và
~ e là véc tơ vận tốc góc trong chuyển động các góc a, b
kéo theo. Xác định vận tốc và gia tốc điểm D?

H
y B

A θ
n b
d O α α +θ
β C x
a
c
D

Hình 1. Mô hình động học

Phân tích giải thuật DA = 7- d sin ( b ) d cos b 0A


T
(5)
+ Bài toán vị trí
Các véc tơ CB, OB, OD và DA phụ thuộc
- Theo định lý hàm sin
vào các đại lượng đã biết nên hoàn toàn xác định.
a b OB + Bài toán vận tốc
sin i sin a sin _r - ( a + i ) i
= =
~ CB = 70 0 ~A ; ~ = 30
T rn
(6)
]Z]
]]i = arcsin a a sin a k
~ DH = 80 0 ~ DHB
T
b (7)
& []
]]OB = b sin ( a + i )
~ DA = 80 0 ~ DAB
T
] sin a (8)
\
- Tính toán các véc tơ v D = ~ DH OD
# (9)
CB = 7b cos ( a + i ) b sin ( a + i ) 0A v A = v D + ~ DA # DA (10)
T
(2)
Do điểm A trượt dọc theo phương y nên vA = vA[2]
OB = 7OB cos a OB sin a 0A
T
(3)
Như vậy muốn tính toán véc tơ vA cần phải
OD = 7- c cos ( a ) - c sin a 0A
T
(4) tính hai véc tơ ~ DA và ~ DH .

Hình 2. Sơ đồ phân tích vận tốc

Từ sơ đồ phân tích vận tốc trên Hình 2 nên thuật toán rất đơn giản nhưng hiệu quả ở đây là
v aB = ~ CB # CB (11) nhân hai vô hướng hai vế của phương trình (13) với
v eB = ~ DH # OB (12) v eB bằng việc sử dụng câu lệnh DotProduct. Từ đó
Rõ ràng muốn tính ~ DH từ (12) ta phải tính v eB . xác định được v eB và tính toán được ~ DH từ (12).
Mặt khác v aB = v eB + v rB (13) Tuy nhiên kết quả trả ra sẽ ở dạng RootOf
Trong (13), v rB chưa xác định nhưng v rB = v eB (biểu thức gốc).

Khoa học & Công nghệ - Số 9/Tháng 3 - 2016 Journal of Science and Technology 9
ISSN 2354-0575

DotProduct(a,b,conjugate=false)
RootOf b 2 _Zr - 16 ~l2 r 3 3 +6 - 16 ~l2 r + _Zr 3
1 15
Như vậy đến đây đã xác định được ~ DH và
+ 3 ~l2 r i. từ (9) tính được vD. Từ phương trình (10) ta xác
định được vA theo ~ DA (chưa biết).
Về mặt cơ học ta biết rằng các đại lượng Thuật toán tiếp theo là áp dụng điều kiện
chẳng hạn a, b, c, d là chiều dài nên hiển nhiên biên của chuyển động để xác định ~ DA. Ở đây
dương, nhưng khi tính toán trên các phần mềm toán do con trượt A chuyển động theo phương y nên
học chẳng hạn Maple a, b, c, d sẽ được hiểu là các vA[1]=0. Giải phương trình này ta thu được ~ DA và
đại lượng tổng quát (có thể là số phức, số thực, số dễ dàng tính được vA.
nguyên, có thể âm, có thể dương, …) bởi vậy khi
tính toán sẽ trả ra kết quả ở dạng biểu thức gốc. Để + Phân tích bài toán gia tốc: Tương tự như phân
xử lý vấn đề này ta thêm thuộc tính conjugate=false tích bài toán vận tốc
trong biểu thức tính tích vô hướng. Cụ thể:

H
B
aA a rB
A aCB
d O C

c
D

Hình 3. Sơ đồ phân tích gia tốc

a aB = a eB + a rB + a CB (14) aD = f DH # OD - ~2DH OD (15)


Ở đây thành phần gia tốc tương đối của điểm a
Mặt khác: A = a D + f DA # DA - ~ 2
DA DA (16)
B là a rB chưa biết nhưng a rB = a CB (hoặc a rB = v eB ) Áp dụng điều kiện biên về chuyển động
nên ta nhân vô hướng hai vế của (14) với a CB (hoặc aA[1] = 0 giải được f DA từ đó véc tơ aA hoàn toàn
v eB ) từ đó xác định được f DH và tính được aD . được xác định.

4. Lập trình tính toán trên phần mềm toán học Maple 18
restart:
with(LinearAlgebra):
with(linalg):
#=========BÀI TOÁN VỊ TRÍ=========
i : = arcsin a b sin a k :
a

b sin ( a + i )
lOB: = evalf ( sin a ): #Khoang cach OB
CB: =1 b cos _a + i i , b sin _a + i i , 0 2 : #Vector CB
CB: =1 - c cos ( a ), - c sin ( a ), 0 2 : #Vector OD
DA: =1 - d sin ( b ), d cos ( b ), 0 2 : #Vector DA
#=========BÀI TOÁN VẬN TỐC=========
~CB: =1 0, 0, ~ 2 : #Vector van toc goc cua thanh CB
~DH: =1 0, 0, ~0 2 : #Vector van toc goc cua thanh DH
~DA: =1 0, 0, ~1 2 : #Vector van toc goc cua thanh DA

vBa: = CrossProduct ( ~CB, CB): #Vector van toc tuyet doi cua diem B
vBe: = CrossProduct ( ~DH, OB): #Vector van toc keo theo cua diem B
pt1:=DotProduct(vBa,vBe,conjugate=false)=DotProduct(vBe,vBe,conjugate=false)+
DotProduct(vBr,vBe,conjugate=false):#Phuong trinh hop van toc

10 Khoa học & Công nghệ - Số 9/Tháng 3 - 2016 Journal of Science and Technology
ISSN 2354-0575

solve({pt1},{ ~0 }):
assign(%):
vBr:=vBa-vBe:#Vector van toc tuong doi cua diem B
vD: = CrossProduct ( ~DH, OD): #Vector van toc cua diem D
vA: = vD + CrossProduct ( ~DA, DA): #Vector van toc cua diem A
solve({vA[1]},{ ~1}):
assign(%):
#=========BÀI TOÁN GIA TỐC=========
fCB: =1 0, 0, f 2 : #Vector gia toc goc cua thanh CB
fDH: =1 0, 0, f0 2 : #Vector gia toc goc cua thanh DH
fDA: =1 0, 0, f1 2 : #Vector gia toc goc cua thanh DA
aBa: = CrossProduct ( fCB, CB) - ~2 CB: #Vector gia toc tuyet doi cua diem B
aBe: = CrossProduct ( fDH, OB) - ~02 OB: #Vector gia toc keo theo cua diem B
aBc: = CrossProduct (2~DH, vBr): #Vector gia toc Coriolis cua diem B
pt2:=DotProduct(aBa,aBc,conjugate=false)=DotProduct(aBe,aBc,conjugate=false)+
DotProduct(aBr,aBc,conjugate=false)+
DotProduct(aBc,aBc,conjugate=false):#Phuong trinh hop gia toc
solve({pt2},{ f0 }):
assign(%):
aD: = CrossProduct _fDH, OD i - ~02 OD #Vector gia toc cua diem D
aA: = aD + CrossProduct _fDA, DA i - ~l2 DA #Vector gia toc cua diem A
solve({aA[1]},{ f1}):
assign(%):
#=========DỮ LIỆU ĐẦU VÀO=========
rn
n: = 1200: ~ : = 30 : f : = 0:
a:=0.6:b:=0.6:c:=0.6:d:=0.6:
r r
a := 6 : b := 6
#=========XUẤT KẾT QUẢ=========
evalf( ~0 );#Van toc goc cua thanh DH
62.83185306
evalf( f0 );#Gia toc goc cua thanh DH
-1.3.10-6
evalf( ~1);#Van toc goc cua thanh DA
36.27598729
evalf( f1);#Gia toc goc cua thanh DA
4707.604262
evalf(vA[2]);#Van toc cua diem A
-43.53118474
evalf(aA[2]);#Van toc cua diem A
-911.7150012

Kết quả tính toán đúng với các công bố Từ chương trình lập trình ở trên, thay đổi thông số
trong [5] (sử dụng phương pháp giải tích). Điều này đầu vào và chạy chương trình trên Maple sẽ thu
chứng tỏ độ tin cậy và tính chính xác của thuật toán. được các kết quả động học tại các thời điểm khác.

Tài liệu tham khảo

[1]. Khổng Doãn Điền, Đặng Việt Cương, Vũ Xuân Trường, Vũ Đức Phúc, Giáo trình Cơ học kỹ
thuật, NXB Giáo dục Việt Nam, Hà Nội, 2012.
[2]. Khổng Doãn Điền, Vũ Xuân Trường, Nguyễn Duy Chinh, Phương pháp số trong Cơ học kỹ
thuật, NXB Khoa học Kỹ thuật, Hà Nội, 2014.
[3]. Khổng Doãn Điền, Nguyễn Duy Chinh, Vũ Xuân Trường, Tuyển tập Bài tập & Lời giải Cơ học
kỹ thuật, phần Động lực học, NXB Khoa học Kỹ thuật, Hà Nội, 2014.

Khoa học & Công nghệ - Số 9/Tháng 3 - 2016 Journal of Science and Technology 11
ISSN 2354-0575

[4]. Nguyễn Văn Khang, Cơ học kỹ thuật, NXB Giáo dục Việt Nam, Hà Nội, 2009.
[5]. Nguyễn Phong Điền, Nguyễn Quang Hoàng, Nguyễn Văn Khang, Nguyễn Minh Phương, Bài
tập Cơ học kỹ thuật, NXB Giáo dục Việt Nam, Hà Nội, 2010.
[6]. Nguyễn Văn Khang, Động lực học hệ nhiều vật, NXB Khoa học kỹ thuật, Hà Nội, 2007.

AN ALGORITHM IN KINETIC ANALYSIS FOR MECHANICAL SYSTEMS

Abtract:
This paper presents a kinematic analysis algorithms applied to diffirent mechanical systems. The
flexibility of the algorithm is shown in that can apply to all mechanical systems and at all times. The idea
of this algorithm comes from computing power on a vector, matrix of mathematical software (eg Maple).
However a difficulty arises that the processing of data in the form of calculation parameters (symbolic), the
results will be in the form of original expression RootOf, while we need the results in the form of parameters
(symbolic) or number (numeric). This issue will be presented and thoroughly solved in this paper.
Keywords: Kinetic analysis, DotProduct, CrossProduct, RootOf, Symbolic, Conjugate

12 Khoa học & Công nghệ - Số 9/Tháng 3 - 2016 Journal of Science and Technology

You might also like