TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN
----------
BÁO CÁO BÀI TẬP LỚN
HỆ THỐNG ĐIỀU KHIỂN MÁY CNC
Giảng viên hướng dẫn: TS. Dương Minh Đức
Nhóm 18
Trương Hữu Đơ
20181392
Trần Văn Long
20181629
Nguyễn Đắc Quang
20174132
Hà Nội, tháng 7 năm 2022
Hệ thống điều khiển máy CNC
MỤC LỤC
2
Hệ thống điều khiển máy CNC
DANH MỤC HÌNH VẼ
Hình 1.1 Mơ hình điều khiển vị trí..................................................................................7
Hình 1.2 Mơ hình bộ điểu khiển 8
Hình 1.3 Mơ hình điều khiển vị trí 2 trục X,Y................................................................8
Hình 1.4 Đáp ứng lượng đặt vị trí của trục X.................................................................9
Hình 1.5 Đáp ứng lượng đặt vị trí của trục Y................................................................10
Hình 1.6 U điều khiển của trục X..................................................................................10
Hình 1.7 U điều khiển của trục Y..................................................................................11
3
Hệ thống điều khiển máy CNC
ĐỀ BÀI
Cho máy CNC có 2 trục động cơ X,Y như sau:
Vx
K1
Vy
K2
- Trục X : U = T s +1
x
1
- Trục Y : U = T s+ 1
y
2
- K 1, K 2; T 1, T 2 ≤ 0.1 ( Tự chọn)
I.
Thiết kế bộ điều khiển vị trí cho hai trục X, Y
Yêu cầu:
-
Độ quá điều chỉnh nhỏ hơn 5%,
Sai lệch tĩnh nhỏ hơn 0.1%,
|U đk ∨¿ ≤10V
Thời gian xác lập nhỏ nhất.
Đầu vào dạng Step
II. Nội suy đường thẳng và đường tròn
Yêu cầu:
-
T nộisuy =5 ms
-
Tăng tốc giảm tốc trước nội suy( ADCBI)
Dạng quỹ đạo hình thang( Normal Block)
T đk =1 ms
III. Vẽ quỹ đạo hình chữ O
4
Hệ thống điều khiển máy CNC
BÀI LÀM
I.
Thiết kế bộ điều khiển vị trí cho hai trục X, Y
Hàm truyền của mạch vòng vận tốc tương ứng với mỗi trục chuyển động Ox, Oy
như sau :
Vx
K1
Vy
K2
- Trục X : U = T s +1
x
1
- Trục Y : U = T s+ 1
y
2
Ta chọn bộ số như sau:
K 1=8
; K 2=8;
T 1=0.02 ; T 2=0.02
Ta có cấu trúc mạch vịng điều khiển vị trí như sau:
Hình 1.1 Cấu trúc điều điển vị trí
Đối tượng điều khiển vị trí ta thấy gồm khâu tích phân - qn tính bậc nhất
Trong q trình thiết kế bộ điều khiển vị trí em đã khơng sử dụng khâu tích
phân I mà chỉ dùng thành phần P và D. Do đối tượng đã có khâu tích phân đã
làm cho sai lệch tính về 0 nên nếu đưa thêm khâu tích phân là khơng cần thiết.
U max
10
đk
= =10
Xác định hệ số Kp như sau: Kp= e
1
max
Tiếp theo ta chỉnh định hệ số Td thỏa mãn nhưng yêu cầu ở trên
Hình 1.2 Cấu trúc bộ điều khiển
5
Hệ thống điều khiển máy CNC
Hình 1.3 Mơ hình điều khiển vị trí 2 trục X,Y
Sau khi kết hợp kết quả ở trên và quá trình chỉnh định bằng ta, chúng em
chọn ra hai bộ PD tương ứng để điều khiển vị trí cho hai động cơ trên trục X,Y.
Đặc điểm/Trục
Trục X
Trục Y
KP
10
10
TD
0.091895
0.091895
Thời gian quá độ (s)
0.094208
0.094208
Độ quá điều chỉnh (%)
5.00
5.00
Sai lệch tĩnh (%)
0.00
0.00
|U đk ∨¿≤10V
10V
10V
So sánh với điều kiện đề bài
Thỏa mãn
Thỏa mãn
Kết quả mô phỏng
6
Hệ thống điều khiển máy CNC
Hình 1.4 Đáp ứng lượng đặt vị trí của trục X
Hình 1.5 Đáp ứng lượng đặt vị trí của trục Y
7
Hệ thống điều khiển máy CNC
Hình 1.6 U điều khiển của trục X
Hình 1.7 U điều khiển của trục Y
8
Hệ thống điều khiển máy CNC
II. Nội suy đường thẳng và đường tròn
1.Nội suy đường thẳng
Cần di chuyển từ điểm A đến điểm B theo quỹ đạo là đường thẳng.
Yêu cầu: Thực hiện nội suy 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)
Thơng số cần sử dụng trong q trình nội suy:
-
Tọa độ điểm bắt đầu: A (200, 200)
Tọa độ điểm kết thúc: B (500, 600)
Tốc độ ăn dao: F = 100 (mm/s)
Gia tốc tăng tốc cho phép: A = 50 (mm/s)
Gia tốc giảm tốc cho phép: B = 50 (mm/s)
Chu kỳ nội suy: Tns = 5 (m/s)
-
Chu kỳ điều khiển: Tdk = 1 (m/s)
1.1 Các bước tiến hành
Tính tốn thơng số cần thiết
-
Chiều dài đoạn thẳng: L= √(500−200)2+(600−200)2 =500(mm)
cos φ ,sin φ (φ là góc lệch giữa đoạn thẳng AB và trục Ox)
cos φ =
500−200
= 0.6
500
sin φ =
600−200
= 0.8
500
Tính tốn q trình tăng tốc, giảm tốc và vận tốc khơng đổi
Với thơng số như trên ta có sẽ kiểm tra dạng quỹ đạo là Normal Block hay Short
Block :
2
2
F
F
+
−L=−300<0 .Suy ra quỹ đạo dạng Normal Block. Ta có bảng :
2 A 2D
Tăng tốc
Tính tốn thời
gian tăng tốc T A,
giảm tốc T D , vận
tốc không đổi T C
T A=
F
=2(s)
A
Giảm tốc
T D=
F
=2(s)
D
Vận tốc không đổi
T C=
L−
F2 F2
−
2A 2D
=3 (s)
F
9
Hệ thống điều khiển máy CNC
Số lần nội suy
NA =
TA
=¿ 400
T ns
ND =
TD
=¿ 400
T ns
NC =
Tc
=¿ 400
T ns
Theo thông số thì ta có đồ thị vận tốc:
Velocity Interpolation
100
Acc
Cons
Dec
90
80
Velocity (mm/s)
70
60
50
40
30
20
10
0
0
1
2
3
4
5
6
7
Time (s)
Code Matlab:
%% Thoi gian tang toc, giam toc
Tns=5e-3;
% Chu ki noi suy
Tdk=1e-3;
% Chu ki dieu khien
kT=5;
% Ti so Tns/Tdk
F=100;
% Toc do an dao
A=50;
% Gia toc tang toc
D=50;
% Gia toc giam toc
% Toa do diem A(start) va B(end)
xa=200;ya=200;
xb=500;yb=600;
Lx=xb-xa;
Ly=yb-ya;
10
Hệ thống điều khiển máy CNC
L=sqrt(Lx^2+Ly^2);
cosphi=(xb-xa)/L;
sinphi=(yb-ya)/L;
% Kiem tra dang quy dao la Normal block hay Short block
if F^2/(2*A)+F^2/(2*D) < L
% Normal block
Ta=F/A; % Thoi gian tang toc
Td=F/D; % Thoi gian giam toc
Tc=(L-F^2/(2*A)-F^2/(2*D))/F;
% Thoi gian chuyen dong
deu
else
% Short block
F=sqrt(L/(1/(2*A)+1/(2*D)));
Ta=F/A; % Thoi gian tang toc
Td=F/D; % Thoi gian giam toc
Tc=0;
% Thoi gian chuyen dong deu
end
Tsum=Ta+Tc+Td% Tong thoi gian chuyen dong
Na=int32(Ta/Tns);
toc
% So lan noi suy trong giai doan tang
Nd=int32(Td/Tns);
dong deu
% So lan noi suy trong giai doan chuyen
Nc=int32(Tc/Tns);
toc
% So lan noi suy trong giai doan giam
Nsum=Na+Nc+Nd;
% Tong so lan noi suy
time_ns=linspace(0,Tsum,Nsum);
time_dk=linspace(0,Tsum,kT*Nsum);
Nội suy thơ:
- Sử dụng phương pháp trích mẫu dữ liệu.
11
Hệ thống điều khiển máy CNC
-
Quá trình tăng tốc: Chuyển động nhanh dần đều, vận tốc tăng từ 0 đến F, gia tốc
A.
Vận tốc sau mỗi chu kỳ nội suy là: V ( i+1 )=V (i ) + A . T ns
Quãng đường đi được sau mỗi chu kỳ nội suy là: ∆ La =V (i). T ns
Độ dịch chuyển trên trục X: ∆ X (i)=∆ La .cos (φ)
Độ dịch chuyển trên trục Y: ∆ Y (i)=∆ La . sin(φ)
Từ đó ta có tọa độ của dao qua mỗi chu kỳ nội suy là :
X ( i+1)= X (i)+ ∆ X (i)
Y (i+1)=Y (i)+ ∆ Y (i)
-
Q trình tốc độ khơng đổi: Chuyển động đều với vận tốc F, vận tốc sau mỗi chu
kỳ không đổi. Tương tự như trên ta xác định được :
∆ Lc =F .T ns
X ( i +1 )=X (i)+∆ Lc . cos(φ)
Y (i +1)=Y (i)+ ∆ Lc . sin(φ)
-
Quá trình giảm tốc: Chuyển động chậm dần đều, vận tốc sẽ giảm từ F về 0 với gia
tốc D. Tương tự, ta xác định được :
V (i+1)=V (i )−D .T ns
12
Hệ thống điều khiển máy CNC
∆ Ld =V (i ). T ns
X ( i +1 )=X (i)+∆ Ld . cos (φ)
Y (i +1)=Y (i)+ ∆ Ld . sin(φ)
Code Matlab:
%% Noi suy tho
Va=linspace(0,F,Na);
Vc=ones(1,Nc)*F;
% Toc do quang duong tang toc
% Toc do quang duong toc do khong doi
Vd=linspace(F,0,Nd);
% Toc do quang duong giam toc
V=[Va Vc Vd];
% Toc do tren toan quy dao
VX=V*cosphi;
% Toc do ung voi truc X
VY=V*sinphi;
% Toc do ung voi truc Y
dL=V*Tns;
% Quang duong di duoc sau moi Tns
dX=dL*cosphi;
% Quang duong di duoc theo truc X
dY=dL*sinphi;
% Quang duong di duoc theo truc Y
X_tho = xa; Y_tho = ya;
for j=2:length(dL)
X_tho(end+1)=X_tho(end)+dX(j);
Y_tho(end+1) =Y_tho(end)+dY(j);
end
X_tho_A = X_tho(1:Na);
X_tho_C = X_tho(Na+1:Na+Nc);
X_tho_D = X_tho(Na+Nc+1:end);
Y_tho_A = Y_tho(1:Na);
Y_tho_C = Y_tho(Na+1:Na+Nc);
Y_tho_D = Y_tho(Na+Nc+1:end);
plot(X_tho_A,Y_tho_A
,'r',X_tho_C,Y_tho_C,'y',X_tho_D,Y_tho_D,'b','LineWidth',
1)
xlabel('Truc X(mm)')
ylabel('Truc Y(mm)')
title('Quy dao sau khi noi suy tho')
legend({'Acc','Cons','Dec'});
13
Hệ thống điều khiển máy CNC
grid on
Kết quả mô phỏng:
Nội suy tinh:
-
Sau q trình nội suy thơ, ta thu được các giá trị sai lệch giữa thời điểm i
và i+1 theo 2 trục là 2 ma trận dX và dY
-
Gọi tổng số điểm nội suy là: N S =N A + N C + N D
-
Do chu kì điều khiển T đ k nhỏ hơn chu kì nội suy T ns 5 lần nên sau khi nội
suy tinh, kích thước của 2 ma trận mới d X new , d Y new sẽ tăng gấp 5 lần so
với 2 ma trận cũ dX, dY
-
Ở đây ta sẽ sử dụng phương pháp tuyến tính:
d X new ( j )=
dX ( j )
,i ≤ j
5
14
Hệ thống điều khiển máy CNC
-
Sau khi nội suy tinh, vị trí 2 trục X, Y sẽ được tính lại theo công thức sau
X ( i+1 )=X ( i ) +d X new ( i )
Y ( i+1 )=Y ( i ) + d Y new ( i )
Code Matlab:
%% Noi suy tinh
dX_new=[]; dY_new=[];
% Cap nhat gia tri noi suy tinh dX_new, dY_new
for i=1:length(dL)
aX=ones(1,kT)*dX(i)/kT;
aY=ones(1,kT)*dY(i)/kT;
dX_new=[dX_new aX];
dY_new=[dY_new aY];
end
% Tinh ra gia tri noi suy tinh X, Y
X=xa;Y=ya;
for i=2:length(dX_new)
X(end+1)=X(end)+dX_new(i);
Y(end+1)=Y(end)+dY_new(i);
end
% Cap nhat so buoc noi suy tinh
Na_new=Na*kT;
Nc_new=Nc*kT;
Nd_new=Nd*kT;
Xa=X(1:Na_new);
Xc=X(Na_new+1:Na_new+Nc_new);
15
Hệ thống điều khiển máy CNC
Xd=X(Na_new+Nc_new+1:end);
Ya=Y(1:Na_new);
Yc=Y(Na_new+1:Na_new+Nc_new);
Yd=Y(Na_new+Nc_new+1:end);
figure
plot(Xa,Ya,'r',Xc,Yc,'y',Xd,Yd,'b','LineWidth',1)
xlabel('X axis (mm)')
ylabel('Y axis (mm)')
legend({'Acc','Cons','Dec'});
title('Quy dao Noi suy tinh')
grid on
Kết quả mô phỏng:
Vẽ đồ thị:
₋ Đồ thị vị trí:
16
Hệ thống điều khiển máy CNC
Vi tri truc X
X (mm)
500
400
300
200
0
1
2
3
4
5
6
7
5
6
7
5
6
7
5
6
7
Time (s)
Vi tri truc Y
600
Y (mm)
500
400
300
200
0
1
2
3
4
Time (s)
₋ Đồ thị vận tốc:
Van toc truc X
vX (mm/s)
60
40
20
0
0
1
2
4
Time (s)
Van toc truc Y
80
vY (mm/s)
3
60
40
20
0
0
1
2
3
4
Time (s)
Sơ đồ mô phỏng trên Simulink:
17
Hệ thống điều khiển máy CNC
Kết quả mô phỏng trên Simulink:
So sánh:
18
Hệ thống điều khiển máy CNC
19
Hệ thống điều khiển máy CNC
So sanh ket qua ly thuyet va thuc te
600
Points
Acc
550
Cons
Dec
Controller
Vi tri truc Y
500
450
400
350
300
250
200
200
250
300
350
400
450
500
Vi tri truc X
So sanh ket qua ly thuyet va thuc te
418.2789985
Points
Acc
Cons
Dec
Controller
418.278998
Vi tri truc Y
418.2789975
418.278997
418.2789965
418.278996
418.2789955
418.278995
363.7092476
363.709248
Vi tri truc X
20