Lý thuyết kỹ thuật robot 10 

Một phần của tài liệu Điều khiển mô hình con lắc ngược đôi bằng phương pháp LQG (Trang 27)

1.5.1 Tính các ma trận biến xoay

Để hiểu hơn về cách tìm động năng và thế năng của hệ thống, ta cần sử dụng các ma trận trong lý thuyết robot để tìm vị trí. (sử dụng trong tính tốn tìm phương trình trạng thái bằng Maple)

Giả sử rằng hệ tọa độ tham chiếu O-xyz quay một góc α quanh trục z, và đặt O- x’y’z’ là hệ tọa độ được quay. Các vector đơn vị của hệ tọa độ mới có thể mơ tả theo các thành phần của chúng so với hệ tọa độ tham chiếu. Xem các hệ tọa độ nhận được thông qua các phép quay cơ bản của hệ tọa độ tham chiếu thì các phép quay này là dương nếu quay theo ngược chiều kim đồng hồ quanh trục tương đối [3].

Giả sử hệ tọa độ tham chiếu O-xyz quay góc α quay trục z, đặt O-x’y’z’ là hệ tọa độ được quay, vector đơn vị của hệ tọa độ mới được mô tả theo các thành phần của chúng theo hệ tọa độ tham chiếu là [3].

x = cosα sinα 0 y = sinα cosα 0 z = 0 0 1

Ma trận quay quanh z của O-x’y’z’

R (α) = cosαsinα cosαsinα 00

0 0 1

Tương tự ta cũng tìm được:

Ma trận quay quanh y của O-x’y’z’

R () = cos0 0 sin1 0

sin 0 cos

Ma trận quay quanh x của O-x’y’z’

R () = 10 cos0 sin0

0 sin cos

1.5.1.1 Phép quay quanh các trục toạ độ

Giả sử ta cần quay 1 điểm hay vật thể xung quanh 1 trục nào đó với góc quay  ta lần lượt có các ma trận chuyển động quay như sau [15]:

Rot(x, )= 1 0 0 0 0 cos sin 0 0 sin cos 0 0 0 0 1 Rot(y, )= cos 0 sin 0 0 1 0 0 sin 0 cos 0 0 0 0 1 Rot(z, )= cos sin 0 0 sin cos 0 0 0 0 1 0 0 0 0 1

1.5.1.2 Phép tịnh tiến trên các trục toạ độ

Giả sử ta cần tịnh tiến 1 điểm hay vật thể trên 1 trục nào đó ta sẽ có các ma trận chuyển đổi như sau [15]:

Ma trận chuyển đổi tịnh tiến theo trục O X một đoạn d là : Trans (X , d) =

1 0 0 d 0 1 0 0 0 0 1 0 0 0 0 1

Ma trận chuyển đổi tịnh tiến theo trục O Z một đoạn d là: Trans (Z , d) =

1 0 0 0 0 1 0 0 0 0 1 d 0 0 0 1

CHƯƠNG 2 : PHẦN MỀM MAPLE, PHẦN MỀM LABVIEW VÀ ỨNG DỤNG

2.1 Phần mềm maple 2.1.1 Giới thiệu phần mềm

Maple là một gói phần mềm tốn học thương mại phục vụ cho nhiều mục đích. Nó phát triển lần đầu tiên vào năm 1980 bởi Nhóm Tính tốn Hình thức tại Đại học Waterloo ở Waterloo, Ontario, Canada.

Từ năm 1988, nó đã được phát triển và thương mại hóa bởi Waterloo Maple Inc. (cịn được biết đến với tên gọi Maplesoft), một công ty Canada cũng có trụ sở tại Waterloo, Ontario. Phiên bản hiện tại là Maple 13 được phát hành vào tháng 5 năm 2009. Đối thủ cạnh tranh chính của nó là Mathematica [14].

2.1.1.1 Chức năng cốt lõi

Người dùng có thể nhập biểu thức tốn học theo các ký hiệu tốn học truyền thống. Có thể dễ dàng tạo ra những giao diện người dùng tùy chọn. Maple hỗ trợ cho cả tính tốn số và tính tốn hình thức, cũng như hiển thị. Nhiều phép tính số học được thực hiện dựa trên thư viện số học NAG; trong Maple, các chương trình con NAG đã được mở rộng để cho phép độ chính xác ngẫu nhiên lớn. Các ví dụ về tính tốn hình thức sẽ được trình bày trong phần sau.

Maple cũng có một ngơn ngữ lập trình cấp cao đầy đủ. Cũng có giao diện cho những ngơn ngữ khác (C, Fortran, Java, MatLab, và Visual Basic). Cũng có một giao diện dành cho Excel [14].

2.1.1.2 Kiến trúc

Phần lớn Maple được viết bằng ngôn ngữ java. Maple chạy trên tất cả các hệ điều hành chính.

Ngơn ngữ lập trình Maple là một ngơn ngữ kiểu động. Cũng giống như các hệ thống đại số máy tính, các biểu thức hình thức được lưu trữ trong bộ nhớ theo đồ thị khơng chu

Ngơn ngữ có hình thức lập trình hàm, nhưng cũng có hỗ trợ đầy đủ cho lập trình truyền thống, theo kiểu mệnh lệnh [14].

Một điều lạ đối với chương trình thương mại, đa số mã nguồn đều có thể xem tự do.

2.1.1.3 Nguồn gốc tên gọi

Tên "Maple" không phải là tên viết tắt hoặc từ cấu tạo bằng chữ đầu, mà chỉ đơn giản là để chỉ hình tượng Lá phong (tiếng Anh: maple) trên Quốc kỳ Canada [14].

2.1.2 Tổng quan về Maple 2.1.2.1 Title Bar 2.1.2.1 Title Bar

Chứa chương trình và tệp đang mở

2.1.2.2 Menu Bar

Chứa các chức năng, ứng với mỗi chức năng là một thực đơn dọc tương ứng.

2.1.2.3 Tool Bar

Chứa một số biểu tượng thể hiện một số lệnh thông dụng để người sử dụng thao tác nhanh.

2.1.2.4 Formatting Bar

Dùng để định dạng cho phép bạn định dạng văn bản tương tự như trong Microsoft Word các phép tính, các đồ thị tốn học đều sẽ hiện thị ở đây.

Hình 2.2 Menu bar Hình 2.1 Title Bar

Hình 2.3 Tool Bar

2.1.2.5 Vùng làm việc

Là khu vực chiếm nhiều diện tích nhất. Các lệnh, các cơng thức tốn học, các phép tính, các đồ thị tốn học đều sẽ hiện thị ở đây.

2.1.2.6 Hộp thoại Quick Help

Chứa các trợ giúp nhanh của chương trình.

2.1.3 Một số lệnh thường sử dụng trong Menu Bar

File: chứa các lệnh liên quan tới các thao tác với tệp tin. New: Tạo một tệp mới.

Open: Mở một tệp đã có.

Save: Lưu tệp tin đang soạn thảo với dạng *.mw hoặc *.mws.

Save As: Lưu tệp đang mở sang một tệp mới và đặt tên cho tệp mới này.

Hình 2.5 Vùng làm việc của Maple

Export As: Chuyển đổi tệp đã soạn thảo sang một số dạng khác như: Plain Text, LaTeX, HTML ….

Close: Đóng tệp đang làm việc. Print: In tệp đang làm việc. Exit: Thoát khỏi Maple.

Edit: chứa các lệnh liên quan tới sao chép, cắt, dán, xóa bỏ, … các đoạn khi làm việc với một tệp

View: chứa tập hợp các lệnh liên quan tới giao diện làm việc của Maple.

Toolbar: Chứa các lệnh tắt khi làm việc với văn bản thể hiện bằng các biểu tượng. Context Bar: Chứa tập hợp lệnh hỗ trợ cho việc định dạng văn bản (đậm, nghiêng, chọn font, cỡ chữ, …).

Zoom Factor: Chứa các lệnh về điều khiển kích cỡ của font chữ của trang đang làm việc trên màn hình.

Expand All Selections: Mở tất cả các mục trong trang đang làm việc. Collapse All Selections: Đóng tất cả các mục của trang đang làm việc. Insert: chứa các lệnh về chèn thêm thông tin vào một tệp đang làm việc. Text: Chuyển sang chế độ soạn thảo văn bản.

Maple Input: Chuyển từ text sang dạng lệnh của Maple (thực hiện các lệnh liên quan tới toán học).

Execution Group: Chèn vào một cụm xử lý trước vị trí con trỏ (Before Cursor) hoặc phía sau con trỏ (After Cursor).

Paragraph: Chèn vào một đoạn văn bản mới trước con trỏ (Before Cursor) hoặc sau con trỏ (After Cursor).

Section: Chèn vào một mục mới.

Subsection: Chèn vào một mục con (của mục đang chứa con trỏ).

2-D Math (Standard Math): Chèn trực tiệp một biểu thức tốn học vào vị trí con trỏ. Hyperlink: Liên kết với các tệp đã có hoặc dịch chuyển con trỏ giữa các trang làm việc.

Format: chứa các lệnh về định dạng các thành phần văn bản của trang đang làm việc. Style: Định dạng các thành phần của trang làm việc như các đoạn, các tiêu đề, … Paragraph: Định dạng các thành phần của đoạn văn bản.

Character: Định dạng một cụm kí tự.

Convert: Chuyển đổi một cụm kí tự sang biểu thức tốn học, lệnh của Maple hay siêu liên kết.

2.1.4 Các mơi trường làm việc trong Maple

Chương trình Maple có 5 mơi trường làm việc là Text, Math, Draw, Plot, Animation. Đối với người dùng cơ bản thường thì chỉ thao tác trên 2 mơi trường là Text và Math các mơi trường cịn lại tương đối ích sử dụng.

2.1.4.1 Text

Là môi trường soạn thảo văn bản trong mơi trường này bạn có thể soạn thảo văn bản trong Maple và định dạng nó tương tự như trong chương trình Word của Microsoft.

2.1.4.2 Math

Là mơi trường tốn học trong mơi trường này bạn có thể thực hiện các phép tính số học, đại số, giải tích, vẽ đồ thị hàm số…

Đây cũng là môi trường được sử dụng nhiều nhất trong 5 mơi trường của chương trình và cũng là mơi trường mặc định mỗi khi bạn khởi động Maple.

2.1.4.3 Drawing

Là một môi trường cho phép bạn vẽ thêm các đường hoặc các hình cơ bản như hình tam giác, hình vng, hình trịn…vào đồ thị của một hàm số bất kì.

Hình 2.7 Text

2.1.4.4 Plot

Là một môi trường cho phép bạn tùy chỉnh lại một số thông số của đồ thị hàm số.

2.1.4.5 Animation

Là môi trường cho phép bạn tạo các hiệu ứng chuyển động.

Bạn có thể chọn chuyển đổi qua lại giữa các môi trường bằng cách chọn vào biểu tượng tương ứng có trên thanh cơng cụ.

2.1.5 Một số lưu ý

2.1.5.1 Một số điều qui định khi nhập lệnh

Kết thúc câu lệnh: Mỗi câu lệnh được kết thúc bởi dấu; (thì in kết quả ra màn hình) hoặc dấu: (khơng in kết quả).

Thi hành câu lệnh: Sau khi kết thúc lệnh thì ấn phím Enter để thực hiện lệnh.

Các câu lệnh có thể được đánh dấu, sao chép theo cách thức như trong hệ điều hành Windows.

2.1.5.2 Một số điều cần chú ý

Có phân biệt chữ hoa và chữ thường. Ví dụ: Int và int là hai lệnh khác nhau.

Để tạo một chú thích cho câu lệnh, ta dùng dấu # trước đoạn văn ghi chú. Ví dụ: # Tính tích phân

Dùng lệnh restart để khởi tạo mới các biến, hàm đã sử dụng trước đó.

Cần tra cứu cú pháp câu lệnh ta dùng mục Help trên thanh thực đơn của Maple. muốn tra cứu nhanh thì dùng dấu? và tên mục cần tra cứu.

Ví dụ: ?plot ?ifactor

2.1.6 Dữ liệu trong maple [4] 2.1.6.1 Các phép toán 2.1.6.1 Các phép toán

Số học: +, -, *, /, ^ hay **, !... So sánh: <, <=, >, >=, =, <>… Logic: and, or, not

2.1.6.2 Kiểu dữ liệu

Dữ liệu Tên kiểu Ví dụ

Số nguyên integer 123

Phân số fraction 12/3

Số thực float 12.3456

Số phức Complex a+bI (I chữ hoa)

Xâu kí tự string “ab cd12”

Dãy exprseq a,b,c

Tập hợp set {a,b,c}

Danh sách list [a,b,c]

Miền range 1..3 hay a…f

Bảng 2.1 Bảng kiểu dữ liệu [4]

2.1.6.3 Các hàm số cho số nguyên (Integer).

Tên hàm số Ý nghĩa

abs(x) Trị tuyệt đối của x

min(x1, x2,…) Giá trị nhỏ nhất của x1, x2…

max(x1, x2,…) Giá trị lớn nhất của x1, x2,….

irem(m, n) Dư số trong phép chia m/n

iquo(m, n) Thương số thong phép chia m/n

igcd(n1, n2,…) Ước số chung lớn nhất của n1, n2,…

ilcm(n1, n2,….) Bội số chung nhỏ nhất của n1, n2,….

isprime(n) Kiểm tra xem số n có là số ngun tố

khơng.

nextprime(n) Số ngun tố nhỏ nhất và >= n

prevprime(n) Số nguyên tố lớn nhất và <= n

ithprime(n) Số nguyên tố thứ n trong dãy các số

nguyên tố

ifactor(n) Thừa số nguyên tố của n

Bảng 2.2 Bảng các hàm cho số nguyên [4]

2.1.6.4 Các hàm số cho số thực (Float)

Exp(x)

Ln(x) hay log(x) lo logarit nêpe (cơ số e) của x

log10(x) , log[b](x) logarit thập phân lgx, logarit cơ số b

sqrt(x) hàm căn bậc hai : √

sin(x) , cos(x) , tan(x), cot(x) sinx , cosx, tgx, cotgx

sec(x) , csc(x) 1/cosx , 1/sinx

arcsin(x) , arccos(x), arctan(x), arccot(x) arcsinx , arccosx, arctgx , arccotgx

sinh(x) , cosh(x) ,

tanh(x) = sinh(x) / cosh(x) coth(x) = cosh(x) / sinh(x)

Bảng 2.3 Bảng các hàm số thực [4]

2.1.7 Các lệnh thường sử dụng trong Maple 2.1.7.1 Khai triển 2.1.7.1 Khai triển

Lệnh expand (Biểu thức) sẽ khai triển biểu thức đại số theo các qui tắc lũy thừa, hàm mũ, hàm logarit, lượng giác.

2.1.7.2 Rút gọn biểu thức số

Lệnh collect nhóm các số hạng theo các biến hoặc hàm.

2.1.7.3 Tính giá trị

Dùng lệnh evalf (Biểu thức, n), n số chữ số.

2.1.7.4 Đổi dạng số

Lệnh convert (bthức, ‘kiểu’)

2.1.7.5 Nghiệm đa thức

Lệnh roots(f) cho ra nghiệm hữu tỷ dạng: [ [x1, n1] … [xk, nk]]

Với kí hiệu [x1, n1] nghĩa là nghiệm x1, bội n1: (x-x_1)^n1 Lệnh solve(f, x) cho ra nghiệm thực hoặc nghiệm phức:

2.1.7.6 Phân tích đa thức thành tích số

Lệnh factor(f,real); hoặc factor(f,complex);

2.1.7.7 Khai triển phân thức thành tổng phân thức đơn giản

Lệnh: convert(f ,parfrac , x);

2.1.7.8 Giải phương trình, bất phương trình

Dùng lệnh: solve(eqn, var)

Trong đó: eqn là phương trình hoặc bất phương trình ẩn x. Để giải phương trình đệ quy ta dùng lệnh rsolve.

2.1.7.9 Giải hệ phương trình, hệ bất phương trình

Dùng lệnh: solve(f1, f2)

Với f1 và f2 là các phương trình.

Giải gần đúng: phương trình hoặc bất phương trình ta dùng lệnh: fsolve( eqns, vars, options ); eqns là phương trình hoặc hệ phương trình.

vars là tập hợp ẩn.

options là tham số điều khiển lời giải như: complex, a..b, …

2.1.7.10 Định nghĩa hàm số mới

Ngoài các hàm số đã được định nghĩa sẵn, Maple cung cấp cho người sử dụng công cụ để tạo them các hàm số mới theo cú pháp sau:

Tên Hàm Số: = (DanhSáchBiến) -> Công Thức Hàm Số; Hàm đệ quy:

If Điều Kiện then Công thức 1 else CôngThức2 fi;

hoặc

If Điều Kiện 1 then Công thức 1

elseif Điều Kiện 2 then Công Thức 2

else Cơng Thức 3 fi;

Trong đó các từ in đậm là từ khóa bắt buộc phải có.

2.1.7.11 Đạo hàm cấp 1

2.1.7.12 Đạo hàm cấp n

Đạo hàm cấp 2: diff(f(x), x, x); hay diff(f(x), x$2) Đạo hàm cấp n: diff(f(x), x$n);

2.1.7.13 Tích phân

Câu lệnh:

int(expr, x) : Tích phân bất định.

int(expr, x=a..b, ...) : Tích phân xác định. Int(expr, x) : Ký hiệu tích phân bất định.

Int(expr, x=a..b, ...) : Ký hiệu tích phân xác định. Trong đó:

expr – một biểu thức đại số. x – tên biến tích phân. a, b – cận tích phân. ... – tùy chọn.

2.1.7.14 Tích phân bội

Để tính tích phân kép, trước tiên ta dùng lệnh: with(student) để mở tiện ích student cho phép dùng các lệnh sau :

Doubleint(g, x, y);

Doubleint(g, x=a..b, y=c..d); Doubleint(g, x, y, Domain); Trong đó:

g: biểu thức cần tích phân.

x, y: biến tích phân và chú ý đến thứ tự biến lấy tích phân. Domain: tên miền tích phân.

2.1.7.15 Tích phân bội ba

Tương tự tích phân kép chỉ khác dùng lệnh: Tripleint(g, x, y, z);

Tripleint(g, x, y, z, Domain);

2.1.7.16 Tổng riêng – chuỗi số

sum(f,k); Tính tổng của f(k) theo công thức g(k) thỏa: g(k+1)-g(k)=f(k) mọi k. sum(f,k=m..n); Tính tổng: f(m) + f(m+1) + ... + f(n)

sum(f,k=alpha); Tính tổng biểu thức f(k) với k = alpha là nghiệm của đa thức, thường dùng lệnh RootOf.

2.1.7.17 Chuỗi taylor

series(expr, eqn) series(expr, eqn, n) trong đó:

expr – một biểu thức hay hàm theo x cần khai triển thành chuỗi. eqn – tên biến x hoặc phương trình dạng x=a để khai triển tại 0 hay a.

n – (tùy chọn) là số nguyên không âm n, khai triển đến cấp n, giá trị ngầm định n=6. 2.1.7.18 Tạo ma trận Câu lệnh: matrix(L) matrix(m, n) matrix(m, n, L) matrix(m, n, f) trong đó: m, n - số nguyên dương chỉ số hàng và số cột. L - Danh sách hoặc vectơ

f - một hàm số dùng để tạo các phần tử của ma trận.

2.1.7.19 Ma trận chuyển vị

transpose(M); Với M là ma trận.

2.1.7.20 Định thức Câu lệnh: det(M); 2.1.7.21 Hạng ma trận Câu lệnh: rank(M); 2.2 Phần mềm Labview 2.2.1 LabVIEW là gì?

LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) là một phần mềm máy tính được phát triển bởi National Instruments. LabVIEW dùng trong hầu hết các phịng thí nghiệm, lĩnh vực khoa học kỹ thuật như tự động hóa, điều khiển, điện tử, cơ điện tử, hàng khơng, hóa sinh, điện tử y sinh ở các nước đặc biệt là Mỹ, Hàn quốc, Nhật Bản [5].

Ngôn ngữ lưu đồ đồ họa của LabVIEW hấp dẫn các kỹ sư và nhà khoa học trên toàn thế giới như một phương pháp trực giác hơn trong việc tự động hóa các hệ thống đo lường và điều khiển. Ngôn ngữ lưu đồ kết hợp với I/O gắn liền và điều khiển giao diện người sử dụng tương tác cùng đèn chỉ báo làm cho LabVIEW trở thành một sự lựa chọn lý tưởng cho kĩ sư và nhà khoa học [5].

2.2.2 Khả năng điều khiển và giao tiếp với thiết bị ngoại vi

LabVIEW đã tích hợp nhiều cơng cụ và tính năng hơn giúp kỹ sư điều khiển tự động dễ dàng thực hiện các bài toán về điều khiển. Cho phép thực hiện các thuật toán điều khiển như PID, Logic mờ (Fuzzy), một cách nhanh chóng thơng qua các chức năng tích hợp sẵn trong LabVIEW. Cho phép kết hợp với nhiều ngôn ngữ truyền thống như C, C++ [5].

Giao tiếp với các thiết bị ngoại vi thông qua nhiều chuẩn giao tiếp thông qua các cổng giao tiếp: RS232, RS485, USB, PCI, Enthernet [5].

2.2.3 Tổng quan về phần mềm LabView 2.2.3.1 Front Panel 2.2.3.1 Front Panel

Front panel là một panel tương tự như panel của thiết bị thực tế. Ví dụ các nút bấm, nút bật, các đồ thị và các bộ điều khiển. Từ Front Panel người dùng chạy và quan sát kết quả có thể dùng chuột, bàn phím để đưa dữ liệu vào sau đó cho chương trình chạy và quan

Một phần của tài liệu Điều khiển mô hình con lắc ngược đôi bằng phương pháp LQG (Trang 27)

Tải bản đầy đủ (PDF)

(93 trang)