
































Preview text:
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH
KHOA CƠ KHÍ CHẾ TẠO MÁY
BỘ MÔN CƠ ĐIỆN TỬ
BÁO CÁO CUỐI KỲ NHÓM 17
MÔN HỌC: HỆ THỐNG TRUYỀN ĐỘNG SERVO
GVHD: Th.S Võ Lâm Chương SVTH: MSSV Lê Ngọc Anh 21146424 Lại Văn Bắc Lê Nguyên Khang
Tp. HCM, ngày 20 tháng 11 năm 2023 lOMoARcPSD| 37054152 MỤC LỤC
YÊU CẦU ĐỀ BÀI ...................................................................................................... ...... 1
Bảng thông số của động cơ M4- 4207 ...................................................
.............................. 2
1. Mô phỏng 3 cấp vận tốc cho NL=4 và NL=7 ................................................... .............. 5
1.1 TH1: NL=4 ...................................................................................................... ......... 6
1.1.1 Tốc độ thấp tương đương với hệ bậc 1
................................................... ............ 6
1.1.2 Tốc độ trung bình tương đương với hệ bậc 2
................................................... ... 8
1.1.3 Tốc độ cao tương đương với hệ bậc 4
................................................... ............ 10
1.2 TH2: NL=7 ...................................................................................................... ....... 12
1.2.1 Tốc độ thấp tương đương với hệ bậc 1
................................................... .......... 12
1.2.2 Tốc độ trung bình tương đương với hệ bậc 2
................................................... . 14
1.2.3 Tốc độ cao tương đương với hệ bậc 4
................................................... ............ 16
1.3 Nhận xét đáp ứng vị trí và vận tốc đối với 3 cấp vận tốc:
....................................... 18
2. Viết thuật toán PID ...................................................................................................... . 19
Nhận xét ...................................................................................................... .................. 26
Hệ thống truyền động sevro lOMoARcPSD| 37054152 YÊU CẦU ĐỀ BÀI
Mỗi nhóm phải chọn các thông số tải trọng bao gồm độ cứng khớp nối mềm (KL),
quán tính moment (JL), và giảm xóc nhớt (DL) để thỏa mãn điều kiện: 3 ≤ 𝑁𝑁 ≤ 10 (ít
nhất 2 khác nhau tải trong phạm vi này) và hệ số tắt dần cho tất cả các tải: 𝑁 = 0,02
Mỗi nhóm sử dụng động cơ ở câu hỏi 1. Viết thuật toán PID bằng m-file của
Matlab để mô phỏng để điều khiển vận tốc của động cơ. Thuật toán phải bao gồm bộ lọc
đạo hàm cho số hạng D và bộ lọc chống gió cho số hạng I. Hãy minh họa tác dụng của
việc chống gió giật trong kết quả của bạn?
Bảng thông số động cơ 1 lOMoARcPSD| 37054152 lOMoARcPSD| 37054152 Encoder Option Encoder Type
Incremental (A quad B with index Z & complements) Power Supply 5 V DC ± 5%, 200mA max Output
Line Driver, 20mA Max source/sink Resolution (ppr) 1024 / 2048 / 4096 Frequency Response 200 kHz max Brake Option
Barke Open Voltage (Volts D.C.) 24 Power (Watts) 28 Brake Static Torque (Nm) 20 Weight (brake + housing) Kg 13
Bản vẽ động cơ M4-4203 lOMoARcPSD| 37054152 rated output of motor kW 0 2 , rated torque of motor kgm 0,195 rated velocity of motor rev/min 1000
inertia moment of motor axis J m kg m 2 0,00224
inertia moment of mechanism part J L kg m 2 0,00653
natural angel frequency of mechanism part rad/s 94 , L 2
damping rate of mechanism part L 0,002 encoder resolution pulse/rev 2000 gear deceleration ratio N G 1
Bảng 1.1 Slide bài giảng
Như thống nhất ở trên lớp chọn độ cứng khớp nối mềm như bảng 1.1 : K L J L L
K L 2L.J L 94, 22. 0,00653 57,95 (N.m)
Chọn độ cứng của khớp KL 58 N.m nối
Động cơ có thể có hộp số nhưng trong mô phỏng chọn NG 1 .
Yêu cầu chọn ít nhất hai tải trọng trong phạm vi từ 3 đến 10. Chọn NL=4 và NL=7
1. Mô phỏng 3 cấp vận tốc cho NL=4 và NL=7
Bảng thông số cần thiết cho mô phỏng của động cơ M4-4203A lOMoARcPSD| 37054152
Để thể hiện rõ ràng các cấp vận tốc, chọn position là 400 rad để đồ thị thể hiện rõ
các đáp ứng với từng cấp vận tốc 1.1 TH1: NL=4
1.1.1 Tốc độ thấp tương đương với hệ bậc 1 V V 1 x Ma 1 .2500 125 rpm 20 20 lOMoARcPSD| 37054152
V 13,1 rad/s. Chọn V=10 rad/s =95,5 rpm
cp 0, 24 ; cv 0,82 b0 (1 NL )cpcv (1 4).0,82.0, 24 0,984 b1 (1 NL )(cv 2cpcv L )
(1 4)(0,82 2.0,82.0, 24.0, 02) 4,139 b0 0,984 0, 237 c p1 b1 4,139
K p1 c p1 . L 0, 237.41,3 9,788
Sơ đồ khối mô phỏng trên matlab simulink Code mô phỏng: NL=4; Ng=1; cp=0.24; cv=0.82; psi=0.02; Jm=0.0085; KL=58; %cong thuc o duoi lOMoARcPSD| 37054152 JJm*(Ng^2); wL = Lsqrt(KL/JL); DL = 2*psi*sqrt(KL*JL); =b0=(1+NL)*cp*cv; b1=(1+NL)*(cv+2*cp*cv*psi); Ncp1=b0/b1; LKp1 = cp1*wL *sim('Bac1_NL4') %ve do thi
matlab%legend('Input','Vitri') %hold onplot(out.vantoc.Time, %plot(out.input.Time, out.vantoc.Data, '-r',
out.input.Data, '--k','LineWidth',1) 'LineWidth',1)grid on %plot(out.y1st.Time, out.y1st.Data, '-r', 'LineWidth',1) lOMoARcPSD| 37054152 Đồồ th vn tồấc c ấấp vn t ồấc thấấp lOMoARcPSD| 37054152
1.1.2 Tốc độ trung bình tương đương với hệ bậc 2 1 1 V V V 20 Max 5 Max 1 1 .2500 V .2500 125 V 500 rpm 20 5 13,1 V 52,4 rad/s Chọn V=30 rad/s = 286,5 rpm Ta có cp2 0, 24 , cv2 0,96 Kp2 0, 24.41,3 9,912 K v2 0,96.41,3 39,648
Sơ đồ khối mô phỏng trên matlab simulink Code: cp2=0.24; cv2=0.96; hold on KL=58; plot(out.input.Time, NL=4; out.input.Data, '--k' , Jm=0.0085; 'LineWidth' ,1) Ng=1; plot(out.y2st.Time, out.y2st.Data, '-r' , JL = NL*Jm*(Ng^2); 'LineWidth' ,1) wL = sqrt(KL/JL); legend( 'Input' , 'Vitri' ) Kp2=cp2*wL; %plot(out.vantoc.Time, Kv2=cv2*wL; out.vantoc.Data, '-r', sim( 'Bac2_NL4' ) 'LineWidth',1) %ve do thi matlab grid on lOMoARcPSD| 37054152 lOMoARcPSD| 37054152
1.1.3 Tốc độ cao tương đương với hệ bậc 4 1 1 V .V V .2500 V 500 rpm 5 Max 5
V 52,4 rad/s Chọn V=80 rad/s =764 rpm cp 0, 24 ; cv 0,82 J 2 L
N . NL G .JM 4.1.0,0085 0,034
DL L.2.0, 034.58 JL.KL 0, 02.2. 0, 056 JT JM JL 2 0,0085 0, 034 1 0,0119 NG Kp cp. L 0, 24.41,3 9,912 Kv cv. L 0,82.41,3 33,866 Kvg K .Jv T 33,866.0,0119 0,403 psi=0.02; NL=4; Code: cp=0.24; cv=0.82; KL=58; Ng=1; Jm=0.0085;
Sơ đồ khối mô phỏng trên matlab simulink JL = NL*Jm*(Ng^2); wL = sqrt(KL/JL); DL=psi*2*sqrt(JL*KL); JT=Jm+(JL/ (Ng^2)); Kp=cp*wL; Kv=cv*wL; Kvg=Kv*JT; %cong thuc cho bac 4 sim('Bac4_NL4') %ve do thi matlab %legend('Input','Vitri') %hold on plot(out.vantoc.Time,
%plot(out.input.Time, out.vantoc.Data, '-r',
out.input.Data, '--k', 'LineWidth',2) 'LineWidth',2) grid on %plot(out.y4st.Time, out.y4st.Data, '-r', 'LineWidth',2) lOMoARcPSD| 37054152 1.2 TH2: NL=7
1.2.1 Tốc độ thấp tương đương với hệ bậc 1 V V 1 x Ma 1 .2500 125 rpm 20 20
V 13,6 rad/s. Chọn V=10 rad/s =95,5 rpm b0 (1 NL )cpcv
(1 7).0,82.0, 24 1,574 b1 (1 NL )(cv 2cpcv L ) (1 7)(0,82 2.0,82.0, 24.0, 02) 6, 623 b0 1,574 0, 237 c p1 b1 6, 623
K p1 c p1 . L 0, 237.31,2 7,3944
Sơ đồ khối mô phỏng trên matlab simulink Code matlab %cong thuc o NL=7; duoi JL = Ng=1; NL*Jm*(Ng^2); cp=0.24; wL = cv=0.82; sqrt(KL/JL); psi=0.02; DL = Jm=0.0085; 2*psi*sqrt(KL*JL); KL=58; b0=(1+NL)*cp*cv; b1=(1+NL)*(cv+2*cp*cv* psi); cp1=b0/b1; lOMoARcPSD| 37054152 sim('Bac1_NL5') %ve do thi out.input.Data, '--k', matlab hold on 'LineWidth',1) plot(out.input.Time, Kp1 = cp1*wL plot(out.y1stNL7.Time, out.y1stNL7.Data, '-r', 'LineWidth',1) legend('Input','Vitri') %plot(out.van toc.Time, out.vantoc.Da ta, '- r', 'LineWidth', 1 ) grid on lOMoARcPSD| 37054152
1.2.2 Tốc độ trung bình tương đương với hệ bậc 2 1 1 V V V 20 Max 5 Max 1 1 .2500 V .2500 125 V 500 rpm 20 5 13,6 V 54,5 rad/s Chọn V=30 rad/s = 286,5 rpm lOMoARcPSD| 37054152 Ta có cp2 0, 24 , cv2 0,96 Kp2 0, 24.31,2 7,488 Kv2 0,96.31,2 29,952
Sơ đồ khối mô phỏng trên matlab simulink Code: cp2=0.24; sim('Bac2_NL7') cv2=0.96; %ve do thi matlab KL=58; hold on NL=7; plot(out.input.Time, Jm=0.0085;out.input.Data, '-- k', Ng=1;'LineWidth',1) JL =
NL*Jm*(Ng^2);plot(out.y2stNL7.Time, wL = sqrt(KL/JL); out.y2stNL7.Data, '-r', Kp2=cp2*wL; 'LineWidth',1)
Kv2=cv2*wL;legend('Input','Vitri') %plot(out.vantoc.Time, grid out.vantoc.Data, '-r', 'LineWidth',1) lOMoARcPSD| 37054152
1.2.3 Tốc độ cao tương đương với hệ bậc 4 1 1 V .V V .2500 V 500 rpm 5 Max 5
V 54,5 rad/s Chọn V=80 rad/s =764 rpm cp 0, 24 ; cv 0,82 J 2 L
N . NL G .JM 7.1.0,0085 0,0595 lOMoARcPSD| 37054152 DL L.2.0,0595.58 JL.KL 0, 02.2. 0,074 JT JM JL 2 0,0085 0 ,0595 1 0, 0 6 8 NG Kp cp. L 0, 24.31,2 7,488 Kv cv. L 0,82.31,2 25, 584
Kvg K .J v T 25,584 .0,068 1,74 psi=0.02; NL=7; Code: cp=0.24; cv=0.82; KL=58; Ng=1; Jm=0.0085; lOMoAR cPSD| 37054152
Sơ đồ khối mô phỏng trên matlab simulink Kvg=Kv*JT; sim('Bac4_NL7') %ve do thi matlab %hold on %plot(out.input.Time, out.input.Data, '--k', 'LineWidth',2) %cong thuc cho bac 4 JL = NL*Jm*(Ng^2); wL = sqrt(KL/JL); DL=psi*2*sqrt(JL*KL); JT=Jm+(JL/ (Ng^2)); Kp=cp*wL; Kv=cv*wL; %plot(out.y4st .Time, out.y4st.Data, '-r', 'LineWidth',2) %legend('Input ','Vitri') plot(out.vanto c.Time, out.vantoc.Dat a, '-r', 'LineWidth',2) grid on lOMoARcPSD| 37054152 lOMoARcPSD| 37054152
1.3 Nhận xét đáp ứng vị trí và vận tốc đối với 3 cấp vận tốc:
-Vận tốc trong 3 trường hợp ứng với từng cấp tốc độ: “Thấp, trung bình, cao” là 10,
30,80 rad/s. Vận tốc càng cao thì vị trí vị trí mong muốn là 400 rad càng nhanh đạt được.
trong cả 3 trường hợp chúng ta có thể thấy đều không có tình trạng xảy ra vọt lố. Đúng với
yêu cầu cần thiết của động cơ sevro.
- Đối với NL=4 và NL=7 chúng ta có thể thấy được không có sự khác biệt đối với 3
cấp vận tốc : “Thấp, trung bình, cao”. Rõ ràng thông số của động cơ có thể đáp ứng trong
trường hợp 3 NL 10 . Thỏa mãn cơ sở lý thuyết mà chúng ta đã được học. lOMoARcPSD| 37054152
2. Viết thuật toán PID
Viết thuật toán PID sử dụng m-file của Matlab để mô phỏng điều khiển vận tốc
của động cơ. Thuật toán phải bao gồm bộ lọc đạo hàm cho số hạng D và bộ lọc ngược
cho số hạng I. Hãy minh họa tác dụng của việc chống gió giật trong kết quả của bạn?
Bảng thông số cần thiết cho câu 2 Motor M4-4203 Winding A
Back EMF Const, K e (V/krpm) 53 , 2
Torque Const., K t (Nm/A) 0.509 DC Resistance, R (Ω) 0.243 Inductance, L (mH) 1 , 03
Inertia, J M (kg.m 2 ) 0.0085 Viscous Cofficient (b) 0
Đổi đơn vị Ke (V/krpm) thành V/rad/s 53,2.60 lOMoARcPSD| 37054152 Ke= 0, 509 1000.2 V/rad/s.
Nhận thấy Ke bằng Kt với cơ sở lý thuyết đã được học
Hệ số K của hàm truyền động cơ DC Kt 1 1 K 1,968 Kt .Ke Ke 0, 509
Thời gian đáp ứng R.JM 0, 243.0,0085 (s) Kt .Ke 0, 509.0, 509 0, 008
Thời gian đáp ứng mong muốn là c 0,02 (s) Nhận xét:
Trong mô phỏng thuật toán PID nhóm lựa chọn bỏ khâu D trong điều khiển động
là khâu bậc 1, nên không cần sử dụng
cơ DC sevro đặc tính động cơ có công thức K Ms 1
khâu D. Trong bài toán mô phỏng này nhóm chỉ sử dụng khâu PI do khâu D bằng 0.
Nhưng trong mô phỏng sẽ viết bộ lọc đạo hàm cho số hạng D đúng với yêu cầu của đề bài.
Tìm thông số PID với PID tuner của matlab simulink: lOMoARcPSD| 37054152 Kd=0 N=100
Nhận thấy thông số Kd của PID tuner matlab simulink trả về kết quả bằng 0 đúng
với cơ sở lý thuyết của hệ sevro động cơ DC.
+ Thông số N trả về bằng 100
Khâu P được tính toán như sau upk K .ep k
( Công thức 3.37 slide bài giảng) Anti-windup: ui ui
K .T.e K .T.ereset ( Công thức 3.41 slide bài giảng) k k 1 I k b k lOMoARcPSD| 37054152
Low pass filter: N K uDf (k) uD (k 1) D (e(k) e(k 1)) f N T N T
Thông số bộ PID bao gồm bộ lọc đạo hàm cho số hạng D và bộ lọc ngược cho số hạng I u uI uP uD k k k f
Mạch mô phỏng matlab simulink Code: Hàm PID_control global Kp Ki Kd Kb Ts b err_p ui_p err_reset N ud_p err_p=0; ui_p=0; ud_p=0; err_reset=0; lOMoARcPSD| 37054152 K=1.968; tau=0.008; tauc=0.02; Km=0.509; Ke=0.509; L= 1.03*10^(-3); R=0.243; Jm=0.0085; xlabel('Time (s)'); grid on Hàm PIDfunction: function y = PIDfunction(u) global Ts Kp Kd Ki Kb err_p ui_p err_reset ud_p N wd = u(1); % Gia tri ban dau wf = u(2); % Gia tri tra ve b Kd=0; = N=100; 0 sim('PID'); ; plot(y_out.Time,y_out.Data, '-r','lineWidth',2) T title('The output speed of s position control'); = ylabel('Speed (rad/s)'); 0 . 0 2 ; err = wd - wf; Kp=tau/ up = Kp*err; (K*tauc); Ki=Kp/tau %Anti-windup
; ui = ui_p + Ki*Ts*err + Kb=1/tau; Kb*Ts*err_reset; %Low pass filter udf = (N/(N+Ts))*ud_p + if y_out > HILIM (1/(N+Ts))*Kd*(err-err_p); err_reset = HILIM - y_out; ud_p= udf; y_out = HILIM; lOMoARcPSD| 37054152 err_p = err; elseif y_out < LOLIM ui_p = ui; err_reset = LOLIM -
HILIM=24; %Gia tri cao y_out; nhat bi chan tuong
duonng y_out =LOLIM; voi muc dien áp 24V else
LOLIM=-24; %Gia tri err_reset = 0; thap nhat bi chan tuong end duong voi mua dien ap -24V y = y_out; y_out = up + ui+ udf; end
Trong mô phỏng chia thành ba trường hợp:
Hệ giao động không tải
Hệ giao động có tải nhỏ hệ thống có thể đáp ứng
Hệ giao động có tải lớn và hệ thống không thể đáp ứng
Tải sẽ được tác động trong 1s trong khoảng thời gian từ 2s đến 3s
Hình 2.1 Hệ khi không có tải lOMoARcPSD| 37054152
Hình 2.3: Hệ giao động có tải lớn Nhận xét - Hình 2.2
Khi độ lớn của nhiễu nhỏ có nhiễu đồ thị vẫn bị lệch xuống nhưng trong khoảng thời
gian ngắn thì đồ thị vẫn có thể đưa về vị trí ban đầu. Độ lớn của nhiễu nhỏ hơn hoặc không
lớn hơn quá nhiều so với moment của động cơ thì lập tức sẽ đưa về vị trí ban đầu. lOMoARcPSD| 37054152 - Hình 2.3
Do thông số tải quá lớn lớn hơn moment của động cơ nên khi có tải tác động trong
khoảng thời gian từ 2 đến 3s động cơ không thể đưa về vị trí ban đầu như hình 2.2.