1. Trang chủ
  2. » Luận Văn - Báo Cáo

Công cụ mô hình và thiết kế hệ thống robot

108 31 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 108
Dung lượng 2,13 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trước đây, các robot công nghiệp chỉ thực hiện được một số công việc đơn giản như: sơn, di chuyển vật liệu, hàn,… Ngày nay, người ta đã có thể sử dụng robot trong các công việc đòi hỏi đ

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

Cán bộ hướng dẫn khoa học : TS Lê Ngọc Minh

Trang 3

LỜI CẢM ƠN

Tôi xin chân thành cảm ơn thầy Lê Ngọc Minh đã tận tình hướng dẫn tôi hoàn thành đề tài

này Ngoài ra, tôi cũng xin cảm ơn các thầy phản biện, các thầy cô trong khoa Công nghệ

thông tin và bạn bè đồng nghiệp về mọi sự giúp đỡ, đóng góp ý kiến trong giai đoạn hiện thực

luận văn của mình Đặc biệt, con xin cảm ơn bố Đôn và mẹ Mai đã luôn bên con trong những

lúc khó khăn nhất

Trang 4

TÓM TẮT

Mô hình hóa và mô phỏng đóng vai trò rất quan trọng trong việc phát triển các hệ thống công

nghiệp hiện nay Hiện nay, chúng ta có các framework chuyên biệt dùng trong mô phỏng, mô

hình và thiết kế như Simulink của MathWorks, LabView của National Intruments và Signal

Processing Worksystem (SPW) của Cadence, Tất cả các framework này đều thuộc loại

framework hướng tác tử Các framework hướng tác tử có các thành phần là các đối tượng

đồng thời tương tác với nhau thông qua việc truyền nhận thông điệp Chúng có một mô hình

tính toán cố đinh để quản lý sự tương tác giữa các thành phần đồng thời với nhau Tuy nhiên,

các framework này khó có thể được sử dụng để mô hình các hệ thống điều khiển phức tạp vì

hầu hết các hệ thống này đều là hệ thống bất đồng nhất (dựa trên các mô hình tính toán khác

nhau) Để giải quyết vấn đề này, nhóm nghiên cứu Pteam của giáo sư E.A Lee đã vận dụng

khái niệm bất đồng nhất phân cấp để hiện thực một framework mới có tên là Ptolemy Trong

luận văn này, chúng tôi sẽ thay đổi framework này để thiết kế và mô hình các hệ thống robot

bởi vì các hệ thống này thực sự là các hệ thống lai, có các mô hình tính toán khác nhau Các

chuyển động vật lý thường thích hợp với mô hình thời gian liên tục trong khi bộ điều khiển lại

thích hợp với mô hình sự kiện rời rạc Ngoài ra, chúng tôi cũng sẽ sử dụng framework mới

này để thiết kế hệ thống robot hai liên kết nhằm đánh giá kết quả của đề tài

Trang 5

Simulation and modeling play a very important role in developing industrial systems

nowadays There are many concurrent, domain-specific frameworks for simulation, modeling

and design such as Simulink from MathWorks, LabView from National Instruments, and

Signal Processing Worksystem (SPW) from Cadence… All of them are classified as

actor-oriented framework where components are concurrent objects that communicate via

messaging, and define a fixed model of computation to manage the interaction among their

concurrent components However, these frameworks hardly model complex control systems

because most of them are heterogeneous (based on many different models of computation) To

solve this problem, a PTeam group (EECS department - University of California, Berkeley)

leaded by E.A Lee make use hierarchical heterogeneity concept and implemented it in their

framework called Ptolemy In this work, I branched this framework to design and model

control systems in robot because these control systems are really hybrid systems with different

models of computation Most physical movements, forces, torques, for example, are

represented by differentiate equations which are very suitable for continuous time model

while their computer-based controllers use discrete event model In addition, I used this

branched framework to design control system for the two-link manipulator to evaluate my

work

Trang 6

MỤC LỤC

DANH MỤC HÌNH 3

1 ĐẶT VẤN ĐỀ 5

2 CÁC NGHIÊN CỨU LIÊN QUAN 6

2.1 Matlab 6

2.1.1 Simulink 7

2.1.2 SimMechanics 9

2.1.3 Hộp công cụ Robotics trong Matlab 15

2.2 Modelica 20

2.2.1 Các đặc trưng của ngôn ngữ Modelica 21

2.2.2 Các thư viện của Modelica 26

2.2.3 Các môi trường mô phỏng của Modelica 27

2.3 RoboWorks 29

2.4 Dự án Ptolemy 30

2.4.1 Gabriel (1986-1991) 31

2.4.2 Ptolemy classic (1990-1997) 31

2.4.3 Ptolemy II (1996-?) 32

2.4.4 Một số hệ thống ứng dụng thực tế của phần mềm Ptolemy II 32

3 PHÂN TÍCH ĐỀ TÀI 34

4 CÁC KIẾN THỨC CƠ BẢN 37

4.1 Các kiến thức cơ bản trong robotics 37

4.1.1 Các ký hiệu sử dụng 37

4.1.2 Động học (Kinematics) 37

4.1.3 Động lực học (Dynamics) 40

4.1.4 Phương trình không gian trạng thái (state space equation) 43

4.1.5 Mô phỏng động lực học 44

4.1.6 Điều khiển trong Robotics 45

4.1.7 Bộ sinh chuyển động 51

4.1.8 Bộ cảm biến 52

4.2 Môi trường Ptolemy II 53

4.2.1 Thiết kế dựa trên platform và thiết kế dựa trên mô hình 53

Trang 7

4.2.2 Thiết kế hướng tác tử (actor-oriented design) 58

4.2.3 Ngôn ngữ hướng tác tử (actor-oriented languages) 62

4.2.4 Thiết kế hệ thống điều khiển hướng tác tử (AO control system design) 64

4.3 Công cụ tính toán Maple 67

5 THIẾT KẾ HỆ THỐNG 67

5.1 Các gói 68

5.2 Các tác tử và director chính 69

5.3 Các vấn đề cần lưu ý trong giai đoạn thiết kế 70

6 HIỆN THỰC HỆ THỐNG 71

6.1 Môi trường lập trình 71

6.2 Làm việc với Ptolemy II 72

6.2.1 Thêm một miền (domain) hay tác tử mới vào Ptolemy II 72

6.2.2 Tác tử trong Ptolemy II 73

6.2.3 Các chuẩn lập trình trong Ptolemy II 76

6.3 Các lớp và tác tử đã thực hiện 79

7 THỬ NGHIỆM VÀ ĐÁNH GIÁ 86

7.1 Thử nghiệm 87

7.2 Đánh giá 91

8 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 92

8.1 Kết luận 92

8.2 Hướng phát triển 95

9 TÀI LIỆU THAM KHẢO 95

10 PHỤ LỤC 98

10.1 Các thử nghiệm khác 98

10.2 Bài báo đã đăng Error! Bookmark not defined

Trang 8

DANH MỤC HÌNH

Hình 1 Thư viện SimMechanics trong Simulink Library Browser 12

Hình 2 Thư viện SimMechanics (dạng khác) 13

Hình 3 Mô hình con lắc đơn và đôi trong SimMechanics 14

Hình 4 Các công cụ có trong Robotics Toolbox for Matlab 16

Hình 5 Biểu diễn của robot Puma 560 trong Robotics Toolbox for Matlab [11] 18

Hình 6 Các lệnh để tạo các đối tượng liên kết trong Matlab 19

Hình 7 Các sơ đồ trong các miền khác nhau trong Modelica [31] 21

Hình 8 Hệ thống điều khiển mô tơ đơn giản trong Modelica [31] 22

Hình 9 Sơ đồ kết hợp của lớp mô hình Motor [31] 23

Hình 10 Ví dụ về một mô hình thiết kế bằng RoboWorks 30

Hình 11 Ptolemy II framework 32

Hình 12 Mô hình mạng cảm biến [33] 33

Hình 13 Bên trong của tác tử Initiator [33] 33

Hình 14 Ứng dụng thực tế của mạng cảm biến [33] 34

Hình 15 ROADNet: Real-time Observatories, Applications, and Data management Network [33] 34

Hình 16 Sự khác biệt giữa hai dạng biểu diễn Denavit-Hartenberg 39

Hình 17 So sánh các chi phí tính toán khi tính inverse dynamics bằng các phương pháp khác nhau [11] 41

Hình 18 Sơ đồ khối trừu tượng của một hệ thống điều khiển robot 46

Hình 19 AC servo-motors 52

Hình 20 Mô hình điều khiển dùng bộ sinh chuyển động và bộ cảm biến 53

Hình 21 Mô hình Actor-oriented [8] 57

Hình 22 Sự khác nhau giữa hướng mô hình và hướng tác tử [32] 63

Hình 23 Một qui trình thiết kế hệ thống điều khiển kinh điển [24] 65

Hình 24 Qui trình thiết kế mới [24] 66

Hình 26 Miền Robotics trong Ptolemy II 73

Hình 27 Cấu trúc tiêu biểu của một tác tử 75

Hình 28 Một file mã nguồn java theo chuẩn 78

Hình 29 Giải phương trình vi phân sử dụng DynCT Director và các tác tử phát triển bởi đề tài 79

Hình 30 Giải phương trình vi phân sử dụng CT Director và các tác tử có sẵn trong Ptolemy .80

Hình 31 Kết quả khi giải một phương trình vi phân đơn giản 80

Hình 32 Cấp ngoài cùng của mô hình robot hai liên kết 87

Hình 33 Bên trong khối Controller 89

Hình 34 Bên trong khối HostCompter 89

Hình 35 Bên trong khối interpolator 90

Hình 36 Bên trong khối mô phỏng robot 91

Hình 37 Bên trong khối 3DRobotViewer 91

Hình 38 Tạo robot hai liên kết trong Ptolemy II 99

Hình 39 Các tham số của liên kết 99

Hình 40 Một số tác tử biến đổi 100

Hình 41 Tính ma trận động học dạng số 100

Trang 9

Hình 42 Tính ma trận động học dạng ký hiệu 101

Hình 43 Tính lực quay dạng số của các khớp khi biết các chuyển động (phương trình động

lực học) 101

Hình 44 Giải phương trình động lực học bằng phương pháp Euler trong [2] 103

Hình 45 Mô hình sử dụng phương trình động lực học để mô phỏng chuyển động của robot

103

Trang 10

1 ĐẶT VẤN ĐỀ

Các nghiên cứu về robot chủ yếu tập trung vào việc sử dụng các thành phần cơ khí,

cảm biến (sensors), các thiết bị cơ khí dùng để di chuyển hay điều khiển một vật thể nào

đó (actuator) và máy tính để tạo ra các thiết bị có chức năng giống như một số chức năng

của con người Điều này đòi hỏi các kiến thức từ nhiều lĩnh vực cơ bản khác nhau Các

kiến thức về lĩnh vực cơ khí sẽ cung cấp các phương pháp luận dùng để nghiên cứu các

thiết bị máy móc ở trạng thái tĩnh hoặc động Kiến thức về lĩnh vực toán học sẽ cung cấp

các công cụ để mô tả các chuyển động trong không gian và các thuộc tính khác của các tay

máy Lý thuyết điều khiển sẽ cung cấp các công cụ dùng trong việc thiết kế và đánh giá các

giải thuật để đạt được các chuyển động hoặc lực tác động như mong muốn Các kỹ thuật

trong lĩnh vực điện tử thì sẽ được dùng để thiết kế các cảm biến và các giao diện của các

robot công nghiệp (industrial robots) Cuối cùng, kiến thức trong lĩnh vực khoa học máy

tính sẽ đóng góp vào việc lập trình các thiết bị này để hoàn thành các nhiệm vụ đặt ra Ở

mức độ trừu tượng tương đối cao, robotic được chia làm bốn lĩnh vực chính: cơ khí, động

học, thị giác máy tính (computer vision) và trí tuệ nhân tạo

Trước đây, để tạo ra được một hệ thống robot đáp ứng được một cách tương đối

các yêu cầu thực tế trong công nghiệp, chúng ta phải đầu tư rất nhiều thời gian, tài chính

cũng như nhân lực Chúng ta phải tạo ra nhiều mẫu thử nghiệm (prototype) trước khi đi

đến một sản phẩm hoàn chỉnh Ngày nay, với sự trợ giúp của máy tính (các hệ thống CAD

– Computer Aided Design, CAM – Computer Aided Manufacturing) chúng ta có thể tiết

kiệm được phần lớn các tài nguyên này Chúng ta có thể dùng máy tính để thiết kế, tính

toán, mô hình hóa, mô phỏng và kiểm tra các hệ thống robot trước khi thật sự hiện thực hệ

thống Điều này cũng giúp mở rộng thêm khả năng của hệ thống robot (cho phép các hệ

thống này có được các khả năng phức tạp và chính xác hơn) Trước đây, các robot công

nghiệp chỉ thực hiện được một số công việc đơn giản như: sơn, di chuyển vật liệu, hàn,…

Ngày nay, người ta đã có thể sử dụng robot trong các công việc đòi hỏi độ chính xác cao

và phức tạp hơn như lắp ráp các thiết bị điện tử, ô tô, máy móc…

Đề tài này sẽ phát triển một số công cụ dùng để mô hình và thiết kế các hệ thống

robot Vậy hiện nay đang có các công cụ mô phỏng robot nào? Đề tài tạo từ đầu toàn bộ hệ

thống hay phát triển trên một môi trường có sẵn? Nếu phát triển trên môi trường có sẵn thì

Trang 11

chọn môi trường nào? Mối liên hệ giữa môi trường đó với các hệ thống điều khiển của

robot? Các câu hỏi này sẽ được giải quyết trong các phần tiếp theo: các nghiên cứu liên

quan và phân tích đề tài

Hiện nay, có một số công cụ đã được phát triển để mô hình hóa và mô phỏng các

hệ thống tổng quát (không riêng gì lĩnh vực robotics) như Simulink (Mathworks),

LabVIEW, Modelica, Ptolemy II,… Ngoài các công cụ tổng quát này còn có các công cụ

chuyên dùng để mô hình và mô phỏng cho các hệ thống robot như chương trình

RoboWorks được phát triển bởi Chetan Kapoor (người sáng lập ra công ty Newtonium);

BugWorks 2D Robot Simulator; Camelot-Robot Offline Programming and Simulation

Software; Mobile Robot Simulators… Trong phần này chúng ta sẽ đề cập đến các công cụ

thiết kế, mô hình robot tiêu biểu đang được sử dụng phổ biến là SimMechanics, hộp công

cụ Robotics trong Matlab (Robotics Toolbox for Matlab), Modelica và Roboworks Tuy

nhiên, do có một số công cụ được xây dựng trên nền một hệ thống khác nên chúng ta phải

tìm hiểu sơ qua về hệ thống nền trước khi tìm hiểu bản thân các công cụ đó Ví dụ hộp

công cụ Robotics trong Matlab và SimMechanics được phát triển trên nền Matlab và

Simulink nên trước khi trình bày về chúng, chúng ta sẽ tìm hiểu về Matlab và Simulink

trước

2.1 Matlab

Matlab là gì? Matlab là một ngôn ngữ có tính biễu diễn cao chuyên dùng cho các

vấn đề tính toán kỹ thuật Nó tích hợp việc tính toán, biễu diễn trực quan (visualization), và

việc lập trình trong một môi trường thân thiện, dễ dùng Trong môi trường này, các bài

toán và lời giải đều được diễn đạt bằng các ký hiệu toán học quen thuộc Matlab thường

được dùng trong lĩnh vực toán học, lĩnh vực phát triển các giải thuật, thu thập thông tin,

mô hình hóa, mô phỏng và tạo mẫu (prototyping), phân tích dữ liệu, các ứng dụng đồ họa

khoa học kỹ thuật,

Matlab là một hệ thống tương tác có thành phần dữ liệu cơ bản là một dãy có kích

thước không bắt buộc phải xác định do đó nó cho phép chúng ta giải quyết được các bài

toán tính toán kỹ thuật đặc biệt là các bài toán vector hay ma trận

Trang 12

Matlab là viết tắt của hai từ Matrix laboratory Trước đây Matlab được phát triển

chỉ để tạo được sự dễ dàng khi truy xuất các phần mềm về ma trận trong hai dự án

LINPACK và EISPACK Ngày nay, công cụ Matlab đã được tổng hợp trong nó các phần

mềm chuyên dùng để tính toán ma trận như hệ thống thư viện LAPACK và BLAS

Matlab đã phát triển được nhiều năm và được sử dụng bởi rất nhiều người Trong

môi trường đại học, công cụ Matlab được dùng rất phổ biến trong việc giảng dạy các môn

toán, kỹ thuật và khoa học cơ bản cũng như nâng cao Trong lĩnh vực công nghiệp, Matlab

được dùng trong các nghiên cứu, phân tích và phát triển nhằm tạo ra các hệ thống có năng

suất cao

Matlab chứa giải pháp của từng ứng dụng riêng biệt trong các hộp công cụ

(toolbox) khác nhau Các hộp công cụ này tạo cho người sử dụng khả năng nắm bắt cũng

như áp dụng được một số công nghệ chuyên biệt nào đó Hộp công cụ là một tập hợp của

các hàm của Matlab (M-files) được thêm vào môi trường Matlab để giải quyết một lớp bài

toán cụ thể nào đó Hiện nay, Matlab đã có hộp công cụ trong một số lĩnh vực như: xử lý

tín hiệu số, hệ thống điều khiển, mạng neural, logic mờ, wavelets, mô phỏng…

Hệ thống Matlab bao gồm 5 phần: môi trường phát triển, thư viện các hàm toán

học, ngôn ngữ Matlab, đồ họa, thư viện giao diện lập trình Matlab (Application

Programming Interface)

2.1.1 Simulink

Simulink framework là một gói phần mềm trong Matlab của hãng Mathworks dùng

để mô hình hóa, mô phỏng và phân tích các hệ thống động (dynamic system) Framework

này hỗ trợ các hệ thống tuyến tính và phi tuyến được mô hình trong miền thời gian liên tục,

miền thời gian được lấy mẫu (sampled time) cũng như sự kết hợp của cả hai miền thời gian

này

Simulink cho phép chúng ta dễ dàng xây dựng các mô hình mới từ đầu hay bằng

cách thay đổi các mô hình sẵn có Quá trình mô phỏng trong Simulink cũng có tính tương

tác nên chúng ta có thể dễ dàng thay đổi các thông số trong quá trình mô phỏng một cách

trực tiếp và thấy được kết quả của sự thay đổi ngay lập tức Ngoài ra, do được phát triển

trên Matlab nên chúng ta có thể sử dụng các công cụ phân tích có sẵn trong Matlab để

phân tích và hiển thị các kết quả của hệ thống mà ta đang mô hình Mục tiêu chủ yếu của

Trang 13

Simulink là tạo sự “vui thích” cho người sử dụng trong việc mô hình và mô phỏng thông

qua một môi trường thân thiện nhằm khuyến khích người sử dụng nghĩ ra vấn đề, mô hình

nó và “nhìn được” chuyện gì sẽ xảy ra

Với Simulink, chúng ta có thể tiến xa hơn các mô hình hệ thống tuyến tính lý

tưởng để đến với việc nghiên cứu các mô hình phi tuyến mang tính thực tế hơn như sức

cản không khí, sự ma sát, gear slippage, cũng như các yếu tố mô tả các hiện tượng trong

thế giới thực khác Simulink sẽ biến máy tính của chúng ta thành một phòng thí nghiệm

dùng để mô hình và phân tích các hệ thống không tưởng hoặc các hệ thống đang có trong

thực tế Các hệ thống này có thể là mô hình của các hành vi trong hệ thống ấp trứng tự

động, sự rung của cánh máy bay hoặc sự ảnh hưởng của việc dự trữ tiền tệ đối với nền kinh

tế

Simulink mang tính thực tế cao do nó đã được hàng ngàn kỹ sư trên khắp thế giới

sử dụng để mô hình và giải quyết các vấn đề thực tế

Đối với chức năng mô hình hóa, Simulink cung cấp một giao diện đồ họa để xây

dựng các mô hình theo sơ đồ khối (block diagram) bằng các thao tác kéo thả chuột đơn

giản trong khi các gói mô phỏng trước đây đòi hỏi các công thức vi phân cũng như các

công thức khác phải được nhập vào bằng chương trình Simulink đã chứa sẵn trong nó thư

viện các khối cơ bản của các thành phần như sinks, sources, thành phần tuyến tính, phi

tuyến và các kết nối Tuy nhiên, chúng ta cũng có thể tự tạo các khối của riêng mình

Các mô hình đều có một cấu trúc nhất định do đó chúng ta có thể xây dựng chúng

theo phương pháp từ trên xuống hay từ dưới lên đều được Chúng ta có thể nhìn (view) hệ

thống ở mức trừu tượng cao rồi double-click vào các khối để đi vào chi tiết hơn Cách tiếp

cận này cho phép chúng ta có được cái nhìn bên trong (insight) về cách tổ chức của mô

hình cũng như cách các thành phần trong mô hình tương tác với nhau

Sau khi đã xây dựng xong mô hình, chúng ta có thể mô phỏng chúng bằng cách sử

dụng các phương pháp có sẵn trong các menu của Simulink hay bằng cách nhập các lệnh

vào trong cửa sổ lệnh của Matlab Cách chọn lựa từ menu của Simulink thì thuận tiện cho

việc giao tiếp còn cách dùng dòng lệnh thì thích hợp để thực hiện một “bó” các mô phỏng

(a batch of simulation) Chúng ta có thể nhìn được các kết quả trong quá trình mô phỏng

thông qua scopes và các khối hiển thị khác Hơn nữa, chúng ta có thể thay đổi các tham số

Trang 14

của các thành phần trong mô hình và biết được ngay lập tức ảnh hưởng của sự thay đổi này

đối với hệ thống Kết quả của quá trình mô phỏng có thể được xử lý tiếp bằng Matlab với

các công cụ phân tích như tuyến tính hóa, làm gọn (trimming),… Vì Matlab và Simulink

được tích hợp chung với nhau trong một hệ thống nên chúng ta có thể mô phỏng, phân

tích, củng cố (revise) các mô hình của chúng ta trong cả hai môi trường này một cách tùy

ý

Tóm lại, Simulink là một công cụ có tính tương tác cao, dùng trong việc mô hình

hoá, mô phỏng và phân tích các hệ thống động, đa miền (multidomain) Nó cho phép

chúng ta mô tả, mô phỏng, đánh giá, tinh chỉnh (refine) một cách chính xác các hành vi của

một hệ thống thông qua các thư viện chứa các khối chuẩn và khối của người dùng Các mô

hình của Simulink còn có khả năng liên kết với Matlab nên do đó nó sẽ được cung cấp các

thao tác uyển chuyển cũng như các công cụ mạnh, chuyên nghiệp dùng để phân tích và

thiết kế Sau khi đã mô hình hóa và phân tích để tạo ra được mô hình của hệ thống, chúng

ta có thể sử dụng các mô hình kết quả này để làm nhiều việc khác thông qua các phần mềm

khác Ví dụ: The Simulink Report Generator sẽ trích rút các thông tin về thiết kế trong mô

hình để tạo ra các tài liệu kỹ thuật; the Real-Time Workshop và Real-Time Workshop

Embedded Coder sẽ sinh ra mã ANSI C hoặc ISO C từ các mô hình để sử dụng trong các

hệ thống nhúng, tạo mẫu nhanh (rapid prototyping), triển khai mô hình (model

deployment) và các ứng dụng hardware-in-the-loop

2.1.2 SimMechanics

SimMechanics là một môi trường mô hình các sơ đồ khối (block diagram) Nó

được sử dụng trong các thiết kế kỹ thuật và mô phỏng các máy thân cứng (rigid body

machine) cũng như chuyển động của chúng bằng cách áp dụng các phương trình động lực

học Newton cho các lực thẳng và lực quay

Với SimMechanics, người sử dụng có thể mô hình và mô phỏng các hệ thống cơ

khí thông qua một bộ công cụ để đặc tả các thân máy, khối lượng, các khả năng chuyển

động của chúng, các ràng buộc về động học (kinematic constraints) và các hệ thống tọa độ

Ngoài ra, SimMechanics còn có các công cụ để khởi tạo (initiate) và đo đạc sự chuyển

động của các khối Các hệ thống cơ khí được biễu diễn trong SimMechanics dưới dạng sơ

Trang 15

đồ gồm các khối hay các hệ thống con phân cấp được kết nối với nhau (giống như các mô

hình khác trong Simulink)

Các công cụ hiển thị (visualization) của SimMechanics hiển thị và tạo hoạt cảnh

các dạng biểu diễn đơn giản của các máy 3-D trước và trong khi mô phỏng bằng cách sử

dụng hệ thống đồ họa của Matlab

SimMechanics chỉ là một phần của hệ thống mô hình các hệ vật lý tổng quát

(physical modeling) của Simulink Hệ thống mô hình các hệ vật lý hàm chứa ý nghĩa là

việc mô hình hóa và thiết kế hệ thống phải tuân theo các định luật vật lý cơ bản Hệ thống

mô hình các hệ vật lý này chạy được trong môi trường Simulink và giao tiếp dễ dàng với

các phần khác của Simulink cũng như của Matlab Trong khi các khối khác trong Simulink

biểu diễn các phép toán số học hoặc các thao tác trên các tín hiệu thì các khối trong hệ

thống mô hình các hệ vật lý biểu diễn các thành phần hoặc các quan hệ vật lý một cách

trực tiếp

SimMechanics là một tập thư viện các khối và các đặc trưng mô phỏng đặc biệt

được sử dụng trong môi trường Simulink Chúng ta có thể kết nối các khối này của

SimMechanics với các khối thông thường của Simulink thông qua hai khối đặc biệt là khối

Sensor và khối Actuator

Các khối trong thư viện này là các yếu tố cần thiết để chúng ta có thể mô hình hóa

các hệ thống cơ khí Các hệ thống cơ khí thường bao gồm một số khối thân máy cứng kết

nối với nhau bởi các khớp nối đại diện cho các bậc tự do quay và tịnh tiến SimMechanics

có thể biểu diễn được các thiết bị có các thành phần là các hệ thống con phân cấp như các

mô hình bình thường khác trong Simulink Người sử dụng có thể áp đặt các ràng buộc

động học, thiết lập các lực thẳng và lực quay, giải các phương trình Newton, và đo đạc các

kết quả của các chuyển động của thiết bị này

SimMechanics mở rộng Simulink bằng cách thêm vào một thư viện chứa các khối

dùng để đặc tả các thành phần và thuộc tính của hệ thống cơ khí và các khối dùng để giải

các phương trình chuyển động của hệ thống Ngoài một số thuộc tính đặc trưng, các khối

này của SimMechanics đều tương tự như các khối cơ bản khác của Simulink

Các bước chính để xây dựng và chạy một một biểu diễn mô hình của một hệ thống

cơ khí là:

Trang 16

• Đặc tả các thuộc tính quán tính, bậc tự do, ràng buộc cho các khối thân cũng như các hệ tọa độ gắn trên chúng để đo vị trí và vận tốc

• Thiết lập các cảm biến và các thiết bị tạo chuyển động (actuator) để ghi nhận và khởi động các chuyển động của các khối thân cũng như áp dụng các lực lên chúng

• Bắt đầu quá trình mô phỏng bằng cách gọi các Simulink solver để tìm các chuyển động của hệ thống thỏa tất cả các ràng buộc

• Sử dụng cửa sổ Visualization của SimMechanics để hình dung

(visualize) hệ thống khi xây dựng mô hình và tạo hoạt cảnh cho hệ thống khi chạy mô phỏng

SimMechanics được tổ chức thành các thư viện phân cấp chứa các khối có liên

quan mật thiết với nhau

Trang 17

Hình 1 Thư viện SimMechanics trong Simulink Library Browser

Trang 18

Hình 2 Thư viện SimMechanics (dạng khác) Các bước cơ bản cần thiết khi xây dựng một mô hình trong SimMechanics là:

1 Chọn và kéo thả các khối Ground, Body và Joint cần thiết để biểu diễn hệ

thống trong hệ thống thư viện vào vùng làm việc Chú ý là cần phải có một khối Machine Environment (để thiết lập các thông số cơ khí của mô hình)

và ít nhất một khối Ground

2 Định vị và kết nối các khối lại với nhau theo sơ đồ sau:

Khối Machine Env kết nối với khối Ground Khối Ground kết nối với chuỗi các

khối Joint-Body kết nối xen kẽ nhau

3 Cấu hình cho các khối Body: đặc tả thuộc tính khối lượng, quán tính, các hệ

tọa độ (Coordinate System viết tắt là CS) so với World Coordinate System hoặc so với các CS khác

4 Cấu hình cho các khối Joint: đặc tả các thuộc tính về trục chuyển động

thẳng, chuyển động quay

5 Chọn, kết nối và cấu hình các khối ràng buộc (constraint) và khối điều

khiển (driver) Các khối này phải được đặt giữa các khối Body

6 Chọn, kết nối và cấu hình các khối cảm biến và khối tạo chuyển động Ở

bước này, chúng ta cần phải cấu hình lại các khối đã tạo ở các bước trước (Body, Joint, Constraint/Driver) để có thể kết nối được với hai khối mới này Chỉ có hai loại khối này mới cho phép chúng ta có thể kết nối được các

Trang 19

khối của SimMechanics với các khối khác (non-mechanics Simulink

block) Chúng ta cần lưu ý đặc tính này của SimMechanics vì đặc tính này

sẽ giúp chúng ta thấy được mô hình tính toán (xem phần 4.2.2) bên dưới

của Simulink là mô hình tính toán Continuous Time/Mixed Signal và từ đó

lý giải được bối cảnh xuất hiện của đề tài

7 Bao đóng thành hệ thống con: Các hệ thống được tạo bởi SimMechanics có

thể là một hệ thống con của các mô hình lớn khác như các hệ thống con bình thường của Simulink Toàn bộ một mô hình SimMechanics có thể được kết nối như là một hệ thống con với một hệ thống lớn thông qua các khối Connection Port trong thư viện Utilities

Mô hình con lắc đôi

Mô hình con lắc đơn

Hình 3 Mô hình con lắc đơn và đôi trong SimMechanics SimMechanics có tất cả 4 chế độ để chạy một mô hình của một hệ thống máy cơ

khí là Forward Dynamics, Inverse Dynamics, Trimming và Kinematics Trong hầu hết các

mô hình đơn giản, đầu tiên chúng ta sẽ đưa vào các lực và các điều kiện khởi tạo, sau đó

chúng ta sẽ bắt đầu quá trình mô phỏng dưới chế độ Forward Dynamics để có được các

chuyển động kết quả Trong chế độ Kinematics và InverseDynamics, chúng ta sẽ đưa vào

Trang 20

chuyển động của tất cả các bậc tự do độc lập, từ đó có thể tính được các lực cần thiết để tạo

ra được các chuyển động đó

Điểm khác biệt quan trọng của các mô hình trong SimMechanics so với các mô

hình khác của Simulink nằm ở cách mà nó biểu diễn một hệ thống máy cơ khí Một mô

hình bình thường của Simulink mô tả dạng toán học các chuyển động của hệ thống (các

phương trình vi phân và các phương trình đại số dùng để dự đoán trạng thái tương lai của

hệ thống từ các trạng thái hiện tại) Các mô hình toán học này cho phép Simulink có thể

mô phỏng được các hệ máy cơ khí Ngược lại, các mô hình của SimMechanics mô tả cấu

trúc vật lý của hệ thống cơ khí (các mối quan hệ hình học, quan hệ động học giữa các khối

thân của hệ thống) SimMechanics sẽ chuyển đổi các cấu trúc này thành các mô hình toán

học bên trong tương đương Điều này sẽ giúp người thiết kế tiết kiệm được thời gian và

công sức để xây dựng một mô hình toán học cho hệ thống

2.1.3 Hộp công cụ Robotics trong Matlab

Đây là một hộp công cụ phục vụ cho các tính toán liên quan đến robot trong

Matlab Hộp công cụ này được phát triển bởi Peter I Corke, CSIRO, Manufacturing

Science and Technology Phiên bản đầu tiên ra đời vào năm 1996 Phiên bản gần đây nhất

là phiên bản 1.4 ra đời vào năm 2002 Như vậy, kể từ lần đầu tiên xuất hiện, để có được

hộp công cụ như hiện nay Peter I Corke đã phải tiêu tốn một khoảng thời gian là hơn 7

năm cho việc sửa lỗi và cải tiến nó

Hộp công cụ này thực chất là thư viện các hàm (viết bằng Matlab) thường dùng

trong lĩnh vực Robotics như các hàm dùng để tính Jacobian, động học, động lực học, bộ

sinh quỹ đạo (trajectory generation)… cho một đối tượng robot Nó thường được sử dụng

để mô phỏng, phân tích các kết quả từ thực nghiệm với robot thật cũng như được dùng để

giảng dạy

Hộp công cụ này dựa vào một phương pháp biểu diễn các tham số động học, động

lực học của robot tổng quát: chúng được bao đóng (encapsulate) trong các đối tượng của

Matlab Đối tượng Robot, trong hộp công cụ này, chỉ đơn giản là các tay máy có các liên

kết nối tiếp nhau (serial-link manipulator) Người sử dụng có thể tạo đối tượng robot cho

hệ thống để đại diện bất kỳ tay máy có các liên kết nối tiếp nhau nào mà họ quan tâm

Trong hộp công cụ cũng có nhiều ví dụ đặc biệt là ví dụ về 2 robot khá nổi tiếng là tay máy

Trang 21

Puma 560 và tay máy Stanford Ngoài ra, nó còn cung cấp các hàm dùng để thao tác trên

các kiểu dữ liệu như vector, các ma trận biến đổi thuần nhất (homogeneous transformation)

và bộ tứ (unit-quaternion) dùng để biểu diễn hệ tọa độ 3 chiều Do các hàm trong thư viện

này được viết với mục đích dễ đọc hiểu nên hiệu quả của việc tính toán sẽ không được

quan tâm lắm ở đây

Hình 4 Các công cụ có trong Robotics Toolbox for Matlab

Động học (kinematics)

Trong hộp công cụ này (xem phần kiến thức về động học ở 4.1.2), Corke dùng ký

hiệu q i để biểu diễn tổng quát các biến khớp nối (joint variable)

jointprismatic

jointrevolute

jointrevolute

Trang 22

Hộp công cụ này hỗ trợ đầy đủ cho dạng biểu diễn thứ nhất (dạng cổ điển) và chỉ

hỗ trợ một phần (cụ thể là chỉ có các hàm tính forward và inverse kinematics) cho dạng

biểu diễn thứ hai (dạng biến đổi của Craig)

Kết quả của biểu diễn Denavit-Hartenberg là một ma trận biến đổi thuần nhất 4×4:

00

cossin

0

sinsin

coscos

cossin

coscos

sincos

sincos

1

i i

i

i i i i i

i i

i i i i i

i i

i

i

d a

a A

αα

θα

θα

θθ

θα

θα

θθ

Ma trận này biểu diễn mối quan hệ giữa hệ tọa độ của liên kết này so với hệ tọa độ

của liên kết trước đó:

i

i i

1 0

=

với 0Ti là ma trận biến đổi thuần nhất diễn tả mối quan hệ giữa hệ tọa độ của liên

kết thứ i với hệ tọa độ thế giới (world coordinate system) Lưu ý là ma trận biến đổi trên

đây chỉ tương ứng với dạng biểu diễn động học Denavit-Hartenberg cổ điển

Định nghĩa một robot mới trong hộp công cụ

Trang 23

Hình 5 Biểu diễn của robot Puma 560 trong Robotics Toolbox for Matlab [11]

Để định nghĩa một robot khi sử dụng hộp công cụ này, chúng ta lấy một ví dụ đơn

giản là định nghĩa robot là một tay máy chỉ gồm 2 liên kết phẳng của Spong và Vidyasagar

có các tham số liên kết Denavit-Hartenberg như sau:

Trang 24

Do hộp công cụ này được phát triển trên Matlab nên chúng ta phải chạy Matlab

trước khi có thể sử dụng các chức năng của hộp công cụ này Trong môi trường Matlab

chúng ta đánh vào các lệnh sau để tạo các đối tượng là các liên kết:

Hình 6 Các lệnh để tạo các đối tượng liên kết trong Matlab Trên đây chỉ là các lệnh cơ bản để tạo một liên kết Xem [11] để tìm hiểu chi tiết

hơn

Sau khi tạo xong các đối tượng liên kết, chúng sẽ được truyền dưới dạng tham số

cho hàm robot Hàm robot này sẽ tạo ra đối tượng robot để sử dụng cho các hàm khác

trong hộp công cụ: tính kinematics, dynamics, animation,

Mục tiêu của đề tài này là xây dựng các công cụ mô hình và mô phỏng các hệ

thống robot nên hộp công cụ được xây dựng bởi đề tài sẽ có các khối chức năng tương đối

giống với hộp công cụ này Tuy nhiên, đề tài sẽ được phát triển trên một môi trường khác

nên sẽ tận dụng được các điểm mạnh của môi trường đó (xem các phần sau) Hơn nữa, hộp

Trang 25

công cụ ở đây chỉ đơn giản là tập hợp các hàm viết bằng Matlab phục vụ cho các tính toán

riêng biệt của robot nên nó không có hỗ trợ thiết kế trực quan robot cũng như nó đòi hỏi

người thiết kế robot phải biết Matlab (xem phần 8.1)

2.2 Modelica

Modelica [10] là một ngôn ngữ hướng đối tượng thống nhất (unified) chuyên được

sử dụng trong việc mô hình hóa các hệ thống vật lý lớn, phức tạp và bất đồng nhất

(heterogeneous system) Ngôn ngữ này thích hợp với các mô hình đa miền (multi-domain

modeling) như các mô hình cơ khí trong lĩnh vực robotics; các ứng dụng tự động hóa

(automotive) và không gian (aerospace) bao gồm các hệ thống con (subsystem) như hệ

thống điện, cơ khí, nước (hydraulic) và hệ thống điểu khiển Modelica được thiết kế sao

cho khi người sử dụng xây dựng một hệ thống trên nó cũng giống như khi họ xây dựng

một hệ thống thật sự: người sử dụng sẽ tìm và chọn các phần tử cơ bản như mô tơ (motor),

bơm (pump), van (valve) từ các nhà sản xuất với các tham số đặc tả cụ thể để xây dựng hệ

thống Nếu các phần tử này không có thì khi đó hệ thống sẽ cung cấp một giao diện chuẩn

(standardized interface) để người sử dụng tạo ra một mô hình mới

Các mô hình trong Modelica được mô tả một cách toán học bởi các phương trình vi

phân, phương trình đại số và phương trình rời rạc Không có một biến nào trong các

phương trình này phải được giải bằng tay Modelica đã có một công cụ có đủ thông tin để

giải các phương trình này một cách tự động Tuy nhiên, Modelica cũng được thiết kế mở

để cho người sử dụng có thể đưa vào các giải thuật chuyên biệt, cụ thể để giải các mô hình

lớn với hàng trăm ngàn phương trình Ngoài ra, Modelica còn được dùng trong việc mô

phỏng (hardware-in-the-loop simulation) và trong các hệ thống điều khiển nhúng

(embeded control subsystem)

Trang 26

Hình 7 Các sơ đồ trong các miền khác nhau trong Modelica [31]

Tái sử dụng là một vấn đề quan trọng Đã có nhiều nghiên cứu để định nghĩa một

ngôn ngữ hướng đối tượng dùng để mô hình các hệ thống vật lý, tuy nhiên chúng ta cần

phải qui định một định dạng chuẩn chung để có thể tái sử dụng và trao đổi các mô hình với

nhau Do đó, vào tháng 9 năm 1996, Hilding Elmqvist đã khởi xướng nên việc thiết kế

Modelica trong dự án có tên là ESPRIT Ngôn ngữ này được thiết kế bởi các nhà phát triển

(developer) của các ngôn ngữ mô hình hướng đối tượng như Allan, Dymola, NMF,

ObjectMath, Omola, SIDOPS+, Smile và một số nhân viên làm về mô hình (modeling

practitioner) trong các lĩnh vực khác nhau Sau 19 cuộc họp diễn ra trong vòng 3 năm,

phiên bản 1.3 của bản đặc tả ngôn ngữ Modelica được hoàn thành vào tháng 12 năm 1999

Đây là phiên bản đầu tiên được sử dụng trong các ứng dụng thực tế Phiên bản đặc tả của

ngôn ngữ này gần đây nhất là phiên bản 1.4, được đưa ra vào tháng 12 năm 2000

Vào tháng 2 năm 2000, một tổ chức phi chính phủ, phi lợi nhuận được thành lập

chủ yếu nhằm để đẩy mạnh việc phát triển, cải tiến và ứng dụng ngôn ngữ Modelica Tên

tổ chức này là “Modelica Association”, đặt trụ sở tại Linkoping, Thụy Điển

2.2.1 Các đặc trưng của ngôn ngữ Modelica

Ngôn ngữ Modelica hỗ trợ cả mô hình cấp cao thông qua việc sử dụng các thành

phần tích hợp lẫn mô hình được xây dựng từ các thành phần thư viện cấp thấp thông qua

việc sử dụng các phương trình Mô hình của các thành phần chuẩn sẽ được xây dựng thành

Trang 27

các thư viện Một mô hình có thể được định nghĩa trong một bộ soạn thảo mô hình đồ họa

(graphical model editor) bằng cách xây dựng một giản đồ (schematic) cho nó Giản đồ này

được xây dựng bằng cách kéo thả các biểu tượng đại diện cho mô hình của một phần tử

nào đó vào vùng làm việc, vẽ kết nối giữa các biểu tượng này và định nghĩa các tham số

cho chúng Việc xây dựng cách định nghĩa các chú thích đồ họa (graphical annotation)

trong Modelica cho phép các biểu tượng và các sơ đồ kết hợp có thể chuyển đổi dễ dàng

giữa các công cụ (Hình 7)

Ví dụ: Hình 8 là một sơ đồ kết hợp của một hệ thống điều khiển mô tơ đơn giản

Hình 8 Hệ thống điều khiển mô tơ đơn giản trong Modelica [31]

Hệ thống điều khiển này là một tập các phần tử kết nối với nhau: một động cơ điện,

một hộp số (gearbox), một bộ tải (load) và một bộ điều khiển

Biểu diễn dạng văn bản của mô hình này là:

model Motor Drive

Trang 28

end MotorDrive;

Mô hình kết hợp (composite model) này đặc tả topology của hệ thống được mô

hình thông qua các phần tử và các kết nối giữa chúng Phát biểu “Gearbox gear (n=100);”

khai báo một phần tử có tên là gear của lớp mô hình Gearbox và đặt giá trị của tham số n

(gear ratio) là 100 Ngoài ra, để hỗ trợ tính phân cấp, một phần tử mô hình ở đây lại có thể

là một mô hình kết hợp khác Hình 9 là sơ đồ kết hợp của lớp mô hình Motor trong sơ đồ

hệ thống điều khiển mô tơ ở trên

Hình 9 Sơ đồ kết hợp của lớp mô hình Motor [31]

Các mô hình vật lý thường chú trọng đến việc đặc tả các mối quan hệ giữa các đại

lượng vật lý Trong ví dụ ở trên, các đại lượng cần quan tâm là góc (angle) và lực quay

(torque) Trong Modelica, kiểu của chúng được định nghĩa như sau:

type Angle = Real (quantity = “Angle”, unit = “rad”, displayUnit = “deg”);

type Torque = Real (quantity = “Torque”, unit = “N.m”);

Trong đó, Real là một kiểu đã được định nghĩa sẵn (predefined type), có một tập

các thuộc tính như tên, đơn vị đo, đơn vị hiển thị mặc định của các cổng input , output, các

giá trị lớn nhất, nhỏ nhất và giá trị khởi tạo Thư viện chuẩn Modelica, một thành phần

quan trọng của Modelica, bao gồm khoảng 450 định nghĩa kiểu như trên và theo chuẩn

ISO 31-1992

Các kết nối đặc tả sự tương tác giữa các phần tử và được biểu diễn tượng hình bằng

các đường thẳng nối giữa các cổng (connector) Một kết nối chứa đựng trong nó tất cả các

Trang 29

đại lượng cần thiết để mô tả sự tương tác Ví dụ: đại lượng hiệu điện thế và cường độ dòng

điện là các đại lượng cần thiết đối với các phần tử liên quan đến điện ; góc và lực quay là

các đại lượng cần thiết cho các phần tử điều khiển bộ sinh chuyển động:

Kết nối connect(Pin1,Pin2), với Pin1 và Pin2 thuộc lớp Pin, kết nối 2 cổng (pin)

thành 1 node Kết nối này ẩn chứa 2 phương trình: Pin1.v = Pin2.v và Pin1.i + Pin2.i = 0

Phương trình đầu tiên chỉ ra rằng hiệu điện thế giữa 2 nhánh kết nối với nhau này là bằng

nhau Phương trình thứ hai chính là định luật Kirchhoff về dòng điện (tổng dòng điện vào,

ra tại một node bằng 0) Các luật tương tự như vậy cũng được áp dụng đối với các hệ thống

khác như: luật liên quan đến tỷ lệ dòng chảy trong các hệ thống mạng đường ống (piping

network) hay luật liên quan đến các lực thẳng, lực quay trong các hệ thống cơ khí Các

phương trình có tổng bằng 0 như ví dụ trên được tạo ra khi dùng tiếp đầu ngữ flow khi

khai báo kết nối Các định nghĩa của các kết nối này cũng được chứa trong thư viện chuẩn

của Modelica

Một đặc tính quan trọng để có thể xây dựng được các mô tả có khả năng tái sử

dụng là định nghĩa và sử dụng lại các mô hình riêng phần (partial models) Một thuộc tính

thông thường của đa số các thiết bị điện tử là chúng có 2 chân Tận dụng tính chất này,

người ta đã định nghĩa một lớp mô hình giao diện (interface model class) OnePort có 2

chân p và n và một đại lượng v để mô tả sự chênh lệch điện thế giữa hai đầu của phần tử

partial model OnePort

Trang 30

end OnePort;

Các phương trình được dùng để định nghĩa mối quan hệ giữa các đại lượng của

một phần tử điện tử đơn giản Từ khóa partial diễn đạt ý nghĩa đây là một mô hình chưa

hoàn chỉnh và do đó không thể được tạo ra một cách cụ thể được (instantiate) Để có thể

tạo được cụ thể (sử dụng) mô hình này chúng ta cần phải bổ sung thêm một phương trình

quan trọng Ví dụ: mô hình cho một điện trở sẽ thừa kế mô hình OnePort ở trên và thêm

vào đại lượng điện trở cũng như thêm vào định luật Ohm để định nghĩa hành vi của nó

model Resistor “Ideal resistor”

Chuỗi giữa tên lớp và thân của nó được xem như thuộc tính chú thích Các công cụ

khác nhau sẽ trình bày các đoạn định nghĩa này hoàn toàn khác nhau Các đại lượng có từ

khóa parameter sẽ không thay đổi trong suốt quá trình mô phỏng thực tế nhưng giá trị của

chúng có thể được thay đổi giữa các lần mô phỏng khác nhau

Ngoài các thành phần cơ bản của ngôn ngữ Modelica đã trình bày, Modelica còn

hỗ trợ các dãy (array) sử dụng các cấu trúc tương tự như của Matlab Các phần tử của các

dãy này có thể là các kiểu dữ liệu cơ bản (Real, Integer, Boolean, String) hay các mô hình

phần tử tổng quát Điều này cho phép dễ dàng mô tả các phương trình sai phân riêng phần

rời rạc đơn giản Một đặc tính duy nhất của Modelica (không còn đúng trong thời điểm

hiện nay) là khả năng xử lý các phần tử có cấu trúc thay đổi và không liên tục như các rờ le

(relay), công tắc (switch), ma sát bề mặt (bearing friction), khớp (clutch), thắng (brake), va

chạm (impact), hệ thống lấy mẫu dữ liệu, hộp số tự động, v.v Cấu trúc đặc biệt của ngôn

ngữ Modelica có thể cho phép các bộ mô phỏng (simulator) xử lý hiệu quả các sự kiện đặc

trưng liên quan đến các phần tử này Các thiết kế ngôn ngữ sẽ đặc biệt nhấn mạnh vào tính

đồng bộ (synchronization), sự lan truyền (propagation) của các sự kiện này và khả năng

tìm được các điều kiện khởi tạo thích hợp (consistent restarting conditions) Cuối cùng,

Trang 31

Modelica còn có khái niệm đóng gói, cho phép người dùng có thể xây dựng một cách có

cấu trúc các thư viện mô hình lớn và có thể tìm một phần tử trong hệ thống tập tin khi biết

được tên lớp cấu trúc của nó trong Modelica

2.2.2 Các thư viện của Modelica

Để các mô hình trong Modelica có thể được trao đổi lẫn nhau (exchange), thư viện

của các thành phần thông thường, chuẩn phải được phát triển rộng rãi và có thể chia sẻ

giữa các ứng dụng Do đó, tổ chức Modelica đã, đang phát triển và duy trì một thư viện

Modelica chuẩn (Modelica Standard Library) Ngoài thư viện này còn có một số thư viện

miễn phí cũng như thương mại khác được phát triển bởi một số cá nhân và tổ chức khác

Hiện nay đã có các thư viện chứa các thành phần như:

• Khoảng 450 định nghĩa kiểu như góc, điện thế, quán tính

• Các hàm toán học như sin, cos, ln

• Các khối vào/ra rời rạc và liên tục như các hàm truyền (transfer function),

bộ lọc (filter), nguồn

• Các phần tử điện và điện tử như điện trở, đi ốt, transistor

• Các phần tử thay đổi một chiều như khối lượng, lò xo

• Các phần tử quay một chiều như quán tính, hộp số, khớp, ma sát bề mặt

• Các phần tử cơ khí 3 chiều như khớp nối, thân và các lò xo 3 chiều

• Các phần tử liên quan đến nước như bơm, van, ống (cylinder)

• Các phần tử liên quan đến thủy-nhiệt

• Các phần tử năng lượng như generator, line

• Các phần tử truyền năng lượng như driver, engine

Trang 32

2.2.3 Các môi trường mô phỏng của Modelica

Để có thể sử dụng được ngôn ngữ Modelica và các thư viện của nó, chúng ta cần

phải có một bộ biên dịch để chuyển một mô hình Modelica thành một dạng có thể được mô

phỏng một cách hiệu quả trong một môi trường mô phỏng thích hợp Bản thân ngôn ngữ

Modelica là một ngôn ngữ tương đối nhỏ bởi vì nó chỉ có một đơn vị có cấu trúc cơ bản

duy nhất là class Tất cả các đơn vị cấu trúc khác như model, block, function, connector,

package, record, type đều chỉ là các trường hợp đặc biệt của cấu trúc class Do đó, việc

phát triển một bộ biên dịch thích hợp là rất cần thiết Bộ biên dịch này sẽ đọc vào một mô

hình Modelica và chuyển nó thành một tập các phương trình vi phân, phương trình đại số

và phương trình rời rạc

Tuy nhiên, việc giải các phương trình này trực tiếp bằng phương pháp số thì không

tin cậy cũng như không hiệu quả:

• Do cách xây dựng các mô hình của Modelica nên tập các phương trình

nguyên thủy sẽ rất lớn Chúng ta có thể làm giảm số ẩn số rõ ràng trong các tích phân trong quá trình biên dịch mà không làm thay đổi hạng của hệ

thống bằng cách sử dụng các giải thuật biến đổi ký hiệu thích hợp như sắp

xếp các phương trình và các biến (BLT-partitioning) và thay thế “thông minh” các biến (tearing)

• Nhiều mô hình Modelica, như các mô hình cơ khí, có chỉ số của hệ phương

trình vi phân đại số (Differential Algebraic Equation system index) là 2 hay

3 (tổng số trạng thái của mô hình nhỏ hơn tổng số trạng thái của các thành phần con) Trong trường hợp này, các phương pháp giải bằng số trực tiếp sẽ gặp khó khăn ở chổ các điều kiện sẽ trở nên xấu hơn khi bước tính tích phân giảm và bước tính bằng 0 sẽ dẫn đến tính kỳ dị (singularity)

• Một vấn đề khác là việc xử lý các phần tử lý tưởng như đi ốt lý tưởng, ma

sát Coulomb Các phần tử này có một hệ thống các phương trình có cả các biến kiểu Real và Boolean nên việc giải các hệ phương trình này một cách tin cậy đòi hỏi phải có các giải thuật chuyên biệt

Thiết kế của Modelica cho phép có thể áp dụng các giải thuật biến đổi dạng ký hiệu

để biến đổi các phương trình vi phân nguyên thủy thành các dạng có thể giải được bằng

Trang 33

các phương pháp chuẩn Ví dụ, để giảm số mũ của phương trình, người ta sẽ sử dụng giải

thuật Pantelides để lấy đạo hàm riêng phần của các phương trình này Tuy nhiên, việc nhận

ra được các giải thuật biến đổi này rất khó và đòi hỏi nhiều kiến thức về toán cũng như

nhiều nổ lực lập trình Modelica hiện đang có các môi trường mô phỏng đã được thương

mại hóa sau:

• Môi trường Dymola của Dynasim (http://www.Dynasim.se) có một bộ biên

dịch Modelica có thể hiện thực tất cả các phép biến đổi cơ bản dạng ký hiệu cho các hệ thống lớn (>100.000 phương trình) cũng như cho các ứng dụng thời gian thật Ngoài môi trường mô phỏng, Dymola cũng cung cấp một bộ công cụ soạn thảo mô hình trực quan cũng như bộ duyệt (browsing) các phần tử và mô hình (tất cả các hình trong phần này đều được chụp từ công

cụ soạn thảo này) Thêm vào đó, Dymola còn cung cấp một giao diện tiện lợi để có thể giao tiếp với Matlab cũng như với bộ mô phỏng các sơ đồ khối phổ biến như Simulink Ví dụ: một mô hình của Modelica có thể được biến đổi thành file dạng S-function C mex-file của Simulink và từ đây chúng có thể được mô phỏng trong Simulink như một khối vào/ra bình thường Điều này cho phép mô hình hóa một cách vô cùng thuận lợi một thiết bị (plant) phức tạp trong Modelica (các hệ thống lớn như vậy rất khó được mô hình với Simulink), xem thiết bị này như là một khối vào/ra trong Simulink từ đó

có thể sử dụng được các bộ điều khiển, bộ lọc trong Simulink và tận dụng tất cả khả năng phân tích và thiết kế của Matlab

• Phần mềm MathModelica của MathCore (http://www.mathcore.com) cung

cấp một môi trường mô phỏng các mô hình Modelica được tích hợp trong phần mềm Mathematica và Microsoft Visio Ví dụ: công cụ Mathematica notebook có thể được dùng để mô tả một cách trực tuyến (online) quá trình cài đặt cũng như quá trình mô phỏng của một mô hình Do được tích hợp một cách chặt chẽ với Mathematica nên MathModelica có thể thực hiện được các phân tích phức tạp, xây dựng các đoạn script cao cấp (advanced scripting) cũng như thực hiện được các tính toán kỹ thuật trên các mô hình

và trên các kết quả mô phỏng Ngoài ra, MathModelica còn có một bộ công

cụ soạn thảo và duyệt các mô hình Bộ công cụ soạn thảo này là một bản

Trang 34

mở rộng của công cụ thiết kế sơ đồ của Microsoft Visio Bên trong nó, MathModelica sử dụng máy mô phỏng và ký hiệu của Dymola cho các biến đổi dạng ký hiệu và mô phỏng

2.3 RoboWorks

RoboWorks là một gói phần mềm dùng để mô hình và biểu diễn hoạt cảnh trong

không gian 3 chiều chủ yếu dành cho các hệ thống cơ khí Những người sử dụng

RoboWorks thường là các kỹ sư làm việc trong các lĩnh vực như: điều khiển, robotics, thiết

kế cơ khí (mechanical design) và phân tích RoboWorks còn được dùng như là một công

cụ có tính giáo dục Ngoài ra, RoboWorks cũng được sử dụng trong các ứng dụng tự động

trong công nghiệp với các giao diện 3 chiều thời gian thực thay vì sử dụng các đồ họa

bitmap thông thường Cuối cùng, RoboWorks còn bổ sung thêm cho các phần mềm mạnh

về đồ họa và biểu đồ như Matlab, LabView, Mathematica,… khả năng mô hình và hoạt

cảnh 3 chiều

RoboWorks cung cấp một phương pháp mô hình phân cấp cơ bản nhưng đầy đủ

Người sử dụng có thể dùng phương pháp này để tạo ra các mô hình 3 chiều bằng cách chọn

lựa từ những thành phần cơ bản đã được cung cấp sẵn và lắp ghép chúng lại với nhau Các

thành phần này là các hình 3 chiều thông thường, hình đã biến đổi, chất liệu,… Các mô

hình phức tạp như trong hình dưới đây cũng có thể được xây dựng từ các thành phần cơ

bản này

Trang 35

Hình 10 Ví dụ về một mô hình thiết kế bằng RoboWorks Tuy nhiên, RoboWorks quá chú trọng đến phần 3D animation, không cho thấy sự

giao tiếp, tương tác, truyền nhận thông tin giữa các thành phần giữa các thành phần Các

thuộc tính của các đối tượng còn nghèo nàn, chỉ tập trung vào vấn đề hiển thị và animation

Ngoài ra, yêu cầu của hệ thống không được thể hiện rõ trong RoboWorks

2.4 Dự án Ptolemy

Dự án Ptolemy được phát triển bởi một nhóm nhà nghiên cứu của đại học

California, Berkeley Mục tiêu của dự án này là nghiên cứu việc mô hình hóa các hệ thống

bất đồng nhất (heterogeneous), mô phỏng và thiết kế các hệ thống đồng thời (concurrent

system), hệ thống thời gian thực (real-time system), hệ thống nhúng (embedded system)

Dự án tập trung vào việc lắp ghép các thành phần đồng thời (concurrent components) với

nhau dựa trên nền tảng là các mô hình tính toán chuẩn Tuy nhiên, đây cũng chính là vấn

đề cơ bản phải giải quyết: cách pha trộn các mô hình tính toán bất đồng nhất với nhau Để

Trang 36

đáp ứng được các yêu cầu và giải quyết các vấn đề nêu trên, nhóm nghiên cứu của E A

Lee đã xây dựng một hệ thống phần mềm (framework) tên là Ptolemy II bằng ngôn ngữ lập

trình Java

Các hệ thống phát triển bởi dự án này còn được gọi là các hệ thống phản ứng

(reactive systems) Hệ thống phản ứng là hệ thống tương tác với môi trường xung quanh

nó với cùng tốc độ của môi trường đó Các hệ thống thuộc loại này thường là các hệ thống

nhúng và chúng tương phản hoàn toàn với hệ thống tương tác (interactive system) và hệ

thống chuyển đổi (transformational system) Các hệ thống tương tác sẽ phản ứng lại môi

trường xung quanh theo tốc độ của bản thân hệ thống còn các hệ thống chuyển đổi sẽ xử lý

các dữ liệu đầu vào để tạo ra được các dữ liệu đầu ra tương ứng Các hệ thống phản ứng

thường có các thành phần như: xử lý tín hiệu, giao tiếp, và điều khiển thời gian thực

Đến nay, nhóm dự án Ptolemy này đã phát triển được 3 phần mềm thiết kế:

2.4.1 Gabriel (1986-1991)

Đây là phần mềm thế hệ đầu tiên được tạo bởi nhóm này [27] Nó được viết bằng

ngôn ngữ LISP và dùng chủ yếu để xử lý tín hiệu Lược đồ khối dòng dữ liệu đồng bộ

(SDF block diagram) và các kỹ thuật định thời song song và tuần tự cho các mô hình SDF

đã được phát triển trong phần mềm này Trong Gabriel có một bộ sinh mã cho các ứng

dụng xử lý tín hiệu số khả lập trình (programable DSP) Bộ sinh mã này tạo được các mã

hợp ngữ rất hiệu quả trên một số bộ xử lý (đặc biệt là các bộ xử lý của Motorola) Gabriel

còn có một bộ mô phỏng đồng thời phần mềm/phần cứng cho phép các mã hợp ngữ sinh ra

này có thể được chạy (sử dụng các tập lệnh mô phỏng) trên môi trường mô phỏng phần

cứng của các kiến trúc đa xử lý

2.4.2 Ptolemy classic (1990-1997)

Phần mềm này bắt đầu được xây dựng bởi E A Lee và Dave Messerschmitt vào

năm 1990 Nó được viết bằng ngôn ngữ C++ [28] Đây là môi trường mô hình hóa đầu tiên

hỗ trợ một cách có hệ thống nhiều mô hình tính toán liên kết phân cấp nhau Ngoài miền

SDF thừa hưởng ở Gabriel, phần mềm này còn phát triển các miền khác như Boolean

dataflow (BDF), dynamic dataflow (DDF), multidimentional synchronous dataflow

(MDSDF) và process network (PN) Phần mềm này cũng tạo thêm bộ sinh mã ngôn ngữ C

và VHDL ngoài bộ sinh mã DSP của Gabriel

Trang 37

2.4.3 Ptolemy II (1996-?)

Hình 11 Ptolemy II framework Nhóm nghiên cứu Ptolemy bắt đầu viết Ptolemy II vào năm 1996 Các lý do chính

để viết lại từ đầu phần mềm này là để khai thác được các công nghệ mới của Java như: khả

năng tích hợp mạng (network intergration), khả năng di chuyển mã (migrating code), khả

năng sử dụng các luồng xây dựng sẵn (built-in threading) và có giao diện thân thiện với

người dùng Ptolemy II có những phát triển mới như hỗ trợ cơ chế đa miền (một thành

phần có thể được thiết kế để có thể hoạt động trên nhiều miền khác nhau), cho phép xây

dựng các mô hình chế độ (modal model) – kết hợp máy trạng thái hữu hạn (finite state

machine) với các mô hình tính toán khác Ptolemy II còn phát triển miền thời gian liên tục

mà khi kết hợp với các mô hình chế độ sẽ tạo ra được mô hình của các hệ thống lai (hybrid

system) Ngoài ra, nó cũng xây dựng được một hệ thống kiểu phức tạp và một ngôn ngữ

biểu thức (expression language) mạnh

2.4.4 Một số hệ thống ứng dụng thực tế của phần mềm Ptolemy II

Hình 12 và Hình 13 là ví dụ về mô hình mạng cảm biến âm thanh được thiết kế

bằng phần mềm Ptolemy II Hình 14 là hệ thống mạng cảm biến âm thanh thực tế ở vùng

nam California và vùng vịnh Alaska Hình 15 thể hiện kiến trúc phân cấp của ứng dụng

mạng lưới quan sát, ứng dụng và quản lý dữ liệu thời gian thực (ROADNet)

Trang 38

Hình 12 Mô hình mạng cảm biến [33]

Hình 13 Bên trong của tác tử Initiator [33]

Trang 39

Hình 14 Ứng dụng thực tế của mạng cảm biến [33]

Hình 15 ROADNet: Real-time Observatories, Applications, and Data management

Network [33]

Từ các tìm hiểu và phân tích trong phần 2 ở trên, chúng ta đã có được một hình

dung khái quát về bối cảnh xuất hiện của đề tài cũng như về các công cụ hiện đang được sử

Re l-Time Data Grid

(Sy tem-En ine r’s V iew)

CODAR Pre-PROC

Archive

Sensors REAP-CC O

O

REAP-SIM

Re l-Time Obs rv tio

Re l-Time Data Proc s in

Datalogger

Sens ors

Nowc st, F re a t an Simulatio Mo el n

(Scientist’s View)

Hybrid Mo el n

(Scientist’s View)

Pu l c nterfa e (Outside-Us r’s View)

Compute Node

UAF/RCAC CODAR NOAA Tide Gauge OSRI Tide Gauge USCG Ice RADAR FAA Meteorology

Prince William Sound NWS Meteorology

OSRI Meteorology USGS Discharge Valdez

Cordova Whittier

Chenega Bay

Tanker Traffic

Gulf of Alaska

Trang 40

dụng phổ biến trong việc mô hình và thiết kế các hệ thống robot nói chung và các tay máy

nói riêng Ở phần này, chúng ta sẽ phân tích đề tài bằng cách xác định các yêu cầu tổng

quát của đề tài, chọn môi trường phát triển, phân tích các kiến thức cơ bản cần phải tìm

hiểu để xây dựng đề tài và cuối cùng là xác định các mục tiêu cụ thể của phần mềm

Trước hết, yêu cầu tổng quát của đề tài là tạo ra là các công cụ:

• Cho phép người sử dụng mô hình hóa được hệ thống mà họ cần thiết kế, từ

đó giúp họ nắm bắt được các yêu cầu của hệ thống một cách rõ ràng hơn

• Cho phép người sử dụng thiết kế hệ thống robot ở các mức trừu tượng khác

nhau

• Có khả năng tính toán theo dạng ký hiệu (symbolic) lẫn dạng số (numeric)

• Cho phép người sử dụng thay đổi được các thông số của các thành phần

trong thiết kế và thấy ngay lập tức các ảnh hưởng của việc thay đổi này

• Thiết kế robot tương đối trực quan

• Cho phép thiết kế hệ thống điều khiển và mô phỏng robot

Sau khi nắm bắt được các yêu cầu của đề tài, câu hỏi đầu tiên được đặt ra là: đề tài

sẽ xây dựng một hệ thống độc lập từ đầu hay phát triển dựa trên các môi trường sẵn có?

Câu trả lời ở đây là nếu có môi trường có sẵn nào thích hợp với yêu cầu của đề tài thì

chúng ta sẽ phát triển dựa trên môi trường đó Vậy thì vấn đề kế tiếp sẽ là vấn đề chọn môi

trường nào? Simulink, Modelica hay RoboWorks? Câu trả lời là: môi trường Ptolemy II

(Ptolemy Framework) và lý do chọn môi trường này sẽ được trình bày cụ thể trong các

phần tiếp theo Tiếp theo, để hoàn thành được các yêu cầu của đề tài đã nêu trên, ta cần

phải tìm hiểu các kiến thức cơ bản (xem phần 4) về:

• Robotics: động học, động lực học, điều khiển,… để có thể tạo được các công cụ

cần thiết trong lĩnh vực này

• Môi trường Ptolemy, cách tùy biến Ptolemy, ngôn ngữ Java và nắm bắt được

mối liên hệ giữa Ptolemy với các hệ thống điều khiển trong robotics

• Maple và khả năng liên kết Maple với Ptolemy để tạo được khả năng tính toán

dạng ký hiệu cho các công cụ của đề tài

Ngày đăng: 16/04/2021, 04:18

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] John J.Craig, “Introduction to Robotics – Mechanics and Control”, Sima Inc. 2nd edition 1989 Sách, tạp chí
Tiêu đề: Introduction to Robotics – Mechanics and Control
[3] B. Markiewicz, “Analysis of the Computed Torque Drive Method and Comparision with Conventional Position Servo for a Computed-Controlled Manipulator”, Jet Propulsion Laboratory Technical Memo 33-601, March 1973 Sách, tạp chí
Tiêu đề: Analysis of the Computed Torque Drive Method and Comparision with Conventional Position Servo for a Computed-Controlled Manipulator
[4] A. Bejezy, “Robot arm Dynamic and Control”, Jet Propulsion Laboratory Technical Memo 33-669, Febuary 1974.[5] Matlab document Sách, tạp chí
Tiêu đề: Robot arm Dynamic and Control
[6] Edward A. Lee, “Embedded Software”, Advances in Computers (M. Zelkowitz, editor), vol. 56, Academic Press, London, 2002 Sách, tạp chí
Tiêu đề: Embedded Software
[8] Edward A. Lee, Stephen Neuendorffer, “Actor-oriented design of embedded hardware and software systems”, Journal of Circuits, Systems, and Computers Vol.12, No. 3 (2003) 231-260 Sách, tạp chí
Tiêu đề: “Actor-oriented design of embedded hardware and software systems”
[11] Peter I. Corke, “A robotics toolbox for Matlab”, IEEE Robotics and Automation Magazine, p24-32, March, 1996 Sách, tạp chí
Tiêu đề: A "robotics toolbox for Matlab
[12] K. S. Fu, R. C. Gonzalez và C. S. G. Lee, “Robotics: Control, Sensing, Vision and Intelligence”, McGraw-Hill, 1987 Sách, tạp chí
Tiêu đề: Robotics: Control, Sensing, Vision and Intelligence
[13] C. S. G. Lee, R. Nigham, “Development of the generalized d’Alembert equation of motion for mechanical manipulators”, in Proc. 22nd CDC (San Antonio, Texas), pp. 1205-1210, 1983 Sách, tạp chí
Tiêu đề: Development of the generalized d’Alembert equation of motion for mechanical manipulators
[14] T. Kane and D. Levinsion, “The use of Kane’s dynamical equations in robotics” Intl. J. Robot. Res., vol. 2, pp. 3-21, Fall 1983 Sách, tạp chí
Tiêu đề: The use of Kane’s dynamical equations in robotics
[15] M. H. Raibert and B. K. P. Horn, “Manipulator control using the configuration space method”, The Industrial Robot, pp. 69–73, June 1978 Sách, tạp chí
Tiêu đề: “Manipulator control using the configuration space method
[16] A. Bejczy, “Robot arm dynamics and control”, Tech. Rep. NASA-CR-136935, NASA JPL, Feb. 1974 Sách, tạp chí
Tiêu đề: Robot arm dynamics and control
[17] R. Paul, “Modelling, trajectory calculation and servoing of a computer controlled arm” Tech. Rep. AIM-177, Stanford University, Artificial Intelligence Laboratory, 1972 Sách, tạp chí
Tiêu đề: Modelling, trajectory calculation and servoing of a computer controlled arm
[18] D. Orin, R. McGhee, M. Vukobratovic, and G. Hartoch, “Kinematics and kinetic analysis of open-chain linkages utilizing Newton-Euler methods”, Mathematical Biosciences, an International Journal, vol. 43, pp. 107–130, Feb.1979 Sách, tạp chí
Tiêu đề: Kinematics and kinetic analysis of open-chain linkages utilizing Newton-Euler methods
[19] W. Armstrong, “Recursive solution to the equations of motion of an n-link manipulator,” in Proc. 5 th World Congress on Theory of Machines and Mechanisms, (Montreal), pp. 1343–1346, July 1979 Sách, tạp chí
Tiêu đề: Recursive solution to the equations of motion of an n-link manipulator,”
[20] J. Y. S. Luh, M. W. Walker, and R. P. C. Paul, “On-line computational scheme for mechanical manipulators”, ASME Journal of Dynamic Systems, Measurement and Control, vol. 102, pp. 69–76, 1980 Sách, tạp chí
Tiêu đề: On-line computational scheme for mechanical manipulators”
[21] J. Hollerbach, “A recursive Lagrangian formulation of manipulator dynamics and a comparative study of dynamics formulation complexity”, IEEE Trans.Syst. Man Cybern., vol. SMC-10, pp. 730–736, Nov. 1980 Sách, tạp chí
Tiêu đề: A recursive Lagrangian formulation of manipulator dynamics and a comparative study of dynamics formulation complexity
[22] W. M. Silver, “On the equivalence of Lagrangian and Newton-Euler dynamics for manipulators”, Int. J. Robot. Res., vol. 1, pp. 60–70, Summer 1982 Sách, tạp chí
Tiêu đề: On the equivalence of Lagrangian and Newton-Euler dynamics for manipulators
[23] C. Wampler, “Computer Methods in Manipulator Kinematics, Dynamics, and Control: a Comparative Study”, PhD thesis, Stanford University, 1985 Sách, tạp chí
Tiêu đề: Computer Methods in Manipulator Kinematics, Dynamics, and Control: a Comparative Study
[24] Jie Liu, Johan Eker, Xiaojun Liu, John Reekie, Edward A. Lee, “Actor- oriented control system design”, IEEE Trans. on Control System Technology, March 2002 Sách, tạp chí
Tiêu đề: Actor-oriented control system design
[25] Jie Liu, Johan Eker, Xiaojun Liu, Edward A. Lee, “Heterogeneous Modeling and Design of Control Systems”, Software-Enabled Control: Information Technology for Dynamical Systems, Tariq Samad and Gary Balas (eds.), Wiley-IEEE press, April 2003 Sách, tạp chí
Tiêu đề: Heterogeneous Modeling and Design of Control Systems

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w