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 (X2,Y2). Khi đã có 2 tọa độ rồi chương trình sẽ tính toán. Tính toán

X= X2-X1 và Y=Y2-Y1. 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 45o. 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

Xd = toadox; Yd = toadoy; Xf = X; Yf = 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)

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

(119 trang)