Do An Tot Nghiep4

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Do An Tot Nghiep4 as PDF for free.

More details

  • Words: 31,460
  • Pages: 137
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP- TỰ DO- HẠNH PHÚC --------***--------

--------***--------

NHIỆM VỤ THIẾT KẾ TỐT NGHIỆP Sinh viên : Nguyễn Mạnh Cương Khóa : K48 Ngành : Cơ điện tử

Lớp : KSTN Khoa : Cơ khí Bộ môn: Cơ học ứng dụng

1. Đề tài tốt nghiệp: Tách liên kết và sử dụng các phép biến đổi Symbolic để xây dựng một cách tự động phương trình chuyển động cho các hệ cơ học 2. Nội dung các phần thuyết minh và tính toán Đồ án tốt nghiệp bao gồm 5 chương chính: Chương I: Vấn đề tách liên kết. Chương II: Phép biến đổi Symbolic và thành lập phương trình Lagrange dạng nhân tử. Chương III: Phép biến đổi Symbolic và thành lập phương trình chuyển động theo nguyên lý phù hợp. Chương IV: Sử dụng không gian bù trong bài toán tách liên kết. Chương V: Giới thiệu các phần mềm sử dụng trong tính toán và ví dụ Ngoài ra phần cuối đồ án có phần tổng kết các công việc đạt được và hướng nghiên cứu trong tương lai cùng với phần phụ lục là các file ví dụ được sử dụng trong tính toán. 3. Ngày giao nhiệm vụ thiết kế: 4. Ngày hoàn thành: 5. Cán bộ hướng dẫn: PGS. TS. Đinh Văn Phong ThS. Lê Hồng Lam. Cán bộ hướng dẫn

Ngày….. tháng ….. năm 2008

(Ký và ghi rõ họ tên)

Chủ nhiệm bộ môn (Ký và ghi rõ họ tên)

Sinh viên đã hoàn thành (và nộp đồ án cho khoa) Ngày….. tháng ….. năm 2008

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI --------***--------

BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP Sinh viên : Nguyễn Mạnh Cương Khóa : K48 Ngành : Cơ điện tử

Lớp : KSTN Khoa : Cơ khí Bộ môn: Cơ học ứng dụng

1. Nội dung đề tài tốt nghiệp: Tách liên kết và sử dụng các phép biến đổi Symbolic để xây dựng một cách tự động các phương trình chuyển động cho các hệ cơ học 2. Nhận xét: ♦ NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... ....................................................................................................................................

.................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... ....................................................................................................................................

.................................................................................................................................... .................................................................................................................................... ♦ NHẬN XÉT CỦA GIÁO VIÊN DUYỆT ĐỒ ÁN .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... ....................................................................................................................................

.................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... .................................................................................................................................... ....................................................................................................................................

.................................................................................................................................... .................................................................................................................................... ....................................................................................................................................

Lời nói đầu Việc áp dụng các phép biến đổi Symbolic (xử lý ký tự) để xây dựng phương trình chuyển động cho cơ hệ là một hướng nghiên cứu mới trong cơ học. Trên thực tế có rất nhiều phần mềm phát triển mạnh các phép biến đổi Symbolic được sử dụng để xây dựng phương trình chuyển động như Maple, Mathematica…, nhưng các phần mềm này xây dựng các phép biến đổi Symbolic cho mọi ứng dụng bất kỳ: toán học, tin học, điều khiển học …, và không đi sâu vào một nhánh cụ thể. Do đó, khi đưa vào giải các bài toán cơ học thì các phần mềm một là chứa những giải thuật là không cần thiết, hai là không đáp ứng được việc giản ước các biểu thức Symbolic mang đặc trưng riêng trong việc thành lập phương trình chuyển động cho các cơ hệ. Từ đó, khi gặp từng bài toán cụ thể các nhà cơ học phải xây dựng nhưng file tính toán dựa trên nền tảng các gói xử ly Symbolic. Việc xây dựng này thường là mất khá nhiều thời gian và dễ gây nhầm lẫn. Mục tiêu của đồ án là đưa ra một định dạng tệp để lưu thông tin của các hệ nhiều vật, từ đó ứng với các mô hình mới ta chỉ việc truyền thông tin xây dựng tệp này và đầu ra sẽ là các phương trình chuyển động của hệ. Điểm khó của công việc này là đó là các phương trình chuyển động dưới dạng Symbolic ta sinh ra thường khá dài và phức tạp. Chính vì vậy đồ án tập trung vào phát triển các giải thuật rút gọn các biểu thức Symbolic để đưa chúng về dạng tối giản. Ngoài ra bằng việc phân tích cấu trúc các hệ nhiều vật, đồ án cũng đưa ra giải pháp tách các cấu trúc của hệ, chọn thêm các tọa độ suy rộng dư, bổ sung thêm các phương trình liên kết. Từ đó đồ án cũng rút ra các phương pháp thành lập phương trình chuyển động khác nhau và các kết quả của chúng sau khi mô phỏng để so sánh.

Trong quá trình thực hiện đồ án, tác giả đã nhận được rất nhiều sự giúp đỡ, hướng dẫn và sự quan tâm góp ý, đặc biệt là từ gia đình, thầy cô giáo và bạn bè. Trước tiên tác giả xin bày tỏ lòng biết ơn sâu sắc đến thầy giáo hướng dẫn trực tiếp PGS.TS Đinh Văn Phong vì sự hướng dẫn, định hướng của thầy trong suốt thời gian thực hiện đồ án. Tác giả cũng xin chân thành cảm ơn ThS. Lê Hồng Lam, ThS. Trần Đức đã cho phép tham khảo và sử dụng các phần mềm để phát triển các ứng dụng. Cuối cùng, tác giả xin cảm ơn Trung Tâm đào tạo Kỹ sư tài năng, Bộ môn Cơ ứng dụng- Khoa cơ khí, gia đình và bạn bè đã giúp đỡ, tạo điều kiện thuận lợi nhất cho tác giả hoàn thành nhiệm vụ. Đồ án hoàn thành với sự nỗ lực nhiều của tác giả, song vì thời gian và điều kiện có hạn nên đồ án khó tránh khỏi những thiếu sót. Tác giả chân thành mong nhận được sự góp ý của thầy cô và các bạn để có thể hoàn thiện hơn khi tiếp tục phát triển đề tài này nếu có điều kiện.

Hà nội, tháng 5 năm 2008 Người thực hiện Nguyễn Mạnh Cương

Mục lục

BỘ MÔN CƠ HỌC ỨNG DỤNG

MỤC LỤC Chương I: VẤN ĐỀ TÁCH LIÊN KẾT......................................................... ....12 1.1.Cơ hệ có cấu trúc cây (dạng chuỗi động hở).................................... ...........12 1.2.Cơ hệ có cấu trúc vòng kín (chuỗi động kín)............................... ................14 1.3.Giải thuật tách liên kết đưa cấu trúc dạng vòng kín về dạng hở.................15 1.3.1.Mục đích của việc tách liên kết............................................. ................15 1.3.2.Các tiêu chí tách liên kết................................................. ......................16 1.3.3.Giải thuật tách liên kết............................................... ...........................19 1.3.4.Xây dựng phương trình liên kết sau khi tách..................................... ....25 Chương II: PHÉP BIẾN ĐỔI SYMBOLIC VÀ THÀNH LẬP CÁC PHƯƠNG TRÌNH LAGRANGE DẠNG NHÂN TỬ................................................ ..........32 2.1.Phương trình Lagrange dạng nhân tử..................................... ....................32 2.2.Sử dụng phương pháp Symbolic để thành lập phương trình Lagrange dạng nhân tử................................................................................. .............................35 2.3.Các giải thuật rút gọn................................................................................ ..38 Chương III: PHÉP BIẾN ĐỔI SYMBOLIC VÀ THÀNH LẬP PHƯƠNG TRÌNH THEO NGUYÊN LÝ PHÙ HỢP................................................. .........46 3.1.Nguyên lý phù hợp............................................................................. ..........46 3.2.Các giải thuật xây dựng không gian bù...................................... .................48 3.2.1.Phương pháp giải phương trình theo Cramer........................................49 3.2.2.Phương pháp sử dụng tuần tự các phương trình liên kết.......................54 3.2.3.So sánh phương pháp định thức và phương pháp thêm tuần tự các phương trình liên kết.......................................................................... ............58 Chương IV: SỬ DỤNG KHÔNG GIAN BÙ (Null Space) TRONG BÀI TOÁN TÁCH LIÊN KẾT.............................................................................. .................60 4.1.Việc xây dựng không gian bù từ bài toán tách liên kết ...............................60 4.2.Xây dựng phương trình chuyển động với số lượng phương trình bằng số tọa độ suy rộng được chọn............................................................ ..........................62 4.3.Xây dựng phương trình chuyển động bằng cách đưa bộ tọa độ suy rộng dư về bộ tọa độ suy rộng đủ................................................................................... .67 Chương V: GIỚI THIỆU PHẦN MỀM SỬ DỤNG VÀ VÍ DỤ TÍNH TOÁN 79 5.1.Giới thiệu một số phần mềm được xây dựng...............................................79 5.1.1.Phần mềm LinkBreak ....................................................................... ....79 5.1.2.Phần mềm MBSRun............................................................................ ..88 5.1.3.Phần mềm DAESol........................................................... ....................93 5.2.Một số ví dụ................................................................................. ................95 5.2.1.Cơ cấu 4 khâu (hình 5-4).................................................................... ...96 5.2.2.Máy mài 6 khâu (hình 5-5)............................................................. .....101 5.2.3.Dao bào ngang ...................................................... .............................109 5.2.4.Cơ cấu phối hơi đầu máy xe lửa ........................................ .................116 Phụ lục A. Các hàm biến đổi Symbolic được triển khai trong thư viện Expression.dll.................................................................... ................................125 Nguyễn Mạnh Cương

-8-

KSTN-CĐT-K48

Mục lục

BỘ MÔN CƠ HỌC ỨNG DỤNG

................................................................................................ ............................130 Phụ lục B: Các ví dụ được sử dụng để so sánh 2 phương pháp tính toán không gian bù D của ma trận liên kết G................................................... .......131

Nguyễn Mạnh Cương

-9-

KSTN-CĐT-K48

BỘ MÔN CƠ HỌC ỨNG DỤNG

Đặt vấn đề

Đặt vấn đề Việc xây dựng phương trình chuyển động thường khiến ta nghĩ đến việc sử dụng bộ tọa độ suy rộng đủ bằng chính số lượng các bậc tự do của cơ hệ, khi đó, số lượng tọa độ suy rộng ta chọn là nhỏ nhất, số lượng phương trình vi phân chuyển động cũng từ đó nhỏ nhất. Tuy nhiên, với những cơ hệ phức tạp, việc tiến hành lập phương trình chuyển động với bộ tọa độ suy rộng đủ không phải lúc nào cũng làm được và nếu thực hiện được thì các phương trình chuyển động được thiết lập cũng rất phức tạp và dài dòng. Một bất lợi nữa của phương pháp này đó là vẫn chưa có giải thuật tổng quát cho phép chọn lựa được bộ tọa độ suy rộng đủ tối ưu nhất để thành lập phương trình chuyển động một cách tự động. Từ đó hướng giải quyết của đồ án là thực hiện tách liên kết để đưa các cơ hệ phức tạp về cơ hệ có cấu trúc động học hở một nhánh. Các cơ hệ có cấu trúc động học hở một nhánh có ưu điểm là số bậc tự do chính bằng tổng số tọa độ các khớp, cho nên ta có thể đưa ra khả năng chọn tọa độ suy rộng độc lập một cách tổng quát tự động, chính là các tọa độ khớp. Tuy nhiên, để tách liên kết, ta phải bổ sung các phương trình liên kết, cũng như việc bộ tọa độ ta chọn là dư. Qua nghiên cứu, nhóm nhận thấy các phương trình liên kết được bổ sung khi tách liên kết có một số đặc điểm trong việc giúp ta chọn từ bộ tọa độ suy rộng dư một số tọa độ độc lập hay nói cách khác, ta có thể biến đổi dễ dàng để đưa các hệ phương trình chuyển động từ việc phụ thuộc vào bộ tọa độ suy rộng dư về phụ thuộc các tọa độ suy rộng đủ. Để làm rõ hơn vấn đề này, đồ án được chia làm các chương như sau: Chương I: Vấn đề tách liên kết. Chương này giải quyết câu hỏi khi nào thì cần tách liên kết, nếu phải tách thì tách ra sao và như thế nào là có lợi nhất. Cuối cùng là modun thành lập các phương trình liên kết tự động được xây dựng như thế nào. Chương II: Phép biến đổi Symbolic và các phương trình Lagrange dạng nhân tử. Sau khi tách liên kết ta phải bổ sung thêm các ràng buộc. Để thành lập

Nguyễn Mạnh Cương

- 10 -

KSTN-CĐT-K48

BỘ MÔN CƠ HỌC ỨNG DỤNG

Đặt vấn đề

phương trình chuyển động cho các cơ hệ chịu ràng buộc, mục này đề cập tới việc sử dụng các phương trình Lagrange dạng nhân tử. Ngoài ra chương còn tập trung tới các giải thuật rút gọn Symbolic áp dụng cho việc tính toán động năng, thế năng, việc đạo hàm và thành lập phương trình chuyển động. Chương III: Phép biến đổi Symbolic và các phương trình chuyển động theo nguyên lý phù hợp. Nguyên lý phù hợp không chỉ áp dụng để thành lập phương trình chuyển động cho các cơ hệ chịu liên kết lý tưởng mà còn được áp dụng khi có các liên kết cấp cao (higher-order constraints). Tại mục này, đồ án đưa ra các phép biến đổi Symbolic để thành lập ma trận không gian bù (Null Space) trong quá trình thành lập phương trình chuyển động theo nguyên lý phù hợp. Chương IV: Sử dụng không gian bù trong bài toán tách liên kết. Chương đưa ra một số nhận xét quan trọng trong việc tính toán cũng như ứng dụng không gian bù trong việc rút ngắn số lượng phương trình chuyển động của cơ hệ và việc chọn lựa bộ tọa độ suy rộng đủ trong các tọa độ suy rộng dư để thành lập phương trình chuyển động. Chương V: Một số ví dụ. Chương đưa ra hướng dẫn sử dụng các phần mêm được phát triển trong quá trình xây dựng đồ án cũng như các kết quả so sánh khi thành lập phương trình chuyển động theo các phương pháp khác nhau: phương trình Lagrange dạng nhân tử, phương trình chuyển động theo nguyên lý phù hợp, phương trình chuyển động với số lượng phương trình rút gọn… Sau đây ta sẽ tìm hiểu chi tiết hơn các vấn đề đặt ra.

Nguyễn Mạnh Cương

- 11 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

Chương I: VẤN ĐỀ TÁCH LIÊN KẾT Chương này sẽ giới thiệu một số khái niệm cơ bản như cấu trúc cây và cấu trúc mạch vòng của hệ nhiều vật [1]; ngoài ra chương sẽ đề cập rõ hơn ý tưởng và mục đích của việc tách liên kết trong việc xây dựng phương trình chuyển động cho các cơ hệ có cấu trúc phức tạp.

1.1.Cơ hệ có cấu trúc cây (dạng chuỗi động hở) Một cơ hệ được xem là có cấu trúc dạng hở (hay còn gọi là cấu trúc cây) khi con đường đi từ vật thể này sang một vật thể khác bất kỳ được xác định một cách duy nhất. Trong chuỗi động hở, người ta cũng chia làm 2 loại: chuỗi động hở nhiều nhánh (hình 1-1.a) và chuỗi động hở một nhánh (hình 1-1.b).

Vật 4b

Vật 4a Vật 3a

Vật 1a

Vật 3b

Vật 2a Vật 1b Vật 6a

Vật 2b

Vật 5a

Hình 1-1.a

Hình 1-1.b

Như thế, nếu sử dụng lý thuyết đồ thị topo (body graph), khi ta đi bằng một con đường qua các vật và có chiều nhất định thì ứng với mỗi vật thể, ta xác định một cách duy nhất khớp trước nó và vật thể trước nó. Tính chất này của chuỗi động hở cho ta một cách lưu trữ thông tin của hệ cơ học một cách ngắn gọn và

Nguyễn Mạnh Cương

- 12 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

logic hơn: ta chỉ cần lưu trữ thông tin vật trước nó và các thông tin để xác định vị trí tương đối của nó so với vật trước nó. Cụ thể để lưu trữ thông tin vật thứ 4 trong chuỗi động hở trên ta chỉ cần xây dựng một tệp thông tin có định dạng như sau (phần này được trình bày kỹ hơn ở mục 5.1.3): BODY { NAME=vat4; PREBODY=vat3; // lưu các thông tin về mối quan hệ giữa vật 4 và vật 3 } Một điểm đáng lưu ý đối với cơ hệ có cấu trúc dạng hở đó là biểu thức động năng [mục 2.1] có kích thước tăng rất mạnh theo số lượng vật trong chuỗi. Biểu đồ dưới đây mô tả kích thước biểu thức động năng (tính bằng số dòng trên trang A4) phụ thuộc vào số lượng vật (số lượng mắt xích), với giả thiết rằng các vật đều liên kết với nhau bằng khớp quay phẳng [17].

Hình 1-2: Độ phức tạp của biểu thức động năng phụ thuộc vào số lượng mắt xích trong chuỗi

Nguyễn Mạnh Cương

- 13 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

1.2.Cơ hệ có cấu trúc vòng kín (chuỗi động kín). Khác với cơ hệ có cấu trúc cây, với hệ có cấu trúc vòng kín, sẽ có nhiều hơn một con đường đi từ một vật này đến vật khác trong cơ hệ. Các chuỗi động kín được phân thành chuỗi động kín hoàn toàn và chuỗi động kín từng phần. Một hệ nhiều vật có cấu trúc mạch vòng tạo thành một chuỗi động kín từng phần (hình 1-3.a) nếu có một trong các đặc điểm sau: -

có một hoặc vài hệ con là chuỗi hở.

-

các hệ con là chuỗi động kín nhưng lại ghép nỗi với nhau không kín.

Một hê nhiều vật có cấu trúc mạch vòng tạo thành một chuỗi động kín hoàn toàn (hình 1-3.b) nếu như thỏa mãn cả hai điều kiện sau: -

mỗi vật thể là một phần tử của một mạch vòng.

-

mỗi mạch vòng có ít nhất một vật thể nỗi với mạch vòng khác.

Hình 1-3.a

Hình 1-3.b

Các cơ hệ có cấu trúc dạng vòng khá phổ biến trên thực tế vì có thể làm tăng độ chính xác, vững chắc nhưng có yếu điểm là việc điều khiển phức tạp.

Nguyễn Mạnh Cương

- 14 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

1.3.Giải thuật tách liên kết đưa cấu trúc dạng vòng kín về dạng hở. 1.3.1.Mục đích của việc tách liên kết Như nhận xét tại mục 1.1, khi sử dụng phương pháp Symbolic để xây dựng phương trình chuyển động, nếu ta sử dụng các phương trình Lagrange [chương II] thì kích thước của biểu thức động năng (tính bằng số dòng trang giấy) tăng rất mạnh theo số lượng vật trong nhánh động học hở. Chính vì vậy đối với những nhánh động học hở, người ta thường thực hiện tách liên kết khi số lượng vật rắn trong hệ là lớn. Ngoài ra với những hệ nhiều vật có cấu trúc mạch vòng, Valásek và Stejskal [10] đã đưa ra 2 phương pháp để giải quyết, phương pháp thứ nhất là sử dụng tách liên kết với độ phức tạp là O(n) + O(l3) trong đó l là số vòng trong hệ và n là số lượng vật của hệ. Phương pháp thứ 2 sử dụng phương pháp động hình học [10] với độ phức tạp chỉ là O(n). Tuy nhiên phương pháp thứ 2 thích hợp đối với phương pháp số (Numeric) còn mục đích của ta là sử dụng phương pháp Symbolic để thành lập phương trình chuyển động, vì vậy ta sẽ sử dụng phương pháp thứ nhất, tách các liên kết trong các hệ có cấu trúc mạch vòng để đưa về hệ có cấu trúc mạch hở sau đó bổ sung thêm các phương trình liên kết. Trên thực tế, bài toán tách liên kết các hệ nhiều vật chính là bài toán khảo sát động lực học của cơ hệ với bộ tọa độ suy rộng dư. Nhược điểm của phương pháp này đó là với việc sử dụng thêm các tọa độ phụ thuộc, số lượng phương trình vi phân chuyển động sẽ tăng lên, ta phải bổ sung thêm các phương trình liên kết, và đưa bài toán trở thành giải hệ phương trình vi phân-đại số. Với sự phát triển của tốc độ xử lý trên máy tính, việc giải các phương trình trên không còn là vấn đề quá lớn, vì vậy phương pháp này ngày càng được sử dụng rộng rãi.

Nguyễn Mạnh Cương

- 15 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

1.3.2.Các tiêu chí tách liên kết a) Tiêu chí 1: Nên duy trì số lượng vật trong một nhánh của cấu trúc động học dạng cây nhỏ hơn 6. Nếu lớn hơn, ta sẽ tách liên kết. Việc tách sẽ thực hiện tạo thành 2 nhánh động học hở với số vật tương ứng bằng hoặc gần bằng nhau. Trên thực tế, người ta sử dụng rất nhiều các hệ robot có 5 hoặc 6 bậc tự do. Đối với những hệ robot không gian ví dụ như con Kuka, Puma…, phương trình chuyển động Lagrange của nó đã rất phức tạp. Chính vì vậy, đối với những nhánh động học hở có số lượng vật rắn nhiều hơn 6 thì nên thực hiện tách liên kết, chẳng hạn như các hệ robot dư dẫn động (có số lượng bậc tự do lớn hơn 6), robot phỏng sinh học (cấu trúc có nhiều khớp) thì ta nên thực hiện tách liên kết. b) Tiêu chí 2: Với các hệ nhiều vật có cấu trúc mạch vòng thì ta tách thành các nhánh có số khâu bằng nhau hoặc gần bằng nhau. A RA

OA

RA’ A’

OA’

O

Hình 1-4: Tách hệ động học cấu trúc kín

Đối với các nhánh cơ học có cấu trúc dạng vòng thì Jens Wittenberg đưa ra 2 cách giải quyết: thứ nhất là sử dụng phương pháp nhân đôi vật (thường được biết đến là phương pháp tách đôi vật), thứ hai là tách liên kết. Đối với phương pháp Nguyễn Mạnh Cương

- 16 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

thứ nhất, số lượng phương trình liên kết phải sinh ra để bù vào việc tách luôn luôn là 6 đối với hệ không gian. Còn đối với phương pháp thứ hai thì số lượng phương trình liên kết phải sinh ra bằng 6-f. với f là số bậc tự do của liên kết. Từ đó, số lượng phương trình liên kết của phương pháp thứ hai luôn ít hơn phương pháp thứ nhất, và đó chính là lý do phương pháp tách liên kết thường được sử dụng hơn là phương pháp tách vật. Việc tách liên kết tại đâu để có lợi nhất cho việc thành lập phương trình chuyển động sau này được đề cập khá kỹ trong [17]: ta nên giữ cho số lượng 2 nhánh cây sau khi tách có số lượng vật là bằng nhau. c) Tiêu chí 3: Với hệ nhiều vật có cấu trúc cây nhiều nhánh thì ta nên tách liên kết tại các khâu liên kết với nhiều khâu khác (tức là số lên kết trên vật lớn hơn 2, ta gọi các khâu đó là” khâu đa liên kết”) để đưa về hệ có cấu trúc cây một nhánh.

Khâu B Khâu B 1

2

3

1

Khâu A

2

3

Khâu A

Hình 1-5b: sau khi tách nhánh động học hở nhiều nhánh thành các nhánh đơn lẻ.

Hình 1-5a: cấu trúc động học hở nhiều nhánh

Với những cấu trúc động học có nhiều nhánh thì nếu như ta muốn tính toán động năng cho các nhánh ta đều phải xuất phát từ giá đỡ (nền) và sử dụng cách tính hồi quy chính vì vậy trong biểu thức động năng, những vật chung (khâu A trong hình 1-5a) sẽ phải tính toán rất nhiều lần. Như vậy, tốt nhất là ta nên đưa những nhánh động học hở nhiều nhánh trở về các nhánh động học hở một nhánh. Ví dụ như đối với hình 1-5a, nếu như ta không tách liên kết, ta sẽ phải xem xét Nguyễn Mạnh Cương

- 17 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

chuyển động của khâu B qua khâu A, tiếp tục qua các khâu trung gian rồi mới đến giá đỡ, nhưng nếu như ta thực hiện tách liên kết tại khớp 2 (hình 1-5b) thì việc tính toán với khâu B chỉ liên quan tới khâu trước nó mà thôi. d) Tiêu chí 4: Khi tách các liên kết của những ”khâu đa liên kết”, ta nên tách ở khớp nào có ít ràng buộc nhất. Khâu đa liên kết là những khâu mà liên kết với nhiều hơn 2 khâu khác. Chính vì vậy khi tách liên kết ta phải lựa chọn tách liên kết nào trong các liên kết của khâu đó. Để giải quyết vấn đề này, ta chú ý rằng: một liên kết có bao nhiêu ràng buộc thì sau khi tách ta phải sinh ra bấy nhiêu phương trình liên kết. Do đó để giảm thiểu số phương trình vi phân-đại số sau này, tốt nhất ta chọn liên kết ít ràng buộc để tách. Trên thực tế có rất nhiều dạng liên kết khác nhau, chung qui có thể chia làm 2 loại: khớp cao và khớp thấp, trong đó với khớp cao thì phần tiếp xúc chỉ là một đường hay một điểm, còn với khớp thấp thì phần tiếp xúc là một mặt. Như vậy rõ ràng khớp cao sẽ có ràng buộc ít hơn so với khớp thấp. Tuy nhiên do giới hạn của đồ án, ta sẽ không xét tới các bài toán của khớp cao mà chỉ xét tới các khớp thấp. Với các loại khớp thấp điển hình có: -

khớp cầu, khớp phẳngràng buộc 3 bậc tự do

-

khớp Cardang, khớp trụ ràng buộc 4 bậc tự do

-

khớp quay ràng buộc 5 bậc tự do

Từ hệ quả trên, ta có độ ưu tiên theo thứ tự giảm dần khi tách khớp như sau: Khớp cầu, khớp phẳng> khớp cardang, khớp trụ > khớp quay e)

Tiêu chí 5: nếu như sau khi xét tiêu chí 4 vẫn còn những liên kết có mức độ ưu tiên như nhau thì ta ưu tiên giữ lại liên kết nào mà nối với nền gần nhất.

Nguyễn Mạnh Cương

- 18 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

Tiêu chí thứ 5 đưa vào như là điểm dừng để giải thuật tách liên kết luôn luôn thực hiện được với mọi cơ cấu. Khi áp dụng tiêu chí 5 sẽ đảm bảo cho số lượng nhánh động học hở sau khi tách là ít nhất. 1.3.3.Giải thuật tách liên kết a) Xác định số lượng vòng kín và số lượng khâu đa liên kết trong hệ nhiều vật. Dựa vào các tiêu chí tách liên kết, ta nhận thấy đối với những hệ có cấu trúc dạng vòng thì bắt buộc sẽ thực hiện tách. Chính vì vậy bài toán đặt ra là đối với một cơ hệ cần phải xác định xem có bao nhiêu vòng cần phải tách. Để trả lời câu hỏi này, tài liệu [1] đã đưa ra công thức xác định số lượng các mạch vòng động lập, ký hiệu là nL của một chuỗi động kín. nL  nJ  p

trong đó: nJ là số khớp động, p là số vật thể động. Rõ ràng với cơ hệ có cấu trúc cây thì nJ = p nên nJ = 0. Tuy nhiên, để việc xác định số lượng liên kết cần phải tách một cách tự động trên máy tính, vì vậy ta có thể dùng phương pháp tính số lượng mạch vòng trong hệ nhiều vật bằng cách lập ma trận logic liên kết (trên thực tế các lý thuyết topo đồ thị giải quyết rất rõ về vấn đề này, và sử dụng ma trận liên kết cũng là một trong những ứng dụng của nó). Ma trận logic liên kết thực chất là một ma trận vuông có kích thước chính bằng số khâu của cơ hệ, trong đó khâu 0 mặc định là khâu nền. Các phần tử của ma trận liên kết được thành lập dựa trên mối liên hệ của các khâu trong hệ. Các phần tử sẽ có giá trị là 1 nếu như chỉ số hàng và cột của nó ứng với các khâu của cơ hệ có liên kết, và bằng 0 nếu như các khâu đó không có sự liên kết. Như vậy, các chỉ số trên đường chéo của ma trận logic liên kết thuộc về các khâu cùng tên, cho nên ta không quan tâm và ký hiệu là “x”. Cụ thể phần tử mij của ma trận M được xác định như sau:  1,  0,

mij  

Nguyễn Mạnh Cương

Khâu i liên kết với khâu j Khâu i không liên kết với khâu j

- 19 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

Như vậy ma trận logic liên kết là một ma trận đối xứng và khi triển khai trên máy tính ta chỉ cần lưu trữ nửa dưới hoặc nửa trên ma trận là có thể suy ra phần còn lại. Dựa vào ma trận logic liên kết ta có thể xác định được số lượng vòng trong cơ hệ, số lượng khâu đa liên kết trong cơ hệ. Để xác định số lượng vòng ta có thể xét một nhánh cơ hệ liên kết với nền gồm p vật (kể cả nền), để đi từ vật đầu đến vật cuối cùng (vật thứ p) của nhánh ta sẽ đi qua (p-1) khớp. Như vậy trên ma trận logic liên kết sẽ có 2(p-1) phần tử có giá trị bằng 1. Từ đó nếu như cơ hệ gồm p vật có cấu trúc động học hở thì số lượng phần tử khác 0 sẽ là 2(p-1), tuy nhiên ta quy ước các phần tử khác 0 đều có giá trị bằng 1 cho nên tổng giá trị các phần tử trong ma trận logic liên kết phải bằng 2(p-1) p

m

ij

i , j 0

 2  p  1

nếu như trong cơ hệ có thêm các liên kết phụ (các ràng buộc) thì mỗi liên kết sẽ làm cho xuất hiện thêm 2 phần tử khác 0, nói cách khác, tổng số lượng các phần tử trong ma trận logic liên kết sẽ tăng thêm 2 đơn vị. Từ đó ta có công thức tính số số liên kết cần phải phá vỡ ít nhất để đưa cơ hệ về dạng động học hở có dạng: p

l

m

i, j 0

ij

 2( p  1) 2

trong đó, l là số liên kết cần phải tách, p là tổng số khâu trong cơ hệ (kể cả nền) Ngoài ra với việc sử dụng ma trận logic liên kết ta có thể xác định được các khâu đa liên kết. Khâu đa liên kết là khâu mà có tổng số các phần tử của cột (hoặc 7 hàng) tương ứng trên ma trận liên kết lớn hơn 2. Ta có thể sử dụng tính chất này để áp dụng cho tiêu chí thứ 2 khi dùng để tách liên kết tự động. 9 6 Ví dụ ta thành lập ma trận logic liên kết của cơ cấu phối hơi đầu máy xe lửa: 8 10 2 1 5 Nguyễn Mạnh Cương

- 20 3

4

KSTN-CĐT-K48

Hình 1-6: Mô hình cơ cấu phối hơi đầu máy xe lửa

Chương I: Vấn đề tách liên kết

Nền Khâu 1 Khâu 2

x 1  0  0

0  M  0 0  1 0  1  1 Khâu 10 Nền

BỘ MÔN CƠ HỌC ỨNG DỤNG

1

1

0

0

0

0

0

1

0

1

x 1 0

1 x 1

0 1 x

0 0 1

0 0 0

0 0 1

0 0 0

0 0 0

0 0 0

0 0 0

0 0 0

1 0 1

x 1 0

1 x 0

0 0 x

0 0 1

0 0 1

0 0 0

0 0

0 0

0 0

0 0

0 0

1 1

x 0

0 x

0 1

0 0

0 0

0 1

0 0

0 0

0 1

0 0

0 0

1 0

x 0

0  x

0  1  0 0  1 0  

Khâu 10

Khâu 2 Khâu 1

Các cột của ma trận logic liên kết được đặt tên ứng với khâu, tổng số phần tử của ma trận liên kết bằng 28, tổng số khâu trong cơ hệ kể cả nền là 11. Áp dụng phương trình (1-4), ta phải tách ít nhất 4 liên kết để đưa cơ hệ trở về cấu trúc động

Nguyễn Mạnh Cương

- 21 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

học hở. Sau khi áp dụng chương trình LinkBreak ở mục 5.1.3, ta cũng thu được kết quả tương tự. b) Giải thuật tách liên kết Dựa vào các tiêu chí trên, ta sẽ thực hiện giải thuật tách liên kết và xây dựng các phương trình chuyển động như sau: Bước 1: Tách tất cả các khớp của khâu đa liên kết khỏi cơ hệ. Các khâu đa liên kết trở thành những khâu tự do, không liên kết với khâu nào khác của cơ hệ. Nếu không có khâu nào là khâu đa liên kết thì chuyển sang bước thứ 4. Bước 2: Ghép các khâu đa liên kết trở lại cơ hệ. Ta sẽ kiểm tra xem khâu đa liên kết gắn trở lại với nhánh cơ học theo mức độ ưu tiên như sau: - nhánh cơ học nào nối với đất ngắn nhất, khái niệm ngắn ở đây không có nghĩa là có số lượng vật trong nhánh là ít nhất mà tức là để đi tới khâu cuối cùng của nhánh cần phải có bao nhiêu ma trận biến đổi (ma trận xoay hoặc tịnh tiến) - nếu không có nhánh cơ học nào nối đất thì ta chọn nhánh cơ học (không chứa đất) nào ngắn nhất - nếu phải lựa chọn các nhánh cơ học có độ dài như nhau, thì ta sẽ chọn một nhánh bất kỳ. Bước 3: Kiểm tra xem nhánh nào chưa gắn với đất thì cho gắn tiếp tục với đất để thu được số nhánh cơ học là ít nhất (cũng như số khớp bị tách là ít nhất) Bước 4: Như vậy là hiện tại cơ hệ sẽ không còn khâu nào là khâu đa liên kết, trong bước thứ 4 ta sẽ kiểm tra lần lượt các nhánh cây, nếu trong nhánh nào có nối vòng (một khâu xuất hiện 2 lần, đầu và cuối) ta sẽ tách tại điểm giữa theo tiêu chí 2. Trong trường hợp người dùng muốn tách thêm các liên kết khác, thì ta sẽ đưa ra nhánh cơ học nào dài nhất và thực hiện tách đôi theo tiêu chí thứ 2. Bước 5: Sử dụng module thành lập các phương trình liên kết tự động.

Nguyễn Mạnh Cương

- 22 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

Bước 6: Bổ sung các phương trình liên kết vào hệ cơ học sau khi tách và dùng module thành lập tự động các phương trình chuyển động theo phương pháp Lagrange dạng nhân tử. Kết quả thu được từ bước 6 là một hệ các phương trình vi phân đại số. Lưu đồ trang bên biểu diễn quy trình tách liên kết cho các cơ hệ

Nguyễn Mạnh Cương

- 23 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

Nhập ma trận logic liên kết. M

S

Có khâu đa liên kết Đ Tách tất cả liên kết của khâu đa liên kết

Ghép các khâu đa liên kết trở lại cơ hệ

S

Có vòng Đ Tách các vòng

Sinh ma trận logic liên kết mới M’

So sánh M và M’

Thông tin liên kết bị tách

Nguyễn Mạnh Cương

- 24 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

1.3.4.Xây dựng phương trình liên kết sau khi tách Cùng với việc tách liên kết để xây dựng các chuỗi đơn ta cần bổ sung vào hệ phương trình chuyển động các phương trình liên kết. Việc xây dựng các phương trình liên kết tại các khớp đã được xét khá kỹ trong [1]... Ta sẽ căn cứ vào đặc trưng của từng loại liên kết khác nhau và phân tích kỹ hơn để đưa ra các công thức tổng quát cho các phương trình tương ứng. a) Khớp cầu trong không gian (hình 1-7) Khớp cầu trong không gian có 3 ràng buộc vì vậy sau khi tách khớp ta sẽ sinh ra 3 phương trình liên kết. Các phương trình đó chính là phương trình trùng điểm các tọa độ theo trục x,y,z sau khi tách liên kết. A

r ra

A’r

ra '

Hình 1-7: Tách khớp cầu

r r ra  ra '  0

Đối với một vòng kín gồm có p vật rắn, gọi các ma trận cosin chỉ phương Ai [1-chương 2] là ma trận chuyển đổi giữa hệ trục tọa độ gắn với khâu i so với khâu i-1, thì khi tách ở khớp thứ k, vecto vị trí của điểm A và A’ được xác định như sau: ra  A1A 2 ...A k rk ;

ra '  A p A p 1...A k 1rk 1

trong đó rk xác định vị trí của điểm A trên khâu k, rk+1 xác định vị trí của điểm A trên khâu k+1, từ đó ra xác định vị trí điểm A theo hệ trục tọa độ gắn với nền. Ta thu được phương trình liên kết sau khi tách khớp cầu có dạng

Nguyễn Mạnh Cương

- 25 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

A1A 2 ...A k rk  A p A p 1...A k 1rk 1  0

Ngoài ra nếu như ta lựa chọn bộ tọa độ suy rộng qi sao cho các ma Ai là ma trận cosin chỉ phương của hệ trục tọa độ gắn với khâu i so với hệ trục tọa độ gắn với nền, lúc đó vị trí vật trên khâu thứ k có thể được xác định theo phương trình: k 1

k

ra   A i ri ;

ra '   A j r j

i 1

j p

trong đó ri chính là tọa độ xác định vị trí liên kết của khâu i+1 với trên hệ trục tọa độ gắn với khâu i, riêng rk xác định vị trí của điểm A trên khâu k, rk+1 xác định vị trí của điểm A trên khâu k+1, lúc đó phương trình liên kết được xác định như sau: k

k 1

i 1

j p

 Airi   A j rj  0 Việc lựa chọn phương trình (1-7) hay (1-9) để xây dựng phương trình liên kết tùy thuộc vào việc chọn bộ tọa độ suy rộng qi, ta sẽ xét kỹ hơn ảnh hưởng của việc chọn tọa độ suy rộng đối với cơ cấu 4 khâu trong ví dụ tại mục 5.2.1. b) Khớp phẳng trong không

ya’

gian (hình 1-8) Khớp phẳng trong không gian có 3 ràng buộc vì vậy sau khi tách khớp ta sẽ sinh ra 3 phương trình liên kết. Các phương

trình

đó

chính



phương trình đảm bảo các mặt

xa’

xa

ya

r ra

za

r ra '

za’

luôn tiếp xúc (1-10), phương trình trùng phương (1-11)(1-12) (các phương trình trùng phương đảm bảo cho trục xa và ya luôn

Hình 1-8: Tách khớp phẳng trong không gian

phải vuông góc với trục za’

Nguyễn Mạnh Cương

- 26 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG r r (ra '  ra )T e za  0 eTza 'e xa  0 eTza 'e ya  0

Trong đó vecto en là vecto đơn vị của trục n, từ đó nếu chọn Ai là các ma trận cosin chỉ phương của hệ trục tọa độ gắn với khâu i so với hệ trục tọa độ gắn với khâu i-1, vecto en được xác định bởi tích các ma trận cosin chỉ phương là ma trận quay (không tính ma trận chuyển dịch vì nó không làm đổi hướng vecto za) k 1

e za '   A i p

xoay i

 0  0    1 

 1 e xa   A ixoay  0  i1  0  k

 0 e ya   Aixoay  1  i1  0  k

Kết hợp phương trình (1-13) (1-14) (1-15) và phương trình (1-6), ta có thể viết lại phương trình (1-10) (1-11) (1-12) như sau: ( A1A 2 ...A k rk  A p A p 1...A k 1rk 1 )

Nguyễn Mạnh Cương



0

0 1 

0



k 1

A 

i p

0 1 

k 1



A i p

T



xoay i

xoay i

 

T



 

k

A i 1

k

A i 1

- 27 -

T

k

A i 1

xoay i

 0  0  0    1 

xoay i

 1  0  0    0 

xoay i

 0  1  0    0 

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

c) Khớp Cardan (hình 1-9) Các khớp Cardan có thể được xác định dựa trên các góc Cardan [1], tuy nhiên ở đây ta đưa ra các phương trình ràng buộc của khớp Cardan. Khớp Cardan ràng buộc 4 chuyển động chính vì vậy khi tách liên kết sẽ phải sinh ra 4 phương trình liên kết: 3 phương trình tọa độ trùng điểm (1-19) và một phương trình ràng buộc về phương (1-20). r r ra  ra '  0 eTza 'e za  0

r eza r ra

r ra '

r eza '

Hình 1-9: Tách khớp Cardan

trong (1-19) (1-20), các vecto en là các vecto đơn vị của trục n , chúng có modun bằng 1 và có phương trùng với phương trục n. Áp dụng phương trình (1-13) (1-14) (1-15) và phương trình (1-6), ta có thể viết lại các phương trình liên kết (1-20) tại khớp Cardan như sau:

0



0 1 

k 1



A i p

xoay i

T



 

k

A i 1

xoay i

 0  0  0    1 

d) Khớp trụ trong không gian (hình 1-10)

Nguyễn Mạnh Cương

- 28 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

za

ya

ya’

xa

r ra

za’ xa’

r ra '

Hình 1-10: Tách khớp trụ

Khớp trụ cho phép thực hiện 2 chuyển động quay xung quanh trục z và tịnh tiến dọc theo trục z, khớp này ràng buộc 4 bậc tự do vì vậy khi tách ta phải sinh ra bốn phương trình liên kết: (1-22)(1-23) (1-24) (1-25) eTza 'e xa  0 eTza 'e ya  0 r r (ra '  ra )T e xa  0 r r (ra '  ra )T e ya  0

Áp dụng phương trình (1-13) (1-14) (1-15) và phương trình (1-6), ta có thể viết lại các phương trình liên kết tại khớp trụ như sau:

Nguyễn Mạnh Cương



0

0 1 

0



k 1



A i p

0 1 

k 1



A i p

T



xoay i

xoay i

 

T



 

k

A i 1

k

A i 1

- 29 -

xoay i

 1  0  0    0 

xoay i

 0  1  0    0 

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

( A1A 2 ...A k rk  A p A p 1...A k 1rk 1 )

T

( A1A 2 ...A k rk  A p A p 1...A k 1rk 1 )

T

k

A i 1

k

A i 1

xoay i

 1  0  0    0 

xoay i

 0  1  0    0 

e) Khớp quay trong không gian (hình 1-11)

za

ya

ya’

xa

za’

xa’

r ra '

r ra

Hình 1-11: Tách khớp quay không gian

Khớp quay trong không gian cho phép quay quanh trục z và ràng buộc 5 chuyển động còn lại, chính vì vậy khi khi tách liên kết tại khớp quay ta phải sinh ra 5 phương trình liên kết, trong đó có: 3 phương trình trùng điểm (1-30), 2 phương trình ràng buộc về phương (1-31)(1-32). r r ra  ra '  0 eTza 'e xa  0 eTza 'e ya  0

Áp dụng phương trình (1-13) (1-14) (1-15) và phương trình (1-6), ta có thể đưa ra các công thức tương ứng. Nguyễn Mạnh Cương

- 30 -

KSTN-CĐT-K48

Chương I: Vấn đề tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

f) Khớp quay phẳng Khi xét bài toán phẳng, các vật có tối đa 3 bậc tự do, chính vì vậy số lượng phương trình liên kết tại các khớp phẳng sẽ ít hơn nhiều. Đối với khớp quay phẳng, sau khi tách liên kết, ta chỉ có phương trình trùng điểm theo các trục x và trục y. xA  xA '  0 yA  yA'  0

g) Khớp trượt phẳng Với khớp trượt phẳng sau khi tách liên kết ta cũng phải sinh ra 2 phương trình liên kết, một phương trình đảm bảo phương chuyển động (1-35) và một phương trình đảm bảo tiếp xúc (1-36). r r (ra '  ra )T e ya  0 eTya 'e xa  0

Nguyễn Mạnh Cương

- 31 -

KSTN-CĐT-K48

Chương II: Phương trình Lagrange…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Chương II: PHÉP BIẾN ĐỔI SYMBOLIC VÀ THÀNH LẬP CÁC PHƯƠNG TRÌNH LAGRANGE DẠNG NHÂN TỬ Để giải bài toán thiết lập phương trình chuyển động người ta có thể sử dụng nhiều phương pháp chẳng hạn như: nguyên lý d’Alembert-Lagrange, nguyên lý Jourdain, nguyên lý Gauss, phương trình Newton-Euler, các phương trình Lagrange… Tuy nhiên bài toán đặt ra của chúng ta đó là thiết lập phương trình chuyển động cho các cơ hệ chịu liên kết hay nói cách khác đó là sử dụng bộ tọa độ suy rộng dư để xây dựng phương trình chuyển động. Chính vì vậy, ta sẽ sử dụng các phương trình Lagrange dạng nhân tử để thiết lập các phương trình chuyển động cho các hệ cơ học. 2.1.Phương trình Lagrange dạng nhân tử Trước tiên ta sẽ thiết lập phương trình Lagrange dạng nhân tử cho cơ hệ có m bậc tự do. Vị trí của cơ hệ được xác định bởi n tọa độ suy rộng thừa: q1 , q2 ,..., qn (n  m) . Chú ý rằng hệ ta đang xét ở đây là hệ động học hở một nhánh;

các hệ động học vòng, hoặc hệ động học hở nhiểu nhánh sẽ bị tách liên kết và đưa về dạng một nhánh. Một trong những lợi thế của hệ động học hở một nhánh đó là số lượng bậc tự do của nhánh chính bằng tổng số bậc tự do các khớp. Từ đó, ta ngầm hiểu bộ tọa độ suy rộng ta chọn chính là các biến khớp. Giả sử hệ chịu s liên kết holonom (tạm thời ta chưa kể đến các liên kết phi holonom): g i (q1 , q2 ,..., qn , t )  0,

(i  1,..., s )

Nguyên lý d’Alembert-Lagrange đối với cơ hệ có dạng ra

m

r

 dF

r& r  dmr&  r  0



r

Trong đó r  r (q1 , q2 ,..., qn , t )  0

Nguyễn Mạnh Cương

- 32 -

KSTN-CĐT-K48

Chương II: Phương trình Lagrange…

BỘ MÔN CƠ HỌC ỨNG DỤNG

r r n r   r    qi i 1 qi

Thế (2-3) vào phương trình (2-2) ta thu được hệ thức n  r a rr   dF   qi     qi  i 1  m i 1  n

r r d 2 r r  dm  2   qi  0 dt qi  m



Đặt lực suy rộng Qi với:

r a rr Qi  dF  qi m

Bây giờ ta biến đổi biểu thức: r r r r d 2 r r d r& r r& d  r  K i  dm  2   dm r   dm r    dt qi dt m qi m dt  qi  m

Ta có:

r r r dr r n r r  v   q&i  dt t i 1 qi

Nên suy ra r r v r  q&j q j r

r

Từ (2-7) và v  v (q1 , q2 ,..., qn , q&1 , q&2 ,..., q&n , t ) , ta có r r r n v  2r  2r &  qi  q j i 1 qi q j t q j

Và r r r n d  r  2r 2r &  q     i dt  q j  t q j i 1 qi q j 

Từ (2-9) và (2-10) ta rút ra hệ thức: r r d  r  v      dt  q j   q j q j

r  dr     dt 

Ngoài ra từ (2-11) (2-8), (2-6) có thể viết dưới dạng:

Nguyễn Mạnh Cương

- 33 -

KSTN-CĐT-K48

Chương II: Phương trình Lagrange…

BỘ MÔN CƠ HỌC ỨNG DỤNG

r r d r v r v Ki  dm v   dm v  dt m q&i m qi 1 r

2 Các đạo hàm riêng theo q&i và qi biểu thức động năng: T  2 v dm có dạng: m

r T r v  dm v  q&i m q&i

r T r v  dm v  qi m qi

Vậy thay (2-13) vào (2-12) ta thu được phương trình (2-14) như sau: Ki 

d  T  T   dt  q&i  qi

Kết hợp (2-14) và (2-5), thay thế vào phương trình (2-4) ta thu được:  d  T  T   Qi   qi  0   &i  qi i 1  dt  q  n



Trong đó các biến phân  qi (i=1,…,n) không độc lập với nhau, chúng liên hệ với nhau bởi các phương trình liên kết (2-1). Để thể hiện sự phụ thuộc này ta biến đổi hệ (2-15) về dạng phương trình Lagrange dưới dạng nhân tử [1] như sau: Đặt

bk 

d  T  T  Qi   dt  q&i  qi

 b1    b   M ;  bn 

  q1     s  M   qn 

Khi đó (2-15) có thể được viết dưới dạng :  sT b  0

Bây giờ ta đưa ra thêm ký hiệu ma trận Jacobian G:

Nguyễn Mạnh Cương

- 34 -

KSTN-CĐT-K48

Chương II: Phương trình Lagrange…  g1  q 1

BỘ MÔN CƠ HỌC ỨNG DỤNG L



 g 2 L G   q1  M M   g s L  q1

g1  qn  

g 2  qn  

M  g s  qn 

Thì khi lấy vi phân phương trình (2-1) ta có: G s = 0 Kết hợp phương trình (2-20) và (2-18) đồng thời đưa thêm các nhân tử Lagrange ta có: b + GλT = 0, hay s g d  T  T  Qi    j j   dt  q&i  qi qi j 1

(i  1,...., n; j  1,...s )

Hệ (2-21) gồm n phương trình vi phân kết hợp với hệ (2-1) gồm s phương trình liên kết ta sẽ thu được hệ gồm (n+s) phương trình vi phân-đại số cho n ẩn q và s ẩn λ . Để giải hệ trên người ta thường sử dụng phương pháp số Runge-Kutta dạng ẩn [4,6], phương pháp Admas, Newmark, Wilson...

2.2.Sử dụng phương pháp Symbolic để thành lập phương trình Lagrange dạng nhân tử Phương pháp Symbolic[8,15] để xây dựng phương trình Lagrange có ưu điểm là đưa ra khả năng xây dựng phương trình chuyển động một cách tự động và chính xác. Ngoài ra bằng việc lựa chọn các thông số: bổ sung, thêm bớt các đại lượng khối lượng hoặc momen quán tính mà ta có thể kiểm tra sự ảnh hưởng hoặc qui luật chuyển động của các vật rắn trong hệ nhiều vật. Các lý thuyết cơ bản về phép biến đổi Symbolic được trình bày khá kỹ trong các tài liệu [8,15], tuy nhiên luận văn cũng đưa ra một mô hình tính toán từng bước trong việc xây dựng phương trình Lagrange dạng nhân tử. a) Xét hệ vật rắn gồm p khâu, gọi T là động năng của hệ, Ti là động năng của khâu thứ i, ta có:

Nguyễn Mạnh Cương

- 35 -

KSTN-CĐT-K48

Chương II: Phương trình Lagrange…

BỘ MÔN CƠ HỌC ỨNG DỤNG

p

T   Ti i1

Trong đó Ti được xác định theo công thức sau: 1 T 1 T v i mi vω i I ω i 2 2

Ti 

i

i

Với vi: là vận tốc khối tâm Ci của vật MERGEFORMATrắn Bi ω i: là véc tơ vận tốc góc của vật rắn Bi mi: là khối lượng vật rắn Bi Ii: là ma trận tenxơ quán tính của vật rắn Bi lấy đối với hệ toạ độ đặt tại khối tâm Ci có phương trùng với phương của hệ toạ độ quán tính (Oxyz) 0. Ta biểu diễn Ii theo ma trận tenxơ quán tính của vật rắn Bi lấy đối với hệ trục toạ độ đặt tại khối tâm Ci có phương trùng với phương của hệ toạ độ (Oxyz)i gắn liền vào vật Ii=Ai Ii’ AiT Với Ii’ không thay đổi và không phụ thuộc thời gian. Thay (2-24) vào (2-23) và sử dụng các công thức tính toán vận tốc [8], ta được: 1 1  Ti  q&T J TTi mi J Ti q& q&T J TRi A i I i ATi J Ri q& 2 2 1 T T   q& J Ti mi J Ti  J TRi A i I i ATi J Ri q& 2





Động năng của hệ là: 1  T  q&T  2 

 J p

i 1

T Ti



  mi J Ti  J TRi A i I i ATi J Ri  q& 

1  q&T Mq& 2

Với: p

′ M =   J TTi mi J Ti + J TRi A i I i ATi J Ri  là ma trận khối lượng cỡ f × f  i =1 

b) Thế năng của hệ gồm thế năng trọng trường và thế năng các lò xo:

Nguyễn Mạnh Cương

- 36 -

KSTN-CĐT-K48

Chương II: Phương trình Lagrange… p

l

i 1

i 1

BỘ MÔN CƠ HỌC ỨNG DỤNG

   mi .zi .g   ci . 2i

Trong đó: zi là độ cao của khối tâm Ci trong hệ toạ độ R0  i là độ biến dạng của lò xo

c) Để tính lực suy rộng ta tính dựa trên biểu thức công suất của các lực. Gọi Fi là lực không thế. Li là mô men của ngẫu lực tác dụng lên vật Bi. vi là vận tốc điểm đặt lực tác dụng Fi. Ta có công suất là: n

p

i 1

i 1

W   FiT v i   LTi w i n

p

W   F J Ti q&  LTi J Ri q& i 1

T i

i 1

n

p

i 1

i 1

W  ( FiT J Ti   LTi J Ri )q& W  Q*T q&

Từ đó ta có: n

p

Q  ( F J Ti   LTi J Ri )T *

i 1

T i

i 1

n

p

i 1

i 1

Q*   J TiT Fi   J RiT Li

Trong đó Fi và Li là các véc tơ (3x1) có các thành phần là hình chiếu của lực F i và Li đối với hệ Ro. Nếu biết hình chiếu của nó trong hệ toạ độ gắn liền với vật mà lực tác dụng lên thì: Fi  A i Fi' ; Li  Ai L'i

Trong đó: Fi' và L'i là các véc tơ có các thành phần là hình chiếu của lực Fi và ngẫu lực Li đối với hệ toạ độ động Ri. Nguyễn Mạnh Cương

- 37 -

KSTN-CĐT-K48

Chương II: Phương trình Lagrange…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Cuối cùng ta được: n

p

i 1

i 1

Q   J Ti T A i Fi'   J Ri T Ai L'i

c) Giải thuật thực hiện tính toán phương trình Lagrange dạng nhân tử Các bước lập hệ phương trình Lagrange dạng nhân tử: 1.

Tính động năng của các vật rắn và động năng của cả cơ hệ.

2.

Tính thế năng của hệ

3.

Tính lực suy rộng không thế

4.

Tính G theo (2-19).

5.

Ghép vào phương trình (2-21).

2.3.Các giải thuật rút gọn. Ưu điểm của việc xây dựng phương trình Lagrange dạng nhân tử đối với phương pháp sử dụng bộ tọa độ suy rộng đủ đó là các phương trình chuyển động thu được có dạng đơn giản hơn rất nhiều. Tuy nhiên đối với tính toán Symbolic [15,8,9] trong một số trường hợp còn khá dài, vì vậy việc áp dụng các giải thuật rút gọn cũng đóng vai trò rất quan trọng trong việc rút ngắn phương trình và tăng tốc độ tính toán. Dưới đây là một số giải thuật rút gọn cùng với đánh giá hiệu quả và cách sử dụng, các giải thuật này đều đã được triển khai và áp dụng khá thành công vào trong việc xây dựng phương trình chuyển động cho các hệ cơ học. 2.3.1. Giải thuật áp dụng tăng tốc độ đạo hàm biểu thức động năng đối với hệ nhiều vật có cấu trúc động học hở nhiều nhánh. Thông thường, các giải thuật giải quyết bài toán Symbolic thường xây dựng các biểu thức toán học dưới dạng cấu trúc hình cây [16]. Chẳng hạn biểu thức: x+y*(z-t)+u/v sẽ được thể hiện dưới dạng cấu trúc cây như hình 2-1 : Việc lưu trữ này có lợi là có thể sử dụng được bộ nhớ động lớn, lưu trữ được nhiều, thực hiện các phép toán số học (+,-,*,/ )cũng như giải tích (đạo hàm, …) một cách dễ dàng nhưng lại gây khó khăn cho việc áp dụng các giải thuật rút gọn, Nguyễn Mạnh Cương

- 38 -

KSTN-CĐT-K48

Chương II: Phương trình Lagrange…

BỘ MÔN CƠ HỌC ỨNG DỤNG

bởi với cấu trúc lưu trữ hình cây ta phải thực hiện các phép duyệt cây (có ba phép duyệt cây: duyệt giữa, duyệt phải, duyệt trái), sau khi duyệt nếu gặp các phần tương tự như nhau thì nhóm hoặc giản ước. Vì vậy thời gian duyệt cây chiếm rất nhiều trong công việc giản ước các biểu thức Symbolic. Giải thuật đề xuất ở mục này đó là đưa ra một cách lưu trữ khác đối với biểu thức động năng để khi thực hiện lấy phép tính đạo hàm hoặc vi phân sẽ giảm thiểu thời gian tính toán vì có những phần sẽ biết chắc đạo hàm bằng 0. +

+

X

/

*

v

u

Y

-

Z

t

Hình 2-1: Lưu trữ biểu thức x+y*(z-t)+u/v dưới dạng cây nhị phân

Khi áp dụng phương pháp Symbolic để xây dựng phương trình chuyển động của các hệ cơ học bằng các phần mềm chuyên dụng như Maple, Matlab, MESA VERDE… hoặc xây dựng một chương trình riêng để tính toán Symbolic, ta thường tính toán động năng cho từng vật rắn rồi đưa ra biểu thức cuối cùng n

T   Ti i 1

Nguyễn Mạnh Cương

- 39 -

KSTN-CĐT-K48

Chương II: Phương trình Lagrange…

BỘ MÔN CƠ HỌC ỨNG DỤNG

trong đó T là biểu thức động năng của cả hệ vật và T i là động năng của các vật rắn trong hệ. Tuy nhiên, đối với những hệ nhiều vật có cấu trúc động học hở, sau khi ta thực hiện tách liên kết thành các nhánh khác nhau thì tốt nhất ta nên lưu trữ động năng thành từng phần riêng biệt, mỗi phần tương ứng với thành phần động năng của một nhánh cơ học trong hệ. A

Ta xét ví dụ sau:

RA

OA

RA’ A’

OA’

O

Hình 2-2: Tách hệ động học cấu trúc kín

Sau khi tách liên kết tại khớp A, cơ hệ sẽ gồm có 2 nhánh chính, nếu như gọi bộ tọa độ suy rộng cho cả cơ hệ là q = {q1, …. , qk, qk+1, …qn}. Khi đó, chắc chắn ta sẽ tách được biểu thức động năng theo 2 nhánh: OA và OA’, lần lượt là T 1 và T2 như sau: T1 = T1 (q1, …. , qk, qk+1) T2 = T2 (qk, qk+1, …qn) Và động năng toàn bộ cơ hệ sẽ có dạng: T = T1 + T2 Ta để ý rằng khi xây dựng phưong trình Lagrange theo (2-21) thì T1 T T T2  0; 1  0; với i  k  1 và 2  0;  0; với i  k qi q&i qi q&i

Nguyễn Mạnh Cương

- 40 -

KSTN-CĐT-K48

Chương II: Phương trình Lagrange…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Tức là khi đạo hàm các biểu thức động năng Ti ứng với nhánh thứ i theo tọa độ suy rộng qj, ta sẽ xem xét Ti có phụ thuộc vào qj không (hay qj có xác định vị trí các vật rắn của nhánh thứ i không). Nếu như không phụ thuộc thì ta sẽ không cần tiến hành đạo hàm nữa, rút ngắn rất nhiều thời gian duyệt biểu thức. Từ đó, ta đưa ra sơ đồ tính toán xây dựng biểu thức động năng của cơ hệ nhiều vật và cách đạo hàm biểu thức động năng như sau: Bước 1: Tách liên kết hệ nhiều vật nếu cần để đưa về hệ nhiều vật chuỗi hở nhiều nhánh đơn. Bước 2: Xây dựng vecto cột biểu thức động năng, kích thước vecto chính bằng số số nhánh của hệ nhiều vật, mỗi phần tử Ti của vecto động năng ứng với động năng một nhánh. Bước 3: Khi đạo hàm động năng theo tọa độ suy rộng q j , q&j (2-21) ta sẽ lấy tổng các đạo hàm phần tử Ti của vecto động năng. Trong đó kiểm tra nếu Ti không phụ thuộc vào q j , q&j thì trả kết quả bằng 0 và chuyển sang phần tử tiếp theo trong vecto động năng. Cụ thể như sau: l T T  i; q j i 0 q j

l Ti Ti T T   0 nếu Ti không phụ thuộc qj.   i ; với q j q&j q&i i 0 q&j

2.3.2. Giải thuật rút gọn phương trình Lagrange dạng nhân tử Phương trình Lagrange dưới dạng nhân tử có thể viết dưới dạng (2-21), tuy nhiên một số tài liệu có sự phân tích sâu hơn và biến đổi vế trái của (2-21) thành dạng [18],[1] như sau: n n n mji d  T  T 1 n n ms , j &j     mji q& q&& q  q&&    s j sq j dt  q&i  qi j 1 2 j 1 s 1 qi qs j 1 s 1

Phương trình (2-21) có thể viết được dưới dạng: n

 mji q&&j  j 1

n n s m ji g 1 n n ms , j && && qs q j   qs q j  Qi    j j  2 j 1 s 1 qi qs qi j 1 s 1 j 1

Nguyễn Mạnh Cương

- 41 -

KSTN-CĐT-K48

Chương II: Phương trình Lagrange…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Ta để ý rằng tại vế trái của phương trình 2 thành phần n

n

 j 1 s 1

mji qs

1 n n ms , j q&&  s q j và 2 j 1 s 1 qi

q&& s q j luôn có thể rút gọn được cho nhau, chính vì vậy chắc chắn trong

biểu thức phương trình Lagrange luôn có những phần tử giống nhau. Có 2 cách giải quyết vấn đề này, thứ nhất, ta có thể xác định thành phần giống nhau ngay từ đầu và thực hiện loại bỏ ngay khi thành lập phương trình chuyển động, thứ hai, ta thành lập phương trình chuyển động theo trình tự [8] rồi sau đó phát triển giải thuật tìm những đoạn biểu thức Symbolic trong phương trình giống nhau và thực hiện triệt tiêu. Chương trình MBSRun (mục 5.1.2) sử dụng thư viện Expression.dll phát triển theo hướng thứ 2. Để hiểu rõ hơn về giải thuật này ta phải xem xét thêm các tài liệu đã có về việc tính toán biểu thức số học. Các tài liệu trước đây thường tập trung lưu trữ các biểu thức toán học dưới dạng cấu trúc cây nhị phân [8,16] tại đó nút gốc thường là một phép toán, hai nhánh bên trái và bên phải gọi là các cây con trái và cây con phải thường là 2 toán hạng (hình 2-1). Từ đó ta đề nghị một sơ đồ tính toán như sau: Bước 1: Nếu cây con trái có kích thước lớn hơn cây con phải, ta sẽ tìm phần tử giống cây con phải trên cây con trái để giản ước, hoặc ngược lại. Bước 2: Xét 2 nhánh của cây con trái xem có nhánh nào giống cây con phải không, nếu có thì giản ước. Nếu không thì gán cây con phải vào một stack S rồi chuyển con trỏ sang cây con trái. Cây con trái này trở thành cây đang xét. Bước 3: Nếu cây đang xét là cây rỗng (không chứa phần tử nào), ta sẽ lấy giá trị trong stack S ra. Nếu stack S rỗng, sang bước 4, còn không thì quay lại bước 2. Bước 4: Kết thúc, ta đã duyệt xong cây biểu thức.

Nguyễn Mạnh Cương

- 42 -

KSTN-CĐT-K48

Chương II: Phương trình Lagrange…

BỘ MÔN CƠ HỌC ỨNG DỤNG

2.3.3. Các giải thuật toán học. Các giải thuật trên ta xét dựa vào tính chất cơ học của hệ nhiều vật khi thành lập phương trình chuyển động, các giải thuật dưới đây là các giải thuật dựa trên tính chất toán học được phát triển trong quá trình làm đồ án khi mong muốn xây dựng một chương trình xử lý Symbolic mạnh. 2.3.3.1. Giải thuật áp dụng với các hàm lượng giác Thông thường các phần mềm Maple giải dễ dàng khi gặp các biểu thức dạng sau: sin(a)cos(b)+sin(b)cos(a). Tuy nhiên trong quá trình nghiên cứu các phương trình chuyển động của các hệ cơ học ta gặp rất nhiều dạng x* sin(a)cos(b)+ x*sin(b)cos(a). Để biến đổi biểu thức trên thành dạng rút gọn x*sin(a+b) thì Matlab không làm được. Ta có thể sử dụng ngăn xếp (stack)[16] để giải bài toán trên. Tuy nhiên ta phải nhắc lại vấn đề đó là các giải thuật được thực hiện khá phức tạp vì được xây dựng trên việc duyệt các cây nhị phân (được sử dụng để lưu trữ các biểu thức Symbolic). Giải thuật có thể mô tả như sau: Bước 1: Tách biểu thức Symbolic thành tổng các tích. Cụ thể là biểu thức x* sin(a)cos(b)+ x*sin(b)cos(a) sẽ được tách thành 2 thành phần: phần thứ nhất x* sin(a)cos(b) và phần thứ hai là x*sin(b)cos(a). Bước 2: Phân tích các thành các hạng tử và lưu vào stack. Cụ thể thành phần thứ nhất x* sin(a)cos(b) được lưu vào stack A=[x, sin (a), cos(b)] còn thành phần thứ hai x*sin(b)cos(a) được lưu vào stack B=[x,sin(b),cos(a)]. Bước 3: Kiểm tra các stack có thành phần chung thì nhóm lại, sau đó nhân trở lại các hạng tử. Với ví dụ của ta, thành phần chung là x, vì vậy kết quả trả về sẽ là x*( sin(a)cos(b)+sin(b)cos(a)). Bước 4: Áp dụng các giải thuật rút gọn có sắn, biểu thức trả về sẽ là: x*sin(a+b)

Nguyễn Mạnh Cương

- 43 -

KSTN-CĐT-K48

Chương II: Phương trình Lagrange…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Giải thuật này đặc biệt mạnh khi áp dụng tính toán không gian bù [chương III], ta có thể tìm hàm này trong thư viện Expression.dll trong phần phụ lục. 2.3.3.2. Giải thuật áp dụng với các vi phân bậc 2 Giải thuật này thường được áp dụng để chuyển các phương trình vi phân chuyển động về dạng ma trận [19].  M   G

GT   0 

& &  Q  q  λ  =  -Gq &&    

Trong đó G được xác định bởi công thức (2-19). Từ đó muốn thành lập phương trình (2-37) để áp dụng vào các bài toán điều khiển sau này, ta phải nhóm &. Trên thực tế người ta thường kí hiệu thành phần q& là được các thành phần chứ q&

đạo hàm theo thời gian của q, và q’ là đạo hàm theo các tọa độ suy rộng. Tuy nhiên với phép biến đổi Symbolic, ta tạm ký hiệu cả 2 loại đạo hàm đó là q’. Ví dụ nhóm biểu thức q’’*a + r + b*q’’. Sơ đồ giải thuật sẽ được mô tả như sau: Bước1: Tách biểu thức thành các phần tử của một stack A. Các thành phần của stack này liên kết với nhau bởi phép toán “+”. Cụ thể với ví dụ trên A=[q’’*a, r,b**q’’]. Bước 2: Kiểm tra các phần tử của A xem phần tử nào có chứa thành phần vi phân bậc 2. Nếu như có nhiều hơn 2 thành phần ta sẽ thực hiện rút gọn ở bước 3. Bước 3: Chuyển các phần tử có vi phân của stack A và các stack con, so sánh các stack con này nếu chứa thành phần vi phân bậc 2 ta sẽ tiến hành nhóm lại. Chi tiết về cách sử dụng giải thuật này ta xem ở phần phụ lục. 2.3.3.3. Giải thuật tách biểu thức Giải thuật này khá mạnh có thể thực hiện được những phép giản ước mà ngay cả Maple cũng không sử dụng được và tốn nhiều thời gian để tính toán. Mục đích của giải thuật là giản ước những biểu thức bị giới hạn trong dấu ngoặc đơn. Nguyễn Mạnh Cương

- 44 -

KSTN-CĐT-K48

Chương II: Phương trình Lagrange…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Ví dụ: (q1’+q2’)*sin(q1)*cos(q1+q2)-q1’*sin(q1)*cos(q1+q2) Những dạng biểu thức như trên ta gặp rất nhiều trong tính toán phương trình Lagrange dạng nhân tử đặc biết là có chứa dạng vi phân bậc nhất chính vì vậy giải thuật này sẽ áp dụng khi trong biểu thức Symbolic có chứa dạng vi phân bậc nhất (dấu hiệu rút gọn). Để rút gọn biểu thức trên ta xét sơ đồ tính toán sau: Bước 1: Tách biểu thức gốc thành tổng các tích (tức là các biểu thức chỉ liên kết với nhau bởi phép toán + hoặc -). Lưu các phần tử này vào stack A. Ở ví dụ trên A= [(q1’+q2’)*sin(q1)*cos(q1+q2), -q1’*sin(q1)*cos(q1+q2)] Bước 2: Duyệt các phần tử của stack A, nếu trong thành phần nào có dấu hiệu vi phân bậc nhất (‘) thì ta sẽ thực hiện phá ngoặc đơn và tách ra thành các phần riêng. Cụ thể stack A sau khi tách thì sẽ thu được các phần tử như sau: A= [q1’*sin(q1)*cos(q1+q2), q2’*sin(q1)*cos(q1+q2), -q1’*sin(q1)*cos(q1+q2)]. Bước 3: Kiểm tra sự giống nhau của các thành phần trong stack A, sử dụng các giải thuật rút gọn đối với biểu thức lượng giác ta đã trình bày. Kết quả giản ước sẽ thu được biểu thức: q2’*sin(q1)*cos(q1+q2). Để hiểu rõ hơn về các giải thuật ta có thể tham khảo mã nguồn của file CTreeExpression.cpp được phát triển trong quá trình làm đồ án. Kết luận: Chương trình do nhóm nghiên cứu viết cùng với thư viện Expression.dll chứa các giải thuật rút gọn có thể không mạnh hơn các phần mềm chuyện dụng giải quyết bài toán Symbolic, tuy nhiên dựa vào các đặc tính cơ học và dấu hiệu rút gọn, nhóm đã xây dựng các giải thuật phù hợp đối với những trường hợp thường xuất hiện trong các hệ cơ.

Nguyễn Mạnh Cương

- 45 -

KSTN-CĐT-K48

Chương III: Nguyên lý phù hợp…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Chương III: PHÉP BIẾN ĐỔI SYMBOLIC VÀ THÀNH LẬP PHƯƠNG TRÌNH THEO NGUYÊN LÝ PHÙ HỢP 3.1.Nguyên lý phù hợp. Nguyên lý phù hợp được trình bày khá kỹ trong [20], tuy nhiên ở đây ta có thể có một số biến đổi. Cho rằng chúng ta có một cơ hệ gồm n tọa độ Lagrange. q   qi  , T

i  1, 2,..., n

Hệ có s phương trình liên kết và có thể được viết dưới dạng: g (q1 , q2 ,...qn , t )  0

Từ (3-2) có thể lấy đạo hàm 2 lần thu được dạng khác của phương trình liên kết &&= 0 &+ Gq : Gq&

Từ các liên kết, ta sẽ có n phản lực liên kết [21]: r   Ri  , i  1, 2,..., n T

Cũng theo [21] sau cùng ta sẽ thu được hệ gồm 2n ẩn q và r ứng với hệ phương trình sau: d  T  T  f T  rT   dt  q& q g (q1 , q2 ,...qn , t )  0

với T là động năng của hệ, fT là các ngoại lực suy rộng, rT là các phản lực suy rộng.

Nguyễn Mạnh Cương

- 46 -

KSTN-CĐT-K48

Chương III: Nguyên lý phù hợp…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Hệ (3-3) và (3-4) gồm có (n+s) phương trình. Chính vì vậy để giải hệ trên ta cần phải có (n-s) phương trình khác. Chúng có thể được tính toán bằng cách sử dụng điều kiên về liên kết lý tưởng.  qT r  0

với  q là các di chuyển ảo ứng với tọa độ suy rộng ta chọn. Do có hệ có s liên kết (3-1), chính vì vậy, sẽ có (n-s) tọa độ suy rộng độc lập, các (n-s) giả gia tốc này có thể được tính như sau: & &= E.q & & Π & &  & & với Π i  , i  1... n  s là vec tơ của các giả gia tốc, ma trận E chứa các hệ số

được chọn thỏa mãn (3-6). Từ (3-1) và (3-6), ta đưa ra được phương trình & & d 0 & & DΠ q & trong đó, ma trận D và d0 có thể được lựa chọn miễn là (n-s) giả gia tốc & i và n gia & tốc q& k thỏa mãn phương trình liên kết (3-2). Lấy biến phân 2 vế của (3-7), ta thu

được phương trình (3-8). & & & DΠ q &

Điều kiện liên kết lý tưởng cho ta quan hệ: & &T r  0 q

Thay (3-8) vào (3-9), ta thu được & &T DT r  0 Π

Từ đó có phương trình (3-11), đây là phương trình nói lên ý nghĩa của không gian bù sau này: DT r  0

Nguyễn Mạnh Cương

- 47 -

KSTN-CĐT-K48

Chương III: Nguyên lý phù hợp…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Như vậy, với bài toán động lực học của cơ hệ đã cho, ta phải giải một hệ 2n phương trình (3-3) (3-4) và (3-11) với 2n ẩn q, r . Tuy nhiên mấu chốt ở đây đó là việc thành lập ma trận D như thế nào. Ta có thể xuất phát từ một dạng khác của phương trình liên kết (3-2) & & g 0  0 Gq

Trước tiên, ta nhân 2 vế của phương trình (3-7) với ma trận G của phương trình liên kết (3-2). Điều này thực hiện được là do G có kích thước sxn. Ma trận G được xác định từ phương trình liên kết như sau: & & Gd0 & & GDΠ Gq

Hay có dạng: & &+ Gd 0 g 0  GDΠ

Phương trình (3-13) có thể được thỏa mãn nếu như ta chọn D và d0 như sau: Gd 0  b 0 GD  0

Phương trình (3-15) có thể được sử dụng thay thế cho tính chất của lien kết lý tưởng (3-9) và cũng chính là phương trình được sử dụng để ta tính toán ma trận D từ ma trận G, ta gọi D là ma trận không gian bù của G. Dưới đây ta sẽ đưa ra 2 thuật giải để tìm ma trận Dnx(n-s) từ ma trận Gsxn.

3.2.Các giải thuật xây dựng không gian bù. Trên thực tế có rất nhiều phương pháp giải bài toán tìm không gian bù như phân tích QR, phân tích SVD…, các phương pháp đó áp dụng cho phương pháp tính toán Numeric rất mạnh. Tuy nhiên bài toán của ta ở đây là đưa ra phương trình chuyển động một cách tường minh, chính vì vậy ta phải đưa ra giải thuật xây dựng không gian bù dưới dạng biểu thức Symbolic. Đồ án này đưa ra 2 phương pháp để thành lập không gian bù, chúng đều đã được triển khai trên máy tính và Nguyễn Mạnh Cương

- 48 -

KSTN-CĐT-K48

Chương III: Nguyên lý phù hợp…

BỘ MÔN CƠ HỌC ỨNG DỤNG

chạy tự động, phần cuối của mục sẽ là một số so sánh về kết quả của 2 phương pháp. 3.2.1.Phương pháp giải phương trình theo Cramer. Cách nhìn nhận phương pháp này đó là xem xét bài toán tìm Dnx(n-s) thỏa mãn: G.D  0

như một bài toán tìm nghiệm của phương trình G v  0

với v là vecto cột có kích thước nx1. Chú ý rằng G có kích thước s x n, với s < n. Như vậy ta sẽ tìm ra (n-s) vecto v độc lập tuyến tính thỏa mãn phương trình (3-17) và (n-s) vecto đó chính là các vecto cột của D. Hay nói cách khác, các vecto cột của D tạo thành không gian nghiệm của của phương trình (3-17). Để giải hệ phương trình (3-17), ta xét một ví dụ đơn giản sau: khi mà n = s+1, tức là số lượng ẩn nhiều hơn 1 so với số phương trình, khi đó G có thể viết như sau: G s x ( s 1)   g1 , g 2 ,K , g s , g s 1 

trong đó gi là các vecto cột của G, gi có kích thước s x 1. Phương trình (3-17) có thể được viết lại  v1   v   g1 g 2 K g s g s 1   M2   0    vs 1 

Ta sẽ chọn bộ vecto v sao cho khi nhân vào (3-19) mà mất đi ảnh hưởng của thành phần vecto cột gs+1 thì ta sẽ đưa hệ (3-19) về hệ s phương trình s ẩn số. Ở đây ta chọn vs+1 =1. v   v1 v2 K

Nguyễn Mạnh Cương

vs 1

- 49 -

KSTN-CĐT-K48

Chương III: Nguyên lý phù hợp…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Từ đó (3-19) trở thành  v1   v   2   g g g K g  1 2 s s 1  M    vs 

Như vậy ta đưa hệ về dạng G sxs v  g s1  G sx ( s 1)   G sxs  

trong đó:  

g s 1 

v   v 1

T

Rõ rang khi biết Gsx(s+1) ta hoàn toàn có thể biết được G sxs , g s1 nên dựa vào (3-22) ta có thể tìm được v và từ đó biết được v. Trong các giáo trình đại số tuyến tính, ta có thể dung phương pháp Cramer để tính toán các giá trị của v. vi 

i    det(G )  det( g1 g 2 K g s  )    i  det([g1 ,g 2 ,K ,g i-1 ,-g s+1 ,g i+1 ,K ,g s ])

Vậy vecto v tìm được có dạng:   v 1  

2 

s 

L

 1 

T

Kết quả (3-24) là nghiệm của phương trình (3-19), tuy nhiên vecto v hoàn toàn do ta lựa chọn nên ta sẽ chọn dạng đơn giản hơn là nghiệm v   1

2 L

s



T

Đối với trường hợp có nhiều ẩn số hơn, ta cũng áp dụng tương tự. Ta quay trở lại với hệ s phương trình n ẩn số (3-17). Ta viết lại hệ như sau:

Nguyễn Mạnh Cương

- 50 -

KSTN-CĐT-K48

Chương III: Nguyên lý phù hợp…

BỘ MÔN CƠ HỌC ỨNG DỤNG

 v1   v   2   M  g1 g 2 K g s g s 1 K g n    0  vs 1   M    vn 

Ta sẽ chọn vecto v có dạng: v   v1 v2 K

vs 1 0 K 0

Khi đó áp dụng phương pháp Cramer để giải, ta sẽ tìm được kết quả như sau: v   1

2 K

s

 0 L

0

   det(G )  det( g1 g 2 K g s  )   i  det([g1 ,g 2 ,K ,g i-1 ,-g s+1 ,g i+1 ,K ,g s ])

Chú ý rằng hệ (3-26) có (n-s) nghiệm và (3-28) là một trong các nghiệm đó, để tìm các nghiệm còn lại ta chỉ cần bố trí lại vị trí các số hạng 0 và 1 trong nghiệm chọn (3-27). Ngoài ra như ta đã nhận định, các vecto cột của D tạo thành không gian nghiệm của (3-26), mặt khác các vecto v nghiệm ta tìm được là độc lập tuyến tính, vì vậy ta có thể sử dụng chính các vecto v này làm vecto cột của D. Việc sử dụng phương pháp định thức để tính toán ma trận D dựa trên tính chất thưa của ma trận này khi thực hiện tách liên kết, nghĩa là trong ma trận có khá nhiều phần tử có giá trị bằng 0, điều này sẽ được xét kỹ hơn tại mục 4.1 cùa đồ án. Công thức tổng quát của vecto D như sau:

D   d1 d 2 K

Với

Nguyễn Mạnh Cương

 1i   i  2   M  i  s  d m  , di   0     M  i     M    0

- 51 -

Vị trí s+i

KSTN-CĐT-K48

Chương III: Nguyên lý phù hợp…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Từ đó ta có giải thuật tính toán ma trận D như sau: Bước 1: Tìm một ma trận D0 có kích thước sxs gồm các cột được cấu thành từ ma trận D sao cho det(D0)  0. Giả sử chính s cột đầu tiên của ma trận Dsxn được lựa chọn để cấu thành D0. Bước 2: i := 0; j:=0 Bước 3: Nếu j < s, -

thành lập vecto cột _col bằng cách nhân (-1) với cột (i+s) của ma trận D.

-

thành lập ma trận Dj bằng cách thay thế vecto cột _col vào vị trí vecto cột j của ma trận D0.

-

dij = det(Dj)

-

j:= j+1. Quay về bước 3.

Nếu j=s, -

dij = det(D0)

-

j:=j+1. Quay về bước 3.

Nếu s<j
dij = 0, j:=j+1. Quay về 3

Nếu j=n -

j:= 0, i:=i+1. Sang bước 4.

Bước 4: Nếu i< n-s, quay về 3, ngược lại, kết thúc. Như vậy đã tính xong ma trận D.

Nguyễn Mạnh Cương

- 52 -

KSTN-CĐT-K48

Chương III: Nguyên lý phù hợp…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Để hiểu rõ hơn phương pháp, ta có thể xét một ví dụ về một chiếc đĩa lăn không trượt trên sàn (hình 3-1) . Hệ chỉ có duy nhất một bậc tự do, tuy nhiên ta chọn các tọa độ Lagrange qi là s, u,  như hình vẽ 3-1. s (3-30) r u

P

Hình 3-1: bánh lăn không trượt trên đường

Phương trình liên kết của bánh xe với đường có dạng: u-r=0 s + r  =0. Ta có thể tạo thành ma trận G sao cho G q& 0 có dạng  0 1 0    g1 g 2  1 0 r

G

Với g1   0 1 ; g 2   1 0 ; T

T

g3   0 r 

g3 

T

Vì ma trận G có kích thước 2x3 cho nên ma trận không gian bù D có kích thước 3x1. Theo như cách chọn cột của ma trận D, ta sẽ chọn cột đó có dạng d   1  2  

Với

1  g 3 g 2 

0 1 r r 0

 2  g1  g 3 

0 0 0 1 r

  g1

0 1  1 1 0

g2 

T

Nên ma trận D = [dT] =  r 0  1  đảm bảo GD=0. T

Nguyễn Mạnh Cương

- 53 -

KSTN-CĐT-K48

Chương III: Nguyên lý phù hợp…

BỘ MÔN CƠ HỌC ỨNG DỤNG

3.2.2.Phương pháp sử dụng tuần tự các phương trình liên kết Ý tưởng của phương pháp sử dụng tuần tự các phương trình liên kết (hay còn gọi là nhân tuần tự các ma trận) [24] đó làm sử dụng từng vecto hàng của ma trận liên kết G để tính toán ma trận không gian bù D từ một ma trận D0 kích thước nxn ban đầu. Mỗi lần sử dụng một hàng thì kích thước ma trận D0 sẽ giảm đi một cột. Và khi sử dụng hết các hàng của G thì ma trận D0 thu được cũng chính là D. Để hiểu rõ hơn về phương pháp này ta có thể xem xét kỹ hơn tại bước thứ k, k<s như sau: G   g1 g 2 ...... g s 

T

D0   d1 d 2 ........ d n  k 

Trong đó gi, i=1…s là các vecto hàng, di, i=1… n-k là các vecto cột và các vecto cột di phải thỏa mãn: gTi d j  0, i  1...k , j  1...n  k

Bây giờ nếu ta sử dụng vecto hàng thứ k+1 là g1+k, ta phải thành lập một ma trận D0 '   d '1 d '2 ........ d 'n  k 1  sao cho: gTi d 'j  0, i  1...k  1, j  1...n  k  1

Từ (3-33) và (3-34) ta có thể đặt ma trận H sao cho: D0 '  D0 H

Vậy với việc thêm tuần tự từng phương trình liên kết, ta đã thay thế việc tìm ma trận D bằng việc tìm ma trận H tại từng bước. Tuy nhiên ta có thể tìm trực tiếp ma trận D0’ từ ma trận D0 mà không cần ' qua ma trận H. Phương pháp này được thành lập dựa trên nhận xét các cột d j của

ma trận D0’ là tổ hợp tuyến tính của các cột d j ma trận D0.

Nguyễn Mạnh Cương

- 54 -

KSTN-CĐT-K48

Chương III: Nguyên lý phù hợp…

BỘ MÔN CƠ HỌC ỨNG DỤNG

' Ta giả sử vecto cột d j được tính từ các cột d j , theo công thức (3-36)

đặt số cột trong D0 là m=n-k, khi đó m

d 'j   c ji di i 1

Nếu đặt như vậy thì phương trình (3-34) luôn luôn thỏa mãn với i=1…k, (xem lại (3-33)) còn với trường hợp i=k+1, ta phải bổ sung thêm điều kiện liên ' kết, điều kiện này sẽ được sử dụng để xác định cij. Với i=k+1, ta phải tìm d j sao

cho: gTk 1 d 'j  0, j  1...m  1

Hay m

gTk 1 ( c ji di )  0, j  1...m  1 i 1

Để (3-38) đúng, ta sẽ chọn các hệ số cjm và cjj trong (3-36) khác 0, các hệ số còn lại đều bằng 0. Như vậy, (3-38) có thể được viết lại gTk 1 (c jmd m  c jj d j )  0, j  1...m  1

Hay c jm gTk 1 d m  c jj gTk 1 d j  0, j  1...m  1 T T Từ đó nếu như chọn tiếp c jm  g k 1 d j ; c jj   g k 1 d m ta sẽ luôn đảm bảo ' T (3-40) đúng. Như vậy, khi bổ sung thêm phương trình liên kết g k 1 , các cột d j của

ma trận D0’ sẽ được tính từ các cột ma trận D0 như sau:  cij  0 i  m, j  d j   c ji di ;  c jm  gTk 1 d j i 1  c   gT d k 1 m  jj '

m

Như vậy ta có giải thuật xây dựng ma trận D từ ma trận D0 ban đầu (là ma trận đơn vị) và ma trận liên kết G để đảm bảo GD=0 như sau:

Nguyễn Mạnh Cương

- 55 -

KSTN-CĐT-K48

Chương III: Nguyên lý phù hợp…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Bước 1: Xây dựng ma trận đơn vị D0 kích thước nxn. Gán _row là số hàng của ma trận G. Gán i:=0 Bước 2: Gán _col bằng số lượng cột của ma trận D0. Tìm một cột của D0 sao cho hàng bi của ma trận G nhân với nó khác 0. Giả sử cột đó là cột k và k  i. gi dk  0. Gán j:=0, u:=0. Bước 3: Nếu j=i, hju := -gi dk. Nếu j=k, hju:= gi di. Nếu j  i,k, , hju:= 0.

Bước 4: j:=j+1. Nếu j > n, -

j:= 0

-

sang bước 5.

Bước 5: u:=u+1. Nếu u =_col, kết thúc việc tính toán ma trận H D0:= D0*H. Sang bước 6. Bước 6: i:=i+1, nếu i:= s, gán D = D0. Ngược lại, quay về bước 2.

Để hiểu hơn về giải thuật ta xét lại ví dụ trong phương pháp 1 về bánh lăn không trượt (hình 3-1). Ma trận G của ví dụ có dạng  0 1 0   g1T    T  1 0 r   g2 

G

Nguyễn Mạnh Cương

- 56 -

KSTN-CĐT-K48

Chương III: Nguyên lý phù hợp…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Vì ma trận D có kích thước 2x3 nên ta có ma trận D0 ban đầu là ma trận đơn vị có kích thước 3x3.  1 0 0    D0   0 1 0   d1    0 0 1  

1   0  ; d 2    0 

0   1  ; d3    0 

0 0  1 

Khi thêm ràng buộc thứ nhất, g1T =  0 1 0 ta tìm được d 2 sao cho g1T d 2  0 . Ma trận D0’ có dạng D0’ =  d1' d '2  trong đó   d1'  c11d1  c12d 2 ;

d '2  c21d 2  c22d3 ;

c11  g1T d 2  1;

c21  g1T d3  0;

c12  g1T d1  0;

c22  g1T d 2  1;

 1 0    Vậy thu được : D0’=  0 0  . Gán tiếp D0 = D0’=  d1  0 1

d2 

Khi thêm ràng buộc thứ hai, g 2T =  1 0 r  ta tìm được d1 sao cho g1T d1  0 . Ma trận D0’ có dạng D0’ =  d1'  trong đó   d1'  c11d1  c12d 2 ;  0 c11  g d 2    1 0 r   0   r ;  1 T 2

 1 c12  g d1   1 0 r   0   1;  0  T 2

 r    Vậy thu được : D0’=  0  . Do đã sử dụng hết các phương trình liên kết cho nên ta  1 

dừng lại tại đây và gán D=D0’. So sánh kết quả với ví dụ tại mục 3.2.1, ta thấy 2 phương pháp đều cho kết quả giống nhau. Nguyễn Mạnh Cương

- 57 -

KSTN-CĐT-K48

Chương III: Nguyên lý phù hợp…

BỘ MÔN CƠ HỌC ỨNG DỤNG

3.2.3.So sánh phương pháp định thức và phương pháp thêm tuần tự các phương trình liên kết. Với những ví dụ là các cơ cấu cơ khí đơn giản (được đề cập ở phụ lục B), ta thu được bảng so sánh kết quả tính toán ứng với 2 phương pháp tính Nullspace, phương pháp định thức và phương pháp tuần tự. Kết quả được so sánh bằng độ dài của phương trình nêu lên tính chất của liên kết lý tưởng DT R =0 (trong đó D là không gian bù tính được bằng các phương pháp khác nhau, R là ma trận phản lực tương ứng với các tọa độ suy rộng), cụ thể là đo bằng số dòng khi hiển thị trên Notepad. Loại cơ cấu

Phương pháp định thức

Phương pháp tuần tự

( dòng ) * 0.5 0.5 <4 <3 <3 <8 < 11 <3 <2

( dòng)** 0.7 0.7 < 32 < 11 11 27 < 18 <6 <7

Cơ cấu 4 khâu Tay quay con trượt Cơ cấu bơm ô xi Dao bào ngang Dao bào xọc Máy nâng thóc Máy nghiền Cơ cấu đẩy pittong Sàng tải lắc

*) Thời gian tính toán cho ra phương trình DT R =0 của phương pháp định thức thì nhanh hơn. Tuy nhiên với những ví dụ đơn giản như trên thì thời gian tính toán là không lớn, có thể chấp nhận dc cho nên thời gian không được đưa vào làm biến so sánh. **) Ký hiệu “<” tức là số lượng dòng đo được có giá trị gần bằng giá trị đưa ra, chẳng hạn với cơ cấu bơm ô xi, với phương pháp tuần tự có “<32”, tức là số lượng dòng của nó khoảng 31-32 dòng. Hai giải thuật trên đều đã được thực hiện và triển khai thành chương trình tự động, kết quả của phương pháp thứ 2 có dài hơn phương pháp thứ nhất đặc biệt là

Nguyễn Mạnh Cương

- 58 -

KSTN-CĐT-K48

Chương III: Nguyên lý phù hợp…

BỘ MÔN CƠ HỌC ỨNG DỤNG

khi phương trình liên kết nhiều, tuy nhiên sau một số phép rút gọn cả 2 phương pháp đều đưa ra được kết quả giống nhau.

Nguyễn Mạnh Cương

- 59 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Chương IV: SỬ DỤNG KHÔNG GIAN BÙ (Null Space) TRONG BÀI TOÁN TÁCH LIÊN KẾT 4.1.Việc xây dựng không gian bù từ bài toán tách liên kết Một vấn đề xuyên suốt luận văn đó là tách liên kết. Tại mục này ta sẽ nghiên cứu kỹ hơn ích lợi của các phương trình liên kết hình thành do việc tách khớp đối với bài toán xây dựng không gian bù. Như ta nhận xét ở chương III khi đề cập tới sử dụng phương pháp định thức để thành lập không gian bù thì phương pháp này có kết quả khá ngắn gọn và thời gian tính toán khá nhanh. Nguyên nhân của hiện tượng này là do khi ta thực hiện tách các khớp của hệ nhiều vật và sinh ra các phương trình liên kết thì trong ma trận liên kết G có rất nhiều phần tử bằng 0. Ta sẽ ước lượng số phần tử bằng 0 trong ma trận G với một cơ hệ gồm n vật liên kết với nhau bởi m khớp. Cho rằng hệ được xác định bởi u bậc tự do. Theo mục 1.3.4 sau khi tách khớp cầu (hạn chế 3 bậc tự do) thì ta sẽ phải bổ sung vào hệ 3 tọa độ suy rộng dư nữa đồng thời thêm vào nó là 3 phương trình ràng buộc. Chính vì vậy, với c khớp cầu bị tách ta sẽ phải bổ sung thêm vào hệ 3c tọa độ suy rộng dư và bổ sung thêm 3c phương trình vào các hệ phương trình chuyển động của cơ hệ. Tương tự như vậy, với p khớp phẳng bị tách, ta sẽ phải bổ sung thêm 3p tọa độ suy rộng dư và 3p phương trình liên kết. Với d khớp Cardan, tương ứng phải có thêm 4d tọa độ suy rộng dư và 4d phương trình liên kết. Với t khớp trụ, tương ứng phải có thêm 4t tọa độ suy rộng dư và 4t phương trình liên kết. Với q khớp quay, tương ứng phải có thêm 5q tọa độ suy rộng dư và 5q phương trình liên kết. Như vậy, sau khi tách c khớp cầu, p khớp phẳng, d khớp Cardan, t khớp trụ, q khớp quay ta sẽ có ma trận G có kích thước: (3c+3p+4d+4t+5q)x(u+3c+3p+4d+4t+5q) Nguyễn Mạnh Cương

- 60 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Hay 

a s 

j



j

j

    u   a j s j  j   

trong đó : a j : số phương trình liên kết được thành lập sau khi tách khớp j s j : số khớp loại j được tách

u : số bậc tự do của hệ. Tuy nhiên nếu như trong cơ hệ ta tách s j toàn khớp loại j thì số lượng phần tử khác 0 trong ma trận G chỉ chiếm tối đa là bằng tích của : a j hàng và (cột +j). 



Vậy số phần tử khác 0 bằng: a j  u   a j s j  s j . 



j

Vậy tổng số phần tử khác 0 tối đa bằng:

a 

j max



  u   ajsj   sj  j j  

Vậy số phần tử bằng 0 trong ma trận G ít nhất bằng:   

a s j

j

j

      u   a j s j   a j  max  u   a j s j   s j  j j j     

Với trong đó : a j : số phương trình liên kết được thành lập sau khi tách khớp j s j : số khớp loại j được tách

u : số bậc tự do của hệ. Ta có thể áp dụng công thức (4-3) cho hệ phẳng với các khớp chỉ là khớp cầu hoặc khớp trượt, khi đó aj = 2. Nếu ta gọi s là số liên kết bị phá vỡ thì công thức (4-3) được viết dưới dạng rút gọn. 2 s  u  2 s   2  u  3s 

Nguyễn Mạnh Cương

- 61 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Ví dụ: áp dụng đối với một cơ hệ phẳng 1 bậc tự do, có 5 khâu dẫn, giả sử ta tách 2 khớp (khớp quay hoặc tịnh tiến) lúc đó ma trận G có kích thước 4x5 và số lượng phần tử bằng 0 của ma trận G là 6. Xuất phát từ nhận xét về số lượng phần tử bằng 0 trong ma trận G khá lớn, ta đưa ra công thức tính toán định thức áp dụng cho giải thuật tính toán không gian bù theo phương pháp định thức tại mục 3.2.1 như sau: Bước 1: Tìm cột i của ma trận A cần tính định thức sao cho có nhiều phần tử bằng 0 nhất. Bước 2: Tính định thức của A theo công thức n

det( A)   (1) j i aij det(Cij ) j 1

trong đó : n là số cột của ma trận A. aij là phần tử trên hàng i cột j của A Cij là ma trận tách từ A sau khi bỏ hàng i cột j

Để tính công thức (4-5) thì ta sẽ kiểm tra phần tử aij =0, nếu thỏa mãn thì ta không cần phải tính det(Cij ) vì khi đó aij det(Cij ) =0.

4.2.Xây dựng phương trình chuyển động với số lượng phương trình bằng số tọa độ suy rộng được chọn. Bài toán phân tích động lực học thường dùng hệ tọa độ thừa đưa về việc giải hệ phương trình vi phân đại số gồm: các phương trình vi phân chuyển động và các phương trình ràng buộc động học (các phương trình liên kết tại khớp nếu thực hiện tách liên kết). Trong đó ẩn có thể là q , các phản lực liên kết tại các khớp (xây dựng phương trình chuyển động theo nguyên lý phù hợp) hoặc các nhân tử Lagrange λ (xây dựng các phương trình chuyển động Lagrange dạng nhân tử). Số lượng ẩn số trong hệ phương trình cũng từ đó mà khác nhau, chẳng hạn nếu như sử dụng các n tọa độ suy rộng dư để thành lập phương trình chuyển động thì

Nguyễn Mạnh Cương

- 62 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

theo phương pháp Lagrange dạng nhân tử ta sẽ thu được một hệ gồm (n+s) phương trình vi phân đại số, trong đó s là số lượng phương trình liên kết. Còn nếu tính toán theo nguyên lý phù hợp ta sẽ thu được hệ gồm 2n phương trình vi phân đại số cho n tọa độ suy rộng và n phản lực liên kết. Việc sử dụng các tọa độ suy rộng thừa để xây dựng phương trình chuyển động có lợi ích là thành lập các phương trình chuyển động đơn giản hơn nhưng bất lợi lớn nhất của nó là làm tăng số lượng ẩn trong hệ phương trình chuyển động thu được, đưa việc giải hệ phương trình vi phân về giải hệ phương trình vi phân đại số với các giải thuật phức tạp hơn nhiều. Tuy nhiên bằng việc sử dụng các ma trận không gian bù NullSpace ta có thể rút ngắn được số lượng các phương trình trên, cụ thể là đưa về một hệ với số lượng phương trình bằng đúng số tọa độ suy rộng của nó. Từ (2-19) (2-21), phương trình chuyển động của hệ vật viết theo dạng nguyên lý phù hợp như sau: & & h(q&, q, t )  R q  Q M (q&, q, t )q Gq& 0

trong đó G có kích thước sxn là Jacobian theo các tọa độ suy rộng của phương trình liên kết, M (q&, q, t ) có kích thước nxn là các ma trận khối lượng, h(q&, q, t ) có kích thước nx1, Rq là các phản lực suy rộng ứng với các tọa độ suy rộng q. Khi đó nếu như ta tìm được ma trận không gian bù D của G , tức là G D  0 thì ta có thể nhân DT với 2 vế của phương trình (4-6), chú ý rằng khi nhân như vậy thì các thành phần Rq sẽ bị mất đi khỏi phương trình vì DT R  0 . & & DT h(q&, q, t )  DT Q DT M ( q&, q, t )q

Ma trận DT có kích thước (n-s)xn, do đó hệ (4-8) thực chất chỉ gồm (n-s) phương trình. Hệ này kết hợp với s phương trình liên kết của hệ (4-7) ta sẽ thu được một hệ gồm n phương trình vi phân đại số.

Nguyễn Mạnh Cương

- 63 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Hệ (4-8) có một số lợi ích so với việc sử dụng các phương trình Lagrange dạng nhân tử truyền thống hoặc phương trình chuyển động theo nguyên lý phù hợp. Thứ nhất, đó là tổng số phương trình của hệ không phải là n+s mà chỉ là n, chính bằng số lượng tọa độ suy rộng mà ta đã chọn và không phụ thuộc vào số lượng các phương trình liên kết. Ngoài ra, đó là số lượng phương trình vi phân chỉ là m=n-s -hệ (4-8)- chính bằng số lượng bậc tự do của hệ. Thứ hai đó là trong hệ phương trình chỉ có các tọa độ Lagrange q. Điều này làm cho việc tìm kiếm các điều điện đầu dễ dạng hơn. Và dĩ nhiên, sau khi tính được các tọa độ này thì việc đưa ra các phản lực r cũng dễ dàng hơn. Vì vậy ta gọi hệ phương trình chuyển động dưới dạng (4-7) (4-8) là hệ các phương trình chuyển động rút gọn để phân biệt với phương pháp thành lập phương trình dưới dạng Lagrange dạng nhân tử và theo nguyên lý phù hợp (chú ý rằng khái niệm “rút gọn” ở đây đặt ra là do bằng việc sử dụng ma trận không gian bù, ta có thể rút bớt số lượng phương trình chuyển động từ việc thành lập phương trình theo nguyên lý phù hợp hay dạng Lagrange nhân tử). Ta có thể xét một ví dụ về cơ cấu tay quay con trượt. Đây là một mô hình được ứng dụng khá phổ biến trong thực tế: cơ cấu xi lanh pittong trong đầu máy xe lửa, các động cơ đốt trong… Cơ cấu có được mô tả như trong hình 4-1, gồm có 1 bậc tự do. Trên thực tế cơ câu này có thể được xây dựng phương trình chuyển động từ một bậc tự do duy nhất để thu được một phương trình chuyển động[26], tuy nhiên ta sẽ thiết lập phương trình chuyển động của hệ với 3 tọa độ suy rộng là các góc quay phi, teta và khoảng tịnh tiến S của vật 3. Giả sử rằng các đại lượng khối lượng, chiều dài, momen quán tính gắn liền với chỉ số là tên vật. Có rất nhiều tài liệu đã đưa ra công thức tính toán biểu thức động năng, thế năng, và các phương trình Lagrange chuyển động cho cơ cấu trên [1][26][29], chính vì vậy ở đây ta không đề cập từng bước tính toán cụ thể mà chỉ đưa ra các kết quả mà chương trình MBSRun [mục 5.1.2] đã sinh ra tự động và sử dụng kết quả đó để so sánh với kết quả đã có từ các tài liệu [26,29].

Nguyễn Mạnh Cương

- 64 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

S phi teta Hình 4-1: cơ cấu tay quay con trươt

Biểu thức động năng của hệ có giá trị: T = J1*(phi'^2/2)+l1^2/2*m1*(phi'^2) +teta'^2/2*J2+(-teta'/2*sin(teta) *l2*m2 +S'*m2/2)*S'+ (-S'/2*sin(teta)*l2*m2+ l2^2/2*m2*teta') *teta'+S'^2/2*m3

Biểu thức thế năng của hệ có giá trị bằng : Π = sin(teta)*l2*m2*g+m1*sin(phi)*l1*g

Các phương trình chuyển động được xây dựng theo nguyên lý phù hợp có dạng: Phương trình chuyển động ứng với tọa độ suy rộng thứ nhất phi: Pt1 = phi''*(J1+m1*(l1^2))+cos(phi)*m1*l1*g-f2+Rphi

Phương trình chuyển động ứng với tọa độ suy rộng thứ hai teta: Pt2 = teta''*(J2+l2^2*m2)+cos(teta)*l2*m2*g-f3-S''*sin(teta)*l2*m2+Rteta

Phương trình chuyển động ứng với tọa độ suy rộng thứ ba S: Pt3 = (-(m2*l2*sin(teta)*teta''/2+teta'*cos(teta)*l2*m2*teta'/2))(cos(teta)/2*l2*m2*(teta'^2)+teta''*sin(teta)*l2*m2/2)+S''*(m3+m2)-f1+Rs

Trong đó các Rphi, Rteta, Rs là các phản lực suy rộng ứng với các tọa độ suy rộng phi, teta, S. Ngoài ra ta còn có thêm 2 phương trình liên kết mô tả mối quan hệ giữa các tọa độ suy rộng như sau: Ptlk1 = S-l1*cos(phi)-l2*cos(teta)

Nguyễn Mạnh Cương

- 65 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Ptlk2 = l1*sin(phi)-l2*sin(teta)

Như vậy ta đã có 5 phương trình (3 phương trình vi phân và 2 phương trình liên kết) cho 6 ẩn (phi, teta, S, Rphi, Rteta, Rs). Hai phương trình liên kết có thể viết dưới dạng tích của ma trận Jacobian G và các vận tốc suy rộng như sau:  l1*sin( phi ) l 2*sin(teta) 1   l1* cos( phi ) l 2* cos(teta ) 0   

 phi g  g  teta   0  S&   

Đặt ma trận G được tính bằng:  l1*sin( phi ) l 2*sin(teta ) 1    l1* cos( phi ) l 2* cos(teta) 0 

G

Ta thu được ma trận không gian bù D của ma trận liên kết G có dạng: 

l2*cos(teta)   l1*cos(phi)    -sin(teta+phi)*l2*l1

D

Nếu thành lập ma trận Pt = [Pt1 Pt2 Pt3]T , khi đó tích DT*Pt chính là một phương trình chuyển động duy nhất:  Pt1   DT*Pt =  l2*cos(teta) l1*cos(phi) -sin(teta+phi)*l2*l1  Pt2   Pt3

DT*Pt = l2*cos(teta)*( phi''*(J1+m1*(l1^2))+cos(phi)*m1*l1*g-f2)+l1*cos(phi)* ( teta''*(J2 +l2^2*m2) +cos(teta)*l2*m2*g-f3-S''*sin(teta)*l2*m2)-sin(teta+phi) *l2*l1*((-(m2*l2*sin(teta)*teta''/2+teta'*cos(teta)*l2*m2*teta'/2))(cos(teta)/2*l2*m2*(teta'^2)+teta''*sin(teta)*l2*m2/2)+S''*(m3+m2)-f1)

Như vậy ta đã đưa hệ phương trình chuyển động về dạng chỉ gồm 3 phương trình DT*Pt, Ptlk1, Ptlk2 cho 3 ẩn phi, teta, S chứ không phải là 5 phương trình như theo phương pháp Lagrange dạng nhân tử hoặc 6 phương trình theo nguyên lý Nguyễn Mạnh Cương

- 66 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

phù hợp. Hệ 3 phương trình trên sau khi được đưa vào phần mềm DAESol[mục 5.1.3] để giải với các thông số được lấy theo tài liệu [26] thì cũng thu được kết quả mô phỏng giống như trong tài liệu [26].

4.3.Xây dựng phương trình chuyển động bằng cách đưa bộ tọa độ suy rộng dư về bộ tọa độ suy rộng đủ. Như mục 4.2 đã phân tích, việc thành lập phương trình vi phân chuyển động với bộ tọa độ suy rộng đủ không phải lúc nào cũng thực hiện được, chính vì vậy người ta thường sử dụng bộ tọa độ suy rộng dư. Tuy nhiên, trong các bài toán kỹ thuật và điều khiển, người ta luôn mong muốn làm sao có thể thu được một hệ với số lượng biến trạng thái là nhỏ nhất, tức là xây dựng sự phụ thuộc vào số lượng tọa độ suy rộng nhỏ nhất. Mục này sẽ đề cập tới một phương pháp sử dụng bộ tọa độ suy rộng đủ bằng cách tách ra từ bộ tọa độ suy rộng dư ban đầu một số tọa độ độc lập với nhau. Gọi q   q1 q2 K

qn  là n tọa độ suy rông dư để mô tả vị trí của hệ. Cho T

rằng hệ có m bậc tự do, vì vậy ta có thể tìm được s=n-m ràng buộc đặt lên các qi , ta có thể biểu diễn các ràng buộc này bằng các phương trình: Φ  Φ( q )  0

Đạo hàm 2 vế (4-9) theo thời gian, ta thu được các phương trình (4-10) (4-11) Φ q (q )q& 0 & q& & & Φ Φ q (q )q q

Nếu ta gọi ma trận D là ma trận bù (Null Space) của Φ q thì Φq D  0 Φ q có kích thước sxn với m hàng độc lập hay các phương trình ràng buộc là độc

lập, D có kích thước nxm, với m = n-s.

Nguyễn Mạnh Cương

- 67 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Phương trình (4-12) chỉ ra rằng ở một vị trí xác định của hệ thì vận tốc q& thuộc về Null Space của ma trận Jacobian Φ q . Hay D có các cột là các vecot cơ sở của không gian chuyển động cho phép (Subspace Allowable Motions) của hệ, vecto vận tốc thật của hệ q& là tổ hợp tuyến tính của các vecto cơ sở D. Hay q& Dv& Vecto v& gọi là vecto vận tốc suy rộng độc lập của hệ. Như vậy tìm được ma trận D ta có thể chuyển từ hệ tọa độ phụ thuộc q& ban đầu sang hệ tọa độ độc lập v& mới. Chính vì vậy ma trận D đôi khi còn được gọi là ma trận biến đổi vận tốc. Nếu như tìm được bộ các vecto v độc lập tuyến tính ta có thể phân tích bộ tọa độ suy rộng dư q thành tổ hợp của các tọa độ phụ thuộc u và tọa độ độc lập v. qT   uT

vT 

Khi đó (4-9) trở thành Φ(u, v )  0

Trong đó v đã được xác định trước vì vậy, (4-15) là một hệ phương trình phi tuyến cho s ẩn u   u1 u2 K

us  . Và hệ (4-10) có thể được viết dưới dạng T

 Φu

 u&  0  v&

Φv  

Hay Φu u& Φv v&

Còn hệ (4-11) được viết lại thành

 Φu

& &  u &   Φ q q& & & v  

Φv  

Hay & q& Φ & & & Φ & Φu u q vv

Nguyễn Mạnh Cương

- 68 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

&suy rộng phụ thuộc có thể tính từ Vậy các thành phần vận tốc u& và gia tốc u&

các đại lượng vận tốc và gia tốc độc lập từ phương trình (4-17) và (4-19). Ngoài ra, nếu như phương trình chuyển động của hệ nhiều vật được viết theo nguyên lý phù hợp: & & h(q&, q, t )  R q  Q M (q&, q, t )q && vào ta sẽ có: & Dv & &+ Dv thì khi thay q& Dv& và q& && & & h(u , u&, v, v&, t )  R q  Q  M (u , u&, v, v&, t )Dv M (u, u&, v, v&, t )Dv

Khi đó nếu như ta nhân vào cả 2 vế của (4-21) ma trận không gian bù DT thì sẽ triệt tiêu các thành phần phản lực suy rộng. (4-21) được viết lại như sau: && DTh(u , u&, v, v&, t ) & & DT Q  DT M (u , u&, v, v&, t )Dv DT M (u , u&, v, v&, t )Dv

Ta để ý phương trình (4-22) là các phương trình vi phân chỉ phụ thuộc vào tọa độ suy rộng đủ v vì các đại lượng u cũng phụ thuộc vào v theo (4-13) (4-17) và (4-19). Vậy bằng việc sử dụng ma trận D ta có thể chuyển hệ phương trình theo tọa độ suy rộng dư q về bộ tọa độ suy rộng đủ v. Tuy nhiên ở đây có 2 vấn đề cần phải làm rõ, thứ nhất đó là tìm ma trận D như thế nào để có q&= Dv&, với v là một bộ phận của q. Ứng với các phương pháp khác nhau (kể cả phương pháp Numeric và phương pháp symbolic) sẽ cho ta những kết quả khác nhau về D. Thêm nữa, sau khi tìm được D có tách được v từ q hay không vì ứng với các phương pháp Symbolic ta đề cập ở mục 3.2, các ma trận D của ta đều không trực giao. Vấn đề thứ 2 đó là các phương trình (4-18) và (4-19) chỉ có ý nghĩa khi Φu không bị suy biến, và từ đó ảnh hưởng ngược trở lại việc chọn bộ tọa độ v . Để trả lời câu hỏi thứ nhất, bằng phương pháp nào có thể tìm được ma trận D để q&= Dv&, với v là một bộ phận của q. Ta có thể sửa một chút ở giải thuật tìm không gian bù bằng phương pháp định thức. Ta xét lại công thức (3-29) đó là công thức xác định các phần tử của ma trận D. Nguyễn Mạnh Cương

- 69 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Công thức tổng quát của vecto D là không gian bù của ma trận G với điều kiện s cột đầu tiên của G tạo thành ma trận G sxs có định thức khác 0 như sau:

D   d1 d 2 K

Với

 1i   i  2   M  i  s  d m  , di   0     M  i     M    0

Vị trí s+i

Ta có thể sử dụng công thức dạng khác của D bằng cách chia các cột của D cho  i như sau:

D   d1 d 2 K

Với

 1i /  i   i i  2 /    M   i i  s /   d m  , di   0     M   1     M     0 

Vị trí s+i

Vậy D tính được như sau:  11 / 1 12 /  2 L 1m /  m   1 1 2 2 m m  2 /  2 /  K 2 /    M M M M   1 1 2 2 m m  s /  s /  L s /   D 1 0 0 0    1 M 0   0  0 M 1 M     M 0 0 0    0 0 1   0

Nguyễn Mạnh Cương

- 70 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Như vậy ta để ý là trong D có m hàng mà trong các hang đó chỉ có một phần tử có giá trị là 1, các phần tử còn lại đều bằng 0. Còn trong trường hợp s cột đầu tiên của ma trận G không thể tạo thành ma trận G sxs có định thức khác 0 thì ta sẽ thực hiện kiểm tra và trích ra từ G s cột sao cho tạo thành ma trận G sxs có định thức khác 0. Lúc này D vẫn bao gồm m hàng mà chỉ có một phần tử có giá trị là 1 còn các phần tử khác bằng 0, nhưng các hàng này phân bố rải rác trong D.  11 / 1 12 /  2 L 1m /  m    1 K 0   0  M M M M   1 1 2 2 m m  2 /  2 /  L 2 /   D 1 0 0 0   1 1  2 2 M  ms /  m   s /  s /   0 M 1 M     M 0 0 0    0 0 1   0

Từ đó ta có giải thuật tính toán ma trận D như sau: Bước 1: Tìm một ma trận D0 có kích thước sxs gồm các cột được cấu thành từ ma trận D sao cho det(D0)  0. Ta lưu vị trí các cột được chọn để hình thành ma trận D0 vào một vecto l   l1 l2 K ls 

Lưu vị trí các cột không được chọn để thành lập ma trận D0 vào một vecto n   n1

n2 K

nm 

Bước 2: i := 0; j:=0; k:=1 Bước 3: Nếu j là một phần tử của vecto l.

Nguyễn Mạnh Cương

- 71 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù… -

BỘ MÔN CƠ HỌC ỨNG DỤNG

thành lập vecto cột _col bằng cách nhân (-1) với cột nk của ma trận D.

-

thành lập ma trận Dj bằng cách thay thế vecto cột _col vào vị trí vecto cột j của ma trận D0.

-

dij = det(Dj)/det(D0)

-

j:= j+1

-

Quay về bước 3.

Nếu j =nk -

dij =1

-

j:=j+1. Quay về bước 3.

Nếu j=n -

j:= 0, i:=i+1. k:=k+1; Sang bước 4.

Mặc định -

dij = 0, j:=j+1.

-

Quay về bước 3.

Bước 4: Nếu i< m, quay về 3, ngược lại, kết thúc. Như vậy đã tính xong ma trận D.

Sau khi tìm được ma trận D thì tại vị trí những hàng nào của D mà chỉ có một phần tử bằng 1 còn các phần tử khác đều bằng 0 thì ta sẽ tách ra được một tọa độ suy rộng động lập vi . Và về nguyên tắc, sau khi tách được vi như vậy thì định thức ma trận Φu sẽ không bị suy biến. Tuy nhiên, có thể ở một số thời điểm (vị trí suy biến [19]) biểu thức Symbolic không bị suy biến nhưng khi tính toán Numeric thì lại bị suy biến. Để giải quyết vấn đề này ta có thể sử dụng hàm phạt-phương pháp Lagrange mở rộng [27-trang 165, 192, 316, 367] hoặc chọn lại bộ tọa độ suy rộng

Nguyễn Mạnh Cương

- 72 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

v. Để chọn lại tọa độ suy rộng v ta chỉ việc chọn lại ma trận D0 ở bước 1 trong giải thuật tìm ma trận không gian bù là được. Ta có thể xét một ví dụ về cơ cấu 4-khâu, hệ này có một bậc tự do, tuy nhiên việc thành lập phương trình chuyển động của hệ với một tọa độ suy rộng là phức tạp. Từ đó, rất nhiều luận văn [26, 15, 8] hoặc tài liệu [1] đã đề cập tới việc thành lập phương trình chuyển động theo phương pháp tọa độ suy rộng dư. Tuy nhiên với hướng phát triển của chương này ta hoàn toàn có thể xây dựng phương trình chuyển động với một tọa độ suy rộng duy nhất, các tọa độ phụ thuộc khác sẽ coi như là hàm ẩn của tọa độ suy rộng độc lập. Trước tiên ta thành lập phương trình chuyển động cho cơ cấu 4 khâu với các tọa độ suy rộng dư, để làm điều đó ta thực hiện tách khớp tại vị trí liên kết giữa khâu thứ 3 và khâu thứ 4. Hình 4-2 mô tả kết quả sau khi tách khớp.

Vật 3

M

q2

q3

M

Vật 4

q4

Vật 2

q3

q2

Hình 4-2a: Cơ cấu 4 khâu

q4

Hình 4-2b: sau khi tách cơ cấu 4

Chọn các tọa độ suy rộng là các góc quay q2 , q3 , q4 như hình vẽ chỉ góc quay của cá vật 2, 3, 4 tương ứng. Trong đó cho rằng q2 là tọa độ suy rộng độc lập, các tọa độ q3 , q4 là các tọa độ suy rộng phụ thuộc. Giả sử rằng các đại lượng khối lượng, chiều dài, momen quán tính gắn liền với chỉ số là tên vật. Khi đó giá trị động năng của cả hệ sau khi tách được tính có giá trị bằng:

Nguyễn Mạnh Cương

- 73 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

T=J4*(q4'^2/2)+s4^2/2*m4*(q4'^2)+q3'^2/2*J3+q2'*(l2^2/2*m3*q2'+q3'/2*cos(q3q2)*s3*l2*m3)+q3'*(q2'/2*cos(q3-q2)*s3*l2*m3+s3^2/2*m3*q3')+ q2'^2*J2*1/2 +s2^2/2*m2*(q2'^2)

Giá trị thế năng tính được: Π  g*m2*s2*sin(q2)+m3*(s3*sin(q3)+l2*sin(q2))*g+g*m4*s4*sin(q4)

Các phương trình chuyển động theo nguyên lý phù hợp có dạng: Phương trình xây dựng theo tọa độ suy rộng q2 Pt1 = q3''*m3*l2*s3*cos(q3-q2)+sin(q3-q2)*q2'*s3*l2*m3*q3'+q2''*(s2^2*m2+J2 +m3*(l2^2))+s3*l2*m3*q2'*q3'*sin(q2-q3)+cos(q2)*s2*m2*g+cos(q2)*l2*m3*gf2+sin(q2-q3)*s3*l2*m3*(q3'^2)+Rq2 Dạng này ta có thể rút gọn được tiếp (đây là một trong những yếu điểm của chương trình rút gọn Symbolic do nhóm xây dựng, đó là vẫn chưa nhận biết được dạng sin(-x)=sin(x))

Pt1 = q3''*m3*l2*s3*cos(q3-q2)+q2''*(s2^2*m2+J2 +m3*(l2^2))+ cos(q2)*s2*m2*g+cos(q2)*l2*m3*g-f2+sin(q2-q3)*s3*l2*m3*(q3'^2)+Rq2

Phương trình xây dựng theo tọa độ suy rộng q3 Pt2 = q2''*cos(q3-q2)*s3*l2*m3+sin(q3-q2)*s3*l2*m3*(q2'^2) +q3''*(m3*(s3^2)+ J3)+sin(q3-q2)*q3'*q2'*m3*l2*s3+cos(q3)*s3*m3*g-f3+sin(q2q3)*q3'*s3*l2*m3*q2'+Rq3 Dạng này ta có thể rút gọn được tiếp (đây là một trong những yếu điểm của chương trình rút gọn Symbolic do nhóm xây dựng, đó là vẫn chưa nhận biết được dạng sin(-x)=sin(x))

Pt2 = q2''*cos(q3-q2)*s3*l2*m3+sin(q3-q2)*s3*l2*m3*(q2'^2) +q3''*(m3*(s3^2)+ J3)+ cos(q3)*s3*m3*g-f3 +Rq3

Phương trình xây dựng theo tọa độ suy rộng q4 Nguyễn Mạnh Cương

- 74 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Pt3 = q4''*(J4+m4*(s4^2))+cos(q4)*s4*m4*g-f4+Rq4 Từ đó ta có thể viết phương trình liên kết dưới dạng ma trận như sau: 0  s2^2*m2+J2+l2^2*m3 cos(q3-q2)*s3*l2*m3   cos(q3-q2)*s3*l2*m3  m3*(s3^2)+J3 0   0 0 J4+m4*(s4^2)    sin(q2-q3)*(q3'^2)*s3*l2*m3   sin(q3-q2)*s3*l2*m3*(q2'^2)  0

 q 2 ''  q3''      q 4 ''



   

 g*m2*s2*cos(q2)+cos(q2)*l2*m3*g-f2       cos(q3)*s3*m3*g-f3      cos(q4)*s4*m4*g-f4

Rq 2 Rq3 Rq 4

 

 0  

Các phương trình liên kết có dạng Ptlk1= l2*sin(q2)+l3*sin(q3)-l4* sin(q4) Ptlk2 =l2*cos(q2)+l3*cos(q3)-l4*cos(q4)-H Đạo hàm các phương trình liên kết này ta thu được:  q 2 '  l 2* cos(q2) l3*cos(q3) l 4* cos(q4)   G q3'     -l2*sin(q2) -l3*sin(q3) l4*sin(q4)   q 4 '  

Ta sẽ tính toán ma trận không gian bù D cho G:  l 2* cos(q2)   l3*cos(q3)  ; g2     ;  -l2*sin(q2)   -l3*sin(q3) 

Nếu đặt g1  

 l 4* cos(q4)  g3     l4*sin(q4) 

Nếu ta muốn xây dựng phương trình chuyển động của hệ theo tọa độ suy rộng q4, ma trận D là không gian bù của G có dạng tổng quát:  1 /   D    2 /   ;  1 

1  g 3

Nguyễn Mạnh Cương

g 2 ;  2  g1

g 3 ;   g1 g 2

- 75 -

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Từ đó tính toán được ma trận D có giá trị bằng  sin(q4-q3)*l4  sin(q2-q3)*l2   sin(q2-q4)*l4 D sin(q2-q3)*l3  1   

        

Phương trình (4-13) cho ta kết quả:

 q 2 '  q3'     q 4 '

 sin(q4-q3)*l4  sin(q2-q3)*l2   sin(q2-q4)*l4  sin(q2-q3)*l3  1   

        

 sin(q4-q3)*l4   sin(q2-q3)*l2 * q 4 '    sin(q2-q4)*l4  q4 '   * q 4 ' sin(q2-q3)*l3   q4 '      

Hoặc có thể từ phương trình (4-17) cho ta kết quả: 

l 2* cos(q2) l3*cos(q3) -l2*sin(q2) -l3*sin(q3)  

  q 2 '  l 4* cos(q4)    q3'     l4*sin(q4)  q 4 '     

Phương trình (4-19) cho ta kết quả 

  q 2 ''  l 4* cos(q4)      q3''   l4*sin(q4)        l 2*sin (q2)*q2' -l3*sin(q3)*q3' l 4*sin (q4)*q4'  -l2*cos(q2)*q2' -l3*cos(q3)*q3' l4*cos(q4)*q4'   



l 2* cos(q2) l3*cos(q3) -l2*sin(q2) -l3*sin(q3)

 

 

Nguyễn Mạnh Cương

- 76 -

q 4 '' q 2 ' q3'  q 4 '

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Hoặc có thể lấy đạo hàm (4-31) để viết được:  sin(q4-q3)*l4   sin(q2-q3)*l2    q 2 ''   q3''    sin(q2-q4)*l4  q 4 ''    sin(q2-q3)*l3    q 4 ''  1        (cos(q4-q3)*(q4'-q3')*sin(q2-q3)-sin(q4-q3)*cos(q2-q3)*(q2'-q3'))*l4    sin(q2-q3) 2 *l2    (cos(q2-q4)*(q2'-q4')*sin(q2-q3)-sin(q2-q4)*cos(q2-q3)*(q2'-q3'))*l4    q4 ' sin(q2-q3) 2 *l3   0       &  D.q 4 '' D.q 4 '

Thay (4-34) vào (4-26) có phương trình chuyển động chỉ có thành phần vi phân bậc hai của q4’’ 0  s2^2*m2+J2+l2^2*m3 cos(q3-q2)*s3*l2*m3   cos(q3-q2)*s3*l2*m3  D.q 4 ''  m3*(s3^2)+J3 0    0 0 J4+m4*(s4^2)  0  s2^2*m2+J2+l2^2*m3 cos(q3-q2)*s3*l2*m3  - cos(q3-q2)*s3*l2*m3  D & m3*(s3^2)+J3 0   .q 4 '  0 0 J4+m4*(s4^2)   sin(q2-q3)*(q3'^2)*s3*l2*m3    sin(q3-q2)*s3*l2*m3*(q2'^2)     0  g*m2*s2*cos(q2)+cos(q2)*l2*m3*g-f2       cos(q3)*s3*m3*g-f3      cos(q4)*s4*m4*g-f4

Nguyễn Mạnh Cương

- 77 -

Rq 2 Rq3 Rq 4

 

 0  

KSTN-CĐT-K48

Chương IV: Sử dụng không gian bù…

BỘ MÔN CƠ HỌC ỨNG DỤNG

Nhân 2 vế của (4-35) với ma trận DT của (4-30), ta một lần nữa loại bỏ được các phản lực suy rộng liên kết R qi ; sau đó với một vài biến đổi rút gọn ta có thể đưa về hệ về chỉ gồm một phương trình duy nhất dạng tối giản, tuy nhiên để ngắn gọn ta sẽ viết phương trình dưới dạng ma trận và không thực hiện nhân cụ thể cho ra biểu thức Symbolic ở đây. 0  s2^2*m2+J2+l2^2*m3 cos(q3-q2)*s3*l2*m3    D.q 4 ''  D  cos(q3-q2)*s3*l2*m3 m3*(s3^2)+J3 0   0 0 J4+m4*(s4^2)  0  s2^2*m2+J2+l2^2*m3 cos(q3-q2)*s3*l2*m3   D T  & -D  cos(q3-q2)*s3*l2*m3 m3*(s3^2)+J3 0  .q 4 '  0 0 J4+m4*(s4^2)  T

 sin(q2-q3)*(q3'^2)*s3*l2*m3 D  sin(q3-q2)*s3*l2*m3*(q2'^2)  0



 g*m2*s2*cos(q2)+cos(q2)*l2*m3*g-f2   0 cos(q3)*s3*m3*g-f3    cos(q4)*s4*m4*g-f4

  DT   

T



Phương trình trên có thể được coi là phương trình chuyển động chỉ phụ thuộc vào tọa độ suy rộng q4, các đại lượng khác như q2, q3, q2’, q3’, q2’’, q3’’ có thể coi là các tham số và được tính theo (4-27) (4-28) (4-31) (4-33).

Nguyễn Mạnh Cương

- 78 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Chương V: GIỚI THIỆU PHẦN MỀM SỬ DỤNG VÀ VÍ DỤ TÍNH TOÁN 5.1.Giới thiệu một số phần mềm được xây dựng Tại mục này đưa ra hướng dẫn sử dụng một số phần mềm được xây dựng dựa trên thư viện Expression.dll với các hàm được đề cập ở phụ lục A. Phần mềm LinkBreak để tách liên kết tự động, và đưa ra file *.mbs là file đầu vào cho phần mềm MBSRun để xây dựng phương trình chuyển động. Các phương trình chuyển động sẽ tiếp tục đưa vào mô phỏng bằng DAESol. 5.1.1.Phần mềm LinkBreak Phần mềm này được xây dựng nhằm mục đích có thể cắt liên kết tự động một hệ nhiều vật, cho ra các thông số về vị trí khâu cắt, phương trình liên kết, thông tin các nhánh sau khi cắt.

Input File *.data

Output LinkBreak

lưu trữ thông tin vật trước khi tách

File *.mbs File đầu vào của chương trình MBSRun

File *.data có định dạng: BODY { NAME = Ground; LINK= vat1,1; Nguyễn Mạnh Cương

- 79 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

LINK= vat3,1; LINK= vat5,1; } Trong đó từ khóa -BODY mở đầu cho định nghĩa một vật mới. -NAME: định nghĩa tên vật -LINK: định nghĩa mối liên kết của vật với vật khác. Từ khóa này có 2 tham số, tham số thứ nhất là tên vật tham gia liên kết, từ khóa thứ 2 là định dạng liên kết. Định dạng loại liên kết được sử dụng để sau này thành lập phương trình liên kết, chương trình sẽ tự gọi hàm sinh phương trình liên kết tương ứng, bảng dưới đây mô tả tham số nói lên kiểu liên kết

Loại khớp Khớp quay trong mặt phẳng Khớp trượt trong mặt phẳng Khớp quay trong không gian Khớp trụ trong không gian Khớp cầu trong không gian Khớp phẳng Khớp Cardan Ví dụ như một cơ cấu 8 khâu như

Đối số truyền vào 1 2 3 4 5 6 7

hình vẽ 5-1 sẽ có file *.data như sau: BODY { NAME = Ground; LINK= vat1,1; LINK= vat2,1; LINK= vat3,1; }

Nguyễn Mạnh Cương

- 80 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

BODY

NAME=vat4;

{ NAME=vat1;

LINK= vat1,1; Hình 5-1: Cơ cấu 8 khâu LINK= vat5,1;

LINK= Ground,1;

LINK= vat6,1;

LINK= vat4,1;

LINK= vat2,1;

LINK= vat5,1;

}

}

BODY

BODY

{

{

NAME=vat5;

NAME=vat2;

LINK= vat1,1;

LINK= vat3,1;

LINK= vat4,1;

LINK= Ground,1;

LINK= vat3,1;

LINK= vat4,1;

LINK= vat7,1;

LINK= vat6,1;

} BODY {

}

NAME=vat6;

BODY

LINK= vat5,1;

{

LINK= vat4,1;

NAME=vat3;

LINK= vat2,1;

LINK= vat2,1;

}

LINK= Ground,1;

BODY

LINK= vat5,1;

{ NAME=vat7; LINK= vat6,1;

LINK= vat7,1;

LINK= vat5,1;

}

LINK= vat3,1;

BODY

}

{

Sau khi đọc xong file *.data vào chương trình, chương trình sẽ thực hiện tính toán để ước xem số lượng liên kết ít nhất cần phải tách để đưa hệ về hệ động học có cấu trúc chuỗi một nhánh. Để làm được điều đó ta xem menu Information như hình vẽ dưới đây: Nguyễn Mạnh Cương

- 81 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Ngoài ra ta có thể lựa chọn một số button sau:

Để gia tăng số lượng liên kết muốn phá vỡ. Chương trình đưa ra số lượng liên kết tối thiểu để phá vỡ, tuy nhiên với một số trường hợp, khi mà các nhánh cơ học chứa nhiều vật rắn trên 6, ta thương tiến hành cắt thành các nhánh nhỏ hơn để phương trình chuyển động đỡ phức tạp.

Nếu ta muốn nhập một ma trận logic liên kết [chương 1] thay vì nhập vào một file *.data chứa thông tin vật.

Nếu ta muốn thực hiện tách các liên kết bằng tay. Chương trình lựa chọn số lượng liên kết cần phải tách và lựa chọn các liên kết nên tách để cho ra biểu thức động năng tối ưu (ngắn gọn nhất có thể), tuy nhiên khi ta muốn tự tự tách các liên kết thì có thể sử dụng button này.

Nguyễn Mạnh Cương

- 82 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Taị mục này nếu như đã chấp nhận việc tách liên kết ta sẽ thực hiện việc xây dựng phương trình liên kết tự động. Công việc xây dựng phương trình liên kết tự động dựa theo cách xác định hướng của vật rắn. Như ta đã biết vị trí của vật rắn dựa trên vị trí của một điểm trên vật rắn đó và hướng của vật rắn. Hướng của vật rắn có thể được xác định bởi các góc Euler, các góc Cardan, các góc Roll-Pitch-Yaw… Tuy nhiên trong phạm vi đồ án ta chỉ sử dụng các góc quay cơ bản, cụ thể là đồ án đưa ra hai cách xác định vị trí vật: *) Cách thứ nhất: Các góc quay của vật i xác định hướng của vật đó là các góc quay theo trục x, trục y hoặc trục z của hệ trục tọa độ (Oxyz) i-1 gắn với hệ i-1. Ta có thể minh họa bằng hình vẽ 8 khi coi các vật rắn như các thanh có chiều dài lần lượt là l1, l2, l3 : Y3 Y0

Y2

X1 q2

X2 q3 A X3

Y1

q1 X0

O

Hình 5-2: Các góc quay của vật so với vật trước

Có thể hình dụng ta sử dụng các tọa độ suy rộng q 1, q2, q3 trong đó hệ trục tọa độ OX1Y1 gắn với vật rắn thứ nhất quay một góc q1 so với hệ trục tọa độ gắn với nền OX0Y0. Tương tự hệ trục OX2Y2 gắn với vật rắn thứ hai quay một góc q2 so với hệ trục tọa độ gắn với vật thứ nhất OX1Y1, hệ trục OX3Y3 gắn với vật rắn thứ ba quay một góc q2 so với hệ trục tọa độ gắn với vật thứ hai OX 2Y2. Từ đó ma hoành độ và tung độ điểm A ở cuối vật rắn thứ 3 là: Nguyễn Mạnh Cương

- 83 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

xA = l1cos(q1)+l2cos(q1+q2)+l3cos(q1+q2+q3) yA = l1sin(q1)+l2sin(q1+q2)+l3sin(q1+q2+q3)

Với các lựa chọn này khi bấm vào button

ta sẽ chọn phương pháp

1 để tính toán phương trình liên kết như hình vẽ:

*) Cách thứ hai: Các góc quay của vật i xác định hướng của vật đó là các góc quay theo trục x, trục y hoặc trục z của hệ trục tọa độ (Oxyz) 0 gắn với nền. Ta có thể minh họa bằng hình vẽ 9 khi coi các vật rắn như các thanh có chiều dài lần lượt là l1, l2, l3 :

Y3 Y0

Y2

X2

X1

q3

q2

A X3

Y1

q1 X0

O

Hình 5-3: Các góc quay của vật so với nền

Có thể hình dụng ta sử dụng các tọa độ suy rộng q 1, q2, q3 trong đó hệ trục tọa độ OX1Y1 gắn với vật rắn thứ nhất quay một góc q1 so với hệ trục tọa độ gắn với Nguyễn Mạnh Cương

- 84 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

nền OX0Y0. Tương tự hệ trục OX2Y2 gắn với vật rắn thứ hai quay một góc q2 so với hệ trục tọa độ gắn với vật thứ nhất OX0Y0, hệ trục OX0Y0 gắn với vật rắn thứ ba quay một góc q2 so với hệ trục tọa độ gắn với vật thứ hai OX 0Y0. Từ đó ma hoành độ và tung độ điểm A ở cuối vật rắn thứ 3 là: xA = l1cos(q1)+l2cos(q1)+l3cos(q1) yA = l1sin(q1)+l2sin(q1)+l3sin(q1)

Với các lựa chọn này khi bấm vào button

ta sẽ chọn phương pháp

1 để tính toán phương trình liên kết như hình vẽ:

Sau khi lựa chọn được phương pháp để giải, ta sẽ thực hiện bổ sung các thông tin của vật vào một bảng hiển thị như mục dưới đây.

Nguyễn Mạnh Cương

- 85 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Trong đó nhánh bên trái là danh sách tên các vật, khi chọn một vật thì thông tin của nó sẽ được hiển thị bên trái bao gồm: tọa độ trọng tâm, momen quán tính, khối lượng và các ma trận chuyển đổi, các ma trận này là các ma trận tịnh tiến và quay dọc theo trục x,y,z, các tham số sẽ được thêm ngay bên cạnh, nếu như nó là biến ta sẽ chọn vào nút check ở ngay bên cạnh. Sau khi chọn được ma trận chuyển đổi ta nhấp vào nút Them, nếu muốn bỏ đi ấn vào xóa.

Sau khi thực hiện bổ sung các thông tin của một vật ta nhấp nút OK, xong thông tin tất cả các vật nhấp Finish.

Nguyễn Mạnh Cương

- 86 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Ngoài ra ta còn hỗ trợ 2 button thực hiện bổ sung thông tin nhanh đó là lưu dữ liệu (save Data) và lấy dữ liệu (load Data) là những button đọc và ghi thông tin của các vật vào file có định dạng *.usc. Các file *.usc có format gần giống với file *.Data, tuy nhiên ở đây nó bổ sung thêm các từ khóa gần giống với file *.mbs (là file input cho chương trình MBSRun) BODY

[

{

TRANZ_Y=y1

NAME=VAT1

]

MASS=0

IC=0,0,0,0,0,0,0,0,0

PREBODY=

CENTER=0,0,0

MOVE

}

Đây là button bắt buộc ta phải chọn trước khi chọn lệnh lập phương trình liên kết. Nút này để lưu tọa độ vị trí liên kết bị phá vỡ trên các vật. Cụ thể là nếu như ta phá vỡ liên kết vat3-vat4 thì phải có thông tin vị trí liên kết với vật 4 trên vât 3, và vị trí liên kết với vật 3 trên vật 4. Sau khi bổ sung liên kết ta sẽ hoàn thành việc thông báo chuyển động của các vật.

Nguyễn Mạnh Cương

- 87 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Trong đó khung bên trái là danh sách các liên kết bị phá vỡ, như ở hình bên thì ta đang chọn phá vỡ liên kết vât 3- vật 4. Nhìn sang phía bên phải, mục “Vị trí liên kết trên vật 1” tức là ngụ ý xác định vị trí liên kết với vật 4 trên vật 3. Còn mục “Vị trí liên kết trên vật 2” là ngụ ý xác định vị trí liên kết với vật 3 trên vật 4. Ngoài ra còn có các mục lựa chọn khác. Sau khi thêm thông tin cho một liên kết bị phá vỡ xong, ta nhấp Insert. Khi thêm toàn bộ thông tin cho các liên kết xong, ta nhấp Finish.

Để sinh phương trình chuyển động, kết quả sẽ được thông báo dưới dạng một MessageBox, như hình dưới đây là một ví dụ

Để tạo file *.mbs là file input của chương trình MBSRun, với cách tạo như thế này ta đưa ra khả năng đóng kín chương trình.

5.1.2.Phần mềm MBSRun Phần mềm này được sử dụng để tính toán phương trình chuyển động một cách tự động. File đầu vào là một file *.mbs, và đầu ra là các phương trình dưới dạng Lagrange nhân tử. Ngoài ra phương trình cũng sử dụng hàm tính toán NullSpace trong thư viện Expression.dll để cho ra không gian bù của các phương trình liên kết được đưa ra trong file *.mbs

Nguyễn Mạnh Cương

- 88 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Input File *.mbs

Output LinkBreak

lưu trữ toàn bộ thông tin hệ nhiều vật

Hệ các phương trình chuyển động theo Phương pháp Lagrage dạng nhân tử

File *.mbs có thông tin được lưu trữ như sau: PROJECT=;

// tên của bài toán

DECRIPTION=;

// mô tả một số thông tin của bài toán

USER=;

// tác giả

VAR=q1,q2,q3;

// tên các tọa độ suy rộng

BODY

// mở đầu khai báo vật trong hệ

{ NAME=vat1;

// tên của vật

MASS=m1;

// khối lượng vật

PREBODY=ground;

// tên của vật mà vật này gắn vào

DH=0,0,0,q1;

// 4 thông số ma trận Denavit-

Hartenberg, // trong trường hợp sử dụng ma trận DH MOVE

// bắt đầu định nghĩa các chuyển động

[ ROT_Z= q1;

// quay quanh trục Z một góc q1

] IC=0,0,0,0,0,0,0,0,J1;

// định nghĩa ma trận quán tính I

CENTER=s1,0,0;

// định nghĩa vị trí khối tâm.

Nguyễn Mạnh Cương

- 89 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

}

//kết thúc định nghĩa vật

FORCE

// bắt đầu định nghĩa các ngoại lực

{

// số lượng ngoại lực yêu cầu bằng số tọa độ

f2;

// suy rộng

f3; f4; }

// kết thúc định nghĩa các ngoại lực suy rộng

CONSTRAIN

// bắt đầu định nghĩa các phương trình liên kết.

{ l2*sin(q2)+l3*sin(q3)-l4*sin(q4); l2*cos(q2)+l3*cos(q3)-l4*cos(q4)-H; } Ở đây có một chú ý đó là 4 thông số của ma trận Denavit-Hartenberg sẽ là cần thiết nếu như sau này ta lựa chọn phương pháp thành lập phương trình vi phân chuyển động dựa theo các thông số của ma trận Denavit-Hartenberg. Còn nếu sử dụng các phương pháp thành lập phương trình dựa theo các góc quay thì từ khóa MOVE là không thể bỏ được. Về việc sử dụng phương pháp nào để thành lập phương trình chuyển động ta xét ngay dưới đây. Sau khi nhập một file *.mbs vào để tìm phương trình chuyển động, ta có thể chọn các button sau đây. Để lấy thông tin các vật xem đã chính xác chưa. Sau khi chọn nút bấm này, một bảng thông tin tóm tắt sẽ hiện ra

Nguyễn Mạnh Cương

- 90 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Bắt đầu tiến hành xây dựng phương trình chuyển động, tuy nhiên trước khi bắt đầu chương trình sẽ hỏi ta phương pháp được lựa chọn để xây dựng.

Phương pháp thứ nhất: Sử dụng các ma trận DH, vì vậy trong file *.mbs input phải có các thông số này. Phương pháp thứ 2: Sử dụng các góc quay so với vật trước nó, phần này ta đã đề cập khá kỹ ở mục 5.1.1. Để hiểu rõ hơn về phương pháp này ta xem lại hình 52. Nguyễn Mạnh Cương

- 91 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Phương pháp thư 3: Ta có thể xem lại hình 5-3. Thông thường việc gọi các tọa độ suy rộng ứng với các góc quay so với nền thường được sử dụng đối với các cơ hệ phẳng và thu được kêt quả nhỏ hơn so với phương pháp thứ 2. Tuy nhiên sang bài toán không gian thì các kết quả là như nhau và việc phân chia hai cách chọn tọa độ suy rộng này là không có ý nghĩa. Sau khi lựa chọn một phương pháp để tính toán, chương trình sẽ cho ra kết quả gồm các đại lượng động năng, thế năng và các phương trình chuyển động như bảng dưới đây.

Để tạo file điều kiện đầu áp dụng cho việc giải chương trình DAESol sau này, đầu ra sẽ tạo ra một file *.in, *.dfs

Nguyễn Mạnh Cương

- 92 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Gọi chương trình DAESol để giải các phương trình chuyển động và tiến hành mô phỏng Button này sẽ sử dụng được nếu như trong hệ có các phương trình liên kết. Kết quả trả về sẽ là phương trình DTR = 0. Trong đó R là ma trận các phản lực ứng với các tọa độ suy rộng. 5.1.3.Phần mềm DAESol Đây là phần mềm để giải các phương trình vi phân đại số, được sử dụng trong quá trình làm đồ án để kiểm tra các phương pháp thành lập phương trình chuyển động.

Input File *.eqn *.dsf

Nguyễn Mạnh Cương

Output LinkBreak

- 93 -

Giá trị mô phỏng tại một số thời điểm

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Sau khi nhập vào chương trình một file *.eqn, chương trình sẽ tự động tìm kiếm file *.dsf cùng tên, file này lưu các tham số của phương trình, cùng điều kiện đầu của các biến. Các file này có định dạng như sau: *) file *.eqn có các từ khóa sau [Equations]

// định nghĩa các phương trình của hệ

[ConstraintEquations]

// định nghĩa các phương trình liên kết được sử

dụng để sinh không gian bù sau này. [Unknowns]

// định nghĩa các tọa độ suy rộng của hệ

[Parameters]

// định nghĩa các tham số

[InitialValues] [Description] [Author]

*) file *.dsf có các từ khóa sau [COMMON]

// bắt đầu đưa ra các thông tin để tích tích phân

[UNKNOWNS]

// đưa ra các điều kiện đầu để tính cho các biến

[PARAMETERS]

// đưa ra giá trị của các tham số.

Số lượng các tham số trong file *.eqn phải bằng và được định nghĩa tại mục các tham số của file *.dsf. Nguyễn Mạnh Cương

- 94 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Sau khi mở một file *.eqn, giao diện của chương trình như sau:

Trong đó, các button được sử dụng như sau: bắt đầu thực hiện giải phương trình xem kết quả bằng cách mô phỏng trên đồ thị xuất các kết quả dưới định dạng file Exel. Để biết thêm cách sử dụng chương trình này có thể xem thêm các luận văn [26,28] 5.2.Một số ví dụ Tại mục này ta xét một số ví dụ để xem xét cách thành lập phương trình chuyển động theo những phương pháp khác nhau. Cụ thể là thành lập phương trình chuyển động dưới dạng các phương trình Lagrange dạng nhân tử [mục 2.1],

Nguyễn Mạnh Cương

- 95 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

thành lập phương trình theo nguyên lý phù hợp [mục 3.1], đưa ra các phương trình rút gọn [mục 4.2] với số lượng phương trình chuyển động bằng số tọa độ suy rộng đã chọn. Các phương trình chuyển động đều được sinh ra từ các chương trình xây dựng phương trình tự động MBSRun, linkBreak. Đồng thời kết quả mô phỏng tạm thời được giải bằng chương trình DAESol và đưa ra kết quả là các đồ thị. 5.2.1.Cơ cấu 4 khâu (hình 5-4) Đây là một ví dụ điển hình về việc rất khó thành lập phương trình chuyển động với bộ tọa độ suy rộng độc lập gồm một tọa độ duy nhất. Tại đây ta sử dụng các góc quay q1, q2, q3 của các vật được mô tả như hình vẽ dưới đây. Y3 Y0

Y2

X1

X2 q3

q2

A X3

Y1

x q1

O

X0 H

Hình 5-4: Cơ cấu 4 khâu

Chương trình linkBreak đưa ra giải pháp là tách khớp giữa vị trí liên kết vật 2-3. Từ đó phương trình liên kết của khớp 2-3 có dạng l1*sin(q1)+l2*sin(q2)-l3*sin(q3)+x; l1*cos(q1)+l2*cos(q2)-l3*cos(q3)-H; Ở đây để cho kết quả đơn giản, ta chọn x=0. Từ đó tạo ra file *.mbs để đưa vào chương trình giải như sau: VAR=q1,q2,q3; Nguyễn Mạnh Cương

- 96 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

BODY { NAME=vat1; MASS=m1; PREBODY=ground; DH=0,0,0,q1; MOVE [ ROT_Z= q1; ] IC=0,0,0,0,0,0,0,0,J1; CENTER=s1,0,0; } BODY { NAME=vat2; MASS=m2; PREBODY=vat1; DH=0,l1,0,q2; MOVE [ TRANZ_X= l1; ROT_Z= q2; ] IC=0,0,0,0,0,0,0,0,J2; CENTER=s2,0,0; } BODY { NAME=vat3; MASS=m3; PREBODY=ground; DH=0,0,0,q3; MOVE [ TRANZ_X= H; ROT_Z= q3; ] IC=0,0,0,0,0,0,0,0,J3; CENTER=s3,0,0; } FORCE { Nguyễn Mạnh Cương

- 97 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

f1; f2; f3; } CONSTRAIN { l1*sin(q1)+l2*sin(q2)-l3*sin(q3); l1*cos(q1)+l2*cos(q2)-l3*cos(q3)-H; } Sau khi đưa vào MBSRun để chạy, ta thu được các phương trình chuyển động của hệ, các phương trình đó được mô tả như sau: *) Các phương trình Lagrange dạng nhân tử và phương trình liên kết. Pt1= (-(q2'^2*m2*l1*s2*sin(q2-q1)))+q2''/2*cos(q2-q1)*s2*l1*m2*2 +q1''*(J1+1/2*2*m1*(s1^2)+l1^2*m2)+g*m1*s1*cos(q1)+g*m2*l1*cos(q1)-f1cos(q1)*l1*lamda1+lamda2*l1*sin(q1); Pt2= q2''*J2+2*(s2^2)*m2*q2''/2+q1''*cos(q2-q1)*s2*l1*m2-((q2'-q1') *sin(q2-q1)*q1'*m2*l1*s2)+s2*l1*m2*q1'*q2'*sin(q2-q1) +cos(q2)*s2*m2*gf2-cos(q2)*l2*lamda1+lamda2*l2*sin(q2); Pt3= q3''*(J3+1/2*2*m3*(s3^2))+cos(q3)*s3*m3*g-f3 +lamda1*l3*cos(q3) +sin(q3)*l3*lamda2; Ptlk1=l1*sin(q1)+l2*sin(q2)-l3*sin(q3); Ptlk2=l1*cos(q1)+l2*cos(q2)-l3*cos(q3)-H; Vậy ta đã có một hệ gồm 5 phương trình cho 5 ẩn, trong đó có 3 ẩn là các tọa độ suy rộng q1, q2, q3 và 2 ẩn là các nhân tử Lagrange lamda1, lamda2 *) Các phương trình chuyển động theo nguyên lý phù hợp có dạng. Phương trình DTRq = 0 được sinh ra có dạng sin(q3-q2)*l3*l2*Rq1+sin(q1-q3)*l1*l3*Rq2+Rq3*l2*l1*sin(q1-q2); trong đó mặc định các Rqi là các phản lực suy rộng ứng với tọa độ suy rộng qi. Ngoài ra ta vẫn có 5 phương trình chuyển động khác gồm 2 phương trình liên kết và 3 phương trình vi phân, tại các phương trình vi phân này sẽ không có nhân tử Lagrange mà thay vào đó là phản lực suy rộng. Pt1 =(-(q2'^2*m2*l1*s2*sin(q2-q1)))+q2''/2*cos(q2-q1)*s2*l1*m2*2 + q1''*(J1+1/2*2*m1*(s1^2)+l1^2*m2)+g*m1*s1*cos(q1)+g*m2*l1*cos(q1)-f1Rq1; Nguyễn Mạnh Cương

- 98 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Pt2= q2''*J2+2*(s2^2)*m2*q2''/2+q1''*cos(q2-q1)*s2*l1*m2-((q2'-q1')* sin(q2-q1) *q1'*m2*l1*s2)+s2*l1*m2*q1'*q2'*sin(q2-q1)+cos(q2)*s2*m2*g-f2Rq2; Pt3=q3''*(J3+1/2*2*m3*(s3^2))+cos(q3)*s3*m3*g-f3+Rq3; Ptlk1=l1*sin(q1)+l2*sin(q2)-l3*sin(q3); Ptlk2=l1*cos(q1)+l2*cos(q2)-l3*cos(q3)-H; Vậy ta có một hệ gồm 6 phương trinh cho 6 ẩn số trong đó có 3 ẩn là các tọa độ suy rộng q1, q2, q3 và 3 ẩn là các phản lực suy rộng ứng với 3 tọa độ đó Rq1, Rq2, Rq3. *) Các phương trình rút gọn khi nhân ma trận không gian bù vào ma trận phương trình liên kết. Pt1 =sin(q3-q2)*l3*l2*((-(q2'^2*m2*l1*s2*sin(q2-q1)))+q2''/2*cos(q2q1)*s2*l1*m2*2+q1''*(J1+1/2*2*m1*(s1^2)+l1^2*m2)+g*m1*s1*cos(q1)+g*m 2*l1*cos(q1)-f1)+sin(q1-q3)*l1*l3*(q2''*J2+2*(s2^2)*m2*q2''/2+q1''*cos(q2q1)*s2*l1*m2-((q2'-q1')*sin(q2-q1)*q1'*m2*l1*s2)+s2*l1*m2*q1'*q2'*sin(q2q1)+cos(q2)*s2*m2*g-f2)+l2*l1*sin(q1-q2)*(q3''*(J3+1/2*2*m3*(s3^2)) +cos(q3)*s3*m3*g-f3); Ptlk1=l1*sin(q1)+l2*sin(q2)-l3*sin(q3); Ptlk2=l1*cos(q1)+l2*cos(q2)-l3*cos(q3)-H; Như vậy ta thiết lập được đúng 3 phương trình chuyển động trong đó có một phương trình vi phân. Các ẩn ở đây cũng chính là các tọa độ suy rộng. *) Kết quả mô phỏng ứng với 3 phép trên là như nhau, ở đây ta chỉ đưa ra đồ thị mô tả chuyển động của tọa độ suy rộng q3 mà thôi. Các giá trị tham số đưa vào giải trong DAESol là: J1=0.4 m1=0.5 s1=0.1 g=9.81 f1=5 l1=0.15 J2=0.6 s2=0.2 m2=1.5 l3=0.6 f2=0 l2=0.55 J3=0.7 m3=2 s3=0.25 f3=0

H=0.6

điều kiên đầu: q1=0 q2=1.46 q3=-3.98 q1'=.3 q2'=-0.099 q3'=-0.099

Nguyễn Mạnh Cương

- 99 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Kết quả q3 mô phỏng ứng với phương pháp Lagrange dạng nhân tử có dạng:

Kết quả q3 mô phỏng ứng với phương pháp thành lập phương trình theo nguyên lý phù hợp có dạng:

Nguyễn Mạnh Cương

- 100 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Kết quả q3 mô phỏng ứng với phương pháp thành lập phương trình rút gọn có dạng:

5.2.2.Máy mài 6 khâu (hình 5-5) Ta chọn một cơ hệ nhiều vật là mô hình của máy mài 6 khâu, máy này có một bậc tự do duy nhất và có sơ đồ giống như hình 5-5.

Hệ có một bậc tự do, chương trình Linkbreak đưa ra giải pháp là tách các khớp 3-2, 3-4. Từ đó ta có phương trình liên kết có dạng: l3*sin(q3)-l4*sin(q4)-l5*sin(q5); l3*cos(q3)-l4*cos(q4)-l5*cos(q5)-H; l1*cos(q1)+l2*cos(q2)-s*cos(q3)-x; l1*sin(q1)+l2*sin(q2)-s*sin(q3)-k; Ta nhập vào file *.mbs có dạng:

Nguyễn Mạnh Cương

- 101 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

q3

q2

q4

q1

q5

Hình 5-5: Máy mài 6 khâu

PROJECT=; DECRIPTION=; USER=; VAR=q1,q2,q3,q4,q5; BODY { NAME=vat1; MASS=m1; PREBODY=ground; DH=0,0,0,q1; MOVE [ ROT_Z= q1; ] IC=0,0,0,0,0,0,0,0,J1; CENTER=l1,0,0; } BODY { NAME=vat2; MASS=m2; PREBODY=vat1; Nguyễn Mạnh Cương

- 102 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

DH=0,l1,0,q2; MOVE [ TRANZ_X=l1; ROT_Z=q2; ] IC=0,0,0,0,0,0,0,0,J2; CENTER=l2,0,0; } BODY { NAME=vat3; MASS=m3; PREBODY=ground; DH=0,0,0,q3; MOVE [ TRANZ_X=1; TRANZ_Y=0.7; ROT_Z= q3; ] IC=0,0,0,0,0,0,0,0,J3; CENTER=l3,0,0; } BODY { NAME=vat4; MASS=m4; PREBODY=vat5; DH=0,l5,0,q4; MOVE [ TRANZ_X= l5; ROT_Z= q4; ] IC=0,0,0,0,0,0,0,0,J4; CENTER=s4,0,0; } BODY { NAME=vat5; MASS=m5; PREBODY=ground; Nguyễn Mạnh Cương

- 103 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

DH=0,0,0,q5; MOVE [ TRANZ_X=3; TRANZ_Y=0.2; ROT_Z= q5; ] IC=0,0,0,0,0,0,0,0,J5; CENTER=s1,0,0; } FORCE { f1; f2; f3; f4; f5; } CONSTRAIN { l3*sin(q3)-l4*sin(q4)-l5*sin(q5); l3*cos(q3)-l4*cos(q4)-l5*cos(q5)-H; l1*cos(q1)+l2*cos(q2)-s*cos(q3)-x; l1*sin(q1)+l2*sin(q2)-s*sin(q3)-k; } *) Các phương trình Lagrange dạng nhân tử và phương trình liên kết. Pt1= (-(q2'^2*m2*l1*l2*sin(q2-q1)))+q2''/2*cos(q2-q1)*l2*l1*m2*2 +q1''*(J1+1/2*2*m1*(l1^2)+l1^2*m2)+g*m1*l1*cos(q1)+g*m2*l1*cos(q1)f1+sin(q1)*l1*lamda1-lamda2*l1*cos(q1); Pt2= q2''*J2+2*(l2^2)*m2*q2''/2+q1''*cos(q2-q1)*l2*l1*m2-((q2'-q1')* sin(q2-q1)*q1'*m2*l1*l2)+l2*l1*m2*q1'*q2'*sin(q2-q1)+cos(q2)*l2*m2*gf2+sin(q2)*l2*lamda1-lamda2*l2*cos(q2); Pt3= q3''*(J3+1/2*2*m3*(l3^2))+cos(q3)*l3*m3*g-f3-lamda1*s*sin(q3) b+cos(q3)*s*lamda2-cos(q3)*l3*lamda3 +lamda4*l3*sin(q3); Pt4= q4''*J4+2*(s4^2)*m4*q4''/2+q5''*cos(q4-q5)*s4*l5*m4((q4'-q5')*sin(q4-q5)*q5'*m4*l5*s4)+s4*l5*m4*q5'*q4'*sin(q4-q5) +cos(q4)*s4*m4*g-f4+lamda3*l4*cos(q4)+-sin(q4)*l4*lamda4;

Nguyễn Mạnh Cương

- 104 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Pt5= q5''*(m4*(l5^2)+J5+1/2*2*m5*(s1^2))-q4'/2*sin(q4-q5) *s4*l5*m4*q4'*2+q4''*cos(q4-q5)*s4*l5*m4 +cos(q5)*l5*m4*g +cos(q5)*s1*m5*g-f5+lamda3*l5*cos(q5)+-sin(q5)*l5*lamda4; Ptlk1= l3*sin(q3)-l4*sin(q4)-l5*sin(q5); Ptlk2= l3*cos(q3)-l4*cos(q4)-l5*cos(q5)-H; Ptlk3=l1*cos(q1)+l2*cos(q2)-s*cos(q3)-x; Ptlk4=l1*sin(q1)+l2*sin(q2)-s*sin(q3)-k; Vậy ta đã có một hệ gồm 9 phương trình cho 9 ẩn, trong đó có 5 ẩn là các tọa độ suy rộng q1, q2, q3 , q4, q5 và 4 ẩn là các nhân tử Lagrange lamda1, lamda, lamda3, lamda4. *) Các phương trình chuyển động theo nguyên lý phù hợp có dạng. Phương trình DTRq = 0 được sinh ra có dạng (-sin(q1)*l1*((sin(q4)*cos(q5)+-sin(q5)*cos(q4))*s*cos(q3)*l4*l5) +l1*cos(q1)*l5*l4*sin(q3)*s*sin(q4-q5))*Rq2+sin(q4-q5)*l5*l4*l2*s*sin(q2q3)*Rq1+Rq3*sin(q4-q5)*l4*l5*l2*l1*sin(q2-q1)+sin(q2-q1) *l1*l2*l5*l3*sin(q3-q5)*Rq4+Rq5*sin(q4-q3)*l4*l3*l2*l1*sin(q2-q1); trong đó mặc định các Rqi là các phản lực suy rộng ứng với tọa độ suy rộng qi. Ngoài ra ta vẫn có 5 phương trình chuyển động khác gồm 2 phương trình liên kết và 3 phương trình vi phân, tại các phương trình vi phân này sẽ không có nhân tử Lagrange mà thay vào đó là phản lực suy rộng. Pt1 = (-(q2'^2*m2*l1*l2*sin(q2-q1)))+q2''/2*cos(q2-q1)*l2*l1*m2*2 +q1''*(J1+1/2*2*m1*(l1^2)+l1^2*m2)+g*m1*l1*cos(q1)+g*m2*l1*cos(q1)f1+Rq1; Pt2= q2''*J2+2*(l2^2)*m2*q2''/2+q1''*cos(q2-q1)*l2*l1*m2-((q2'-q1') *sin(q2-q1)*q1'*m2*l1*l2)+l2*l1*m2*q1'*q2'*sin(q2-q1)+cos(q2)*l2*m2*gf2+Rq2; Pt3=q3''*(J3+1/2*2*m3*(l3^2))+cos(q3)*l3*m3*g-f3+Rq3; Pt4=q4''*J4+2*(s4^2)*m4*q4''/2+q5''*cos(q4-q5)*s4*l5*m4((q4'-q5')*sin(q4-q5)*q5'*m4*l5*s4)+s4*l5*m4*q5'*q4'*sin(q4q5)+cos(q4)*s4*m4*g-f4+Rq4; Pt5=q5''*(m4*(l5^2)+J5+1/2*2*m5*(s1^2))-q4'/2*sin(q4q5)*s4*l5*m4*q4'*2+q4''*cos(q4q5)*s4*l5*m4+cos(q5)*l5*m4*g+cos(q5)*s1*m5*g-f5+Rq5; Nguyễn Mạnh Cương

- 105 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Ptlk1= l3*sin(q3)-l4*sin(q4)-l5*sin(q5); Ptlk2= l3*cos(q3)-l4*cos(q4)-l5*cos(q5)-H; Ptlk3=l1*cos(q1)+l2*cos(q2)-s*cos(q3)-x; Ptlk4=l1*sin(q1)+l2*sin(q2)-s*sin(q3)-k; Vậy ta có một hệ gồm 10 phương trinh cho 6 ẩn số trong đó có 5 ẩn là các tọa độ suy rộng q1, q2, q3, q4, q5 và 5 ẩn là các phản lực suy rộng ứng với 3 tọa độ đó Rq1, Rq2, Rq3.,, Rq4, Rq5. *) Các phương trình rút gọn khi nhân ma trận không gian bù vào ma trận phương trình liên kết. Pt1 = s*sin(q3)*((sin(q4))^2)*(l4^2)*cos(q5)*l5*(((q2'^2*m2*l1*l2*sin(q2-q1)))+q2''/2*cos(q2q1)*l2*l1*m2*2+q1''*(J1+1/2*2*m1*(l1^2)+l1^2*m2) +g*m1*l1*cos(q1)+g*m2*l1*cos(q1)-f1)+s*cos(q3)*((sin(q5))^2)*(l5^2)* cos(q1)*l1*(q2''*J2+2*(l2^2)*m2*q2''/2+q1''*cos(q2-q1)*l2*l1*m2((q2'-q1')*sin(q2-q1)*q1'*m2*l1*l2)+l2*l1*m2*q1'*q2'*sin(q2q1)+cos(q2)*l2*m2*gf2)+(l2*sin(q2)*((sin(q4))^2)*(l4^2)*sin(q1)*l1+l1*cos(q1)*((sin(q5))^2)*(l5^2) *sin(q2)*l2)*(q3''*(J3+1/2*2*m3*(l3^2))+cos(q3)*l3*m3*g-f3)+((((sin(q1)*(l1^2)*s*sin(q1-q3)))-cos(q1)*l1*sin(q2-q1)*l1*l2)*l1*cos(q1)(l1*sin(q1)*((sin(q5))^2)*(l5^2)*sin(q2)*l2))*(q4''*J4+2*(s4^2)*m4*q4''/2+q5''* cos(q4-q5)*s4*l5*m4-((q4'-q5')*sin(q4-q5)*q5'*m4*l5*s4) +s4*l5*m4* q5'*q4'*sin(q4-q5) +cos(q4)*s4*m4*g-f4)+(((-(sin(q1)*(l1^2)* s*sin(q1-q3))) -cos(q1)*l1*sin(q2-q1)*l1*l2)*l1*cos(q1)-(l1*sin(q1)* ((sin(q4))^2)*(l4^2) *sin(q2)*l2))*(q5''*(m4*(l5^2)+J5+1/2*2*m5*(s1^2))-q4'/2*sin(q4q5)*s4*l5*m4*q4'*2+q4''*cos(q4-q5)*s4*l5*m4+cos(q5)*l5*m4*g +cos(q5)*s1*m5*g-f5); Ptlk1= l3*sin(q3)-l4*sin(q4)-l5*sin(q5); Ptlk2= l3*cos(q3)-l4*cos(q4)-l5*cos(q5)-H; Ptlk3=l1*cos(q1)+l2*cos(q2)-s*cos(q3)-x; Ptlk4=l1*sin(q1)+l2*sin(q2)-s*sin(q3)-k;

Nguyễn Mạnh Cương

- 106 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Như vậy ta thiết lập được đúng 5 phương trình chuyển động trong đó có một phương trình vi phân. Các ẩn ở đây cũng chính là các tọa độ suy rộng. Ta thực hiện mô phỏng để so sánh các phương trình với các thông số của hệ như sau:

J1=0.4 m1=0.5 s1=0.1 g=9.81 f1=0 l1=0.5

J2=0.6 J3=0.7 s2=0.2 m3=2 m2=1.5 s3=0.25 l3=1 f3=0 q1=0 f2=0 H=2 q2 = .4269870762 l2=1 q3 = -6.891809767 q4 = -3.927178666 q5 = 4.829850462

J4=0.3 J5=0.2 s4=0.7 s5=0.3 m4=0.5 m5=0.15 l4=2 l5=2 f4=0 f5=0 q1'=.3 q3' = .1444347575 q4' = -.8721074471e-1 q5' = -.2053083819e-1 q2' = -.9970178009e-1

x=1 s=0.5 h=1.2 k=0.7

Kết quả q4 mô phỏng ứng với phương pháp Lagrange dạng nhân tử có dạng:

Nguyễn Mạnh Cương

- 107 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Kết quả q4 mô phỏng ứng với giải các phương trình thuộc nguyên lý phù hợp có dạng:

Kết quả q4 mô phỏng ứng với giải các phương trình dưới dạng rút gọn

Nguyễn Mạnh Cương

- 108 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

5.2.3.Dao bào ngang Các thông số của hệ được mô tả dưới hình vẽ (hình 5-6): l3 = 1.607780501 phi4 = -5.060709200 phi5 = 6.936512300 x6 = .3726951076 phi2=0.75

phi5'=2.343680952 l3'= 1.071742868 x6'=-3.123114159 phi4'=1.304280029 phi2'=3.14

J02=0.1 m2=0.1 e2=0.07 g=9.81 l2=.75 M=5 m3=0.1

J04=0.5 m4=0.5 e4=0.3 l4=4 JB=0.2 m5=0.1 e5=0.1

l5=1.25 m6=0.2 F=50 H1=1 H2=2

Vật 5 Vật 6

Vật 3 Vật 2

Vật 4

Hình 5-6: Dao bào ngang

Nguyễn Mạnh Cương

- 109 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Hệ có một bậc tự do, chương trình Linkbreak đưa ra giải pháp là tách các khớp 3-2, 3-4. Từ đó ta có phương trình liên kết có dạng: -l4*sin(phi4)+l5*sin(phi5)+H1+H2; l4*cos(phi4)-l5*cos(phi5)-x6; l2*cos(phi2)-l3*cos(phi4); l2*sin(phi2)-l3*sin(phi4)+H1; Từ đó file *.mbs đưa vào có dạng VAR=phi2,l3,phi4,phi5,x6; BODY { NAME=vat2; MASS=m2; PREBODY=ground; MOVE [ ROT_Z= phi2; ] IC=0,0,0,0,0,0,0,0,J02; CENTER=e2,0,0; } BODY { NAME=vat4; MASS=m4; PREBODY=ground; MOVE [ ROT_Z=phi4; ] IC=0,0,0,0,0,0,0,0,J04; CENTER=e2,0,0; } BODY { NAME=vat3; MASS=m3; PREBODY=vat4; Nguyễn Mạnh Cương

- 110 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

MOVE [ TRANZ_X=l3; ] IC=0,0,0,0,0,0,0,0,0; CENTER=0,0,0; } BODY { NAME=vat5; MASS=m5; PREBODY=vat6; MOVE [ ROT_Z= phi5; ] IC=0,0,0,0,0,0,0,0,JB; CENTER=e5,0,0; } BODY { NAME=vat6; MASS=m6; PREBODY=ground; MOVE [ TRANZ_X=x6; ] IC=0,0,0,0,0,0,0,0,0; CENTER=s1,0,0; } FORCE { f1; f2; f3; f4; f5; } Nguyễn Mạnh Cương

- 111 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

CONSTRAIN { -l4*sin(phi4)+l5*sin(phi5)+H1+H2; l4*cos(phi4)-l5*cos(phi5)-x6; l2*cos(phi2)-l3*cos(phi4); l2*sin(phi2)-l3*sin(phi4)+H1; } Ta lựa chọn 5 tọa độ suy rộng cho cơ hệ: phi2,l3,phi4,phi5,x6 , từ đó có các phương trình chuyển động là *) Phương trình chuyển động viết dưới dạng các phương trìnhLagrange dạng nhân tử Pt1=phi2''*(J02+1/2*2*m2*(e2^2))+cos(phi2)*e2*m2*g-M +sin(phi2)*l2*lamda3 -lamda4*l2*cos(phi2); Pt2=-(l3*((cos(phi4))^2)*(phi4'^2)*m3)+l3''*(m3*((cos(phi4))^2+(sin(phi4))^2))(l3*m3*(phi4'^2))+g*m3*sin(phi4)+m3*phi4'*cos(phi4)*(phi4'*cos(phi4)*l3+l3' *sin(phi4))-m3*phi4'*cos(phi4)*sin(phi4)*l3'-((-sin(phi4)/2*cos(phi4) +sin(phi4)*cos(phi4)/2)*m3*l3'*phi4'*2)+lamda3*cos(phi4)+sin(phi4)*lamda4; Pt3=l3'*l3*m3*phi4'*2+l3''*(m3*(-sin(phi4)*l3*cos(phi4) +cos(phi4)*l3*sin(phi4)))+((-phi4'*cos(phi4)*l3-l3'*sin(phi4))*cos(phi4) +(phi4'*cos(phi4)*l3+l3'*sin(phi4))*cos(phi4))*l3'*m3+phi4''*(J04+1/2*2*m4* (e2^2)+l3^2*m3)-(1/2*(2*(-sin(phi4)*(-sin(phi4)*l3)-(l3*((sin(phi4))^2))) *m3*phi4'*l3'))+cos(phi4)*m4*e2*g+cos(phi4)*l3*m3*g+lamda1*l4*cos(phi4) +lamda2*l4*sin(phi4)-lamda3*l3*sin(phi4)+cos(phi4)*l3*lamda4; Pt4=phi5''*JB+2*m5*(e5^2)*phi5''/2-phi5'/2*cos(phi5)*e5*m5*x6'-sin (phi5)*e5*m5*x6''/2-(m5*e5*sin(phi5)*x6''/2 +cos(phi5)/2*phi5'*e5*m5*x6') +e5*m5*x6'*phi5'*cos(phi5)+cos(phi5)*e5*m5*g-cos(phi5)*l5*lamda1+sin(phi5)*l5*lamda2; Pt5=x6''*m6+sin(phi5)*e5*m5*phi5''/2+phi5'/2*cos(phi5)*e5*m5*phi5'+x6''/2* m5*2-(phi5''/2*m5*e5*sin(phi5)+cos(phi5)/2*e5*m5*(phi5'^2))-F+lamda2; Ptlk1= -l4*sin(phi4)+l5*sin(phi5)+H1+H2; Ptlk2= l4*cos(phi4)-l5*cos(phi5)-x6; Ptlk3= l2*cos(phi2)-l3*cos(phi4); Nguyễn Mạnh Cương

- 112 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Ptlk4= l2*sin(phi2)-l3*sin(phi4)+H1; Vậy ta đã có một hệ gồm 9 phương trình cho 9 ẩn, trong đó có 5 ẩn là các tọa độ suy rộng phi2, l3, phi4, phi5, x6 và 4 ẩn là các nhân tử Lagrange lamda1, lamda, lamda3, lamda4. *) Các phương trình theo nguyên lý phù hợp có dạng Pt1=phi2''*(J02+1/2*2*m2*(e2^2))+cos(phi2)*e2*m2*g-M+Rphi2; Pt2=-(l3*((cos(phi4))^2)*(phi4'^2)*m3)+l3''*(m3*((cos(phi4))^2+(sin(phi4))^2))(l3*m3*(phi4'^2))+g*m3*sin(phi4)+m3*phi4'*cos(phi4)*(phi4'*cos(phi4)*l3+l3' *sin(phi4))-m3*phi4'*cos(phi4)*sin(phi4)*l3'-((-sin(phi4)/2*cos(phi4) +sin(phi4)*cos(phi4)/2)*m3*l3'*phi4'*2)+Rl3; Pt3=l3'*l3*m3*phi4'*2+l3''*(m3*(-sin(phi4)*l3*cos(phi4) +cos(phi4)*l3*sin(phi4)))+((-phi4'*cos(phi4)*l3-l3'*sin(phi4))*cos(phi4) +(phi4'*cos(phi4)*l3+l3'*sin(phi4))*cos(phi4))*l3'*m3+phi4''*(J04+1/2*2*m4* (e2^2)+l3^2*m3)-(1/2*(2*(-sin(phi4)*(-sin(phi4)*l3)(l3*((sin(phi4))^2)))*m3*phi4'*l3'))+cos(phi4)*m4*e2*g+cos(phi4)*l3*m3*g+R phi4; Pt4=phi5''*JB+2*m5*(e5^2)*phi5''/2-phi5'/2*cos(phi5)*e5*m5*x6'-sin (phi5)*e5*m5*x6''/2-(m5*e5*sin(phi5)*x6''/2 +cos(phi5)/2*phi5'*e5*m5*x6') +e5*m5*x6'*phi5'*cos(phi5)+cos(phi5)*e5*m5*g+Rphi5; Pt5=x6''*m6+sin(phi5)*e5*m5*phi5''/2+phi5'/2*cos(phi5)*e5*m5*phi5'+x6''/2* m5*2-(phi5''/2*m5*e5*sin(phi5)+cos(phi5)/2*e5*m5*(phi5'^2))-F+Rx6; Ptlk1= -l4*sin(phi4)+l5*sin(phi5)+H1+H2; Ptlk2= l4*cos(phi4)-l5*cos(phi5)-x6; Ptlk3= l2*cos(phi2)-l3*cos(phi4); Ptlk4= l2*sin(phi2)-l3*sin(phi4)+H1; Phương trình DTRq = 0 được sinh ra như sau: Rl3*l5*cos(phi5)*l2*l3*sin(phi2-phi4)-(Rphi2*(l3*((cos(phi4))^2) +l3*((sin(phi4))^2))*l5*cos(phi5))-Rphi4*l5*cos(phi5)*l2*cos(phi2-phi4)(Rphi5*(l4*cos(phi4)*sin(phi4)*sin(phi2)*l2+l4*((cos(phi4))^2)*cos(phi2)*l2))+ Rx6*l2*l5*l4*sin(phi4-phi5)*(cos(phi4)*cos(phi2)-(-sin(phi2)*sin(phi4))); Nguyễn Mạnh Cương

- 113 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Vậy ta có một hệ gồm 10 phương trinh cho 6 ẩn số trong đó có 5 ẩn là các tọa độ suy rộng phi2, l3, phi4, phi5, x6 và 5 ẩn là các phản lực suy rộng ứng với 3 tọa độ đó Rphi2, Rl3, Rphi4, Rphi5 , Rx6. *) Các phương trình rút gọn khi nhân ma trận không gian bù vào ma trận phương trình liên kết. Pt1= (-(l3*((cos(phi4))^2)+l3*((sin(phi4))^2))*l5*cos(phi5))*(phi2''*(J02 +1/2*2*m2* (e2^2))+cos(phi2)*e2*m2*g-M)+l5*cos(phi5)*l2*l3*sin(phi2phi4)*(-(l3*((cos(phi4))^2)*(phi4'^2)*m3) +l3''*(m3*((cos(phi4))^2 +(sin(phi4))^2))-(l3*m3*(phi4'^2))+g*m3*sin(phi4)+m3*phi4'*cos(phi4) *(phi4'*cos(phi4)*l3+l3'*sin(phi4))-m3*phi4'*cos(phi4)*sin(phi4)*l3'-((-sin (phi4)/2*cos(phi4)+sin(phi4)*cos(phi4)/2)*m3*l3'*phi4'*2))l5*cos(phi5)*l2*cos(phi2-phi4)*(l3'*l3*m3*phi4'*2+l3''*(m3*(sin(phi4)*l3*cos(phi4)+cos(phi4)*l3*sin(phi4)))+((-phi4'*cos(phi4)*l3l3'*sin(phi4))*cos(phi4)+(phi4'*cos(phi4)*l3+l3'*sin(phi4))*cos(phi4))*l3'*m3+ phi4''*(J04+1/2*2*m4*(e2^2)+l3^2*m3)-(1/2*(2*(-sin(phi4)*(-sin(phi4)*l3)(l3*((sin(phi4))^2)))*m3*phi4'*l3'))+cos(phi4)*m4*e2*g+cos(phi4)*l3*m3*g)(l4*cos(phi4)*sin(phi4)*sin(phi2)*l2+l4*((cos(phi4))^2)*cos(phi2)*l2)*(phi5''*J B+2*m5*(e5^2)*phi5''/2-phi5'/2*cos(phi5)*e5*m5*x6'-sin(phi5)*e5*m5*x6''/2(m5*e5*sin(phi5)*x6''/2+cos(phi5)/2*phi5'*e5*m5*x6')+e5*m5*x6'*phi5'*cos(p hi5)+cos(phi5)*e5*m5*g)+l2*l5*l4*sin(phi4-phi5)*(cos(phi4)*cos(phi2)-(-sin (phi2)*sin(phi4)))*(x6''*m6+sin(phi5)*e5*m5*phi5''/2+phi5'/2*cos(phi5)*e5*m5 *phi5'+x6''/2*m5*2-(phi5''/2*m5*e5*sin(phi5) +cos(phi5)/2*e5*m5*(phi5'^2))F); Ptlk1= -l4*sin(phi4)+l5*sin(phi5)+H1+H2; Ptlk2= l4*cos(phi4)-l5*cos(phi5)-x6; Ptlk3= l2*cos(phi2)-l3*cos(phi4); Ptlk4= l2*sin(phi2)-l3*sin(phi4)+H1; Như vậy ta thiết lập được đúng 5 phương trình chuyển động trong đó có một phương trình vi phân. Các ẩn ở đây cũng chính là các tọa độ suy rộng. Dưới đây là đồ thị mô phỏng chuyển động của x6 ứng với 3 phương pháp xây dựng phương trình chuyển động

Nguyễn Mạnh Cương

- 114 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Kết quả q4 mô phỏng ứng với phương pháp Lagrange dạng nhân tử có dạng:

Kết quả q4 mô phỏng ứng với giải các phương trình thuộc nguyên lý phù hợp có dạng:

Nguyễn Mạnh Cương

- 115 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Kết quả q4 mô phỏng ứng với giải các phương trình dưới dạng rút gọn

5.2.4.Cơ cấu phối hơi đầu máy xe lửa Ta sẽ thực hiện thành lập các phương trình chuyển động cho hệ cơ cấu phối hơi đầu máy xe lửa. Do kích thước của luận văn nên ta sẽ không đưa ra phần mô phỏng mà chỉ đưa ra các phương trình chuyển động của hệ vật. Mô hình cơ cấu phối hơi đầu máy xe lửa như hình vẽ (hình 5-7). Hệ có 2 bậc tự do, tuy nhiên ta chọn bộ tọa độ suy rộng dư gồm có 10 tọa độ ứng với chuyển động của các khâu trong cơ hệ: phi1, phi2, phi3, phi4, phi5, phi6, phi7, phi8, S9, S10. Các tọa độ này được trình bày như trên hình vẽ 5-7.

Nguyễn Mạnh Cương

- 116 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Phi7 7 X9 Phi6 9

6 Phi8

X10

8 10 Phi5

Phi1 2

1 Phi2

5

Phi3 4

3

Phi4

Hình 5-7: Mô hình cơ cấu phối hơi đầu máy xe lửa

Sau khi đưa vào chương trình linkBreak để tách vật ta thu được kết quả các khớp cần phải tách như sau: 3-4, 2-10, 3-6, 6-8. Từ đó ta thu được 4 cặp phương trình liên kết ứng với các liên kết bị phá vỡ Phá vỡ liên kết 2-10 l1*cos(phi1)+l2*cos(phi2)-S10 l1*sin(phi1)+l2*sin(phi2) Phá vỡ liên kết 3-4 l1*cos(phi1)+x2*cos(phi2)+l34*cos(phi3)-l5*cos(phi5)-l43*cos(phi4)-S10 l1*sin(phi1)+x2*sin(phi2)+l34*sin(phi3)-l5*sin(phi5)-l4*sin(phi4)-h1 Phá vỡ liên kết 3-6 l1*cos(phi1)+x2*cos(phi2)+l36*cos(phi3)-l6*cos(phi6)-l7*cos(phi7 l1*sin(phi1)+x2*sin(phi2)+l36*sin(phi3)-l6*sin(phi6)-l7*sin(phi7)+h1 Phá vỡ liên kết 6-8 Nguyễn Mạnh Cương

- 117 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

l6*cos(phi6)+x7*cos(phi7)-l8*cos(phi8)-S9 l6*sin(phi6)+x7*sin(phi7)-l8*sin(phi8)+h3 Từ đó ta có file *.mbs để đưa vào chương trình MBSRun như sau: PROJECT=; DECRIPTION=; USER=; VAR=phi1,phi2,phi3,phi4,phi5,phi6,phi7,phi8,S9,S10; BODY TRANZ_X= l2; { ROT_Z=phi3; NAME=vat1; ] MASS=m1; IC=0,0,0,0,0,0,0,0,J3 PREBODY=ground; CENTER=s3,0,0; } MOVE BODY [ { ROT_Z= phi1; NAME=vat10; ] MASS=m10; IC=0,0,0,0,0,0,0,0,J1; PREBODY=ground; CENTER=0,0,0; MOVE } [ BODY TRANZ_X=S10; { ] NAME=vat2; IC=0,0,0,0,0,0,0,0,0; MASS=m2; CENTER=0,0,0; PREBODY=vat1; } BODY MOVE { [ NAME=vat5; TRANZ_X=l1; MASS=m5; ROT_Z=phi2; PREBODY=vat10; ] MOVE IC=0,0,0,0,0,0,0,0,J2; [ CENTER=s2,0,0; ROT_Z=phi5; } ] BODY IC=0,0,0,0,0,0,0,0,J5; { CENTER=s5,0,0; NAME=vat3; } MASS=m3; PREBODY=vat2; BODY { MOVE NAME=vat4; [ MASS=m4; Nguyễn Mạnh Cương

- 118 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

PREBODY=vat5; MOVE [ TRANZ_X=l5; ROT_Z= phi4; ] IC=0,0,0,0,0,0,0,0,J4; CENTER=s4,0,0;

NAME=vat9; MASS=m9; PREBODY=ground; MOVE [ TRANZ_X= S9; ] IC=0,0,0,0,0,0,0,0,0; CENTER=0,0,0;

} BODY { NAME=vat7; MASS=m7; PREBODY=ground; MOVE [ TRANZ_X=x7; TRANZ_Y=y7; ROT_Z=phi7; ] IC=0,0,0,0,0,0,0,0,J7; CENTER=s7,0,0; } BODY { NAME=vat6; MASS=m6; PREBODY=vat7; MOVE [ TRANZ_X= l7; ROT_Z=phi6; ] IC=0,0,0,0,0,0,0,0,J7; CENTER=s7,0,0; } BODY {

} BODY { NAME=vat8; MASS=m8; PREBODY=vat9; MOVE [ ROT_Z=phi8; ] IC=0,0,0,0,0,0,0,0,J8 CENTER=s8,0,0; } FORCE { f1; 0; 0; 0; 0; 0; f7; 0; 0; 0; }

CONSTRAIN { l1*cos(phi1)+l2*cos(phi2)-S10; Nguyễn Mạnh Cương

- 119 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

l1*sin(phi1)+l2*sin(phi2); l1*cos(phi1)+x2*cos(phi2)+l34*cos(phi3)-l5*cos(phi5)-l43*cos(phi4)-S10; l1*sin(phi1)+x2*sin(phi2)+l34*sin(phi3)-l5*sin(phi5)-l4*sin(phi4)-h1; l1*cos(phi1)+x2*cos(phi2)+l36*cos(phi3)-l6*cos(phi6)-l7*cos(phi7 l1*sin(phi1)+x2*sin(phi2)+l36*sin(phi3)-l6*sin(phi6)-l7*sin(phi7)+h1 l6*cos(phi6)+x7*cos(phi7)-l8*cos(phi8)-S9; l6*sin(phi6)+x7*sin(phi7)-l8*sin(phi8)+h3; } Sau khi đưa vào chương trình MBSRun ta thu được kết quả như sau: Biểu thức động năng: T= J/2*(phi8'^2)+(S9'*m8/2-phi8'/2*sin(phi8)*s8*m8)*S9'+(-S9'/2*sin (phi8)*s8*m8+s8^2/2*m8*phi8')*phi8'+S9'^2/2*m9+J7*(phi6'^2/2)+phi7'*(l7^2/2*m6* phi7'+phi6'/2*cos(phi6-phi7)*s7*l7*m6)+(phi7'/2*cos(phi6-phi7)*s7*l7 *m6+s7^2/2 *m6*phi6')*phi6'+1/2*J7*(phi7'^2)+phi7'^2*m7*(s7^2/2)+J4/2*(phi4'^2)+S10'*(S10'/2 *m4-phi5'/2*sin(phi5)*l5*m4-sin(phi4)/2*s4*m4*phi4')+(-S10'/2*sin(phi5)*l5 *m4+l5^2/2*m4*phi5'+phi4'/2*cos(phi4-phi5)*s4*l5*m4) *phi5'+(phi5'/2*cos(phi4phi5)*s4*l5*m4-S10'/2*m4*s4*sin(phi4)+s4^2/2 *m4*phi4')*phi4' +1/2*J5*(phi5'^2) +S10'*(S10'*m5/2-phi5'/2*sin(phi5) *s5*m5)+(-S10'/2*sin(phi5)*s5*m5 +s5^2/2*m5* phi5')*phi5' +m10*(S10'^2/2) +phi3'^2/2*J+(l1^2/2*m3*phi1'+phi2'/2*cos(phi2-phi1) *l2 *l1*m3+cos(phi3-phi1)/2*s3*l1*m3*phi3')*phi1'+(phi1'/2*cos(phi2-phi1)*l2 *l1*m3+ l2^2/2*m3 *phi2'+cos(phi3-phi2)/2*s3*l2*m3*phi3')*phi2'+(cos(phi3phi1)/2*s3*l1*m3 *phi1'+phi2'/2*cos(phi3-phi2)*s3*l2*m3 +s3^2/2*m3*phi3') *phi3'+phi2'^2/2 *J2+(l1^2/2*m2*phi1'+phi2'/2*cos(phi2-phi1)*s2*l1*m2)*phi1' +(phi1'/2* cos(phi2-phi1)*s2*l1*m2+s2^2/2*m2*phi2')*phi2'+phi1'^2/2*J1

Biểu thức thế năng của hệ có dạng: Π = m2*(sin(phi2)*s2+sin(phi1)*l1)*g+m3*(sin(phi3)*s3+sin(phi2)*l2+sin(phi1) *l1) *g+sin(phi5)*s5*m5*g+m4*(sin(phi4)*s4+sin(phi5)*l5)*g+m7*(sin(phi7)*s7+y7) *g+m6*(sin(phi6)*s7+sin(phi7)*l7+y7)*g+sin(phi8)*s8*m8*g

Từ đó phương trình Lagrange của hệ sinh ra có dạng: Phương trình Lagrange dạng nhân tử cho tọa độ suy rộng phi1 Pt1 = phi1'*sin(phi2-phi1)*l2*l1*m3*phi2'+phi3''*m3*l1*s3*cos(phi3-phi1) +phi3'*m3*l1*s3*phi1'*sin(phi3-phi1)+phi2''*(cos(phi2-phi1)*s2*l1*m2+cos(phi2phi1)*l2*l1*m3)+sin(phi2-phi1)*phi1'*s2*l1*m2*phi2'+phi1''*(J1+l1^2*m2+l1^2*m3) +s2*l1*m2*phi1'*phi2'*sin(phi1-phi2)+sin(phi1-phi3)/2*s3*l1*m3*phi1'*phi3' +sin(phi1-phi2)*l2*l1*m3*phi1'*phi2'/2+(cos(phi3)*sin(phi1)/2-cos(phi1)/2*sin(phi3)) *s3*l1*m3*phi3'*phi1'+cos(phi1)*l1*m2*g+cos(phi1)*l1*m3*gf1+m3*l1*l2*sin(phi1-phi2)*(phi2'^2)+sin(phi1-phi3)*s3*l1*m3*(phi3'^2)+sin(phi1phi2)*s2*l1 *m2*(phi2' ^2) +(cos(phi2)*sin(phi1)/2-cos(phi1)/2*sin(phi2))*l2*l1*

Nguyễn Mạnh Cương

- 120 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

m3*phi2'*phi1'+ lamda0*l1*sin(phi1)-cos(phi1)*l1*lamda1+lamda2*l1*sin(phi1)cos(phi1)*l1*lamda3

Phương trình Lagrange dạng nhân tử cho tọa độ suy rộng phi2 Pt2 = phi1'^2*m3*l1*l2*sin(phi2-phi1)+phi3''*cos(phi3-phi2)*s3*l2*m3 +sin(phi3-phi2)*phi2'*s3*l2*m3*phi3'+phi1''*(m2*l1*s2*cos(phi2-phi1)+cos(phi2phi1)*l2*l1*m3)+m2*l1*s2*sin(phi2-phi1)*(phi1'^2)+phi2''*(m2*(s2^2)+J2+l2^2*m3) +s2/2*l1*m2*phi1'*phi2'*sin(phi2-phi1)*2+phi3'*phi2'*m3*l2*s3*sin(phi2-phi3)/2+ phi1'/2*phi2'*m3*l1*l2*sin(phi2-phi1)+(cos(phi3)*sin(phi2)/2-cos(phi2)/2*sin(phi3))* s3*l2 *m3*phi3'*phi2'+cos(phi2)*s2*m2*g+g*m3*l2*cos(phi2)+sin(phi1-phi2)*phi2' *l2*l1*m3*phi1'+sin(phi2-phi3)*s3*l2*m3*(phi3'^2)+phi1'*m2*l1*s2*sin(phi1phi2)*phi2'+(cos(phi1)*sin(phi2)/2-cos(phi2)/2*sin(phi1))*l2*l1*m3* phi1'*phi2'+lamda0*l2*sin(phi2)-cos(phi2)*l2*lamda1+lamda2*x2*sin(phi2)cos(phi2)*x2*lamda3

Phương trình Lagrange dạng nhân tử cho tọa độ suy rộng phi3 Pt3 = phi1'^2*m3*l1*s3*sin(phi3-phi1)/2+phi1''*cos(phi3-phi1)*s3*l1*m3 +phi2''*cos(phi3-phi2)*s3*l2*m3+phi3''*(s3^2*m3+J)+phi2'*sin(phi3-phi2)*s3*l2 *m3*phi3'/2+phi3'*sin(phi3-phi1)*s3*l1*m3*phi1'+g*m3*s3*cos(phi3) +phi1'^2/2* sin(phi3-phi1)*s3*l1*m3+m3*l2*s3*(phi2'^2)*sin(phi3-phi2)+phi1'/2*m3*l1*s3*phi3' *sin(phi1-phi3)+(cos(phi2)*sin(phi3)/2-cos(phi3)/2*sin(phi2))*s3*l2*m3*phi2'*phi3' +m3/2*l1*s3*sin(phi1-phi3)*phi3'*phi1'+sin(phi2-phi3)*phi3'*phi2'*s3*l2*m3 +lamda2*l34*sin(phi3)-cos(phi3)*l34*lamda3

Phương trình Lagrange dạng nhân tử cho tọa độ suy rộng phi4 Pt4 = phi5'^2*m4*l5*s4*sin(phi4-phi5)+phi5''*cos(phi4-phi5)*s4*l5*m4+ phi4''*(s4^2*m4+J4)+cos(phi4)*s4*m4*g+sin(phi5phi4)*phi4'*s4*l5*m4*phi5'-S10''*m4*s4*sin(phi4)+(cos(phi5)*sin(phi4)/2cos(phi4)/2*sin(phi5))*s4*l5*m4*phi5'* phi4'*2lamda2*l43*sin(phi4)+cos(phi4)*l4*lamda3-lamda4*l4*sin(phi4)+ cos(phi4)*l4*lamda5

Phương trình Lagrange dạng nhân tử cho tọa độ suy rộng phi5 Pt5 = phi4''*cos(phi4-phi5)*s4*l5*m4+phi4'*m4*l5*s4*sin(phi4-phi5)*phi5'+ phi5''*(s5^2*m5+J5+m4*(l5^2))+sin(phi5-phi4)*s4*l5*m4*phi5'*phi4'/2 +g*m5*s5 *cos(phi5) +g*m4*l5*cos(phi5)+m4*l5*s4*sin(phi5-phi4)*(phi4'^2)-(S10''*(m5*s5* sin(phi5)+sin(phi5)*l5*m4))+(cos(phi4)*sin(phi5)/2-cos(phi5)/2*sin(phi4)) *s4*l5*m4*phi4'*phi5'-lamda2*l5*sin(phi5)+ cos(phi5)*l5*lamda3-lamda4*l5* sin(phi5) +cos(phi5)*l5*lamda5

Phương trình Lagrange dạng nhân tử cho tọa độ suy rộng phi6 Pt6 = phi7''*m6*l7*s7*cos(phi6-phi7)+sin(phi6-phi7)*s7*l7*m6*(phi7'^2) +phi6''*(s7^2*m6+J7)+sin(phi6-phi7)*phi6'*phi7'*m6*l7*s7 +cos(phi6)*s7*m6*g+sin(phi7-phi6)*phi6'*s7*l7*m6*phi7'+lamda4*l6*sin(phi6)cos(phi6)*l6*lamda5+lamda6*l6*sin(phi6)-cos(phi6)*l6*lamda7

Nguyễn Mạnh Cương

- 121 -

KSTN-CĐT-K48

Chương V: Phần mềm và Ví dụ

BỘ MÔN CƠ HỌC ỨNG DỤNG

Phương trình Lagrange dạng nhân tử cho tọa độ suy rộng phi7 Pt7 = phi6''*m6*l7*s7*cos(phi6-phi7)+sin(phi6-phi7)*phi7'*s7*l7*m6*phi6'+ phi7''*(s7^2*m7+J7+m6*(l7^2))+s7*l7*m6*phi7'*phi6'*sin(phi7-phi6)+ cos(phi7)*s7*g*m7 +cos(phi7)*l7*m6*g-f7+sin(phi7-phi6)*s7*l7*m6*(phi6'^2) +lamda4*l7*sin(phi7)-cos(phi7)*l7*lamda5+lamda6*x7*sin(phi7)cos(phi7)*x7*lamda7

Phương trình Lagrange dạng nhân tử cho tọa độ suy rộng phi8 Pt8= phi8''*(J+s8^2*m8)-S9'*m8*s8*cos(phi8)*phi8' +cos(phi8)*phi8'*S9'*m8*s8+g*m8*s8*cos(phi8)-S9''*m8*s8*sin(phi8)lamda6*l8*sin(phi8)+cos(phi8)*l8*lamda7

Phương trình Lagrange dạng nhân tử cho tọa độ suy rộng S9 Pt9= S9''*(m9+m8)-(phi8'^2/2*m8*s8*cos(phi8))-phi8''*sin(phi8)*s8*m8phi8'/2*cos(phi8)*s8*m8*phi8'+lamda6

Phương trình Lagrange dạng nhân tử cho tọa độ suy rộng S10 Pt10= S10''*(m10+m5+m4)-(cos(phi5)/2*s5*m5*(phi5'^2))-phi5''/2*m5*s5 *sin(phi5)-(phi5''*(sin(phi5)*s5*m5/2+sin(phi5)/2*l5*m4))-phi5'/2*m5*s5*cos(phi5) *phi5 '-(cos(phi5)*l5*m4*(phi5'^2/2))-phi4''*sin(phi4)*s4*m4-phi5''/2*m4*l5*sin(phi5)phi5'*m4*l5*cos(phi5)*phi5'/2-(m4*s4*cos(phi4)*(phi4'^2))+lamda0+lamda2+lamda4 Vậy ta thu được một hệ gồm có 18 phương trình trong đó có 10 phương trình Lagrange dạng nhân tử và 8 phương trình liên kết cho 18 ẩn: phi1, phi2, phi3, phi4,

phi5, phi6, phi7, phi8, S9, S10, và các nhân tử Lagrange: lamda0, lamda1, lamda2, lamda 3, lamda 4, lamda 5, lamda 6, lamda 7.

Nguyễn Mạnh Cương

- 122 -

KSTN-CĐT-K48

Chương VI: Tổng kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

Chương VI: Tổng kết. 1. Các kết quả đạt được Sau thời gian thực hiện, đồ án đã đạt được những mục tiêu nhắm tới: -

Đưa ra chương trình có thể tách liên kết tự động hoặc cho phép người dùng có thể thao tác tự tách liên kết. Sau đó chương trình đưa ra các phương trình tại vị trí liên kết bị tách.

-

Phát triển chương trình xây dựng phương trình chuyển động cho các hệ nhiều vật một cách tự động. Giờ đây người dùng có thể kiểm tra hoạt động của các mô hình tính toán bằng cách xây dựng các tệp thông tin theo định dạng của chương trình và đưa vào MBSRun để sinh ra các phương trình chuyển động.

-

Phát triển và xây dựng thành công 2 giải thuật xây dựng các ma trận không gian bù Null Space.

-

Phát triển và đóng gói thư viên Expression.dll sử dụng để thực hiện các phép biến đổi Symbolic, tạo điều kiện cho người dùng sau này sẽ sử dụng để phát triển hoàn thiện hơn và phù hợp hơn.

2. Khả năng phát triển của đồ án Đồ án đã hoàn thành được các mục tiêu đề ra tuy nhiên nếu có thời gian và điều kiện cho phép, đồ án có thể phát triển ở mức độ cao hơn: -

Xây dựng chương trình cho phép chuyển trực tiếp từ file AutoCad, hoặc SolidWorks ra file thông tin *.data để đưa vào chương trình linkBreaktách liên kết.

-

Xây dựng chương trình sử dụng kết quả của DAESol và thông tin từ các file model AutoCad để có thể mô phỏng động lực học cơ hệ.

-

Phát triển thêm các giải thuật rút gọn Symbolic để áp dụng rộng rãi hơn trong cơ học.

Chương VI: Tổng kết -

Xử lý trường hợp suy biến của cơ hệ.

BỘ MÔN CƠ HỌC ỨNG DỤNG

Phụ lục A: Thư viện Expression.dll

BỘ MÔN CƠ HỌC ỨNG DỤNG

Phụ lục A. Các hàm biến đổi Symbolic được triển khai trong thư viện Expression.dll Các phép biến đổi Symbolic được xây dựng chủ yếu trên lớp CTreeExpression cho biểu thức Symbolic và CMatrixExpress.h là ma trận Symbolic. Các hàm được chú thích sử dụng như mục dưới. Các thông tin về các lớp và vai trò của nó có thể xem thêm trong luận văn [29]: #include "BinaryTree.h" class CTreeExpression : public BinaryTree { public: static TreeNode* Sim4(TreeNode* &T); static TreeNode* Sim3(TreeNode* &T); static TreeNode* Sim2(TreeNode* &T); static TreeNode* Sim1(TreeNode* &T); /////////////////////////////////////////////////////////////////////// //phan nay do cuong them vao /////////////////////////////////////////////////////////////////////// // ham nay giam uoc truong hop cong voi 0 static TreeNode* SimplifyZero(TreeNode* &T); // ham nay giam uoc viec nhan voi 1 static TreeNode*SimplifyOne(TreeNode *&T); // ham nay thuc hien kiem tra xem trong biểu thức Symbolic có // phần nào là trùng nhau để thực hiện giản ước. Ví dụ // sin(a)-sin(a)= 0 // sin(a)+sin(a)= 2*sin(a) static TreeNode* SimTheSimilar(TreeNode * &T); // ham nay kiem tra lieu nhanh cay ben phai co nhanh con nao // nao trung với nhánh bên trái không // hàm phục vụ cho hàm SimTheSimilar, nên không gọi trực tiếp. static bool FindRightSimilar(TreeNode * T, TreeNode* FatherOfRight); // ham // nao // hàm static

nay kiem tra lieu nhanh cay ben trái có nhánh con nao trung với nhánh bên trái không phục vụ cho hàm SimTheSimilar, nên không gọi trực tiếp. bool FindLeftSimilar(TreeNode * T,TreeNode* FatherOfLeft);

//ham nay su dung de tim ra trong nhanh ben trai co cay con nay //giong het // nhanh cha hay khogn // hàm phục vụ cho hàm SimTheSimilar, nên không gọi trực tiếp. static TreeNode * SimplifyTheLeft(TreeNode* &T);

Phụ lục A: Thư viện Expression.dll

BỘ MÔN CƠ HỌC ỨNG DỤNG

//ham nay su dung de tim ra trong nhanh ben phai co cay con nay //giong het // cay con tro boi T->left // hàm phục vụ cho hàm SimTheSimilar, nên không gọi trực tiếp. static TreeNode * SimplifyTheRight(TreeNode* &T); // ham su dung de tim chieu dài cua cay, xem cây có mấy tầng // chieu cao cua cay chinh la cap bac cua goc cay, so muc cua // cac con... static unsigned int WhatHigh( TreeNode * root); // ham rut gon trong truong hop bieu thuc co chia cho 2 static TreeNode* SimInCaseDevide2(TreeNode*&T); //ham chuyen giua tong thanh tich static TreeNode* SumToMul(TreeNode*tree); //hàm phục vụ cho hàm SumToMul, không gọi trực tiếp static TreeNode* rightSumToMul(TreeNode*tree); //hàm phục vụ cho hàm SumToMul, không gọi trực tiếp static TreeNode* leftSumToMul(TreeNode*tree); // hàm phân tích dấu khi nhân // chẳng hạn (-sin*(x))*(-sin(x))= sin(x)^2, thay vì (//sin(x))^2 //hàm phục vụ cho hàm SumToMul, có thể gọi trực tiếp static int ParseTree(TreeNode*&tree,string& sData); // hàm này được sử dụng cho xây dựng cây biểu thức. static string ReplaceToMinus(string& inputString); //ham se kiem tra xem bieu thuc cay tuogn trung chi co dau * hoac // hoặc / hay khong // ham nay se sap xep lai cay dung cho so sanh 2 bieu thuc //a*b*c*d va c*a*b*d static void OrderTree(TreeNode* & firstTree, TreeNode*& secondTree); // ham rut gon trong truong hop co sin^2+cos^2 static TreeNode* SimSinCosSquare(TreeNode*&T); // ham áp dụng cho hàm SimSinCosSquare, không dùng trực tiếp static TreeNode* leftSimSinCosSquare(TreeNode*&T); static TreeNode* rightSimSinCosSquare(TreeNode*&T); // ham static static static

rut gon trong truong hop co a*sin*cos TreeNode* SimSCMulty(TreeNode*&T); TreeNode* leftSimSCMulty(TreeNode*&T); TreeNode* rightSimSCMulty(TreeNode*&T);

static TreeNode* simplify(TreeNode *&T); CTreeExpression(const TreeItemType& CTreeExpression(const TreeItemType&

rootItem); rootItem,

Phụ lục A: Thư viện Expression.dll

BỘ MÔN CƠ HỌC ỨNG DỤNG

CTreeExpression&leftTree, CTreeExpression&rightTree); CTreeExpression(const CTreeExpression& tree); virtual ~CTreeExpression(); const CTreeExpression& const CTreeExpression& (CTreeExpression&);

operator = (const CTreeExpression&); operator -

// Thuc hien cac toan tu 2 ngoi +,*,/,^ friend CTreeExpression operator (CTreeExpression&, CTreeExpression&); friend CTreeExpression operator (CTreeExpression&, CTreeExpression&); friend CTreeExpression operator (CTreeExpression&, CTreeExpression&); friend CTreeExpression operator (CTreeExpression&, CTreeExpression&);

+ * / ^

// so sanh 2 Bieu thuc co bang nhau hay khong int operator == (CTreeExpression&); // Dao ham theo bien thoi gian t, luc nay cac bien duoc coi la ham cua t static TreeNode* TDiffer(TreeNode* treeRoot,vector<string>strVariable);// const ; static CTreeExpression CreateOperator2(CTreeExpression&treeLeft, CTreeExpression&treeRight,const string&operation); // STATIC FUNCTION // Ham tao bieu thuc hau to tu mot bieu thua truyen vao static int createPostfixExpression(const string& expression,vector<string>& vecResultPostfix); static TreeNode* CreateTree(const string&strExpress); static int similar(TreeNode*tree1,TreeNode*tree2); // Cac phep dao ham static TreeNode* PDiffer(TreeNode*,const char* strVariable); static void getString1(TreeNode *&treePtr,string&); static void getString(TreeNode *&treePtr,string&); static TreeNode* createNode(const string& value) ; // gan nhanh ben trai cua N1 bang left, va nhanh ben trai cua N1 bang right static TreeNode* create2(TreeNode *N1,TreeNode *left,TreeNode *right) ; //gan nhanh ben phai cua N1 bang right static TreeNode* create1(TreeNode *right) ;

*N1,TreeNode

Phụ lục A: Thư viện Expression.dll

BỘ MÔN CƠ HỌC ỨNG DỤNG

static TreeNode* createSub(TreeNode *left,TreeNode *right); // Cong static TreeNode* createPlus(TreeNode *left,TreeNode *right) ; // Cong static TreeNode* createMulty(TreeNode *left,TreeNode *right) ; // nhan * static TreeNode* createMulty2(TreeNode *left,TreeNode *right) ; // cung la nhan, nhung dung trong truong hop dac biet static TreeNode* createMinus(TreeNode * &root);// tao so doi cua no static TreeNode* createDevide(TreeNode *left,TreeNode *right); // chia / static TreeNode* createPower(TreeNode *left,TreeNode *right) ; // mu / static TreeNode* createSqrt(TreeNode *root) ; // can bac 2 / static TreeNode* ArrangementTree(TreeNode * &root); // ham su dung de chuyen dau cua bieu thuc static TreeNode* createFunc(const string& value, const int& functionType); static TreeNode* RemoveSign(TreeNode*& root); // se chuyen (-2)*(-3)= 2*3 ///////////// // Ham kiem tra xem co phai la toan hang hang khong static BOOL isOperator(const string & str); // Kiem tra chuoi co phai la ham hay khong, nhu Cos, sin, tan atan... static int isWichFunction(const string & str); static int isWichFunction(const char & ch); // Lay muc uu tien cua toan hang static int priority(const string& op); static bool isZero(TreeNode *tree); static bool isOne(TreeNode *tree); static bool isLeaf(TreeNode *tree); //static

bool

AllIsMultiOrDevide(TreeNode * tree);

// ham doi dau static string reverseSign(string sign); }; /////////////////////////////////////////////////////////////////////// class EXPRESSION_API CMatrixExpress { friend class CTreeExpression; public: static BOOL IsRotate(CMatrixExpress& M); // ham nay tra ve gia tri dinh thuc cua mot ma tran static TreeNode* GetDet(CMatrixExpress&A); // Phương pháp tính không gian bù theo phương pháp thêm tuần tự

Phụ lục A: Thư viện Expression.dll

&G);

BỘ MÔN CƠ HỌC ỨNG DỤNG

// Các liên kết // thêm tuần tự các hàng của G vào để tính ma trận D static CMatrixExpress NullSpace(CMatrixExpress D,CMatrixExpress // Phương pháp tính không gian bù theo phương pháp thêm tuần tự // Các liên kết // thêm tuần tự các 2 hàng của G vào để tính ma trận D static CMatrixExpress NullSpace2(CMatrixExpress D,CMatrixExpress

&G); // ham nay tra ve khong gian bu cua mot ma tran theo phương pháp //định thức static CMatrixExpress NullSpace(CMatrixExpress A); // ham tra ve string la mot khong gian bu sau khi doc cac pt lien // ket tu mot xau ky tu Constrain static string NullSpace(vector<string> &vecConstrain, vector<string>& vecParameter); // ham nay tra ve mot ma tran con tu ma tran A // sau khi bo di hang _row, cot _col static CMatrixExpress GetMatrixAfterRemove(CMatrixExpress A, int _col, int _row); // ham dc tao ra bang cach thay the cot // xac dinh boi ma tran B, vao vi tri cot // i cua ma tran A static CMatrixExpress ReplaceColumn(CMatrixExpress A, CMatrixExpress B, int i); // co cac phan tu lan luot la cac so doi cua A static CMatrixExpress MinusMatrix(CMatrixExpress A); // tra ve mot cot _col cua ma tran A static CMatrixExpress CopyColumn(CMatrixExpress A, int _col); // tra ve mot hang _row cua ma tran A static CMatrixExpress CopyRow(CMatrixExpress A, int _row); static CMatrixExpress TDiffer(CMatrixExpress&A,vector<string>& var); // tao ra mot ma tran don vi cap la degree static CMatrixExpress CreateIdentityMatrix(int degree); // hàm trả về ma trận Jacobi là đạo hàm của R theo strVar static CMatrixExpress JacobiTMatrix(CMatrixExpress &R,vector<string>&strVar); static CMatrixExpress JacobiRMatrix(CMatrixExpress &R, vector<string> strVar); // hàm lấy động năng // A: ma tran quay // Ic: ma tran mo men quan tinh // m: khoi luong cua vat

Phụ lục A: Thư viện Expression.dll Ic,

BỘ MÔN CƠ HỌC ỨNG DỤNG

static CMatrixExpress GetKinetic(CMatrixExpress T,CMatrixExpress CMatrixExpress A,string & m,vector<string> & StrVar);

Ic,

static CMatrixExpress GetDynamic(CMatrixExpress T,CMatrixExpress CMatrixExpress A,string & m,vector<string> & StrVar);

// ham nay tính động năng su dung doi voi phuong phap tinh toan goc Ole tren he truc toa do thuc static CMatrixExpress GetDynamicNew(CMatrixExpress T,CMatrixExpress Ic, CMatrixExpress matGocquay, string & m,vector<string> & StrVar); static CMatrixExpress JacobiRMatrix(CMatrixExpress &R, vector<string> strVar); //ham nhan 2 ma tran, duoc dung rieng doi voi tinh Dinh thuc static CMatrixExpress createMultyMatrix(const CMatrixExpress&m1,const CMatrixExpress&m2); static CMatrixExpress ElementMatrix(); static CMatrixExpress TranslateMatrix(CMatrixExpress &A); static CMatrixExpress GetMoveMatrix(const string type,const string & _string); // các hàm sinh ra các ma trận biến đổi. static CMatrixExpress RotX(const string& angle); static CMatrixExpress RotY(const string& angle); static

CMatrixExpress

RotZ(const string& angle);

static static

CMatrixExpress CMatrixExpress

TransX(const string& x); TransY(const string& x);

static CMatrixExpress TransZ(const string& x); static CMatrixExpress createJTTMatrix( CMatrixExpress &A); protected: MatrixTreeNode** m_treeData; unsigned int m_dRow,m_dCol; };

Phụ lục B: Ví dụ tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

Phụ lục B: Các ví dụ được sử dụng để so sánh 2 phương pháp tính toán không gian bù D của ma trận liên kết G. Ghi chú: tại đây có một số bậc tự do không được thể hiện trên hình vẽ vì vậy ta ngầm định các góc quay ký hiệu là phi, các dịch chuyển theo trục x ký hiệu là x, các dịch chuyển theo trục y kí hiệu là y. Các di chuyển này gắn với khâu nào thì sẽ có chỉ số tương ứng với khâu đó

Co cau bom oxi

Hệ có một bậc tự do, ta chọn 7 tọa độ suy rộng Va co 6 ptlk được hình thành từ việc tách các liên kết các khâu 5-6, 1-2, 2-4 cos(phi2)*l24-(W5+cos(phi5)*l4+cos(phi4)*l4) y3+sin(phi2)*l24-(H5+sin(phi5)*l4+sin(phi4)*l4) cos(phi2)*l2-cos(phi1)*l1 y3+sin(phi2)*l2-sin(phi1)*l1 W5+cos(phi5)*l56-(H+cos(phi6)*l6) H5+sin(phi5)*l56-(y7+sin(phi6)*l6)

Phụ lục B: Ví dụ tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

Dao bao ngang

He có một bậc tự do, ta chon chon 5 toa do suy rộng. Va co 4 ptlk từ việc tách các khớp 4-5, 2-3 { (-((cos(phi3)*l32-cos(phi1)*l1)*sin(phi3))) +(sin(phi3)*l32+h3-sin(phi1)*l1)*cos(phi3); sin(phi3-(phi1+phi2)); cos(phi3)*l43-(h54+x5); sin(phi3)*l43+h3-(y4+h5);

}

Dao bao xoc

He có 1 bậc tự do, ta chon 5 toa do suy rong Va co 4 ptlk ứng với các khớp bị tách là 2-3, 3-4 (-((cos(phi3)*l32-cos(phi1)*l12) *sin(phi3)))+(sin(phi3)*l32sin(phi1)*l12)*cos(phi3); sin(phi3-(phi1+phi2)); cos(phi3)*l34-cos(phi4)*l43; sin(phi3)*l34-(sin(phi4)*l43+y5);

Phụ lục B: Ví dụ tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

May nang thoc

He có một bậc tự do, ta chon 7 toa do suy rong ; Va co 6 ptlk từ việc tách các khớp 3-2, 4-5, 5-6 cos(phi3)*l32-cos(phi2)*l23; sin(phi3)*l32-(y1+sin(phi2)*l23); cos(phi5)*l54-(cos(phi3)*l34+cos(phi4)*l45); sin(phi5)*l54-(sin(phi3)*l34+sin(phi4)*l45); cos(phi5)*l56-(x7+cos(phi7)*l76+cos(phi6)*l65); sin(phi5)*l56-(y7+sin(phi7)*l76+sin(phi6)*l65);

Phụ lục B: Ví dụ tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

May nghien

He có một tọa độ suy rộng, ta chon 5 toa do suy rong. Va co 4 ptlk ứng với 2 khớp bị tách là 3-4, 3-5 cos(phi3)*l34-(cos(phi6+phi4)*l43+cos(phi6)*l64); sin(phi3)*l34-(sin(phi6+phi4)*l43+sin(phi6)*l64); cos(phi3)*l35-(cos(phi7+phi5)*l53+cos(phi7)*l75); sin(phi3)*l35-(sin(phi7+phi5)*l53+sin(phi7)*l75);

Pittong

He có một bậc tự do, ta chon 5 toa do suy rong Va co 4 ptlk ứng với tách liên kết 1-2, 2-4 cos(phi2)*l2+x3-cos(phi1)*l1; sin(phi2)*l2-sin(phi1)*l1;

Phụ lục B: Ví dụ tách liên kết

BỘ MÔN CƠ HỌC ỨNG DỤNG

cos(phi2)*l24+x3-(cos(phi4)*l4+x5*cos(beta)+l); sin(phi2)*l24-(sin(phi4)*l4+x5*sin(beta));

Sàng tải lắc

He có một bậc tự do, ta chon 5 toa do suy rong. Va co 4 ptlk ứng với 2-3, 3-4 cos(phi3)*l32-(cos(phi1)*l2+cos(phi2)*l23); sin(phi3)*l32-(sin(phi1)*l2+sin(phi2)*l23); cos(phi3)*l34-(x5+cos(phi4)*l43); sin(phi3)*l34-sin(phi4)*l43;

Tài Liệu Tham Khảo

BỘ MÔN CƠ HỌC ỨNG DỤNG

Tài liệu tham khảo [1] Nguyễn Văn Khang: Động lực học hê nhiều vật, NXB Khoa học kỹ thuật, 2007 [2] A. A. Shabana: Dynamics of Multibody Systems. John Wiley & Sons, New York 1989. [3] E. Kreuzer: Computerized Symbolic Manipulation in Mechanics. NewYork 1994. [4] §inh V¨n Phong: Bµi gi¶ng ph¬ng ph¸p sè trong c¬ häc. §¹i häc B¸ch khoa Hµ néi, 1999. [5] §inh V¨n Phong: Ph¬ng ph¸p sè trong c¬ häc. NXB Khoa häc vµ kü thuËt. Hµ Néi, 1999. [6]§inh V¨n Phong: Differential-algebraic equations and study of motion of mechanical system. Proceedings of the fifth national conferance on mechanics, Vol 1, 121-125, Hanoi, 1993. [7]Phan M¹nh DÇn, §inh V¨n Phong: On a toolkit for simulation of constrained mechanical system. Proceedings of the seventh National Congress on Mechanics Hanoi, 12 – 2002. [8]Lª Hång Lam: X©y dùng modul cho bµi to¸n gi¶i bµi to¸n gi¶i vµ m« pháng hÖ nhiÒu vËt. LuËn v¨n th¹c sÜ c¬ häc øng dông 2002. [9]§inh V¨n Phong, Lª Hång Lam: ThuËt gi¶i cho viÖc xö lý

symbolic khi x©y dùng ph¬ng tr×nh chuyÓn ®éng cña c¬ hÖ nhiÒu vËt. TuyÓn tËp c¸c bµi b¸o c¸o héi nghÞ c¬ häc toµn quèc kû niÖm 25 n¨m thµnh lËp viÖn c¬ häc 2004. [10] Vladimír Stejskal and Michael Valásek: Kinematics and Dynamics of Machinery. Marcel Dekker Inc, Nework 1996. [11]NguyÔn V¨n §×nh, NguyÔn V¨n Khang, §ç Sanh: C¬ Häc. NXB Gi¸o dôc, 1996. [12]NguyÔn V¨n §×nh, NguyÔn NhËt LÖ, §ç Sanh: Bµi tËp c¬ häc. NXB Gi¸o dôc, 1998. [13]NguyÔn Quang Hoµng: Nghiªn cøu ®éng lùc häc vµ æn ®Þnh cña R«b«t c«ng nghiÖp b»ng hÖ ch¬ng tr×nh Maple. LuËn v¨n tèt nghiÖp cao häc §HBK Hµ néi 1999 [14]Phan Nguyªn Di: C¬ häc hÖ nhiÒu vËt. Häc viÖn kü thuËt qu©n sù 1996. [15]NguyÔn Ngäc B¶o: Xö lý symbolic trong c¬ häc. LuËn v¨n tèt nghiÖp chuyªn nghµnh c¬ tin K41- DHBKHN 2001. [16]§ç Xu©n L«i: CÊu tróc d÷ liÖu vµ gi¶i thuËt. NXB Gi¸o dôc 2003

Tài Liệu Tham Khảo

BỘ MÔN CƠ HỌC ỨNG DỤNG

[17]Đinh Văn Phong, Lê Hồng Lam, Nguyễn Mạnh Cương: Tách liên kết và xây dựng các phương trình chuyển độne dưới dạng Symbolic. B¸o c¸o héi nghÞ c¬ häc toµn quèc lÇn thø VIII,2007. [18] Đỗ Sanh,Đỗ Đăng Khoa: Xây dựng phương trình chuyển động của các hệ cơ học. B¸o c¸o héi nghÞ c¬ häc toµn quèc lÇn thø VIII,2007. [19] Dương Huy Trung: Sử dụng giải thuật SVD trong phân tích và mô phỏng động học, động lực học cơ cấu. Luận văn tốt nghiệp chuyên ngành cơ điện tử K44DHBKHN. [20]Do Sanh, Dinh Van Phong, Nguyen Nhat Le, On Numerical Methods for Constrained Mechanical Systems. Proceedings of IUTAM Symposium on Recent Development in Non-linear Oscillation of Mechanical Systems. Kluwer Academic Publisher, Dodrecht/Boston/London, 1999, pp 207-216. [21]Do Sanh: On the motion ò Constrained Mechanical Systems. The thesis of doctor in science. Technical University of Hanoi, Hanoi 1984. [22]Dinh Van Phong-Do Sanh: The study of equation of motion and innovating a trolley collector. Proceedings of fifth national conference on mechanics, Hanoi 1993. [23]Dinh Van Phong-Do Sanh: Dynamic calculation for a vibration sieve of grinding machine . Proceedings of fifth national conference on mechanics, Hanoi 1993. [24] Dinh Van Phong: Successive algorithm for construction of equation of motion

of constrained Mechanical Systems. [25] Dinh Van Phong: An Algorithm for Deriving Equations of Motion of Constrained Mechanical System. Vietnam Jornal ò Mechanics Vol 21.1999. [26] Lý Ngọc Phúc: Mô phỏng một số cơ cấu máy với tọa độ suy rộng thừa. Luận văn tốt nghiệp chuyên ngành cơ tin K47-DHBKHN. [27] J.Garcia de Jalon, Eduardo Bayo: Kinematic and Dynamic simulation ò Mutibody System. Springer Verlag, New York 1994. [28] Uthay Nouphaxay: Mô phỏng các hệ cơ học. Luận văn thạc sĩ cơ học kỹ thuật 2008. [29] Tran Huy Thang: Ứng dụng phép biến đổi Symbolic trong cơ học. Luận văn thạc sĩ cơ học kỹ thuật 2006

Related Documents

Do An Tot Nghiep4
November 2019 15
Do An Tot Nghiep
June 2020 8
Do An Tot Nghiep Gsm
June 2020 8
Thuyet Minh Do An Tot Nghiep
November 2019 13
De An Tot Nghiep1
June 2020 5