Tổng quan về phần mềm LabView 25

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 42)

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 sát. Front Panel thường gồm các bộ điều khiển (Control) và các bộ hiển thị (Indicator) [5].

Control là các đối tượng được đặt trên Front Panel để cung cấp dữ liệu cho chương

trình. Nó tương tự như đầu vào cung cấp dữ liệu. Indicator là đối tượng được đặt trên Front Panel dùng để hiện thị kết quả, nó tương tự như bộ phận đầu ra của chương trình [5].

2.2.3.2 Block Diagram

Block diagram của một VI là một sơ đồ được xây dựng trong môi trường LabVIEW, nó có thể gồm nhiều đối tượng và các hàm khác nhau để tạo các cấu trúc lệnh để chương trình thực hiện. Block Diagram là một mã nguồn đồ họa của một VI. Các đối tượng trên Front Panel được thể hiện bằng các thiết bị đầu cuối trên Block Diagram, không thể loại bỏ các thiết bị đầu cuối trên Block Diagram. Các thiết bị đầu cuối chỉ mất đi sau khi loại bỏ đối tượng tương ứng trên Front panel [5].

Cấu trúc của một Block Diagram gồm các thiết bị đầu cuối (Terminal), nút (Node) và các dây nối (wire) [5].

Khác với những ngôn ngữ lập trình khác, ngôn ngữ lập trình LabVIEW ngoài những menu quen thuộc giống như những ngôn ngữ khác. LabVIEW còn sử dụng các bảng: Tools Palette, Controls Palette, Function Palette, chính những bảng này làm cho LabVIEW khác với các ngôn ngữ sử dụng những câu lệnh rườm rà khó nhớ. Các bảng đó cung cấp các chức năng để người sử dụng có thể tạo và thay đổi trên Front Panel và Block Diagram bằng các biểu tượng, các hình ảnh trực quan giúp cho việc sử dụng trở nên dễ dàng, linh động hơn [5].

2.2.3.3 Tool palette

Tool Panel xuất hiện trên cả Font Panel và Block Diagram. Bảng này cho phép người sử dụng có thể xác lập các chế độ làm việc đặc biệt của con trỏ chuột. Khi lựa

chọn một công cụ, biểu tượng của con trỏ sẽ được thay đổi theo biểu tượng của công cụ đó. Nếu thiết lập chế độ tự động lựa chọn công cụ và người sử dụng di chuyển con trỏ qua các đối tượng trên Front Panel hoặc Block Diagram, LabVIEW sẽ tự động lựa chọn công cụ phù hợp trên bảng Tool Palette [5].

Hình 2.10 Cửa sổ block diagram

2.2.3.4 Controls Palette (bảng điều khiển)

Bảng điều khiển chỉ duy nhất xuất hiện trên Front panel. Bảng điều khiển chứa các bộ điều khiển (control) và các bộ hiển thị (Indicator). Bảng điều khiển đầy đủ được minh họa như hình bên đưới. Để mở bảng controls palette ta vào menu View, chọn controls palette [5].

Bảng điều khiển được sử dụng để người sử dụng thiết kế cấu trúc mặt hiển thị gồm các thiết bị ví dụ: các công tắc, các loại đèn, các loại màn hình hiển thị… Với bảng điều khiển này, người sử dụng có thể chọn các bộ thiết bị chuẩn do hãng sản xuất cung cấp ví dụ công tắc nhưng cũng có thể chọn các thiết bị do người sử dụng tự xây dựng. Bảng điều khiển dùng để cung cấp dữ liệu đầu vào và hiển thị kết quả đầu ra [5].

Trên bảng controls palette thể hiện khá phong phú các bộ điều khiển khác nhau như trên hình.

2.2.3.5 Function palette

Bảng Functions Palette chỉ xuất hiện trên Block Diagram. Bảng này chứa các VI và các hàm mà người sử dụng thiết kế để tạo dựng nên các khối lưu đồ. Với bảng Function Palette, người lập trình thực hiện các lệnh khác nhau bằng các lưu đồ như: các phép tính số học, các biểu thức toán học, các vòng lặp, phép lựa chọn thông qua các nhóm hàm, chức năng đã được cung cấp bên cạnh đó bảng này có thể tạo ra và sử dụng lại các hàm, chức năng mà người sử dụng tự xây dựng. Các hàm toán học được minh họa thông qua các biểu tượng. Khi muốn lựa chọn thực hiện một hàm nào đó thì người sử dụng chọn biểu tượng thể hiện cho hàm đó và có thể kéo thả ở bất kỳ vị trí nào trên Block Diagram sau đó xác định những đầu vào và đầu ra cần thiết [5].

Hình 2.12 Controls Palette

Hình 2.13 Function palette

2.2.3.6 Các phép toán cơ bản

Cộng, Trừ, Nhân, Chia, Cộng 1, Trừ 1, Bình phương, Đảo dấu, Hàm Random, Dịch bit, ….

2.2.3.7 Các phép so sánh

So sánh hơn, so sánh bằng, bằng 0, khác 0, lấy số dư….

2.2.3.8 Các phép logic

And, or, xor, not, true, false…

2.2.3.9 Các hàm toán học phức tạp

Lũy thừa, Logarit, hàm lượng giác, hàm với các ma trận, hàm nội suy, hàm tối ưu...

2.2.3.10 Các hàm về mảng

Trong việc lập trình đôi khi chúng ta cần xử lý một số các dãy số mà mỗi phần tử trong đó có thể được xử lý như từng thành phần riêng biệt, vì vậy mà ta cần tới mảng. Các mảng ở đây có thể là mảng một chiều (một cột hoặc một véc tơ), mảng 2 chiều, mảng 3 chiều.

Array Max & Min: Hàm này có chức năng tìm kiếm số lớn nhất và số nhỏ nhất của các số trong mảng. Hàm này thường trả về kết quả để hiển thị.

Build array: Hàm này xây dựng mảng hoặc phần từ mảng.

Index array: Hàm này trả về một phần tử hoặc phân đoạn của mảng. Array subset: Trả về một mảng theo yêu cầu.

Array Size: Tìm kích thước mảng.

Delete From Array: Xóa phần tử trong mảng. Insert Into Array: Chèn phần tử trong mảng.

2.2.3.11 Thời gian thực thi vòng lặp và các hàm Delay

Để có thể thiết lập thời gian thực thi cho các vòng lặp này một cách gần đúng, ta sử dụng các hàm Delay.

Hàm Wait thực hiện phép Delay thời gian cho trước sau khi thực hiện các tác vụ trong hàm While, còn hàm Wait Until ms Multiple cố định thời gian thực hiện

các tác vụ trong hàm While với khoảng thời gian định trước, bất kể các tác vụ trong hàm là gì [5].

2.2.3.12 Các cấu trúc điều khiển luồng chương trình

Trong bất cứ ngôn ngữ lập trình nào, ta cũng hay thường gặp và làm việc với các phần tử điều khiển luồng chương trình, đó là các cấu trúc (Structures). Các cấu trúc điều khiển luồng chương trình trong một VI có 5 cấu trúc là: For Loop, While Loop, Case Structure, Sequence Structure và Fomula Node.

Các cấu trúc đó thực hiện tự động khi dữ liệu đầu vào của chúng có sẵn và thực hiện các công việc theo ý muốn cho tới khi hoàn thành thì mới cung cấp dữ liệu tới các dây nối dữ liệu đầu ra. Tuy nhiên, mỗi cấu trúc thực hiện theo các quy tắc riêng (Sub Diagram) của nó.

SubDiagram là tập hợp của các Node, Wire và Terminal bên trong đường viền của Structure. Mỗi cấu trúc For Loop và While loop có một SubDiagram.

Cấu trúc Case và Sequence có thể có nhiều SubDiagram, nhưng chỉ có một SubDiagram có thể thực hiện tại một thời điểm. Cách xây dựng các SubDiagram cũng giống như việc xây dựng các Block diagram mức đầu.

Việc truyền dữ liệu vào và ra các Structure thông qua các Terminal mà được tự động tạo ra ở nơi dây nối đi qua đường viền của cấu trúc, các Terminal này được gọi là các đường ống (Tunel) [5].

2.3 Tìm phương trình trạng thái bằng Maple 2.3.1 Hệ phương trình trạng thái 2.3.1 Hệ phương trình trạng thái

Các phương trình không gian trạng thái tuyến tính là

x Ax Bu

y Cx Du

Trong đó x là trạng thái, u là đầu vào điều khiển, A, B, C và D là ma trận không gian trạng thái. Đối với hệ thống con lắc ngược đôi, trạng thái và đầu ra được xác định [9]

x = [  α   α  ] Và

y = [ x x x ]

Thay vì sử dụng cơ học cổ điển, phương pháp Lagrange được sử dụng để tìm các phương trình chuyển động của hệ thống. Phương pháp hệ thống này thường được sử dụng cho các hệ thống phức tạp hơn như các bộ điều khiển robot có nhiều khớp [9].

Cụ thể hơn, các phương trình mô tả chuyển động của cánh tay quay và con lắc ngược đôi liên quan đến điện áp động cơ servo, tức là động lực học, sẽ được lấy bằng cách sử dụng phương trình Euler-Lagrange [9]:

 -  = Q

Các biến qi được gọi là tọa độ tổng quát. Đối với hệ thống này là: q t = [ (t) α(t) (t) ]

Vận tốc tương ứng là

q t == [    ]

Chú thích: Quy ước dấu chấm cho đạo hàm thời gian sẽđược sử dụng trong toàn

bộ tài liệu này, ví dụ: = d/dt. Biến thời gian t cũng sẽđược loại bỏ từ, α và , tức là,

= (t), α = α(t), = (t).

Với các tọa độ tổng quát được xác định, các phương trình Euler-Lagrange cho hệ thống con lắc ngược đôi là :

 -   = Q

 -  = Q

 -  = Q

L = T – V

Trong đó T là tổng động năng của hệ và V là tổng thế năng của hệ. Do đó, Lagrangian là sự khác biệt giữa động năng và thế năng của một hệ thống.

Các lực tổng quát Q được sử dụng để mô tả các lực không bảo toàn (ví dụ: ma sát) được áp dụng cho một hệ thống đối với các tọa độ tổng quát. Trong trường hợp này, lực tổng quát tác dụng lên cánh tay quay là:

Q =  - D 

Và tác dụng lên con lắc dưới và trên cùng là Q = - D α

Q = - D 

Mô-men xoắn được áp dụng tại đế của tay quay (tức là, tại bánh răng tải) được tạo ra bởi động cơ servo như được mô tả bởi phương trình:

 =   

Biến điều khiển là điện áp động cơ servo đầu vào . Đối lập với mô-men xoắn ứng dụng là mô-men ma sát nhớt, hoặc giảm xóc nhớt. Vì con lắc không được kích hoạt, lực duy nhất tác dụng lên liên kết là giảm xóc. Hệ số giảm độ nhớt của các con lắc dưới và trên được ký hiệu là D và D [9].

Để giải bài toán ta cần tìm các ma trận chuyển đổi sau: T_0_1, T_1_2, T_1_h, T_h_3 T_0_2 = T_0_1 * T_1_2 T_0_h= T_0_1 * T_1_h T_0_3= T_0_h * T_h_3 Vị trí cartesian: x T_0_1 1,4 y T_0_1 2,4 T_0_1 3,4 Tại

x T_0_2 1,4 y T_0_2 2,4 z T_0_2 3,4 Tại x T_0_h 1,4 y T_0_h 2,4 z T_0_h 3,4 Tại X T_0_3 1,4 y T_0_3 2,4 z T_0_3 3,4 Tại Đạo hàm vị trí: ( 1, 1, 1), ( 2, 2, 2 ), ( h, h, h ), ( 3, 3, 3) Tính tổng thế năng: V = 0 : tại O1 V = m g z : tại O2 V = m g z : tại Oh V = m g z : tại O3 V= V + V + V + V Tính tổng động năng:

Tr1 = Jr : Động năng chuyển động quay tại O1 Tt1 = 0 : Động năng chuyển động thẳng tại O1 Tr2 = 0 : tại O2 Tt2 = mp1[ ( 2)2 + ( 2)2 + ( 2)2 ] : tại O2 Trh = 0 : tại Oh Tth = mh[ ( h)2 + ( h)2 + ( h)2 ] : tại Oh Tr3 = 0 : tại O3 Tt3 = mp2[ ( 3)2 + ( 3)2 + ( 3)2 ] : tại O3  T = Tr1 + Tt1 + Tr2 + Tt2 + Trh + Tth + Tt3 + Tr3 Dùng maple để tính tổng động năng, thế năng của hệ.

Sau khi tuyến tính hóa các phương trình chuyển động phi tuyến, giải các thuật ngữ gia tốc, tức là , α , và thay thế trạng thái đã cho, chúng ta có được các ma trận không gian trạng thái(xem thêm chương trình tạo các ma trận không gian trạng thái ở phụ lục).

2.4 Ứng dụng Labview vào nghiên cứu

Tính toán mô hình không gian trạng thái thực từ phương trình trạng thái được tính bởi Maple.

Mô phỏng mô hình không gian trạng thái thực, quan sát các cực trên mặt phẳng phức. Mô phỏng mô hình không gian trạng thái thực với ma trận điều khiển K (được tính bởi phương pháp điều khiển LQR), quan sát độ ổn định của hệ thống.

CHƯƠNG 3 : NGHIÊN CỨU MÔ HÌNH

3.1 Mô hình không gian trạng thái thực

Sau khi tìm được mô hình không gian trạng thái dưới dạng các biến phương trình, ta có thể nhập các ma trận A, B, C, D vào các phần mềm để tính toán như maple, matlab, labview…Ở đây người dùng sử dụng labview để tính toán các ma trận A, B, C, D.

3.1.1 Tính ổn định

Độ ổn định của một hệ thống có thể được xác định từ các cực của nó. Hệ thống ổn định chỉ có những cực nằm bên trái mặt phẳng phức.

Hệ thống không ổn định có ít nhất một cực nằm bên phải mặt phẳng phức(như mô phỏng trên ta cũng có thể thấy được hệ thống không ổn định).

Hệ thống ở biên giới ổn định có ít nhất một cực trên trục ảo và các cực khác đều nằm bên trái mặt phẳng phức [9].

Các cực là nghiệm của phương trình đặc trưng của hệ thống. Từ không gian trạng thái, phương trình đặc trưng của hệ thống có thể được tìm thấy bằng cách sử dụng phương trình:

det(sI - A) = 0

Trong đó det () là hàm tính định thức, s là toán tử Laplace và I là ma trận đơn vị. Đây là các giá trị riêng của ma trận không gian trạng thái A.

Ở đây ta dùng Maple để tìm phương trình đặc trưng (Ta cũng thấy được hệ thống là không ổn định).

3.1.2 Tính điều khiển được

Các phương trình không gian trạng thái tuyến tính là:

x Ax Bu

y Cx Du

Một hệ thống được gọi là điều khiển được hoàn toàn nếu tồn tại luật điều khiển u(t) có khả năng chuyển hệ từ trạng thái ban đầu tại x( ) đến trạng thái cuối x( ) bất kỳ trong khoảng thời gian hữu hạn . Điều này có nghĩa là hệ thống có thể điều khiển được nếu mỗi biến trạng thái của hệ đều có thể bị ảnh hưởng bởi tín hiệu điều khiển u(t). Tuy nhiên, nếu một hoặc vài biến trạng thái không bị ảnh hưởng bởi u(t) thì các biến trạng thái này không thể bị điều khiển bởi u(t) trong khoảng thời gian hữu hạn và trong trường hợp này hệ thống không điều khiển được hoàn toàn [1].

Để kiểm tra tính điều khiển được của hệ thống, ta thành lập ma trận C (ma trận điều khiển được).

C = [B AB A B A B ….. A B]

Điều kiện cần và đủ để hệ thống điều khiển được là:

rank (C) = n

Đối với hệ thống một đầu vào – một đầu ra (SISO) thì ma trận C là ma trận vuông cấp n. Do đó điều kiện trở thành:

det (C) # 0

3.1.3 Tính quan sát được

Một hệ thống được gọi là quan sát được hoàn toàn nếu cho tín hiệu điều khiển u(t) và đầu ra c(t) trong khoảng ta có thể xác định được trạng thái đầu x( ).

Hệ thống là quan sát được nếu mỗi biến trạng thái của hệ đều ảnh hưởng đến đầu ra c(t). Thường, chúng ta muốn xác định thông tin về trạng thái của hệ thống dựa vào việc đo c(t). Tuy nhiên nếu chúng ta không quan sát được một hay nhiều trạng thái từ việc đo c(t) thì hệ thống không quan sát được hoàn toàn [1].

Để kiểm tra tính quan sát được của hệ thống, ta thành lập ma trận C (ma trận quan sát được). C = C CA ⋮ CA

Điều kiện cần và đủ để hệ thống quan sát được là: rank(C) = n

Đối với hệ thống một đầu vào (SISO) thì ma trận C là ma trận vuông cấp n. Do đó điều kiện trở thành:

Kiểm tra tính điều khiển được và quan sát được bằng phần mềm matlab:

Kết quả hạng của các ma trận C bằng với bậc của n (6). Vậy hệ thống có thể điều khiển được và quan sát được hoàn toàn.

3.2 Điều khiển hồi tiếp trạng thái

Để hệ thống ổn định, chúng ta cần tìm ma trận K của vector điều khiển tối ưu: u(t)= -Kx(t) , thỏa mãn chỉ tiêu chất lượng J đạt giá trị cực tiểu. Lúc này mô hình không gian trạng thái sẽ trở thành [9]:

x A BK x

y Cx

Vòng điều khiển hồi tiếp trạng thái như hình:

Hình 3.3 Xét tính ổn định bằng matlab

Trạng thái đặt được xác định: = [ 0 0 0 0 0] Và tín hiệu điều khiển là: u = K ( –x )

Nếu xd bằng 0 thì u = -Kx, là luật điều khiển được sử dụng trong thuật toán LQR. Để hệ thống ổn định, ta có thể tăng cường hệ thống để bao gồm một bộ tích hợp (xem thêm trong tài liệu đính kèm từ nhà sản xuất để biết thêm chi tiết) sao cho:

 = 0

1 0  + B 0 u

Trong đó A và B là các ma trận không gian trạng thái đã được xác định và các trạng

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 42)

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

(93 trang)