TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT ĐÁP ÁN HỌC KỲ 2, NĂM HỌC 18-19
THÀNH PHỐ HỒ CHÍ MINH
Môn: HỆ THỐNG TRUYỀN ĐỘNG SERVO
Mã môn học: SERV424029
KHOA CƠ KHÍ CHẾ TẠO MÁY
Đề số: 01; Đề thi có 2 trang.
BỘ MÔN CƠ ĐIỆN TỬ
Thời gian: 75 phút.
------------------------Được phép sử dụng tài liệu
Bài 1:
a (1đ) Đường đặc tính mô tả mối quan hệ giữa vận tốc tối đa của động cơ và mô-men xoắn
(torque). Dựa vào đường đặc tính này ta có thể tính được vận tốc khởi động của động cơ
tương ứng với mô-men tải để không bị trượt bước.
b (1đ). Theo hình vận tốc khởi động tối đa của động cơ là 12000 pps. Theo công thức slide
16:
rpm
60 pps 60 12000
3600
360
ppr
1.8
Vận tốc động cơ:
3600 2
377 (rad/s)
60
c. Kết nối phần cứng (0.5đ)
Do động cơ lưỡng cực 2 pha nên sử dụng mạch cầu H tích hợp (ví dụ: L298)
H-Bridge 1
OUT1
P0
IN 1
P1
IN 2
OUT2
A
A
B
CONTROLLER
B
OUT3
P2
IN 3
P3
IN 4
OUT4
H-Bridge 2
Với vận tốc như câu b, ta tính được thời gian delay (0.5đ):
Td
1
1
84 103 (ms) 84 (us)
pps 12000
Dựa vào hình 1b, ta có bảng trạng thái xuất xung của bộ điều khiển (0.5đ)
Số hiệu: BM1/QT-PĐBCL-RĐTV
1
P3
P2
P1
P0
HEX
L
H
L
H
0x05
H
L
L
H
0x09
H
L
H
L
0x0A
L
H
H
L
0x06
SV có thể viết chương trình hoặc lưu đồ giải thuật cho bộ điều khiển theo bảng trên (0.5đ)
Lưu ý: Nếu SV sử dụng chân PWM và DIR cho phần cứng và bảng trạng thái vẫn cho đủ
điểm nếu làm đúng.
Bài 2:
a. Để đọc encoder chế độ x2 ta sử dụng 1 ngắt ngoài, cạnh lên (rising) và cạnh xuống
(falling). Giả sử dùng ngắt ngoài kênh 0, (EXTI0), kết nối với kênh A của encoder (0.5đ)
Chương trình (1đ)
T1_ISR(){
if ((rising)&(B==0)|(falling)&(B==1))
count++;
else
count--;
cntvel++; //dùng để tính vận tốc
if (count>=2000)
count=0;
else if (count<=-2000)
count=0;
}
b. Sử dụng ngắt timer, ví dụ Timer 1 của vi điều khiển, thời gian ngắt (thời gian lấy mẫu) tự
khai báo. Gọi T(s) là thời gian lấy mẫu. Cấp vận tốc trung bình từ 150 RPM đến 600 RPM,
giả sử ta tìm được thông số của bộ điều khiển PI cho cấp vận tốc này là Kp và Ki. Do có sử
dụng anti-windup nên sử dụng thêm hệ số Kb cho bộ anti-windup. (0.5đ)
Các công thức tính toán bộ điều khiển vận tốc PI:
Tính vận tốc :
k
M 2
(rad / s )
(2 N T )
(2.1)
Trong đó: M là số xung đếm được trong thời gian lấy mẫu, T(s)
Tính sai số
ek d k k
(2.2)
Khâu P:
u P k K p ek
(2.3)
Khâu I (sử dụng công thức tích phân lùi và có anti-windup)
ek_windup = KIek + Kbek_reset
u I k u I k 1 Tek _ windup
(2.4)
T: thời gian lấy mẫu (s)
Số hiệu: BM1/QT-PĐBCL-RĐTV
1
Cấu trúc anti-windup cho khâu I
Chương trình (2đ)
const float pi = 3.1415;
float desiredVel;
T1_ISR(){
static float iterm_p=0;
static float err_sat=0;
float err,err_windup;
float pterm, iterm;
float piterm,pi_sat;
int cnttmp, piout;
HILIM = 100; LOLIM=0;
//HILIM =100 tương đương PWM -> 100%
//Tính vận tốc theo công thức (2.1)
cnttmp = cntvel;
cntvel = 0;
curVel = (cnttmp*pi)/(1000*T); //tính vận tốc (rad/s) khi đọc encoder mode x2
//Tính sai số
err = desiredVel - curVel;
//Tính PI bao gồm anti-windup theo các công thức (2.2), (2.3), (2.4)
pterm = Kp*err;
err_windup = Ki*err + Kb*err_reset;
iterm = iterm_p + err_windup*T;
iterm_p = iterm;
piterm += pterm + iterm;
//saturation of PIterm
if (piterm>HILIM)
pi_sat = HILIM;
else if (piterm
pi_sat = LOLIM;
else
pi_sat = piterm;
err_reset = pi_sat-piterm;
piout = (int)pi_sat;
return piout;
//ép kiểu số nguyên cho độ rộng xung PWM
Số hiệu: BM1/QT-PĐBCL-RĐTV
1
Lưu ý: Nếu SV không trình bày các công thức tính nhưng vẫn viết đầy đủ trong chương trình
thì vẫn cho đủ số điểm.
Bài 3:
Tính toán các thông số cần thiết (0.5)
Góc quay:
150 5
(rad )
180
6
Lựa chọn gia tốc khởi động cho động cơ,
công thức 4.12 slide bài giảng.
qc
4 q f qi
tf
2
4 5 6 10
(rad / s 2 )
1
3
Chọn qc 10 (rad / s 2 )
Thời gian tăng tốc, công thức 4.11 slide bài
giảng:
2
1 t f qc 4(q f qi )
=0.092 (s)
tc
2 2
qc
tf
Tính quỹ đạo q(t) theo công thức (4.14)
trong slide bài giảng (0.5đ)
Đồ thị vị trí, vận tốc, gia tốc (1đ)
Trong đó tc 0.092(s) , t f 1( s)
qi 6; q f
qc 10 (rad/ s 2 )
Số hiệu: BM1/QT-PĐBCL-RĐTV
1