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

BÀI tập lớn môn hệ THỐNG điều KHIỂN máy CNC máy CNC hai trục x, y mỗi trục có 1 động cơ

62 6 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Hệ thống điều khiển máy CNC
Tác giả Trần Anh Dũng, Lý Ngọc Thuận, Hoàng Anh Tú
Người hướng dẫn TS. Dương Minh Đức
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Tự động hóa công nghiệp
Thể loại tiểu luận cuối kỳ
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 62
Dung lượng 4,66 MB

Cấu trúc

  • 2. THIẾT KẾ BỘ ĐIỀU KHIỂN VỊ TRÍ PID CHO 2 TRỤC ĐỘNG CƠ (5)
    • 2.1. Các bước thiết kế bộ điều khiển (5)
    • 2.2. Thiết kế bộ điều khiển (5)
      • 2.2.1 Trục x (5)
      • 2.2.2 Trục y (7)
  • 3. NỘI SUY ĐƯỜNG THẲNG (9)
    • 3.1. Cấu trúc bộ điều khiển trung tâm (9)
    • 3.2. Look Ahead (9)
    • 3.3. Tính toán thời gian tăng tốc, giảm tốc, vận tốc không đổi (9)
    • 3.4. Nội suy vận tốc (10)
    • 3.5. Nội suy lệnh đặt cho đường thẳng (trích mẫu dữ liệu) (11)
    • 3.6. Nội suy tinh (13)
      • 3.6.1. Nội suy tuyến tính (14)
      • 3.6.2. Nội suy trung bình (15)
      • 3.6.3. Quỹ đạo sau nội suy tinh (17)
    • 3.7. Thực hiện điều khiển vị trí (18)
  • 4. NỘI SUY ĐƯỜNG TRÒN (23)
    • 4.1. Tính toán thời gian tăng tốc, giảm tốc, vận tốc không đổi (23)
    • 4.2. Nội suy vận tốc (23)
    • 4.3. Nội suy sai lệch đặt cho đường tròn (24)
    • 4.4. Nội suy tinh (26)
  • 5. THỰC HIỆN VẼ CHỮ “C” (33)
  • 6. NỘI SUY THÔ QUỸ ĐẠO VỚI TĂNG/GIẢM TỐC SAU NỘI SUY (39)
    • 6.1. Nội suy tuyến tính (39)
    • 7.2. Chương trình nội suy đường tròn (m-file) (49)
    • 7.3. Chương trình nội suy chữ C (m-file) (53)
    • 7.4. Nội suy thô đường thẳng với kiểu tăng/giảm tốc sau nội suy dạng hình thang (60)
    • 7.5. Nội suy thô đường tròn với kiểu tăng/giảm tốc sau nội suy dạng hình thang (61)
    • 7.6. Chương trình điều khiển trên simulink (0)

Nội dung

THIẾT KẾ BỘ ĐIỀU KHIỂN VỊ TRÍ PID CHO 2 TRỤC ĐỘNG CƠ

Các bước thiết kế bộ điều khiển

- B1: Đặt giá trị Setpoint là tín hiệu Step, biên độ là 1

Quan sát đáp ứng đầu ra của hai trục và giá trị 𝑈 𝑑𝑘 Khi 𝑈 𝑑𝑘 đạt giá trị cho phép, tiến hành tinh chỉnh hệ số 𝐾 𝑑 của bộ điều khiển để đảm bảo yêu cầu về thời gian xác lập và độ quá điều chỉnh.

Hình 2 1 Mô hình mô phỏng Matlab Simulink

Thiết kế bộ điều khiển

Sau khi thực hiện các bước như trên, ta thu được bộ điều khiển vị trí động cơ theo trục x với các thông số: 𝐾 𝑝 = 10, 𝑇 𝑑 = 0.005

Bài tập lớn môn điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có một động cơ Bài tập này giúp sinh viên hiểu rõ hơn về nguyên lý hoạt động và cách lập trình cho máy CNC Thực hành trên máy CNC hai trục sẽ nâng cao kỹ năng điều khiển và ứng dụng công nghệ trong sản xuất.

Ta thu được kết quả mô phỏng:

Hình 2 2 Đáp ứng vị trí của bộ điều khiển theo trục x

▪ Đáp ứng đầu ra của động cơ theo trục x bám sát giá trị đặt

▪ Có sai lệch tĩnh xấp xỉ 0 từ thời điểm t = 0.45s

Hình 2 3 Điện áp điều khiển trục x

Nhận xét: Điện áp điều khiển < 10V

→ Từ những nhận xét trên ta kết luận: Bộ điều khiển vị trí theo trục x thỏa mãn yêu cầu đề bài

Sau khi thực hiện các bước như trên, ta thu được bộ điều khiển vị trí động cơ theo trục x với các thông số: 𝐾 𝑝 = 10, 𝑇 𝑑 = 0.025

Ta thu được kết quả mô phỏng:

Bài tập lớn môn hệ thống điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có một động cơ.

Hình 2 4 Đáp ứng vị trí của bộ điều khiển theo trục y

Nhận xét: ▪ Đáp ứng đầu ra của động cơ theo trục y bám sát giá trị đặt

▪ Có sai lệch tĩnh xấp xỉ 0 từ thời điểm t = 0.45s

Hình 2 5 Điện áp điều khiển theo trục y

Nhận xét: Điện áp điều khiển < 10V

→ Từ những nhận xét trên ta kết luận: Bộ điều khiển vị trí theo trục x thỏa mãn yêu cầu đề bài

NỘI SUY ĐƯỜNG THẲNG

Cấu trúc bộ điều khiển trung tâm

Sử dụng cấu trúc ADCBI: thực hiện tăng tốc/giảm tốc trước khi nội suy.

Look Ahead

• Quỹ đạo chuyển động được phân chia thành các khối

• Tính toán tốc độ tại điểm bắt đầu và điểm kết thúc của một khối dựa vào các khối được thực hiện sau nó

Xác định dạng profile vận tốc là dạng normal block (dạng hình thang) gồm 3 quá trình: tăng tốc, vận tốc không đổi, giảm tốc.

Tính toán thời gian tăng tốc, giảm tốc, vận tốc không đổi

Thông số profile vận tốc:

• Chiều dài: L= 50 (mm), đi từ A(10,10) đến B(50,40)

• Gia tốc tăng tốc cho phép : A=2 (mm/s 2 )

Bài tập lớn môn hệ thống điều khiển máy CNC hai trục X và Y, mỗi trục có một động cơ.

• Gia tốc giảm tốc cho phép: D=2 (mm/s 2 )

• Chu kỳ nội suy:  =5 (ms)

• Tốc độ ăn dao: F=5 (mm/s)

Với profile vận tốc dạng normal block ta có công thức tính như sau:

Tăng tốc Giảm tốc Vận tốc không đổi Tính toán thời gian tăng tốc 𝑇 𝐴 , giảm tốc 𝑇 𝐷 , vận tốc không đổi 𝑇 𝐶

Nội suy vận tốc

Sau quá trình tính toán nội suy ta thu được đồ thị vận tốc như sau:

Nội suy lệnh đặt cho đường thẳng (trích mẫu dữ liệu)

Sử dụng phương pháp trích mẫu dữ liệu như sau:

Từ công thức nội suy tăng tốc: 𝑉 𝐴,𝑖+1 = 𝑉 𝐴,𝑖 + 𝜏𝐴, ta thu được bảng kết quả: i 𝑽 𝑨,𝒊

Bài tập lớn môn hệ thống điều khiển máy CNC, máy CNC hai trục X, Y, mỗi trục có một động cơ.

Do vận tốc không đổi, ta thu được bảng kết quả: i 𝑽 𝑪,𝒊

Từ công thức nội suy giảm tốc: 𝑉 𝐷,𝑖+1 = 𝑉 𝐷,𝑖 − 𝜏𝐷, ta thu được bảng kết quả: i 𝑽 𝑫,𝒊

Sau khi nội suy thu được quỹ đạo đi từ: A(10,10) đến B(50,40) như sau:

Nội suy tinh

Do chu kỳ trích mẫu nội suy lớn hơn chu kỳ trích mẫu bộ điều khiển vị trí ( 𝑇 𝑛𝑠

Để tối ưu hóa quá trình trích mẫu nội suy, cần chia nhỏ các giá trị chu kỳ trích mẫu thành các chu kỳ trích mẫu điều khiển Việc này bao gồm xác định các giá trị ở giữa chu kỳ trích mẫu nội suy và chia nhỏ khoảng dịch chuyển ∆𝐿.

Vận tốc không đổi Giảm tốc

Bài tập lớn môn hệ thống điều khiển máy CNC hai trục X và Y, mỗi trục có một động cơ.

3.6.1 Nội suy tuyến tính Áp dụng công thức:

𝑁 , 𝑖 ≤ 𝑗 < 𝑖 + 𝑡 𝑖𝑝𝑜 Với 𝑎(𝑗) là khoảng dịch chuyển thứ j thu được khi nội suy tuyến tính, 𝑝(𝑖) là khoảng dịch chuyển tổng ∆𝐿 thứ i, 𝑡 𝑖𝑝𝑜 là thời gian lặp lại của phép nội suy thô, 𝑁 = 𝑇 𝑛𝑠

Dưới đây là đồ thị khoảng dịch chuyển của phương pháp tuyến tính, được so sánh với đồ thị nội suy thô ở phía trên.

Từ đồ thị khoảng dịch chuyển thu được từ phương pháp tuyến tính, áp dụng công thức:

2 Với 𝑎(𝑗 − 𝑘) là giá trị tại thời điểm (𝑗 − 𝑘) của phương pháp tuyến tính, 𝑁 = 𝑇 𝑛𝑠

Ta thu được bảng giá trị một số chu kỳ (đơn vị 𝑎(𝑗 ± 𝑘), 𝑏 0,1,2 (𝑗): × 10 −2 (𝑚𝑚) n j a(j +

Bài tập lớn môn hệ thống điều khiển máy CNC, máy CNC hai trục X-Y, mỗi trục có 1 động cơ Bài tập này giúp sinh viên hiểu rõ hơn về nguyên lý hoạt động và ứng dụng của hệ thống điều khiển trong máy CNC Thông qua việc thực hành, sinh viên sẽ nắm bắt được cách thức điều khiển các trục và tối ưu hóa quy trình sản xuất.

Kết quả thu được từ đồ thị khoảng dịch chuyển của phương pháp trung bình (đồ thị dưới) so với đồ thị phương pháp tuyến tính (đồ thị trên) cho thấy sự khác biệt rõ rệt giữa hai phương pháp.

3.6.3 Quỹ đạo sau nội suy tinh

Sau khi áp dụng hai phương pháp trước đó, chúng ta sử dụng khoảng dịch chuyển đã được nội suy tinh để thực hiện nội suy sai lệch đường thẳng Quá trình này cho ra quỹ đạo thu được như sau:

So sánh với quỹ đạo nội suy thô:

Bài tập lớn môn điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có một động cơ Bài tập này nhằm mục đích giúp sinh viên hiểu rõ hơn về nguyên lý hoạt động của máy CNC, cách điều khiển và lập trình cho các trục chuyển động Việc thực hành trên máy CNC sẽ trang bị cho sinh viên những kỹ năng cần thiết trong ngành công nghiệp chế tạo.

Thực hiện điều khiển vị trí

Sau khi hoàn thành quỹ đạo nội suy cuối cùng, chúng ta sử dụng quỹ đạo này làm đầu vào (setpoint) cho bộ điều khiển vị trí với cấu trúc mạch vòng điều khiển.

Tuy nhiên, do yêu cầu đề bài, ta sẽ bỏ qua mạch vòng dòng điện và mạch vòng tốc độ, bộ điều khiển vị trí là bộ PD

Mạch vòng thiết kế trên simulink:

Ta thu được các kết quả: Đồ thị quỹ đạo đầu ra:

19 Đồ thị so sánh quỹ đạo vào/ra theo thời gian: Đồ thị so sánh quỹ đạo vào/ra vận tốc theo thời gian:

Bài tập lớn môn hệ thống điều khiển máy CNC, máy CNC hai trục X-Y, mỗi trục có một động cơ.

20 Đồ thị tín hiệu điều khiển (điện áp):

21 Đồ thị sai số khi điều khiển:

Biểu diễn 3 đường theo yêu cầu bài toán:

Bài tập lớn môn hệ thống điều khiển máy CNC hai trục X và Y, mỗi trục có một động cơ.

NỘI SUY ĐƯỜNG TRÒN

Tính toán thời gian tăng tốc, giảm tốc, vận tốc không đổi

Thông số profile vận tốc:

• Gia tốc tăng tốc cho phép : A=2 (mm/s 2 )

• Gia tốc giảm tốc cho phép: D=2 (mm/s 2 )

• Chu kỳ nội suy: =5 (ms)

• Tốc độ ăn dao: F=5 (mm/s)

Với profile vận tốc dạng normal block ta có công thức tính như sau:

Nội suy (mm/s) 𝑉 𝐴,𝑖+1 = 𝑉 𝐴,𝑖 + 𝜏𝐴 𝑉 𝐷,𝑖+1 = 𝑉 𝐷,𝑖 − 𝜏𝐷 Tốc độ góc nội suy

𝑅 Nội suy góc 𝛼 (𝛼 là góc giữa 2 điểm cần nội suy trên cung tròn) (rad)

Từ bảng trên, chúng ta có thể xác định tổng góc 𝜶 trong quá trình tăng tốc và giảm tốc Dựa vào đó, có thể tính toán chiều dài và thời gian khi tốc độ được giữ cố định.

• Tốc độ góc khi vận tốc không đổi: 𝝎 𝑪 = 𝑭

• Chiều dài cung tròn di chuyển: 𝜶 𝑪 = 𝝋 − (∑ 𝜶 𝑨 + ∑ 𝜶 𝑫 )

Nội suy vận tốc

Sau quá trình tính toán nội suy ta thu được đồ thị vận tốc như sau:

Bài tập lớn môn hệ thống điều khiển máy CNC hai trục X và Y, mỗi trục có một động cơ, tập trung vào việc áp dụng các nguyên lý điều khiển để tối ưu hóa hoạt động của máy Nội dung bài tập yêu cầu sinh viên nghiên cứu và phát triển các giải pháp điều khiển hiệu quả cho máy CNC, nhằm nâng cao độ chính xác và hiệu suất gia công Qua đó, sinh viên sẽ nắm vững kiến thức về hệ thống điều khiển, từ đó áp dụng vào thực tiễn trong ngành công nghiệp chế tạo.

Nội suy sai lệch đặt cho đường tròn

Ta có thể nội suy tọa độ X,Y từ hình dưới đây: Đặt A=cos(𝜶), B=sin(𝜶), từ hình trên ta có thể tính toán:

→ 𝒀 𝒊+𝟏 = 𝒀 𝒕 − (𝒀 𝒕 − 𝒀 𝒊 ) 𝑨 + (𝑿 𝒊 − 𝑿 𝒕 ) 𝑩 Trong đó 𝑿 𝒕 , 𝒀 𝒕 lần lượt là hoành độ và tung độ của tâm đường tròn X

Sau khi sử dụng MATLAB để thực hiện nội suy đường tròn, ta thu được kết quả sau đây:

Bài tập lớn môn hệ thống điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có một động cơ.

Nội suy tinh

Tương tự như việc nội suy tinh với đường thẳng, chúng tôi tiến hành nội suy tinh quỹ đạo hình tròn bằng hai phương pháp khác nhau Kết quả thu được là bảng số liệu cho một số chu kỳ, với các đơn vị được biểu diễn là 𝑎(𝑗 ± 𝑘), 𝑏 0,1,2 (𝑗): × 10 −2 (𝑚𝑚) Bảng kết quả bao gồm các giá trị n alpha j và các giá trị a từ a( j + 5) đến a( j -2), cùng với b( j) và các giá trị b1(j), b2(j).

Vận tốc không đổi Giảm tốc

… Đồ thị so sánh độ dịch chuyển quỹ đạo nội suy thô, nội suy tinh tuyến tính và nội suy tinh trung bình:

Bài tập lớn môn điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có một động cơ Bài tập này nhằm nghiên cứu và ứng dụng các nguyên lý điều khiển trong hệ thống máy CNC, giúp sinh viên hiểu rõ hơn về cấu trúc và hoạt động của máy CNC hai trục Nội dung bài tập sẽ tập trung vào việc lập trình và điều khiển các chuyển động của máy CNC để thực hiện các thao tác gia công chính xác.

So sánh với giá trị nội suy thô: Đưa quỹ đạo sau khi nội suy vào điều khiển thu được

29 Đồ thị quỹ đạo đầu ra: Đồ thị so sánh quỹ đạo vào/ra theo thời gian:

Bài tập lớn môn hệ thống điều khiển máy CNC, máy CNC hai trục X, Y, mỗi trục có một động cơ.

30 Đồ thị so sánh vận tốc vào/ra theo thời gian:

31 Đồ thị tín hiệu điều khiển: Đồ thị sai số khi điều khiển:

Bài tập lớn môn hệ thống điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có 1 động cơ.

Biểu diễn 3 đường theo yêu cầu bài toán:

THỰC HIỆN VẼ CHỮ “C”

Từ những kết quả thu được ở trên, nhóm em sẽ thực hiện vẽ chữ “C” qua 3 bước:

• B1: Thực hiện nội suy đường tròn từ điểm A(20,20) đến điểm B(-20,20) với đường tròn bán kính R mm và góc nội suy 𝝋 = 𝝅

• B2: Thực hiện nội suy đường thằng từ điểm B(-20,20) đến điểm C(-20,-20) với độ dài di chuyển L@mm

• B3: Thực hiện nội suy đường tròn từ điểm C(-20,-20) đến điểm D(20,-20) với đường tròn bán kính R mm và góc nội suy 𝝋 = 𝝅

Cả 3 bước nội suy trên đều thực hiện với chu kì nội suy 𝝉 = 𝟓𝒎𝒔

Sau khi thực hiện 3 bước nội suy trên, ta thu được kết quả:

Profile vận tốc chia thành 3 quãng lần lượt theo 3 bước ở trên:

Bài tập lớn môn điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có một động cơ.

Tiến hành nội suy tinh theo phương pháp tuyến tính và trung bình tương tự như trên ta thu được quỹ đạo cuối cùng:

35 Đưa quỹ đạo sau nội suy vào điều khiển thu được: Đồ thị quỹ đạo đầu ra: Đồ thị so sánh quỹ đạo vào/ra theo thời gian:

Bài tập lớn môn hệ thống điều khiển máy CNC hai trục X và Y, mỗi trục có một động cơ.

36 Đồ thị so sánh vận tốc vào/ra theo thời gian:

37 Đồ thị tín hiệu điều khiển: Đồ thị sai số khi điều khiển:

Bài tập lớn môn điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có một động cơ Bài tập này giúp sinh viên hiểu rõ hơn về nguyên lý hoạt động và ứng dụng của máy CNC trong sản xuất Hệ thống điều khiển cho phép điều chỉnh chính xác các thông số, từ đó nâng cao hiệu suất và chất lượng sản phẩm Việc thực hành trên máy CNC sẽ trang bị cho sinh viên kỹ năng cần thiết để vận hành và bảo trì thiết bị trong môi trường công nghiệp.

Biểu diễn 3 đường theo yêu cầu bài toán:

NỘI SUY THÔ QUỸ ĐẠO VỚI TĂNG/GIẢM TỐC SAU NỘI SUY

Nội suy tuyến tính

Các thông số lựa chọn:

• Chiều dài: L= 50 (mm), đi từ A(10,10) đến B(50,40)

• Gia tốc tăng tốc cho phép : A=2 (mm/s 2 )

• Gia tốc giảm tốc cho phép: D=2 (mm/s 2 )

• Chu kỳ nội suy: 𝜏=5 (ms)

• Tốc độ ăn dao: F=5 (mm/s) Tiến hành nội suy thô tuyến tính theo lưu đồ sau:

• 𝑑𝑋 = 𝑥 𝑒 − 𝑥 𝑠 = 40(mm) %tong dich chuyen truc X

• 𝑑𝑌 = 𝑦 𝑒 − 𝑦 𝑠 = 30(mm) %tong dich chuyen truc Y

𝐹 = 10 (s) %tong thoi gian dich chuyen

𝑁 = 0.02(mm) %khoang dich chuyen truc X

𝑁 = 0.015(mm) %khoang dich chuyen truc Y

Bài tập lớn môn điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có một động cơ.

Input pulse train: Impulse response:

Output pulse train: Áp dụng phương trình:

Cụ thể với khoảng dịch chuyển trục X và trục Y:

𝑁 𝐴 (∆𝑌(𝑘) − ∆𝑌(𝑘 − 𝑁 𝐴 )) + ∆𝑌 0 (𝑘 − 1) Tính toán một số chu kỳ:

Zoom và biểu diễn dạng bar graph:

Bài tập lớn môn hệ thống điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có 1 động cơ Bài tập này giúp sinh viên hiểu rõ hơn về nguyên lý hoạt động và ứng dụng của hệ thống điều khiển trong máy CNC, từ đó nâng cao kỹ năng lập trình và vận hành máy móc.

Quỹ đạo thu được cuối cùng:

Các thông số lựa chọn:

• Gia tốc tăng tốc cho phép : A=2 (mm/s 2 )

• Gia tốc giảm tốc cho phép: D=2 (mm/s 2 )

• Chu kỳ nội suy: =5 (ms)

• Tốc độ ăn dao: F=5 (mm/s)

Từ phần tuyến tính ta có: 𝑃𝑢𝑙𝑠𝑒𝑋 = 𝑑𝑋

∆𝛼 ] = 2144 Tương tự như phần tuyến tính ta thu được:

Input pulse train: Impulse response:

Output pulse train: Áp dụng công thức tương tự như đã làm với phần tuyến tính ta thu được bảng tính toán một số chu kỳ:

Input pulse: ∆𝛼(𝑘) Output of buffer register:

Bài tập lớn môn điều khiển máy CNC hai trục X, Y, mỗi trục có một động cơ.

Zoom và biểu diễn dưới dạng bar graph:

Quỹ đạo thu được cuối cùng:

So sánh với quỹ đạo đặt:

Bài tập lớn môn Hệ thống điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có một động cơ Bài tập này giúp sinh viên hiểu rõ hơn về cấu trúc và nguyên lý hoạt động của hệ thống điều khiển máy CNC, từ đó áp dụng vào thực tiễn trong ngành công nghiệp chế tạo.

7.1 Chương trình nội suy đường thẳng (m-file)

F=5; %toc do an dao 50mm/s^2 A=2; %gia toc tang toc cho phep D=2; %gia toc giam toc cho phep LP; %chieu dai

T^-3; %chu ky noi suy Tdk-3; %chu ky dieu khien Nt=T/Tdk;%ty so

%%tinh toan thoi gian tang toc giam toc Ta=F/A;%time acc

Td=F/D;%time dec Tc=(L-Sa-Sd)/F;%time cons Sa=(F*F)/(2*A);

%%Noi suy tho van toc Va0=0;

The equations describe a series of calculations involving various parameters: Va equals Va0 multiplied by T and F, while Vi+1 is computed as Vi plus A multiplied by T For Vd, the formula is Vd0 minus T multiplied by D, and Vi+1 is also defined as Vi minus A multiplied by T The variable Vc is initialized as a vector of ones scaled by F Time arrays are defined with intervals: ta ranging from 0 to Ta in increments of T, td starting at Tc plus Ta to Tc plus Ta plus Td, and tc from Ta to Ta plus Tc Additionally, tas, tcs, and tds are created with specific intervals based on Tdk.

%tinh toan khoang tang toc ns tho deltaL1=Va*T; deltaX1taL1*0.8; deltaY1taL1*0.6; syms i X1=zeros(1,Na+1);

%tinh toan khoang cons ns tho deltaL2=Vc*T; deltaX2taL2*0.8; deltaY2taL2*0.6; syms j X2=zeros(1,Nc+1);

Y2=zeros(1,Nc+1); for j=2:Nc+1 X2(1,1)=X1(1,Na+1);

%tinh toan khoang giam toc ns tho deltaL3=Vd*T; deltaX3taL3*0.8; deltaY3taL3*0.6;

Bài tập lớn môn hệ thống điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có một động cơ.

Y3=zeros(1,Nd); for k=2:Nd+1 X3(1,1)=X2(1,Nc+1);

This article discusses the calculation of acceleration using symbolic mathematics in MATLAB It initializes arrays for x and y coordinates, computes average values through nested loops, and applies smoothing techniques to the data The algorithm iteratively calculates the average of surrounding elements to enhance accuracy The final section processes edge cases to ensure consistent results at the boundaries of the dataset The outcome is a refined set of coordinates, ready for further analysis or visualization.

Y11=zeros(1,Na*Nt+1);Y12=zeros(1,Na*Nt+1); for l=2:Na*Nt+1 X11(1,1);X12(1,1);

%tinh toan khoang cons ns tinh syms i j k aX2=zeros(1,Nc*Nt+1);aX2(1,Nc*Nt+1)taX2(1,Nc+1)/Nt; aY2=zeros(1,Nc*Nt+1);aY2(1,Nc*Nt+1)taY2(1,Nc+1)/Nt;

X21=zeros(1,Nc*Nt+1);Y21=zeros(1,Nc*Nt+1); for i=1:Nc for j=(Nt*i-Nt+1):(Nt*i) aX2(1,j)taX2(1,i)/Nt; aY2(1,j)taY2(1,i)/Nt; end end for k=2:Nc*Nt+1 X21(1,1)=X11(1,Na*Nt+1);

%tinh toan khoang giam toc ns tinh

The code initializes arrays for processing data with specific dimensions, where `aX3` and `aY3` are computed based on the number of time steps (`Nt`) and data points (`Nd`) It iteratively fills these arrays using mathematical operations to average values over defined ranges Additional arrays, `bX3`, `bY3`, `b1X3`, and `b1Y3`, are created to store intermediate averages, with specific calculations for the first four elements and subsequent elements based on previous values The final arrays, `X31` and `X32`, are initialized for further use in the data processing workflow.

Y31=zeros(1,Nd*Nt+1);Y32=zeros(1,Nd*Nt+1); for l=2:Nd*Nt+1 X31(1,1)=X21(1,Nc*Nt+1);X32(1,1)=X21(1,Nc*Nt+1);

Y11s=Y11(:, 1:2500);Y21s=Y21(:, 1:7500);Y31s=Y31(:, 1:2500); wave.time = [];%iput simulink sum=[X11s,X21s,X31s,X41;Y11s,Y21s,Y31s,Y41]'; wave.signals.values = sum; wave.signals.dimensions =2; xsml=out.x_sml; ysml=out.y_sml; if(wave.time>12503) wave.signals.value=X32(2501,1); end

Chương trình nội suy đường tròn (m-file)

%% clear sum F=5; %toc do an dao 50mm/s^2 A=2; %gia toc tang toc cho phep D=2; %gia toc giam toc cho phep LP; %chieu dai

T^-3; %chu ky noi suy Tdk-3;

Bài tập lớn môn điều khiển máy CNC, máy CNC hai trục X, Y, mỗi trục có 1 động cơ Bài tập này giúp sinh viên nắm vững kiến thức về điều khiển và lập trình máy CNC, từ đó ứng dụng vào thực tiễn trong ngành công nghiệp chế tạo Việc hiểu rõ cấu trúc và chức năng của từng bộ phận trong máy CNC là rất quan trọng để tối ưu hóa quy trình sản xuất.

%%tinh toan thoi gian tang toc giam toc Ta=F/A;%time acc

Tc=(L-Sa-Sd)/F;%time cons

The equations describe a system with varying parameters over time, where Va is adjusted based on initial values and factors such as temperature and force The volume at the next time step, Vi+1, is determined by adding or subtracting a product of acceleration and time from the current volume, Vi The variable Vc represents a constant value influenced by the force, while the time arrays ta, td, and tc are defined for different phases of the process The time intervals tas and tds further segment the overall timeline, allowing for detailed analysis of the system's behavior across specified durations.

%noi suy duong tron X_tam0/10;

Wa=Va/R;%w=v/r toc do tang toc alpha=Wa*T;%noi suy goc alpha khi tang toc tong=sum(alpha);%tong quang duong tang toc

Wd=Vd/R;%toc do giam toc alpha2=Wd*T;%noi suy goc alpha khi giam toc tong2=sum(alpha2);%tong quang duong giam toc

Wc=F/R;%toc do cons tong1os(7/25)-tong-tong2;%quang duong cons Tc_dtr=tong1/Wc;%Thoi gian cons

The variable Nc_dtr is calculated by rounding the division of Tc_dtr by T The variable Vc_dtr is initialized as an array filled with ones, with a length of Nc_dtr plus one, multiplied by F The time constant tc_dtr is generated as a sequence starting from Ta to Ta plus Tc_dtr, incremented by T Additionally, the variable tcs is created as a sequence from Ta to Ta plus Tc_dtr, incremented by Tdk.

Wc_dtr=Vc_dtr/R;%w=v/r alpha1=Wc_dtr*T;% noi suy goc alpha cons td_dtr=Tc_dtr+Ta:T:(Tc_dtr+Ta+Td);

The article discusses the implementation of a mathematical algorithm using symbolic variables in a programming context It initializes an array, `a_alpha`, to compute average values based on a given parameter `alpha`, distributing its values across a specified range A loop iterates through the indices to populate `a_alpha` with normalized values Additionally, the article introduces the calculation of moving averages through the creation of arrays `b_alpha`, `b1_alpha`, and `b2_alpha`, which utilize preceding elements of `a_alpha` to derive smoothed averages This process enhances data analysis by providing a clearer representation of trends within the dataset.

The code snippet calculates values for three arrays, `b_alpha`, `b1_alpha`, and `b2_alpha`, using a loop that iterates from `Na*Nt-2` to `Na*Nt+1` The value of `b_alpha` is computed as a weighted average of two elements from the `a_alpha` array, while `b1_alpha` follows a similar calculation with adjusted coefficients Finally, `b2_alpha` is determined as the average of `b_alpha` and `b1_alpha`, ensuring a balanced representation of the computed values.

The code initializes an array `a_alpha1` with zeros, sized to accommodate the product of `Nc_dtr` and `Nt`, plus one It then assigns the value of `alpha1` divided by `Nt` to the first element of `a_alpha1` In a nested loop, the code iterates through `Nc_dtr`, updating segments of the `a_alpha1` array by distributing the value of `alpha1` across specific indices determined by the current iteration, effectively normalizing the values based on `Nt`.

The article discusses the computation of average values using symbolic variables in a MATLAB-like environment It initializes an array, `a_alpha2`, to store values derived from `alpha2` divided by `Nt` A loop iterates over the dimensions, updating `a_alpha2` based on specific index ranges Additionally, three new arrays, `b_alpha2`, `b1_alpha2`, and `b2_alpha2`, are created to calculate average values based on different formulas For the first four indices, averages are computed using weighted contributions from `a_alpha2`, while for subsequent indices, the averages consider the values of several preceding elements This structured approach ensures a comprehensive calculation of averages across the defined dimensions.

%tinh toan dich chuyen ns tho

%acc A_dtr=cos(alpha);%A=cos B_dtr=sin(alpha);%B=sin X4=zeros(1,Na+1);

Y4=zeros(1,Na+1); syms z for z=2:Na+1 X4(1,1);%Hoanh do diem A Y4(1,1);%Tung do diem A X4(1,z)=A_dtr(1,z-1)*((X4(1,z-1))-X4(1,1))+B_dtr(1,z-1)*(Y_tam-Y4(1,z-1))+X4(1,1); Y4(1,z)=Y_tam-A_dtr(1,z-1)*(Y_tam-Y4(1,z-1))+B_dtr(1,z-1)*(X4(1,z-1)-X4(1,1)); end

Y5=zeros(1,Nc_dtr+1); syms v for v=2:Nc_dtr+1 X5(1,1)=X4(1,Na+1);

X5(1,v)=A_dtr1(1,v-1)*(X5(1,v-1)-X4(1,1))+B_dtr1(1,v-1)*(Y_tam-Y5(1,v-1))+X4(1,1); Y5(1,v)=Y_tam-A_dtr1(1,v-1)*(Y_tam-Y5(1,v-1))+B_dtr1(1,v-1)*(X5(1,v-1)-X4(1,1)); end

Bài tập lớn môn hệ thống điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có một động cơ.

Y6_dtr=zeros(1,Nd+1); syms m for m=2:Nd+1 X6(1,1)=X5(1,Nc_dtr+1);

X6(1,m)=A_dtr2(1,m-1)*(X6(1,m-1)-X4(1,1))+B_dtr2(1,m-1)*(Y_tam-Y6(1,m-1))+X4(1,1); Y6(1,m)=Y_tam-A_dtr2(1,m-1)*(Y_tam-Y6(1,m-1))+B_dtr2(1,m-1)*(X6(1,m-1)-X4(1,1)); end

%tinh toan dich chuyen ns tinh tuyen tinh

%acc A1_dtr=cos(a_alpha);%A=cos B1_dtr=sin(a_alpha);%B=sin X41=zeros(1,Na*Nt+1);

Y41=zeros(1,Na*Nt+1); syms z for z=2:Na*Nt+1 X41(1,1);%Hoanh do diem A Y41(1,1);%Tung do diem A X41(1,z)_dtr(1,z-1)*((X41(1,z-1))-X41(1,1))+B1_dtr(1,z-1)*(Y_tam-Y41(1,z- 1))+X41(1,1);

Y41(1,z)=Y_tam-A1_dtr(1,z-1)*(Y_tam-Y41(1,z-1))+B1_dtr(1,z-1)*(X41(1,z-1)- X41(1,1)); end

Y51=zeros(1,Nc_dtr*Nt+1); syms v for v=2:Nc_dtr*Nt+1 X51(1,1)=X41(1,Na*Nt+1);

Y51(1,v)=Y_tam-A1_dtr1(1,v-1)*(Y_tam-Y51(1,v-1))+B1_dtr1(1,v-1)*(X51(1,v-1)- X41(1,1)); end

Y61=zeros(1,Nd*Nt+1); syms m for m=2:Nd*Nt+1 X61(1,1)=X51(1,Nc_dtr*Nt+1);

Y61(1,m)=Y_tam-A1_dtr2(1,m-1)*(Y_tam-Y61(1,m-1))+B1_dtr2(1,m-1)*(X61(1,m-1)- X41(1,1)); end

%tinh toan dich chuyen ns tinh trung binh

%acc A2_dtr=cos(b2_alpha);%A=cos B2_dtr=sin(b2_alpha);%B=sin X42=zeros(1,Na*Nt+1);

Y42=zeros(1,Na*Nt+1); syms z for z=2:Na*Nt+1 X42(1,1);%Hoanh do diem A

Y42(1,1);%Tung do diem A X42(1,z)_dtr(1,z-1)*((X42(1,z-1))-X42(1,1))+B2_dtr(1,z-1)*(Y_tam-Y42(1,z- 1))+X42(1,1);

Y42(1,z)=Y_tam-A2_dtr(1,z-1)*(Y_tam-Y42(1,z-1))+B2_dtr(1,z-1)*(X42(1,z-1)- X42(1,1)); end

Y52=zeros(1,Nc_dtr*Nt+1); syms v for v=2:Nc_dtr*Nt+1 X52(1,1)=X42(1,Na*Nt+1);

Y52(1,v)=Y_tam-A2_dtr1(1,v-1)*(Y_tam-Y52(1,v-1))+B2_dtr1(1,v-1)*(X52(1,v-1)- X42(1,1)); end

Y62=zeros(1,Nd*Nt+1); syms m for m=2:Nd*Nt+1 X62(1,1)=X52(1,Nc_dtr*Nt+1);

Y62(1,m)=Y_tam-A2_dtr2(1,m-1)*(Y_tam-Y62(1,m-1))+B2_dtr2(1,m-1)*(X62(1,m-1)- X42(1,1)); end

Y72s=Y72(:, 1:2500);Y82s=Y82(:, 1:10060);Y92s=Y92(:, 1:2501); wave1.time = [];%iput simulink sum=[X42s,X52s,X62s,X12s,X21s,X32s,X72s,X82s,X92s;Y42s,Y52s,Y62s,Y12s,Y21s,Y32s,Y72s,Y 82s,Y92s]'; wave1.signals.values = sum; wave1.signals.dimensions =2; xsml=x_sml; ysml=y_sml;

Chương trình nội suy chữ C (m-file)

clear sum F=5; %toc do an dao 50mm/s^2 A=2; %gia toc tang toc cho phep D=2; %gia toc giam toc cho phep L@; %chieu dai

T^-3; %chu ky noi suy Tdk-3;

%%tinh toan thoi gian tang toc giam toc Ta=F/A;%time acc

Tc=(L-Sa-Sd)/F;%time cons

Bài tập lớn môn hệ thống điều khiển máy CNC, máy CNC hai trục X-Y, mỗi trục có một động cơ.

Va=Va0:T*A:F;%Vi+1=Vi+A*T Vd=Vd0:-T*D:0;%Vi+1=Vi-A*T Vc=ones(1,Nc+1)*F; ta=0:T:Ta; td=Tc+Ta:T:(Tc+Ta+Td); tc=Ta:T:(Ta+Tc);

%noi suy duong tron X_tam=0;

Wa=Va/R;%w=v/r toc do tang toc alpha=Wa*T;%noi suy goc alpha khi tang toc tong=sum(alpha);%tong quang duong tang toc

Wd=Vd/R;%toc do giam toc alpha2=Wd*T;%noi suy goc alpha khi giam toc tong2=sum(alpha2);%tong quang duong giam toc

The formula for calculating the speed (Wc) is derived from the force (F) divided by resistance (R) The angle difference (tong1) is determined by subtracting the sum of angles (tong) and (tong2) from pi The distance (Tc_dtr) is computed using the angle difference divided by the speed The time (Nc_dtr) is rounded by dividing the distance by the time interval (T) The interpolation count (Vc_dtr) is represented as an array of ones, with a length of Nc_dtr plus one, multiplied by the force Finally, the time intervals (tc_dtr) are generated from the starting time (Ta) to the calculated distance, incremented by the time interval (T).

Wc_dtr=Vc_dtr/R;%w=v/r alpha1=Wc_dtr*T;% noi suy goc alpha cons

A_dtr=cos(alpha);%A=cos B_dtr=sin(alpha);%B=sin X4=zeros(1,Na+1);

Y4=zeros(1,Na+1); syms z for z=2:Na+1 X4(1,1) ;%Hoanh do diem A Y4(1,1) ;%Tung do diem A X4(1,z)=X4(1,z-1)*A_dtr(1,z-1)-(Y4(1,z-1)-Y_tam)*B_dtr(1,z-1);

Y4(1,z)=(Y4(1,z-1)-Y_tam)*A_dtr(1,z-1)+X4(1,z-1)*B_dtr(1,z-1)+Y_tam; end

Y5=zeros(1,Nc_dtr+1); syms v for v=2:Nc_dtr+1 X5(1,1)=X4(1,Na+1)*A_dtr1(1,v-1)-(Y4(1,Na+1)-Y_tam)*B_dtr1(1,v-1); Y5(1,1)=(Y4(1,Na+1)-Y_tam)*A_dtr1(1,v-1)+X4(1,Na+1)*B_dtr1(1,v-1)+Y_tam; X5(1,v)=X5(1,v-1)*A_dtr1(1,v-1)-(Y5(1,v-1)-Y_tam)*B_dtr1(1,v-1);

Y5(1,v)=(Y5(1,v-1)-Y_tam)*A_dtr1(1,v-1)+X5(1,v-1)*B_dtr1(1,v-1)+Y_tam; end

Y6_dtr=zeros(1,Nd+1); syms m for m=2:Nd+1

X6(1,m)=X6(1,m-1)*A_dtr2(1,m-1)-(Y6(1,m-1)-Y_tam)*B_dtr2(1,m-1); Y6(1,m)=(Y6(1,m-1)-Y_tam)*A_dtr2(1,m-1)+X6(1,m-1)*B_dtr2(1,m-1)+Y_tam; end

%%tinh toan thoi gian tang toc giam toc Ta=F/A;%time acc

Tc=(L-Sa-Sd)/F;%time cons

Va=Va0:T*A:F;%Vi+1=Vi+A*T Vd=Vd0:-T*D:0;%Vi+1=Vi-A*T Vc=ones(1,Nc+1)*F; ta=0:T:Ta; td=Tc+Ta:T:(Tc+Ta+Td); tc=Ta:T:(Ta+Tc);

%tinh toan khoang tang toc deltaL1=Va*T; deltaX1taL1*0; deltaY1taL1*1; syms i X1=zeros(1,Na+1);

Y1=zeros(1,Na+1); for i=2:Na+1 X1(1,1)=X6(1,Nd+1);

%tinh toan khoang cons deltaL2=Vc*T; deltaX2taL2*0; deltaY2taL2*1; syms j X2=zeros(1,Nc+1);

Y2=zeros(1,Nc+1); for j=2:Nc+1 X2(1,1)=X1(1,Na+1);

%tinh toan khoang giam toc deltaL3=Vd*T; deltaX3taL3*0; deltaY3taL3*1; syms k X3=zeros(1,Nd);

Y3=zeros(1,Nd); for k=2:Nd+1 X3(1,1)=X2(1,Nc+1);

Bài tập lớn môn điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có 1 động cơ Bài tập này giúp sinh viên hiểu rõ về nguyên lý hoạt động và ứng dụng của máy CNC trong sản xuất Việc nắm vững cách điều khiển máy CNC sẽ nâng cao kỹ năng thực hành và khả năng sáng tạo trong thiết kế.

Wa=Va/R;%w=v/r toc do tang toc alpha=Wa*T;%noi suy goc alpha khi tang toc tong=sum(alpha);%tong quang duong tang toc

Wd=Vd/R;%toc do giam toc alpha2=Wd*T;%noi suy goc alpha khi giam toc tong2=sum(alpha2);%tong quang duong giam toc

The formula for calculating speed is Wc = F/R, where F represents force and R is resistance The total angle, denoted as tong1, is calculated as pi minus the sum of angles tong and tong2 The distance covered, Tc_dtr, is derived from the equation Tc_dtr = tong1/Wc The time taken, Nc_dtr, is determined by rounding the result of Tc_dtr divided by T The interpolation value for speed, Vc_dtr, is initialized as a constant array filled with the force value F The time intervals are defined as tc_dtr ranging from Ta to Ta + Tc_dtr The derived speed, Wc_dtr, is calculated using the formula Wc_dtr = Vc_dtr/R The angular interpolation, alpha1, is obtained by multiplying Wc_dtr by T, while the time intervals for the derived angle, td_dtr, span from Tc_dtr + Ta to Tc_dtr + Ta + Td.

A_dtr=cos(alpha);%A=cos B_dtr=sin(alpha);%B=sin X7=zeros(1,Na+1);

Y7=zeros(1,Na+1); syms q for q=2:Na+1 X7(1,1)=X3(1,Nd+1);%Hoanh do diem A Y7(1,1)=Y3(1,Nd+1);%Tung do diem A X7(1,q)=X7(1,q-1)*A_dtr(1,q-1)-(Y7(1,q-1)-Y_tam1)*B_dtr(1,q-1);

Y7(1,q)=(Y7(1,q-1)-Y_tam1)*A_dtr(1,q-1)+X7(1,q-1)*B_dtr(1,q-1)+Y_tam1; end A_dtr1=cos(alpha1);

Y8=zeros(1,Nc_dtr+1); syms p for p=2:Nc_dtr+1 X8(1,1)=X7(1,Na+1);

Y8(1,p)=(Y8(1,p-1)-Y_tam1)*A_dtr1(1,p-1)+X8(1,p-1)*B_dtr1(1,p-1)+Y_tam1; end A_dtr2=cos(alpha2);

Y9=zeros(1,Nd+1); for l=2:Nd+1 X9(1,1)=X8(1,Nc_dtr+1)*A_dtr2(1,l-1)-(Y8(1,Nc_dtr+1)-Y_tam1)*B_dtr2(1,l-1);

Y9(1,1)=(Y8(1,Nc_dtr+1)-Y_tam1)*A_dtr2(1,l-1)+X8(1,Nc_dtr+1)*B_dtr2(1,l-1)+Y_tam1; X9(1,l)=X9(1,l-1)*A_dtr2(1,l-1)-(Y9(1,l-1)-Y_tam1)*B_dtr2(1,l-1);

Y9(1,l)=(Y9(1,l-1)-Y_tam1)*A_dtr2(1,l-1)+X9(1,l-1)*B_dtr2(1,l-1)+Y_tam1; end

%noi suy tinh duong thang

The calculation of acceleration in a linear system involves initializing arrays for both X and Y coordinates Specifically, the arrays aX1 and aY1 are created with zeros, sized to accommodate the total number of elements calculated from the product of Na and Nt Each element in these arrays is then computed by distributing the corresponding values from aX1 and aY1 across the range defined by the loop indices This process iterates through each set of parameters, ensuring that the values are accurately normalized by the total number of time steps, Nt, resulting in a refined representation of the acceleration data.

The code initializes several arrays, including bX1, bY1, b1X1, b1Y1, b2X1, and b2Y1, to store computed values based on input arrays aX1 and aY1 A loop iterates from k=2 to Na*Nt-3, calculating moving averages for bX1 and bY1 using neighboring elements of aX1 and aY1, respectively Another loop processes the final elements from k=Na*Nt-2 to Na*Nt+1, applying a weighted average to the last few elements of aX1 and aY1 Additionally, two new arrays, X11 and X12, are initialized to hold values for further computations.

Y11=zeros(1,Na*Nt+1);Y12=zeros(1,Na*Nt+1); for l=2:Na*Nt+1 e=0.0319;

%tinh toan khoang cons ns tinh syms i j k aX2=zeros(1,Nc*Nt+1);aX2(1,Nc*Nt+1)taX2(1,Nc+1)/Nt; aY2=zeros(1,Nc*Nt+1);aY2(1,Nc*Nt+1)taY2(1,Nc+1)/Nt;

X21=zeros(1,Nc*Nt+1);Y21=zeros(1,Nc*Nt+1); for i=1:Nc for j=(Nt*i-Nt+1):(Nt*i) aX2(1,j)taX2(1,i)/Nt; aY2(1,j)taY2(1,i)/Nt; end end for k=2:Nc*Nt+1 X21(1,1)=X11(1,Na*Nt+1);

The article discusses the calculation of average values for two sequences, aX3 and aY3, using MATLAB It initializes arrays for these sequences with zeros and computes their values by iterating through specified indices The average values are derived by weighing the elements of aX3 and aY3 based on their respective indices and the total number of elements, Nt Additionally, it introduces variables bX3, b1X3, and b2X3 to store the computed averages for further analysis The calculations involve a combination of the elements from the original sequences, ensuring a systematic approach to deriving the averages.

Bài tập lớn môn hệ thống điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có một động cơ.

The calculations for the variables bY3, b1Y3, and b2Y3 are performed using a weighted average formula that incorporates previous values from the array aY3, normalized by Nt Similarly, the variables bX3, b1X3, and b2X3 are computed through the average of the current and prior values from the array aX3, also divided by Nt These computations are iteratively executed for a range of indices, ensuring that the newly defined variables reflect the necessary averages for further processing Additionally, two arrays, X31 and X32, are initialized to store results, each sized to accommodate the total number of iterations defined by Nd and Nt.

Y31=zeros(1,Nd*Nt+1);Y32=zeros(1,Nd*Nt+1); for l=2:Nd*Nt+1 X31(1,1)=X21(1,Nc*Nt+1);X32(1,1)=X21(1,Nc*Nt+1);

%noi suy tinh duong tron

The article discusses the implementation of symbolic mathematics in MATLAB to compute average values for a given set of data It initializes an array, `a_alpha`, to store normalized values derived from the variable `alpha`, distributing these values across specified indices The code then calculates three different average arrays: `b_alpha`, `b1_alpha`, and `b2_alpha`, using a loop to aggregate values from `a_alpha` over a defined range The averages are computed using a sliding window approach, ensuring that each average reflects the contributions of adjacent elements Finally, the article addresses edge cases by calculating averages for the last few indices differently, maintaining the integrity of the data throughout the process.

The algorithm initializes an array, a_alpha1, to store values based on the input alpha1, distributing these values evenly across a specified number of iterations The process involves iterating through a range defined by Nc_dtr and assigning the average value of alpha1 to segments of the a_alpha1 array, ensuring that each segment corresponds to its respective iteration This method effectively normalizes the values across the defined range, facilitating further calculations.

%noi suy tinh dec syms i j%ns tuyen tinh a_alpha2=zeros(1,Nd*Nt+1);a_alpha2(1,Nd*Nt+1)=alpha2(1,Nd+1)/Nt; for i=1:Nd for j=(Nt*i-Nt+1):(Nt*i) a_alpha2(1,j)=alpha2(1,i)/Nt; end end

The code initializes three arrays, `b_alpha2`, `b1_alpha2`, and `b2_alpha2`, each sized to accommodate the total number of elements defined by `Nd*Nt + 1` For the first four indices, it calculates values for `b_alpha2`, `b1_alpha2`, and `b2_alpha2` using weighted averages of the elements in the `a_alpha2` array For indices from 5 to `Nd*Nt`, it computes the values of `b_alpha2` and `b1_alpha2` based on the average of five surrounding elements from `a_alpha2`, and subsequently calculates `b2_alpha2` as the average of `b_alpha2` and `b1_alpha2` This approach ensures a smooth transition of values across the arrays while maintaining a coherent structure.

%tinh toan dich chuyen ns tinh tuyen tinh

%acc A1_dtr=cos(a_alpha);%A=cos B1_dtr=sin(a_alpha);%B=sin X41=zeros(1,Na*Nt+1);X71=zeros(1,Na*Nt+1);

Y41=zeros(1,Na*Nt+1);Y71=zeros(1,Na*Nt+1); syms z for z=2:Na*Nt+1 X41(1,1) ;X71(1,1)=-20;%Hoanh do diem A Y41(1,1) ;Y71(1,1)=-20+e;%Tung do diem A X41(1,z)=X41(1,z-1)*A1_dtr(1,z-1)-(Y41(1,z-1)-Y_tam)*B1_dtr(1,z-1);

Y41(1,z)=(Y41(1,z-1)-Y_tam)*A1_dtr(1,z-1)+X41(1,z-1)*B1_dtr(1,z-1)+Y_tam; X71(1,z)=X71(1,z-1)*A1_dtr(1,z-1)-(Y71(1,z-1)-Y_tam1)*B1_dtr(1,z-1);

Y71(1,z)=(Y71(1,z-1)-Y_tam1)*A1_dtr(1,z-1)+X71(1,z-1)*B1_dtr(1,z-1)+Y_tam1; end

X51=zeros(1,Nc_dtr*Nt+1);X81=zeros(1,Nc_dtr*Nt+1);

Y51=zeros(1,Nc_dtr*Nt+1);Y81=zeros(1,Nc_dtr*Nt+1); syms v for v=2:Nc_dtr*Nt+1 X51(1,1)=X41(1,Na*Nt+1);X81(1,1)=X71(1,Na*Nt+1);

Y51(1,v)=(Y51(1,v-1)-Y_tam)*A1_dtr1(1,v-1)+X51(1,v-1)*B1_dtr1(1,v-1)+Y_tam; X81(1,v)=X81(1,v-1)*A1_dtr1(1,v-1)-(Y81(1,v-1)-Y_tam1)*B1_dtr1(1,v-1);

Y81(1,v)=(Y81(1,v-1)-Y_tam1)*A1_dtr1(1,v-1)+X81(1,v-1)*B1_dtr1(1,v-1)+Y_tam1; end

X61=zeros(1,Nd*Nt+1);X91=zeros(1,Nd*Nt+1);

Y61=zeros(1,Nd*Nt+1);Y91=zeros(1,Nd*Nt+1); syms m for m=2:Nd*Nt+1 X61(1,1)=X51(1,Nc_dtr*Nt+1);X91(1,1)=X81(1,Nc_dtr*Nt+1);

Y61(1,1)=Y51(1,Nc_dtr*Nt+1);Y91(1,1)=Y81(1,Nc_dtr*Nt+1);

Y61(1,m)=(Y61(1,m-1)-Y_tam)*A1_dtr2(1,m-1)+X61(1,m-1)*B1_dtr2(1,m-1)+Y_tam; X91(1,m)=X91(1,m-1)*A1_dtr2(1,m-1)-(Y91(1,m-1)-Y_tam1)*B1_dtr2(1,m-1);

Y91(1,m)=(Y91(1,m-1)-Y_tam1)*A1_dtr2(1,m-1)+X91(1,m-1)*B1_dtr2(1,m-1)+Y_tam1; end

%tinh toan dich chuyen ns tinh trung binh

%acc A2_dtr=cos(b2_alpha);%A=cos B2_dtr=sin(b2_alpha);%B=sin X42=zeros(1,Na*Nt+1);X72=zeros(1,Na*Nt+1);

Y42=zeros(1,Na*Nt+1);Y72=zeros(1,Na*Nt+1);

Bài tập lớn môn hệ thống điều khiển máy CNC, máy CNC hai trục X và Y, mỗi trục có một động cơ.

60 syms z for z=2:Na*Nt+1 X42(1,1) ;X72(1,1)=-20;%Hoanh do diem A Y42(1,1) ;Y72(1,1)=-20+e;%Tung do diem A X42(1,z)=X42(1,z-1)*A2_dtr(1,z-1)-(Y42(1,z-1)-Y_tam)*B2_dtr(1,z-1);

Y72(1,z)=(Y72(1,z-1)-Y_tam1)*A2_dtr(1,z-1)+X72(1,z-1)*B2_dtr(1,z-1)+Y_tam1; end

X52=zeros(1,Nc_dtr*Nt+1);X82=zeros(1,Nc_dtr*Nt+1);

Y52=zeros(1,Nc_dtr*Nt+1);Y82=zeros(1,Nc_dtr*Nt+1); syms v for v=2:Nc_dtr*Nt+1 X52(1,1)=X42(1,Na*Nt+1);X82(1,1)=X72(1,Na*Nt+1);

Y52(1,v)=(Y52(1,v-1)-Y_tam)*A2_dtr1(1,v-1)+X52(1,v-1)*B2_dtr1(1,v-1)+Y_tam; X82(1,v)=X82(1,v-1)*A2_dtr1(1,v-1)-(Y82(1,v-1)-Y_tam1)*B2_dtr1(1,v-1);

Y82(1,v)=(Y82(1,v-1)-Y_tam1)*A2_dtr1(1,v-1)+X82(1,v-1)*B2_dtr1(1,v-1)+Y_tam1; end

X62=zeros(1,Nd*Nt+1);X92=zeros(1,Nd*Nt+1);

Y62=zeros(1,Nd*Nt+1);Y92=zeros(1,Nd*Nt+1); syms m for m=2:Nd*Nt+1 X62(1,1)=X52(1,Nc_dtr*Nt+1);X92(1,1)=X82(1,Nc_dtr*Nt+1);

Y62(1,1)=Y52(1,Nc_dtr*Nt+1);Y92(1,1)=Y82(1,Nc_dtr*Nt+1);

Y62(1,m)=(Y62(1,m-1)-Y_tam)*A2_dtr2(1,m-1)+X62(1,m-1)*B2_dtr2(1,m-1)+Y_tam; X92(1,m)=X92(1,m-1)*A2_dtr2(1,m-1)-(Y92(1,m-1)-Y_tam1)*B2_dtr2(1,m-1);

Y92(1,m)=(Y92(1,m-1)-Y_tam1)*A2_dtr2(1,m-1)+X92(1,m-1)*B2_dtr2(1,m-1)+Y_tam1; end

Y10s(1,t)=Y9s(1,Nd*Nt+1); end wave1.time = [];%iput simulink sum=[X4s,X5s,X6s,X1s,X2s,X3s,X7s,X8s,X9s,X10s;Y4s,Y5s,Y6s,Y1s,Y2s,Y3s,Y7s,Y8s,Y9s,Y10s ]'; wave1.signals.values = sum; wave1.signals.dimensions =2; xsml=x_sml; ysml=y_sml;

Nội suy thô đường thẳng với kiểu tăng/giảm tốc sau nội suy dạng hình thang

%%thong so F=5; %toc do an dao 50mm/s^2 A=2; %gia toc tang toc cho phep D=2; %gia toc giam toc cho phep LP; %chieu dai

%%tinh toan thoi gian tang toc giam toc

Ta=F/A;%time acc Na=Ta/T;%Pulse acc Tsum=L/F;%total time

%%tinh toan khoang dich chuyen dX=L*0.8; dY=L*0.6;

N=Tsum/T;%Pulse sum syms i deltaX=zeros(1,N+1);%khoang dich chuyen truc X deltaY=zeros(1,N+1);%khoang dich chuyen truc Y for i=1:N deltaX(i)=dX/N; deltaY(i)=dY/N; end

YLO=zeros(1,N+Na); for i=2:Na%acc XLO(1)taX(1)/Na;YLO(1)taY(1)/Na;

YLO(i)taY(i)/Na+YLO(i-1); end for i=Na+1:N%cons XLO(i)=(deltaX(i)-deltaX(i-Na))/Na+XLO(i-1);

YLO(i)=(deltaY(i)-deltaY(i-Na))/Na+YLO(i-1); end for i=N+1:N+Na%dec XLO(i)=-deltaX(i-Na)/Na+XLO(i-1);

YLO(i)=-deltaY(i-Na)/Na+YLO(i-1); end X=zeros(1,N+Na);

Nội suy thô đường tròn với kiểu tăng/giảm tốc sau nội suy dạng hình thang

%%thong so F=5; %toc do an dao 50mm/s^2 A=2; %gia toc tang toc cho phep D=2; %gia toc giam toc cho phep alpha=1.287;%tong cung dich chuyen T^-3; %chu ky noi suy

X_tam0/10;%tam duong tron truc X Y_tam=(310/6);%tam duong tron truc Y R50/30;%ban kinh

%%tinh toan thoi gian tang toc giam toc Ta=F/A;%time acc

Na=Ta/T;%Pulse acc Tsum.72;%total time

%%tinh toan khoang dich chuyen N=Tsum/T;%Pulse sum syms i d_alpha=zeros(1,N+1);%khoang dich chuyen goc alpha for i=1:N d_alpha(i)=alpha/N; end

%%output alphaLO=zeros(1,N+Na); for i=2:Na%acc alphaLO(1)=d_alpha(1)/Na; alphaLO(i)=d_alpha(i)/Na+alphaLO(i-1);

Ngày đăng: 20/12/2023, 22:30

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

TÀI LIỆU LIÊN QUAN

w