Professional Documents
Culture Documents
VIỆN ĐIỆN
Mục Lục
PHẦN I: ĐỀ BÀI......................................................................................................3
PHẦN II: BÀI LÀM.................................................................................................4
1. Thiết kế bộ điều khiển PID vị trí cho từng trục.................................................4
2. Nội suy..................................................................................................................11
2.1 Nội suy đường thẳng......................................................................................11
2.1.1 Công thức tính toán nội suy đường thẳng.............................................11
2.1.2 Nội suy thô ……………………………………………………………...12
2.1.3 Nội suy tinh……………………………………………………...………13
2.1.2 Kết quả mô phỏng...................................................................................16
2.2 Nội suy đường tròn........................................................................................18
2.2.1 Xây dựng công thức nội suy đường tròn...............................................19
2.2.2 Mô phỏng..................................................................................................20
3. Vẽ Chữ C.............................................................................................................20
3.1 Tính toán lý thuyết........................................................................................20
3.2 Mô phỏng.......................................................................................................21
4. Thực hiện tăng tốc/ giảm tốc sau nội suy…………………………………
23.
4.1 Tổng quan chung.....................................................................................24
4.2 Nội suy đoạn thẳng…………………………………………………….25
4.3 Nội suy đường tròn ………………………………………………….....27
5. CODE MATLAB…………………………………………………………..33
1
Đề bài
PHẦN I: ĐỀ BÀI
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:
Vx k1
Trục x: =
Ux T 1 s+1
Vy k2
Trục y: =
Uy T 2 s+ 1
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
- Độ quá điều chỉnh ≤ 5%
- Sai lệch tĩnh ≤ 0,1%
- Thời gian xác lập nhỏ nhất
- | Uđk | ≤ 10V
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 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 khi 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 và vmax tự chọn.
Chia tiếp 5ms nội suy theo 2 phương pháp tuyến tính và trung bình.
3
Đề bài
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 suy). Gợi ý: Từ quỹ đạo tính ra các bước di chuyển cho từng trục, sau đó
dùng bộ lọc số để thực hiện tăng tốc/giảm tốc.
5. Ghi chú: Mỗi nhóm sinh viên chuẩn bị một quyển báo cáo, có kèm mã
chương trình mô phỏng. File code chương trình mô phỏng cũng phải nộp cho
giáo viên.
4
Nội suy đường thẳng
k1 4
- Trục x: G1(s)¿ =
T 1 +1 0.02 s+1
k2 6
- Trục y: G2(s)¿ =
T 2 +1 0.01 s+1
Sơ đồ cho trục X, Y:
7
Nội suy đường thẳng
Sử dụng PID tuning trong matlab sau đó hiệu chỉnh để đạt được kết quả tốt hơn.
- Trục x:
- Trục y:
8
Nội suy đường thẳng
Nhận xét:
- Trục x: bộ điều khiển đã đạt yêu cầu bài toán với các chỉ tiêu:
9
Nội suy đường thẳng
Trục Y
- Trục y: bộ điều khiển đã đạt yêu cầu bài toán với các chỉ tiêu:
10
Nội suy đường thẳng
2. Nội suy
2.1 Nội suy đường thẳng
2.1.1 Công thức tính toán nội suy đường thẳng
11
Nội suy đường thẳng
F
Thời gian tăng tốc Ta= A =1(s)
F
Thời gian giảm tốc Td= D =1 ( s )
F2 F2
L− −
2A 2D
Thời gian vận tốc không đổi Tc= =1.5( s)
F
TA
NA¿ τ
=200
x e −x s ye− ys
i Vi(mm/s) Li(mm/s) Δx =Δ L Δ y =Δ L
L L
0 0 0.00025 0.0002 0.00015
1 0.1 0.00075 0.0006 0.00045
2 0.2 0.00125 0.001 0.00075
3 0.3 0.00175 0.0014 0.00105
4 0.4 0.00225 0.0018 0.00135
… … … … …
… … … … …
19 19.9 0.09975 0.0798 0.05985
9
13
Nội suy đường thẳng
20 20.0 -- -- --
0
Giảm tốc
Trong đó: V i là vận tốc của khoảng thời gian thứ i và V o =V m=20 (mm/ s)
Li là độ dịch chuyển của lần lấy mẫu thứ i
TD
N D= =200
τ
x e −x s ye− ys
i Vi(mm/s) Li(mm/s) Δx =Δ L Δ y =Δ L
L L
0 20 0.09975 0.0798 0.05985
1 19.9 0.09925 0.0794 0.05955
2 19.8 0.09875 0.079 0.05925
3 19.7 0.09825 0.0786 0.05895
4 19.6 0.09775 0.0782 0.05865
.. … … … …
.. … … … …
19 0.1 0.00025 0.0002 0.00015
9
20 0 -- -- --
0
2.1.3 Nội suy tinh
Chu kì nội suy 5ms, chu kì điều khiển 1ms → N=5
Phương pháp:
+)Phương pháp tuyến tính
+)Phương pháp trung bình
14
Nội suy đường thẳng
Trục X
+)Phương pháp tuyến tính
Trục Y
+)Phương pháp tuyến tính
15
Nội suy đường thẳng
16
Nội suy đường thẳng
17
Nội suy đường thẳng
18
Nội suy đường tròn
Hình 13: Nội suy thô và nội suy tinh đường tròn
15
Nội suy đường tròn
Hình 14: sự khác nhau giữa nội suy thô và nội suy tinh
16
Nội suy đường tròn
17
Tăng giảm tóc sau nội suy
3. Vẽ Chữ C
3.1 Tính toán lý thuyết
20
Tăng giảm tóc sau nội suy
3.2 Mô phỏng
21
Tăng giảm tóc sau nội suy
22
Tăng giảm tóc sau nội suy
23
Tăng giảm tóc sau nội suy
Phương pháp tăng/giảm tốc sau nội suy sử dụng bộ lọc số với phép tính
tích chập.
Bộ lọc số dựa trên lí thuyết phép tính tích chập giữa hàm h[n] là hàm đáp
n
ứng xung, được xác định bằng công thức ∑ h [ k ] =1và hàm x[n] là giá trị
k=0
Áp dụng với profile vận tốc dạng tuyến tính, ta có bộ lọc số dạng rời rạc
theo công thức:
20
Tăng giảm tóc sau nội suy
−m
1 1−z
HL(z) = m 1−z−1
(*)
Sau đó ta dùng phương pháp Time-Shifting, ta biến đổi công thức * dưới
dạng sai phân:
1
AX (k) = m (i(k) – Vi(k-m)) + AX(k-1)
Với m thỏa mãn r=mT, r là thời gian tăng tốc max, T là chu kì nội suy.
Nội suy thô đoạn thẳng AB với A(xs, ys) , B( xe, ye), => độ dài AB = L,
với chu kỳ nội suy T. Vận tốc ăn dao lớn nhất F max . góc hợp bởi đoạn
thẳng và Ox là góc θ
Vì quá trình nội suy các trục diễn ra trước nên ta coi vận tốc ăn dao trên
quỹ đạo là không đổi và bằng vận tốc max F max. Nên trong các chu kỳ nội
suy, đoạn dịch chuyển AL là bằng nhau và bằng L[k] = Fmax*T=AL
21
Tăng giảm tóc sau nội suy
Mỗi chu kì nội suy, dao sẽ đi được 1 khoảng ∆ L, tương ứng trên trục Ox
sẽ đi được 1 khoảng ∆ x = ∆ L.cosθ và trên trục Oy đi được 1 khoảng ∆ y =
∆ L.sinθ .
Từ đó ta có các đoạn dịch chuyển ax, ay trong các chu kì nội suy.
L 67.082
AL[k] = m = ∆L = 671 = 0.1 mm
∆ x = 0.1 .cosθ
∆ y = 0.1 .sinθ
Kết quả của phép nội suy thô (phép tích chập sử dụng bộ lọc số) được thể
hiện dưới đây:
k AL[k] AL(k-200) S(k) AL0(k)
1 0.1 0 0.1 0.0005
2 0.1 0 0.2 0.0010
3 0.1 0 0.3 0.0015
4 0.1 0 0.4 0.0020
5 0.1 0 0.5 0.0025
6 0.1 0 0.6 0.0030
7 0.1 0 0.7 0.0035
8 0.1 0 0.8 0.0040
9 0.1 0 0.9 0.0045
10 0.1 0 1.0 0.0050
11 0.1 0 1.1 0.0055
12 0.1 0 1.2 0.0060
13 0.1 0 1.3 0.0065
22
Tăng giảm tóc sau nội suy
14 0.1 0 1.4 0.0070
15 0.1 0 1.5 0.0075
…. … … … …
198 0.1 0 19.8 0.0990
199 0.1 0 19.9 0.0995
200 0.1 0 20.0 0.1000
201 0.1 0.1 20.0 0.1000
202 0.1 0.1 20.0 0.1000
… … … … …
665 0.1 0.1 20.0 0.1000
666 0.1 0.1 20.0 0.1000
667 0.1 0.1 20.0 0.1000
668 0.1 0.1 20.0 0.1000
669 0.1 0.1 20.0 0.1000
670 0.1 0.1 20.0 0.1000
671 0.1 0.1 20.0 0.1000
672 0 0.1 19.9 0.0995
673 0 0.1 19.8 0.0990
674 0 0.1 19.7 0.0985
675 0 0.1 19.6 0.0980
676 0 0.1 19.5 0.0975
677 0 0.1 19.4 0.0970
678 0 0.1 19.3 0.0965
… … … … …
865 0 0.1 0.6 0.0030
866 0 0.1 0.5 0.0025
867 0 0.1 0.4 0.0020
868 0 0.1 0.3 0.0015
869 0 0.1 0.2 0.0010
870 0 0.1 0.1 0.0005
871 0 0.1 0
Σ 671 671
23
Tăng giảm tóc sau nội suy
Về cơ bản, các tăng tốc/ giảm tốc sau nội suy đường tròn giống với nội
suy đường thẳng. Điểm khác là ∆ x, ∆ y thay đổi và ảnh hưởng bởi giá trị
F 20
Vận tốc góc ω = R = 20 (rad/s), ωmax = 1rad/s, aht max = dht max = 1 rad/s2
Vì quá trình nội suy các trục diễn ra trước nên ta coi vận tốc ăn dao trên
quỹ đạo là không đổi và bằng vận tốc max W max. Nên trong các chu kỳ
nội suy, góc dịch chuyển Aalpha là bằng nhau và bằng alpha[k] =
Wmax*T, T là chu kì nội suy
Và theo công thức tính đoạn dịch chuyển từng chu kì nội suy
24
Tăng giảm tóc sau nội suy
Sau đó ta thực hiện tăng tốc/ giảm tốc bằng công thức sai phân của bộ lọc
số bên trên, ta thu được các giá trị Dx, DY thực tế để đưa vào bộ điều
khiển vị trí.
Lựa chọn đường tròn có tâm I (20, 20), bán kính R=20mm. Điểm bắt
đầu nội suy là A(20, 00), điểm kết thúc nội suy cũng tại A. Nội suy nửa
đường tròn, nửa còn lại làm tương tự. Chọn F max = 20mm/s, gia tốc tăng
giảm tốc là 20mm/s2, góc quay 2 π , chu kì nội suy 5ms.
Kết quả của phép nội suy thô (phép tích chập sử dụng bộ lọc số) được thể
hiện dưới đây:
K dL(k) dL(k-201) S(k) dL0(k)
1 0.005 0 0.005 2.5e-5
2 0.005 0 0.010 5.0e-5
3 0.005 0 0.015 7.5e-5
4 0.005 0 0.020 10e-5
5 0.005 0 0.025 12.5e-5
6 0.005 0 0.030 15e-5
7 0.005 0 0.035 17.5e-5
8 0.005 0 0.040 20e-5
9 0.005 0 0.045 22.5e-5
10 0.005 0 0.050 25e-5
11 0.005 0 0.055 27.5e-5
12 0.005 0 0.060 30.e-5
13 0.005 0 0.065 32.5e-5
14 0.005 0 0.070 35e-5
15 0.005 0 0.075 37.5e-5
… … … … …
196 0.005 0 0.980 490e-5
197 0.005 0 0.985 492.5e-5
198 0.005 0 0.990 495e-5
199 0.005 0 0.995 497.5e-5
200 0.005 0 1.000 500e-5
201 0.005 0 1.005 500e-5
202 0.005 0.005 1.005 500e-5
203 0.005 0.005 1.005 500e-5
25
Tăng giảm tóc sau nội suy
204 0.005 0.005 1.005 500e-5
205 0.005 0.005 1.005 500e-5
… … …
1250 0.005 0.005 1.005 500e-5
1251 0.005 0.005 1.005 500e-5
1252 0.005 0.005 1.005 500e-5
1253 0.005 0.005 1.005 500e-5
1254 0.005 0.005 1.005 500e-5
1255 0.005 0.005 1.005 500e-5
1256 0.005 0.005 1.005 500e-5
1257 0.005 0.005 1.005 500e-5
1258 0 0.005 1.000 500e-5
1259 0 0.005 0.995 497.5e-5
1260 0 0.005 0.990 495e-5
1261 0 0.005 0.985 492.5e-5
1262 0 0.005 0.980 490e-5
…. … … … …
1456 0 0.005 0.010 5e-5
1457 0 0.005 0.005 2.5e-5
1458 0 0.005 0 0
Σ 6.285 6.285
26
Tăng giảm tóc sau nội suy
27
Tăng giảm tóc sau nội suy
28
Tăng giảm tóc sau nội suy
Hình 28: Nội suy thô sau tăng giảm tốc đường tròn
29
Tăng giảm tóc sau nội suy
30
Tăng giảm tóc sau nội suy
4 .CODE MATLAB
31
Tăng giảm tóc sau nội suy
figure(4)
time = Tipo*(1:(fix(T/Tipo)+1));
plot (time', dL/Tipo, 'linewidth', 1.5)
grid on
axis([-1 5, -1 30])
xlabel('t (s)')
ylabel('V (m/s)')
title('Do thi toc do')
%noi suy tinh su dung phuong phap tuyen tinh
N = Tipo/Tdk;
dL_t = dL(1)/5;
for i = 1:length(dL)
if i == 1
for j = 1:N-1
dL_t = [dL_t, dL(i)/N];
end
else
for j = 1:N
dL_t = [dL_t, dL(i)/N];
end
end
end
X = xA + cumsum(dL_t)*cos;
Y = yA + cumsum(dL_t)*sin;
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 tinh duong thang AB')
% Import Data to Simulink
time = Tipo*(1:(fix(T/Tipo)+1)*5); % Chu ki trich mau 1ms
in_x = [time', X'];
in_y = [time', Y'];
%dau ra X
figure(2)
plot(time', X', 'linewidth', 1.5)
grid on
xlabel('t(s)')
ylabel('X')
title('dau ra X')
%dau ra Y
figure(3)
plot(time', Y', 'linewidth', 1.5)
grid on
xlabel('t(s)')
ylabel('Y')
title('dau ra Y')
33
Tăng giảm tóc sau nội suy
%dau ra Y
figure(3)
plot(time', Y', 'linewidth', 1.5)
grid on
xlabel('t(s)')
ylabel('Y')
title('dau ra Y')
%do thi toc do
figure(4)
plot(time', angle*R/Tipo, 'linewidth', 1.5)
grid on
xlabel('t(s)')
ylabel('V (m/s)')
title('do thi toc do')
%noi suy tinh su dung phuong phap tuyen tinh
N = Tipo/Tdk;
angle_t = angle/N;
t=1;
X_t(t) = xA;
Y_t(t) = yA;
for i = 1:length(angle_t)
if i == 1
for j = 2:N
t = t+1;
X_t(t) = xO + (X_t(t-1) - xO)*cos(angle_t(i)) + (yO - Y_t(t-
1))*sin(angle_t(i));
Y_t(t) = yO - (yO - Y_t(t-1))*cos(angle_t(i)) + (X_t(t-1) -
xO)*sin(angle_t(i));
end
else
for j = 1:N
t = t+1;
X_t(t) = xO + (X_t(t-1) - xO)*cos(angle_t(i)) + (yO - Y_t(t-
1))*sin(angle_t(i));
Y_t(t) = yO - (yO - Y_t(t-1))*cos(angle_t(i)) + (X_t(t-1) -
xO)*sin(angle_t(i));
end
end
end
figure(1)
stairs(X_t, Y_t, 'linewidth', 1.5)
grid on
hold on
axis([-10 50, -10 50])
axis equal
xlabel('X')
ylabel('Y')
title('Noi suy tho va noi suy tinh duong tron')
% Import Data to Simulink
time = Tipo*(1:(fix(T/Tipo)+2)*5); % Chu ki trich mau 1ms
in_x = [time', X_t'];
in_y = [time', Y_t'];
35
Tăng giảm tóc sau nội suy
% noi suy tho cung CD
Tc = (L_CD - F^2/(2*D) - F^2/(2*A))/F;
T_CD = Td + Ta + Tc;
%ma tran bo nho
nA = 0:1:(Ta/Tipo); %them gia tri 0 the hien toc do ban dau la 0
nC = 1:1:ceil(Tc/Tipo);
nD = 1:1:(Td/Tipo);
nT = 1:1:ceil(T_CD/Tipo);
%tinh toc do dai
Va = 0 + A*nA*Tipo;
Vc = F + 0*nC*Tipo;
Vd = F - D*nD*Tipo;
V = [Va, Vc, Vd];
%tinh to do goc
W = V/R;
%tinh goc di chuyen trong noi Tipo
angle = W*Tipo;
angle_CD = angle;
%X_CD = angle;
%Y_CD = angle;
X_CD(1) = xC;
Y_CD(1) = yC;
for i = 2:length(angle)
%if (X(1) >= 20 &&
X_CD(i) = xO2 + (X_CD(i-1) - xO2)*cos(angle(i)) + (yO2 - Y_CD(i-
1))*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
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;
41
Tăng giảm tóc sau nội suy
23