0
Tải bản đầy đủ (.pdf) (119 trang)

Phân tích thuật toán nội suy

Một phần của tài liệu LUẬN VĂN CƠ KHÍ THIẾT KẾ VÀ CHẾ TẠO BỘ ĐIỀU KHIỂN MÁY PHAY CNC DẠNG PCBASE (Trang 74 -78 )

a, Ni suy đường thng

Nguyên tắc điều khiển động cơ. Điều khiển động cơ bằng cách cấp phát xung cho

driver, mỗi driver có 2 chân đểđiều khiển động cơ, một chân điều khiển hướng một chân

điều khiển tốc độ bằng cách đưa ra tần số cho chân này, tần số cao thì tôc độ nhanh, tần số

thấp thì tốc độ quay của động cơ chậm. do phần cứng và phần mềm và thực tếđo đạt

tương ứng với mỗi trục khác nhau thì phải cấp sốxung khác nhau để cho bàn máy dịch

chuyển được 10mm. Trục X là 13000 xung/10mm. Trục Y là 26000xung/10mm. Để bàn

75

máy X dịch chuyển được 10mm tương ứng trong phần mềm phải đưa ra ở chân số 3 của

cổng LPT 13000 xung, với trục Y và Z tương tự

Hàm điều khiển động cơ

Private Function chayduongx(k

As Currency)

i = 0

j = 0

Do

Out &H378, 1

For j = 1 To 50

Call sSleep(1 / 10)

Next

Out &H378, 0

For j = 1 To 50

Call sSleep(1 / 10)

Next

i = i + 1

DoEvents

Loop Until i = k

End Function

Private Function chayduongy(m

As Currency)

i = 0

j = 0

Do

Out &H378, 12

For j = 1 To 50

Call sSleep(1 / 10)

Next

Out &H378, 8

For j = 1 To 50

Call sSleep(1 / 10)

Next

i = i + 1

DoEvents

Loop Until i = m

End Function

Trong quá trình hoạt động của mình chương trình chạy quét dòng lệnh G-code được

load vào đọc xem đó là lệnh G00,G01,G02 hay G03. Khi gặp lệnh G00,G01 chương trình

sẽ tự chạy đến phần nội suy đường thẳng. Chương trình sẽ kiểm tra vị trí hiện tại của tọa

độ (X1,Y1), khi mới bật chương trình lên thì tọa độ mặc định ban đầu là (0,0). Tiếp đó sẽ

đọc ra vị trí tiếp theo (X

2

,Y

2). Khi đ

ã có 2 tọa độ rồi chương trình sẽ tính toán. Tính toán

X= X

2

-X

1

và Y=Y

2

-Y

1

. Xét X,Y

Nếu X>=0 và Y>0 tức là tọa độ của điểm sau lớn hơn điểm trước từđó suy ra được

chiều quay của động cơ để bàn máy dịch chuyển theo hướng đến vị trí đó.

Ví dụ tọa độban đầu là (1,1) và tọa độ cuối là (10,10) tương ứng với

X>0,Y>0 và X=Y . Đây là đường chéo chương trình sẽ chia ra để mỗi động cơ X,Y

chuyển động để cuối cùng đưa về tọa độ cuối. Sau khi tính toán chi nhỏ số lần chạy

của mỗi động cơ đưa vào code để kiểm soát chuyển động đồng thời của hai trục

làm cho bàn máy chuyển động theo đường chéo. Đoạn lệnh như sau

If (x3 = y3) Then

For c = 1 To (b / 2)

Call chayduongx(1)

tdx = tdx + (1 / 13000)

72

Call chayduongy(2)

tdy = tdy + (2 / 26000)

Label4.Caption = 10 * Round(tdy, 4)

If estop Then

Exit For

End If

DoEvents

Next

End If

Hai dòng lệnh Call chayduongy(2),Call chayduongx(1) là hai dòng lệnh điều khiển

động cơ. Tính toán số vòng lặp để đưa đoạn điều khiển này vào vòng lặp, mỗi bước chạy

của mỗi động cơ là rất nhỏ nhiều lần chạy bước nhỏ sẽđược một bước lớn. Đây là trường

hợp giá trị X,Y bằng nhau nhưng với trường hợp giá trị X khác Y thì lại phải tính toán

mỗi bước chạy của mỗi trục ngắn dài khác nhau đểđược đoạn đường chéo như ý.

Ví dụ X,Y>0 và X>Y khi đó chương trình phải tính thêm tỷ lệ A= X/Y, tức là khi

X=Y với tỷ lệ 1:2 ở hai trục thì bàn máy sẽ di chuyển theo đường chéo 45

o

. Nhưng khi

đường chéo ở góc khác thì tỷ lệ này lại khác. Ở ví dụ trên khi mỗi lần Y dịch chuyển 1

bước thì X phải dịch chuyển 1 bước nhân với A. Khi đó X dịch chuyển dài hơn Y mỗi

bước như vậy khi đưa vào vòng lặp tính toán bước chạy của Y buộc X chạy theo Y khi đó

bàn máy sẽ di chuyển được theo đường chéo.

Khi X<Y thì ta lại tính tỷ lệ ngược lại A=Y/X. Và cũng tính toán bước chạy với tỷ lệ

này ta sẽđược đường chéo khác nhau. Góc của đường chéo phụ thuộc vào tọa độ của

X2,Y2.

Khi có X hoặc Y =0, khi đó bàn máy dịch chuyển theo đường thẳng theo 1 trục.

Việc này đơn giản chỉ là cho một động cơ quay. Xét X=0 thì tức là X1=X2. khi đó trục X

không dịch chuyển mà chỉ Y dịch chuyển cấp xung cho trục Y Call chayduongy(2. Khi Y

=0 tức là Y1=Y2 khi đó bàn máy Y không dịch chuyển chỉ cấp xung cho trục X dịch

chuyển Call chayduongx(1).

b, Nội suy đường tròn

Nội suy đường tròn sử dụng phương pháp nội suy SA.

Bước 1: Giá trị tọa độ các điểm đầu, điểm cuối và bán kính của cung tròn sẽ được

nhập vào cho chương trình nội suy

X

d

= toadox; Y

d

= toadoy;

X

f

= X; Y

f

= Y;

Giá trị tọa độ điểm đầu mới (Xd,Yd) sẽ được gán với giá trị tọa độ điểm cuối cũ

(xf,yf). Giá trị tọa độ điểm cuối mới sẽđược gán với giá trị của tọa độđiểm mới nhập vào

(X,Y).

73

Tùy vào đoạn G-code sẽ tính toán xét đến các góc phần tư khác nhau và từ đó tính

được động cơ quay theo chiều. (xem bảng 3.1 chương 3)

Giá trị góc phần tư sẽ được xác định dựa vào tọa độ điểm đầu với điểm cuối (cụ thể

xem chương trình). Giá trị tọa độ của điểm tâm cung tròn sẽđược tính toán đồng thời với

các góc phần tư.

Bước 3: Vòng lặp nội suy

Do


delta = (toadox * toadox) + (toadoy * toadoy) - r * r

If (delta <= 0) Then

Call chayduongx(1)

toadox = (toadox + (1 / 12500))

tdx = tdx + (1 / 12500)

Label3.Caption = 10 * Round(toadox, 5)

DoEvents

End If

If (delta > 0) Then

Call chayamy(1)

toadoy = (toadoy - (1 / 25500))

tdy = tdy - (1 / 25500)

Label4.Caption = 10 * Round(toadoy, 5)

DoEvents

End If

If estop Then

Exit Do

End If

DoEvents

Loop While (toadoy >= (Y + 0.0005))

DoEvents

Khi có điểm đầu chương trình s ẽ tính toán giá trị: delta = (toadox * toadox) +

(toadoy * toadoy) - r * r

Tiếp đó xét xem delta>0 hay delta<0. từ đó cấp phát xung cho các trục động cơ .

sau mỗi bước dịc chuyển giá trị tọa độ ban đầu lại được cập nhật tùy trục nào tăng hoặc

giảm rồi giá trị delta lại được tính lại rồi lại xét giá trị đo đưa ra điều khiển động cơ vòng

lặp cứ tiếp tục đến khi giá trị trung gian gần bằng với giá trị cuối sử dĩ gần bằng bởi vì sai

74

số ở g-code là rất nhỏ nên không thê có giá trị trung gian trùng với giá trị cuối cùng được.

ở chương trình này nhóm đ ể giá trị sai lệch đó là 0.0005. (Cụ thể các góc phần tư khác

nhau xem chương trình)

Một phần của tài liệu LUẬN VĂN CƠ KHÍ THIẾT KẾ VÀ CHẾ TẠO BỘ ĐIỀU KHIỂN MÁY PHAY CNC DẠNG PCBASE (Trang 74 -78 )

×