1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo bài tập lớn hệ THỐNG điều KHIỂN máy CNC một hệ thống CNC gồm 2 trục x và y được điều khiển bởi 2 động cơ

48 10 0

Đ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

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN CHUYÊN NGÀNH KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA 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 sinh viên thực hiện: Nhóm Thành viên: Đỗ Đức Thắng Nguyễn Văn Hiếu Phạm Thế Thiện MSSV 20174202 20173866 20174235 Hà Nội, 6/2021 Mục lục Mục Lục Đề PHẦN I: ĐỀ BÀI Một hệ thống CNC gồm trục X Y điều khiển động có driver điều khiển tốc độ kèm theo Giả sử hàm truyền với đầu vào điện áp điều khiển, đầu tốc độ hệ truyền động trục X Y khâu quán tính bậc nhất: Trục x: Trục y: Với k1 k2, T1 T2 tự chọn, T1, T2 nhỏ (< 0.5) Tự chọn thông số 02 hàm truyền thiết kế điều khiển vị trí cho trục thỏa mãn yêu cầu sau - Độ điều chỉnh ≤ 5% - Sai lệch tĩnh ≤ 0,1% - Thời gian xác lập nhỏ - | Uđk | ≤ 10V Thực nội suy đường thẳng đườ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 nội suy thô 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ô 5ms, nội suy tinh 1ms Thực mô hệ thống di chuyển theo quỹ đạo hình chữ O C Nội suy đường trịn tâm I(x0,y0) bán kính R tùy chọn chu kỳ nội suy 5ms, chu kì điều khiển 1ms Yêu cầu gia tốc giảm tốc trước nội suy Xác định quỹ đạo chuyển động theo thời gian với profile vận tốc hình thang, amax vmax tự chọn Chia tiếp 5ms nội suy theo phương pháp tuyến tính trung bình Đề Trình bày nêu ví dụ minh họa (thông số tùy chọn) nội suy thơ đường thẳng đườ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 suy) Gợi ý: Từ quỹ đạo tính bước di chuyển cho trục, sau dùng lọc số để thực tăng tốc/giảm tốc Ghi chú: Mỗi nhóm sinh viên chuẩn bị báo cáo, có kèm mã chương trình mơ File code chương trình mô phải nộp cho giáo viên Nội suy đường thẳng PHẦN II: BÀI LÀM Thiết kế điều khiển PID vị trí cho trục * Hai hàm truyền đối tượng: - Trục x: G1(s) - Trục y: G2(s) * Mô matlab: + Mục tiêu thiết kế:    Đáp ứng nhanh tốt |Udk| = 20 && X_CD(i) = xO2 + (X_CD(i-1) - xO2)*cos(angle(i)) + (yO2 - Y_CD(i1))*sin(angle(i)); Y_CD(i) = yO2 - (yO2 - Y_CD(i-1))*cos(angle(i)) + (X_CD(i-1) xO2)*sin(angle(i)); end %ve cung CD 41 Tăng giảm tóc sau nội suy %noi suy tho doan thang BC c =(xC-xB)/L_BC; s =(yC-yB)/L_BC; Tc = (L_BC - F^2/(2*A)-F^2/(2*D))/F; T_BC = Ta + Td + Tc; %ma tran bo nho nA = 0:1:(Ta/Tipo); %them gia tri the hien toc ban dau la nT = 1:1:(T_BC/Tipo); nC = 1:1:(Tc/Tipo); nD = 1:1:(Td/Tipo); %tinh toc Va = + A*nA*Tipo; Vc = F + 0*nC*Tipo; Vd = F - D*nD*Tipo; V = [Va, Vc, Vd]; dL_BC = V; for i=1:(length(V)-1) dL_BC(i) = ((V(i)+V(i+1))/2)*Tipo; end X_BC = xB + cumsum(dL_BC)*c; Y_BC = yB + cumsum(dL_BC)*s; % ve noi suy tho chu C figure(2) stairs(X_AB, Y_AB, 'linewidth', 1.5) hold on stairs(X_BC, Y_BC, 'linewidth', 1.5) hold on stairs(X_CD, Y_CD, 'linewidth', 1.5) grid on hold on axis([-10 100, -10 100]) axis equal xlabel('X') ylabel('Y') title('Noi suy tho chu C') %noi suy tinh cung AB N = Tipo/Tdk; angle_t = angle/N; t=1; X_t_AB(t) = xA; Y_t_AB(t) = yA; for i = 1:length(angle_t) if i == for j = 2:N t = t+1; X_t_AB(t) = xO1 + Y_t_AB(t-1))*sin(angle_t(i)); Y_t_AB(t) = yO1 1) - xO1)*sin(angle_t(i)); end else for j = 1:N t = t+1; X_t_AB(t) = xO1 + Y_t_AB(t-1))*sin(angle_t(i)); Y_t_AB(t) = yO1 1) - xO1)*sin(angle_t(i)); end end end (X_t_AB(t-1) - xO1)*cos(angle_t(i)) + (yO1 (yO1 - Y_t_AB(t-1))*cos(angle_t(i)) + (X_t_AB(t- (X_t_AB(t-1) - xO1)*cos(angle_t(i)) + (yO1 (yO1 - Y_t_AB(t-1))*cos(angle_t(i)) + (X_t_AB(t- 42 Tăng giảm tóc sau nội suy %noi suy tinh cung CD angle_t = angle/N; t=1; X_t_CD(t) = xC; Y_t_CD(t) = yC; for i = 1:length(angle_t) if i == for j = 2:N t = t+1; X_t_CD(t) = xO2 + Y_t_CD(t-1))*sin(angle_t(i)); Y_t_CD(t) = yO2 1) - xO2)*sin(angle_t(i)); end else for j = 1:N t = t+1; X_t_CD(t) = xO2 + Y_t_CD(t-1))*sin(angle_t(i)); Y_t_CD(t) = yO2 1) - xO2)*sin(angle_t(i)); end end end (X_t_CD(t-1) - xO2)*cos(angle_t(i)) + (yO2 (yO2 - Y_t_CD(t-1))*cos(angle_t(i)) + (X_t_CD(t- (X_t_CD(t-1) - xO2)*cos(angle_t(i)) + (yO2 (yO2 - Y_t_CD(t-1))*cos(angle_t(i)) + (X_t_CD(t- %noi suy tinh doan BC dL_t_BC = dL_BC(1)/N; for i = 1:length(dL_BC) if i == for j = 1:N-1 dL_t_BC = [dL_t_BC, dL_BC(i)/N]; end else for j = 1:N dL_t_BC = [dL_t_BC, dL_BC(i)/N]; end end end X_t_BC = xB + cumsum(dL_t_BC)*c; Y_t_BC = yB + cumsum(dL_t_BC)*s; %ve noi suy tinh va tho hinh chu C figure(2) stairs(X_t_AB, Y_t_AB, 'linewidth', 1.5) hold on stairs(X_t_BC, Y_t_BC, 'linewidth', 1.5) hold on stairs(X_t_CD, Y_t_CD, 'linewidth', 1.5) grid on hold on axis([-10 100, -10 100]) axis equal xlabel('X') ylabel('Y') title('Noi suy tho va tinh chu C') %ve van toc an dao figure(3) time_AB = Tipo*(1:(fix(T_AB/Tipo)+2)); time_BC = max(time_AB) + (Tipo*(1:(fix(T_BC/Tipo)+1))); time_CD = max(time_BC) + (Tipo*(1:(fix(T_CD/Tipo)+2))); plot(time_AB', angle_AB*R/Tipo, 'linewidth', 1.5) hold on 43 Tăng giảm tóc sau nội suy plot(time_CD', angle_CD*R/Tipo, 'linewidth', 1.5) hold on plot(time_BC', dL_BC/Tipo, 'linewidth', 1.5) hold on grid on axis([-1 12, -1 30]) xlabel('t(s)') ylabel('V(mm/s)') title('do thi van toc') % Import Data to Simulink T = T_AB + T_BC + T_CD; X = [X_t_AB, X_t_BC, X_t_CD]; Y = [Y_t_AB, Y_t_BC, Y_t_CD]; time = Tipo*(1:(fix(T/Tipo)+5)*5); % Chu ki trich mau 1ms in_x = [time', X']; in_y = [time', Y']; %ve tin hieu suat tu simulink %x=out_x.Data; %y=out_y.Data; %plot(x,y,'linewidth',1.5) %xlabel('X') %ylabel('Y') %title('simulink chu C') %dau X figure(1) plot(time', X', 'linewidth', 1.5) grid on axis([-1 65, -1 85]) xlabel('t(s)') ylabel('X') title('dau X') %dau Y figure(4) plot(time', Y', 'linewidth', 1.5) grid on axis([-1 65, -1 85]) xlabel('t(s)') ylabel('Y') title('dau Y') Tăng/Giảm tốc sau nội suy đường thẳng %tang giam toc sau noi suy doan thang clear clc A = 20; D = 20; F = 20; Tipo = 5e-3; Tdk = 1e-3; xA = 30; yA = 50; xB = 90; yB = 80; L = sqrt((xB-xA)^2+(yB-yA)^2); cos =(xB-xA)/L; sin =(yB-yA)/L; Ta = F/A; T = L/F; 44 Tăng giảm tóc sau nội suy nT = 1:1:(ceil(T/Tipo)); k = zeros(1, ceil(Ta/Tipo)); n = length(k); dL = L/max(nT); for i=2:length(nT) dL = [dL, L/max(nT)]; end %ap dung cong thuc S(k) = S(k ?1) + ?X(k)??X(k ?n) % ?Xo(k) = S(k)/n P = [dL, k]; %dong vai tro la ?X(k) Q = [k,dL]; %dong vai tro la ?X(k ?n) S = P/n; %dong vai tro la ?Xo(k) for i=2:length(P) S(i) = S(i-1) + (P(i) - Q(i))/n; end X = xA + cumsum(S)*cos; Y = yA + cumsum(S)*sin; %do thi noi suy tho doan thang figure(1) stairs(X, Y, 'linewidth', 1.5) grid on hold on axis([-10 100, -10 100]) axis equal xlabel('X') ylabel('Y') title('Noi suy tho doan thang AB') % Import Data to Simulink time = Tipo*(1:(ceil(T/Tipo)+n)); % Chu ki trich mau 1ms in_x = [time', X']; in_y = [time', Y']; %do thi bieu thi toc figure(2) plot(time', S/Tipo, 'linewidth', 1.5) grid on hold on axis([-1 5, -1 30]) xlabel('X') ylabel('Y') title('do thi bieu thi toc do') %dau X figure(3) plot(time', X', 'linewidth', 1.5) grid on xlabel('t(s)') ylabel('X') title('dau X') %dau Y figure(4) plot(time', Y', 'linewidth', 1.5) grid on xlabel('t(s)') ylabel('Y') title('dau Y') Tăng/Giảm tốc sau nội suy đường tròn: 45 Tăng giảm tóc sau nội suy %tang giam toc sau noi suy duong tron clear clc A = 20; D = 20; F = 20; Tipo = 5e-3; Tdk = 1e-3; %thong so duong tron xA = 20; yA = 00; %diem bat dau xB = 40; yB = 20; %diem ket thuc xO = 20; yO = 20; %tam duong tron R = 20; vecOA = [xA-xO yA-yO]; vecOB = [xB-xO yB-yO]; L_OA = sqrt(vecOA(1)^2 + vecOA(2)^2); L_OB = sqrt(vecOB(1)^2 + vecOB(2)^2); angleAOB = acos(dot(vecOA, vecOB)/(L_OA*L_OB)); %L = R * angleAOB; %do dai cung tron L = R*2*pi; Ta = F/A; T = L/F; nT = 1:1:(ceil(T/Tipo)); k = zeros(1, ceil(Ta/Tipo)); n = length(k); %tinh to goc W = F/R; angle = W*Tipo; for i=1:length(nT) angle = [angle, W*Tipo]; end %ap dung cong thuc S(k) = S(k ?1) + ?X(k)??X(k ?n) % ?Xo(k) = S(k)/n P = [angle, k]; %dong vai tro la ?X(k) Q = [k, angle]; %dong vai tro la ?X(k ?n) S = P/n; %dong vai tro la ?Xo(k) for i=2:length(P) S(i) = S(i-1) + (P(i) - Q(i))/n; end X = S; Y = S; X(1) = xA; Y(1) = yA; for i = 2:length(S) X(i) = xO + (X(i-1) - xO)*cos(S(i)) + (yO - Y(i-1))*sin(S(i)); Y(i) = yO - (yO - Y(i-1))*cos(S(i)) + (X(i-1) - xO)*sin(S(i)); end figure(1) stairs(X, Y, 'linewidth', 1.5) grid on hold on axis([-10 50, -10 50]) axis equal xlabel('X') ylabel('Y') title('Noi suy tho duong tron') %Import Data to Simulink time = Tipo*(1:(ceil(T/Tipo)+n+1)); % Chu ki trich mau 1ms in_x = [time', X']; in_y = [time', Y']; 46 Tăng giảm tóc sau nội suy %dau X figure(2) plot(time', X', 'linewidth', 1.5) grid on xlabel('t(s)') ylabel('X') title('dau X') %dau Y figure(3) plot(time', Y', 'linewidth', 1.5) grid on xlabel('t(s)') ylabel('Y') title('dau Y') %do thi bieu thi toc dai figure(4) plot(time', (S/Tipo)*R, 'linewidth', 1.5) grid on hold on axis([-1 10, -1 30]) xlabel('time') ylabel('V') title('do thi bieu thi toc dai') 47 Tăng giảm tóc sau nội suy 48 ... 6 /20 21 Mục lục Mục Lục Đề PHẦN I: ĐỀ BÀI Một hệ thống CNC gồm trục X Y điều khiển động có driver điều khiển tốc độ kèm theo Giả sử hàm truyền với đầu vào điện áp điều khiển, đầu tốc độ hệ truyền... vecO1B (2) ^2) ; angleAO1B = acos(dot(vecO1A, vecO1B)/(L_O1A*L_O1B)); L_AB = R * angleAO1B; %do dai cung tron AB vecO2C = [xC-xO2 yC-yO2]; vecO2D = [xD-xO2 yD-yO2]; L_O2C = sqrt(vecO2C(1) ^2 + vecO2C (2) ^2) ;... xA = 20 ; yA = 00; %diem bat dau xB = 40; yB = 20 ; %diem ket thuc xO = 20 ; yO = 20 ; %tam duong tron R = 20 ; vecOA = [xA-xO yA-yO]; vecOB = [xB-xO yB-yO]; L_OA = sqrt(vecOA(1) ^2 + vecOA (2) ^2) ; L_OB

Ngày đăng: 22/07/2022, 18:16

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w