Thực hiện nội suy đường thẳng và đường tròn với kiểu tăng tốc/giảm tốc dạng hình thang tăng tốc/giảm tốc trước nội suy.. Trình bày và nêu ví dụ minh họa thông số tùy chọn về nội suy thô
Trang 11
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
TIỂU LUẬN CUỐI KỲ
Hệ thống điều khiển máy CNC
Lý Ngọc Thuận - 20174249 Hoàng Anh Tú - 20174316
Giảng viên hướng dẫn: TS Dương Minh Đức
HÀ NỘI, 5/2021
Trang 2MỤC LỤC
1 YÊU CẦU BÀI TOÁN VÀ LỰA CHỌN THAM SỐ 4
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
Trang 33
6.2 Nội suy đường tròn 42
7 PHỤ LỤC 47
7.1 Chương trình nội suy đường thẳng (m-file) 47
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 62
Trang 41 YÊU CẦU BÀI TOÁN VÀ LỰA CHỌN THAM SỐ
Một hệ thống CNC gồm 2 trục X và Y được điều khiển bởi 2 động cơ có bộ driver điều khiển tốc độ kèm theo Giả sử hàm truyền với đầu vào là điện áp điều khiển, đầu ra là tốc độ của 2 hệ truyền động 2 trục X và Y là khâu quán tính bậc nhất
1 Tự chọn thông số 02 hàm truyền trên và thiết kế bộ điều khiển vị trí cho từng trục
thỏa mãn các yêu cầu sau:
2 Thực hiện nội suy đường thẳng và đường tròn với kiểu tăng tốc/giảm tốc dạng hình
thang (tăng tốc/giảm tốc trước nội suy) Điểm đầu, điểm cuối, bán kính tùy chọn
- Thực hiện cả nội suy thô và nội suy tinh
- Tự chọn vận tốc tối đa, gia tốc tối đa
- Chu kỳ nội suy thô là 5ms, nội suy tinh là 1ms
3 Thực hiện mô phỏng hệ thống di chuyển theo quỹ đạo hình chữ O hoặc C
4 Trình bày và nêu ví dụ minh họa (thông số tùy chọn) về nội suy thô đường thẳng và
đường tròn với kiểu tăng tốc/giảm tốc dạng hình thang (tăng tốc/giảm tốc sau nội
Trang 55
2 THIẾT KẾ BỘ ĐIỀU KHIỂN VỊ TRÍ PID CHO 2 TRỤC ĐỘNG CƠ
Với thông số 2 hàm truyền động cơ:
Chọn phương pháp thiết kế bộ điều khiển vị trí:
Vì 2 hàm truyền trên đều có khâu tích phân trong hàm truyền vì thế sẽ loại bỏ được sai lệch tĩnh Bởi vậy, bộ điều khiển vị trí được chọn sẽ là bộ PD với hàm truyền:
2.1 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
𝑆𝑒𝑡𝑝𝑜𝑖𝑛𝑡 , 𝐾𝑑 =0
gian xác lập và độ quá điều chỉnh
Hình 2 1 Mô hình mô phỏng Matlab Simulink
2.2 Thiết kế bộ điều khiển
2.2.1 Trục x
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
Trang 6Ta thu được kết quả mô phỏng:
Trang 77
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
Trang 8Hì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
▪ Thời gian xác lập: 0,24s
▪ Độ quá điều chỉnh: 4% < 5%
Trang 99
3 NỘI SUY ĐƯỜNG THẲNG
Trong phần nội suy đường thẳng, nhóm em xin chọn nội suy từ điểm A(10,10) đến
điểm B(50,40)
3.1 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
3.2 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
3.3 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)
Trang 10• Gia tốc giảm tốc cho phép: D=2 (mm/s2)
• 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ính toán thời gian
Trang 1111
3.5 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:
∆𝒚 = ∆𝑳 𝒚𝒆− 𝒚𝒔
𝑳
( × 𝟏𝟎−𝟐mm)
Y (mm)
Trang 12∆𝒚 = ∆𝑳 𝒚𝒆− 𝒚𝒔
𝑳
( × 𝟏𝟎−𝟐mm)
Y (mm)
∆𝒚 = ∆𝑳 𝒚𝒆− 𝒚𝒔
𝑳
( × 𝟏𝟎−𝟐mm)
Y (mm)
Trang 1313
Sau khi nội suy thu được quỹ đạo đi từ: A(10,10) đến B(50,40) như sau:
3.6 Nội suy tinh
nên cần chia nhỏ các giá trị chu kỳ trích mẫu nội suy ra theo chu kỳ trích mẫu điều khiển
và xác định các giá trị ở giữa chu kỳ trích mẫu nội suy Cụ thể là chia nhỏ khoảng dịch chuyển ∆𝐿
Tăng tốc
Tăng tốc
Trang 143.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
𝑇đ𝑘 = 5
Từ đó ta thu được dạng đồ thị khoảng dịch chuyển của phương pháp tuyến tính (đồ thị dưới) so với đồ thị nội suy thô (đồ thị trên) như sau:
• Tăng tốc:
Trang 1515
3.6.2 Nội suy trung bình
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𝑘=−𝑁2+1
𝑁
2−1𝑘=−𝑁2
𝑏(𝑗) + 𝑏′(𝑗) 2
a( j + 3)
a( j + 2)
a( j + 1) a( j) a( j -1) a( j -2) b( j) b1(j) b2(j)
Trang 1717
3.6.3 Quỹ đạo sau nội suy tinh
Sau khi sử dụng 2 phương pháp trên, ta áp dụng khoảng dịch chuyển đã nội suy tinh vào nội suy sai lệch đường thẳng Quỹ đạo thu được như sau:
So sánh với quỹ đạo nội suy thô:
Trang 183.7 Thực hiện điều khiển vị trí
Sau khi thu được quỹ đạo nội suy cuối cùng, ta sử dụng quỹ đạo đó là đầu vào (setpoint) cho bộ điều khiển vị trí có mạch vòng điều khiển như sau:
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:
Trang 1919
Đồ 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:
Trang 20Đồ thị tín hiệu điều khiển (điện áp):
Trang 2121
Đồ thị sai số khi điều khiển:
Biểu diễn 3 đường theo yêu cầu bài toán:
Trang 2323
4 NỘI SUY ĐƯỜNG TRÒN
Trong phần nội suy đường tròn, nhóm em xin chọn nội suy từ điểm A(10,10) đến
• Chu kỳ nội suy: =5 (ms)
giữa 2 điểm cần nội
suy trên cung tròn)
(rad)
Từ bảng trên, ta có thể tính tổng góc 𝜶 trong quá trình tăng tốc và giảm tốc, từ đó
có thể tính toán được chiều dài và thời gian khi tốc độ không đổi:
𝑹 =𝟓𝟎
Trang 244.3 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:
Trang 26
4.4 Nội suy tinh
Tương tự như đã nội suy tinh với đường thẳng, tiến hành nội suy tinh quỹ đạo hình
Tăng tốc
Trang 28So sánh với giá trị nội suy thô:
Trang 2929
Đồ thị quỹ đạo đầu ra:
Đồ thị so sánh quỹ đạo vào/ra theo thời gian:
Trang 30Đồ thị so sánh vận tốc vào/ra theo thời gian:
Trang 3131
Đồ thị tín hiệu điều khiển:
Đồ thị sai số khi điều khiển:
Trang 32Biểu diễn 3 đường theo yêu cầu bài toán:
Trang 3333
5 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=20mm 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=40mm
• 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=20mm 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:
Trang 34Tiế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:
Trang 3535
Đư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:
Trang 36Đồ thị so sánh vận tốc vào/ra theo thời gian:
Trang 3737
Đồ thị tín hiệu điều khiển:
Đồ thị sai số khi điều khiển:
Trang 38Biểu diễn 3 đường theo yêu cầu bài toán:
Trang 3939
6 NỘI SUY THÔ QUỸ ĐẠO VỚI TĂNG/GIẢM TỐC SAU NỘI SUY
Trong phần này, nhóm em xin chọn nội suy từ điểm A(10,10) đến điểm B(50,40)
6.1 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)
• 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:
Tính toán:
Trang 40Input pulse train: Impulse response:
Output pulse train:
Trang 42Quỹ đạo thu được cuối cùng:
Trang 4343
• Chu kỳ nội suy: =5 (ms)
Tương tự như phần tuyến tính ta thu được:
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
Trang 44497 6.0028e-04 0 5.9668e-04
…
Trang 4545 Quỹ đạo thu được cuối cùng:
So sánh với quỹ đạo đặt:
Trang 47A=2; %gia toc tang toc cho phep
D=2; %gia toc giam toc cho phep
L=50; %chieu dai
T=5e-3; %chu ky noi suy
Tdk=1e-3; %chu ky dieu khien
Nt=T/Tdk;%ty so
%%tinh toan thoi gian tang toc giam toc
Ta=F/A;%time acc
Trang 48%tinh toan khoang tang toc ns tinh
syms i j%ns tuyen tinh
bY1(1,k)=(aY1(1,k+3)+aY1(1,k+2)+aY1(1,k+1)+aY1(1,k)+aY1(1,k-1))/Nt; b1Y1(1,k)=(aY1(1,k+4)+aY1(1,k+3)+aY1(1,k+2)+aY1(1,k+1)+aY1(1,k))/Nt; b2Y1(1,k)=(bY1(1,k)+b1Y1(1,k))/2;
end
for k=Na*Nt-2:Na*Nt+1
bX1(1,k)=((k-Na*Nt+3)*aX1(1,Na*Nt+1)+(Nt-k+Na*Nt-3)*aX1(1,k))/Nt; b1X1(1,k)=((k-Na*Nt+4)*aX1(1,Na*Nt+1)+(Nt-k+Na*Nt-4)*aX1(1,k))/Nt; b2X1(1,k)=(bX1(1,k)+b1X1(1,k))/2;
bY1(1,k)=((k-Na*Nt+3)*aY1(1,Na*Nt+1)+(Nt-k+Na*Nt-3)*aY1(1,k))/Nt; b1Y1(1,k)=((k-Na*Nt+4)*aY1(1,Na*Nt+1)+(Nt-k+Na*Nt-4)*aY1(1,k))/Nt; b2Y1(1,k)=(bY1(1,k)+b1Y1(1,k))/2;
Trang 49bY3(1,k)=(aY3(1,k)+aY3(1,k-1)+aY3(1,k-2)+aY3(1,k-3)+aY3(1,k-4))/Nt; b1Y3(1,k)=(aY3(1,k+1)+aY3(1,k)+aY3(1,k-1)+aY3(1,k-2)+aY3(1,k-3))/Nt; b2Y3(1,k)=(bY3(1,k)+b1Y3(1,k))/2;
Y11s=Y11(:, 1:2500);Y21s=Y21(:, 1:7500);Y31s=Y31(:, 1:2500);
wave.time = [];%iput simulink
A=2; %gia toc tang toc cho phep
D=2; %gia toc giam toc cho phep
L=50; %chieu dai
T=5e-3; %chu ky noi suy
Tdk=1e-3;
Trang 50Nt=T/Tdk;
I=(F*F)/(2*A)+(F*F)/(2*D)-L;
%%tinh toan thoi gian tang toc giam toc
Ta=F/A;%time acc
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
tong1=acos(7/25)-tong-tong2;%quang duong cons
Tc_dtr=tong1/Wc;%Thoi gian cons
Nc_dtr=round(Tc_dtr/T);% so lan noi suy cons
Vc_dtr=ones(1,Nc_dtr+1)*F;%toc do cons
%noi suy tinh acc
syms i j%ns tuyen tinh
a_alpha=zeros(1,Na*Nt+1);a_alpha(1,Na*Nt+1)=alpha(1,Na+1)/Nt;
for i=1:Na
for j=(Nt*i-Nt+1):(Nt*i)
Trang 5151
end
for k=Na*Nt-2:Na*Nt+1
b_alpha(1,k)=((k-Na*Nt+3)*a_alpha(1,Na*Nt+1)+(Nt-k+Na*Nt-3)*a_alpha(1,k))/Nt; b1_alpha(1,k)=((k-Na*Nt+4)*a_alpha(1,Na*Nt+1)+(Nt-k+Na*Nt-4)*a_alpha(1,k))/Nt; b2_alpha(1,k)=(b_alpha(1,k)+b1_alpha(1,k))/2;
%noi suy tinh dec
syms i j%ns tuyen tinh
end
%dec
A_dtr2=cos(alpha2);
Trang 5353
Y42(1,1)=10;%Tung do diem A
1))+X42(1,1);
X42(1,1));
X42(1,1));
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,Y82s,Y92s]';
A=2; %gia toc tang toc cho phep
D=2; %gia toc giam toc cho phep
%%tinh toan thoi gian tang toc giam toc
Ta=F/A;%time acc
Trang 54Wa=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
tong1=pi-tong-tong2;%quang duong cons
Tc_dtr=tong1/Wc;%Thoi gian cons
Nc_dtr=round(Tc_dtr/T);% so lan noi suy cons
Vc_dtr=ones(1,Nc_dtr+1)*F;%toc do cons
Trang 5555
X6(1,1)=X5(1,Nc_dtr+1);
Y6(1,1)=Y5(1,Nc_dtr+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
Trang 56X_tam1=0;
Y_tam1=-20;
R=20;
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
tong1=pi-tong-tong2;%quang duong cons
Tc_dtr=tong1/Wc;%Thoi gian cons
Nc_dtr=round(Tc_dtr/T);% so lan noi suy cons
Vc_dtr=ones(1,Nc_dtr+1)*F;%toc do cons
Trang 57bY1(1,k)=(aY1(1,k+3)+aY1(1,k+2)+aY1(1,k+1)+aY1(1,k)+aY1(1,k-1))/Nt; b1Y1(1,k)=(aY1(1,k+4)+aY1(1,k+3)+aY1(1,k+2)+aY1(1,k+1)+aY1(1,k))/Nt; b2Y1(1,k)=(bY1(1,k)+b1Y1(1,k))/2;
end
for k=Na*Nt-2:Na*Nt+1
bX1(1,k)=((k-Na*Nt+3)*aX1(1,Na*Nt+1)+(Nt-k+Na*Nt-3)*aX1(1,k))/Nt; b1X1(1,k)=((k-Na*Nt+4)*aX1(1,Na*Nt+1)+(Nt-k+Na*Nt-4)*aX1(1,k))/Nt; b2X1(1,k)=(bX1(1,k)+b1X1(1,k))/2;
bY1(1,k)=((k-Na*Nt+3)*aY1(1,Na*Nt+1)+(Nt-k+Na*Nt-3)*aY1(1,k))/Nt; b1Y1(1,k)=((k-Na*Nt+4)*aY1(1,Na*Nt+1)+(Nt-k+Na*Nt-4)*aY1(1,k))/Nt; b2Y1(1,k)=(bY1(1,k)+b1Y1(1,k))/2;
%tinh toan khoang giam toc ns tinh
syms i j%ns tuyen tinh
Trang 58%noi suy tinh duong tron
%noi suy tinh acc
syms i j%ns tuyen tinh
b1_alpha(1,k)=(a_alpha(1,k+4)+a_alpha(1,k+3)+a_alpha(1,k+2)+a_alpha(1,k+1)+a_alpha(1,k))/Nt;
b2_alpha(1,k)=(b_alpha(1,k)+b1_alpha(1,k))/2;
end
for k=Na*Nt-2:Na*Nt+1
b_alpha(1,k)=((k-Na*Nt+3)*a_alpha(1,Na*Nt+1)+(Nt-k+Na*Nt-3)*a_alpha(1,k))/Nt; b1_alpha(1,k)=((k-Na*Nt+4)*a_alpha(1,Na*Nt+1)+(Nt-k+Na*Nt-4)*a_alpha(1,k))/Nt; b2_alpha(1,k)=(b_alpha(1,k)+b1_alpha(1,k))/2;
end
%noi suy tinh cons
Trang 592)+a_alpha2(1,k-3))/Nt;
Trang 6161
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
A=2; %gia toc tang toc cho phep
D=2; %gia toc giam toc cho phep
alpha=1.287;%tong cung dich chuyen
T=5e-3; %chu ky noi suy
X_tam=100/10;%tam duong tron truc X
Y_tam=(310/6);%tam duong tron truc Y
R=1250/30;%ban kinh
%%tinh toan thoi gian tang toc giam toc
Ta=F/A;%time acc
Na=Ta/T;%Pulse acc
Tsum=10.72;%total time
%%tinh toan khoang dich chuyen
N=Tsum/T;%Pulse sum
Trang 627.6 Chương trình điều khiển trên simulink
Đường thẳng + Đường tròn:
Chữ C: