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 m Chương
SVTH:
Lê Ngọc Anh
21146424
Li Văn Bc
Lê Nguyên Khang
Tp. HCM, ngày 20 tng 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
Mi nhóm phi chn các thông s ti trng bao gm độ cng khp ni mm (KL),
quán tính moment (JL), và gim xóc nhớt (DL) để thỏa mãn điều kiện: 3 ≤ 𝑁𝑁 ≤ 10 (ít
nht 2 khác nhau ti trong phm vi này) và h s tt dn cho tt c các ti: 𝑁 = 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)
5
V DC ± 5%, 200mA max
Power Supply
Output
Line Driver, 20mA Max source/sink
1024
/ 2048 /
4096
Resolution (ppr)
Frequency Response
200
kHz max
Brake Option
Barke Open Voltage (Volts D.C.)
24
28
Power (Watts)
20
Brake Static Torque (Nm)
13
Weight (brake + housing) Kg
Bản vẽ động cơ M4-4203
lOMoARcPSD|37054152
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 :
L
K L
2
L.J L 94, 2
2
. 0,00653 57,95 (N.m)
Chọn độ cứng của khớp
K
L
58 N.m
nối
Động cơ có thể có hộp số nhưng trong mô phỏng chọn N
G
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
rated output of motor
kW
2
0
,
rated torque of motor
kgm
0,195
rated velocity of motor
1000
rev/min
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
L
2
rad/s
94
,
damping rate of mechanism part
L
0,002
2000
encoder resolution
pulse/rev
gear deceleration ratio N
G
1
K
L
J
L
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
1
V
x Ma
1 .2500 125 rpm
20 20
lOMoARcPSD|37054152
V 13,1 rad/s. Chọn V=10 rad/s =95,5 rpm
c
p
0, 24 ; c
v
0,82 b
0
(1 N
L
)c
p
c
v
(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
b
0
0,984 0, 237 c p1
b
1
4,139
NL=4;
Ng=1;
cp=0.24;
cv=0.82;
psi=0.02;
Jm=0.0085;
KL=58;
%cong thuc o duoi
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:
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ó c
p2
0, 24 , c
v2
0,96
K
p2
0, 24.41,3 9,912
K
v2
0,96.41,3
39,648
Code:
cp2=0.24;
cv2=0.96;
KL=58;
NL=4;
Jm=0.0085;
Ng=1;
Sơ đồ khối mô phỏng trên matlab simulink
hold
on
plot(out.input.Time,
out.input.Data,
'--k'
,
'LineWidth'
,1)
plot(out.y2st.Time,
out.y2st.Data,
'-r'
,
JL = NL*Jm*(Ng^2);
wL = sqrt(KL/JL);
Kp2=cp2*wL;
Kv2=cv2*wL;
sim(
'Bac2_NL4'
)
%ve do thi matlab
'LineWidth'
,1)
legend(
'Input'
,
'Vitri'
)
%plot(out.vantoc.Time,
out.vantoc.Data, '-r',
'LineWidth',1)
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
c
p
0, 24 ; c
v
0,82
J
L
N . N
L
2
G
.J
M
4.1.0,0085 0,034
D
L
L
.2.0, 034.58 JL.KL 0, 02.2. 0, 056
JT JM
JL 2 0,0085 0, 034 1 0,0119
N
G
K
p
c
p
.
L
0, 24.41,3 9,912
K
v
c
v
.
L
0,82.41,3 33,866 K
v
g
K .J
v 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
1
V
x Ma
1 .2500 125 rpm
20 20
V 13,6 rad/s. Chọn V=10 rad/s =95,5 rpm b
0
(1 N
L
)c
p
c
v
(1 7).0,82.0, 24 1,574 b
1
(1 N
L
)(c
v
2c
p
c
v L
) (1 7)(0,82
2.0,82.0, 24.0, 02) 6, 623
b
0
1,574 0, 237 c
p1
b
1
6, 623
Code matlab
NL=7;
Ng=1;
cp=0.24;
cv=0.82;
psi=0.02;
Jm=0.0085;
KL=58;
%cong thuc o
duoi JL =
NL*Jm*(Ng^2);
wL =
sqrt(KL/JL);
DL =
2*psi*sqrt(KL*JL);
b0=(1+NL)*cp*cv;
b1=(1+NL)*(cv+2*cp*cv*
psi); cp1=b0/b1;
K
p1
c
p1
.
L
0, 237.31,2
7,3944
Sơ đồ khối mô phỏng trên matlab simulink
lOMoARcPSD|37054152
sim('Bac1_NL5') %ve do thi
matlab hold on
plot(out.input.Time,
out.input.Data, '--k',
'LineWidth',1)
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ó c
p2
0, 24 , c
v2
0,96
K
p2
0, 24.31,2 7,488
K
v2
0,96.31,2 29,952
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)
Code:
Sơ đồ khối mô phỏng trên matlab simulink
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 c
p
0, 24
; c
v
0,82
J
L
N . N
L
2
G
.J
M
7.1.0,0085 0,0595
lOMoARcPSD|37054152
D
L
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
N
G
K
p
c
p
.
L
0, 24.31,2 7,488
K
v
c
v
.
L
0,82.31,2 25, 584
K
v
g
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;
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
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” 10,
30,80 rad/s. Vận tốc càng cao tvị trí vị trí mong muốn 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 NL=7 chúng ta thể thấy được không sự khác biệt đối với 3
cấp vận tốc : “Thấp, trung bình, cao”.ràng thông số của động 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 để 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?
Đổi đơn vị Ke (V/krpm) thành V/rad/s
53,2.60
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
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
M
s 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
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 u
p
k
K .e
p 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
Kd=0
N=100
lOMoARcPSD|37054152
Low pass filter:
N
u
D
(k
1)
K
D
(e(k) e(k 1))
u
D
f
(k)
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 u
I
u
P
u
D
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
=
0
;
T
s
=
0
.
0
Kd=0;
N=100;
sim('PID');
plot(y_out.Time,y_out.Data,
'-r','lineWidth',2)
title('The output speed of
position control');
ylabel('Speed (rad/s)');
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ỏ 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 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.

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.