II. Điều khiển động cơ bước
3) Thiết kế bộ điều khiển PID và mô phỏng trên MATLAB
a) Mô hình toán học:
Mô hình động cơ bước nam châm vĩnh cửu (PMS)
Phần này cung cấp một dẫn xuất ngắn gọn của một mô hình phi tuyến của động cơ bước 2 pha PM.
Phương trình động lực học của trục rotor được đưa ra bởi:
Bùi Văn Mạnh – KT Cơ Điện tử 03-k60 Page 53
trong đó: – mô men quán tính của trục rotor
F – hệ số ma sát nhớt
– mô men tải
Phương trình (1) tạo cơ sở cho mô hình động lực học chung của rotor động cơ bước PM. Do đó với động cơ PM có P cặp cực rôto và hai pha ( ) tại 0 và ( / 2), các phương trình không gian trạng thái sau có thể được suy ra:
=
= (− sin + cos ) − −
= − + sin
+ (2)
= − − cos −
trong đó: là gia tốc góc của tải
là đạo hàm dòng điện qua cuôn dây a
là đạo hàm dòng điện qua cuôn dây b
Phương trình xét trục nối đàn hồi:
Xem xét trường hợp khi tải được kết nối với động cơ qua một trục cứng dài có độ cứng k, thì quán tính của động cơ sẽ là và quán tính tải sẽ là như trong hình 3.
Bùi Văn Mạnh – KT Cơ Điện tử 03-k60 Page 54
Hình 3 - Sơ đồ nối trục đàn hồi
Trong trường hợp này, phương trình tải trọng và trục đàn hồi sẽ là:
= (3)
= 1 [− ( − ) − ( − )]
Một kỹ thuật điều khiển cổ điển cho PMSM dựa trên biến đổi vectơ (u) và (i) được biểu diễn trong hệ quy chiếu gắn với stato cố định (a, b) thành các vectơ biểu diễn trong một khung (d, q) xoay dọc theo vectơ lực dẫn động giả tưởng sao cho:
= cos sin
−sin cos
Phương trình trạng thái (2) thể hiện dưới dạng dòng điện và điện áp trong tọa độ xoay (d, q) trở thành: = = − − − 1 [ ( − ) + ( − )] = − + . + (4) = − − . − +
Bùi Văn Mạnh – KT Cơ Điện tử 03-k60 Page 55
b) Mô phỏng với MATLAB Simulink
Trong MATLAB, chạy file Thong_so_mo_hinh_hoa_Stepper_motor.m
chứa các thông số của động cơ bước.
% momen quan tinh cua dong co
Jm = 0.08; % kg.m^2
% he so can nhot cua khop noi truc
B = 3; % Nms/rad % dien cam cua cuon day
L = 3; % Henry % dien tro cua dong co
R = 3; % Omh % so cap cuc
P = 6; % khong thu nguyen % he so cua dong co
Km = 2; % Nm/rad
% he so can nhot cua truc dong co
F = 0.01; % Nms/rad % momen tai
TL = 5; % Nm
k = 0.9;
Tiến hành mô phỏng hệ phương trình (4) với Simulink
Bùi Văn Mạnh – KT Cơ Điện tử 03-k60 Page 56
Hình 4 – Sơ đồ Simulink mô phỏng động cơ bước
Hình 5 – Khối Subsystem “Dong co buoc“
Bùi Văn Mạnh – KT Cơ Điện tử 03-k60 Page 57
Hình 6 – Tham số PID điều khiển vận tốc góc
Hình 7 - Kết quả đáp ứng vận tốc góc
Bùi Văn Mạnh – KT Cơ Điện tử 03-k60 Page 58
Hình 9 - Kết quả đáp ứng vị trí góc quay
Nhận xét: Đánh giá bộ điều khiển
Từ kết quả đáp ứng nhận được trên các đồ thị, ta rút ra một số nhận xét: + Bộ điều khiển vị trí góc quay tương đối đạt yêu cầu khi độ quá điều chỉnh và thời gian đáp ứng nhỏ
+ Bộ điều khiển vận tốc góc chưa đạt yêu cầu do độ quá điều chỉnh rất lớn. Do vậy, bộ điều khiển này phải cần tiếp tục nghiên cứu và khắc phục
c) Điều khiển động cơ bước thực tế với vi điều khiển: Phần cứng:
- Arduino UNO
- Driver điều khiển động cơ A4988 - Breadboard
Bùi Văn Mạnh – KT Cơ Điện tử 03-k60 Page 59
- Dây nối
Kết nối driver, động cơ bước vào Arduino như sau:
Code Arduino tham khảo
// Run a A4998 Stepstick from an Arduino UNO.
// Paul Hurley Aug 2015 - http://www.instructables.com/id/Drive- a-Stepper-Motor-with-an-Arduino-and-a-A4988-/
int x;
#define BAUD (9600)
void setup() {
Bùi Văn Mạnh – KT Cơ Điện tử 03-k60 Page 60
Serial.begin(BAUD);
pinMode(6,OUTPUT); // Enable pin - chân khởi động - nối vào GND sẽ giúp ta bật động cơ bước, nối vô VCC động cơ bước được thả ra. Nôm na: GND = servo.attach, VCC = servo.detach
pinMode(5,OUTPUT); // Step pin pinMode(4,OUTPUT); // Dir - pin digitalWrite(6,LOW); // Set Enable low }
void loop() {
digitalWrite(6,LOW); // Đặt Enable ở trạng thái LOW digitalWrite(4,HIGH); // Đặt Dir ở trạng thái HIGH Serial.println("Cho chay 200 steps (1 vong)"); for(x = 0; x < 200; x++) // Cho chay 1 vong {
digitalWrite(5,HIGH); // Output high delay(10); // chờ
digitalWrite(5,LOW); // Output low delay(100); // chờ
}
Serial.println("Pause");
delay(1000); // dừng 1 s rồi quay tiếp }
Bùi Văn Mạnh – KT Cơ Điện tử 03-k60 Page 61